1 2016-10-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3 PR tree-optimization/77937
4 * gimple-ssa-strength-reduction.c (analyze_increments): Use
5 POINTER_TYPE_P on the candidate type to determine whether
6 candidates in this chain require pointer arithmetic.
8 2016-10-12 Eric Botcazou <ebotcazou@adacore.com>
10 * config/visium/visium.c (visium_gimplify_va_arg): Emit a big-endian
11 correction if the type is smaller than a word.
12 (visium_select_cc_mode): Add ... fall through ... comment.
14 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
16 * config/rs6000/rs6000.c (machine_function): Add new fields
17 gpr_is_wrapped_separately and lr_is_wrapped_separately.
18 (TARGET_SHRINK_WRAP_GET_SEPARATE_COMPONENTS,
19 TARGET_SHRINK_WRAP_COMPONENTS_FOR_BB,
20 TARGET_SHRINK_WRAP_DISQUALIFY_COMPONENTS,
21 TARGET_SHRINK_WRAP_EMIT_PROLOGUE_COMPONENTS,
22 TARGET_SHRINK_WRAP_EMIT_EPILOGUE_COMPONENTS,
23 TARGET_SHRINK_WRAP_SET_HANDLED_COMPONENTS): Define.
24 (rs6000_get_separate_components): New function.
25 (rs6000_components_for_bb): New function.
26 (rs6000_disqualify_components): New function.
27 (rs6000_emit_prologue_components): New function.
28 (rs6000_emit_epilogue_components): New function.
29 (rs6000_set_handled_components): New function.
30 (rs6000_emit_prologue): Don't emit LR save if lr_is_wrapped_separately.
31 Don't emit GPR saves if gpr_is_wrapped_separately for that register.
32 (restore_saved_lr): Don't restore LR if lr_is_wrapped_separately.
33 (rs6000_emit_epilogue): Don't emit GPR restores if
34 gpr_is_wrapped_separately for that register. Don't make a
35 REG_CFA_RESTORE note for registers we did not restore, either.
37 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
39 * function.c (thread_prologue_and_epilogue_insns): Call
40 try_shrink_wrapping_separate. Compute the prologue_seq afterwards,
41 if it has possibly changed. Compute the split_prologue_seq and
42 epilogue_seq later, too.
43 * shrink-wrap.c: #include cfgbuild.h and insn-config.h.
44 (dump_components): New function.
45 (struct sw): New struct.
47 (init_separate_shrink_wrap): New function.
48 (fini_separate_shrink_wrap): New function.
49 (place_prologue_for_one_component): New function.
50 (spread_components): New function.
51 (disqualify_problematic_components): New function.
52 (emit_common_heads_for_components): New function.
53 (emit_common_tails_for_components): New function.
54 (insert_prologue_epilogue_for_components): New function.
55 (try_shrink_wrapping_separate): New function.
56 * shrink-wrap.h: Declare try_shrink_wrapping_separate.
58 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
60 * regrename.c (build_def_use): Invalidate chains that have a
61 REG_CFA_RESTORE on some instruction.
63 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
65 * dce.c (delete_unmarked_insns): Don't delete instructions with
66 a REG_CFA_RESTORE note.
68 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
70 * common.opt (-fshrink-wrap-separate): New flag.
71 * doc/invoke.texi: Document it.
72 * doc/tm.texi.in (Shrink-wrapping separate components): New subsection.
73 * doc/tm.texi: Regenerate.
74 * emit-rtl.h (struct rtl_data): New field shrink_wrapped_separate.
75 * target.def (shrink_wrap): New hook vector.
76 (get_separate_components, components_for_bb, disqualify_components,
77 emit_prologue_components, emit_epilogue_components,
78 set_handled_components): New hooks.
80 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
82 * config/rs6000/rs6000.c (rs6000_return_in_memory): Warn for
83 vector return by reference only if -Wpsabi.
84 (rs6000_pass_by_reference): Similarly, for argument passing.
86 2016-10-12 David Malcolm <dmalcolm@redhat.com>
88 * function-tests.c: Include "print-rtl.h".
89 (selftest::test_expansion_to_rtl): Call print_rtx_function on the
90 function, and verify what is dumped.
91 * print-rtl-function.c (print_edge): New function.
92 (begin_any_block): New function.
93 (end_any_block): New function.
94 (can_have_basic_block_p): New function.
95 (print_rtx_function): Track the basic blocks of insns in the
96 chain, wrapping those that are within blocks within "(block)"
97 directives. Remove the "(cfg)" directive.
99 2016-10-12 David Malcolm <dmalcolm@redhat.com>
101 * selftest.c (selftest::read_file): New function.
102 (selftest::test_read_file): New function.
103 (selftest::selftest_c_tests): Call test_read_file.
104 * selftest.h (selftest::read_file): New decl.
106 2016-10-12 Richard Biener <rguenther@suse.de>
109 * cgraphunit.c (analyze_functions): Preserve cgraph nodes
112 2016-10-12 Thomas Schwinge <thomas@codesourcery.com>
114 * lto-streamer.c: Fix LTO_STREAMER_DEBUG build.
116 * dwarf2out.c (dwarf2_lineno_debug_hooks): Use
117 dwarf2out_assembly_start.
119 * Makefile.in (SELFTEST_FLAGS): Add -nostdinc.
121 * Makefile.in (SELFTEST_FLAGS): New variable.
122 (s-selftest, selftest-gdb, selftest-valgrind): Use it.
124 * vmsdbgout.c (vmsdbg_debug_hooks): Add filename parameter to
127 2016-10-12 Georg-Johann Lay <avr@gjlay.de>
129 * rtl.h (struct rtx_def): Comment how RTX_FLAGS will be
132 2016-10-12 Martin Liska <mliska@suse.cz>
134 * gimple-fold.c (create_tmp_reg_or_ssa_name): New function.
135 (gimple_fold_builtin_memory_op): Use the function.
136 (gimple_fold_builtin_strchr): Likewise.
137 (gimple_fold_builtin_strcat): Likewise.
138 (gimple_build): Likewise.
140 2016-10-12 Nathan Sidwell <nathan@acm.org>
142 * diagnostic.c (diagnostc_report_diagnostic): Fix formatting.
144 2016-10-12 Pierre-Marie de Rodat <derodat@adacore.com>
146 * dwarf2out.c (int_loc_descriptor): Generate opcodes for another
147 equivalent 32-bit constant (modulo 2**32) when that yields
148 smaller instructions.
149 (size_of_int_loc_descriptor): Update accordingly.
151 2016-10-12 Pierre-Marie de Rodat <derodat@adacore.com>
153 * dwarf2out.c (dwarf2out_early_global_decl): For nested
154 functions, call dwarf2out_decl on the parent function first.
156 2016-10-12 Richard Biener <rguenther@suse.de>
158 * match.pd ((X /[ex] A) * A -> X): Remove unnecessary constraint
161 2016-10-12 Richard Biener <rguenther@suse.de>
163 * tree-ssa-propagate.c
164 (substitute_and_fold_dom_walker::before_dom_children): Do not
165 ignore ASSERT_EXPRs but only preserve them.
166 * tree-vrp.c (remove_range_assertions): Deal with ASSERT_EXPRs
167 that have been propagated into.
168 (vrp_finalize): Enable DCE for substitute_and_fold.
170 2016-10-12 Richard Biener <rguenther@suse.de>
172 PR tree-optimization/77920
173 * tree-vrp.c (simplify_div_or_mod_using_ranges): Simplify.
174 (simplify_min_or_max_using_ranges): Pass in gsi and use it.
175 (simplify_abs_using_ranges): Likewise.
176 (simplify_conversion_using_ranges): Likewise.
177 (simplify_stmt_using_ranges): Adjust.
179 2016-10-12 Jakub Jelinek <jakub@redhat.com>
181 PR tree-optimization/77929
182 * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Handle
183 (*ops)[ranges[i].idx]->op != ranges[i].exp case.
185 2016-10-12 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
188 * config/rs6000/vmx.md (vsx_concat_<mode>): The mtvsrdd instruction
189 needs a base register for arg 1.
191 2016-10-12 Jakub Jelinek <jakub@redhat.com>
193 * common.opt (Wimplicit-fallthrough) Turn into alias to
194 -Wimplicit-fallthrough=3. Remove EnabledBy.
195 (Wimplicit-fallthrough=): New option.
196 * gimplify.c (warn_implicit_fallthrough_r): Use
197 OPT_Wimplicit_fallthrough_ instead of OPT_Wimplicit_fallthrough.
198 * doc/invoke.texi (-Wimplicit-fallthrough): Document as alias
199 to -Wimplicit-fallthrough=3.
200 (-Wimplicit-fallthrough=): Document.
202 2016-10-11 Eric Botcazou <ebotcazou@adacore.com>
204 * config/sparc/sparc.c (emit_scc_insn): Remove direct support for EQ
205 and GEU in DImode if TARGET_SUBXC.
206 * config/sparc/sparc.md (seqdi<W:mode>_zero): Remove TARGET_SUBXC.
207 (seqdi<W:mode>_zero_subxc): Delete.
208 (neg_seqdi<W:mode>_zero): Remove TARGET_VIS3.
209 (neg_seqdi<W:mode>_zero_vis3): Delete.
210 (plus_seqdi<W:mode>_zero): Likewise.
211 (minus_seqdi<W:mode>_zero): Likewise.
212 (plus_plus_sltu<W:mode>): Accept only register.
213 (addx<W:mode>): Likewise.
214 (plus_sltu<W:mode>_vis3): Likewise.
215 (plus_plus_sltu<W:mode>_vis3): Likewise.
216 (neg_sgeu<W:mode>_vis3): Delete.
217 (minus_sgeu<W:mode>_vis3): Likewise.
218 (addxc<W:mode>): Accept only registers.
219 (neg_sltu<W:mode>_subxc): Write %%g0 instead of 0.
220 (minus_neg_sltu<W:mode>_subxc): Accept only register.
221 (neg_plus_sltu<W:mode>_subxc): Likewise.
222 (minus_sltu<W:mode>_subxc): Write %%g0 instead of 0.
223 (minus_minus_sltu<W:mode>_subxc): Accept only register.
224 (sgeu<W:mode>_insn_subxc): Delete.
225 (plus_sgeu<W:mode>_subxc): Likewise.
226 (subxc<W:mode>): Accept only register.
227 (scc splitter): Split always GEU again.
229 2016-10-11 Jeff Law <law@redhat.com>
231 PR tree-optimization/77424
232 * tree-ssa-threadupdate.c (thread_through_all_blocks): Remove
233 dead conditionals. Assert that all e->aux fields are NULL.
235 2016-10-11 David Malcolm <dmalcolm@redhat.com>
237 * print-rtl.c (print_rtx): Rename "i" to "idx". Split out the
238 operand-printing "switch" statement into...
239 (print_rtx_operand_code_0): ...this new function, ...
240 (print_rtx_operand_code_e): ...this new function, ...
241 (print_rtx_operand_codes_E_and_V): ...this new function, ...
242 (print_rtx_operand_code_i): ...this new function, ...
243 (print_rtx_operand_code_r): ...this new function, ...
244 (print_rtx_operand_code_u): ...this new function, ...
245 (print_rtx_operand): ...and this new function.
247 2016-10-11 Uros Bizjak <ubizjak@gmail.com>
249 * config/alpha/alpha-passes.def: New file.
250 * config/alpha/t-alpha: New file.
251 * config/alpha/alpha-protos.h (gcc::context, rtl_opt_pass): Declare.
252 (make_pass_handle_trap_shadows): New prototype.
253 (make_pass_align_insns): Ditto.
254 * config/alpha/alpha.c (alpha_option_override): Don't register
256 * config.gcc (alpha*-*-*) Add alpha/t-alpha to tmake_file.
258 2016-10-11 Michael Meissner <meissner@linux.vnet.ibm.com>
261 * config/rs6000/rs6000.c (rs6000_init_builtins): Only create the
262 distinct __ibm128 IBM extended double type if long doubles are
263 128-bits and the default format for long double is IEEE 128-bit.
265 2016-10-11 Richard Biener <rguenther@suse.de>
267 * dwarf2out.c (DEBUG_STR_OFFSETS_SECTION): Remove conditional.
268 (init_sections_and_labels): Use DEBUG_DWO_STR_OFFSETS_SECTION.
269 (verify_die): New function.
270 (dwarf2out_finish): Call it.
271 (output_line_info): Handle case of -gsplit-dwarf without
272 DWARF2_ASM_LINE_DEBUG_INFO.
274 2016-10-11 Richard Biener <rguenther@suse.de>
277 * gimple-low.c (lower_gimple_bind): Handle arbitrary common
278 sub-chains of BLOCK_VARS and gimple_bind_vars.
280 2016-10-11 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
282 * config/i386/znver1.md : Fix imov/imovx load type reservations.
284 2016-10-11 Eric Botcazou <ebotcazou@adacore.com>
286 * config/sparc/sparc.opt (msubxc): New option.
287 * doc/invoke.texi (SPARC options): Document it and tidy up.
288 * doc/tm.texi.in (Condition Codes): Adjust SPARC example.
289 * doc/tm.texi: Regenerate.
290 * config/sparc/sparc-modes.def (CC_NOOV): Rename into...
292 (CCX_NOOV): Rename into...
296 * config/sparc/predicates.m (fcc_register_operand): Simplify.
297 (fcc0_register_operand): Likewise.
298 (icc_register_operand): New.
299 (icc_or_fcc_register_operand): Simplify.
300 (nz_comparison_operator): New.
301 (c_comparison_operator): Likewise.
302 (noov_compare_operator): Rename into...
303 (icc_comparison_operator): ...this. Use above predicates.
304 (noov_compare64_operator): Rename into...
305 (v9_comparison_operator): ...this and tidy up.
306 (fcc_comparison_operator): New.
307 (icc_or_fcc_comparison_operator): Likewise.
308 (v9_register_compare_operator): Rename info...
309 (v9_register_comparison_operator): ...this.
310 * config/sparc/sparc.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
311 (sparc_option_override): Remove redundant VIS masks and add MASK_SUBXC
313 (sparc_fixed_condition_code_regs): New function.
314 (select_cc_mode): Remove ATTRIBUTE_UNUSED. Adjust for CCNZ/CCXNZ
315 renaming and add support for CCC/CCXC.
316 (output_cbranch): Likewise.
317 (sparc_print_operand): Likewise.
318 (gen_v9_scc): Remove obsolete assertion.
319 (emit_scc_insn): Emit RTL directly for EQ and NE. Add direct support
320 for EQ in DImode if TARGET_SUBXC. Remove test on TARGET_VIS3 for GEU.
321 (output_cbcond): Remove bogus handling of CC modes.
322 (sparc_register_move_cost): Return 100 for NO_REGS.
323 * config/sparc/sparc.md (W): New mode iterator.
324 (length): Adjust for noov_compare64_operator renaming.
325 (cmpsi_sne): New instruction.
326 (cmpdi_sne): Likewise.
327 (seqdi_special): Delete.
328 (seqdi_special): Likewise.
329 (snesi<P:mode>_special): Likewise.
330 (snedi_special): Likewise.
331 (snedi_special_vis3): Likewise.
332 (snesi patterns): Use W iterator.
333 (snedi patterns): Likewise. Add TARGET_SUBXC patterns.
334 (sltu patterns): Likewise.
335 (sgeu patterns): Likewise.
336 (scc splitter): Do not split GEU in DImode if TARGET_SUBXC.
337 (normal_branch): Use icc_comparison_operator predicate.
338 (inverted_branch): Likewise.
339 (cbcond_sp32): Use comparison_operator predicate.
340 (cbcond_sp64): Likewise.
341 (normal_int_branch_sp64): Adjust for renaming
342 (inverted_int_branch_sp64): Likewise.
343 (mov<I:mode>_cc_reg_sp64): Likewise.
344 (movsf_cc_reg_sp6): Likewise.
345 (movdf_cc_reg_sp64): Likewise.
346 (movtf_cc_reg_hq_sp64): Likewise.
347 (movtf_cc_reg_sp64): Likewise.
348 (mov<I:mode>_cc_v9): Use icc_or_fcc_comparison_operator predicate.
349 (movsf_cc_v9): Likewise.
350 (movdf_cc_v9): Likewise.
351 (movtf_cc_hq_v9): Likewise.
352 (movtf_cc_v9): Likewise.
353 (adddi3): Call gen_adddi3_sp32.
354 (adddi3_insn_sp32): Rename to...
355 (adddi3_sp32): ...this. Accept only register_operand as operand #1
356 and use CCCmode for the carry.
357 (addx_extend_sp32): Use CCCmode for the carry.
358 (addx_extend_sp64): Delete.
359 (adddi3_extend_sp32): Use CCCmode for the carry.
360 (cmp_plus patterns): Use CCNZ/CCXNZ mode and add C variants.
361 (subdi3): Call gen_subdi3_sp32.
362 (subdi3_insn_sp32): Rename to...
363 (subdi3_sp32): ...this and use CCmode for the carry.
364 (subx_extend_sp32): Use CCCmode for the carry.
365 (subx_extend_sp64): Delete.
366 (subdi3_extend_sp32): Use CCmode for the carry.
367 (cmp_minus patterns): Use CCNZ/CCXNZ mode and add C variants.
368 (negdi3): Call gen_negdi3_sp32.
369 (negdi3_sp32): Use CCCmode for the carry.
370 (cmp_neg patterns): Use CCNZ/CCXNZ mode and add C variants.
371 (cmp_nz_ashift_1): Use CCNZ mode.
372 (cmp_nz_set_ashift_1): Likewise.
373 (ctrapsi4): Use comparison_operator predicate.
374 (ctrapdi4): Likewise.
375 (trapsi_insn): Use icc_comparison_operator predicate.
376 (trapdi_insn): Likewise.
377 (edge8 patterns): Use CCNZmode.
378 (edge16 patterns): Likewise.
379 (edge32 patterns): Likewise.
381 2016-10-11 Eric Botcazou <ebotcazou@adacore.com>
383 * config/visium/visium-modes.def (CC_NOOV): Rename into...
385 (CC_BTST): Rename into...
387 * config/visium/predicates.md (real_add_operand): New.
388 (visium_btst_operator): Rename into...
389 (visium_equality_comparison_operator): ...this.
390 (visium_noov_operator): Rename into...
391 (visium_nz_comparison_operator): ...this.
392 (visium_c_comparison_operator): New.
393 (visium_branch_operator): Adjust and deal with all CC modes.
394 * config/visium/visium.c (visium_adjust_cost): Adjust.
395 (visium_split_double_add): Use the *_set_carry patterns.
396 (visium_select_cc_mode): Add support for CCC mode and adjust.
397 (output_cbranch): Adjust and use the carry-based operators for
398 floating-point comparisons.
399 * config/visium/visium.md (flags_subst_arith): Adjust.
400 (addsi3_insn_set_carry): New instruction.
401 (subsi3_insn_set_carry): Likewise.
402 (negsi2_insn_set_carry): Likewise.
404 (cmp<mode>_sne): Likewise.
405 (cbranch<mode>4): Use ordered_comparison_operator.
406 (cbranch<mode>4_insn): Likewise.
407 (cbranchsi4_btst_insn): Adjust.
409 2016-10-11 Tom de Vries <tom@codesourcery.com>
412 * builtins.c (std_canonical_va_list_type): Remove RECORD_TYPE
415 2016-10-11 Eric Botcazou <ebotcazou@adacore.com>
417 * tree.h (build_complex_type): Add second parameter with default.
418 * tree.c (build_complex_type): Add NAMED second parameter and adjust
419 recursive call. Create a TYPE_DECL only if NAMED is true.
420 (build_common_tree_nodes): Pass true in calls to build_complex_type.
422 2016-10-11 Georg-Johann Lay <avr@gjlay.de>
424 New avr-passes.def to register AVR specific passes.
426 * config/avr/avr-passes.def: New file.
427 * config/avr/t-avr (PASSES_EXTRA): Add avr-passes.def.
428 * config/avr/avr-protos.h (gcc::context, rtl_opt_pass): Declare.
429 (make_avr_pass_recompute_note): New proto.
430 * config/avr/avr.c (make_avr_pass_recompute_notes): New function.
431 (avr_pass_recompute_notes): Use anonymous namespace.
432 (avr_register_passes): Remove function...
433 (avr_option_override): ...and its call.
435 2016-10-11 Robert Suchanek <robert.suchanek@imgtec.com>
437 * config/mips/mips-cpus.def: Replace PTF_AVOID_BRANCHLIKELY with
438 PTF_AVOID_BRANCHLIKELY_ALWAYS for generic architecture and with
439 PTF_AVOID_BRANCHLIKELY_SPEED for others.
440 (mips2, mips3, mips4): Add PTF_AVOID_BRANCHLIKELY_SIZE to tune
442 * config/mips/mips.c (mips_option_override): Enable the branch
443 likely depending on the tune flags and optimization level.
444 * config/mips/mips.h (PTF_AVOID_BRANCHLIKELY): Remove.
445 (PTF_AVOID_BRANCHLIKELY_SPEED): Define.
446 (PTF_AVOID_BRANCHLIKELY_SIZE): Likewise.
447 (PTF_AVOID_BRANCHLIKELY_ALWAYS): Likewise.
449 2016-10-11 Richard Biener <rguenther@suse.de>
451 * lto-streamer-out.c (collect_block_tree_leafs): New helper.
452 (output_function): Properly stream the whole block tree.
453 * lto-streamer-in.c (input_function): Likewise.
455 2016-10-11 Marek Polacek <polacek@redhat.com>
457 * Makefile.in (C_COMMON_OBJS): Add c-family/c-warn.o.
459 2016-10-11 Kugan Vivekanandarajah <kuganv@linaro.org>
461 * tree-vrp.c (evrp_dom_walker::try_add_new_range): New.
462 (evrp_dom_walker::before_dom_children): Infer and push new value
463 ranges for x in y < x.
465 2016-10-10 Joseph Myers <joseph@codesourcery.com>
468 * config/ia64/ia64.c (ia64_libgcc_floating_mode_supported_p)
469 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Remove.
470 * config/ia64/elf.h (IA64_NO_LIBGCC_TFMODE): Likewise.
471 * config/ia64/freebsd.h (IA64_NO_LIBGCC_TFMODE): Likewise.
472 * config/ia64/vms.h (IA64_NO_LIBGCC_XFMODE)
473 (IA64_NO_LIBGCC_TFMODE): Likewise.
475 2016-10-11 Kugan Vivekanandarajah <kuganv@linaro.org>
477 * tree-vrp.c (vrp_intersect_ranges_1): Allocate bitmap before
480 2016-10-10 Andreas Tobler <andreast@gcc.gnu.org>
482 * config.gcc: Add aarch64-*-freebsd* support.
483 * config.host: Likewise.
484 * config/aarch64/aarch64-freebsd.h: New file.
485 * config/aarch64/t-aarch64-freebsd: Ditto.
487 2016-10-10 Jeff Law <law@redhat.com>
489 PR tree-optimization/71947
490 * tree-ssa-dom.c (cprop_into_stmt): Avoid replacing A with B, then
491 B with A within a single statement.
493 2016-10-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
495 PR tree-optimization/77824
496 * gimple-ssa-strength-reduction.c (stmt_cost): Explicitly return
497 zero cost for copies.
498 (find_candidates_dom_walker::before_dom_children): Replace
499 MODIFY_EXPR with SSA_NAME.
500 (replace_mult_candidate): Likewise.
501 (replace_profitable_candidates): Likewise.
503 2016-10-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
505 * config/s390/s390.h: Wrap more macros args in brackets and fix
507 2016-10-10 Georg-Johann Lay <avr@gjlay.de>
509 * config/avr/gen-avr-mmcu-texi.c (string.h): Include.
511 2016-10-10 Andreas Schwab <schwab@suse.de>
514 * config/ia64/ia64.md ("doloop_end"): Reject if mode of loop
515 pseudo is not DImode.
517 2016-10-10 Claudiu Zissulescu <claziss@synopsys.com>
519 * common/config/arc/arc-common.c (arc_option_optimization_table):
520 Remove compact casesi option.
521 * config/arc/arc.c (arc_override_options): Use compact casesi
522 option only for pre-ARCv2 cores.
523 * doc/invoke.texi (mcompact-casesi): Update text.
525 2016-10-09 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
527 * config/rs6000/rs6000.h (TARGET_EFFICIENT_OVERLAPPING_UNALIGNED):
528 Add macro to say we can efficiently handle overlapping unaligned
530 * config/rs6000/rs6000.c (expand_block_compare): Avoid generating
531 poor code for processors older than p8.
533 2016-10-09 Eric Botcazou <ebotcazou@adacore.com>
535 * gen-pass-instances.awk: Remove GNUism.
537 2016-10-09 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
539 * ipa-prop.c (ipcp_transform_function): Set fields m_vr and bits to
540 NULL of (*ipcp_transformations)][node->uid].
542 2016-10-09 John David Anglin <danglin@gcc.gnu.org>
544 * config/pa/pa.h (BIGGEST_ALIGNMENT): Adjust comment.
545 (MALLOC_ABI_ALIGNMENT): Define.
547 2016-10-09 Jakub Jelinek <jakub@redhat.com>
549 * tree-ssa.c (target_for_debug_bind, verify_phi_args,
550 ssa_undefined_value_p, maybe_optimize_var): Use VAR_P and/or
551 VAR_OR_FUNCTION_DECL_P macros.
552 * tree-chkp.c (chkp_register_var_initializer, chkp_make_static_bounds,
553 chkp_get_bounds_for_decl_addr, chkp_parse_array_and_component_ref,
554 chkp_find_bounds_1): Likewise.
555 * ipa-polymorphic-call.c (decl_maybe_in_construction_p): Likewise.
556 * hsa-gen.c (get_symbol_for_decl): Likewise.
557 * cgraphunit.c (check_global_declaration, analyze_functions,
558 handle_alias_pairs, thunk_adjust, cgraph_node::expand_thunk):
560 * gimple-fold.c (can_refer_decl_in_current_unit_p,
561 canonicalize_constructor_val, gimple_get_virt_method_for_vtable):
563 * tree.c (set_decl_section_name, copy_node_stat,
564 need_assembler_name_p, free_lang_data_in_decl, find_decls_types_r,
565 merge_dllimport_decl_attributes, handle_dll_attribute,
566 decl_init_priority_insert, auto_var_in_fn_p, array_at_struct_end_p,
567 verify_type): Likewise.
568 * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior,
569 find_explicit_erroneous_behavior): Likewise.
570 * sdbout.c (sdbout_toplevel_data, sdbout_late_global_decl): Likewise.
571 * ipa.c (process_references): Likewise.
572 * tree-chkp-opt.c (chkp_get_check_result): Likewise.
573 * varasm.c (get_block_for_decl, use_blocks_for_decl_p, make_decl_rtl,
574 notice_global_symbol, assemble_variable, mark_decl_referenced,
575 build_constant_desc, output_constant_def_contents, do_assemble_alias,
576 make_decl_one_only, default_section_type_flags,
577 categorize_decl_for_section, default_encode_section_info): Likewise.
578 * trans-mem.c (requires_barrier): Likewise.
579 * gimple-expr.c (mark_addressable): Likewise.
580 * cfgexpand.c (add_scope_conflicts_1, expand_one_var,
581 expand_used_vars_for_block, clear_tree_used, stack_protect_decl_p,
582 expand_debug_expr): Likewise.
583 * tree-dump.c (dequeue_and_dump): Likewise.
584 * ubsan.c (instrument_bool_enum_load): Likewise.
585 * tree-pretty-print.c (print_declaration): Likewise.
586 * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
587 * tree-ssa-uninit.c (warn_uninitialized_vars): Likewise.
588 * asan.c (asan_protect_global, instrument_derefs): Likewise.
589 * tree-into-ssa.c (rewrite_stmt, maybe_register_def,
590 pass_build_ssa::execute): Likewise.
591 * var-tracking.c (var_debug_decl, track_expr_p): Likewise.
592 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost, split_address_cost):
594 * ipa-split.c (test_nonssa_use, consider_split, mark_nonssa_use):
596 * tree-inline.c (insert_debug_decl_map, remap_ssa_name,
597 can_be_nonlocal, remap_decls, copy_debug_stmt,
598 initialize_inlined_parameters, add_local_variables,
599 reset_debug_binding, replace_locals_op): Likewise.
600 * dse.c (can_escape): Likewise.
601 * ipa-devirt.c (compare_virtual_tables, referenced_from_vtable_p):
603 * tree-diagnostic.c (default_tree_printer): Likewise.
604 * tree-streamer-in.c (unpack_ts_decl_common_value_fields,
605 unpack_ts_decl_with_vis_value_fields,
606 lto_input_ts_decl_common_tree_pointers): Likewise.
607 * builtins.c (builtin_save_expr, fold_builtin_expect,
608 readonly_data_expr): Likewise.
609 * tree-ssa-structalias.c (new_var_info, get_constraint_for_ssa_var,
610 create_variable_info_for, set_uids_in_ptset, visit_loadstore):
612 * gimple-streamer-out.c (output_gimple_stmt): Likewise.
613 * gimplify.c (force_constant_size, gimplify_bind_expr,
614 gimplify_decl_expr, gimplify_var_or_parm_decl,
615 gimplify_compound_lval, gimplify_init_constructor,
616 gimplify_modify_expr, gimplify_asm_expr, gimplify_oacc_declare,
617 gimplify_type_sizes): Likewise.
618 * cgraphbuild.c (record_reference, record_type_list, mark_address,
619 mark_load, mark_store, pass_build_cgraph_edges::execute): Likewise.
620 * tree-ssa-live.c (mark_all_vars_used_1, remove_unused_scope_block_p,
621 remove_unused_locals): Likewise.
622 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p, ptrs_compare_unequal,
623 ref_maybe_used_by_call_p_1, call_may_clobber_ref_p_1): Likewise.
624 * function.c (instantiate_expr, instantiate_decls_1,
625 setjmp_vars_warning, add_local_decl): Likewise.
626 * alias.c (ao_ref_from_mem, get_alias_set, compare_base_symbol_refs):
628 * tree-stdarg.c (find_va_list_reference, va_list_counter_struct_op,
629 va_list_ptr_read, va_list_ptr_write, check_all_va_list_escapes,
630 optimize_va_list_gpr_fpr_size): Likewise.
631 * tree-nrv.c (pass_nrv::execute): Likewise.
632 * tsan.c (instrument_expr): Likewise.
633 * tree-ssa-dce.c (remove_dead_stmt): Likewise.
634 * vtable-verify.c (verify_bb_vtables): Likewise.
635 * tree-dfa.c (ssa_default_def, set_ssa_default_def,
636 get_ref_base_and_extent): Likewise.
637 * toplev.c (wrapup_global_declaration_1, wrapup_global_declaration_2):
639 * tree-sra.c (static bool constant_decl_p, find_var_candidates,
640 analyze_all_variable_accesses): Likewise.
641 * tree-nested.c (get_nonlocal_debug_decl,
642 convert_nonlocal_omp_clauses, note_nonlocal_vla_type,
643 note_nonlocal_block_vlas, convert_nonlocal_reference_stmt,
644 get_local_debug_decl, convert_local_omp_clauses,
645 convert_local_reference_stmt, nesting_copy_decl, remap_vla_decls):
647 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Likewise.
648 * stmt.c (decl_overlaps_hard_reg_set_p): Likewise.
649 * dbxout.c (dbxout_late_global_decl, dbxout_type_fields,
650 dbxout_symbol, dbxout_common_check): Likewise.
651 * expr.c (expand_assignment, expand_expr_real_2, expand_expr_real_1,
652 string_constant): Likewise.
653 * hsa.c (hsa_get_declaration_name): Likewise.
654 * passes.c (rest_of_decl_compilation): Likewise.
655 * tree-ssanames.c (make_ssa_name_fn): Likewise.
656 * tree-streamer-out.c (pack_ts_decl_common_value_fields,
657 pack_ts_decl_with_vis_value_fields,
658 write_ts_decl_common_tree_pointers): Likewise.
659 * stor-layout.c (place_field): Likewise.
660 * symtab.c (symtab_node::maybe_create_reference,
661 symtab_node::verify_base, symtab_node::make_decl_local,
662 symtab_node::copy_visibility_from,
663 symtab_node::can_increase_alignment_p): Likewise.
664 * dwarf2out.c (add_var_loc_to_decl, tls_mem_loc_descriptor,
665 decl_by_reference_p, reference_to_unused, rtl_for_decl_location,
666 fortran_common, add_location_or_const_value_attribute,
667 add_scalar_info, add_linkage_name, set_block_abstract_flags,
668 local_function_static, gen_variable_die, dwarf2out_late_global_decl,
669 optimize_one_addr_into_implicit_ptr,
670 optimize_location_into_implicit_ptr): Likewise.
671 * gimple-low.c (record_vars_into): Likewise.
672 * ipa-visibility.c (update_vtable_references): Likewise.
673 * tree-ssa-address.c (fixed_address_object_p, copy_ref_info):
675 * lto-streamer-out.c (tree_is_indexable, get_symbol_initial_value,
676 DFS::DFS_write_tree_body, write_symbol): Likewise.
677 * langhooks.c (lhd_warn_unused_global_decl,
678 lhd_set_decl_assembler_name): Likewise.
679 * attribs.c (decl_attributes): Likewise.
680 * except.c (output_ttype): Likewise.
681 * varpool.c (varpool_node::get_create, ctor_for_folding,
682 varpool_node::assemble_decl, varpool_node::create_alias): Likewise.
683 * fold-const.c (fold_unary_loc): Likewise.
684 * ipa-prop.c (ipa_compute_jump_functions_for_edge,
685 ipa_find_agg_cst_from_init): Likewise.
686 * omp-low.c (expand_omp_regimplify_p, expand_omp_taskreg,
687 expand_omp_target, lower_omp_regimplify_p,
688 grid_reg_assignment_to_local_var_p, grid_remap_prebody_decls,
689 find_link_var_op): Likewise.
690 * tree-chrec.c (chrec_contains_symbols): Likewise.
691 * tree-cfg.c (verify_address, verify_expr, verify_expr_location_1,
692 gimple_duplicate_bb, move_stmt_op, replace_block_vars_by_duplicates,
693 execute_fixup_cfg): Likewise.
695 PR tree-optimization/77901
696 * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Only optimize
697 if ranges[i].exp is SSA_NAME when looking for >= and only when
698 ranges[i].exp is NULL or SSA_NAME when looking for the other
701 2016-10-09 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
703 * ipa-cp.c (ipcp_alignment_lattice): Remove.
704 (ipcp_param_lattices): Remove field alignment.
705 (print_all_lattices): Remove call to ipcp_alignment_lattice::print.
706 (set_all_contains_variable): Remove call to
707 ipcp_alignment_lattice::set_to_bottom.
708 (initialize_node_lattices): Likewise.
709 (propagate_alignment_accross_jump_function): Remove.
710 (propagate_constants_accross_call): Remove call to
711 propagate_alignment_accross_jump_function.
712 (ipcp_store_alignment_results): Remove.
713 (ipcp_driver): Remove call to ipcp_store_alignment_results.
714 (propagate_bits_accross_jump_function): Handle ancestor jump function.
715 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Remove
716 pretty-printing of alignment jump function.
717 (ipa_set_jf_unknown): Remove assignment to jfunc->alignment.known.
718 (ipa_compute_jump_functions_for_edge): Adjust ipa_bits jump function for
719 alignments and remove computing ipa_alignment jump function.
720 (ipa_node_params_t::duplicate): Remove copying of src_trans->alignments.
721 (ipa_write_jump_functions): Remove streaming for ipa_alignment.
722 (ipa_read_jump_function): Remove reading of ipa_alignment.
723 (write_ipcp_transformation_info): Remove streaming for alignment
725 (read_ipcp_transformation_info): Remove reading of alignment
727 (ipcp_update_alignments): Remove.
728 (ipcp_update_bits): Adjust to set alignment for parameters of pointer
730 (ipcp_transform_function): Remove call to ipcp_update_alignments()
731 and remove assignment to (*ipcp_transformations)[node->uid].alignments.
732 * ipa-prop.h (ipa_alignment): Remove.
733 (ipa_jump_func): Remove field alignment.
734 (ipcp_transformation_summary): Remove field alignments.
735 * doc/invoke.texi: Mark fipa-cp-alignment as obsolete.
736 * opts.c (default_options_table): Remove entry for fipa-cp-alignment.
737 (enable_fdo_optimizations): Remove checking for fipa-cp-alignment.
739 2016-10-08 Eric Botcazou <ebotcazou@adacore.com>
741 * config/sparc/sparc.h (FIXED_REGISTERS): Add %icc.
743 * config/visium/visium.c (visium_expand_int_cstore): Revert latest
745 (visium_expand_fp_cstore): Likewise.
747 2016-10-08 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
749 * diagnostic-core.h (warning_at_rich_loc_n): Declare.
750 * diagnostic.c (warning_at_rich_loc_n): New function.
751 (diagnostic_n_impl_richloc): Likewise.
752 (diagnostic_n_impl): Move most of the function to
753 diagnostic_n_impl_richloc and call it.
755 2016-10-08 Jakub Jelinek <jakub@redhat.com>
757 * gen-pass-instances.awk: Rewritten.
758 * Makefile.in (pass-instances.def): Depend on $(PASSES_EXTRA), pass
759 $(PASSES_EXTRA) after passes.def to the script.
760 * config/i386/t-i386 (PASSES_EXTRA): Add i386-passes.def.
761 * config/i386/i386-passes.def: New file.
762 * config/i386/i386-protos.h (make_pass_insert_vzeroupper,
763 make_pass_stv): Declare.
764 * config/i386/i386.c (pass_stv::pass_stv): Initialize timode_p to
766 (pass_stv::gate): Depending on timode_p member require TARGET_64BIT
768 (pass_stv::clone, pass_stv::set_pass_param): New methods.
769 (pass_stv::timode_p): New non-static data member.
770 (ix86_option_override): Don't register passes here.
772 * doc/invoke.texi: Document accepting Else, fallthrough.
774 * doc/invoke.texi (-Wimplicit-fallthrough): Document FALLTHRU comment
777 * doc/invoke.texi (-Wimplicit-fallthrough): Document the accepted
778 FALLTHRU comment styles.
780 2016-10-07 Andrew Pinski <apinski@cavium.com>
782 * config/aarch64/aarch64-arches.def (AARCH64_ARCH): #undef at the end.
783 * config/aarch64/aarch64-cores.def (AARCH64_CORE): Likewise.
784 * config/aarch64/aarch64-fusion-pairs.def (AARCH64_FUSION_PAIR):
786 * config/aarch64/aarch64-option-extensions.def (AARCH64_OPT_EXTENSION):
788 * config/aarch64/aarch64-tuning-flags.def (AARCH64_EXTRA_TUNING_OPTION):
790 * config/aarch64/aarch64-opts.h (AARCH64_CORE): Don't #undef here.
791 (AARCH64_ARCH): Likewise.
792 * common/config/aarch64/aarch64-common.c (AARCH64_OPT_EXTENSION):
794 (AARCH64_CORE): Likewise.
795 (AARCH64_ARCH): Likewise.
796 * config/aarch64/aarch64-protos.h (AARCH64_FUSION_PAIR): Likewise.
797 (AARCH64_EXTRA_TUNING_OPTION): Likewise.
798 * config/aarch64/aarch64.c (AARCH64_FUION_PAIR): Likewise.
799 (AARCH64_EXTRA_TUNING_OPTION): Likewise.
800 (AARCH64_ARCH): Likewise.
801 (AARCH64_CORE): Likewise.
802 * config/aarch64/aarch64.h (AARCH64_CORE): Likewise.
803 * config/aarch64/driver-aarch64.c (AARCH64_OPT_EXTENSION): Likewise.
804 (AARCH64_CORE): Likewise.
805 (AARCH64_ARCH): Likewise.
807 2016-10-06 Michael Meissner <meissner@linux.vnet.ibm.com>
809 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Split
810 -mfloat128 into -mfloat128-type that enables the IEEE 128-bit
811 floating point type infrastructre, and -mfloat128 that enables the
812 keyword. Define __FLOAT128__ if -mfloat128, and __FLOAT128_TYPE__
813 if -mfloat128-type. Define __ibm128 to be long double by default.
814 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print whether
815 the IEEE 128-bit floating point type infrastructure should
816 automatically be enabled.
817 (rs6000_init_hard_regno_mode_ok): Switch to use -mfloat128-type
818 instead of -mfloat128 to enable KFmode.
819 (rs6000_option_override_internal): Split the option -mfloat128
820 into -mfloat128-type and -mfloat128. On Linux PowerPC 64-bit
821 systems, automatically set -mfloat128-type, but don't enable it on
822 other operating systems. Move setting the long double size and
823 IEEE quad support before the IEEE 128-bit floating point changes.
824 (rs6000_init_builtins): Do not create a unique type for __ibm128
825 if long double is IBM extended double, instead rely on __ibm128
826 being defined as 'long double'. If -mfloat128-type and not
827 -mfloat128, create the KFmode type with an undocumented __ieee128
829 (rs6000_init_libfuncs): Use -mfloat128-type instead of
830 -mfloat128 for tests about the types, but keep tests for
831 -mfloat128 to enable the keyword support.
832 (rs6000_complex_function_value): Likewise.
833 (rs6000_scalar_mode_supported_p): Likewise.
834 (rs6000_floatn_mode): Likewise.
835 (rs6000_c_mode_for_suffix): Likewise.
836 (rs6000_opt_masks): Add -mfloat128-type.
837 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add support for
838 -mfloat128-type being split from -mfloat128. Add
839 -mfloat128-hardware, which was missing.
840 * config/rs6000/rs6000.opt (-mfloat128): Split -mfloat128 into
841 -mfloat128 and -mfloat128-type:
842 (-mfloat128-type): Likewise.
843 * config/rs6000/linux64.h (TARGET_FLOAT128_ENABLE_TYPE): Define so
844 that 64-bit Linux systems with enable -mfloat128-type by default
846 * config/rs6000/rs6000.h (TARGET_FLOAT128_ENABLE_TYPE): Likewise.
847 (FLOAT128_VECTOR_P): Switch IEEE 128-bit floating points to use
848 -mfloat128-type instead of -mfloat128.
849 (FLOAT128_2REG_P): Likewise.
850 (MASK_FLOAT128_TYPE): Likewise.
851 (ALTIVEC_ARG_MAX_RETURN): Likewise.
852 (RS6000_BTM_FLOAT128): Likewise.
853 (TARGET_FLOAT128): Poison old identifiers.
854 (OPTION_MASK_FLOAT128): Likewise.
855 (MASK_FLOAT128): Likewise.
856 * config/rs6000/rs6000.md (FP): Likewise.
857 (FLOAT128): Likewise.
858 (fix_trunc<mode>di2): Likewise.
859 (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
860 (floatdi<mode>2): Likewise.
861 (floatuns<SDI:mode><IEEE128:mode>2): Likewise.
862 (neg<mode>2, FLOAT128 iterator): Likewise.
863 (abs<mode>2, FLOAT128 iterator): Likewise.
864 (ieee_128bit_negative_zero): Likewise.
865 (ieee_128bit_vsx_neg<mode>2): Likewise.
866 (ieee_128bit_vsx_neg<mode>2_internal): Likewise.
867 (ieee_128bit_vsx_abs<mode>2): Likewise.
868 (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
869 (ieee_128bit_vsx_nabs<mode>2): Likewise.
870 (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
871 (extendiftf2): Likewise.
872 (extendifkf2): Likewise.
873 (extendtfkf2): Likewise.
874 (trunciftf2): Likewise.
875 (truncifkf2): Likewise.
876 (trunckftf2): Likewise.
877 (trunctfif2): Likewise.
878 (extendkftf2): Likewise.
879 (trunctfkf2): Likewise.
881 2016-10-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
883 * simplify-rtx.c (simplify_immed_subreg): Zero-initialize tmp array
884 before merging in bytes to pass down to real_from_target.
886 2016-10-07 Richard Biener <rguenther@suse.de>
888 * tree-ssa-propagate.c (replace_phi_args_in): Remove no longer
890 (substitute_and_fold_dom_walker::before_dom_children):
891 Substitute and fold before pass specific folding to avoid
892 feeding that with SSA names that will be later released.
893 * tree-ssa-ccp.c (get_value_for_expr): Guard for new SSA names
894 introduced by folding and visited by evaluate_stmt called during
896 (likely_value): Likewise.
897 (evaluate_stmt): Likewise.
898 * tree-vrp.c (simplify_truth_ops_using_ranges): Fold modified stmt.
899 (simplify_div_or_mod_using_ranges): Likewise.
900 (simplify_min_or_max_using_ranges): Likewise.
901 (simplify_abs_using_ranges): Likewise.
902 (simplify_conversion_using_ranges): Likewise.
903 (simplify_float_conversion_using_ranges): Likewise.
904 (simplify_stmt_using_ranges): Likewise.
906 2016-10-07 Marek Polacek <polacek@redhat.com>
908 * gimplify.c (should_warn_for_implicit_fallthrough): Check for
909 FALLTHROUGH_LABEL_P here...
910 (warn_implicit_fallthrough_r): ...not here.
912 2016-10-07 Bernd Schmidt <bschmidt@redhat.com>
914 PR tree-optimization/77880
915 * expr.c (by_pieces_ninsns): Use unsigned HOST_WIDE_INT where
918 2016-10-07 Marek Polacek <polacek@redhat.com>
921 * gimplify.c (last_stmt_in_scope): Add check for FALLTHROUGH ().
923 2016-10-07 Richard Biener <rguenther@suse.de>
925 * bitmap.h: Document constraints on bitmap modification while
928 2016-10-07 Richard Biener <rguenther@suse.de>
930 * bitmap.c (bitmap_elem_to_freelist): Set indx to -1.
931 * bitmap.h (bmp_iter_set): When advancing to the next element
932 check that we didn't remove the current one.
933 (bmp_iter_and): Likewise.
934 (bmp_iter_and_compl): Likewise.
935 * tree-ssa.c (release_defs_bitset): Do not remove worklist bit
936 we currently iterate on but keep a one-level queue.
937 * sched-deps.c (remove_from_deps): Do not clear current bit
938 but keep a one-level queue.
940 2016-10-07 Jakub Jelinek <jakub@redhat.com>
942 PR tree-optimization/77664
943 * tree-ssa-reassoc.c (update_range_test): Also clear low and high
944 for the other ranges.
945 (optimize_range_tests_diff): Fix up formatting.
946 (optimize_range_tests_var_bound): New function.
947 (optimize_range_tests): Use it.
949 2016-10-07 Martin Liska <mliska@suse.cz>
951 * coverage.c (build_gcov_exit_decl): Fix priority what
954 2016-10-07 Richard Biener <rguenther@suse.de>
956 * gimple-low.c (lower_gimple_bind): Clear DECL_CHAIN of
957 vars in gimple_bind_vars but not in BLOCK_VARS.
959 2016-10-07 Richard Biener <rguenther@suse.de>
961 PR tree-optimization/77879
962 * tree-ssa-structalias.c (handle_const_call): Properly handle
964 (handle_pure_call): Likewise.
966 2016-10-06 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
968 * config/rs6000/rs6000.c (rs6000_elf_asm_out_constructor)
969 (rs6000_elf_asm_out_destructor): increase size of buf to avoid
972 2016-10-06 Andrew Pinski <apinski@cavium.com>
974 * config/aarch64/aarch64-cores.def: Add a comment before each
977 2016-10-06 Kugan Vivekanandarajah <kuganv@linaro.org>
979 PR tree-optimization/77862
980 * tree-vrp.c (add_equivalence): Use get_value_range so that
981 num_vr_values is checked before accessing vr_values.
983 2016-10-06 Kugan Vivekanandarajah <kuganv@linaro.org>
985 * tree-vrp.c (evrp_dom_walker::before_dom_children): Handle
988 2016-10-05 Jeff Law <law@redhat.com>
990 PR tree-optimization/71661
991 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Handle case when
992 removal of a forwarder exposes a new natural loop.
994 2016-10-06 Uros Bizjak <ubizjak@gmail.com>
996 * config/i386/sse.md (andnot<mode>3): Add FALLTHRU comments.
997 Introduce ssesuffix variable.
998 (<mask_codefor><code><mode>3<mask_name>): Ditto.
999 (*<code><mode>3): Ditto.
1001 2016-10-06 Jan Hubicka <hubicka@ucw.cz>
1003 * postreload.c (reload_cse_simplify): Skip also USE when detecting
1006 2016-10-06 Richard Biener <rguenther@suse.de>
1008 PR tree-optimization/77855
1009 * tree-ssa-pre.c (prune_clobbered_mems): Queue exprs to remove
1010 instead of removing the current item while iterating over the set
1013 2016-10-06 James Clarke <jrtc27@jrtc27.com>
1014 Eric Botcazou <ebotcazou@adacore.com>
1017 * config/sparc/sparc.c (classify_data_t): Remove int_regs field.
1018 (classify_registers): Don't set it
1019 (function_arg_slotno): Don't initialize and test it. Tidy up.
1021 2016-10-06 Richard Biener <rguenther@suse.de>
1023 PR tree-optimization/77839
1024 * tree-ssa-sccvn.c (set_ssa_val_to): Forbid value -> constant value
1027 2016-10-06 Martin Liska <mliska@suse.cz>
1029 * gcc.c: Set -fprofile-update=atomic when profiling is
1030 enabled and -pthread is set. Warn when one combines
1031 -pthread and -fprofile-update=single for an app using
1034 2016-10-06 Martin Liska <mliska@suse.cz>
1037 * expmed.h (mul_highpart_cost_ptr): Add an gcc_assert.
1038 * gimple-ssa-strength-reduction.c (slsr_process_cast):
1039 Initialize a pointer to NULL.
1040 (slsr_process_copy): Likewise.
1041 * input.c (location_get_source_line): Likewise.
1042 * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Likewise.
1044 2016-10-05 Andrew Senkevich <andrew.senkevich@intel.com>
1046 * common/config/i386/i386-common.c (OPTION_MASK_ISA_PCOMMIT_UNSET,
1047 OPTION_MASK_ISA_PCOMMIT_SET): Deleted definitions.
1048 (ix86_handle_option): Deleted handle of OPT_mpcommit.
1049 * config.gcc: Deleted pcommitintrin.h
1050 * config/i386/pcommitintrin.h: Deleted file.
1051 * config/i386/cpuid.h (bit_PCOMMIT): Deleted.
1052 * config/i386/driver-i386.c (host_detect_local_cpu): Deleted pcommit
1054 * config/i386/i386-c.c (ix86_target_macros_internal): Deleted define
1056 * config/i386/i386.c (ix86_target_string): Deleted -mpcommit.
1057 (PTA_PCOMMIT): Deleted define.
1058 (ix86_option_override_internal): Deleted handle of option.
1059 (ix86_valid_target_attribute_inner_p): Deleted pcommit.
1060 * config/i386/i386-builtin.def (IX86_BUILTIN_PCOMMIT,
1061 __builtin_ia32_pcommit): Deleted.
1062 * config/i386/i386.h (TARGET_PCOMMIT, TARGET_PCOMMIT_P): Deleted.
1063 * config/i386/i386.md (unspecv): Deleted UNSPECV_PCOMMIT.
1064 (pcommit): Deleted instruction.
1065 * config/i386/i386.opt: Mention -mpcommit deprecation.
1066 * config/i386/x86intrin.h: Deleted inclusion of pcommitintrin.h.
1068 2016-10-05 Uros Bizjak <ubizjak@gmail.com>
1071 * config/i386/sse.md (<mask_codefor><code><mode>3<mask_name>):
1072 Remove wrong assert.
1073 (<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>:
1074 Use <round_constraint> as operand 1 constraint.
1076 2016-10-05 Jakub Jelinek <jakub@redhat.com>
1079 * ubsan.c (ubsan_create_data): Call initialize_sanitizer_builtins here.
1080 (ubsan_instrument_float_cast): And not here.
1083 * ubsan.c (ubsan_ids): New GTY(()) array.
1084 (ubsan_type_descriptor, ubsan_create_data): Use ubsan_ids
1085 instead of static local counters.
1087 2016-10-05 Martin Sebor <msebor@redhat.com>
1090 * config/linux.h (TARGET_PRINTF_POINTER_FORMAT): Define macro.
1091 * config/linux.c (gnu_libc_printf_pointer_format): Remove.
1092 * targhooks.c [DEFAULT_LIBC == LIBC_UCLIBC) && SINGLE_LIBC]
1093 (default_printf_pointer_format): Define function.
1094 * targhooks.c (linux_printf_pointer_format): Define new function.
1095 * targhooks.h (linux_printf_pointer_format): Declare.
1096 (gnu_libc_printf_pointer_format): Remove declaration.
1098 2016-10-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1100 * fold-const.c (native_encode_real): Fix logic for selecting offset
1101 to write to when BYTES_BIG_ENDIAN.
1103 2016-10-05 Wilco Dijkstra <wdijkstr@arm.com>
1105 * builtins.c (fold_builtin_strchr): Remove function.
1106 (fold_builtin_strrchr): Likewise.
1107 (fold_builtin2): Remove strchr, index, strrchr, rindex cases.
1108 * gimple-fold.c (target_char_cst_p): New function.
1109 (gimple_fold_builtin_strchr) Add more foldings.
1110 (gimple_fold_builtin): Add index, strrchr, rindex cases.
1112 2016-10-05 Richard Biener <rguenther@suse.de>
1115 * genmatch.c (capture_info::walk_c_expr): Diagnose unknown
1116 capture ids in c-exprs.
1118 2016-10-05 Richard Biener <rguenther@suse.de>
1121 * genmatch.c (dt_operand::gen_match_op): Amend operand_equal_p
1122 with types_match for GIMPLE code gen to handle type mismatched
1124 (dt_operand::gen): Adjust.
1125 * match.pd ((X /[ex] A) * A -> X): Properly handle converted
1128 2016-10-05 Richard Biener <rguenther@suse.de>
1130 * match.pd (copysign(x, CST) -> [-]abs (x)): New pattern.
1132 2016-10-05 Richard Biener <rguenther@suse.de>
1135 * genmatch.c (parser::parse_c_expr): Handle premature EOF.
1137 2016-10-05 Pierre-Marie de Rodat <derodat@adacore.com>
1139 * dwarf2out.c (dwarf2out_imported_module_or_decl): Move DWARF
1140 version check to protect only DW_TAG_imported_module generation.
1142 2016-10-05 Richard Biener <rguenther@suse.de>
1145 * match.pd (min(a,-a) -> -abs(a)): New pattern.
1147 2016-10-04 Ian Lance Taylor <iant@golang.org>
1149 * explow.c (allocate_dynamic_stack_space): Call
1150 do_pending_stack_adjust before handling flag_split_stack.
1152 2016-10-04 David Malcolm <dmalcolm@redhat.com>
1154 * genattrtab.c (make_internal_attr): Supply dummy column number to
1157 * genoutput.c (init_insn_for_nothing): Likewise.
1158 * gensupport.c (add_define_attr): Likewise.
1159 * read-md.c (message_at_1): Print column number.
1160 (fatal_with_file_and_line): Likewise.
1161 (rtx_reader::read_char): Track column numbers.
1162 (rtx_reader::unread_char): Likewise.
1163 (rtx_reader::rtx_reader): Initialize m_read_md_colno.
1164 (rtx_reader::handle_include): Stash and restore m_read_md_colno.
1165 (rtx_reader::handle_file): Initialize m_read_md_colno.
1166 (rtx_reader::get_current_location): Supply column number to
1168 * read-md.h (struct file_location): Add field "colno".
1169 (file_location::file_location): Likewise.
1170 (rtx_reader::get_colno): New accessor.
1171 (rtx_reader::m_read_md_colno): New field.
1172 (rtx_reader::m_last_line_colno): New field.
1174 2016-10-04 Jakub Jelinek <jakub@redhat.com>
1176 * doc/extend.texi (Java Exceptions): Remove.
1177 (java_interface): Remove.
1179 2016-10-04 Doug Gilmore <doug.gilmore@imgtec.com>
1181 PR tree-optimization/77808
1182 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Check base_addr
1183 and addr are different before copying points-to information.
1185 2016-10-04 Uros Bizjak <ubizjak@gmail.com>
1187 * config/i386/x86-tune.def (X86_TUNE_VECTORIZE_DOUBLE): Remove.
1188 * config/i386/i386.h (TARGET_VECTORIZE_DOUBLE): Remove.
1189 * config/i386/i386.c (ix86_add_stmt_cost): Use TARGET_BONNEL instead
1190 of !TARGET_VECTORIZE_DOUBLE when penalizing DFmode vector ops.
1192 2016-10-04 Richard Biener <rguenther@suse.de>
1194 PR tree-optimization/77399
1195 * tree-ssa-forwprop.c (simplify_vector_constructor): Properly
1196 verify the target can convert.
1198 2016-10-04 Richard Biener <rguenther@suse.de>
1201 * explow.c (plus_constant): Verify the mode of the constant
1202 pool offset before calling plus_constant.
1204 2016-10-04 Richard Biener <rguenther@suse.de>
1207 * match.pd (X / abs (X) -> X < 0 ? -1 : 1): Drop vector
1208 type support, mark with :C.
1209 (X / -X -> -1): Mark with :C.
1211 2016-10-04 Jakub Jelinek <jakub@redhat.com>
1213 * defaults.h (JCR_SECTION_NAME, TARGET_USE_JCR_SECTION): Remove.
1214 * system.h (JCR_SECTION_NAME, TARGET_USE_JCR_SECTION): Poison.
1215 * doc/tm.texi.in (TARGET_USE_JCR_SECTION): Remove.
1216 * doc/tm.texi: Regenerated.
1217 * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Remove.
1218 * config/i386/cygming.h (TARGET_USE_JCR_SECTION): Remove.
1219 * config/darwin.h (JCR_SECTION_NAME): Remove.
1220 * config/pa/pa64-hpux.h (JCR_SECTION_NAME): Remove.
1221 * config/rs6000/aix71.h (TARGET_USE_JCR_SECTION): Remove.
1222 * config/rs6000/aix51.h (TARGET_USE_JCR_SECTION): Remove.
1223 * config/rs6000/aix52.h (TARGET_USE_JCR_SECTION): Remove.
1224 * config/rs6000/aix53.h (TARGET_USE_JCR_SECTION): Remove.
1225 * config/rs6000/aix61.h (TARGET_USE_JCR_SECTION): Remove.
1227 2016-10-03 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1229 * ipa-cp.c (propagate_bits_accross_jump_function): Introduce space
1230 between "because" and "param" in dump message in call to fprintf.
1232 2016-10-03 Jeff Law <law@redhat.com>
1234 PR tree-optimization/71550
1235 PR tree-optimization/71403
1236 * tree-ssa-threadbackward.c: Include tree-vectorizer.h
1237 (profitable_jump_thread_path): Also return boolean indicating if
1238 the realized path will create an irreducible loop.
1239 Remove loop depth tests from 71403.
1240 (fsm_find_control_statement_thread_paths): Remove loop depth tests
1241 from 71403. If threading will create an irreducible loop, then
1242 throw away loop iteration and related information.
1244 2016-10-03 Uros Bizjak <ubizjak@gmail.com>
1246 * configure.ac (strict_warn): Merge -Wmissing-format-attribute and
1247 -Woverloaded-virtual checks for warning options.
1248 * configure: Regenerate.
1250 2016-10-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
1252 PR preprocessor/77699
1253 * input.c (maybe_grow): Don't allocate one byte extra headroom.
1254 (get_next_line): Return false on error.
1255 (read_next_line): Removed, use get_next_line instead.
1256 (read_line_num): Don't copy the line.
1257 (location_get_source_line): Don't use static data.
1258 (selftest::test_reading_source_line): Add more test cases.
1260 2016-10-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1263 2016-09-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1265 * ifcvt.c (noce_try_avoid_const_materialization): New function.
1266 (noce_process_if_block): Use it.
1268 2016-10-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
1270 * doc/invoke.texi: Update -Wint-in-bool-context.
1272 2016-10-02 Jakub Jelinek <jakub@redhat.com>
1274 * dwarf2out.c (output_fde, output_call_frame_info,
1275 dwarf2out_do_cfi_startproc, set_indirect_string,
1276 gen_internal_sym, output_die, output_line_info): Use
1277 MAX_ARTIFICIAL_LABEL_BYTES as char array sizes for
1278 ASM_GENERATE_INTERNAL_LABEL output.
1280 2016-10-01 Richard Biener <rguenther@suse.de>
1283 * genmatch.c (get_operand_type): Add operand position arg
1284 and handle COND_EXPR comparison operand with fixed boolean_type_node.
1285 (expr::gen_transform): Adjust.
1286 (dt_simplify::gen_1): Likewise.
1288 2016-10-01 Jakub Jelinek <jakub@redhat.com>
1290 * config/i386/sse.md (<mask_codefor><code><mode>): Add FALLTHRU
1291 comments. Simplify asserts, remove unnecessary conditions.
1293 (*<code><mode>3): Likewise.
1295 2016-09-30 Jakub Jelinek <jakub@redhat.com>
1297 * doc/invoke.texi (-Wregister): Document.
1299 2016-09-30 Bernd Edlinger <bernd.edlinger@hotmail.de>
1301 * configure.ac: Split CHECKING_P into CHECKING_P and
1302 ENABLE_EXTRA_CHECKING.
1303 * configure: Regenerated.
1304 * config.in: Adjust commment of CHECKING_P. Add ENABLE_EXTRA_CHECKING.
1305 * common.opt (flag_checking): Use CHECKING_P and ENABLE_EXTRA_CHECKING.
1307 2016-09-30 Prasad Ghangal <prasad.ghangal@gmail.com>
1310 * gcc.c (process_command): For @filename handling, output
1311 the correct name if the file does not exist.
1313 2016-09-30 Marek Polacek <polacek@redhat.com>
1315 * config/aarch64/aarch64-simd.md: Adjust fall through comments.
1316 * config/alpha/predicates.md: Likewise.
1318 2016-09-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1320 * ifcvt.c (noce_try_avoid_const_materialization): New function.
1321 (noce_process_if_block): Use it.
1323 2016-09-30 Martin Liska <mliska@suse.cz>
1325 * doc/invoke.texi: Document asan-use-after-return that
1326 it's disabled by default in runtime.
1328 2016-09-30 Richard Biener <rguenther@suse.de>
1330 * tree-vrp.c (intersect_ranges): If we failed to handle
1331 the intersection choose a constant singleton range if available.
1333 2016-09-30 Richard Biener <rguenther@suse.de>
1335 PR tree-optimization/77399
1336 * tree-ssa-forwprop.c (simplify_vector_constructor): Handle
1337 float <-> int conversions.
1339 2016-09-30 Alan Modra <amodra@gmail.com>
1341 * config/rs6000/rs6000.c (rs6000_opt_vars): Revert last change.
1343 2016-09-29 Uros Bizjak <ubizjak@gmail.com>
1345 * config/i386/driver-i386.c (host_detect_local_cpu): Check maximum
1346 ext_level before calling CPUID with 0x80000008.
1347 Simplify xgetbv checks.
1349 2016-09-29 David Malcolm <dmalcolm@redhat.com>
1351 * Makefile.in (OBJS): Add print-rtl-function.o.
1352 * print-rtl-function.c: New file.
1353 * print-rtl.h (print_rtx_function): New decl.
1355 2016-09-29 Uros Bizjak <ubizjak@gmail.com>
1358 * config/i386/cpuid.h (__get_cpuid_count): New.
1359 (__get_cpuid): Rename __level to __leaf.
1361 2016-09-29 Marek Polacek <polacek@redhat.com>
1363 * genattrtab.c (write_attr_case): Also emit FALLTHRU marker.
1365 2016-09-29 Bernd Schmidt <bschmidt@redhat.com>
1367 * builtins.c (expand_builtin_memcmp): don't swap args unless
1368 result is only being compared with zero.
1370 2016-09-29 Marek Polacek <polacek@redhat.com>
1372 * dwarf2out.c (loc_descriptor): Add fall through comment.
1373 (add_const_value_attribute): Likewise.
1375 2016-09-29 Matthew Wahab <matthew.wahab@arm.com>
1377 * config/arm/arm.md (*arm_movsi_insn): Replace "t2" arch attribute
1378 with "v6t2". Move "arch" attribute above "pool_range".
1379 * config/arm/vfp.md (*arm_movhi_vfp): Replace "t2" arch attribute
1381 (*thumb2_movhi_vfp): Likewise.
1382 (*arm_movhi_fp16): Likewise.
1383 (*thumb2_movhi_fp16): Likewise.
1384 (*arm_movsi_vfp): Remove "arch" attribute.
1385 (*thumb2_movsi_vfp): Likewise.
1387 2016-09-29 Martin Liska <mliska@suse.cz>
1389 * doc/extend.texi: Remove limitation of Objective C for
1390 __attribute__((constructor)) and __attribute__((destructor)).
1392 2016-09-29 Richard Biener <rguenther@suse.de>
1394 PR tree-optimization/77768
1395 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
1396 Handle stores to readonly memory when removing redundant stores.
1398 2016-09-29 Richard Biener <rguenther@suse.de>
1401 * match.pd: Add X / abs (X) -> X < 0 ? -1 : 1 and
1402 X / -X -> -1 simplifications.
1404 2016-09-29 Richard Biener <rguenther@suse.de>
1407 * match.pd: Add max(a,-a) -> abs(a) pattern.
1408 * tree-ssa-phiopt.c (minmax_replacement): Disable for
1409 HONOR_SIGNED_ZEROS types.
1411 2016-09-29 James Greenhalgh <james.greenhalgh@arm.com>
1413 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Remove.
1414 * system.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Poison.
1416 2016-09-29 Richard Biener <rguenther@suse.de>
1418 * tree-vrp.c (set_defs_to_varying): New helper avoiding
1419 writing to vr_const_varying.
1420 (vrp_initialize): Call it.
1421 (vrp_visit_stmt): Likewise.
1422 (evrp_dom_walker::before_dom_children): Likewise.
1424 2016-09-29 Richard Biener <rguenther@suse.de>
1426 * tree-vect-stmts.c (vectorizable_load): Avoid emitting vector
1427 constructors with vector elements.
1429 2016-09-29 Richard Biener <rguenther@suse.de>
1431 PR tree-optimization/77768
1432 * tree-ssa-sccvn.c (visit_reference_op_store): Properly deal
1433 with stores to a place we know has a constant value.
1435 2016-09-29 Alan Modra <amodra@gmail.com>
1437 * config/rs6000/sysv4.opt (mgnu-attribute): New option.
1438 * doc/invoke.texi: Document it.
1439 * config/rs6000/rs6000.c (HAVE_LD_PPC_GNU_ATTR_LONG_DOUBLE): Define.
1440 (rs6000_passes_float): Comment.
1441 (rs6000_passes_long_double): New static var.
1442 (call_ABI_of_interest): Return false unless rs6000_gnu_attr is set.
1443 (init_cumulative_args): Set up to emit fp .gnu_attribute for
1444 ELF 64-bit ABIs as well as 32-bit ELF. Correct rs6000_passes_float
1445 to include fp values returned in vectors.
1446 Set rs6000_passes_long_double.
1447 (rs6000_function_arg_advance_1): Likewise for function args.
1448 (rs6000_elf_file_end): Emit fp .gnu_attribute for ELF 64-bit ABIs,
1449 and SPE. Emit long double tag value too.
1450 (rs6000_opt_vars): Add gnu-attr.
1451 * configure.ac (HAVE_LD_PPC_GNU_ATTR_LONG_DOUBLE): New ppc32 test.
1452 * configure: Regenerate.
1453 * config.in: Regenerate.
1455 2016-09-28 Jakub Jelinek <jakub@redhat.com>
1457 * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Use x > 0 instead
1459 (format_floating, format_string, format_directive,
1460 get_destination_size, pass_sprintf_length::handle_gimple_call):
1463 2016-09-28 Jakub Jelinek <jakub@redhat.com>
1465 * gimple-ssa-sprintf.c: Fix comment formatting.
1466 (format_integer): Use is_gimple_assign.
1467 (pass_sprintf_length::handle_gimple_call): Use gimple_call_builtin_p
1468 and gimple_call_fndecl. Reorder case BUILT_IN_SPRINTF_CHK. Fix up
1469 BUILT_IN_SNPRINTF_CHK comment. Replace "to to" with "to" in comment.
1470 (pass_sprintf_length::execute): Use is_gimple_call.
1472 2016-09-28 Wilco Dijkstra <wdijkstr@arm.com>
1474 * gimple-fold.c (gimple_fold_builtin): After failing to fold
1475 strchr, also try the generic folding.
1477 2016-09-28 Martin Sebor <msebor@redhat.com>
1480 * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call):
1483 2016-09-28 Martin Sebor <msebor@redhat.com>
1486 * gimple-ssa-sprintf.c (format_integer): Fail gracefully when
1487 length modifier is not expected.
1488 (format_floating): Ignore l length modifier and fail gracefuly
1489 when it isn't one of the other expected ones.
1491 2016-09-28 Martin Sebor <msebor@redhat.com>
1494 * varasm.c (assemble_addr_to_section): Increase local buffer size.
1496 2016-09-27 Richard Biener <rguenther@suse.de>
1498 * dwarf2out.c (cu_die_list): New global.
1499 (dwarf2out_finish): Walk cu_die_list instead of limbo DIEs. Add
1500 main_comp_unit_die to cu_die_list if we created it.
1501 Move break_out_includes ...
1502 (dwarf2out_early_finish): ... here. Push created CU DIEs onto
1505 2016-09-28 Richard Biener <rguenther@suse.de>
1507 * dwarf2out.c (struct die_struct): Add removed flag.
1508 (lookup_type_die): If the DIE is marked as removed, clear
1509 TYPE_SYMTAB_DIE and return NULL.
1510 (lookup_decl_die): If the DIE is marked as removed, remove it
1511 from the hash and return NULL.
1512 (mark_removed): New helper.
1513 (prune_unused_types_prune): Call it for removed DIEs.
1514 (gen_subprogram_die): Move the premark_used_types call to after
1515 DIEs for the functions scopes are generated.
1516 (process_scope_var): Do not re-create pruned types or type decls.
1517 Make sure to also re-parent type decls.
1518 (dwarf2out_finish): Move unused type pruning and debug_types
1520 (dwarf2out_early_finish): ... here.
1522 2016-09-29 Claudiu Zissulescu <claziss@synopsys.com>
1524 * config/arc/arc-c.c: New file.
1525 * config/arc/arc-c.def: Likewise.
1526 * config/arc/t-arc: Likewise.
1527 * config.gcc: Include arc-c.o as c and cpp object.
1528 * config/arc/arc-protos.h (arc_cpu_cpp_builtins): Add prototype.
1529 * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Use
1530 arc_cpu_cpp_builtins.
1532 2016-09-29 Claudiu Zissulescu <claziss@synopsys.com>
1534 * config/arc/arc.md (*rotrsi3_cnt1): New pattern.
1535 (*ashlsi2_cnt1, *lshrsi3_cnt1, *ashrsi3_cnt1): Likewise.
1537 2016-09-28 Nathan Sidwell <nathan@acm.org>
1539 * gimple-pretty-print.c (dump_gimple_call_args): Simplify "' "
1542 2016-09-28 Wilco Dijkstra <wdijkstr@arm.com>
1544 PR tree-optimization/61056
1545 * gimple-fold.c (gimple_fold_builtin_strchr):
1546 New function to optimize strchr (s, 0) to strlen.
1547 (gimple_fold_builtin): Add BUILT_IN_STRCHR case.
1549 2016-09-27 Robin Dapp <rdapp@linux.vnet.ibm.com>
1551 PR tree-optimization/77724
1552 * tree-vect-loop-manip.c (create_intersect_range_checks_index):
1553 Add tree_fits_shwi_p check.
1555 2016-09-27 Jakub Jelinek <jakub@redhat.com>
1557 * auto-inc-dec.c (try_merge): Remove break after return.
1558 * cselib.c (autoinc_split): Likewise.
1559 * explow.c (promote_mode): Likewise.
1560 * fixed-value.c (fixed_arithmetic): Likewise.
1561 * hsa.c (hsa_internal_fn::get_arity): Likewise.
1562 * rtlanal.c (modified_between_p, modified_in_p): Likewise.
1563 * trans-mem.c (get_attrs_for): Likewise.
1564 * tree-if-conv.c (if_convertible_stmt_p): Likewise.
1565 * tree-vrp.c (simplify_stmt_using_ranges): Likewise.
1566 * config/aarch64/aarch64-builtins.c (aarch64_fold_builtin): Likewise.
1567 * config/aarch64/aarch64.c (aarch64_get_condition_code_1): Likewise.
1568 * config/c6x/c6x.c (c6x_get_unit_specifier): Likewise.
1569 * config/cr16/cr16.c (legitimate_pic_operand_p): Likewise.
1570 * config/cris/cris.c (cris_op_str): Likewise.
1571 * config/mn10300/mn10300.c (cc_flags_for_code): Likewise.
1572 * config/tilepro/tilepro.c (tilepro_emit_setcc_internal_di): Likewise.
1574 2016-09-27 Nathan Sidwell <nathan@codesourcery.com>
1576 * internal-fn.h (IFN_UNIQUE_CODES, IFN_GOACC_LOOP_CODES,
1577 IFN_GOACC_REDUCTION_CODES): New.
1578 (enum ifn_unique_kind, enum ifn_goacc_loop_kind, enum
1579 ifn_goacc_reduction_kind): Use them.
1580 * gimple-pretty-print.c (dump_gimple_call_args): Decode first arg
1581 of internal functions, when applicable.
1583 2016-09-27 Maciej W. Rozycki <macro@imgtec.com>
1585 * config/mips/constraints.md (d): Fix documentation.
1586 * doc/md.texi (Machine Constraints): Update accordingly.
1588 2016-09-27 Richard Biener <rguenther@suse.de>
1590 * dwarf2out.c (dwarf2out_init): Move text_section_line_info,
1591 cur_line_info_table initialization ...
1592 (dwarf2out_assembly_start): ... here.
1594 2016-09-27 Matthew Wahab <matthew.wahab@arm.com>
1596 * config/arm/arm.md (*arm_movsi_insn): Add "arch" attribute.
1597 * config/arm/vfp.md (*arm_movhi_vfp): Likewise.
1598 (*thumb2_movhi_vfp): Likewise.
1599 (*arm_movhi_fp16): Remove predication operand from VMOV.F16
1600 template. Expand predicable attribute to mark VMOV.F16 as not
1601 predicable. Add "arch" attribute.
1602 (*thumb2_movhi_fp16): Likewise.
1603 (*arm_movsi_vfp): Break a long line. Add "arch" attribute.
1604 (*thumb2_movsi_vfp): Add "arch" attribute.
1606 2016-09-27 David Edelsohn <dje.gcc@gmail.com>
1608 * config/rs6000/rs6000.c (rs6000_output_symbol): Don't modify
1611 2016-09-27 Marek Polacek <polacek@redhat.com>
1613 * config/ia64/ia64.c (ia64_print_operand): Adjust fall through
1616 * config/c6x/c6x.h: Adjust fall through comment.
1617 * config/sh/sh.c (final_prescan_insn): Likewise.
1618 * config/visium/visium.c (visium_expand_int_cstore): Likewise.
1619 (visium_expand_fp_cstore): Likewise.
1621 2016-09-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1623 * config/arm/arm.c (const_ok_for_op): Use "Fall through" comment form
1624 expected by -Wimplicit-fallthrough.
1625 (thumb1_size_rtx_costs): Likewise.
1626 (thumb2_reorg): Likewise.
1627 (tls_mentioned_p): Add "Fall through" comment.
1628 (thumb2_reorg): Likewise.
1629 * config/arm/arm-builtins.c (arm_expand_neon_args): Use "Fall through"
1630 comment form expected by -Wimplicit-fallthrough.
1632 2016-09-27 Martin Liska <mliska@suse.cz>
1634 PR gcov-profile/46266
1635 * input.h (RESERVED_LOCATION_P): New macro.
1636 * profile.c (branch_prob): Use RESERVED_LOCATION_P and
1637 instread of comparison with UNKNOWN_LOCATION.
1639 2016-09-27 Richard Biener <rguenther@suse.de>
1641 PR tree-optimization/77745
1642 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
1643 When removing redundant stores make sure to check compatibility
1644 of the TBAA state for downstream accesses.
1645 * tree-ssa-sccvn.c (visit_reference_op_store): Likewise for when
1646 value-numbering virtual operands for store matches.
1648 2016-09-27 Oleg Endo <olegendo@gcc.gnu.org>
1651 * config/sh/sh.c (sh_rtx_costs): Fix return value of SET of movt and
1652 movrt patterns. Match them before anything else in the SET case.
1654 2016-09-27 Martin Liska <mliska@suse.cz>
1656 PR gcov-profile/7970
1657 PR gcov-profile/16855
1658 PR gcov-profile/44779
1659 * coverage.c (build_gcov_exit_decl): New function.
1660 (coverage_obj_init): Call the function and generate __gcov_exit
1662 * doc/gcov.texi: Document when __gcov_exit function is called.
1664 2016-09-27 Marek Polacek <polacek@redhat.com>
1667 * Makefile.in (insn-attrtab.o-warn, insn-dfatab.o-warn,
1668 insn-latencytab.o-warn, insn-output.o-warn, insn-emit.o-warn): Use
1669 -Wno-error instead of -Wno-implicit-fallthrough.
1671 2016-09-27 Martin Liska <mliska@suse.cz>
1674 * gcov-counter.def: Remove GCOV_COUNTER_V_DELTA.
1676 2016-09-27 Jakub Jelinek <jakub@redhat.com>
1678 * combine.c (simplify_comparison): Add canonical FALLTHROUGH comments.
1679 * config/i386/i386.c (ix86_dep_by_shift_count_body): Add FALLTHROUGH
1680 comments. Remove break after return.
1681 (ix86_fp_compare_code_to_integer, has_dispatch,
1682 ix86_simd_clone_usable): Remove break after return.
1684 2016-09-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
1686 PR rlt-optimization/77714
1687 * lra-eliminations.c (eliminate_regs_in_insn): Avoid alias on
1690 2016-09-27 Kugan Vivekanandarajah <kuganv@linaro.org>
1693 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Use
1694 extract_range_from_unary_expr to convert value_range.
1695 * tree-vrp.c (extract_range_from_unary_expr_1): Rename to.
1696 (extract_range_from_unary_expr): This.
1697 * tree-vrp.h (extract_range_from_unary_expr): Declare.
1699 2016-09-27 Segher Boessenkool <segher@kernel.crashing.org>
1701 * config/rs6000/rs6000.md (movcc_internal1): Disparage using CTR or LR.
1703 2016-09-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1705 * config/i386/i386.c (ix86_print_operand)
1706 [HAVE_AS_IX86_CMOV_SUN_SYNTAX]: Add gcc_fallthrough.
1707 * config/sparc/sparc.c (check_pic): Add fallthrough comment.
1708 (epilogue_renumber): Likewise.
1710 2016-09-26 Kugan Vivekanandarajah <kuganv@linaro.org>
1713 * tree-ssa-reassoc.c (make_new_ssa_for_def): Use gimple_get_lhs
1714 to get lhs instead of gimple_assign_lhs as stmt can be builtins too.
1716 2016-09-26 Thomas Preud'homme <thomas.preudhomme@arm.com>
1718 * tree.h (memmodel_from_int, memmodel_base, is_mm_relaxed,
1719 is_mm_consume, is_mm_acquire, is_mm_release, is_mm_acq_rel,
1720 is_mm_seq_cst, is_mm_sync): Move to ...
1721 * memmodel.h: This. New file.
1722 * builtins.c: Include memmodel.h.
1723 * optabs.c: Likewise.
1725 * config/aarch64/aarch64.c: Likewise.
1726 * config/alpha/alpha.c: Likewise.
1727 * config/arm/arm.c: Likewise.
1728 * config/i386/i386.c: Likewise.
1729 * config/ia64/ia64.c: Likewise.
1730 * config/mips/mips.c: Likewise.
1731 * config/rs6000/rs6000.c: Likewise.
1732 * config/sparc/sparc.c: Likewise.
1733 * genconditions.c: Include memmodel.h in generated file.
1734 * genemit.c: Likewise.
1735 * genoutput.c: Likewise.
1736 * genpeep.c: Likewise.
1737 * genpreds.c: Likewise.
1738 * genrecog.c: Likewise.
1740 2016-09-26 David Malcolm <dmalcolm@redhat.com>
1742 * read-rtl.c (read_rtx_code): Rename local "i" to "idx", and use
1743 "c" instead when parsing characters. Move operand parsing into...
1744 (read_rtx_operand): ...this new function, renaming "i" to "idx",
1745 and tightening the scope of various locals.
1747 2016-09-26 Liu Hao <lh_mouse@126.com>
1749 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Fix typo.
1751 2016-09-26 Marek Polacek <polacek@redhat.com>
1753 * system.h: Use __has_attribute to check whether the fallthrough
1754 attribute is supported.
1756 2016-09-26 Marek Polacek <polacek@redhat.com>
1758 * ipa-inline-analysis.c (find_foldable_builtin_expect): Use
1759 gimple_call_internal_p.
1760 * ipa-split.c (find_return_bb): Likewise.
1761 (execute_split_functions): Likewise.
1762 * omp-low.c (dump_oacc_loop_part): Likewise.
1763 (oacc_loop_xform_head_tail): Likewise.
1764 * predict.c (predict_loops): Likewise.
1765 * sanopt.c (pass_sanopt::execute): Likewise.
1766 * tree-cfg.c (get_abnormal_succ_dispatcher): Likewise.
1767 * tree-parloops.c (oacc_entry_exit_ok_1): Likewise.
1768 * tree-stdarg.c (gimple_call_ifn_va_arg_p): Remove function.
1769 (expand_ifn_va_arg_1): Use gimple_call_internal_p.
1770 (expand_ifn_va_arg): Likewise.
1771 * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
1772 (optimize_mask_stores): Likewise.
1773 * tree-vect-stmts.c (vect_simd_lane_linear): Likewise.
1774 (vect_transform_stmt): Likewise.
1775 * tree-vectorizer.c (vect_loop_vectorized_call): Likewise.
1776 * tsan.c (instrument_memory_accesses): Likewise.
1778 2016-09-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1779 Alexander Monakov <amonakov@ispras.ru>
1781 * regrename.c (rename_chains): Check
1782 HARD_FRAME_POINTER_IS_FRAME_POINTER rather than
1783 HARD_FRAME_POINTER_REGNUM when picking unavailable registers.
1784 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
1786 2016-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1788 * config/s390/s390.c (s390_rtx_costs): Add /* fallthrough */.
1789 (s390_sched_score): Likewise.
1791 2016-09-26 Martin Liska <mliska@suse.cz>
1793 * doc/gcov.texi: Update program output of gcov tool.
1795 2016-09-26 Martin Liska <mliska@suse.cz>
1797 PR gcov-profile/23332
1798 * profile.c (instrument_values): Do not handle HIST_TYPE_CONST_DELTA.
1799 * tree-profile.c (gimple_gen_const_delta_profiler): Remove.
1800 * value-prof.c (dump_histogram_value): Do not handle
1801 HIST_TYPE_CONST_DELTA.
1802 (stream_in_histogram_value): Likewise.
1803 (gimple_find_values_to_profile): Likewise.
1804 * value-prof.h (enum hist_type): Likewise.
1806 2016-09-26 Martin Liska <mliska@suse.cz>
1808 * common.opt: Exclude SANITIZE_UNREACHABLE and SANITIZE_RETURN
1809 from default sanitize recover values.
1810 * doc/invoke.texi: Fix documentation related to -fsanitize=leak,
1811 -fsanitize=address, -fsanitize=thread and -fsanitize-recover.
1812 * flag-types.h: Replace couple of 1 << x to 1UL << x, make it
1814 * opts.c (finish_options): Do a generic loop over options
1815 that can be recovered.
1816 (parse_sanitizer_options): Exclude SANITIZE_UNREACHABLE and
1818 (common_handle_option): Likewise.
1819 * opts.h: Declare can_recover to sanitizer_opts_s.
1821 2016-09-26 Andre Vieira <andre.simoesdiasvieira@arm.com>
1823 * target.def(elf_flags_numeric): Change documentation to present tense.
1824 * doc/tm.texi: Regenerate.
1826 2016-09-26 Marek Polacek <polacek@redhat.com>
1829 * Makefile.in (insn-attrtab.o-warn, insn-dfatab.o-warn,
1830 insn-latencytab.o-warn, insn-output.o-warn, insn-emit.o-warn): Add
1831 -Wno-switch-fallthrough.
1832 * builtins.c (expand_builtin_int_roundingfn_2): Add gcc_fallthrough.
1833 (expand_builtin): Likewise.
1834 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass): Likewise.
1835 * convert.c (convert_to_real_1): Likewise.
1836 (convert_to_integer_1): Likewise.
1837 * final.c (output_alternate_entry_point): Likewise.
1838 * genattrtab.c (make_canonical): Likewise.
1839 (write_test_expr): Likewise.
1840 * genpreds.c (validate_exp): Likewise.
1841 * gimple-ssa-strength-reduction.c
1842 (find_candidates_dom_walker::before_dom_children): Likewise.
1843 * godump.c (go_format_type): Likewise.
1844 * reload1.c (elimination_effects): Likewise.
1845 * resource.c (mark_referenced_resources): Likewise.
1846 (mark_set_resources): Likewise.
1847 * tree-ssa-loop-ivopts.c (find_deriving_biv_for_expr): Likewise.
1848 * varasm.c (output_addressed_constants): Likewise.
1850 2016-09-26 Marek Polacek <polacek@redhat.com>
1853 * common.opt (Wimplicit-fallthrough): New option.
1854 * doc/extend.texi: Document statement attributes and the fallthrough
1856 * doc/invoke.texi: Document -Wimplicit-fallthrough.
1857 * gimple.h (gimple_call_internal_p): New function.
1858 * gimplify.c (struct gimplify_ctx): Add in_switch_expr.
1859 (struct label_entry): New struct.
1860 (find_label_entry): New function.
1861 (case_label_p): New function.
1862 (collect_fallthrough_labels): New function.
1863 (last_stmt_in_scope): New function.
1864 (should_warn_for_implicit_fallthrough): New function.
1865 (warn_implicit_fallthrough_r): New function.
1866 (maybe_warn_implicit_fallthrough): New function.
1867 (expand_FALLTHROUGH_r): New function.
1868 (expand_FALLTHROUGH): New function.
1869 (gimplify_switch_expr): Call maybe_warn_implicit_fallthrough and
1870 expand_FALLTHROUGH for the innermost GIMPLE_SWITCH.
1871 (gimplify_label_expr): New function.
1872 (gimplify_case_label_expr): Set location.
1873 (gimplify_expr): Call gimplify_label_expr.
1874 * internal-fn.c (expand_FALLTHROUGH): New function.
1875 * internal-fn.def (FALLTHROUGH): New internal function.
1876 * langhooks.c (lang_GNU_OBJC): New function.
1877 * langhooks.h (lang_GNU_OBJC): Declare.
1878 * system.h (gcc_fallthrough): Define.
1879 * tree-core.h: Add FALLTHROUGH_LABEL_P comment.
1880 * tree.h (FALLTHROUGH_LABEL_P): Define.
1882 2016-09-26 Richard Biener <rguenther@suse.de>
1884 * dwarf2out.c (stripattributes): Remove unused function.
1885 (DEBUG_NORM_MACINFO_SECTION): Rename to DEBUG_MACINFO_SECTION.
1886 Push dwarf_split_debug_info handling into init_sections_and_labels.
1887 (DEBUG_NORM_MACRO_SECTION): Likewise to DEBUG_MACRO_SECTION.
1888 (DEBUG_MACRO_SECTION_FLAGS): Remove.
1889 (debug_macinfo_section_name): New global.
1890 (output_macinfo): Use debug_macinfo_section_name.
1891 (init_sections_and_labels): Split out section and label generation
1892 from dwarf2out_init. Set debug_macinfo_section_name.
1893 (dwarf2out_init): Move text section label generation and emission
1895 (dwarf2out_assembly_start): ... here.
1896 (dwarf2out_finish): Call init_sections_and_labels before DWARF
1899 2016-09-26 Richard Biener <rguenther@suse.de>
1902 * cgraphunit.c (analyze_functions): Before early removing
1903 global vars calls the late_global_decl debug handler mark
1904 the variable as readonly.
1906 2016-09-25 Oleg Endo <olegendo@gcc.gnu.org>
1909 * config/sh/sh.c (sh_movt_set_dest, sh_movrt_set_dest): Add overloads.
1910 (sh_rtx_costs): Handle SET of movt and movrt patterns.
1911 * cnofig/sh/sh-protos.h (sh_movt_set_dest, sh_movrt_set_dest): Forward
1912 declare new overloads.
1913 * config/sh/sh.md (*cset_zero): Add variant that takes a treg_set_expr
1916 2016-09-24 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
1918 * config/rs6000/rs6000.c (expand_block_compare, do_load_for_compare):
1919 Change TARGET_LITTLE_ENDIAN to !BYTES_BIG_ENDIAN.
1921 2016-09-24 David Edelsohn <dje.gcc@gmail.com>
1923 * configure.ac (gcc_cv_as_aix_dwloc): Fix typo in assembly fragment.
1924 * configure: Regenerate.
1926 2016-09-24 Marek Polacek <polacek@redhat.com>
1929 * doc/invoke.texi: Document -Wbool-operation.
1931 2016-09-23 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
1933 * config/rs6000/rs6000.md (cmpmemsi): New define_expand.
1934 * config/rs6000/rs6000.c (expand_block_compare): New function used by
1935 cmpmemsi pattern to do builtin expansion of memcmp ().
1936 (compute_current_alignment): Add helper function for
1937 expand_block_compare used to compute alignment as the compare proceeds.
1938 (select_block_compare_mode): Used by expand_block_compare to select
1939 the mode used for reading the next chunk of bytes in the compare.
1940 (do_load_for_compare): Used by expand_block_compare to emit the load
1941 insns for the compare.
1942 (rs6000_emit_dot_insn): Moved this function to avoid a forward
1943 reference from expand_block_compare ().
1944 * config/rs6000/rs6000-protos.h (expand_block_compare): Add a
1945 prototype for this function.
1946 * config/rs6000/rs6000.opt (mblock-compare-inline-limit): Add a new
1947 target option for controlling how much code inline expansion of
1948 memcmp() will be allowed to generate.
1950 2016-09-23 Jakub Jelinek <jakub@redhat.com>
1952 * hooks.c (hook_bool_bool_false, hook_bool_bool_gcc_optionsp_false,
1953 hook_bool_mode_false, hook_bool_mode_true,
1954 hook_bool_mode_const_rtx_false, hook_bool_mode_const_rtx_true,
1955 hook_bool_mode_rtx_false, hook_bool_mode_rtx_true,
1956 hook_bool_const_rtx_insn_const_rtx_insn_true,
1957 hook_bool_mode_uhwi_false, hook_void_FILEptr_constcharptr,
1958 hook_bool_FILEptr_rtx_false, hook_bool_gsiptr_false,
1959 hook_bool_const_tree_hwi_hwi_const_tree_false,
1960 hook_bool_const_tree_hwi_hwi_const_tree_true,
1961 default_can_output_mi_thunk_no_vcall, hook_int_uint_mode_1,
1962 hook_int_const_tree_0, hook_int_const_tree_const_tree_1,
1963 hook_int_rtx_0, hook_int_rtx_bool_0, hook_void_tree,
1964 hook_void_constcharptr, hook_void_tree_treeptr, hook_void_int_int,
1965 hook_bool_tree_false, hook_bool_const_tree_false, hook_bool_tree_true,
1966 hook_bool_const_tree_true, hook_bool_tree_tree_false,
1967 hook_bool_tree_tree_true, hook_bool_tree_bool_false,
1968 hook_bool_rtx_insn_true, hook_bool_rtx_false,
1969 hook_bool_uintp_uintp_false,
1970 hook_bool_rtx_mode_int_int_intp_bool_false, hook_rtx_rtx_null,
1971 hook_rtx_tree_int_null, hook_uint_mode_0,
1972 hook_constcharptr_const_tree_null, hook_tree_tree_int_treep_bool_null,
1973 hook_tree_tree_tree_null, hook_tree_tree_tree_tree_null,
1974 hook_constcharptr_const_rtx_insn_null,
1975 hook_constcharptr_const_tree_const_tree_null,
1976 hook_constcharptr_int_const_tree_null,
1977 hook_constcharptr_int_const_tree_const_tree_null,
1978 hook_tree_const_tree_null, hook_bool_rtx_insn_int_false,
1979 hook_void_rtx_insn_int, hook_void_gcc_optionsp): For arguments with
1980 ATTRIBUTE_UNUSED, remove parameter name as well as ATTRIBUTE_UNUSED.
1982 * vec.h (vNULL): Extend comment to say = vNULL initialization
1983 isn't needed for static vars.
1985 * sel-sched-ir.c (sel_global_bb_info, sel_region_bb_info,
1986 loop_nests, s_i_d, last_added_blocks): Remove unnecessary
1987 = vNULL initialization of file scope vec.
1988 * passes.c (pass_tab, enabled_pass_uid_range_tab,
1989 disabled_pass_uid_range_tab): Likewise.
1990 * haifa-sched.c (sched_luids, h_i_d): Likewise.
1991 * tree-chkp-opt.c (check_infos): Likewise.
1992 * sel-sched.c (vec_av_set, vec_temp_moveop_nops): Likewise.
1994 * vec.h (vnull::operator vec): Add constexpr keyword for
1997 2016-09-23 Doug Gilmore <doug.gilmore@imgtec.com>
1999 PR tree-optimization/77654
2000 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Add call
2001 to duplicate_ssa_name_ptr_info.
2003 2016-09-23 David Malcolm <dmalcolm@redhat.com>
2005 PR preprocessor/77672
2006 * input.c (selftest::test_lexer_string_locations_simple): Update
2007 test to expect location information of the terminator character
2008 at the location of the final closing quote.
2009 (selftest::test_lexer_string_locations_hex): Likewise.
2010 (selftest::test_lexer_string_locations_oct): Likewise.
2011 (selftest::test_lexer_string_locations_letter_escape_1): Likewise.
2012 (selftest::test_lexer_string_locations_letter_escape_2): Likewise.
2013 (selftest::test_lexer_string_locations_ucn4): Likewise.
2014 (selftest::test_lexer_string_locations_ucn8): Likewise.
2015 (selftest::test_lexer_string_locations_u8): Likewise.
2016 (selftest::test_lexer_string_locations_utf8_source): Likewise.
2017 (selftest::test_lexer_string_locations_concatenation_1): Likewise.
2018 (selftest::test_lexer_string_locations_concatenation_2): Likewise.
2019 (selftest::test_lexer_string_locations_concatenation_3): Likewise.
2020 (selftest::test_lexer_string_locations_macro): Likewise.
2021 (selftest::test_lexer_string_locations_long_line): Likewise.
2023 2016-09-23 Richard Biener <rguenther@suse.de>
2025 * tree-ssa-sccvn.c (visit_reference_op_call): Value number
2026 virtual definition to virtual use if the call devirtualizes
2027 to a const or pure function.
2028 (visit_use): Also visit calls we can devirtualize to a
2029 const or pure function.
2031 2016-09-23 Richard Biener <rguenther@suse.de>
2033 PR tree-optimization/77697
2034 * tree-ssa-forwprop.c (defcodefor_name): Remove bogus code,
2035 signal error if we have sth ternary or unhandled.
2037 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
2039 * config/arm/arm_neon.h (vabd_f16): New.
2073 (vcvt_f16_s16): New.
2074 (vcvt_f16_u16): New.
2075 (vcvt_s16_f16): New.
2076 (vcvt_u16_f16): New.
2077 (vcvtq_f16_s16): New.
2078 (vcvtq_f16_u16): New.
2079 (vcvtq_s16_f16): New.
2080 (vcvtq_u16_f16): New.
2081 (vcvta_s16_f16): New.
2082 (vcvta_u16_f16): New.
2083 (vcvtaq_s16_f16): New.
2084 (vcvtaq_u16_f16): New.
2085 (vcvtm_s16_f16): New.
2086 (vcvtm_u16_f16): New.
2087 (vcvtmq_s16_f16): New.
2088 (vcvtmq_u16_f16): New.
2089 (vcvtn_s16_f16): New.
2090 (vcvtn_u16_f16): New.
2091 (vcvtnq_s16_f16): New.
2092 (vcvtnq_u16_f16): New.
2093 (vcvtp_s16_f16): New.
2094 (vcvtp_u16_f16): New.
2095 (vcvtpq_s16_f16): New.
2096 (vcvtpq_u16_f16): New.
2097 (vcvt_n_f16_s16): New.
2098 (vcvt_n_f16_u16): New.
2099 (vcvtq_n_f16_s16): New.
2100 (vcvtq_n_f16_u16): New.
2101 (vcvt_n_s16_f16): New.
2102 (vcvt_n_u16_f16): New.
2103 (vcvtq_n_s16_f16): New.
2104 (vcvtq_n_u16_f16): New.
2118 (vmul_lane_f16): New.
2121 (vmulq_lane_f16): New.
2143 (vrsqrteq_f16): New.
2147 (vrsqrtsq_f16): New.
2151 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
2153 * config.gcc (extra_headers): Add arm_fp16.h
2154 * config/arm/arm_fp16.h: New.
2155 * config/arm/arm_neon.h: Include "arm_fp16.h".
2157 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
2159 * config/arm/arm_neon_builtins.def (vadd): New (v8hf, v4hf
2161 (vmulf): New (v8hf, v4hf variants).
2162 (vfma): New (v8hf, v4hf variants).
2163 (vfms): New (v8hf, v4hf variants).
2164 (vsub): New (v8hf, v4hf variants).
2165 (vcage): New (v8hf, v4hf variants).
2166 (vcagt): New (v8hf, v4hf variants).
2167 (vcale): New (v8hf, v4hf variants).
2168 (vcalt): New (v8hf, v4hf variants).
2169 (vceq): New (v8hf, v4hf variants).
2170 (vcgt): New (v8hf, v4hf variants).
2171 (vcge): New (v8hf, v4hf variants).
2172 (vcle): New (v8hf, v4hf variants).
2173 (vclt): New (v8hf, v4hf variants).
2174 (vceqz): New (v8hf, v4hf variants).
2175 (vcgez): New (v8hf, v4hf variants).
2176 (vcgtz): New (v8hf, v4hf variants).
2177 (vcltz): New (v8hf, v4hf variants).
2178 (vclez): New (v8hf, v4hf variants).
2179 (vabd): New (v8hf, v4hf variants).
2180 (vmaxf): New (v8hf, v4hf variants).
2181 (vmaxnm): New (v8hf, v4hf variants).
2182 (vminf): New (v8hf, v4hf variants).
2183 (vminnm): New (v8hf, v4hf variants).
2184 (vpmaxf): New (v4hf variant).
2185 (vpminf): New (v4hf variant).
2186 (vpadd): New (v4hf variant).
2187 (vrecps): New (v8hf, v4hf variants).
2188 (vrsqrts): New (v8hf, v4hf variants).
2189 (vabs): New (v8hf, v4hf variants).
2190 (vneg): New (v8hf, v4hf variants).
2191 (vrecpe): New (v8hf, v4hf variants).
2192 (vrnd): New (v8hf, v4hf variants).
2193 (vrnda): New (v8hf, v4hf variants).
2194 (vrndm): New (v8hf, v4hf variants).
2195 (vrndn): New (v8hf, v4hf variants).
2196 (vrndp): New (v8hf, v4hf variants).
2197 (vrndx): New (v8hf, v4hf variants).
2198 (vrsqrte): New (v8hf, v4hf variants).
2199 (vmul_lane): Add v4hf and v8hf variants.
2200 (vmul_n): Add v4hf and v8hf variants.
2201 (vext): New (v8hf, v4hf variants).
2202 (vcvts): New (v8hi, v4hi variants).
2203 (vcvts): New (v8hf, v4hf variants).
2204 (vcvtu): New (v8hi, v4hi variants).
2205 (vcvtu): New (v8hf, v4hf variants).
2206 (vcvts_n): New (v8hf, v4hf variants).
2207 (vcvtu_n): New (v8hi, v4hi variants).
2208 (vcvts_n): New (v8hi, v4hi variants).
2209 (vcvtu_n): New (v8hf, v4hf variants).
2210 (vbsl): New (v8hf, v4hf variants).
2211 (vcvtas): New (v8hf, v4hf variants).
2212 (vcvtau): New (v8hf, v4hf variants).
2213 (vcvtms): New (v8hf, v4hf variants).
2214 (vcvtmu): New (v8hf, v4hf variants).
2215 (vcvtns): New (v8hf, v4hf variants).
2216 (vcvtnu): New (v8hf, v4hf variants).
2217 (vcvtps): New (v8hf, v4hf variants).
2218 (vcvtpu): New (v8hf, v4hf variants).
2220 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
2222 * config/arm/arm-builtins.c (hf_UP): New.
2224 (vfp_builtin_data): New. Update comment.
2225 (enum arm_builtins): Include "arm_vfp_builtins.def".
2226 (ARM_BUILTIN_VFP_PATTERN_START): New.
2227 (arm_init_vfp_builtins): New.
2228 (arm_init_builtins): Add arm_init_vfp_builtins.
2229 (arm_expand_vfp_builtin): New.
2230 (arm_expand_builtins): Update for arm_expand_vfp_builtin. Fix
2232 * config/arm/arm_vfp_builtins.def: New file.
2233 * config/arm/t-arm (arm.o): Add arm_vfp_builtins.def.
2234 (arm-builtins.o): Likewise.
2236 2016-09-23 Kugan Vivekanandarajah <kuganv@linaro.org>
2239 * ipa-cp.c (propagate_vr_accross_jump_function): Drop TREE_OVERFLOW
2240 from constant while creating value range.
2242 2016-09-23 Renlin Li <renlin.li@arm.com>
2244 * ira.c (ira): Move ira_use_lra_p initialization code to ...
2245 (ira_init_once): Here.
2247 2016-09-23 Uros Bizjak <ubizjak@gmail.com>
2248 Jakub Jelinek <jakub@redhat.com>
2250 * hooks.h (hook_uint_uintp_false): Rename to...
2251 (hook_bool_uint_uintp_false): ... this.
2252 * hooks.c (hook_uint_uintp_false): Rename to...
2253 (hook_bool_uint_uintp_false): ... this.
2254 * target.def (elf_flags_numeric): Use hook_bool_uint_uintp_false
2255 instead of hook_uint_uintp_false.
2257 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
2259 * config/arm/arm-builtins.c (arm_init_neon_builtin): New.
2260 (arm_init_builtins): Move body of a loop to the standalone
2261 function arm_init_neon_builtin.
2262 (arm_expand_neon_builtin_1): New. Update comment. Function body
2263 moved from arm_neon_builtin with some white-space fixes.
2264 (arm_expand_neon_builtin): Move code into the standalone function
2265 arm_expand_neon_builtin_1.
2267 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
2269 * config/arm/iterators.md (VCVTHI): New.
2270 (NEON_VCMP): Add UNSPEC_VCLT and UNSPEC_VCLE. Fix a long line.
2274 (V_reg): Add HF, V4HF and V8HF. Fix white-space.
2275 (V_HALF): Add V4HF. Fix white-space.
2276 (V_if_elem): Add HF, V4HF and V8HF. Fix white-space.
2277 (V_s_elem): Likewise.
2278 (V_sz_elem): Fix white-space.
2279 (V_elem_ch): Likewise.
2281 (scalar_mul_constraint): Add V8HF and V4HF.
2282 (Is_float_mode): Fix white-space.
2283 (Is_d_reg): Add V4HF and V8HF. Fix white-space.
2284 (q): Add HF. Fix white-space.
2287 (cmp_op_unsp): Add UNSPEC_VCALE and UNSPEC_VCALT.
2288 (neon_vfm_lane_as): New.
2289 * config/arm/neon.md (add<mode>3_fp16): New.
2290 (sub<mode>3_fp16): New.
2291 (mul<mode>3add<mode>_neon): New.
2292 (fma<VH:mode>4_intrinsic): New.
2293 (fmsub<VCVTF:mode>4_intrinsic): Fix white-space.
2294 (fmsub<VH:mode>4_intrinsic): New.
2295 (<absneg_str><mode>2): New.
2296 (neon_v<absneg_str><mode>): New.
2297 (neon_v<fp16_rnd_str><mode>): New.
2298 (neon_vrsqrte<mode>): New.
2299 (neon_vpaddv4hf): New.
2300 (neon_vadd<mode>): New.
2301 (neon_vsub<mode>): New.
2302 (neon_vmulf<mode>): New.
2303 (neon_vfma<VH:mode>): New.
2304 (neon_vfms<VH:mode>): New.
2305 (neon_vc<cmp_op><mode>): New.
2306 (neon_vc<cmp_op><mode>_fp16insn): New
2307 (neon_vc<cmp_op_unsp><mode>_fp16insn_unspec): New.
2308 (neon_vca<cmp_op><mode>): New.
2309 (neon_vca<cmp_op><mode>_fp16insn): New.
2310 (neon_vca<cmp_op_unsp><mode>_fp16insn_unspec): New.
2311 (neon_vc<cmp_op>z<mode>): New.
2312 (neon_vabd<mode>): New.
2313 (neon_v<maxmin>f<mode>): New.
2314 (neon_vp<maxmin>fv4hf: New.
2315 (neon_<fmaxmin_op><mode>): New.
2316 (neon_vrecps<mode>): New.
2317 (neon_vrsqrts<mode>): New.
2318 (neon_vrecpe<mode>): New (VH variant).
2319 (neon_vdup_lane<mode>_internal): New.
2320 (neon_vdup_lane<mode>): New.
2321 (neon_vcvt<sup><mode>): New (VCVTHI variant).
2322 (neon_vcvt<sup><mode>): New (VH variant).
2323 (neon_vcvt<sup>_n<mode>): New (VH variant).
2324 (neon_vcvt<sup>_n<mode>): New (VCVTHI variant).
2325 (neon_vcvt<vcvth_op><sup><mode>): New.
2326 (neon_vmul_lane<mode>): New.
2327 (neon_vmul_n<mode>): New.
2328 * config/arm/unspecs.md (UNSPEC_VCALE): New
2329 (UNSPEC_VCALT): New.
2330 (UNSPEC_VFMA_LANE): New.
2331 (UNSPECS_VFMS_LANE): New.
2333 2016-09-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
2335 * config/s390/s390.md ("*extzv<mode>_zEC12", "*extzv<mode>_z10")
2336 ("*extzv<mode><clobbercc_or_nocc>"):
2337 Correct a typo in a comment.
2339 ("*insv<mode>_zEC12", "*insv<mode>_z10")
2340 ("*insv<mode><clobbercc_or_nocc>"): Ditto.
2341 ("*insv<mode>_zEC12_appendbitsleft")
2342 ("*insv<mode><clobbercc_or_nocc>_appendbitsleft")
2343 ("*insv<mode>_z10_appendbitsleft"): Ditto.
2344 ("*insv<mode>_zEC12_noshift", "*insv<mode>_z10_noshift")
2345 ("*insv<mode><clobbercc_or_nocc>_noshift"): Ditto.
2346 Provide pattern with operands switched.
2347 ("*pre_z10_extv<mode>"):
2348 Use new subst patterns.
2349 ("*extzvdi<clobbercc_or_nocc>_lshiftrt", "*<risbg_n>_ior_and_sr_ze")
2350 ("*extvsidi<clobbercc_or_nocc>", "*<risbg_n>_and_subregdi_rotr")
2351 ("*<risbg_n>_and_subregdi_rotl", "*<risbg_n>_di_and_rot")
2352 ("*insv_z10_noshift_cc", "*insv_z10_noshift_cconly")
2353 ("*<risbg_n>_<mode>_ior_and_lshiftrt")
2354 ("*<risbg_n>_sidi_ior_and_lshiftrt")
2355 ("*trunc_sidi_and_subreg_lshrt<clobbercc_or_nocc>"):
2357 ("*extzv_<mode>_sll", "*extzv_<mode>_srl")
2358 ("*extzv_<mode>_srl<clobbercc_or_nocc>")
2359 ("*extzv_<mode>_sll<clobbercc_or_nocc>"): Renamed patterns, use risbgn
2361 ("SINT"): New mode_iterator with SI, HI, QI.
2362 * config/s390/subst.md ("clobbercc_or_nocc_subst", "z10_or_zEC12_cond")
2363 ("clobbercc_or_nocc", "risbg_n"): New constructs for risbg pattern
2366 2016-09-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
2368 * config/s390/predicates.md ("contiguous_bitmask_operand"): Adapt to
2369 new interface of s390_contiguous_bitmask_p.
2370 ("contiguous_bitmask_nowrap_operand"): New predicate.
2371 ("*anddi3_cc", "*anddi3_cconly", "*anddi3"): Replace NxxDq with NxxDw.
2372 * config/s390/constraints.md ("NxxDw", "NxxSq"): Adapt to new interface
2373 of s390_contiguous_bitmask_p.
2374 ("NxxDw"): Rename NxxDq constraint to NxxDw.
2375 ("NxxSw"): New constraint.
2376 * config/s390/s390.md ("*andsi3_zarch"): Enable bitmask wraparound.
2377 * config/s390/s390-protos.h (s390_contiguous_bitmask_p): Updated
2379 (s390_contiguous_bitmask_nowrap_p): Export.
2380 * config/s390/s390.c (s390_contiguous_bitmask_nowrap_p): New name of
2381 former s390_contiguous_bitmask_p.
2382 (s390_contiguous_bitmask_p): Use s390_contiguous_bitmask_nowrap_p to
2383 detect contiguous bit ranges with wraparound. Change signature to
2384 return START and END position instead of POS and LENGTH.
2385 (s390_contiguous_bitmask_vector_p): Remove extra code for continous bit
2386 ranges with wraparound.
2387 (s390_extzv_shift_ok): Use s390_contiguous_bitmask_nowrap_p.
2388 (s390_contiguous_bitmask_vector_p,s390_extzv_shift_ok,print_operand):
2389 Adapt to new signature of s390_contiguous_bitmask_p.
2391 2016-09-23 Bin Cheng <bin.cheng@arm.com>
2393 * tree-vect-loop-manip.c (create_intersect_range_checks_index): New.
2394 (create_intersect_range_checks): New.
2395 (vect_create_cond_for_alias_checks): Call above function.
2397 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
2399 * config/arm/iterators.md (Code iterators): Fix some white-space
2403 (FCVT): Moved from vfp.md.
2404 (VCVT_HF_US_N): New.
2405 (VCVT_SI_US_N): New.
2410 (FCVTI32typename): Moved from vfp.md.
2411 (sup): Add UNSPEC_VCVTA_S, UNSPEC_VCVTA_U, UNSPEC_VCVTM_S,
2412 UNSPEC_VCVTM_U, UNSPEC_VCVTN_S, UNSPEC_VCVTN_U, UNSPEC_VCVTP_S,
2413 UNSPEC_VCVTP_U, UNSPEC_VCVT_HF_S_N, UNSPEC_VCVT_HF_U_N,
2414 UNSPEC_VCVT_SI_S_N, UNSPEC_VCVT_SI_U_N, UNSPEC_VCVTH_S_N,
2415 UNSPEC_VCVTH_U_N, UNSPEC_VCVTH_S and UNSPEC_VCVTH_U.
2417 (fp16_rnd_str): New.
2418 (fp16_rnd_insn): New.
2419 * config/arm/unspecs.md (UNSPEC_VCVT_HF_S_N): New.
2420 (UNSPEC_VCVT_HF_U_N): New.
2421 (UNSPEC_VCVT_SI_S_N): New.
2422 (UNSPEC_VCVT_SI_U_N): New.
2423 (UNSPEC_VCVTH_S): New.
2424 (UNSPEC_VCVTH_U): New.
2425 (UNSPEC_VCVTA_S): New.
2426 (UNSPEC_VCVTA_U): New.
2427 (UNSPEC_VCVTM_S): New.
2428 (UNSPEC_VCVTM_U): New.
2429 (UNSPEC_VCVTN_S): New.
2430 (UNSPEC_VCVTN_U): New.
2431 (UNSPEC_VCVTP_S): New.
2432 (UNSPEC_VCVTP_U): New.
2433 (UNSPEC_VCVTP_S): New.
2434 (UNSPEC_VCVTP_U): New.
2436 (UNSPEC_VRNDA): New.
2437 (UNSPEC_VRNDI): New.
2438 (UNSPEC_VRNDM): New.
2439 (UNSPEC_VRNDN): New.
2440 (UNSPEC_VRNDP): New.
2441 (UNSPEC_VRNDX): New.
2442 * config/arm/vfp.md (<absneg_str>hf2): New.
2444 (neon_v<fp16_rnd_str>hf): New.
2445 (neon_vrndihf): New.
2450 (*mulsf3neghf_vfp): New.
2451 (*negmulhf3_vfp): New.
2452 (*mulsf3addhf_vfp): New.
2453 (*mulhf3subhf_vfp): New.
2454 (*mulhf3neghfaddhf_vfp): New.
2455 (*mulhf3neghfsubhf_vfp): New.
2458 (fmsubhf4_fp16): New.
2462 (neon_vsqrthf): New.
2463 (neon_vrsqrtshf): New.
2464 (FCVT): Move to iterators.md.
2465 (FCVTI32typename): Likewise.
2466 (neon_vcvth<sup>hf): New.
2467 (neon_vcvth<sup>si): New.
2468 (neon_vcvth<sup>_nhf_unspec): New.
2469 (neon_vcvth<sup>_nhf): New.
2470 (neon_vcvth<sup>_nsi_unspec): New.
2471 (neon_vcvth<sup>_nsi): New.
2472 (neon_vcvt<vcvth_op>h<sup>si): New.
2473 (neon_<fmaxmin_op>hf): New.
2475 2016-09-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
2477 * config/s390/s390.md (bitoff, bitoff_plus): Neq mode attributes.
2478 ("*extzv<mode>_zEC12", "*insv<mode>_zEC12", "*insv<mode>_z10")
2479 ("*insv<mode>_zEC12_appendbitsleft")
2480 ("*insv<mode>_z10_appendbitsleft", "*r<noxa>sbg_<mode>_sll")
2481 ("*r<noxa>sbg_<mode>_srl"): Use new attributes.
2483 2016-09-23 Jakub Jelinek <jakub@redhat.com>
2485 * ipa-cp.c (ipcp_store_vr_results): Avoid static local var zero.
2486 * sreal.h (sreal::min, sreal::max): Avoid static local vars,
2487 construct values without normalization.
2488 * tree-ssa-sccvn.c (vn_reference_lookup_3): Don't initialize
2489 static local lhs_ops to vNULL.
2491 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
2492 Jiong Wang <jiong.wang@arm.com>
2494 * config/arm/arm.c (coproc_secondary_reload_class): Make HFmode
2495 available when FP16 instructions are available.
2496 (output_move_vfp): Add support for 16-bit data moves.
2497 (arm_validize_comparison): Fix some white-space. Support HFmode
2498 by conversion to SFmode.
2499 * config/arm/arm.md (truncdfhf2): Fix a comment.
2500 (extendhfdf2): Likewise.
2502 (movsicc): Fix some white-space.
2504 (movsfcc): Fix some white-space.
2506 * config/arm/vfp.md (*arm_movhi_vfp): Disable when VFP FP16
2507 instructions are available.
2508 (*thumb2_movhi_vfp): Likewise.
2509 (*arm_movhi_fp16): New.
2510 (*thumb2_movhi_fp16): New.
2511 (*movhf_vfp_fp16): New.
2512 (*movhf_vfp_neon): Disable when VFP FP16 instructions are available.
2513 (*movhf_vfp): Likewise.
2514 (extendhfsf2): Enable when VFP FP16 instructions are available.
2515 (truncsfhf2): Enable when VFP FP16 instructions are available.
2517 2016-09-23 Martin Liska <mliska@suse.cz>
2519 * config/s390/vx-builtins.md: Replace 'adress' with 'address'.
2521 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
2523 * config/arm/arm.c (arm_evpc_neon_vuzp): Add support for V8HF and
2525 (arm_evpc_neon_vtrn): Likewise.
2526 (arm_evpc_neon_vrev): Likewise.
2527 (arm_evpc_neon_vext): Likewise.
2528 * config/arm/arm_neon.h (vbsl_f16): New.
2532 (vdup_lane_f16): New.
2533 (vdupq_lane_f16): New.
2546 * config/arm/arm_neon_buillins.def (vdup_n): New (v8hf, v4hf variants).
2547 (vdup_lane): New (v8hf, v4hf variants).
2548 (vext): New (v8hf, v4hf variants).
2549 (vbsl): New (v8hf, v4hf variants).
2550 * config/arm/iterators.md (VDQWH): New.
2552 (V_double_vector_mode): Add V8HF and V4HF. Fix white-space.
2553 (Scalar_mul_8_16): Fix white-space.
2554 (Is_d_reg): Add V4HF and V8HF.
2555 * config/arm/neon.md (neon_vdup_lane<mode>_internal): New.
2556 (neon_vdup_lane<mode>): New.
2557 (neon_vtrn<mode>_internal): Replace VDQW with VDQWH.
2558 (*neon_vtrn<mode>_insn): Likewise.
2559 (neon_vzip<mode>_internal): Likewise. Also fix white-space.
2560 (*neon_vzip<mode>_insn): Likewise
2561 (neon_vuzp<mode>_internal): Likewise.
2562 (*neon_vuzp<mode>_insn): Likewise
2563 * config/arm/vec-common.md (vec_perm_const<mode>): New.
2565 2016-09-23 Jiong Wang <jiong.wang@arm.com>
2566 Matthew Wahab <matthew.wahab@arm.com>
2568 * config/arm/arm.c (output_move_vfp): Weaken assert to allow HImode.
2569 (arm_hard_regno_mode_ok): Allow HImode values in VFP registers.
2570 * config/arm/arm.md (*movhi_bytes): Disable when VFP registers are
2571 available. Also fix some white-space.
2572 * config/arm/vfp.md (*arm_movhi_vfp): New.
2573 (*thumb2_movhi_vfp): New.
2575 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
2577 * config/arm/arm-c.c (arm_cpu_builtins): Define
2578 "__ARM_FEATURE_FP16_SCALAR_ARITHMETIC" and
2579 "__ARM_FEATURE_FP16_VECTOR_ARITHMETIC".
2581 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
2583 * doc/sourcebuild.texi (ARM-specific attributes): Add anchor for
2584 arm_v8_1a_neon_ok. Add entries for arm_v8_2a_fp16_scalar_ok,
2585 arm_v8_2a_fp16_scalar_hw, arm_v8_2a_fp16_neon_ok and
2586 arm_v8_2a_fp16_neon_hw.
2587 (Add options): Add entries for arm_v8_1a_neon, arm_v8_2a_scalar,
2590 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
2592 * doc/sourcebuild.texi (ARM-specific attributes): Add entries for
2593 arm_fp16_alternative_ok and arm_fp16_none_ok.
2595 2016-09-23 Martin Liska <mliska@suse.cz>
2597 * ipa-icf.c (sem_variable::merge): Replace adress with address.
2599 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
2601 * config/arm/arm-arches.def ("armv8.1-a"): Add FL_CRC32.
2603 ("armv8.2-a+fp16"): New.
2604 * config/arm/arm-protos.h (FL2_ARCH8_2): New.
2605 (FL2_FP16INST): New.
2606 (FL2_FOR_ARCH8_2A): New.
2607 * config/arm/arm-tables.opt: Regenerate.
2608 * config/arm/arm.c (arm_arch8_2): New.
2609 (arm_fp16_inst): New.
2610 (arm_option_override): Set arm_arch8_2 and arm_fp16_inst. Check
2611 for incompatible fp16-format settings.
2612 * config/arm/arm.h (TARGET_VFP_FP16INST): New.
2613 (TARGET_NEON_FP16INST): New.
2614 (arm_arch8_2): Declare.
2615 (arm_fp16_inst): Declare.
2616 * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for
2617 march=armv8.2-a and march=armv8.2-a+fp16.
2618 * config/arm/t-aprofile (Arch Matches): Add entries for armv8.2-a
2620 * doc/invoke.texi (ARM Options): Add "-march=armv8.1-a",
2621 "-march=armv8.2-a" and "-march=armv8.2-a+fp16".
2623 2016-09-23 Martin Liska <mliska@suse.cz>
2625 * doc/extend.texi: Remove fused-madd from i386 target options.
2627 2016-09-23 Martin Liska <mliska@suse.cz>
2629 * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
2632 2016-09-23 Martin Liska <mliska@suse.cz>
2634 * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
2637 2016-09-23 Martin Liska <mliska@suse.cz>
2640 * config/i386/i386.c (ix86_option_override_internal): Change
2641 signature and return false when there's an error related to
2643 (release_options_strings): New function.
2644 (ix86_valid_target_attribute_tree): Call the function.
2646 2016-09-23 Jakub Jelinek <jakub@redhat.com>
2648 * hsa-gen.c (hsa_op_immed::hsa_op_immed Use CONSTRUCTOR_NELTS (...)
2649 instead of vec_safe_length (CONSTRUCTOR_ELTS (...)).
2650 (gen_hsa_ctor_assignment): Likewise.
2651 * print-tree.c (print_node): Likewise.
2652 * tree-dump.c (dequeue_and_dump): Likewise.
2653 * tree-sra.c (sra_modify_constructor_assign): Likewise.
2654 * expr.c (store_constructor): Likewise.
2655 * fold-const.c (operand_equal_p): Likewise.
2656 * tree-pretty-print.c (dump_generic_node): Likewise.
2657 * hsa-brig.c (hsa_op_immed::emit_to_buffer): Likewise.
2658 * ipa-icf-gimple.c (func_checker::compare_operand): Likewise.
2660 2016-09-23 Richard Biener <rguenther@suse.de>
2662 * hooks.h (hook_uint_uintp_false): Declare.
2664 2016-09-22 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
2666 * config/avr/avr.c (avr_rtx_costs_1): Handle DImode MULT.
2667 (avr_address_cost): Replace 61 with MAX_LD_OFFSET(mode).
2669 2016-09-22 Martin Sebor <msebor@redhat.com>
2672 * gimple-ssa-sprintf.c (target_int_min, target_int_max): Use
2673 HOST_BITS_PER_WIDE_INT, make a static local variable auto.
2674 (target_int_min): Correct computation.
2675 (format_integer): Use long long as the argument for the ll length
2677 (format_floating): Use target_int_max().
2678 (get_string_length): Same.
2679 (format_string): Avoid setting the bounded flag for strings
2681 (try_substitute_return_value): Avoid setting range info when
2682 the result isn't bounded.
2683 * varasm.c (assemble_name): Increase buffer size.
2685 2016-09-22 Andre Vieira <andre.simoesdiasvieira@arm.com>
2686 Terry Guo <terry.guo@arm.com>
2688 * target.def (elf_flags_numeric): New target hook.
2689 * targhooks.h (default_asm_elf_flags_numeric): New.
2690 * varasm.c (default_asm_elf_flags_numeric): New.
2691 (default_elf_asm_named_section): Use new target hook.
2692 * config/arm/arm.opt (mpure-code): New.
2693 * config/arm/arm.h (SECTION_ARM_PURECODE): New.
2694 * config/arm/arm.c (arm_asm_init_sections): Add section
2695 attribute to default text section if -mpure-code.
2696 (arm_option_check_internal): Diagnose use of option with
2697 non supported targets and/or options.
2698 (arm_asm_elf_flags_numeric): New.
2699 (arm_function_section): New.
2700 (arm_elf_section_type_flags): New.
2701 * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Disable
2703 * gcc/doc/texi (TARGET_ASM_ELF_FLAGS_NUMERIC): New.
2704 * gcc/doc/texi.in (TARGET_ASM_ELF_FLAGS_NUMERIC): Likewise.
2706 2016-09-22 Jan Hubicka <hubicka@ucw.cz>
2708 * regcprop.c (copyprop_hardreg_forward_1): Remove noop moves.
2710 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2712 * emit-rtl.c (next_cc0_user): Make argument type rtx_insn *.
2713 * rtl.h: Adjust prototype.
2715 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2717 * emit-rtl.c (next_active_insn): Change argument type to rtx_insn *.
2718 (prev_active_insn): Likewise.
2719 (active_insn_p): Likewise.
2720 * rtl.h: Adjust prototypes.
2721 * cfgcleanup.c (merge_blocks_move_successor_nojumps): Adjust.
2722 * config/arc/arc.md: Likewise.
2723 * config/pa/pa.c (branch_to_delay_slot_p): Likewise.
2724 (branch_needs_nop_p): Likewise.
2725 (use_skip_p): Likewise.
2726 * config/sh/sh.c (gen_block_redirect): Likewise.
2727 (split_branches): Likewise.
2728 * reorg.c (optimize_skip): Likewise.
2729 (fill_simple_delay_slots): Likewise.
2730 (fill_slots_from_thread): Likewise.
2731 (relax_delay_slots): Likewise.
2732 * resource.c (mark_target_live_regs): Likewise.
2734 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2736 * config/cris/cris.c (cris_asm_output_case_end): Change argument
2738 * emit-rtl.c (next_nonnote_nondebug_insn): Likewise.
2739 (prev_nonnote_nondebug_insn): Likewise.
2740 * config/cris/cris-protos.h: Adjust prototype.
2742 * jump.c (rtx_renumbered_equal_p): Adjust.
2744 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2746 * emit-rtl.c (prev_real_insn): Change argument type to rtx_insn *.
2747 * rtl.h: Adjust prototype.
2748 * config/sh/sh.md: Adjust.
2749 * dwarf2out.c (add_var_loc_to_decl): Likewise.
2751 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2753 * emit-rtl.c (next_nondebug_insn): Change argument type to rtx_insn *.
2754 (prev_nondebug_insn): Likewise.
2755 * loop-doloop.c (doloop_condition_get): Likewise.
2756 * rtl.h: Adjust prototype.
2757 * cfgloop.h: Likewise.
2759 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2761 * emit-rtl.c (next_nonnote_insn): Change argument type to rtx_insn *.
2762 (prev_nonnote_insn): Likewise.
2763 * jump.c (reversed_comparison_code_parts): Likewise.
2764 (reversed_comparison): Likewise.
2765 * rtl.h: Adjust prototypes.
2766 * config/arc/arc.md: Adjust.
2767 * cse.c (find_comparison_args): Likewise.
2768 * reorg.c (redundant_insn): Change return type to rtx_insn *.
2769 (fix_reg_dead_note): Change argument type to rtx_insn *.
2770 (delete_prior_computation): Likewise.
2771 (delete_computation): Likewise.
2772 (fill_slots_from_thread): Adjust.
2773 (relax_delay_slots): Likewise.
2774 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
2775 (simplify_relational_operation_1): Likewise.
2776 (simplify_ternary_operation): Likewise.
2778 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2780 * config/arc/arc-protos.h (arc_label_align): Change type of
2781 variables from rtx to rtx_insn *.
2782 * config/arc/arc.c (arc_label_align): Likewise.
2783 * config/arm/arm.c (any_sibcall_could_use_r3): Likewise.
2784 * config/bfin/bfin.c (workaround_speculation): Likewise.
2785 * config/c6x/c6x.c (find_next_cycle_insn): Likewise.
2786 (find_last_same_clock): Likewise.
2787 (reorg_split_calls): Likewise.
2788 * config/cris/cris-protos.h (cris_cc0_user_requires_cmp): Likewise.
2789 * config/cris/cris.c (cris_cc0_user_requires_cmp): Likewise.
2790 * config/h8300/h8300-protos.h (same_cmp_preceding_p): Likewise.
2791 (same_cmp_following_p): Likewise.
2792 * config/h8300/h8300.c (same_cmp_preceding_p): Likewise.
2793 (same_cmp_following_p): Likwise.
2794 * config/m32r/m32r.c (m32r_expand_epilogue): Likewise.
2795 * config/nds32/nds32-protos.h (nds32_target_alignment): Likewise.
2796 * config/nds32/nds32.c (nds32_target_alignment): Likewise.
2797 * config/rl78/rl78.c (rl78_alloc_physical_registers_op2): Likewise.
2798 (rl78_alloc_physical_registers_cmp): Likewise.
2799 (rl78_alloc_physical_registers_umul): Likewise.
2800 (rl78_calculate_death_notes): Likewise.
2801 * config/s390/s390-protos.h (s390_label_align): Likewise.
2802 * config/s390/s390.c (s390_label_align): Likewise.
2803 * config/sh/sh.c (barrier_align): Likewise.
2804 * config/sparc/sparc-protos.h (emit_cbcond_nop): Likewise.
2805 * config/sparc/sparc.c (sparc_asm_function_epilogue): Likewise.
2806 (emit_cbcond_nop): Likewise.
2808 2016-09-22 Martin Liska <mliska@suse.cz>
2811 * ipa-icf.c (sem_variable::merge): Yield merge operation if
2812 alias address matters, not necessarily address of original.
2814 2016-09-22 Richard Biener <rguenther@suse.de>
2817 * gimple-fold.c (fold_array_ctor_reference): Turn asserts into
2820 2016-09-22 Richard Biener <rguenther@suse.de>
2823 * gimple-match-head.c (gimple_resimplify1): Drop TREE_OVERFLOW
2824 from constant folding results.
2825 (gimple_resimplify2): Likewise.
2826 (gimple_resimplify3): Likewise.
2828 2016-09-22 Richard Biener <rguenther@suse.de>
2831 * expr.c (expand_expr_real_1): Guard array access against negative
2834 2016-09-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2836 * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN instead
2838 (format_floating): Likewise.
2840 2016-09-22 Jakub Jelinek <jakub@redhat.com>
2843 * tree-inline.c (remap_gimple_stmt): Set has_simduid_loops
2844 for all IFN_GOMP_SIMD_* internal fns, not just for
2845 IFN_GOMP_SIMD_ORDERED_*.
2847 2016-09-21 Michael Meissner <meissner@linux.vnet.ibm.com>
2850 * config/rs6000/predicates.md (invert_fpmask_comparison_operator):
2851 New predicate that matches the ISA 3.0 XSCMP{EQ,GT,GE}DP
2852 instructions when you want to invert the test.
2853 * config/rs6000/rs6000.md (fpmask<mode>): Use the arguments in the
2854 correct order for XXSEL.
2855 (mov<SFDF:mode><SFDF2:mode>cc_invert_p9): Define the inverted test
2856 for using XSCMP{EQ,GT,GE}DP.
2858 2016-09-21 David Malcolm <dmalcolm@redhat.com>
2860 * genconstants.c (main): Introduce noop_reader and convert call
2861 to read_md_files to a method call.
2862 * genenums.c (main): Likewise.
2863 * genmddeps.c (main): Likewise.
2864 * genpreds.c (write_tm_constrs_h): Replace use of "in_fname" with
2865 rtx_reader_ptr->get_top_level_filename ().
2866 (write_tm_preds_h): Likewise.
2867 (write_insn_preds_c): Likewise.
2868 * gensupport.c (class gen_reader): New subclass of rtx_reader.
2869 (rtx_handle_directive): Convert to...
2870 (gen_reader::handle_unknown_directive): ...this.
2871 (init_rtx_reader_args_cb): Convert return type from bool to
2872 rtx_reader *. Create a gen_reader instance, using it for the
2873 call to read_md_files. Return it if no errors occur.
2874 (init_rtx_reader_args): Convert return type from bool to
2876 * gensupport.h (init_rtx_reader_args_cb): Likewise.
2877 (init_rtx_reader_args_cb): Likewise.
2878 * read-md.c (struct file_name_list): Move to class rtx_reader.
2879 (read_md_file): Delete in favor of rtx_reader::m_read_md_file.
2880 (read_md_filename): Delete in favor of
2881 rtx_reader::m_read_md_filename.
2882 (read_md_lineno): Delete in favor of rtx_reader::m_read_md_lineno.
2883 (in_fname): Delete in favor of rtx_reader::m_toplevel_fname.
2884 (base_dir): Delete in favor of rtx_reader::m_base_dir.
2885 (first_dir_md_include): Delete in favor of
2886 rtx_reader::m_first_dir_md_include.
2887 (last_dir_md_include_ptr): Delete in favor of
2888 rtx_reader::m_last_dir_md_include_ptr.
2889 (max_include_len): Delete.
2890 (rtx_reader_ptr): New.
2891 (fatal_with_file_and_line): Use get_filename and get_lineno
2892 accessors of rtx_reader_ptr.
2893 (require_char_ws): Likewise.
2894 (rtx_reader::read_char): New method, based on ::read_char.
2895 (rtx_reader::unread_char): New method, based on ::unread_char.
2896 (read_escape): Use get_filename and get_lineno accessors of
2898 (read_braced_string): Use get_lineno accessor of rtx_reader_ptr.
2899 (read_string): Use get_filename and get_lineno accessors of
2901 (rtx_reader::rtx_reader): New ctor.
2902 (rtx_reader::~rtx_reader): New dtor.
2903 (handle_include): Convert from a function to...
2904 (rtx_reader::handle_include): ...this method, converting
2905 handle_directive from a callback to a virtual function.
2906 (handle_file): Likewise, converting to...
2907 (rtx_reader::handle_file): ...this method.
2908 (handle_toplevel_file): Likewise, converting to...
2909 (rtx_reader::handle_toplevel_file): ...this method.
2910 (rtx_reader::get_current_location): New method.
2911 (parse_include): Convert from a function to...
2912 (rtx_reader::add_include_path): ...this method, dropping redundant
2913 update to unused max_include_len.
2914 (read_md_files): Convert from a function to...
2915 (rtx_reader::read_md_files): ...this method, converting
2916 handle_directive from a callback to a virtual function.
2917 (noop_reader::handle_unknown_directive): New method.
2918 * read-md.h (directive_handler_t): Delete this typedef.
2920 (read_md_file): Delete.
2921 (read_md_lineno): Delete.
2922 (read_md_filename): Delete.
2923 (class rtx_reader): New class.
2924 (rtx_reader_ptr): New decl.
2925 (class noop_reader): New subclass of rtx_reader.
2926 (read_char): Reimplement in terms of rtx_reader::read_char.
2927 (unread_char): Reimplement in terms of rtx_reader::unread_char.
2928 (read_md_files): Delete.
2929 * read-rtl.c (read_rtx_code): Update for deletion of globals
2930 read_md_filename and read_md_lineno.
2932 2016-09-21 Jason Merrill <jason@redhat.com>
2934 * input.h (from_macro_definition_at): New.
2936 2016-09-21 Segher Boessenkool <segher@kernel.crashing.org>
2938 * doc/rtl.texi (JUMP_LABEL): Document RETURN and SIMPLE_RETURN values.
2940 2016-09-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
2942 PR tree-optimization/77550
2943 * tree-vect-stmts.c (create_array_ref): Change parameters.
2944 (get_group_alias_ptr_type): New function.
2945 (vectorizable_store, vectorizable_load): Use get_group_alias_ptr_type.
2947 2016-09-21 Marek Polacek <polacek@redhat.com>
2949 * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
2950 Add falls through comment.
2952 2016-09-21 Richard Biener <rguenther@suse.de>
2954 * dwarf2out.c (remove_child_with_prev): Clear child->die_sib.
2955 (replace_child): Likewise.
2956 (remove_child_TAG): Adjust.
2957 (move_marked_base_types): Likewise.
2958 (prune_unused_types_prune): Clear die_sib of removed children.
2960 2016-09-21 Georg-Johann Lay <avr@gjlay.de>
2963 * config/avr/avr.c (avr_notice_update_cc) [CC_NONE]: If insn
2964 touches some regs mentioned in cc_status, do CC_STATUS_INIT.
2966 2016-09-21 Richard Biener <rguenther@suse.de>
2968 PR tree-optimization/77648
2969 * tree-ssa-structalias.c (process_constraint): Handle all DEREF
2971 (make_transitive_closure_constraints): Adjust comment.
2972 (make_any_offset_constraints): New function.
2973 (handle_rhs_call): Make sure to first expand a pointer to all
2974 subfields before transitively closing it.
2975 (handle_const_call): Likewise. Properly expand returned
2977 (handle_pure_call): Likewise.
2979 2016-09-21 Richard Biener <rguenther@suse.de>
2980 Jakub Jelinek <jakub@redhat.com>
2982 PR tree-optimization/77621
2983 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Split
2984 group at non-vectorizable stmts.
2986 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org>
2988 PR tree-optimization/72835
2989 * tree-ssa-reassoc.c (make_new_ssa_for_def): New.
2990 (make_new_ssa_for_all_defs): Likewise.
2991 (zero_one_operation): Replace all SSA_NAMEs defined in the chain.
2993 2016-09-20 Martin Sebor <msebor@redhat.com>
2996 * Makefile.in (OBJS): Add gimple-ssa-sprintf.o.
2997 * config/linux.h (TARGET_PRINTF_POINTER_FORMAT): Redefine.
2998 * config/linux.c (gnu_libc_printf_pointer_format): New function.
2999 * config/sol2.h (TARGET_PRINTF_POINTER_FORMAT): Same.
3000 * config/sol2.c (solaris_printf_pointer_format): New function.
3001 * doc/invoke.texi (-Wformat-length, -fprintf-return-value): New
3003 * doc/tm.texi.in (TARGET_PRINTF_POINTER_FORMAT): Document.
3004 * doc/tm.texi: Regenerate.
3005 * gimple-fold.h (get_range_strlen): New function.
3006 (get_maxval_strlen): Declare existing function.
3007 * gimple-fold.c (get_range_strlen): Add arguments and compute both
3008 maximum and minimum.
3009 (get_range_strlen): Define overload.
3010 (get_maxval_strlen): Adjust.
3011 * gimple-ssa-sprintf.c: New file and pass.
3012 * passes.def (pass_sprintf_length): Add new pass.
3013 * targhooks.h (default_printf_pointer_format): Declare new function.
3014 (gnu_libc_printf_pointer_format): Same.
3015 (solaris_libc_printf_pointer_format): Same.
3016 * targhooks.c (default_printf_pointer_format): Define new function.
3017 * tree-pass.h (make_pass_sprintf_length): Declare new function.
3018 * print-tree.c: Increase buffer size.
3020 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org>
3022 * tree-vrp.c (get_value_range): Teach PARM_DECL to use ipa-vrp results.
3024 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org>
3026 * common.opt: New option -fipa-vrp.
3027 * ipa-cp.c (ipa_get_vr_lat): New.
3028 (ipcp_vr_lattice::print): Likewise.
3029 (print_all_lattices): Call ipcp_vr_lattice::print.
3030 (ipcp_vr_lattice::meet_with): New.
3031 (ipcp_vr_lattice::meet_with_1): Likewise.
3032 (ipcp_vr_lattice::top_p): Likewise.
3033 (ipcp_vr_lattice::bottom_p): Likewsie.
3034 (ipcp_vr_lattice::set_to_bottom): Likewise.
3035 (set_all_contains_variable): Call VR set_to_bottom.
3036 (initialize_node_lattices): Init VR lattices.
3037 (propagate_vr_accross_jump_function): New.
3038 (propagate_constants_accross_call): Call
3039 propagate_vr_accross_jump_function.
3040 (ipcp_store_vr_results): New.
3041 (ipcp_driver): Handle VR.
3042 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Handle VR.
3043 (ipa_set_jf_unknown): Likewise.
3044 (ipa_compute_jump_functions_for_edge): Likewise.
3045 (ipa_node_params_t::duplicate): Likewise.
3046 (ipa_write_jump_function): Likewise.
3047 (ipa_read_jump_function): Likewise.
3048 (write_ipcp_transformation_info): Likewise.
3049 (read_ipcp_transformation_info): Likewise.
3050 (ipcp_update_vr): New.
3051 (ipcp_transform_function): Handle VR.
3052 * ipa-prop.h (struct ipa_vr): New.
3053 * cgraph.c: Include tree-vrp.h.
3054 * cgraphunit.c: Likewise.
3055 * ipa-utils.c: Likewise.
3058 * toplev.c: Likewise.
3059 * ipa-devirt.c: Likewise.
3060 * ipa-inline-transform.c: Likewise.
3061 * ipa-inline.c: Likewise.
3062 * ipa-profile.c: Likewise.
3064 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org>
3066 * doc/invoke.texi: Document -fdump-tree-evrp.
3067 * passes.def: Define new pass_early_vrp.
3068 * timevar.def: Define new TV_TREE_EARLY_VRP.
3069 * tree-pass.h (make_pass_early_vrp): New.
3070 * tree-ssa-propagate.c: Make replace_uses_in non static.
3071 * tree-ssa-propagate.h: Export replace_uses_in.
3072 * tree-vrp.c (extract_range_for_var_from_comparison_expr): New.
3073 (extract_range_from_assert): Factor out
3074 extract_range_for_var_from_comparison_expr.
3075 (vrp_initialize_lattice): New.
3076 (vrp_initialize): Factor out vrp_initialize_lattice.
3077 (vrp_valueize): Fix it to reject complex value ranges.
3078 (vrp_free_lattice): New.
3079 (evrp_dom_walker::before_dom_children): Likewise.
3080 (evrp_dom_walker::after_dom_children): Likewise.
3081 (evrp_dom_walker::push_value_range): Likewise.
3082 (evrp_dom_walker::pop_value_range): Likewise.
3083 (execute_early_vrp): Likewise.
3084 (execute_vrp): Call vrp_initialize_lattice and vrp_free_lattice.
3085 (make_pass_early_vrp): New.
3087 2016-09-20 Uros Bizjak <ubizjak@gmail.com>
3089 * config/i386/i386.md (mult->ashift peephole2s): Use pow2p_hwi
3090 instead of exact_log2.
3092 2016-09-20 Uros Bizjak <ubizjak@gmail.com>
3095 * config/i386/i386.c (ix86_preferred_simd_mode) <case DFmode>:
3096 Don't return word_mode for !TARGET_VECTORIZE_DOUBLE.
3097 (ix86_add_stmt_cost): Penalize DFmode vector operations
3098 for !TARGET_VECTORIZE_DOUBLE.
3100 2016-09-20 Gerald Pfeifer <gerald@pfeifer.com>
3102 * doc/invoke.texi (Warning Options): Simplify language.
3103 (Optimize Options): Complete sentence.
3105 2016-09-20 David Edelsohn <dje.gcc@gmail.com>
3107 * dbxout.c (xcoff_debug_hooks): Add filename parameter to
3110 2016-09-20 Michael Meissner <meissner@linux.vnet.ibm.com>
3113 * config/rs6000/rs6000.c (rs6000_expand_vector_init): For V4SF
3114 inits on power8 and above, use the VMRGEW instruction instead of a
3117 * config/rs6000/altivec.md (UNSPEC_VMRGEW_DIRECT): New unspec.
3118 (p8_vmrgew_v4sf_direct): New VMRGEW insn for V4SF floating
3121 2016-09-20 Tamar Christina <tamar.christina@arm.com>
3123 * config/aarch64/arm_neon.h
3124 (vst2_s64, vst2_u64, vst2_f64, vst2_s8): Add missing attributes.
3125 (vst3_s64, vst3_u64, vst3_f64, vst3_s8): Likewise.
3126 (vst4_s64, vst4_u64, vst4_f64, vst4_s8): Likewise.
3128 2016-09-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
3130 * config/var/vax.h (ELIMINABLE_REGS): Define.
3131 (INITIAL_ELIMINATION_OFFSET): Define.
3133 2016-09-20 Jakub Jelinek <jakub@redhat.com>
3136 * builtins.c (fold_builtin_atomic_always_lock_free): Only look through
3137 cast to void * if the cast is from some other pointer type.
3139 2016-09-20 Richard Biener <rguenther@suse.de>
3141 PR tree-optimization/77646
3142 * tree-ssa-sccvn.c (visit_reference_op_call): Always value-number
3145 2016-09-20 Tamar Christina <tamar.christina@arm.com>
3147 * config/aarch64/arm_neon.h: Add gnu_inline and artificial
3148 attributes to all inlined functions and make them extern.
3150 2016-09-20 Richard Biener <rguenther@suse.de>
3152 * debug.h (gcc_debug_hooks): Add filename parameter to early_finish
3154 * debug.c (do_nothing_debug_hooks): Adjust.
3155 * dbxout.c (dbx_debug_hooks): Likewise.
3156 * sdbout.c (sdb_debug_hooks): Likewise.
3157 * dwarf2out.c (dwarf2_lineno_debug_hooks): Likewise.
3158 (dwarf2out_finish): Move producer, filename and
3160 (dwarf2out_early_finish): ... here. Remove in_lto_p special-casing.
3161 * cgraphunit.c (symbol_table::finalize_compilation_unit): Adjust.
3163 2016-09-19 Bernd Edlinger <bernd.edlinger@hotmail.de>
3166 * doc/invoke.texi: Document -Wint-in-bool-context.
3169 * dwarf2out.c (output_loc_operands): Fix an assertion.
3171 2016-09-19 Joseph Myers <joseph@codesourcery.com>
3173 * ginclude/float.h [__STDC_WANT_IEC_60559_BFP_EXT__]
3174 (CR_DECIMAL_DIG): New macro.
3176 2016-09-19 Joseph Myers <joseph@codesourcery.com>
3178 * ginclude/stddef.h (max_align_t) [__i386__]: Add __float128
3181 2016-09-19 Vladimir Makarov <vmakarov@redhat.com>
3183 PR rtl-optimization/77416
3184 * lra-remat.c (operand_to_remat): Process hard coded insn
3187 2016-09-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3189 * simplify-rtx.c (simplify_relational_operation_1): Add transformation
3190 (GTU (PLUS a C) (C - 1)) --> (LTU a -C).
3192 2016-09-19 Segher Boessenkool <segher@kernel.crashing.org>
3194 * target.def (lra_p): Wordsmithing.
3195 * doc/tm.texi: Regenerate.
3197 2016-09-19 Jakub Jelinek <jakub@redhat.com>
3198 Jan Hubicka <jh@suse.cz>
3201 * cgraph.c (cgraph_node::rtl_info): Pass &avail to
3202 ultimate_alias_target call, return NULL if avail < AVAIL_AVAILABLE.
3203 Call ultimate_alias_target just once, not up to 4 times.
3205 2016-09-19 Richard Biener <rguenther@suse.de>
3207 * dwarf2out.c (early_dwarf_finished): New global.
3208 (set_early_dwarf::set_early_dwarf): Assert early_dwarf_finished
3210 (dwarf2out_early_finish): Set early_dwarf_finished at the end,
3211 if called from LTO exit early.
3212 (dwarf2out_late_global_decl): When being during the early
3213 debug phase do not add locations but only const value attributes.
3214 Adjust the way we generate early DIEs for LTO.
3216 2016-09-19 Richard Biener <rguenther@suse.de>
3219 * tree-data-ref.c (analyze_subscript_affine_affine): Use the
3220 proper niter to bound the loops.
3222 2016-09-19 Richard Biener <rguenther@suse.de>
3224 PR tree-optimization/77514
3225 * tree-ssa-pre.c (create_expression_by_pieces): Optimize
3226 search for folded stmt.
3228 2016-09-17 Jan Hubicka <hubicka@ucw.cz>
3230 * passes.def (pass_early_thread_jumps): Schedule after forwprop.
3231 * tree-pass.h (make_pass_early_thread_jumps): Declare.
3232 * tree-ssa-threadbackward.c (fsm_find_thread_path,
3233 fsm_find_thread_path, profitable_jump_thread_path,
3234 fsm_find_control_statement_thread_paths,
3235 find_jump_threads_backwards): Add speed_p parameter.
3236 (pass_data_early_thread_jumps): New pass.
3237 (make_pass_early_thread_jumps): New function.
3239 2016-09-17 Andreas Schwab <schwab@suse.de>
3241 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add cast.
3242 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Likewise.
3244 2016-09-16 Eric Botcazou <ebotcazou@adacore.com>
3246 * recog.c (rest_of_handle_split_after_reload): Delete.
3247 (pass_split_after_reload::gate): New method.
3248 (pass_split_after_reload::execute): Call split_all_insns directly.
3250 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
3252 * doc/extend.texi (Integer Overflow Builtins): Fix type of out
3253 parameters for functions taking long long arguments.
3255 2016-09-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3258 * config/rs6000/rs6000.c (rtx_is_swappable_p): Add support for
3259 splat with truncate.
3261 2016-09-16 Jason Merrill <jason@redhat.com>
3263 * hwint.h (least_bit_hwi, pow2_or_zerop, pow2p_hwi, ctz_or_zero):
3265 * hwint.c (exact_log2): Use pow2p_hwi.
3266 (ctz_hwi, ffs_hwi): Use least_bit_hwi.
3267 * alias.c (memrefs_conflict_p): Use pow2_or_zerop.
3268 * builtins.c (get_object_alignment_2, get_object_alignment)
3269 (get_pointer_alignment, fold_builtin_atomic_always_lock_free): Use
3271 * calls.c (compute_argument_addresses, store_one_arg): Use
3273 * cfgexpand.c (expand_one_stack_var_at): Use least_bit_hwi.
3274 * combine.c (force_to_mode): Use least_bit_hwi.
3275 (contains_muldiv, find_split_point, combine_simplify_rtx)
3276 (simplify_if_then_else, simplify_set, force_to_mode)
3277 (if_then_else_cond, simplify_and_const_int_1)
3278 (simplify_compare_const): Use pow2p_hwi.
3279 * cse.c (fold_rtx): Use pow2p_hwi.
3280 * emit-rtl.c (set_mem_attributes_minus_bitpos, adjust_address_1):
3282 * expmed.c (synth_mult, expand_divmod): Use ctz_or_zero, ctz_hwi.
3283 (init_expmed_one_conv): Use pow2p_hwi.
3284 * expr.c (is_aligning_offset): Use pow2p_hwi.
3285 * fold-const.c (round_up_loc, round_down_loc): Use pow2_or_zerop.
3286 (fold_binary_loc): Use pow2p_hwi.
3287 * function.c (assign_parm_find_stack_rtl): Use least_bit_hwi.
3288 * gimple-fold.c (gimple_fold_builtin_memory_op): Use pow2p_hwi.
3289 * gimple-ssa-strength-reduction.c (replace_ref): Use least_bit_hwi.
3290 * hsa-gen.c (gen_hsa_addr_with_align, hsa_bitmemref_alignment):
3292 * ifcvt.c (noce_try_store_flag_constants): Use pow2p_hwi.
3293 * ipa-cp.c (ipcp_alignment_lattice::meet_with_1): Use least_bit_hwi.
3294 * ipa-prop.c (ipa_modify_call_arguments): Use least_bit_hwi.
3295 * omp-low.c (oacc_loop_fixed_partitions)
3296 (oacc_loop_auto_partitions): Use least_bit_hwi.
3297 * rtlanal.c (nonzero_bits1): Use ctz_or_zero.
3298 * stor-layout.c (place_field): Use least_bit_hwi.
3299 * tree-pretty-print.c (dump_generic_node): Use pow2p_hwi.
3300 * tree-sra.c (build_ref_for_offset): Use least_bit_hwi.
3301 * tree-ssa-ccp.c (ccp_finalize): Use least_bit_hwi.
3302 * tree-ssa-math-opts.c (bswap_replace): Use least_bit_hwi.
3303 * tree-ssa-strlen.c (handle_builtin_memcmp): Use pow2p_hwi.
3304 * tree-vect-data-refs.c (vect_analyze_group_access_1)
3305 (vect_grouped_store_supported, vect_grouped_load_supported)
3306 (vect_permute_load_chain, vect_shift_permute_load_chain)
3307 (vect_transform_grouped_load): Use pow2p_hwi.
3308 * tree-vect-generic.c (expand_vector_divmod): Use ctz_or_zero.
3309 * tree-vect-patterns.c (vect_recog_divmod_pattern): Use ctz_or_zero.
3310 * tree-vect-stmts.c (vectorizable_mask_load_store): Use
3312 * tsan.c (instrument_expr): Use least_bit_hwi.
3313 * var-tracking.c (negative_power_of_two_p): Use pow2_or_zerop.
3315 2016-09-16 Andreas Schwab <schwab@suse.de>
3317 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Use parameter
3319 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Likewise.
3321 2016-09-16 Jakub Jelinek <jakub@redhat.com>
3324 * combine.c (rest_of_handle_combine): If any edges have been purged,
3325 free dominators if available.
3327 2016-09-16 Jakub Jelinek <jakub@redhat.com>
3328 Eric Botcazou <ebotcazou@adacore.com>
3331 * internal-fn.c (expand_arith_overflow) <case MINUS_EXPR>: Don't fall
3332 through into expand_addsub_overflow after expand_neg_overflow.
3334 2016-09-15 David Malcolm <dmalcolm@redhat.com>
3336 * diagnostic-show-locus.c
3337 (selftest::test_fixit_insert_containing_newline): New function.
3338 (selftest::test_fixit_replace_containing_newline): New function.
3339 (selftest::diagnostic_show_locus_c_tests): Call the above.
3341 2016-09-15 Bin Cheng <bin.cheng@arm.com>
3343 PR tree-optimization/77503
3344 * tree-vect-loop.c (vectorizable_reduction): Record reduction
3345 code for CONST_COND_REDUCTION at analysis stage and use it at
3347 * tree-vectorizer.h (struct _stmt_vec_info): New field.
3348 (STMT_VINFO_VEC_CONST_COND_REDUC_CODE): New macro.
3349 * tree-vect-stmts.c (new_stmt_vec_info): Initialize above new
3352 2016-09-15 Richard Biener <rguenther@suse.de>
3355 * fold-const.c (split_tree): Do not split constant ~X.
3357 2016-09-15 Jakub Jelinek <jakub@redhat.com>
3359 PR rtl-optimization/77425
3360 * sched-int.h (sd_iterator_cond): Don't update it_ptr->linkp if list
3364 * config/i386/i386.c (ix86_parse_stringop_strategy_string): Simplify,
3365 use %qs instead of %s where desirable, use argument instead of arg in
3366 the diagnostic wording, add list of supported strategies and
3368 (ix86_option_override_internal): Emit target("m...") instead of
3369 option("m...") in the diagnostic. Use %qs instead of %s in invalid
3370 -march/-mtune option diagnostic. Add list of supported arches/tunings
3371 and spellcheck hint. Remove prefix, suffix and sw variables, use
3372 main_args_p ? "..." : "..." in diagnostics to make translation
3375 2016-09-15 Richard Biener <rguenther@suse.de>
3377 * dwarf2asm.h (dw2_asm_output_offset): Add overload with
3378 extra offset argument.
3379 * dwarf2asm.c (dw2_asm_output_offset): Implement that.
3380 * doc/tm.texi.in (ASM_OUTPUT_DWARF_OFFSET): Adjust documentation
3381 to reflect new offset parameter.
3382 * doc/tm.texi: Regenerate.
3383 * config/darwin.h (ASM_OUTPUT_DWARF_OFFSET): Adjust.
3384 * config/darwin-protos.h (darwin_asm_output_dwarf_delta): Add
3386 (darwin_asm_output_dwarf_offset): Likewise.
3387 * config/darwin.c (darwin_asm_output_dwarf_delta): Add offset
3389 (darwin_asm_output_dwarf_offset): Pass offset argument through.
3390 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Adjust.
3391 * config/i386/cygmin.h (ASM_OUTPUT_DWARF_OFFSET): Likewise.
3393 2016-09-15 Chung-Lin Tang <cltang@codesourcery.com>
3396 * ipa-icf.c (set_alias_uids): New function.
3397 (sem_variable::merge): Use set_alias_uids to set DECL_PT_UID of
3398 all the merged variable's referring aliases.
3400 2016-09-15 Richard Biener <rguenther@suse.de>
3402 PR tree-optimization/77514
3403 * tree-ssa-pre.c (create_expression_by_pieces): Handle garbage
3404 only forced_stmts sequence.
3406 2016-09-15 Kugan Vivekanandarajah <kuganv@linaro.org>
3408 * tree-ssanames.h (FOR_EACH_SSA_NAME): New.
3409 * cfgexpand.c (update_alias_info_with_stack_vars): Use
3410 FOR_EACH_SSA_NAME to iterate over SSA variables.
3411 (pass_expand::execute): Likewise.
3412 * omp-simd-clone.c (ipa_simd_modify_function_body): Likewise.
3413 * tree-cfg.c (dump_function_to_file): Likewise.
3414 * tree-into-ssa.c (pass_build_ssa::execute): Likewise.
3415 (update_ssa): Likewise.
3416 * tree-ssa-alias.c (dump_alias_info): Likewise.
3417 * tree-ssa-ccp.c (ccp_finalize): Likewise.
3418 * tree-ssa-coalesce.c (build_ssa_conflict_graph): Likewise.
3419 (create_outofssa_var_map): Likewise.
3420 (coalesce_ssa_name): Likewise.
3421 * tree-ssa-operands.c (dump_immediate_uses): Likewise.
3422 * tree-ssa-pre.c (compute_avail): Likewise.
3423 * tree-ssa-sccvn.c (init_scc_vn): Likewise.
3424 (scc_vn_restore_ssa_info): Likewise.
3425 (free_scc_vn): Likwise.
3426 (run_scc_vn): Likewise.
3427 * tree-ssa-structalias.c (compute_points_to_sets): Likewise.
3428 * tree-ssa-ter.c (new_temp_expr_table): Likewise.
3429 * tree-ssa-copy.c (fini_copy_prop): Likewise.
3430 * tree-ssa.c (verify_ssa): Likewise.
3432 2016-09-14 Matthew Fortune <matthew.fortune@imgtec.com>
3434 * config.gcc (mips*-mti-elf*, mips*-mti-linux*): Set mips32r2
3435 and mips64r2 as default 32-bit and 64-bit architectures.
3436 (mips*-img-elf*, mips*-img-linux*): Set mips32r6 and mips64r6
3437 as default 32-bit and 64-bit architectures.
3439 2016-09-14 Pat Haugen <pthaugen@us.ibm.com>
3441 * loop-unroll.c (unroll_loop_runtime_iterations): Set probability
3444 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
3446 * target.def (lra_p): Change commentary (for the manual) for the
3448 * doc/tm.texi: Regenerate.
3450 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
3452 * config/aarch64/aarch64.c (TARGET_LRA_P): Delete macro.
3453 * config/arm/arm.c (TARGET_LRA_P): Delete macro.
3454 * config/i386/i386.c (TARGET_LRA_P): Delete macro.
3455 * config/nds32/nds32.c (TARGET_LRA_P): Delete macro.
3457 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
3459 * targhooks.c (default_lra_p): Return true instead of false.
3461 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
3463 * config/alpha/alpha.c (TARGET_LRA_P): New macro, defined to
3464 hook_bool_void_false.
3465 * config/avr/avr.c: Ditto.
3466 * config/bfin/bfin.c: Ditto.
3467 * config/c6x/c6x.c: Ditto.
3468 * config/cr16/cr16.c: Ditto.
3469 * config/cris/cris.c: Ditto.
3470 * config/epiphany/epiphany.c: Ditto.
3471 * config/fr30/fr30.c: Ditto.
3472 * config/frv/frv.c: Ditto.
3473 * config/h8300/h8300.c: Ditto.
3474 * config/ia64/ia64.c: Ditto.
3475 * config/iq2000/iq2000.c: Ditto.
3476 * config/lm32/lm32.c: Ditto.
3477 * config/m32c/m32c.c: Ditto.
3478 * config/m32r/m32r.c: Ditto.
3479 * config/m68k/m68k.c: Ditto.
3480 * config/mcore/mcore.c: Ditto.
3481 * config/microblaze/microblaze.c: Ditto.
3482 * config/mmix/mmix.c: Ditto.
3483 * config/mn10300/mn10300.c: Ditto.
3484 * config/moxie/moxie.c: Ditto.
3485 * config/msp430/msp430.c: Ditto.
3486 * config/nios2/nios2.c: Ditto.
3487 * config/nvptx/nvptx.c: Ditto.
3488 * config/pa/pa.c: Ditto.
3489 * config/pdp11/pdp11.c: Ditto.
3490 * config/rl78/rl78.c: Ditto.
3491 * config/sparc/sparc.c: Ditto.
3492 * config/spu/spu.c: Ditto.
3493 * config/stormy16/stormy16.c: Ditto.
3494 * config/tilegx/tilegx.c: Ditto.
3495 * config/tilepro/tilepro.c: Ditto.
3496 * config/v850/v850.c: Ditto.
3497 * config/vax/vax.c: Ditto.
3498 * config/visium/visium.c: Ditto.
3499 * config/xtensa/xtensa.c: Ditto.
3501 2016-09-14 Jakub Jelinek <jakub@redhat.com>
3504 * tsan.c: Include target.h.
3505 (enum tsan_atomic_action): Add bool_clear and bool_test_and_set.
3506 (BOOL_CLEAR, BOOL_TEST_AND_SET): Define.
3507 (tsan_atomic_table): Add BUILT_IN_ATOMIC_CLEAR and
3508 BUILT_IN_ATOMIC_TEST_AND_SET entries.
3509 (instrument_builtin_call): Handle bool_clear and bool_test_and_set.
3511 2016-09-14 Bernd Edlinger <bernd.edlinger@hotmail.de>
3512 Martin Liska <mliska@suse.cz>
3515 * predict.c (force_edge_cold): Add braces to a condition.
3517 2016-09-13 Bernd Edlinger <bernd.edlinger@hotmail.de>
3519 PR rtl-optimization/77289
3520 * lra-constraints.c (get_final_hard_regno): Removed.
3521 (get_hard_regno): Add new parameter final_p.
3522 (get_reg_class): Directly call lra_get_elimination_hard_regno.
3523 (operands_match_p): Adjust call to get_hard_regno.
3524 (uses_hard_regs_p): Likewise.
3525 (process_alt_operands): Likewise.
3527 2016-09-13 Joe Seymour <joe.s@somniumtech.com>
3530 * config/msp430/msp430.c (msp430_start_function): Emit an error
3531 if a function is both weak and specifies an interrupt number.
3533 2016-09-13 Jakub Jelinek <jakub@redhat.com>
3535 PR tree-optimization/77454
3536 * tree-ssa-dom.c (optimize_stmt): Set modified flag on stmt after
3537 changing GIMPLE_COND. Move update_stmt_if_modified call after this.
3540 2016-09-13 Tamar Christina <tamar.christina@arm.com>
3542 * config/aarch64/aarch64-builtins.c
3543 (aarch64_init_simd_builtins): Fix builtin type signature printing.
3545 2016-09-13 Uros Bizjak <ubizjak@gmail.com>
3547 * config/alpha/alpha.c (alpha_pass_by_reference): Pass un-named
3548 SFmode and SCmode arguments by reference.
3550 2016-09-13 David Malcolm <dmalcolm@redhat.com>
3552 * diagnostic-show-locus.c (selftest::test_one_liner_fixit_insert):
3554 (selftest::test_one_liner_fixit_insert_before): ...this, and update
3555 for renaming of add_fixit_insert to add_fixit_insert_before.
3556 (selftest::test_one_liner_fixit_insert_after): New function.
3557 (selftest::test_one_liner_fixit_validation_adhoc_locations):
3558 Update for renaming of add_fixit_insert to add_fixit_insert_before.
3559 (selftest::test_one_liner_many_fixits): Likewise.
3560 (selftest::test_diagnostic_show_locus_one_liner): Update for
3561 renaming, call new test function.
3562 (selftest::test_diagnostic_show_locus_fixit_lines): Update for
3563 renaming of add_fixit_insert to add_fixit_insert_before.
3564 (selftest::test_fixit_consolidation): Likewise.
3565 * diagnostic.c (selftest::test_print_parseable_fixits_insert):
3567 * edit-context.c (selftest::test_applying_fixits_insert): Rename to...
3568 (selftest::test_applying_fixits_insert_before): ...this.
3569 (selftest::test_applying_fixits_insert): Update for renaming of
3570 add_fixit_insert to add_fixit_insert_before.
3571 (selftest::test_applying_fixits_insert_after): New function.
3572 (selftest::test_applying_fixits_insert_after_at_line_end): New
3574 (selftest::test_applying_fixits_insert_after_failure): New function.
3575 (selftest::test_applying_fixits_multiple): Update for renaming of
3576 add_fixit_insert to add_fixit_insert_before.
3577 (selftest::change_line): Likewise.
3578 (selftest::test_applying_fixits_unreadable_file): Likewise.
3579 (selftest::test_applying_fixits_line_out_of_range): Likewise.
3580 (selftest::test_applying_fixits_column_validation): Likewise.
3581 (selftest::test_applying_fixits_column_validation): Likewise.
3582 (selftest::edit_context_c_tests): Update for renamed test function;
3583 call new test functions.
3585 2016-09-13 Pat Haugen <pthaugen@us.ibm.com>
3587 PR tree-optimization/77536
3588 PR rtl-optimization/68212
3589 * config/rs6000/rs6000.md (div->recip splitter): Remove
3590 optimize_insn_for_speed_p condition.
3592 2016-09-13 Maciej W. Rozycki <macro@imgtec.com>
3594 * optabs.c (prepare_cmp_insn): Update documentation comment.
3596 2016-09-13 Jakub Jelinek <jakub@redhat.com>
3597 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3600 * opts.h (candidates_list_and_hint): Declare.
3601 * opts-common.c (candidates_list_and_hint): New function.
3602 (cmdline_handle_error): Use it.
3604 2016-09-12 David Malcolm <dmalcolm@redhat.com>
3606 * edit-context.c (edited_line::get_len): New accessor.
3607 (edited_file::print_diff): Split out hunk-printing into...
3608 (edited_file::print_diff_hunk): New method.
3609 (edited_file::print_diff_line): New method.
3611 2016-09-12 Andrew Pinski <apinski@cavium.com>
3613 * config/aarch64/aarch64-tuning-flags.def (SLOW_UNALIGNED_LDPW):
3615 * config/aarch64/aarch64.c (thunderx_tunings): Enable
3616 AARCH64_EXTRA_TUNE_SLOW_UNALIGNED_LDPW.
3617 (aarch64_operands_ok_for_ldpstp): Return false if
3618 AARCH64_EXTRA_TUNE_SLOW_UNALIGNED_LDPW and the mode
3619 was SImode and the alignment is less than 8 byte.
3620 (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
3622 2016-09-12 Orlando Arias <oarias@knights.ucf.edu>
3625 * config/msp430/msp430.md (delay_cycles_32x): Fix pushm/popm.
3627 2016-09-12 Marek Polacek <polacek@redhat.com>
3629 * doc/extend.texi: Use lowercase "boolean".
3630 * doc/invoke.texi: Likewise.
3631 * doc/md.texi: Likewise.
3632 * target.def: Likewise.
3633 * doc/tm.texi: Regenerated.
3635 2016-09-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3638 * expmed.c (synth_mult): Delete duplicate mode check.
3640 2016-09-10 Tom de Vries <tom@codesourcery.com>
3643 * builtins.c (std_canonical_va_list_type): Strictly return non-null for
3645 * config/i386/i386.c (ix86_canonical_va_list_type): Same.
3646 * gimplify.c (gimplify_va_arg_expr): Handle &va_list.
3648 2016-09-09 Peter Bergner <bergner@vnet.ibm.com>
3650 PR rtl-optimization/77289
3651 * lra-constraints.c (get_final_hard_regno): Add support for non hard
3652 register numbers. Remove support for subregs.
3653 (get_hard_regno): Use SUBREG_P. Don't call get_final_hard_regno().
3654 (get_reg_class): Delete removed get_final_hard_regno() argument.
3655 (uses_hard_regs_p): Call get_final_hard_regno().
3657 2016-09-09 Martin Sebor <msebor@redhat.com>
3661 * pretty-print.c (pp_quoted_string): New function.
3662 (pp_format): Call it for %c and %s directives.
3664 2016-09-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
3666 * doc/tm.texi.in (INITIAL_FRAME_POINTER_OFFSET): Remove.
3667 (ELIMINABLE_REGS, TARGET_CAN_ELIMINATE,
3668 INITIAL_ELIMINATION_OFFSET) : Update documentation.
3669 * target.def (frame_pointer_required, can_eliminate): Likewise.
3670 * doc/tm.texi: Regenerated.
3671 * builtins.c (expand_builtin_setjmp_receiver): Remove #ifdef
3673 * df-scan.c (df_hard_reg_init): Likewise.
3674 * ira.c (ira_setup_eliminable_regset): Likewise.
3675 * lra-eliminations.c (reg_eliminate_1, (update_reg_eliminate,
3676 init_elim_table): Likewise.
3677 * reload1.c (reg_eliminate_1, verify_initial_elim_offsets,
3678 set_initial_elim_offsets, update_eliminables,
3679 init_elim_table): Likewise.
3680 * rtlanal.c (get_initial_register_offset): Likewise.
3681 * config/ft32/ft32.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
3682 * config/m32r/m32r.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
3683 * config/moxie/moxie.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
3684 * config/vax/vax.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
3685 * config/fr30/fr30.h: Fix comment.
3686 * config/frv/frv.c: Likewise.
3687 * config/frv/frv.h: Likewise.
3688 * config/ft32/ft32.h: Likewise.
3689 * config/visium/visium.h: Likewise.
3690 * config/pa/pa64-linux.h: Likewise.
3691 * config/v850/v850.h: Likewise.
3692 * config/cris/cris.c: Likewise.
3693 * config/ia64/ia64.h: Likewise.
3694 * config/moxie/moxie.h: Likewise.
3695 * config/m32r/m32r.h: Likewise.
3697 2016-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com>
3700 * config.in: Regenerate.
3701 * config/i386/linux-common.h (MPX_LD_AS_NEEDED_GUARD_PUSH):
3703 (MPX_LD_AS_NEEDED_GUARD_PUSH): Ditto.
3704 (LIBMPXWRAPPERS_SPEC): Remove "--no-whole-archive" from
3705 static-libmpxwrappers case.
3706 (LIBMPX_SPEC): Add guards with MPX_LD_AS_NEEDED_GUARD_PUSH and
3707 MPX_LD_AS_NEEDED_GUARD_POP.
3708 * configure: Regenerate.
3709 * configure.ac (HAVE_LD_PUSHPOPSTATE_SUPPORT): New variable.
3710 defined if linker support "--push-state"/"--pop-state".
3712 2016-09-09 Bernd Edlinger <bernd.edlinger@hotmail.de>
3714 * doc/cpp.texi (__*_WIDTH__): Small wording fixes.
3716 2016-09-09 Joseph Myers <joseph@codesourcery.com>
3718 * doc/cpp.texi (__SCHAR_WIDTH__, __SHRT_WIDTH__, __INT_WIDTH__)
3719 (__LONG_WIDTH__, __LONG_LONG_WIDTH__, __PTRDIFF_WIDTH__)
3720 (__SIG_ATOMIC_WIDTH__, __SIZE_WIDTH__, __WCHAR_WIDTH__)
3721 (__WINT_WIDTH__, __INT_LEAST8_WIDTH__, __INT_LEAST16_WIDTH__)
3722 (__INT_LEAST32_WIDTH__, __INT_LEAST64_WIDTH__)
3723 (__INT_FAST8_WIDTH__, __INT_FAST16_WIDTH__, __INT_FAST32_WIDTH__)
3724 (__INT_FAST64_WIDTH__, __INTPTR_WIDTH__, __INTMAX_WIDTH__):
3726 * ginclude/stdint-gcc.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Define
3727 width macros from TS 18661-1.
3728 * glimits.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Likewise.
3730 2016-09-08 Jakub Jelinek <jakub@redhat.com>
3733 * omp-low.c (lower_rec_simd_input_clauses): Use max_vf for non-positive
3734 OMP_CLAUSE_SAFELEN_EXPR.
3736 2016-09-07 David Malcolm <dmalcolm@redhat.com>
3738 * Makefile.in (OBJS): Add substring-locations.o.
3739 * langhooks-def.h (class substring_loc): New forward decl.
3740 (lhd_get_substring_location): New decl.
3741 (LANG_HOOKS_GET_SUBSTRING_LOCATION): New macro.
3742 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_GET_SUBSTRING_LOCATION.
3743 * langhooks.c (lhd_get_substring_location): New function.
3744 * langhooks.h (class substring_loc): New forward decl.
3745 (struct lang_hooks): Add field get_substring_location.
3746 * substring-locations.c: New file, taking definition of
3747 format_warning_va and format_warning_at_substring from
3748 c-family/c-format.c, making them non-static.
3749 * substring-locations.h (class substring_loc): Move class here
3750 from c-family/c-common.h. Add and rewrite comments.
3751 (format_warning_va): New decl.
3752 (format_warning_at_substring): New decl.
3753 (get_source_location_for_substring): Add comment.
3755 2016-09-07 Eric Gallager <egall@gwmail.gwu.edu>
3757 * config/i386/i386.c: Add 'U' suffix to processor feature bits
3758 to avoid -Wnarrowing warning.
3759 * config/i386/x86-tune.def: Likewise for DEF_TUNE selector bitmasks.
3760 * opts.c: Likewise for SANITIZER_OPT bitmasks.
3762 2016-09-07 Wilco Dijkstra <wdijkstr@arm.com>
3764 * config/aarch64/aarch64.c (aarch64_legitimize_address):
3765 Avoid use of base_offset if offset already in range.
3767 2016-09-07 Kaz Kojima <kkojima@gcc.gnu.org>
3769 * config/sh/sh-protos.h (struct sh_atomic_model,
3770 selected_atomic_model, TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
3771 TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
3772 TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Move to...
3773 * config/sh/sh.h (struct sh_atomic_model,
3774 selected_atomic_model, TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
3775 TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
3776 TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): ...here.
3777 Guard with __cplusplus.
3779 2016-09-06 Jakub Jelinek <jakub@redhat.com>
3782 * config/i386/i386.c (ix86_expand_builtin): For builtin with
3783 unsupported or unknown ISA, use expand_call.
3785 2016-09-06 Martin Liska <mliska@suse.cz>
3787 PR gcov-profile/77378
3788 PR gcov-profile/77466
3789 * tree-profile.c (tree_profiling): Detect whether target can use
3790 -fprofile-update=atomic.
3792 2016-09-06 Richard Biener <rguenther@suse.de>
3794 PR tree-optimization/77479
3795 * tree-vrp.c (update_value_range): Extend overflow handling to
3798 2016-09-05 Jakub Jelinek <jakub@redhat.com>
3801 * config/i386/i386.md (isa): Add x64_avx512bw.
3802 (*zero_extendsidi2): For alternative 11 use x64_avx512bw isa.
3803 (kmov_isa): New mode attr.
3804 (zero_extend<mode>di2): Use <kmov_isa> isa for the last alternative.
3805 (*zero_extend<mode>si2): Likewise.
3806 (*zero_extendqihi2): Use avx512dq isa for the last alternative.
3808 2016-09-05 Gerald Pfeifer <gerald@pfeifer.com>
3810 * doc/invoke.texi (SPU Options): nops -> NOPs.
3811 (x86 Options): Ditto.
3813 2016-09-05 Jakub Jelinek <jakub@redhat.com>
3816 * toplev.c (process_options): Temporarily set input_location
3817 to UNKNOWN_LOCATION around targetm.target_option.override () call.
3819 2016-09-05 Uros Bizjak <ubizjak@gmail.com>
3821 PR rtl-optimization/77452
3822 * explow.c (plus_constant) <case MEM>: Extract scalar constant from
3823 inner-mode reference to a CONST_VECTOR constant in the constant pool.
3825 2016-09-05 Marek Polacek <polacek@redhat.com>
3828 * doc/invoke.texi: Update -Wlogical-not-parentheses documentation.
3830 2016-09-05 Jakub Jelinek <jakub@redhat.com>
3833 * gensupport.c (alter_output_for_subst_insn): Remove redundant
3834 *insn_out == '*' test. Don't copy unnecessary to yet another
3835 memory buffer, and don't leak it.
3837 PR rtl-optimization/77425
3838 * ipa-devirt.c (get_odr_type): Set val->id unconditionally.
3840 2016-09-03 Kirill Yukhin <kirill.yukhin@intel.com>
3842 * ubsan.c (ubsan_use_new_style_p): Fix check for empty string.
3844 2016-09-02 David Malcolm <dmalcolm@redhat.com>
3846 * common.opt (fdiagnostics-generate-patch): New option.
3847 * diagnostic.c: Include "edit-context.h".
3848 (diagnostic_initialize): Initialize context->edit_context_ptr.
3849 (diagnostic_finish): Delete context->edit_context_ptr.
3850 (diagnostic_report_diagnostic): Add fix-it hints from the
3851 diagnostic to context->edit_context_ptr, if any.
3852 * diagnostic.h (class edit_context): Add forward decl.
3853 (struct diagnostic_context): Add field "edit_context_ptr".
3854 * doc/invoke.texi (Diagnostic Message Formatting Options): Add
3855 -fdiagnostics-generate-patch.
3856 (-fdiagnostics-generate-patch): New item.
3857 * toplev.c: Include "edit-context.h".
3858 (process_options): Set global_dc->edit_context_ptr to a new
3859 edit_context if the options need one.
3860 (toplev::main): Handle -fdiagnostics-generate-patch by using
3861 global_dc->edit_context_ptr.
3863 2016-09-02 Jakub Jelinek <jakub@redhat.com>
3866 * gimplify.c (gimplify_adjust_omp_clauses_1): Diagnose implicit
3867 map and firstprivate clauses on target construct for _Atomic
3869 (gimplify_adjust_omp_clauses): Diagnose explicit firstprivate clauses
3870 on target construct for _Atomic qualified decls.
3871 * omp-low.c (use_pointer_for_field): Return true for _Atomic qualified
3873 * omp-simd-clone.c (simd_clone_clauses_extract): Warn and give up for
3874 _Atomic qualified arguments not mentioned in uniform clause.
3876 2016-09-02 David Malcolm <dmalcolm@redhat.com>
3878 * Makefile.in (OBJS-libcommon): Add edit-context.o.
3879 * diagnostic-color.c (color_dict): Add "diff-filename",
3880 "diff-hunk", "diff-delete", and "diff-insert".
3881 (parse_gcc_colors): Update default value of GCC_COLORS in comment
3882 to reflect above changes.
3883 * doc/invoke.texi (-fdiagnostics-color): Update description of
3884 default GCC_COLORS, and of the supported capabilities.
3885 * edit-context.c: New file.
3886 * edit-context.h: New file.
3887 * input.c (struct fcache): Add field "missing_trailing_newline".
3888 (diagnostics_file_cache_forcibly_evict_file): Initialize it to
3890 (add_file_to_cache_tab): Likewise.
3891 (fcache::fcache): Likewise.
3892 (get_next_line): Update c->missing_trailing_newline.
3893 (location_missing_trailing_newline): New function.
3894 * input.h (location_missing_trailing_newline): New decl.
3895 * selftest-run-tests.c (selftest::run_tests): Call
3896 edit_context_c_tests.
3897 * selftest.h (edit_context_c_tests): New decl.
3899 2016-09-02 Jakub Jelinek <jakub@redhat.com>
3900 Richard Biener <rguenth@suse.de>
3902 PR tree-optimization/77444
3903 * tree-ssa-loop-ivopts.c (cand_value_at): For pointers use sizetype
3904 as steptype, remove redundant initialization.
3906 2016-09-02 Jakub Jelinek <jakub@redhat.com>
3909 * sanopt.c: Include gimple-ssa.h, tree-phinodes.h and ssa-iterators.h.
3910 (sanopt_optimize_walker): Optimize away
3911 __asan_before_dynamic_init (...) followed by
3912 __asan_after_dynamic_init () without intervening memory loads/stores.
3913 * ipa-pure-const.c (special_builtin_state): Handle
3914 BUILT_IN_ASAN_BEFORE_DYNAMIC_INIT and
3915 BUILT_IN_ASAN_AFTER_DYNAMIC_INIT.
3917 2016-09-02 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3919 * cfg.c (free_original_copy_tables): Replace second assignment of
3920 bb_copy = NULL by bb_original = NULL.
3922 2016-09-02 Jakub Jelinek <jakub@redhat.com>
3925 * config/i386/i386.c (ix86_expanded_args_builtin): Remove redundant
3926 assignment added in r216794.
3928 2016-09-02 David Malcolm <dmalcolm@redhat.com>
3930 * Makefile.in (OBJS): Add typed-splay-tree.o.
3931 * selftest-run-tests.c (selftest::run_tests): Call
3932 typed_splay_tree_c_tests.
3933 * selftest.h (typed_splay_tree_c_tests): New decl.
3934 * typed-splay-tree.c: New file.
3935 * typed-splay-tree.h (typed_splay_tree::foreach_fn): New typedef.
3936 (typed_splay_tree::max): New method.
3937 (typed_splay_tree::min): New method.
3938 (typed_splay_tree::foreach): New method.
3939 (typed_splay_tree::closure): New struct.
3940 (typed_splay_tree::inner_foreach_fn): New function.
3942 2016-09-02 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3944 * ipa-cp.c (ipcp_store_bits_results): Change option name from
3945 -fipa-cp-bit to -fipa-bit-cp.
3947 2016-09-01 Martin Sebor <msebor@redhat.com>
3949 PR tree-optimization/71831
3950 * tree-object-size.h: Return bool instead of the size and add
3951 argument for the size.
3952 * tree-object-size.c (compute_object_offset): Update signature.
3953 (addr_object_size): Same.
3954 (compute_builtin_object_size): Return bool instead of the size
3955 and add argument for the size. Handle POINTER_PLUS_EXPR when
3956 optimization is disabled.
3957 (expr_object_size): Adjust.
3958 (plus_stmt_object_size): Adjust.
3959 (pass_object_sizes::execute): Adjust.
3960 * builtins.c (fold_builtin_object_size): Adjust.
3961 * doc/extend.texi (Object Size Checking): Update.
3962 * ubsan.c (instrument_object_size): Adjust.
3964 2016-09-01 Martin Sebor <msebor@redhat.com>
3966 * genmatch.c (parser::parse_expr): Increase buffer size to guarantee
3967 it fits the output of the formatted function regardless of its
3969 * gcc/genmodes.c (parser::parse_expr): Same.
3970 * gimplify.c (gimplify_asm_expr): Same.
3971 * passes.c (pass_manager::register_one_dump_file): Same.
3972 * print-tree.c (print_node): Same.
3974 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
3976 * config/rs6000/altivec.md: Use VSCR_REGNO instead of 110 throughout.
3978 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
3980 * config/rs6000/altivec.md: Use VRSAVE_REGNO instead of 109 throughout.
3982 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
3984 * config/rs6000/altivec.md: Use CR6_REGNO instead of 74 throughout.
3985 * config/rs6000/vector.md: Ditto.
3986 * config/rs6000/vsx.md: Ditto.
3988 2016-09-01 Eric Botcazou <ebotcazou@adacore.com>
3990 * ipa-inline-analysis.c (param_change_prob): Get to the base object
3993 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
3995 * config/rs6000/rs6000.md (*restore_gpregs_<mode>_r11,
3996 *restore_gpregs_<mode>_r12, *restore_gpregs_<mode>_r1,
3997 *return_and_restore_gpregs_<mode>_r11,
3998 *return_and_restore_gpregs_<mode>_r12,
3999 *return_and_restore_gpregs_<mode>_r1,
4000 *return_and_restore_fpregs_<mode>_r11,
4001 *return_and_restore_fpregs_<mode>_r12,
4002 *return_and_restore_fpregs_<mode>_r1): Use the hard register LR_REGNO
4003 directly instead of via the "l" constraint. Renumber operands.
4006 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
4008 * config/rs6000/altivec.md (*save_world, *save_vregs_<mode>_r11,
4009 save_vregs_<mode>_r12, *restore_vregs_<mode>_r11,
4010 *restore_vregs_<mode>_r12): Use LR_REGNO instead of 65.
4011 * config/rs6000/darwin.md (load_macho_picbase, load_macho_picbase_si,
4012 load_macho_picbase_di, *call_indirect_nonlocal_darwin64,
4013 *call_nonlocal_darwin64, *call_value_indirect_nonlocal_darwin64,
4014 *call_value_nonlocal_darwin64, reload_macho_picbase,
4015 reload_macho_picbase_si, reload_macho_picbase_di): Ditto.
4016 * config/rs6000/rs6000.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Ditto.
4017 * config/rs6000/rs6000.md (*save_gpregs_<mode>_r11,
4018 *save_gpregs_<mode>_r12, *save_gpregs_<mode>_r1,
4019 *save_fpregs_<mode>_r11, *save_fpregs_<mode>_r12,
4020 *save_fpregs_<mode>_r1): Ditto.
4021 * config/rs6000/spe.md (*save_gpregs_spe, *restore_gpregs_spe,
4022 *return_and_restore_gpregs_spe): Ditto.
4024 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
4026 * config/rs6000/rs6000.md
4027 (define_insn "*return_and_restore_fpregs_aix_<mode>_r11"): Delete
4028 the use of the link register.
4029 (define_insn "*return_and_restore_fpregs_aix_<mode>_r1"): Ditto.
4031 2016-09-01 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4032 Michael Meissner <meissner@linux.vnet.ibm.com>
4035 * config/rs6000/rs6000.c (rs6000_legitimize_address): Avoid
4036 reg+reg addressing for TImode.
4037 (rs6000_legitimate_address_p): Only allow register indirect
4038 addressing for TImode, even without TARGET_QUAD_MEMORY.
4040 2016-09-01 Richard Biener <rguenther@suse.de>
4043 * tree-chrec.c (tree_fold_binomial): Use widest_int, properly
4044 check whether the result fits the desired result type.
4046 2016-09-01 Nathan Sidwell <nathan@acm.org>
4048 * config/nvptx/nvptx.md (cbranch<mode>4): Op 2 can be const.
4050 2016-09-01 Wilco Dijkstra <wdijkstr@arm.com>
4052 * config/aarch64/aarch64.c (aarch64_legitimize_address_displacement):
4054 (TARGET_LEGITIMIZE_ADDRESS_DISPLACEMENT): Define.
4056 2016-09-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4058 * config/aarch64/aarch64.md (*ands<mode>_compare0): New pattern.
4059 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_NZmode
4060 for comparisons of integer ZERO_EXTEND against zero.
4062 2016-09-01 Eric Botcazou <ebotcazou@adacore.com>
4064 * config/i386/i386.c (ix86_option_override_internal): Also disable the
4065 STV pass if -mstackrealign is enabled.
4067 2016-08-31 Ilya Verbin <iverbin@gmail.com>
4069 * config/i386/driver-i386.c (host_detect_local_cpu): Fix detection of
4072 2016-08-31 David Malcolm <dmalcolm@redhat.com>
4074 * diagnostic-show-locus.c (class layout): Add field m_fixit_hints.
4075 (layout_range::intersects_line_p): New method.
4076 (test_range_contains_point_for_single_point): Rename to...
4077 (test_layout_range_for_single_point): ...this, and add testing
4078 for layout_range::intersects_line_p.
4079 (test_range_contains_point_for_single_line): Rename to...
4080 (test_layout_range_for_single_line): ...this, and add testing
4081 for layout_range::intersects_line_p.
4082 (test_range_contains_point_for_multiple_lines): Rename to...
4083 (test_layout_range_for_multiple_lines): ...this, and add testing
4084 for layout_range::intersects_line_p.
4085 (layout::layout): Populate m_fixit_hints.
4086 (layout::get_expanded_location): Handle the case of a line-span
4088 (layout::validate_fixit_hint_p): New method.
4089 (get_line_span_for_fixit_hint): New function.
4090 (layout::calculate_line_spans): Add spans for fixit-hints.
4091 (layout::should_print_annotation_line_p): New method.
4092 (layout::print_any_fixits): Drop param "richloc", instead using
4093 validated fixits in m_fixit_hints. Add "const" to hint pointers.
4094 (diagnostic_show_locus): Avoid printing blank annotation lines.
4095 (selftest::test_diagnostic_context::test_diagnostic_context):
4096 Initialize show_column and start_span.
4097 (selftest::test_diagnostic_context::start_span_cb): New static
4099 (selftest::test_diagnostic_show_locus_fixit_lines): New function.
4100 (selftest::diagnostic_show_locus_c_tests): Update for function
4101 renamings. Call test_diagnostic_show_locus_fixit_lines.
4103 2016-08-31 Marc Glisse <marc.glisse@inria.fr>
4105 PR tree-optimization/73714
4106 * match.pd (a * (1 << b)): Revert change from 2016-05-23.
4108 2016-08-31 David Malcolm <dmalcolm@redhat.com>
4110 * selftest.c: Move "namespace selftest {" to top of file,
4111 removing explicit "selftest::" qualifiers throughout.
4113 2016-08-31 Marc Glisse <marc.glisse@inria.fr>
4115 * config/i386/avx512fintrin.h (__m512_u, __m512i_u, __m512d_u):
4117 (_mm512_loadu_pd, _mm512_storeu_pd, _mm512_loadu_ps,
4118 _mm512_storeu_ps, _mm512_loadu_si512, _mm512_storeu_si512):
4119 Replace builtin with vector extension.
4120 * config/i386/avxintrin.h (__m256_u, __m256i_u, __m256d_u):
4122 (_mm256_loadu_pd, _mm256_storeu_pd, _mm256_loadu_ps,
4123 _mm256_storeu_ps, _mm256_loadu_si256, _mm256_storeu_si256):
4124 Replace builtin with vector extension.
4125 * config/i386/emmintrin.h (__m128i_u, __m128d_u): New types.
4126 (_mm_loadu_pd, _mm_storeu_pd, _mm_loadu_si128, _mm_storeu_si128):
4127 Replace builtin with vector extension.
4128 * config/i386/xmmintrin.h (__m128_u): New type.
4129 (_mm_loadu_ps, _mm_storeu_ps): Replace builtin with vector extension.
4130 (_mm_load_ps, _mm_store_ps): Simplify.
4132 2016-08-31 Eric Botcazou <ebotcazou@adacore.com>
4134 * config/arm/arm.c (thumb1_size_rtx_costs) <SET>: Add missing guard.
4136 2016-08-30 David Malcolm <dmalcolm@redhat.com>
4138 * diagnostic-show-locus.c (colorizer::begin_state): Support more
4139 than 3 ranges per diagnostic by alternating between color 1 and
4141 (layout::layout): Replace use of rich_location::MAX_RANGES
4142 with richloc->get_num_locations ().
4143 (layout::calculate_line_spans): Replace use of
4144 rich_location::MAX_RANGES with m_layout_ranges.length ().
4145 (layout::print_annotation_line): Handle arbitrary numbers of
4146 ranges in caret-printing by defaulting to '^'.
4147 (selftest::test_one_liner_many_fixits): New function.
4148 (test_diagnostic_show_locus_one_liner): Call it.
4149 * diagnostic.c (diagnostic_initialize): Update for renaming
4150 of rich_location::MAX_RANGES to
4151 rich_location::STATICALLY_ALLOCATED_RANGES.
4152 * diagnostic.h (struct diagnostic_context): Likewise.
4154 2016-08-30 David Malcolm <dmalcolm@redhat.com>
4156 * selftest.c (selftest::named_temp_file::named_temp_file): New
4158 (selftest::temp_source_file::~temp_source_file): Move to...
4159 (selftest::named_temp_file::~named_temp_file): ...here.
4160 (selftest::test_named_temp_file): New function.
4161 (selftest::selftest_c_tests): Call test_named_temp_file.
4162 * selftest.h (class named_temp_file): New class.
4163 (class temp_source_file): Convert to a subclass of named_temp_file.
4165 2016-08-30 Segher Boessenkool <segher@kernel.crashing.org>
4167 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Do not emit
4168 USEs of LR_REGNO in returns and sibcalls.
4169 (rs6000_output_mi_thunk): Similar.
4170 (rs6000_sibcall_aix): Similar.
4171 * config/rs6000/rs6000.md (sibcall, sibcall_value, sibcall_local32,
4172 sibcall_local64, sibcall_value_local32, sibcall_value_local64,
4173 sibcall_nonlocal_sysv<mode>, sibcall_value_nonlocal_sysv<mode>):
4174 Remove the USE of LR_REGNO from the patterns as well. Delete an
4176 (return_internal_<mode>): Delete.
4178 2016-08-30 Tamar Christina <tamar.christina@arm.com>
4180 * gcc/config/aarch64/aarch64-simd.md
4181 (aarch64_ld2<mode>_dreg_le): New.
4182 (aarch64_ld2<mode>_dreg_be): New.
4183 (aarch64_ld2<mode>_dreg): Removed.
4184 (aarch64_ld3<mode>_dreg_le): New.
4185 (aarch64_ld3<mode>_dreg_be): New.
4186 (aarch64_ld3<mode>_dreg): Removed.
4187 (aarch64_ld4<mode>_dreg_le): New.
4188 (aarch64_ld4<mode>_dreg_be): New.
4189 (aarch64_ld4<mode>_dreg): Removed.
4190 (aarch64_ld<VSTRUCT:nregs><VDC:mode>): Wrapper around _le, _be.
4192 2016-08-30 David Malcolm <dmalcolm@redhat.com>
4194 * diagnostic-show-locus.c (test_one_liner_fixit_insert): Remove
4195 redundant location param.
4196 (test_one_liner_fixit_remove): Likewise.
4197 (test_one_liner_fixit_replace): Likewise.
4198 (test_one_liner_fixit_replace_equal_secondary_range): Likewise.
4199 * gcc-rich-location.c
4200 (gcc_rich_location::add_fixit_misspelled_id): Eliminate call to
4201 get_range_from_loc. Drop overload taking a const char *.
4202 * gcc-rich-location.h
4203 (gcc_rich_location::add_fixit_misspelled_id): Drop overload taking
4206 2016-08-30 Szabolcs Nagy <szabolcs.nagy@arm.com>
4208 * config/linux.c (linux_libc_has_function): Return true on musl.
4210 2016-08-30 Szabolcs Nagy <szabolcs.nagy@arm.com>
4212 * config.gcc (*-*-*musl*): Disable gnu-indirect-function.
4214 2016-08-30 Eric Botcazou <ebotcazou@adacore.com>
4216 * postreload-gcse.c (bb_has_well_behaved_predecessors): Tweak criterion
4217 used for abnormal egdes.
4219 2016-08-30 Jakub Jelinek <jakub@redhat.com>
4221 PR tree-optimization/72866
4222 * tree-vect-patterns.c (search_type_for_mask): Turn into
4223 a small wrapper, move all code to ...
4224 (search_type_for_mask_1): ... this new function. Add caching
4225 and adjust recursive calls.
4228 * dwarf2out.c (modified_type_die): Use lookup_type_die (type)
4229 instead of lookup_type_die (type_main_variant (type)) even for array
4233 * simplify-rtx.c (avoid_constant_pool_reference): For out of bounds
4234 constant pool reference return x instead of c.
4236 2016-08-29 Segher Boessenkool <segher@kernel.crashing.org>
4238 * config/rs6000/rs6000.h (CALL_REALLY_USED_REGISTERS): Do not
4241 2016-08-29 David Malcolm <dmalcolm@redhat.com>
4244 (selftest::test_make_location_nonpure_range_endpoints): Fix
4247 2016-08-29 David Malcolm <dmalcolm@redhat.com>
4249 * diagnostic-show-locus.c
4250 (selftest::test_one_liner_fixit_validation_adhoc_locations): New
4252 (selftest::test_diagnostic_show_locus_one_liner): Call it.
4253 * input.c (get_pure_location): Move to libcpp/line-map.c.
4254 * input.h (get_pure_location): Convert decl to an inline function
4255 calling implementation in libcpp.
4257 2016-08-29 Uros Bizjak <ubizjak@gmail.com>
4260 * config/i386/sse.md (vec_set_lo_<mode><mask_name>): Fix assembler
4261 template for intel asm dialect.
4262 (vec_set_hi_<mode><mask_name>): Ditto.
4264 2016-08-29 David Malcolm <dmalcolm@redhat.com>
4266 * selftest.h (selftest::fail): Add ATTRIBUTE_NORETURN.
4267 (selftest::fail_formatted): Likewise.
4269 2016-08-29 David Malcolm <dmalcolm@redhat.com>
4271 * input.c (make_location): Call get_start and get_finish
4272 on the endpoints to avoid storing packed ranges or ad-hoc
4274 (selftest::test_make_location_nonpure_range_endpoints): New function.
4275 (selftest::input_c_tests): Call it.
4276 * input.h (get_start): New inline function.
4278 2016-08-29 Tom de Vries <tom@codesourcery.com>
4281 * gimplify.c (gimplify_va_arg_expr): Replace first argument type error
4284 2016-08-29 Eric Botcazou <ebotcazou@adacore.com>
4286 * Makefile.in (gcov-iov.h): Add dummy recipe.
4288 2016-08-29 Nathan Sidwell <nathan@acm.org>
4290 * config/nvptx/nvptx.c: #include tree-vrp.h.
4292 2016-08-28 Eric Botcazou <ebotcazou@adacore.com>
4295 * config/sparc/sparc.c (sparc_legitimate_address_p): Accept special
4296 HIGH+LO construct during reload.
4298 2016-08-28 Tom de Vries <tom@codesourcery.com>
4301 * config/i386/i386.c (ix86_build_builtin_va_list_64): Tag type with
4302 'sysv_abi va_list' attribute.
4303 (ix86_build_builtin_va_list): Tag type with 'ms_abi va_list' attribute.
4304 (ix86_canonical_va_list_type): Handle 'sysv_abi/ms_abi va_list'
4307 2016-08-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4309 * emit-rtl.h (struct rtl_data): Make stack_slot_list a vector.
4310 * emit-rtl.c (unshare_all_rtl_1): Adjust.
4311 (unshare_all_rtl_again): Likewise.
4312 * function.c (assign_stack_local_1): Likewise.
4313 (assign_stack_temp_for_type): Likewise.
4315 2016-08-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4317 * cfgbuild.c (make_edges): Adjust.
4318 * cfgrtl.c (can_delete_label_p): Likewise.
4319 * dwarf2cfi.c (create_trace_edges): Likewise.
4320 * except.c (sjlj_emit_dispatch_table): Likewise.
4321 * function.h (struct expr_status): make x_forced_labels a vector.
4322 * jump.c (rebuild_jump_labels_1): Adjust.
4323 * reload1.c (set_initial_label_offsets): Likewise.
4324 * stmt.c (force_label_rtx): Likewise.
4325 (expand_label): Likewise.
4327 2016-08-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4329 * haifa-sched.c (fix_recovery_deps): Make ready_list a vector.
4331 2016-08-27 Patrick Palka <ppalka@gcc.gnu.org>
4333 PR tree-optimization/71077
4334 PR tree-optimization/68542
4335 * fold-const.c (fold_relational_const): Fix folding of
4336 VECTOR_CST comparisons that have a scalar boolean result type.
4337 (selftest::test_vector_folding): New static function.
4338 (selftest::fold_const_c_tests): Call it.
4340 2016-08-27 Gerald Pfeifer <gerald@pfeifer.com>
4342 * doc/extend.texi (SPU Built-in Functions): Remove stale
4343 references to material formerly at IBM and Sony.
4345 2016-08-26 David Edelsohn <dje.gcc@gmail.com>
4348 * config/rs6000/xcoff.h (DWARF_OFFSET_SIZE): Define as PTR_SIZE.
4350 2016-08-26 David Malcolm <dmalcolm@redhat.com>
4352 * diagnostic-show-locus.c
4353 (selftest::test_fixit_consolidation): New function.
4354 (selftest::diagnostic_show_locus_c_tests): Call it.
4355 * gcc-rich-location.h (gcc_rich_location): Eliminate unused
4356 constructor based on source_range.
4358 2016-08-26 David Malcolm <dmalcolm@redhat.com>
4360 * diagnostic-color.c (color_dict): Add "fixit-insert" and
4362 (parse_gcc_colors): Update description of default GCC_COLORS.
4363 * diagnostic-show-locus.c (colorizer::set_fixit_hint): Delete.
4364 (colorizer::set_fixit_insert): New method.
4365 (colorizer::set_fixit_delete): New method.
4366 (colorizer::get_color_by_name): New method.
4367 (colorizer::STATE_FIXIT_INSERT): New constant.
4368 (colorizer::STATE_FIXIT_DELETE): New constant.
4369 (class colorizer): Drop "_cs" suffix from fields. Delete "_ce"
4370 fields in favor of new field "m_stop_color". Add fields
4371 "m_fixit_insert" and "m_fixit_delete".
4372 (colorizer::colorizer): Update for above changes. Replace
4373 colorize_start calls with calls to get_color_by_name.
4374 (colorizer::begin_state): Handle STATE_FIXIT_INSERT and
4375 STATE_FIXIT_DELETE. Update for field renamings.
4376 (colorizer::finish_state): Simplify by using m_stop_color,
4377 rather than multiple identical "*_ce" fields.
4378 (colorizer::get_color_by_name): New method.
4379 (layout::print_any_fixits): Print insertions and replacements
4380 using the "fixit-insert" color, and deletions using the
4381 "fixit-delete" color.
4382 * doc/invoke.texi (-fdiagnostics-color): Update description of
4383 default GCC_COLORS, and of the supported capabilities.
4385 2016-08-26 Max Filippov <jcmvbkbc@gmail.com>
4387 * config/xtensa/xtensa.c (xtensa_expand_prologue): Update
4388 current_function_static_stack_size variable with the static
4389 stack frame size of the current function when
4390 flag_stack_usage_info is enabled.
4392 2016-08-26 Nathan Sidwell <nathan@acm.org>
4394 * ipa-inline-analysis.c (inline_write_summary): Remove unnecessary
4395 assignment inside if condition.
4397 2016-08-26 Richard Biener <rguenther@suse.de>
4399 PR tree-optimization/69047
4400 * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle general bitfield
4401 extracts similar to what FRE does.
4402 (non_rewritable_mem_ref_base): Likewise.
4404 2016-08-26 Joseph Myers <joseph@codesourcery.com>
4406 * config/i386/i386.c (ix86_libgcc_floating_mode_supported_p)
4407 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Remove.
4408 * config/i386/i386elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
4409 * config/i386/lynx.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
4410 * config/i386/netbsd-elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE):
4412 * config/i386/netbsd64.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
4413 * config/i386/nto.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
4414 * config/i386/openbsd.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
4415 * config/i386/rtemself.h (IX86_NO_LIBGCC_TFMODE): Likewise.
4416 * config/i386/vxworks.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
4418 2016-08-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4421 * config/arm/cortex-a8-neon.md (cortex_a8_vfp_muld): Reduce
4422 reservation duration to 15 cycles.
4423 (cortex_a8_vfp_macs): Likewise.
4424 (cortex_a8_vfp_macd): Likewise.
4425 (cortex_a8_vfp_divs): Likewise.
4426 (cortex_a8_vfp_divd): Likewise.
4428 2016-08-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4430 * config/arm/arm.c (arm_sets_movw_movt_fusible_p): New function.
4431 (aarch_macro_fusion_pair_p): Use above to avoid early return.
4433 2016-08-26 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
4434 Martin Jambhor <mjambor@suse.cz>
4436 * common.opt: New option -fipa-bit-cp.
4437 * doc/invoke.texi: Document -fipa-bit-cp.
4438 * opts.c (default_options_table): Add entry for -fipa-bit-cp.
4439 (enable_fdo_optimizations): Check for flag_ipa_bit_cp.
4440 * tree-ssa-ccp.h: New header file.
4441 * tree-ssa-ccp.c: Include tree-ssa-ccp.h
4442 (bit_value_binop_1): Change to bit_value_binop_1 and export it.
4443 Replace all occurences of tree parameter by two new params: signop, int.
4444 (bit_value_unop_1): Change to bit_value_unop and export it.
4445 Replace all occurences of tree parameter by two new params: signop,
4447 (bit_value_binop): Change call from bit_value_binop_1 to
4449 (bit_value_assume_aligned): Likewise.
4450 (bit_value_unop): Change call from bit_value_unop_1 to bit_value_unop.
4451 (do_ssa_ccp): Pass nonzero_p || flag_ipa_cp_bit instead of nonzero_p
4453 (ccp_finalize): Skip processing if val->mask == 0.
4454 * ipa-cp.c: Include tree-ssa-ccp.h
4455 (ipcp_bits_lattice): New class.
4456 (ipcp_param_lattice (bits_lattice): New member.
4457 (print_all_lattices): Call ipcp_bits_lattice::print.
4458 (set_all_contains_variable): Call ipcp_bits_lattice::set_to_bottom.
4459 (initialize_node_lattices): Likewise.
4460 (propagate_bits_accross_jump_function): New function.
4461 (propagate_constants_accross_call): Call
4462 propagate_bits_accross_jump_function.
4463 (ipcp_propagate_stage): Store parameter types when in_lto_p is true.
4464 (ipcp_store_bits_results): New function.
4465 (ipcp_driver): Call ipcp_store_bits_results.
4466 * ipa-prop.h (ipa_bits): New struct.
4467 (ipa_jump_func): Add new member bits of type ipa_bits.
4468 (ipa_param_descriptor): Change decl to decl_or_type.
4469 (ipa_get_param): Change decl to decl_or_type and assert on
4471 (ipa_get_type): New function.
4472 (ipcp_transformation_summary): New member bits.
4473 * ipa-prop.c (ipa_get_param_decl_index_1): s/decl/decl_or_type.
4474 (ipa_populate_param_decls): Likewise.
4475 (ipa_dump_param): Likewise.
4476 (ipa_print_node_jump_functions_for_edge): Pretty-print ipa_bits jump
4478 (ipa_set_jf_unknown): Set ipa_bits::known to false.
4479 (ipa_compute_jump_functions_for_edge): Compute jump function for bits
4481 (ipa_node_params_t::duplicate): Copy src->bits into dst->bits.
4482 (ipa_write_jump_function): Add streaming for ipa_bits.
4483 (ipa_read_jump_function): Add support for reading streamed ipa_bits.
4484 (write_ipcp_transformation_info): Add streaming for ipa_bits
4486 (read_ipcp_transfomration_info): Add support for reading streamed
4488 (ipcp_update_bits): New function.
4489 (ipcp_transform_function): Call ipcp_update_bits.
4491 2016-08-25 Szabolcs Nagy <szabolcs.nagy@arm.com>
4493 * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Update.
4494 (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Update.
4496 2016-08-25 David Edelsohn <dje.gcc@gmail.com>
4498 * multiple_target.c (pass_data_dispatcher_calls): Fix typo.
4500 2016-08-25 Richard Biener <rguenther@suse.de>
4502 * dwarf2out.c (gen_remaining_tmpl_value_param_die_attributes):
4503 Only add locations in late dwarf.
4504 (gen_scheduled_generic_parms_dies): Do not set early dwarf here.
4505 (dwarf2out_early_finish): But do it here.
4507 2016-08-24 Michael Collison <michael.collison@linaro.org>
4508 Michael Collison <michael.collison@arm.com>
4510 * config/arm/arm-modes.def: Add new condition code mode CC_V
4511 to represent the overflow bit.
4512 * config/arm/arm.c (maybe_get_arm_condition_code):
4513 Add support for CC_Vmode.
4514 (arm_gen_unlikely_cbranch): New function to generate common
4515 rtl conditional branches for overflow patterns.
4516 * config/arm/arm-protos.h: Add prototype for
4517 arm_gen_unlikely_cbranch.
4518 * config/arm/arm.md (addv<mode>4, add<mode>3_compareV,
4519 addsi3_compareV_upper): New patterns to support signed
4520 builtin overflow add operations.
4521 (uaddv<mode>4, add<mode>3_compareC, addsi3_compareV_upper):
4522 New patterns to support unsigned builtin add overflow operations.
4523 (subv<mode>4, sub<mode>3_compare1): New patterns to support signed
4524 builtin overflow subtract operations,
4525 (usubv<mode>4): New patterns to support unsigned builtin subtract
4526 overflow operations.
4527 (negvsi3, negvdi3, negdi2_compare, negsi2_carryin_compare): New patterns
4528 to support builtin overflow negate operations.
4530 2016-08-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
4533 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
4535 * explow.c (get_dynamic_stack_size): Take known alignment of stack
4536 pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
4539 2016-08-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
4541 * doc/fragments.texi (MULTILIB_REUSE): Mention that only options in
4542 MULTILIB_OPTIONS should be used. Small wording fixes.
4543 * genmultilib: Memorize set of all option combinations in
4544 combination_space. Detect if RHS of MULTILIB_REUSE uses an option not
4545 found in MULTILIB_OPTIONS by checking if option set is listed in
4546 combination_space. Output new and existing error message to stderr.
4548 2016-08-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
4550 * config/arm/t-aprofile (MULTILIB_MATCHES): Add mapping for
4551 -mcpu=cortex-a7, -mfpu=neon-fp16, -mfpu=fpv5-d16 and -mfpu=fp-armv8.
4552 Fix typo in -mfpu=vfpv3-d16-fp16 mapping.
4553 (MULTILIB_REUSE): Remove reuse rules for option set including
4554 -mfpu=fp-armv8 and -mfpu=vfpv4
4556 2016-08-24 Sebastian Huber <sebastian.huber@embedded-brains.de>
4558 * config/arm/t-rtems: Add vfp multilib.
4560 2016-08-23 Ian Lance Taylor <iant@golang.org>
4562 * config/s390/s390.c (s390_asm_file_start): Call
4565 2016-08-23 Michael Meissner <meissner@linux.vnet.ibm.com>
4567 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Set
4568 initialization of all 0's to the 0 constant, instead of directly
4569 generating XOR. Add support for V4SImode vector initialization on
4570 64-bit systems with direct move, and rework the ISA 3.0 V4SImode
4571 initialization. Change variables used in V4SFmode vector
4572 intialization. For V4SFmode vector splat on ISA 3.0, make sure
4573 any memory addresses are in index form. Add support for using
4574 VSPLTH/VSPLTB to initialize vector short and vector char vectors
4575 with all of the same element.
4576 (regno_or_subregno): New helper function to return a register
4577 number for either REG or SUBREG.
4578 (rs6000_adjust_vec_address): Do not generate ADDI <reg>,R0,<num>.
4579 Use regno_or_subregno where possible.
4580 (rs6000_split_v4si_init_di_reg): New helper function to build up a
4581 DImode value from two SImode values in order to generate V4SImode
4582 vector initialization on 64-bit systems with direct move.
4583 (rs6000_split_v4si_init): Split up the insns for a V4SImode vector
4585 (rtx_is_swappable_p): V4SImode vector initialization insn is not
4587 * config/rs6000/rs6000-protos.h (rs6000_split_v4si_init): Add
4589 * config/rs6000/vsx.md (VSX_SPLAT_I): New mode iterators and
4590 attributes to initialize V8HImode and V16QImode vectors with the
4592 (VSX_SPLAT_COUNT): Likewise.
4593 (VSX_SPLAT_SUFFIX): Likewise.
4594 (UNSPEC_VSX_VEC_INIT): New unspec.
4595 (vsx_concat_v2sf): Eliminate using 'preferred' register classes.
4596 Allow SFmode values to come from Altivec registers.
4597 (vsx_init_v4si): New insn/split for V4SImode vector initialization
4598 on 64-bit systems with direct move.
4599 (vsx_splat_<mode>, VSX_W iterator): Rework V4SImode and V4SFmode
4600 vector initializations, to allow V4SImode vector initializations
4601 on 64-bit systems with direct move.
4602 (vsx_splat_v4si): Likewise.
4603 (vsx_splat_v4si_di): Likewise.
4604 (vsx_splat_v4sf): Likewise.
4605 (vsx_splat_v4sf_internal): Likewise.
4606 (vsx_xxspltw_<mode>, VSX_W iterator): Eliminate using 'preferred'
4608 (vsx_xxspltw_<mode>_direct, VSX_W iterator): Likewise.
4609 (vsx_vsplt<VSX_SPLAT_SUFFIX>_di): New insns to support
4610 initializing V8HImode and V16QImode vectors with the same
4612 * config/rs6000/rs6000.h (TARGET_DIRECT_MOVE_64BIT): Disallow
4613 optimization if -maltivec=be.
4615 2016-08-23 Christophe Lyon <christophe.lyon@linaro.org>
4617 * config/arm/arm.md (arm_movqi_insn): Swap predicable_short_it
4618 attribute for alternatives 3 and 4.
4620 2016-08-23 David Malcolm <dmalcolm@redhat.com>
4622 * selftest.c (selftest::assert_str_contains): New function.
4623 (selftest::test_assertions): Verify ASSERT_STR_CONTAINS.
4624 * selftest.h (selftest::assert_str_contains): New decl.
4625 (ASSERT_STR_CONTAINS): New macro.
4627 2016-08-23 Richard Biener <rguenther@suse.de>
4629 PR tree-optimization/77286
4630 * tree-vect-loop.c (vect_analyze_loop_form_1): Do not modify
4632 (vect_transform_loop): Split exit edges of loop and scalar
4633 loop if required and at the appropriate time.
4635 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
4637 * explow.c (get_dynamic_stack_size): Take known alignment of stack
4638 pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
4640 Correct a typo in a comment.
4642 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
4644 * config/s390/s390.md ("*andc_split"): New splitter for and with
4647 2016-08-23 Richard Biener <rguenther@suse.de>
4649 PR tree-optimization/27336
4650 * tree-vrp.c (infer_value_range): Handle stmts that can throw
4651 by looking for a non-EH edge.
4652 (process_assert_insertions_for): Likewise.
4654 2016-08-23 Richard Biener <rguenther@suse.de>
4657 * statistics.c (statistics_counter_event): Robustify against
4660 2016-08-23 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
4662 * config/i386/i386.c (processor_alias_table): Enable PTA_PRFCHW
4663 for targets amdfam10 and barcelona.
4665 2016-08-22 Uros Bizjak <ubizjak@gmail.com>
4667 * config/i386/i386.md (*zero_extendsidi2): Add (*r,*k) alternative.
4668 (zero_extend<mode>di2): Ditto.
4669 (*zero_extend<mode>si2): Ditto.
4670 (*zero_extendqihi2): Ditto.
4672 2016-08-22 Joseph Myers <joseph@codesourcery.com>
4675 * builtins.c (fold_builtin_classify): Use builtin_decl_explicit
4676 (BUILT_IN_SIGNBIT) to expand __builtin_isinf_sign.
4678 2016-08-22 Patrick Palka <ppalka@gcc.gnu.org>
4680 * print-tree.c (print_node) [VECTOR_CST]: Coalesce the output of
4681 identical consecutive elements.
4682 [SSA_NAME]: Print the name's def stmt on its own line. When printing
4683 the node's def stmt, avoid printing an unwanted trailing newline by
4684 replacing the call to print_gimple_stmt() with its inlined body and
4685 adjusting it to not set pp_needs_newline and to call pp_flush()
4686 instead of pp_newline_and_flush().
4688 2016-08-22 Joseph Myers <joseph@codesourcery.com>
4690 * tree.h (CASE_FLT_FN_FLOATN_NX, float16_type_node)
4691 (float32_type_node, float64_type_node, float32x_type_node)
4692 (float128x_type_node): New macros.
4693 * builtin-types.def (BT_FLOAT16, BT_FLOAT32, BT_FLOAT64)
4694 (BT_FLOAT128, BT_FLOAT32X, BT_FLOAT64X, BT_FLOAT128X)
4695 (BT_FN_FLOAT16, BT_FN_FLOAT32, BT_FN_FLOAT64, BT_FN_FLOAT128)
4696 (BT_FN_FLOAT32X, BT_FN_FLOAT64X, BT_FN_FLOAT128X)
4697 (BT_FN_FLOAT16_FLOAT16, BT_FN_FLOAT32_FLOAT32)
4698 (BT_FN_FLOAT64_FLOAT64, BT_FN_FLOAT128_FLOAT128)
4699 (BT_FN_FLOAT32X_FLOAT32X, BT_FN_FLOAT64X_FLOAT64X)
4700 (BT_FN_FLOAT128X_FLOAT128X, BT_FN_FLOAT16_CONST_STRING)
4701 (BT_FN_FLOAT32_CONST_STRING, BT_FN_FLOAT64_CONST_STRING)
4702 (BT_FN_FLOAT128_CONST_STRING, BT_FN_FLOAT32X_CONST_STRING)
4703 (BT_FN_FLOAT64X_CONST_STRING, BT_FN_FLOAT128X_CONST_STRING)
4704 (BT_FN_FLOAT16_FLOAT16_FLOAT16, BT_FN_FLOAT32_FLOAT32_FLOAT32)
4705 (BT_FN_FLOAT64_FLOAT64_FLOAT64, BT_FN_FLOAT128_FLOAT128_FLOAT128)
4706 (BT_FN_FLOAT32X_FLOAT32X_FLOAT32X)
4707 (BT_FN_FLOAT64X_FLOAT64X_FLOAT64X)
4708 (BT_FN_FLOAT128X_FLOAT128X_FLOAT128X): New type definitions.
4709 * builtins.def (DEF_GCC_FLOATN_NX_BUILTINS): New macro.
4710 (copysign, fabs, huge_val, inf, nan, nans): Use it.
4711 * builtins.c (expand_builtin): Use CASE_FLT_FN_FLOATN_NX for fabs
4713 (fold_builtin_0): Use CASE_FLT_FN_FLOATN_NX for inf and huge_val.
4714 (fold_builtin_1): Use CASE_FLT_FN_FLOATN_NX for fabs.
4715 * doc/extend.texi (Other Builtins): Document these built-in
4717 * fold-const-call.c (fold_const_call): Use CASE_FLT_FN_FLOATN_NX
4720 2016-08-22 Gerald Pfeifer <gerald@pfeifer.com>
4722 * doc/install.texi (Binaries): www.opencsw.org now uses https.
4724 2016-08-22 Richard Biener <rguenther@suse.de>
4726 * tree-ssa-forwprop.c (pass_forwprop::execute): Use RPO order.
4728 2016-08-21 Uros Bizjak <ubizjak@gmail.com>
4731 * config/i386/i386.md (prefetch): When TARGET_PRFCHW or
4732 TARGET_PREFETCHWT1 are disabled, emit 3dNOW! write prefetches for
4733 non-SSE2 athlons only, otherwise prefer SSE prefetches.
4735 2016-08-20 Kugan Vivekanandarajah <kuganv@linaro.org>
4737 * tree-vrp.c (vrp_visit_assignment_or_call): Changed to Return VR.
4738 (vrp_visit_cond_stmt): Just sets TAKEN_EDGE_P.
4739 (vrp_visit_switch_stmt): Likewise.
4740 (extract_range_from_stmt): Factored out from vrp_visit_stmt.
4741 (extract_range_from_phi_node): Factored out from vrp_visit_phi_stmt.
4742 (vrp_visit_stmt): Use extract_range_from_stmt.
4743 (vrp_visit_phi_node): Use extract_range_from_phi_node.
4745 2016-08-20 Kugan Vivekanandarajah <kuganv@linaro.org>
4747 * Makefile.in: Add tree-vrp.h to GTFILES.
4748 * gengtype.c (open_base_files): Add tree-vrp.h.
4749 * asan.c: Add tree-vrp.h which now has the definition value_range_type.
4750 * builtins.c: Likewise.
4751 * fold-const.c: Likewise.
4752 * gimple-builder.c: Likewise.
4753 * gimple-laddress.c: Likewise.
4754 * hsa-gen.c: Likewise.
4755 * internal-fn.c: Likewise.
4757 * targhooks.c: Liewise,
4758 * tree-ssa-address.c: Likewise.
4759 * tree-ssanames.h (value_range_type: Move to tree-vrp.h.
4760 * tree-vrp.c (struct value_range): Move to tree-vrp.h
4761 * tree-vrp.h: New file.
4763 2016-08-20 Kugan Vivekanandarajah <kuganv@linaro.org>
4765 PR tree-optimization/61839
4766 * tree-vrp.c (two_valued_val_range_p): New.
4767 (simplify_stmt_using_ranges): Convert CST BINOP VAR where VAR is
4768 two-valued to VAR == VAL1 ? (CST BINOP VAL1) : (CST BINOP VAL2).
4769 Also Convert VAR BINOP CST where VAR is two-valued to
4770 VAR == VAL1 ? (VAL1 BINOP CST) : (VAL2 BINOP CST).
4772 2016-08-19 David Malcolm <dmalcolm@redhat.com>
4774 * diagnostic-show-locus.c
4775 (layout::annotation_line_showed_range_p): New method.
4776 (layout::print_any_fixits): Remove case fixit_hint::REMOVE.
4777 Reimplement case fixit_hint::REPLACE to cover removals, and
4778 replacements where the range of the replacement isn't one
4779 of the ranges in the rich_location.
4780 (test_one_liner_fixit_replace): Likewise.
4781 (selftest::test_one_liner_fixit_replace_non_equal_range): New
4783 (selftest::test_one_liner_fixit_replace_equal_secondary_range):
4785 (selftest::test_diagnostic_show_locus_one_liner): Call the new
4787 * diagnostic.c (print_parseable_fixits): Remove case
4790 2016-08-19 Uros Bizjak <ubizjak@gmail.com>
4793 * config/i386/i386.c (ix86_option_override_internal): Remove
4794 PTA_PRFCHW from entries that also have PTA_3DNOW flag.
4795 Enable SSE prefetch also for TARGET_PREFETCHWT1.
4796 Do not try to enable TARGET_PRFCHW ISA flag here.
4797 * config/i386/i386.md (prefetch): Enable also for TARGET_3DNOW.
4798 Rewrite expander function body.
4799 (*prefetch_3dnow): Enable for TARGET_3DNOW and TARGET_PREFETCHWT1.
4801 2016-08-19 Joseph Myers <joseph@codesourcery.com>
4804 * tree-core.h (TI_COMPLEX_FLOAT16_TYPE)
4805 (TI_COMPLEX_FLOATN_NX_TYPE_FIRST, TI_COMPLEX_FLOAT32_TYPE)
4806 (TI_COMPLEX_FLOAT64_TYPE, TI_COMPLEX_FLOAT128_TYPE)
4807 (TI_COMPLEX_FLOAT32X_TYPE, TI_COMPLEX_FLOAT64X_TYPE)
4808 (TI_COMPLEX_FLOAT128X_TYPE, TI_FLOAT16_TYPE, TI_FLOATN_TYPE_FIRST)
4809 (TI_FLOATN_NX_TYPE_FIRST, TI_FLOAT32_TYPE, TI_FLOAT64_TYPE)
4810 (TI_FLOAT128_TYPE, TI_FLOATN_TYPE_LAST, TI_FLOAT32X_TYPE)
4811 (TI_FLOATNX_TYPE_FIRST, TI_FLOAT64X_TYPE, TI_FLOAT128X_TYPE)
4812 (TI_FLOATNX_TYPE_LAST, TI_FLOATN_NX_TYPE_LAST): New enum
4814 (NUM_FLOATN_TYPES, NUM_FLOATNX_TYPES, NUM_FLOATN_NX_TYPES): New
4816 (struct floatn_type_info): New structure type.
4817 (floatn_nx_types): New variable declaration.
4818 * tree.h (FLOATN_TYPE_NODE, FLOATN_NX_TYPE_NODE)
4819 (FLOATNX_TYPE_NODE, float128_type_node, float64x_type_node)
4820 (COMPLEX_FLOATN_NX_TYPE_NODE): New macros.
4821 * tree.c (floatn_nx_types): New variable.
4822 (build_common_tree_nodes): Initialize _FloatN, _FloatNx and
4823 corresponding complex types.
4824 * target.def (floatn_mode): New hook.
4825 * targhooks.c: Include "real.h".
4826 (default_floatn_mode): New function.
4827 * targhooks.h (default_floatn_mode): New prototype.
4828 * doc/extend.texi (Floating Types): Document _FloatN and _FloatNx
4830 * doc/sourcebuild.texi (float@var{n}, float@var{n}x): Document new
4831 effective-target and dg-add-options keywords.
4832 (float@var{n}_runtime, float@var{n}x_runtime, floatn_nx_runtime):
4833 Document new effective-target keywords.
4834 * doc/tm.texi.in (TARGET_FLOATN_MODE): New @hook.
4835 * doc/tm.texi: Regenerate.
4836 * ginclude/float.h (LDBL_DECIMAL_DIG): Define to
4837 __LDBL_DECIMAL_DIG__, not __DECIMAL_DIG__.
4838 [__STDC_WANT_IEC_60559_TYPES_EXT__]: Define macros from TS
4840 * real.h (struct real_format): Add field ieee_bits.
4841 * real.c (ieee_single_format, mips_single_format)
4842 (motorola_single_format, spu_single_format, ieee_double_format)
4843 (mips_double_format, motorola_double_format)
4844 (ieee_extended_motorola_format, ieee_extended_intel_96_format)
4845 (ieee_extended_intel_128_format)
4846 (ieee_extended_intel_96_round_53_format, ibm_extended_format)
4847 (mips_extended_format, ieee_quad_format, mips_quad_format)
4848 (vax_f_format, vax_d_format, vax_g_format, decimal_single_format)
4849 (decimal_double_format, decimal_quad_format, ieee_half_format)
4850 (arm_half_format, real_internal_format: Initialize ieee_bits
4852 * config/i386/i386.c (ix86_init_builtin_types): Do not initialize
4853 float128_type_node. Set float80_type_node to float64x_type_node
4854 if appropriate and long_double_type_node not appropriate.
4855 * config/ia64/ia64.c (ia64_init_builtins): Likewise.
4856 * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format):
4857 Initialize ieee_bits field.
4858 * config/rs6000/rs6000.c (TARGET_FLOATN_MODE): New macro.
4859 (rs6000_init_builtins): Set ieee128_float_type_node to
4861 (rs6000_floatn_mode): New function.
4863 2016-08-19 Jakub Jelinek <jakub@redhat.com>
4865 * config/i386/rdseedintrin.h (_rdseed16_step, _rdseed32_step,
4866 _rdseed64_step): Uglify argument names and/or local variable names
4867 in inline functions.
4868 * config/i386/rtmintrin.h (_xabort): Likewise.
4869 * config/i386/avx512vlintrin.h (_mm256_ternarylogic_epi64,
4870 _mm256_mask_ternarylogic_epi64, _mm256_maskz_ternarylogic_epi64,
4871 _mm256_ternarylogic_epi32, _mm256_mask_ternarylogic_epi32,
4872 _mm256_maskz_ternarylogic_epi32, _mm_ternarylogic_epi64,
4873 _mm_mask_ternarylogic_epi64, _mm_maskz_ternarylogic_epi64,
4874 _mm_ternarylogic_epi32, _mm_mask_ternarylogic_epi32,
4875 _mm_maskz_ternarylogic_epi32): Likewise.
4876 * config/i386/lwpintrin.h (__llwpcb, __lwpval32, __lwpval64,
4877 __lwpins32, __lwpins64): Likewise.
4878 * config/i386/avx2intrin.h (_mm_i32gather_pd, _mm_mask_i32gather_pd,
4879 _mm256_i32gather_pd, _mm256_mask_i32gather_pd, _mm_i64gather_pd,
4880 _mm_mask_i64gather_pd, _mm256_i64gather_pd, _mm256_mask_i64gather_pd,
4881 _mm_i32gather_ps, _mm_mask_i32gather_ps, _mm256_i32gather_ps,
4882 _mm256_mask_i32gather_ps, _mm_i64gather_ps, _mm_mask_i64gather_ps,
4883 _mm256_i64gather_ps, _mm256_mask_i64gather_ps, _mm_i32gather_epi64,
4884 _mm_mask_i32gather_epi64, _mm256_i32gather_epi64,
4885 _mm256_mask_i32gather_epi64, _mm_i64gather_epi64,
4886 _mm_mask_i64gather_epi64, _mm256_i64gather_epi64,
4887 _mm256_mask_i64gather_epi64, _mm_i32gather_epi32,
4888 _mm_mask_i32gather_epi32, _mm256_i32gather_epi32,
4889 _mm256_mask_i32gather_epi32, _mm_i64gather_epi32,
4890 _mm_mask_i64gather_epi32, _mm256_i64gather_epi32,
4891 _mm256_mask_i64gather_epi32): Likewise.
4892 * config/i386/pmm_malloc.h (_mm_malloc, _mm_free): Likewise.
4893 * config/i386/ia32intrin.h (__writeeflags): Likewise.
4894 * config/i386/pkuintrin.h (_wrpkru): Likewise.
4895 * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd,
4896 _mm512_mask_prefetch_i32gather_ps, _mm512_mask_prefetch_i64gather_pd,
4897 _mm512_mask_prefetch_i64gather_ps, _mm512_prefetch_i32scatter_pd,
4898 _mm512_prefetch_i32scatter_ps, _mm512_mask_prefetch_i32scatter_pd,
4899 _mm512_mask_prefetch_i32scatter_ps, _mm512_prefetch_i64scatter_pd,
4900 _mm512_prefetch_i64scatter_ps, _mm512_mask_prefetch_i64scatter_pd,
4901 _mm512_mask_prefetch_i64scatter_ps): Likewise.
4902 * config/i386/gmm_malloc.h (_mm_malloc, _mm_free): Likewise.
4903 * config/i386/avx512fintrin.h (_mm512_ternarylogic_epi64,
4904 _mm512_mask_ternarylogic_epi64, _mm512_maskz_ternarylogic_epi64,
4905 _mm512_ternarylogic_epi32, _mm512_mask_ternarylogic_epi32,
4906 _mm512_maskz_ternarylogic_epi32, _mm512_i32gather_ps,
4907 _mm512_mask_i32gather_ps, _mm512_i32gather_pd, _mm512_i64gather_ps,
4908 _mm512_i64gather_pd, _mm512_i32gather_epi32, _mm512_i32gather_epi64,
4909 _mm512_i64gather_epi32, _mm512_i64gather_epi64): Likewise.
4911 * config/i386/fxsrintrin.h (_fxsave): Remove return keyword in inlines
4913 (_fxrstor, _fxsave64, _fxrstor64): Likewise.
4914 * config/i386/xsaveintrin.h (_xsave, _xrstor, _xsave64, _xrstor64):
4916 * config/i386/xsaveoptintrin.h (_xsaveopt, _xsaveopt64): Likewise.
4917 * config/i386/pkuintrin.h (_wrpkru): Likewise. Add space after
4919 (_rdpkru_u32): Add space after function name.
4921 * config/i386/t-i386 (i386-c.o): Don't depend on
4922 i386-builtin-types.inc.
4923 (i386.o): Depend on i386-builtin-types.inc.
4925 2016-08-19 Matthew Wahab <matthew.wahab@arm.com>
4928 * config/arm/arm.c (neon_valid_immediate): Delete declaration.
4929 Use const_vec_duplicate to check for duplicated elements.
4931 2016-08-19 Richard Biener <rguenther@suse.de>
4933 PR tree-optimization/77290
4934 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
4935 Fix flag_tree_parallelize_loops check.
4937 2016-08-19 Richard Biener <rguenther@suse.de>
4939 * match.pd (x | 0 -> x): Add.
4941 2016-08-19 Richard Biener <rguenther@suse.de>
4943 PR tree-optimization/77286
4944 * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
4945 Deal with virtual PHIs being out-of-order.
4947 2016-08-18 David Malcolm <dmalcolm@redhat.com>
4949 * doc/invoke.texi (fverbose-asm): Note that source code lines
4950 are emitted, and provide an example.
4951 * final.c (asm_show_source): New function.
4952 (final_scan_insn): Call asm_show_source.
4954 2016-08-18 David Malcolm <dmalcolm@redhat.com>
4956 * diagnostic-show-locus.c (colorizer::colorizer): Replace diagnostic
4957 param with diagnostic_kind.
4958 (class colorizer): Similarly replace field m_diagnostic with
4960 (colorizer::colorizer): Replace diagnostic
4961 param with diagnostic_kind.
4962 (colorizer::begin_state): Update for above field change.
4963 (layout::layout): Replace diagnostic param with rich_location *
4964 and diagnostic_kind.
4965 (diagnostic_show_locus): Replace diagnostic param with richloc
4966 and diagnostic_kind.
4967 (class selftest::test_diagnostic_context): New class.
4968 (selftest::test_diagnostic_show_locus_unknown_location): New
4970 (selftest::test_one_liner_simple_caret): New function.
4971 (selftest::test_one_liner_caret_and_range): New function.
4972 (selftest::test_one_liner_multiple_carets_and_ranges): New
4974 (selftest::test_one_liner_fixit_remove): New function.
4975 (selftest::test_one_liner_fixit_replace): New function.
4976 (selftest::test_diagnostic_show_locus_one_liner): New function.
4977 (selftest::diagnostic_show_locus_c_tests): Call the new test
4979 * diagnostic.c (diagnostic_initialize): Initialize
4980 colorize_source_p, show_ruler_p and parseable_fixits_p.
4981 (default_diagnostic_finalizer): Update for change to
4982 diagnostic_show_locus.
4983 (diagnostic_append_note): Likewise.
4984 * diagnostic.h (diagnostic_show_locus): Replace
4985 const diagnostic_info * param with location * and diagnostic_t.
4987 2016-08-18 David Malcolm <dmalcolm@redhat.com>
4989 * input.c (saved_line_table): New global.
4990 (class selftest::temp_line_table): Rename to line_table_test and
4991 move declaration to selftest.h, and drop field m_old_line_table.
4992 (selftest::temp_line_table::temp_line_table): Rename ctor to...
4993 (selftest::line_table_test::line_table_test): ...this. Add a
4994 default ctor. Store current value of line_table within
4996 (selftest::temp_line_table::~temp_line_table): Rename dtor to...
4997 (selftest::line_table_test::~line_table_test): ...this, and
4998 restore line_table from the saved_line_table, rather than
5000 (selftest::test_accessing_ordinary_linemaps): Update for above
5002 (selftest::test_lexer): Likewise.
5003 (struct selftest::lexer_test): Likewise.
5004 (selftest::lexer_test::lexer_test): Likewise.
5005 (selftest::input_c_tests): Move the looping over test cases from
5007 (selftest::for_each_line_table_case): New function.
5008 * input.h (saved_line_table): New decl.
5009 * selftest.h (struct selftest::line_table_case): New forward decl.
5010 (class selftest::line_table_test): New class, moved here from
5011 selftest::temp_line_table in input.c, and renamed.
5012 (selftest::for_each_line_table_case): New decl.
5014 2015-08-18 H.J. Lu <hongjiu.lu@intel.com>
5017 * config/i386/i386.c (lakemont_cost): Set MOVE_RATIO to 17.
5019 2016-08-18 Chung-Lin Tang <cltang@codesourcery.com>
5022 * gimplify.c (omp_add_variable): Adjust/add variable mapping on
5023 enclosing parallel construct for reduction variables on OpenACC loop
5026 2016-08-18 Pierre-Marie de Rodat <derodat@adacore.com>
5028 * dwarf2out.c (copy_dwarf_procedure): Remove obsolete comment.
5029 (new_dwarf_proc_die): Emit DW_TAG_dwarf_procedure DIEs even for
5031 (function_to_dwarf_procedure): Update comment.
5033 2016-08-18 David Malcolm <dmalcolm@redhat.com>
5035 * input.c (diagnostics_file_cache_forcibly_evict_file): New
5037 * input.h (diagnostics_file_cache_forcibly_evict_file): New
5039 * selftest.c (selftest::temp_source_file::~temp_source_file):
5040 Evict m_filename from the diagnostic file cache.
5042 2016-08-18 Richard Biener <rguenther@suse.de>
5044 * tree-pass.h (make_pass_materialize_all_clones): Declare.
5045 * ipa.c (pass_data_materialize_all_clones, pass_materialize_all_clones,
5046 make_pass_materialize_all_clones): New simple IPA pass encapsulating
5047 clone materialization.
5048 * passes.def (all_late_ipa_passes): Start with
5049 pass_materialize_all_clones.
5050 * cgraphunit.c (symbol_table::compile): Remove call to
5051 materialize_all_clones.
5052 * tree-into-ssa.c: Include statistics.h.
5053 (update_ssa): Count number of times we do incremental/rewrite
5056 2016-08-18 Richard Biener <rguenther@suse.de>
5058 PR tree-optimization/77282
5059 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
5060 When doing auto-parallelizing also prevent use of PHIs that
5061 carry dependences across loop backedges.
5063 2016-08-18 Tamar Christina <tamar.christina@arm.com>
5064 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5066 * varasm.c (default_use_anchors_for_symbol_p): Reject too large decls.
5068 2016-08-18 Richard Biener <rguenther@suse.de>
5070 * ssa-iterators.h (ssa_vuse_operand): New inline.
5071 * tree-if-conv.c (ifc_temp_var): Update virtual operand.
5072 (predicate_all_scalar_phis): Use remove_phi_node to remove
5073 phi nodes predicated. Delay removing virtual PHIs.
5074 (predicate_mem_writes): Update virtual operands.
5075 (combine_blocks): Likewise. Propagate out remaining virtual PHIs.
5076 (tree_if_conversion): Do not rewrite virtual SSA form.
5077 * tree-phinodes.c (release_phi_node): Make static.
5078 * tree-phinodes.h (release_phi_node): Remove.
5080 2016-08-18 Jakub Jelinek <jakub@redhat.com>
5082 * config/i386/i386.c (enum ix86_builtins): Remove IX86_BUILTIN_*
5083 codes that appear in bdesc_* arrays, instead include i386-builtin.def
5084 twice to define those.
5085 (bdesc_comi, bdesc_pcmpestr, bdesc_pcmpistr, bdesc_special_args,
5086 bdesc_args, bdesc_round_args, bdesc_mpx, bdesc_mpx_const,
5087 bdesc_multi_arg): Define by including i386-builtin.def the third time.
5088 * config/i386/i386-builtin.def: New file.
5090 2016-08-17 David Malcolm <dmalcolm@redhat.com>
5092 * input.c (get_source_range_for_char): Rename to...
5093 (selftest::get_source_range_for_char): ...this, and move within
5094 the #if CHECKING_P guard.
5095 (get_num_source_ranges_for_substring): Rename to...
5096 (selftest::get_num_source_ranges_for_substring): ...this, move
5097 within the #if CHECKING_P guard, and make static.
5098 (selftest::assert_num_substring_ranges): Initialize
5101 2016-08-18 Alan Modra <amodra@gmail.com>
5103 PR rtl-optimization/72771
5104 * reload.c (find_reloads): Don't assume that a subreg mem is OK
5105 when find_reloads_toplev returns address_reloaded==-1.
5106 (alternative_allows_const_pool_ref): Update comment.
5108 2015-08-17 Alan Hayward <alan.hayward@arm.com>
5110 PR tree-optimization/71752
5111 * tree-vect-loop.c (vectorizable_reduction): Keep SLP operand ordering.
5112 * tree-vect-slp.c (vect_get_slp_defs): Handle null operands.
5114 2016-08-17 Jakub Jelinek <jakub@redhat.com>
5116 * gimple-fold.c (gimple_fold_call): Use gimple_call_noreturn_p
5117 instead of testing ECF_NORETURN bit in gimple_call_flags.
5118 * tree-cfg.c (make_edges_bb, execute_fixup_cfg): Likewise.
5119 * predict.c (tree_bb_level_predictions): Likewise.
5120 * gimple-low.c (gimple_stmt_may_fallthru): Likewise.
5123 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): If
5124 turning a call into __builtin_unreachable-like noreturn call, adjust
5125 gimple_call_set_fntype.
5126 * tree-cfgcleanup.c (fixup_noreturn_call): Remove lhs also if
5127 gimple_call_fntype has void return type.
5129 2016-08-17 Chung-Lin Tang <cltang@codesourcery.com>
5131 * omp-low.c (lower_oacc_reductions): Adjust variable lookup to use
5132 maybe_lookup_decl, to handle nested acc loop directives.
5134 2016-08-17 Richard Biener <rguenther@suse.de>
5136 PR tree-optimization/76490
5137 * tree-vrp.c (update_value_range): Preserve overflow infinities
5138 when intersecting with ranges from get_range_info.
5139 (operand_less_p): Handle overflow infinities correctly.
5140 (value_range_constant_singleton): Use vrp_operand_equal_p
5141 to handle overflow max/min correctly.
5142 (vrp_valueize): Likewise.
5143 (union_ranges): Likewise.
5144 (intersect_ranges): Likewise.
5145 (vrp_visit_phi_node): Improve iteration limitation to only
5146 apply when we'll possibly re-visit the PHI via a changed argument
5149 2016-08-17 Thomas Preud'homme <thomas.preudhomme@arm.com>
5151 * config/arm/t-aprofile (MULTILIB_EXCEPTIONS): Rewrite into ...
5152 (MULTILIB_REQUIRED): This by specifying multilib needing to be built
5153 rather than those that should not be built.
5155 2016-08-17 Stanislaw Halik <sthalik@misaki.pl>
5158 * config/i386/xm-mingw32.h (HOST_BITS_PER_PTR): Define if __x86_64__.
5160 2016-08-17 Richard Biener <rguenther@suse.de>
5162 * tree-ssa.c: Include tree-cfg.h and tree-dfa.h.
5163 (verify_vssa): New function verifying virtual SSA form.
5164 (verify_ssa): Call it.
5165 * tree-ssa-loop-manip.c (slpeel_update_phi_nodes_for_guard2):
5166 Do not apply loop-closed SSA handling to virtuals.
5167 * ssa-iterators.h (op_iter_init): Handle GIMPLE_TRANSACTION.
5168 * tree-into-ssa.c (prepare_use_sites_for): Skip virtual SSA names
5169 when rewriting their symbol.
5170 (prepare_def_site_for): Likewise.
5171 * tree-chkp-opt.c (chkp_reduce_bounds_lifetime): Clear virtual
5172 operands of moved stmts.
5174 2016-08-17 Richard Biener <rguenther@suse.de>
5176 PR tree-optimization/23855
5177 * tree-ssa-loop-unswitch.c: Include tree-ssa-loop-manip.h.
5178 (tree_unswitch_outer_loop): Iterate find_loop_guard as long as we
5179 find guards to hoist. Do not update SSA form but rewrite virtuals
5180 into loop closed SSA.
5181 (find_loop_guard): Adjust to skip already hoisted guards. Do
5182 not mark virtuals for renaming or update SSA form.
5184 2016-08-17 Martin Liska <mliska@suse.cz>
5186 * coverage.c (get_gcov_type): Replace GCOV_TYPE_SIZE with
5187 a LONG_LONG_TYPE_SIZE comparison.
5188 * gcov-io.h: Remove macro definitions.
5189 * tree-profile.c (gimple_gen_edge_profiler): Replace usage
5190 of GCOV_TYPE_ATOMIC_FETCH_ADD with a LONG_LONG_TYPE_SIZE
5193 2016-08-16 Jakub Jelinek <jakub@redhat.com>
5195 * config/i386/i386.c (enum ix86_builtins): Reorder enumerators, so
5196 that builtins not mentioned in bdesc_* arrays come first, then
5197 the ones mentioned in bdesc_* arrays in the order they appear in
5198 the arrays in between IX86_BUILTIN__BDESC_*_FIRST and
5199 IX86_BUILTIN__BDESC_*_LAST enumerator.
5200 (bdesc_mpx): Fix up a comment typo.
5201 (bdesc_multi_arg): Remove __builtin_ia32_vpcomne[bwdq] and
5202 __builtin_ia32_vpcomneu[bwdq] builtins.
5203 (BDESC_VERIFY, BDESC_VERIFYS): Define.
5204 (ix86_init_mmx_sse_builtins, ix86_init_mpx_builtins): Verify
5205 enum ix86_builtins ordering.
5206 (ix86_expand_builtin): Use enum ix86_builtins ordering assumption
5207 for direct bdesc_* array member access instead of searching all the
5208 arrays until an fcode match is found.
5210 2016-08-16 Uros Bizjak <ubizjak@gmail.com>
5212 * config/i386/i386.md (*ashl<mode>3_mask): Rewrite define_insn
5213 pattern as define_insn_and_split. Split insn before reload to
5215 (*<shift_insn><mode>3_mask): Ditto. Split insn before reload to
5216 <shift_insn><mode>3_1.
5217 (*<rotate_insn><mode>3_mask): Ditto. Split insn before reload to
5218 <rotate_insn><mode>3_1.
5220 2016-08-16 David Malcolm <dmalcolm@redhat.com>
5223 * input.c (get_source_range_for_substring): Rename to...
5224 (get_source_location_for_substring): ...this, adding param
5225 "caret_idx", and converting output param from source_range * to
5227 (get_source_range_for_char): New function.
5228 (get_num_source_ranges_for_substring): Update comment to reflect
5230 (assert_char_at_range): Update to use get_source_range_for_char
5231 rather than get_source_range_for_substring.
5232 (test_lexer_string_locations_concatenation_2): Likewise.
5233 * substring-locations.h (get_source_range_for_substring): Rename
5235 (get_source_location_for_substring): ...this, and adding param
5236 "caret_idx", and converting output param from source_range * to
5239 2016-08-16 David Malcolm <dmalcolm@redhat.com>
5241 * input.c (class selftest::temp_source_file): Move to
5243 (selftest::temp_source_file::temp_source_file): Move to
5245 (selftest::temp_source_file::~temp_source_file): Likewise.
5246 * selftest.c (selftest::temp_source_file::temp_source_file): Move
5248 (selftest::temp_source_file::~temp_source_file): Likewise.
5249 * selftest.h (class selftest::temp_source_file): Move here from
5252 2016-08-16 Jakub Jelinek <jakub@redhat.com>
5255 * tree-cfg.c (execute_fixup_cfg): Add node variable, use it. Before
5256 inlining, add cgraph edge for the added __builtin_unreachable call.
5259 * expmed.c (expand_mult_const): Change val_so_far's type to UHWI,
5260 only cast it to SHWI for the final comparison.
5262 2016-08-16 Martin Liska <mliska@suse.cz>
5264 PR gcov-profile/36412
5265 * doc/gcov.texi: Document --hash-filenames(-x).
5266 * gcov.c (print_usage): Add the option.
5267 (process_args): Process the option, sort options alphabetically.
5268 (md5sum_to_hex): New function.
5269 (make_gcov_file_name): Do the md5sum and append it to a
5272 2016-08-16 Bin Cheng <bin.cheng@arm.com>
5274 PR tree-optimization/69848
5275 * config/aarch64/aarch64-simd.md (vcond<mode><mode>): Invert NE
5276 and swtich operands to avoid additional NOT instruction.
5277 (vcond<v_cmp_mixed><mode>): Ditto.
5278 (vcondu<mode><mode>, vcondu<mode><v_cmp_mixed>): Ditto.
5280 2016-08-16 Eric Botcazou <ebotcazou@adacore.com>
5282 * doc/install.texi (*-*-solaris2*): Adjust latest change.
5284 2016-08-16 Richard Biener <rguenther@suse.de>
5286 PR tree-optimization/76783
5287 * tree-ssa-propagate.c (ssa_prop_init): Use RPO order. Clear
5288 BB visited flags at start.
5290 2016-08-16 Bin Cheng <bin.cheng@arm.com>
5292 PR tree-optimization/72817
5293 PR tree-optimization/73450
5294 * tree-ssa-loop-niter.c (number_of_iterations_ne): Check
5295 multiple_of_p for adjusted IV.base.
5297 2016-08-15 Uros Bizjak <ubizjak@gmail.com>
5300 * config/i386/sse.md (<code><mode>3<mask_name><round_saeonly_name>):
5301 Emit ieee_<ieee_maxmin><mode>3<mask_name><round_saeonly_name>
5302 for !flag_finite_math_only or flag_signed_zeros.
5303 (*<code><mode>3<mask_name><round_saeonly_name>): Rename from
5304 *<code><mode>3_finite<mask_name><round_saeonly_name>. Do not
5305 depend on flag_finite_math_only.
5306 (ieee_<ieee_maxmin><mode>3<mask_name><round_saeonly_name>):
5308 (*<code><mode>3<mask_name><round_saeonly_name>): Remove.
5309 (*ieee_smin<mode>3): Ditto.
5310 (*ieee_smax<mode>3): Ditto.
5311 * config/i386/mmx.md (mmx_<code>v2sf3): Emit
5312 mmx_ieee_<ieee_maxmin>v2sf3 for !flag_finite_math_only or
5314 (*mmx_<code>v2sf3): Rename from *mmx_<code>v2sf3_finite. Do not
5315 depend on flag_finite_math_only.
5316 (mmx_ieee_<ieee_maxmin>v2sf3): New insn pattern.
5317 (*mmx_<code>v2sf3): Remove.
5318 * config/i386/subst.md (round_saeonly_mask_arg3): New subst attribute.
5319 * config/i386/i386.c (ix86_expand_sse_fp_mimnax): Check
5320 flag_signed_zeros instead of !flag_unsafe_math_optimizations.
5322 2016-08-15 Segher Boessenkool <segher@kernel.crashing.org>
5324 PR rtl-optimization/73650
5325 * lra-constraints.c (simple_move_p): If the insn is multiple_sets
5326 it is not a simple move.
5328 2016-08-15 Martin Liska <mliska@suse.cz>
5331 * gcc.c (do_spec_1): Call save_string with the right size.
5332 (save_string): Do an assert about string we copy.
5334 2016-08-15 Richard Biener <rguenther@suse.de>
5336 * ree.c (rest_of_handle_ree): Remove redundant timevar push/pop.
5337 * config/i386/i386.c (pass_data_insert_vzeroupper): Account to
5339 (pass_data_stv): Likewise.
5341 2016-08-15 Richard Biener <rguenther@suse.de>
5343 PR tree-optimization/73434
5344 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Preserve
5345 TBAA info on the base when forwarding a non-invariant address.
5347 2016-08-15 Jakub Jelinek <jakub@redhat.com>
5349 * dwarf2out.c (struct checksum_attributes): Add
5350 at_string_length_bit_size and at_string_length_byte_size fields.
5351 (collect_checksum_attributes): Handle DW_AT_string_length_bit_size
5352 and DW_AT_string_length_byte_size.
5353 (die_checksum_ordered): Handle at_string_length_bit_size and
5354 at_string_length_byte_size.
5355 (gen_array_type_die): For dwarf_version >= 5 emit
5356 DW_AT_string_length_byte_size instead of DW_AT_byte_size.
5357 (adjust_string_types): For dwarf_version >= 5 remove
5358 DW_AT_string_length_byte_size instead of DW_AT_byte_size.
5359 (resolve_addr): Likewise.
5362 * dwarf2out.c (string_types): New variable.
5363 (gen_array_type_die): Change early_dwarf handling of
5364 DW_AT_string_length, create DW_OP_call4 referencing the
5365 length var temporarily. Handle parameters that are pointers
5367 (adjust_string_types): New function.
5368 (gen_subprogram_die): Temporarily set string_types to local var,
5369 call adjust_string_types if needed.
5370 (non_dwarf_expression, copy_deref_exprloc, optimize_string_length):
5372 (resolve_addr): Adjust DW_AT_string_length if it is DW_OP_call4.
5374 2016-08-15 Eric Botcazou <ebotcazou@adacore.com>
5376 * doc/install.texi (*-*-solaris2*): Fix version number and document
5377 requirement on GNU make for building libjava with the Solaris linker.
5379 2016-08-15 Martin Liska <mliska@suse.cz>
5380 Jakub Jelinek <jakub@redhat.com>
5382 PR tree-optimization/72824
5383 * tree-loop-distribution.c (const_with_all_bytes_same)
5384 <case VECTOR_CST>: Fix a typo.
5386 2016-08-14 Uros Bizjak <ubizjak@gmail.com>
5389 * config/i386/avx512fintrin.h (_mm512_undefined_epi32):
5390 Renamed from _mm512_undefined_si512.
5391 (_mm_undefined_si512): New definition.
5393 2016-08-13 Richard Biener <rguenther@suse.de>
5395 * tree-ssa-forwprop.c (pass_forwprop::execute): Propagate
5396 into PHIs and update the lattice for its def.
5398 2016-08-12 Jakub Jelinek <jakub@redhat.com>
5401 * ubsan.c (instrument_si_overflow): Pass true instead of false
5403 (pass_ubsan::execute): Call gimple_purge_dead_eh_edges at the end
5404 of bbs. Return TODO_cleanup_cfg if any returned true.
5406 2016-08-12 Michael Meissner <meissner@linux.vnet.ibm.com>
5408 * config/rs6000/vsx.md (vsx_concat_<mode>): Add support for the
5409 ISA 3.0 MTVSRDD instruction.
5410 (vsx_splat_<mode>): Change cpu type of MTVSRDD instruction to
5413 2016-08-12 Bernd Edlinger <bernd.edlinger@hotmail.de>
5415 PR tree-optimization/71083
5416 * tree-predcom.c (ref_at_iteration): Use a COMPONENT_REF for the
5417 bitfield access when possible.
5419 2016-08-12 Patrick Palka <ppalka@gcc.gnu.org>
5422 * match.pd ((T)A CMP (T)B -> A CMP B): Allow (T)A to be a
5423 sign-changing cast from a shorter unsigned type to a wider
5426 2016-08-12 Jakub Jelinek <jakub@redhat.com>
5428 * config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm,
5429 vec_extract_hi_<mode>_mask, vec_extract_lo_<mode>_mask,
5430 vec_extract_hi_<mode>_mask): Use Yk constraint instead of k.
5432 2016-08-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5434 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
5435 Correct costs for vec_construct.
5437 2016-08-12 Bin Cheng <bin.cheng@arm.com>
5439 PR tree-optimization/69848
5440 * tree-vectorizer.h (enum vect_def_type): New condition reduction
5441 type CONST_COND_REDUCTION.
5442 * tree-vect-loop.c (vectorizable_reduction): Support new condition
5443 reudction type CONST_COND_REDUCTION.
5445 2016-08-12 Richard Biener <rguenther@suse.de>
5447 PR tree-optimization/57326
5448 * tree-ssa-pre.c (fully_constant_expression): Handle simplification
5449 returning an SSA name.
5450 (phi_translate_1): When fully_constant_expression returns a NAME
5451 make sure we have a leader for it.
5453 2016-08-12 Martin Liska <mliska@suse.cz>
5454 Adam Fineman <afineman@afineman.com>
5456 * gcov.c (process_file): Create .gcov file when .gcda
5459 2016-08-12 Marek Polacek <polacek@redhat.com>
5462 * alias.c (find_base_value): Adjust fall through comment.
5463 * cfgexpand.c (expand_debug_expr): Likewise.
5464 * combine.c (find_split_point): Likewise.
5465 (expand_compound_operation): Likewise. Add FALLTHRU.
5466 (make_compound_operation): Adjust fall through comment.
5467 (canon_reg_for_combine): Add FALLTHRU.
5468 (force_to_mode): Adjust fall through comment.
5469 (simplify_shift_const_1): Likewise.
5470 (simplify_comparison): Likewise.
5471 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Add
5473 * config/aarch64/predicates.md: Likewise.
5474 * config/i386/i386.c (function_arg_advance_32): Likewise.
5475 (ix86_gimplify_va_arg): Likewise.
5476 (print_reg): Likewise.
5477 (ix86_print_operand): Likewise.
5478 (ix86_build_const_vector): Likewise.
5479 (ix86_expand_branch): Likewise.
5480 (ix86_sched_init_global): Adjust fall through comment.
5481 (ix86_expand_args_builtin): Add FALLTHRU.
5482 (ix86_expand_builtin): Likewise.
5483 (ix86_expand_vector_init_one_var): Likewise.
5484 * config/rs6000/rs6000.c (rs6000_emit_vector_compare_inner): Likewise.
5485 (rs6000_adjust_cost): Likewise.
5486 (insn_must_be_first_in_group): Likewise.
5487 * config/rs6000/rs6000.md: Likewise. Adjust fall through comment.
5488 * dbxout.c (dbxout_symbol): Adjust fall through comment.
5489 * df-scan.c (df_uses_record): Likewise.
5490 * dojump.c (do_jump): Add FALLTHRU.
5491 * dwarf2out.c (mem_loc_descriptor): Likewise. Adjust fall through
5493 (resolve_args_picking_1): Adjust fall through comment.
5494 (loc_list_from_tree_1): Likewise.
5495 * expmed.c (make_tree): Likewise.
5496 * expr.c (expand_expr_real_2): Add FALLTHRU.
5497 (expand_expr_real_1): Likewise. Adjust fall through comment.
5498 * fold-const.c (const_binop): Adjust fall through comment.
5499 (fold_truth_not_expr): Likewise.
5500 (fold_cond_expr_with_comparison): Add FALLTHRU.
5501 (fold_binary_loc): Likewise.
5502 (contains_label_1): Adjust fall through comment.
5503 (multiple_of_p): Likewise.
5504 * gcov-tool.c (process_args): Add FALLTHRU.
5505 * genattrtab.c (check_attr_test): Likewise.
5506 (write_test_expr): Likewise.
5507 * genconfig.c (walk_insn_part): Likewise.
5508 * genpreds.c (validate_exp): Adjust fall through comment.
5509 (needs_variable): Likewise.
5510 * gensupport.c (get_alternatives_number): Add FALLTHRU.
5511 (subst_dup): Likewise.
5512 * gimple-pretty-print.c (dump_gimple_assign): Likewise.
5513 * gimplify.c (gimplify_addr_expr): Adjust fall through comment.
5514 (gimplify_scan_omp_clauses): Add FALLTHRU.
5515 (goa_stabilize_expr): Likewise.
5516 * graphite-isl-ast-to-gimple.c (substitute_ssa_name): Adjust fall
5518 * hsa-gen.c (get_address_from_value): Likewise.
5519 * ipa-icf.c (sem_function::hash_stmt): Likewise.
5520 * ira.c (ira_setup_alts): Add FALLTHRU.
5521 * lra-eliminations.c (lra_eliminate_regs_1): Adjust fall through
5523 * lto-streamer-out.c (lto_output_tree_ref): Add FALLTHRU.
5524 * opts.c (common_handle_option): Likewise.
5525 * read-rtl.c (read_rtx_code): Likewise.
5526 * real.c (round_for_format): Likewise.
5527 * recog.c (asm_operand_ok): Likewise.
5528 * reginfo.c (reg_scan_mark_refs): Adjust fall through comment.
5529 * reload1.c (set_label_offsets): Likewise.
5530 (eliminate_regs_1): Likewise.
5531 (reload_reg_reaches_end_p): Likewise.
5532 * rtlanal.c (commutative_operand_precedence): Add FALLTHRU.
5533 (rtx_cost): Likewise.
5534 * sched-rgn.c (is_exception_free): Likewise.
5535 * simplify-rtx.c (simplify_rtx): Adjust fall through comment.
5536 * stor-layout.c (int_mode_for_mode): Likewise.
5537 * toplev.c (print_to_asm_out_file): Likewise.
5538 (print_to_stderr): Likewise.
5539 * tree-cfg.c (gimple_verify_flow_info): Likewise.
5540 * tree-chrec.c (chrec_fold_plus_1): Add FALLTHRU.
5541 (chrec_fold_multiply): Likewise.
5542 (evolution_function_is_invariant_rec_p): Likewise.
5543 (for_each_scev_op): Likewise.
5544 * tree-data-ref.c (siv_subscript_p): Likewise.
5545 (get_references_in_stmt): Likewise.
5546 * tree.c (find_placeholder_in_expr): Adjust fall through comment.
5547 (substitute_in_expr): Likewise.
5548 (type_cache_hasher::equal): Likewise.
5549 (walk_type_fields): Likewise.
5550 * var-tracking.c (adjust_mems): Add FALLTHRU.
5551 (set_dv_changed): Adjust fall through comment.
5552 * varasm.c (default_function_section): Add FALLTHRU.
5554 2016-08-12 Marek Polacek <polacek@redhat.com>
5557 * tree-complex.c (expand_complex_division): Add missing break.
5559 2016-08-12 Richard Biener <rguenther@suse.de>
5561 * passes.c (execute_todo): Do not push/pop TV_TODO.
5562 (execute_one_ipa_transform_pass): Move timevar push/pop TODO execution.
5563 (execute_one_pass): Likewise.
5564 * common.opt (ftime-report-details): New switch.
5565 * doc/invoke.texi (ftime-report-details): Document.
5566 * timevar.h (timer::print_row): Adjust signature.
5567 (timer::all_zero): New static helper.
5568 (timer::child_map_t): New typedef.
5569 (timer::time_var_def): Add children field.
5570 * timevar.c (timer::named_items::print): Adjust.
5571 (timer::~timer): Free timevar recorded children.
5572 (timer::pop_internal): When -ftime-report-details record
5573 time spent in sub-timevars.
5574 (timer::print_row): Adjust.
5575 (timer::print): Print sub-timevar stats, use all_zero.
5576 * timevar.def (TV_TODO): Remove.
5578 2016-08-12 Richard Biener <rguenther@suse.de>
5580 PR tree-optimization/72851
5581 * tree-ssa-propagate.c: Include cfganal.h. Rewrite block and stmt
5582 worklists to use bitmaps indexed in execution order.
5583 (executable_blocks, cfg_blocks_num, cfg_blocks_tail, cfg_blocks_head,
5584 bb_in_list, interesting_ssa_edges, varying_ssa_edges): Remove.
5585 (cfg_blocks): Make a bitmap.
5586 (bb_to_cfg_order, cfg_order_to_bb, ssa_edge_worklist, uid_to_stmt):
5588 (cfg_blocks_empty_p): Adjust.
5589 (cfg_blocks_add): Likewise.
5590 (cfg_blocks_get): Likewise.
5591 (add_ssa_edge): Likewise.
5592 (add_control_edge): Likewise.
5593 (simulate_stmt): Likewise.
5594 (process_ssa_edge_worklist): Likewise.
5595 (simulate_block): Likewise.
5596 (ssa_prop_init): Compute PRE order and stmt UIDs.
5597 (ssa_prop_fini): Adjust.
5598 (ssa_propagate): Adjust.
5600 2016-08-12 Richard Biener <rguenther@suse.de>
5602 * tree-vrp.c (vrp_visit_phi_node): Allow a last iteration if
5603 the currently executable edges have fixed ranges. Always
5604 go through update_value_range.
5606 2016-08-12 Alexandre Oliva <aoliva@redhat.com>
5610 (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Const_tree-ify.
5611 (LANG_HOOKS_FUNCTION_DECL_DELETED_P): Likewise.
5612 (LANG_HOOKS_FUNCTION_DECL_DEFAULTED): Set default.
5613 (LANG_HOOKS_DECLS): Add it.
5614 * langhooks.h (struct lang_hooks_for_decls): Add
5615 function_decl_defaulted. Const_tree-ify
5616 function_decl_explicit_p and function_decl_deleted_p.
5617 * dwarf2out.c (gen_subprogram_die): Add DW_AT_defaulted
5618 attribute. Add DW_AT_deleted instead of DW_AT_GNU_deleted,
5619 also at strict DWARF v5.
5622 * dwarf2out.c (decl_quals): Don't map TREE_READONLY to
5623 TYPE_QUAL_CONST in reference-typed decls.
5626 * dwarf2out.c (loc_list_from_tree_1): Expand some CONSTRUCTORs
5627 in DW_OP_pieces, just enough to handle pointers to member
5629 (gen_remaining_tmpl_value_param_die_attribute): Use a location
5630 expression on DWARFv5 if a constant value doesn't work.
5632 2016-08-11 David Malcolm <dmalcolm@redhat.com>
5634 * selftest-run-tests.c (selftest::run_tests): Call selftest_c_tests.
5635 * selftest.c (selftest::test_assertions): New function.
5636 (selftest::selftest_c_tests): New function.
5637 * selftest.h (selftest::selftest_c_tests): New declaration.
5639 2016-08-11 Richard Biener <rguenther@suse.de>
5640 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5642 PR rtl-optimization/72855
5643 * df-core.c (df_verify): Turn off DF_VERIFY_SCHEDULED at end.
5645 2016-08-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5648 * vsx.md (vsx_load_<mode>): For P8LE, emit swaps at expand time.
5649 (vsx_store_<mode>): Likewise.
5651 2015-08-11 H.J. Lu <hongjiu.lu@intel.com>
5653 * config/i386/i386.c (timode_scalar_to_vector_candidate_p): Allow
5654 TImode CONST_WIDE_INT store.
5655 (timode_scalar_chain::convert_insn): Handle CONST_WIDE_INT store.
5657 2015-08-11 H.J. Lu <hongjiu.lu@intel.com>
5659 * config/i386/i386.h (MOVE_MAX_PIECES): Use TImode in 64-bit
5660 mode if unaligned SSE load and store are optimal.
5662 2016-08-11 Bernd Edlinger <bernd.edlinger@hotmail.de>
5664 PR tree-optimization/71083
5665 * tree-predcom.c (ref_at_iteration): Correctly align the
5668 2016-08-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5670 * config/s390/s390-builtin-types.def: Add INT128 types.
5671 * config/s390/s390-builtins.def: Add INT128 variants for the add
5672 sub low-level builtins dealing with TImode.
5673 * config/s390/s390.c (s390_expand_builtin): Allow mode conversions
5674 via subreg when expanding a builtin.
5675 * config/s390/s390.md: Remove UNSPEC_VEC_ADDC_U128,
5676 UNSPEC_VEC_SUB_U128, and UNSPEC_VEC_SUBC_U128 constants.
5678 * config/s390/vecintrin.h: Adjust builtin names accordingly.
5679 * config/s390/vx-builtins.md ("vec_add_u128"): Remove expander.
5680 ("vec_addc<mode>", "vec_addc_u128"): Merge to
5681 "vacc<bhfgq>_<mode>".
5682 ("vec_adde_u128"): Rename to "vacq". Change mode to TImode.
5683 ("vec_addec_u128"): Rename to "vacccq". Change mode to TImode.
5684 ("vec_subc<mode>", "vec_subc_u128"): Merge to
5685 "vscbi<bhfgq>_<mode>".
5686 ("vec_sube_u128"): Rename to "vsbiq". Change mode to TImode.
5687 ("vec_subec_u128"): Rename to "vsbcbiq". Change mode to TImode.
5689 2016-08-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5691 * config/s390/s390-builtins.def: Mark last operand of s390_vlvg*
5693 2016-08-11 Bin Cheng <bin.cheng@arm.com>
5695 * config/aarch64/aarch64-simd.md (vcond<mode><mode>): Delete
5697 (vcond<v_cmp_mixed><mode>): Ditto.
5698 (vcondu<mode><mode>, vcondu<mode><v_cmp_mixed>): Ditto.
5700 2016-08-11 Bin Cheng <bin.cheng@arm.com>
5702 * config/aarch64/aarch64-simd.md (vec_cmp<mode><v_cmp_result>): Init
5703 variable explicitly, also assert on it before use.
5705 2016-08-11 Richard Biener <rguenther@suse.de>
5707 PR tree-optimization/72772
5708 * cfgloopmanip.c (create_preheader): Use split_edge if there
5709 is a single loop entry, avoiding degenerate PHIs.
5711 2016-08-11 Richard Biener <rguenther@suse.de>
5713 * tree-ssa-threadbackward.c (pass_data_thread_jumps): Remove
5714 unconditional TODO_cleanup_cfg.
5715 (pass_thread_jumps::execute): Initialize loops, perform a CFG
5716 cleanup only if we threaded a jump.
5718 2016-08-11 Alan Modra <amodra@gmail.com>
5721 * lra-constraints.c (simplify_operand_subreg): Allow subreg
5722 mode for mem when SLOW_UNALIGNED_ACCESS if inner mode is also
5723 slow. Emit two reloads for slow mem case, first loading in
5724 fast innermode, then converting to required mode.
5726 2016-08-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
5728 * config/rs6000/altivec.h (vec_extract_exp): New macro.
5729 (vec_extract_sig): New macro.
5730 (vec_insert_exp): New macro.
5731 (vec_test_data_class): New macro.
5732 (scalar_extract_exp): New macro.
5733 (scalar_extract_sig): New macro.
5734 (scalar_insert_exp): New macro.
5735 (scalar_test_data_class): New macro.
5736 (scalar_test_neg): New macro.
5737 (scalar_cmp_exp_gt): New macro.
5738 (scalar_cmp_exp_lt): New macro.
5739 (scalar_cmp_exp_eq): New macro.
5740 (scalar_cmp_exp_unordered): New macro.
5741 * config/rs6000/predicates.md (u7bit_cint_operand): New predicate
5742 to enforce constraint that operand is a 7-bit unsigned literal.
5743 * config/rs6000/rs6000-builtin.def (BU_P9V_64BIT_VSX_1): New macro
5744 for power9 built-ins.
5745 (BU_P9V_VSX_2): Likewise.
5746 (BU_P9V_64BIT_VSX_2): Likewise.
5747 (VSEEDP): Add scalar extract exponent support.
5748 (VSEESP): Add scalar extract signature support.
5749 (VSTDCNDP): Add scalar test negative support.
5750 (VSTDCNSP): Likewise.
5751 (VSIEDP): Add scalar insert exponent support.
5752 (VSCEDPGT): Add scalar compare exponent greater than support.
5753 (VSCEDPLT): Add scalar compare exponent less than support.
5754 (VSCEDPEQ): Add scalar compare exponent test-for-equality support.
5755 (VSCEDPUO): Add scalar compare exponent test-for-unordered support.
5756 (VSTDCDP): Add scalar test data class support.
5757 (VSTDCSP): Likewise.
5758 (VSEEDP): Add overload support for scalar extract exponent
5760 (VSESDP): Add overload support for scalar extract signature
5762 (VSTDCN): Add overload support for scalar test negative
5764 (VSTDCNDP): Add overload support for scalar test negative
5766 (VSTDCNSP): Add overload support for scalar test negative
5768 (VSIEDP): Add overload support for scalar insert exponent
5770 (VSTDC): Add overload support for scalar test data class
5772 (VSTDCDP): Add overload support for scalar test data class
5774 (VSTDCSP): Add overload support for scalar test data class
5776 (VSCEDPGT): Add overload support for scalar compare exponent
5777 greater than operation.
5778 (VSCEDPLT): Add overload support for scalar compare exponent
5779 less than operation.
5780 (VSCEDPEQ): Add overload support for scalar compare exponent
5781 test-for-equality operation.
5782 (VSCEDPUO): Add overload support for scalar compare exponent
5783 test-for-unordered operation.
5784 (VEEDP): Add vector extract exponent support.
5786 (VESDP): Add vector extract significand support.
5788 (VIEDP): Add vector insert exponent support.
5790 (VTDCDP): Add vector test data class support.
5792 (VES): Add overload support for vector extract significand operation.
5795 (VEE): Add overload support for vector extract exponent operation.
5798 (VTDC): Add overload support for vector test data class operation.
5801 (VIE): Add overload support for vector insert exponent operation.
5804 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
5805 overloaded binary floating point functions.
5806 (altivec_resolve_overloaded_builtin): Improve error messages to
5807 distinguish between functions not supported in the current
5808 compiler configuration and functions that were invoked with an
5809 invalid parameter combination, and include the built-in function
5810 name in both error messages.
5811 * config/rs6000/rs6000-protos.h (rs6000_overloaded_builtin_name):
5813 * config/rs6000/rs6000.c (rs6000_overloaded_builtin_name): New
5815 (rs6000_expand_binop_builtin): Add check to enforce that argument
5816 2 of the test data class operations is a 7-bit unsigned literal.
5817 (rs6000_invalid_builtin): Add code to issue an error message if a
5818 built-in function that requires the power9_vector and -m32
5819 command-line options is compiled without these options.
5820 * config/rs6000/vsx.md (UNSPEC_VSX_SXEXPDP): New value.
5821 (UNSPEC_VSX_SXSIGDP): New value.
5822 (UNSPEC_VSX_SXSIGPDP): New value.
5823 (UNSPEC_VSX_SIEXPDP): New value.
5824 (UNSPEC_VSX_SCMPEXPDP): New value.
5825 (UNSPEC_VSX_STSTDC): New value.
5826 (UNSPEC_VSX_VXEXP): New value.
5827 (UNSPEC_VSX_VXSIG): New value.
5828 (UNSPEC_VSX_VIEXP): New value.
5829 (UNSPEC_VSX_VTSTDC): New value.
5830 (xsxexpdp): New insn for scalar extract exponent.
5831 (xsxsigdp): New insn for scalar extract significand.
5832 (xsiexpdp): New insn for scalar insert exponent.
5833 (xscmpexpdp_<code>): New expansion for scalar compare exponents.
5834 (*xscmpexpdp): New insn for scalar compare exponents.
5835 (xststdc<Fvsx): New expansion for both single- and
5836 double-precision scalar test data class operations.
5837 (xststdcneg<Fvsx>): New expansion for both single- and
5838 double-precision scalar test for negative value operations.
5839 (*xststdc<Fvsx>): New insn for scalar test data class
5841 (xvxexp<VSs>): New insn for single- and double-precision
5842 vector extract exponent operation.
5843 (xvxsig<VSs>): New insn for single- and double-precision
5844 vector extract significand operation.
5845 (xviexp<VSs>): New insn for single- and double-precision
5846 vector insert exponent operation.
5847 (xvtstdc<VSs>): New insn for single- and double-precision
5848 vector test data class operation.
5849 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
5850 built-in functions to represent the Power9 binary floating-point
5851 support instructions.
5853 2016-08-10 bin cheng <bin.cheng@arm.com>
5855 * doc/sourcebuild.texi (@item vect_cond_mixed): New item.
5857 2016-08-10 Alan Lawrence <alan.lawrence@arm.com>
5858 Renlin Li <renlin.li@arm.com>
5859 Bin Cheng <bin.cheng@arm.com>
5861 * config/aarch64/iterators.md (V_cmp_mixed, v_cmp_mixed): New.
5862 * config/aarch64/aarch64-simd.md (<su><maxmin>v2di3): Call
5863 gen_vcondv2div2di instead of gen_aarch64_vcond_internalv2div2di.
5864 (aarch64_vcond_internal<mode><mode>): Delete pattern.
5865 (aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): Ditto.
5866 (vcond<v_cmp_result><mode>): Ditto.
5867 (vcond<mode><mode>): Re-implement using vec_cmp and vcond_mask.
5868 (vcondu<mode><mode>): Ditto.
5869 (vcond<v_cmp_mixed><mode>): New pattern.
5870 (vcondu<mode><v_cmp_mixed>): New pattern.
5871 (aarch64_cmtst<mode>): Revise comment using aarch64_vcond instead
5872 of aarch64_vcond_internal.
5874 2016-08-10 Alan Lawrence <alan.lawrence@arm.com>
5875 Renlin Li <renlin.li@arm.com>
5876 Bin Cheng <bin.cheng@arm.com>
5878 * config/aarch64/aarch64-simd.md (vec_cmp<mode><mode>): New pattern.
5879 (vec_cmp<mode><v_cmp_result>): New pattern.
5880 (vec_cmpu<mode><mode>): New pattern.
5881 (vcond_mask_<mode><v_cmp_result>): New pattern.
5883 2016-08-10 Yuri Rumyantsev <ysrumyan@gmail.com>
5885 PR tree-optimization/71734
5886 * tree-ssa-loop-im.c (ref_indep_loop_p): Add new argument
5887 REF_LOOP, invoke ref_indep_loop_p_1.
5888 (outermost_indep_loop): Pass LOOP argumnet where REF was defined
5889 to ref_indep_loop_p.
5890 (ref_indep_loop_p_1): Fix commentary, add argument REF_LOOP,
5891 combine it with ref_indep_lopp_p_2, update SAFELEN if only REF
5892 is inside LOOP, do not cache dpendence value for loops with
5894 (ref_indep_loop_p_2): Delete function.
5895 (can_sm_ref_p): Pass LOOP as additional argument to
5898 2016-08-10 Michael Meissner <meissner@linux.vnet.ibm.com>
5901 * config/rs6000/rs6000.c (mem_operand_ds_form): Add check for op
5902 being an offsettable address.
5904 2016-08-10 Martin Liska <mliska@suse.cz>
5906 PR gcov-profile/58306
5907 * tree-profile.c (gimple_init_edge_profiler): Create conditionally
5908 atomic variants of profile update functions.
5910 2016-08-10 Martin Liska <mliska@suse.cz>
5912 Cherry picked (and modified) from google-4_7 branch
5913 2012-12-26 Rong Xu <xur@google.com>
5914 * common.opt (fprofile-update): Add new flag.
5915 * coretypes.h: Define enum profile_update.
5916 * doc/invoke.texi: Document -fprofile-update.
5917 * gcov-io.h: Declare GCOV_TYPE_ATOMIC_FETCH_ADD and
5918 GCOV_TYPE_ATOMIC_FETCH_ADD_FN.
5919 * tree-profile.c (gimple_init_edge_profiler): Generate
5920 also atomic profiler update.
5921 (gimple_gen_edge_profiler): Likewise.
5923 2016-08-10 David Malcolm <dmalcolm@redhat.com>
5925 * toplev.c (finalize): Set aux_info_file, asm_out_file, and
5926 stack_usage_file to NULL after fclose calls.
5928 2016-08-10 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
5931 * reload.c (push_reload): Compute subreg_in_class for
5932 subregs of constants and plus expressions. Remove special
5933 handling of SYMBOL_REFs.
5935 2016-08-10 Alan Modra <amodra@gmail.com>
5938 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Return
5939 SImode for TARGET_E500_DOUBLE when given SImode.
5941 2016-08-09 David Wohlferd <dw@LimeGreenSocks.com>
5943 * config/i3836/avx512fintrin.h (_mm512_cvtsepi64_epi32): Remove
5944 unused variable __O.
5946 2016-08-09 Martin Liska <mliska@suse.cz>
5948 * doc/gcov.texi: Change _gcov_dump to __gcov_dump and
5949 _gcov_reset to __gcov_reset.
5950 * doc/gcov-tool.texi: Fix typo.
5952 2016-08-09 Martin Liska <mliska@suse.cz>
5954 * value-prof.c (gimple_divmod_values_to_profile): Do not
5955 instrument MOD histogram if a value is not a SSA name.
5957 2016-08-09 Martin Liska <mliska@suse.cz>
5959 * value-prof.c (dump_histogram_value): Swap pow2 and non-pow2
5962 2016-08-09 Renlin Li <renlin.li@arm.com>
5965 * calls.c (prepare_call_address): Convert funexp to Pmode when
5967 * config/aarch64/aarch64.md (sibcall): Remove fix for PR 64971.
5968 (sibcall_value): Likewise.
5970 2016-08-09 Marek Polacek <polacek@redhat.com>
5973 * cselib.c (cselib_expand_value_rtx_1): Add return.
5974 * gengtype.c (dbgprint_count_type_at): Likewise.
5975 * hsa-gen.c (gen_hsa_insn_for_internal_fn_call): Likewise.
5976 * reg-stack.c (get_true_reg): Restructure to avoid fallthrough warning.
5978 2016-08-09 Martin Jambor <mjambor@suse.cz>
5981 * ipa-polymorphic-call.c (get_dynamic_type): Bail out gracefully
5982 if instance is a MEM_REF.
5984 2016-08-09 Uros Bizjak <ubizjak@gmail.com>
5987 * config/i386/i386.md (*movtf_internal): Use
5988 lra_in_progress || reload_completed instead of !can_create_pseudo_p
5989 in the insn constraint.
5990 (*movxf_internal): Ditto.
5991 (*movdf_internal): Ditto.
5992 (*movsf_internal): Ditto.
5994 2016-08-09 Bin Cheng <bin.cheng@arm.com>
5996 PR tree-optimization/72772
5997 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
6000 2016-08-09 Bin Cheng <bin.cheng@arm.com>
6002 PR tree-optimization/72772
6003 * tree-ssa-loop-niter.h (simplify_using_initial_conditions): Delete
6005 * tree-ssa-loop-niter.c (tree_simplify_using_condition_1): Delete
6006 parameter STOP and update calls. Move expand_simple_operations
6007 function call from here...
6008 (simplify_using_initial_conditions): ...to here. Delete parameter
6010 (tree_simplify_using_condition): Delete parameter STOP.
6011 * tree-scalar-evolution.c (simple_iv_with_niters): Update call to
6012 simplify_using_initial_conditions.
6014 2016-08-09 Matthew Fortune <matthew.fortune@imgtec.com>
6017 * config/mips/mips.c (mips_atomic_assign_expand_fenv):
6018 Use create_tmp_var_raw instead of create_tmp_var.
6020 2016-08-09 Richard Biener <rguenther@suse.de>
6022 * tree-ssa-threadbackward.c (profitable_jump_thread_path):
6023 Treat same SSA names related.
6025 2016-08-09 Jakub Jelinek <jakub@redhat.com>
6027 PR tree-optimization/72824
6028 * tree-loop-distribution.c (const_with_all_bytes_same): Verify
6029 real_zerop is not negative.
6031 2016-08-09 Richard Biener <rguenther@suse.de>
6033 PR tree-optimization/71802
6034 * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Make sure to catch
6035 all merge opportunities with the predecessor.
6037 2016-08-09 Richard Biener <rguenther@suse.de>
6040 * ipa-prop.c (ipa_modify_formal_parameters): Build
6041 parameter types with natural alignment also for the
6044 2016-08-08 Andi Kleen <ak@linux.intel.com>
6046 * tree-vrp.c (get_single_symbol): Always initialize inv and neg.
6048 2016-08-08 David Malcolm <dmalcolm@redhat.com>
6051 * langhooks-def.h (LANG_HOOKS_RUN_LANG_SELFTESTS): New default
6052 do-nothing langhook.
6053 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_RUN_LANG_SELFTESTS.
6054 * langhooks.h (struct lang_hooks): Add run_lang_selftests.
6055 * selftest-run-tests.c: Include "tree.h" and "langhooks.h".
6056 (selftest::run_tests): Call lang_hooks.run_lang_selftests.
6058 2016-08-08 David Malcolm <dmalcolm@redhat.com>
6061 * input.c: Ensure that HAVE_ICONV is defined.
6063 2016-08-08 Jakub Jelinek <jakub@redhat.com>
6066 * omp-low.c (lower_lastprivate_clauses): Set TREE_NO_WARNING on the
6067 private vars for lastprivate and for linear iterator.
6070 * omp-simd-clone.c: Include varasm.h.
6071 (simd_clone_create): Copy over DECL_COMDAT, DECL_WEAK, DECL_EXTERNAL,
6072 DECL_VISIBILITY, DECL_VISIBILITY_SPECIFIED, DECL_DLLIMPORT_P and for
6073 DECL_ONE_ONLY call make_decl_one_only. Fix up spelling in comment and
6074 update function name.
6076 2016-07-29 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
6078 * config/avr/driver-avr.c (specfiles_doc_url): Remove.
6079 (avr_diagnose_devicespecs_error): Remove.
6080 (avr_devicespecs_file): Remove composing absolute path for specfile
6081 and its verbose info. Remove conditions to check specs-file,
6083 2016-08-08 Jakub Jelinek <jakub@redhat.com>
6085 PR rtl-optimization/72821
6086 * lra-spills.c (regno_in_use_p): Don't use BLOCK_FOR_INSN on barriers,
6087 just return false for them.
6089 2016-08-08 Alan Modra <amodra@gmail.com>
6092 * config/rs6000/rs6000.c (toc_relative_expr_p): Allow (lo_sum (high))
6093 toc refs created during reload. Update function comment.
6095 2016-08-08 Alan Modra <amodra@gmail.com>
6098 * config/rs6000/rs6000.md (mov<mode>_hardfloat): Sort
6099 alternatives. Put loads first, then stores, and reg/reg moves
6100 within same class later. Delete attr length.
6102 2016-08-08 Alan Modra <amodra@gmail.com>
6105 * config/rs6000/rs6000.c (mem_operand_gpr): Remove vsx dform test.
6106 (mem_operand_ds_form): New predicate.
6107 * config/rs6000/rs6000-protos.h (mem_operand_ds_form): Declare.
6108 * config/rs6000/constraints.md (wY): Use mem_operand_df_form.
6109 * config/rs6000/predicates.md (offsettable_mem_14bit_operand): Delete.
6110 * config/rs6000/rs6000.md (f32_lm2, f32_sm2): Use wY for SF.
6111 (extendsfdf2_fpr): Replace o constraint with wY.
6113 2016-08-07 Jan Hubicka <hubicka@ucw.cz>
6115 * tree-ssa-threadbackward.c: Include tree-inline.h
6116 (profitable_jump_thread_path): Use estimate_num_insns to estimate
6117 size of copied block; for cold paths reduce duplication.
6118 (find_jump_threads_backwards): Remove redundant tests.
6119 (pass_thread_jumps::gate): Enable for -Os.
6121 2016-08-07 Jakub Jelinek <jakub@redhat.com>
6124 * stor-layout.c (layout_decl): Fix up formatting.
6125 (relayout_decl): Allow DECL to be FIELD_DECL.
6127 2016-08-07 Alan Modra <amodra@gmail.com>
6129 * config/rs6000/rs6000.md (fix_trunc<mode>si2): Fix mode of reg.
6131 2016-08-07 Kugan Vivekanandarajah <kuganv@linaro.org>
6133 * data-streamer-in.c (streamer_read_wide_int): New.
6134 (streamer_read_widest_int): Renamed function.
6135 * data-streamer-out.c (streamer_write_wide_int): New
6136 (streamer_write_widest_int): Renamed function.
6137 * lto-streamer-in.c (streamer_read_wi): Renamed and moved to
6139 (input_cfg): Call renamed function.
6140 * lto-streamer-out.c (streamer_write_wi): Renamed and moved to
6142 (output_cfg): Call renamed function.
6143 * data-streamer.h: Add declarations.
6145 2016-08-08 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6147 * tree-ssa-ccp.c (extend_mask): New param sgn.
6148 Remove ORing with wi::mask.
6149 (get_default_value): Adjust call to extend_mask to pass sign.
6150 (evaluate_stmt): Likewise.
6152 2016-08-06 Jakub Jelinek <jakub@redhat.com>
6154 * gcov.c (handle_cycle): Use INTTYPE_MAXIMUM (int64_t) instead of
6157 2016-08-06 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6159 * match.pd ((intptr_t) x eq/ne CST to x eq/ne (typeof x) cst): Disable
6160 transform if operand's type is pointer to function or method.
6162 2016-08-05 Patrick Palka <ppalka@gcc.gnu.org>
6164 PR tree-optimization/18046
6165 * tree-ssa-threadedge.c: Include cfganal.h.
6166 (simplify_control_statement_condition): If simplifying a
6167 GIMPLE_SWITCH, replace the index operand of the GIMPLE_SWITCH
6168 with the dominating ASSERT_EXPR before handing it off to VRP.
6169 Mention that a CASE_LABEL_EXPR may be returned.
6170 (thread_around_empty_blocks): Adjust to handle
6171 simplify_control_statement_condition() returning a
6173 (thread_through_normal_block): Likewise.
6174 * tree-vrp.c (simplify_stmt_for_jump_threading): Simplify
6175 a switch statement by trying to determine which case label
6178 2016-08-05 Vladimir Makarov <vmakarov@redhat.com>
6180 PR rtl-optimization/69847
6181 * lra-constraints.c (process_invariant_for_inheritance): Save
6182 pattern instead of src.
6183 (remove_inheritance_pseudos): Use the pattern. Add assert.
6185 2016-08-05 David Malcolm <dmalcolm@redhat.com>
6187 * input.c (string_concat::string_concat): New constructor.
6188 (string_concat_db::string_concat_db): New constructor.
6189 (string_concat_db::record_string_concatenation): New method.
6190 (string_concat_db::get_string_concatenation): New method.
6191 (string_concat_db::get_key_loc): New method.
6192 (class auto_cpp_string_vec): New class.
6193 (get_substring_ranges_for_loc): New function.
6194 (get_source_range_for_substring): New function.
6195 (get_num_source_ranges_for_substring): New function.
6196 (class selftest::lexer_test_options): New class.
6197 (struct selftest::lexer_test): New struct.
6198 (class selftest::ebcdic_execution_charset): New class.
6199 (selftest::ebcdic_execution_charset::s_singleton): New variable.
6200 (selftest::lexer_test::lexer_test): New constructor.
6201 (selftest::lexer_test::~lexer_test): New destructor.
6202 (selftest::lexer_test::get_token): New method.
6203 (selftest::assert_char_at_range): New function.
6204 (ASSERT_CHAR_AT_RANGE): New macro.
6205 (selftest::assert_num_substring_ranges): New function.
6206 (ASSERT_NUM_SUBSTRING_RANGES): New macro.
6207 (selftest::assert_has_no_substring_ranges): New function.
6208 (ASSERT_HAS_NO_SUBSTRING_RANGES): New macro.
6209 (selftest::test_lexer_string_locations_simple): New function.
6210 (selftest::test_lexer_string_locations_ebcdic): New function.
6211 (selftest::test_lexer_string_locations_hex): New function.
6212 (selftest::test_lexer_string_locations_oct): New function.
6213 (selftest::test_lexer_string_locations_letter_escape_1): New function.
6214 (selftest::test_lexer_string_locations_letter_escape_2): New function.
6215 (selftest::test_lexer_string_locations_ucn4): New function.
6216 (selftest::test_lexer_string_locations_ucn8): New function.
6217 (selftest::uint32_from_big_endian): New function.
6218 (selftest::test_lexer_string_locations_wide_string): New function.
6219 (selftest::uint16_from_big_endian): New function.
6220 (selftest::test_lexer_string_locations_string16): New function.
6221 (selftest::test_lexer_string_locations_string32): New function.
6222 (selftest::test_lexer_string_locations_u8): New function.
6223 (selftest::test_lexer_string_locations_utf8_source): New function.
6224 (selftest::test_lexer_string_locations_concatenation_1): New
6226 (selftest::test_lexer_string_locations_concatenation_2): New
6228 (selftest::test_lexer_string_locations_concatenation_3): New
6230 (selftest::test_lexer_string_locations_macro): New function.
6231 (selftest::test_lexer_string_locations_stringified_macro_argument):
6233 (selftest::test_lexer_string_locations_non_string): New function.
6234 (selftest::test_lexer_string_locations_long_line): New function.
6235 (selftest::test_lexer_char_constants): New function.
6236 (selftest::input_c_tests): Call the new test functions once per
6237 case within the line_table test matrix.
6238 * input.h (struct string_concat): New struct.
6239 (struct location_hash): New struct.
6240 (class string_concat_db): New class.
6241 * substring-locations.h: New header.
6243 2016-08-05 Patrick Palka <ppalka@gcc.gnu.org>
6245 PR tree-optimization/72810
6246 * tree-vrp.c (simplify_switch_using_ranges): Avoid changing
6247 the type of the case labels when truncating.
6249 2016-08-05 James Greenhalgh <james.greenhalgh@arm.com>
6252 * config/aarch64/aarch64.h (aarch64_fp16_type_node): Declare.
6253 (aarch64_fp16_ptr_type_node): Likewise.
6254 * config/aarch64/aarch64-simd-builtins.c
6255 (aarch64_fp16_ptr_type_node): Define.
6256 (aarch64_init_fp16_types): New, refactored out of...
6257 (aarch64_init_builtins): ...here, update to call
6258 aarch64_init_fp16_types.
6259 * config/aarch64/aarch64.c (aarch64_gimplify_va_arg_expr): Handle
6261 (aapcs_vfp_sub_candidate): Likewise.
6263 2016-08-05 Martin Liska <mliska@suse.cz>
6264 Joshua Cranmer <Pidgeot18@gmail.com>
6266 * gcov.c (line_t::has_block): New function.
6267 (enum loop_type): New enum.
6268 (handle_cycle): New function.
6269 (unblock): Likewise.
6270 (circuit): Likewise.
6271 (get_cycles_count): Likewise.
6272 (accumulate_line_counts): Use new loop detection algorithm.
6274 2016-08-05 Martin Liska <mliska@suse.cz>
6276 * gcov.c (output_intermediate_file): Rename
6277 function_info::line_next to next_file_fn.
6278 (process_file): Likewise.
6279 (read_graph_file): Likewise.
6280 (accumulate_line_counts): Likewise.
6281 (output_lines): Likewise.
6283 2016-08-05 Richard Biener <rguenther@suse.de>
6285 * tree-ssa-threadupdate.c (thread_block_1): Remove unnecessary
6286 restriction on threading to a loop header.
6288 2016-08-05 Richard Biener <rguenther@suse.de>
6290 * tree-cfgcleanup.c (tree_forwarder_block_p): Use bb_loop_header_p.
6291 * cfghooks.c (force_nonfallthru): If we ended up splitting a latch
6292 adjust loop info accordingly.
6294 2016-08-05 Kugan Vivekanandarajah <kuganv@linaro.org>
6296 * tree-vrp.c (extract_range_basic): Check cfun->after_inlining
6297 before folding call to __builtin_constant_p with parameters to false.
6299 2016-08-05 Alan Modra <amodra@gmail.com>
6301 * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Delete
6302 code accidentally committed 2016-05-02 providing class when given
6305 2016-08-04 Patrick Palka <ppalka@gcc.gnu.org>
6307 * tree-vrp.c (simplify_switch_using_ranges): Try to truncate
6308 the case label ranges that partially overlap with OP's value
6311 2016-08-04 Uros Bizjak <ubizjak@gmail.com>
6314 * config/i386/avx512fintrin.h (_mm512_cmp_epi32_mask) [!__OPTIMIZE__]:
6315 Cast builtin function result to __mmask16 instead of __mmask8.
6316 (_mm512_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.
6317 (_mm512_mask_cmp_epi32_mask) [!__OPTIMIZE__]: Ditto.
6318 (_mm512_mask_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.
6320 2016-08-04 David Malcolm <dmalcolm@redhat.com>
6322 * selftest.h (ASSERT_TRUE): Reimplement in terms of...
6323 (ASSERT_TRUE_AT): New macro.
6324 (ASSERT_FALSE): Reimplement in terms of...
6325 (ASSERT_FALSE_AT): New macro.
6326 (ASSERT_STREQ_AT): Fix typo in comment.
6328 2016-08-04 Patrick Palka <ppalka@gcc.gnu.org>
6330 * gimple.c (preprocess_case_label_vec_for_gimple): When the case
6331 labels are exhaustive, designate the label with the widest
6332 range to be the default label.
6334 2016-08-04 Andrew Pinski <apinski@cavium.com>
6336 * config/aarch64/aarch64.c (thunderx_vector_cost): New variable.
6337 (thunderx_tunings): Use thunderx_vector_cost instead of
6338 generic_vector_cost.
6340 2016-08-04 Martin Liska <mliska@suse.cz>
6342 * gcov.c (main): Fix GNU coding style.
6343 (output_intermediate_file): Likewise.
6344 (process_file): Likewise.
6345 (generate_results): Likewise.
6346 (release_structures): Likewise.
6347 (create_file_names): Likewise.
6348 (find_source): Likewise.
6349 (read_graph_file): Likewise.
6350 (find_exception_blocks): Likewise.
6351 (canonicalize_name): Likewise.
6352 (make_gcov_file_name): Likewise.
6353 (mangle_name): Likewise.
6354 (accumulate_line_counts): Likewise.
6355 (output_branch_count): Likewise.
6356 (read_line): Likewise.
6358 2016-08-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
6360 PR rtl-optimization/71779
6361 * emit-rtl.c (set_reg_attrs_from_value): Only propagate REG_POINTER,
6362 if the value was sign-extended according to POINTERS_EXTEND_UNSIGNED
6363 or if it was truncated.
6365 PR rtl-optimization/70903
6366 * cse.c (cse_insn): If DEST is a paradoxical SUBREG, don't record DEST.
6368 2016-08-04 Kugan Vivekanandarajah <kuganv@linaro.org>
6370 * tree-inline.c (remap_ssa_name): Check for POINTER_TYPE_P before
6371 accessing SSA_NAME_PTR_INFO.
6373 2016-08-04 Georg-Johann Lay <avr@gjlay.de>
6376 * common/config/avr/avr-common.c (avr_option_optimization_table)
6377 [OPT_LEVELS_ALL]: Turn off -fcaller-saves.
6379 2016-08-04 Georg-Johann Lay <avr@gjlay.de>
6382 * config/avr/avr.md: New pattern to work around do_store_flag
6383 generating shift instructions for bit extractions.
6385 2016-08-04 Kugan Vivekanandarajah <kuganv@linaro.org>
6387 * tree-vrp.c (set_value_range): Use vrp_equiv_obstack with
6389 (add_equivalence): Likewise.
6390 (get_value_range): Allocate value range with vrp_value_range_pool.
6391 (vrp_initialize): Initialize vrp_equiv_obstack for equiv allocation.
6392 (vrp_finalize): Relase vrp_equiv_obstack and vrp_value_range_pool.
6394 2016-08-03 Peter Bergner <bergner@vnet.ibm.com>
6396 * config/rs6000/rs6000.c (rs6000_option_override_internal): Make LRA
6397 the default for the rs6000 port.
6399 2016-08-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
6402 * calls.c (special_function_p): Remove special handling of
6403 "setjmp_syscall", "qsetjmp", "longjmp", "siglongjmp" and the
6404 prefix "__x". Recognize "savectx", "vfork" and "getcontext" only
6405 without prefix. Remove potentially unsafe ECF_LEAF and ECF_NORETURN.
6407 2016-08-03 Vladimir Makarov <vmakarov@redhat.com>
6410 * lra-spills.c (regno_in_use_p): Check bb and regno modification.
6411 Don't stop on regular insns.
6413 2016-08-03 Nathan Sidwell <nathan@codesourcery.com>
6415 * config/nvptx/nvptx.c (nvptx_declare_function_name): Round frame
6416 size to DImode boundary.
6417 (nvptx_propagate): Likewise.
6419 2016-08-03 Alan Modra <amodra@gmail.com>
6421 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Make scalar
6422 float access depend on TARGET_EFFICIENT_UNALIGNED_VSX.
6423 * config/rs6000/rs6000.opt (-mefficient-unaligned-vsx): Renamed
6424 from -mefficient-unaligned-vector. Note that this affects fp too.
6426 2016-08-03 Alan Modra <amodra@gmail.com>
6428 * config/rs6000/rs6000.c (rs6000_rtx_costs): Make unaligned mem
6431 2016-08-03 Alan Modra <amodra@gmail.com>
6433 * config/rs6000/rs6000.md (fix_trunc<mode>si2): Force source operand
6434 to a reg. Localize vars.
6436 2016-08-03 Alan Modra <amodra@gmail.com>
6438 * config/rs6000/rs6000.opt: Remove negatives from help strings
6441 2016-08-03 Alan Modra <amodra@gmail.com>
6443 * config/rs6000/rs6000.c (rs6000_secondary_reload_direct_move):
6444 Delete duplicated code.
6446 2016-08-02 Vladimir Makarov <vmakarov@redhat.com>
6449 * lra-spills.c (regno_in_use_p): New.
6450 (lra_final_code_change): Use it.
6452 2016-08-02 Vladimir Makarov <vmakarov@redhat.com>
6454 PR rtl-optimization/69847
6455 * lra-int.h (struct lra-reg): Use restore_rtx instead of
6457 (lra_rtx_hash): New.
6458 * lra.c (initialize_lra_reg_info_element): Use restore_rtx instead
6460 (lra_rtx_hash): Rename and move lra-remat.c::rtx_hash.
6461 * lra-remat.c (rtx_hash): Rename and Move to lra.c.
6462 * lra-spills.c (lra_final_code_change): Don't delete insn when the
6463 next insn is USE with the same reg as the current insn source.
6464 * lra-constraints.c (curr_insn_transform): Use restore_rtx instead
6466 (lra_constraints_init): Call initiate_invariants.
6467 (lra_constraints_finish): Call finish_invariants.
6468 (struct invariant, invariant_t, invariant_ptr_t): New.
6469 (const_invariant_ptr_t, invariants, invariants_pool): New.
6470 (invariant_table, invariant_hash, invariant_eq_p): New.
6471 (insert_invariant, initiate_invariants, finish_invariants): New.
6472 (clear_invariants, invalid_invariant_regs): New.
6473 (inherit_reload_reg, split_reg, fix_bb_live_info): Use restore_rtx
6474 instead of restore_regno.
6475 (invariant_p, process_invariant_for_inheritance): New.
6476 (inherit_in_ebb): Implement invariant inheritance.
6477 (lra_inheritance): Initialize and finalize invalid_invariant_regs.
6478 (remove_inheritance_pseudos): Implement undoing invariant
6480 (undo_optional_reloads, lra_undo_inheritance): Use restore_rtx
6481 instead of restore_regno.
6482 * lra-assigns.c (regno_live_length): New.
6483 (reload_pseudo_compare_func): Use regno_live_length.
6484 (assign_by_spills): Use restore_rtx instead of restore_regno.
6485 (lra_assign): Ditto. Initiate regno_live_length.
6487 2016-02-08 James Greenhalgh <james.greenhalgh@arm.com>
6489 * config/aarch64/arm_neon.h (vminnm_f64): Add back missing 'f' from
6490 __builtin_aarch64_fmindf.
6492 2016-08-02 Bin Cheng <bin.cheng@arm.com>
6494 PR tree-optimization/34114
6495 * tree-ssa-loop-niter.c (number_of_iterations_ne): Prove no-overflow
6496 information for more control IVs.
6498 2016-08-02 Bin Cheng <bin.cheng@arm.com>
6500 PR tree-optimization/34114
6501 * fold-const.c (multiple_of_p): Improve MULT_EXPR, PLUS_EXPR,
6502 PLUS_EXPR case. Handle SSA_NAME case.
6504 2016-08-02 Tamar Christina <tamar.christina@arm.com>
6506 * config/aarch64/aarch64-simd-builtins.def
6507 (__builtin_aarch64_fmindf): Change BUILTIN_VDQF to BUILTIN_VDQF_DF.
6508 (__builtin_aarch64_fmaxdf): Likewise.
6509 (__builtin_aarch64_smin_nandf): Likewise.
6510 (__builtin_aarch64_smax_nandf): Likewise.
6511 * config/aarch64/aarch64-simd.md (<fmaxmin><mode>3): Remove.
6512 * config/aarch64/aarch64.md (<fmaxmin><mode>3): Rename to...
6513 (<fmaxmin><mode>3): ...this.
6514 * config/aarch64/arm_neon.h (vmaxnm_f64): New.
6515 (vminnm_f64): Likewise.
6516 (vmin_f64): Likewise.
6517 (vmax_f64): Likewise.
6518 * config/aarch64/iterators.md (FMAXMIN): Merge with...
6519 (FMAXMIN_UNS): ...this.
6520 (fmaxmin): Merged with
6521 (fmaxmin_op): ...this...
6522 (maxmin_uns_op): ...in to this.
6524 2016-08-01 Michael Meissner <meissner@linux.vnet.ibm.com>
6526 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
6527 Add support for vec_extract on vector float, vector int, vector
6528 short, and vector char vector types.
6529 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
6530 vector float, vector int, vector short, and vector char
6531 optimizations on 64-bit ISA 2.07 systems for both constant and
6532 variable element numbers.
6533 (rs6000_split_vec_extract_var): Likewise.
6534 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): Allow SFmode to be
6535 Altivec registers on ISA 2.07 and above.
6536 (vsx_extract_v4sf): Delete alternative that hard coded element 0,
6537 which never was matched due to the split occuring before register
6538 allocation (and the code would not have worked on little endian
6539 systems if it did match). Allow extracts to go to the Altivec
6540 registers if ISA 2.07 (power8). Change from using "" around the
6541 C++ code to using {}'s.
6542 (vsx_extract_v4sf_<mode>_load): New insn to optimize vector float
6543 vec_extracts when the vector is in memory.
6544 (vsx_extract_v4sf_var): New insn to optimize vector float
6545 vec_extracts when the element number is variable on 64-bit ISA
6547 (vsx_extract_<mode>, VSX_EXTRACT_I iterator): Add optimizations
6548 for 64-bit ISA 2.07 as well as ISA 3.0.
6549 (vsx_extract_<mode>_p9, VSX_EXTRACT_I iterator): Likewise.
6550 (vsx_extract_<mode>_p8, VSX_EXTRACT_I iterator): Likewise.
6551 (vsx_extract_<mode>_load, VSX_EXTRACT_I iterator): New insn to
6552 optimize vector int, vector short, and vector char vec_extracts
6553 when the vector is in memory.
6554 (vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): New insn to
6555 optimize vector int, vector short, and vector char vec_extracts
6556 when the element number is variable.
6558 2016-08-01 Georg-Johann Lay <avr@gjlay.de>
6561 * config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_PM): Use a value that
6562 does not overlap with other symbol flags.
6564 2016-08-01 Wilco Dijkstra <wdijkstr@arm.com>
6566 * config/aarch64/aarch64.h (aarch64_frame):
6567 Remove padding0 and hardfp_offset. Add locals_offset,
6568 initial_adjust, callee_adjust, callee_offset and final_adjust.
6569 * config/aarch64/aarch64.c (aarch64_layout_frame):
6570 Remove unused padding0 and hardfp_offset initializations.
6571 Choose frame layout and set frame variables accordingly.
6572 Use INVALID_REGNUM instead of FIRST_PSEUDO_REGISTER.
6573 (aarch64_push_regs): Use INVALID_REGNUM, not FIRST_PSEUDO_REGISTER.
6574 (aarch64_pop_regs): Likewise.
6575 (aarch64_expand_prologue): Remove all decision code, just emit
6576 prolog according to frame variables.
6577 (aarch64_expand_epilogue): Remove all decision code, just emit
6578 epilog according to frame variables.
6579 (aarch64_initial_elimination_offset): Use offset to local/arg area.
6581 2015-08-01 H.J. Lu <hongjiu.lu@intel.com>
6584 * config/i386/i386.c (timode_scalar_chain::convert_insn): Call
6585 fix_debug_reg_uses after changing source register mode to
6586 V1TImode if source register is undefined.
6588 2015-08-01 Alan Hayward <alan.hayward@arm.com>
6590 PR tree-optimization/71818
6591 * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Don't advance IVs
6592 with non invariant evolutions
6594 2016-08-01 Georg-Johann Lay <avr@gjlay.de>
6597 * config/avr/avr.md (length) [branch]: Correct insn length
6598 attribute for forward branches.
6600 2016-08-01 Georg-Johann Lay <avr@gjlay.de>
6602 * doc/extend.texi (AVR Built-in Functions): Document
6604 * config/avr/builtins.def (NOPS): New.
6605 * config/avr/avr.c (avr_expand_nops): New static function.
6606 (avr_expand_builtin): Use it to handle AVR_BUILTIN_NOPS.
6608 2016-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6610 * config/aarch64/aarch64.c (aarch64_classify_address): Use DImode when
6611 performing aarch64_offset_7bit_signed_scaled_p check for TImode LDP/STP
6614 2016-08-01 Virendra Pathak <virendra.pathak@broadcom.com>
6616 * config/aarch64/aarch64.c (vulcan_tunings): Update
6617 vulcan L1 cache_line_size.
6619 2016-07-30 Michael Meissner <meissner@linux.vnet.ibm.com>
6621 * config/rs6000/rs6000-protos.h (rs6000_adjust_vec_address): New
6622 function that takes a vector memory address, a hard register, an
6623 element number and a temporary base register, and recreates an
6624 address that points to the appropriate element within the vector.
6625 * config/rs6000/rs6000.c (rs6000_adjust_vec_address): Likewise.
6626 (rs6000_split_vec_extract_var): Add support for the target of a
6627 vec_extract with variable element number being a scalar memory
6629 (rtx_is_swappable_p): VLSO insns (UNSPEC_VSX_VSLOW) are not
6631 * config/rs6000/vsx.md (vsx_extract_<mode>_load): Replace
6632 vsx_extract_<mode>_load insn with a new insn that optimizes
6633 storing either element to a memory location, using scratch
6634 registers to pick apart the vector and reconstruct the address.
6635 (vsx_extract_<P:mode>_<VSX_D:mode>_load): Likewise.
6636 (vsx_extract_<mode>_store): Rework alternatives to more correctly
6637 support Altivec registers. Add support for ISA 3.0 Altivec d-form
6639 (vsx_extract_<mode>_var): Add support for extracting a variable
6640 element number from memory.
6642 2016-07-29 Georg-Johann Lay <avr@gjlay.de>
6644 * config/avr/avr.c (avr_out_compare): Use const0_rtx instead of 0
6645 when testing for compares against constants of the form 0xabab.
6647 2016-07-29 Bin Cheng <bin.cheng@arm.com>
6649 PR tree-optimization/57558
6650 * tree-vect-loop-manip.c (vect_create_cond_for_niters_checks): New
6652 (vect_loop_versioning): Support versioning with niter assumptions.
6653 * tree-vect-loop.c (tree-ssa-loop.h): Include header file.
6654 (vect_get_loop_niters): New parameter. Reimplement to support
6655 assumptions in loop niter info.
6656 (vect_analyze_loop_form_1, vect_analyze_loop_form): Ditto.
6657 (new_loop_vec_info): Init LOOP_VINFO_NITERS_ASSUMPTIONS.
6658 (vect_estimate_min_profitable_iters): Use LOOP_REQUIRES_VERSIONING.
6659 Support loop versioning for niters.
6660 * tree-vectorizer.c (tree-ssa-loop-niter.h): Include header file.
6661 (vect_free_loop_info_assumptions): New function.
6662 (vectorize_loops): Free loop niter info for loops with flag
6663 LOOP_F_ASSUMPTIONS set if vectorization failed.
6664 * tree-vectorizer.h (struct _loop_vec_info): New field
6665 num_iters_assumptions.
6666 (LOOP_VINFO_NITERS_ASSUMPTIONS): New macro.
6667 (LOOP_REQUIRES_VERSIONING_FOR_NITERS): New macro.
6668 (LOOP_REQUIRES_VERSIONING): New macro.
6669 (vect_free_loop_info_assumptions): New decl.
6671 2016-07-29 Bin Cheng <bin.cheng@arm.com>
6673 * cfgloop.h (struct loop): New field constraints.
6674 (LOOP_C_INFINITE, LOOP_C_FINITE): New macros.
6675 (loop_constraint_set, loop_constraint_clr, loop_constraint_set_p): New
6677 * cfgloop.c (alloc_loop): Initialize new field.
6678 * cfgloopmanip.c (copy_loop_info): Copy constraints.
6679 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions):
6680 Adjust niter analysis wrto loop constraints.
6681 * doc/loop.texi (@node Number of iterations): Add description for loop
6684 2016-07-29 Marek Polacek <polacek@redhat.com>
6687 * config/i386/i386.c (ix86_expand_args_builtin): Add break.
6688 (ix86_expand_round_builtin): Likewise.
6690 2016-07-29 Segher Boessenkool <segher@kernel.crashing.org>
6691 Georg-Johann Lay <avr@gjlay.de>
6693 PR rtl-optimization/71976
6694 * combine.c (get_last_value): Return 0 if the argument for which
6695 the function is called has a wider mode than the recorded value.
6697 2016-07-29 Marek Polacek <polacek@redhat.com>
6700 * config/rs6000/rs6000.c (altivec_expand_ld_builtin): Add break.
6701 (altivec_expand_st_builtin): Likewise.
6703 2016-07-29 Georg-Johann Lay <avr@gjlay.de>
6705 * config/avr/avr.md (addqi3) [cc]: Revert glitch in insn attribute
6706 introduced in r238381.
6708 2016-07-29 Kugan Vivekanandarajah <kuganv@linaro.org>
6711 * tree-vrp.c (extract_range_from_binary_expr_1): In case of signed
6712 & sign-bit-CST, generate [-INF, 0] instead of [-INF, INF].
6714 2016-07-28 Michael Meissner <meissner@linux.vnet.ibm.com>
6716 * config/rs6000/rs6000-protos.h (rs6000_split_vec_extract_var):
6718 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
6719 Add support for vec_extract of vector double or vector long having
6720 a variable element number on 64-bit ISA 2.07 systems or newer.
6721 * config/rs6000/rs6000.c (rs6000_expand_vector_extract):
6723 (rs6000_split_vec_extract_var): New function to split a
6724 vec_extract built-in function with variable element number.
6725 (rtx_is_swappable_p): Variable vec_extracts and shifts are not
6727 * config/rs6000/vsx.md (UNSPEC_VSX_VSLO): New unspec.
6728 (UNSPEC_VSX_EXTRACT): Likewise.
6729 (vsx_extract_<mode>, VSX_D iterator): Fix constraints to allow
6730 direct move instructions to be generated on 64-bit ISA 2.07
6731 systems and newer, and to take advantage of the ISA 3.0 MFVSRLD
6733 (vsx_vslo_<mode>): New insn to do VSLO on V2DFmode and V2DImode
6734 arguments for vec_extract variable element.
6735 (vsx_extract_<mode>_var, VSX_D iterator): New insn to support
6736 vec_extract with variable element on V2DFmode and V2DImode
6738 * config/rs6000/rs6000.h (TARGET_VEXTRACTUB): Remove
6739 -mupper-regs-df requirement, since it isn't needed.
6740 (TARGET_DIRECT_MOVE_64BIT): New macro to say whether we can
6741 do direct moves on 64-bit systems, which allows optimization of
6742 vec_extract on 64-bit ISA 2.07 systems and newer.
6744 2016-07-28 Kristina Martsenko <kristina.martsenko@arm.com>
6745 2016-07-28 Wilco Dijkstra <wdijkstr@arm.com>
6747 * config/aarch64/aarch64.md
6748 (zero_extend<SHORT:mode><GPI:mode>2_aarch64): Change output
6750 (<optab>qihi2_aarch64): Likewise, and split into two.
6751 (extendqihi2_aarch64): New.
6752 (zero_extendqihi2_aarch64): New.
6753 * config/aarch64/iterators.md (ldrxt): Remove.
6754 * config/aarch64/aarch64.c (aarch64_rtx_costs): Change cost of
6757 2016-07-28 Kristina Martsenko <kristina.martsenko@arm.com>
6759 * config/aarch64/aarch64.c (aarch64_rtx_costs): Fix cost of zero extend.
6761 2016-07-28 Wilco Dijkstra <wdijkstr@arm.com>
6763 * config/aarch64/aarch64.c (aarch64_pushwb_pair_reg): Rename.
6764 (aarch64_push_reg): New function to push 1 or 2 registers.
6765 (aarch64_pop_reg): New function to pop 1 or 2 registers.
6766 (aarch64_expand_prologue): Use aarch64_push_regs.
6767 (aarch64_expand_epilogue): Use aarch64_pop_regs.
6769 2016-07-28 Yuri Rumyantsev <ysrumyan@gmail.com>
6771 PR tree-optimization/71734
6772 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Pass value of safelen
6773 attribute instead of REF_LOOP and use it.
6774 (ref_indep_loop_p_2): Use SAFELEN argument instead of REF_LOOP and
6775 set it for Loops having non-zero safelen attribute.
6776 (ref_indep_loop_p): Pass zero as initial value for safelen.
6778 2016-07-28 Ilya Enkovich <ilya.enkovich@intel.com>
6782 * tree-chkp.c (chkp_retbnd_call_by_val): Check for instrumentation
6783 call using chkp_gimple_call_builtin_p.
6784 (chkp_copy_bounds_for_assign): Likewise.
6786 2016-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6788 * config/alpha/alpha.c (alpha_adjust_cost): Adjust.
6789 * config/arm/arm-protos.h (struct tune_params): Likewise.
6790 * config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
6791 (cortex_a9_sched_adjust_cost): Likewise.
6792 (fa726te_sched_adjust_cost): Likewise.
6793 (arm_adjust_cost): Likewise.
6794 * config/bfin/bfin.c (bfin_adjust_cost): Likewise.
6795 * config/c6x/c6x.c (c6x_adjust_cost): Likewise.
6796 * config/epiphany/epiphany.c (epiphany_adjust_cost): Likewise.
6797 * config/i386/i386.c (ix86_adjust_cost): Likewise.
6798 * config/ia64/ia64.c: Likewise.
6799 * config/m68k/m68k.c: Likewise.
6800 * config/mep/mep.c (mep_adjust_cost): Likewise.
6801 * config/microblaze/microblaze.c (microblaze_adjust_cost):
6803 * config/mips/mips.c (mips_adjust_cost): Likewise.
6804 * config/mn10300/mn10300.c (mn10300_adjust_sched_cost):
6806 * config/pa/pa.c (pa_adjust_cost): Likewise.
6807 * config/rs6000/rs6000.c (rs6000_adjust_cost): Likewise.
6808 (rs6000_debug_adjust_cost): Likewise.
6809 * config/sh/sh.c (sh_adjust_cost): Likewise.
6810 * config/sparc/sparc.c (supersparc_adjust_cost): Likewise.
6811 (hypersparc_adjust_cost): Likewise.
6812 (sparc_adjust_cost): Likewise.
6813 * config/spu/spu.c (spu_sched_adjust_cost): Likewise.
6814 * config/tilegx/tilegx.c (tilegx_sched_adjust_cost): Likewise.
6815 * config/tilepro/tilepro.c (tilepro_sched_adjust_cost):
6817 * config/visium/visium.c (visium_adjust_cost): Likewise.
6818 * doc/tm.texi: Regenerate.
6819 * haifa-sched.c (dep_cost_1): Adjust.
6820 * target.def: Merge adjust_cost and adjust_cost_2.
6822 2016-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6824 * haifa-sched.c (add_to_speculative_block): Make twins a vector.
6826 2016-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6828 * store-motion.c (struct st_expr): Make pattern_regs a vector.
6829 (extract_mentioned_regs): Append to a vector instead of
6830 returning a rtx_expr_list.
6831 (st_expr_entry): Adjust.
6832 (free_st_expr_entry): Likewise.
6833 (store_ops_ok): Likewise.
6834 (store_killed_in_insn): Likewise.
6835 (find_moveable_store): Likewise.
6837 2016-07-28 Martin Liska <mliska@suse.cz>
6839 PR gcov-profile/68025
6840 * tree-profile.c (tree_profiling): Respect
6841 no_profile_instrument_function attribute.
6842 * doc/extend.texi: Document no_profile_instrument_function
6845 2016-07-28 Martin Liska <mliska@suse.cz>
6847 PR rtl-optimization/70944
6848 * combine.c (make_compound_operation):
6849 Do not allow make_compound_operation for vector mode
6851 2016-07-28 Kugan Vivekanandarajah <kuganv@linaro.org>
6854 * tree-ssa-reassoc.c (maybe_optimize_range_tests): Check tcc_comparison
6855 before calling get_ops.
6857 2016-07-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
6859 * defaults.h (LOG2_BITS_PER_UNIT): Move from here...
6860 * tree.h (LOG2_BITS_PER_UNIT): ...to here.
6861 (BITS_PER_UNIT_LOG): Remove.
6862 (int_bit_position): Use LOG2_BITS_PER_UNIT instead of BITS_PER_UNIT_LOG.
6863 * expr.c (expand_assignment): Likewise.
6864 * stor-layout.c (initialize_sizetypes): Likewise.
6866 2016-07-27 Michael Meissner <meissner@linux.vnet.ibm.com>
6868 * config/rs6000/vector.md (vec_extract<mode>): Change the calling
6869 signature of rs6000_expand_vector_extract so that the element
6870 number is a RTX instead of a constant integer.
6871 * config/rs6000/rs6000-protos.h (rs6000_expand_vector_extract):
6873 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Likewise.
6874 (altivec_expand_vec_ext_builtin): Likewise.
6875 * config/rs6000/altivec.md (reduc_plus_scal_<mode>): Likewise.
6876 * config/rs6000/vsx.md (vsx_extract_<mode>): Fix spelling of the
6877 MFVSRLD instruction.
6879 2016-07-27 David Malcolm <dmalcolm@redhat.com>
6881 * input.c (get_pure_location): Move here from tree.c.
6882 (make_location): Likewise. Add header comment.
6883 (selftest::test_accessing_ordinary_linemaps): Verify
6884 pure_location_p, make_location, get_location_from_adhoc_loc and
6886 * input.h (get_pure_location): Move declaration here from tree.h.
6887 (get_finish): Likewise for inline function.
6888 (make_location): Likewise for declaration.
6889 * tree.c (get_pure_location): Move to input.c.
6890 (make_location): Likewise.
6891 * tree.h (get_pure_location): Move declaration to tree.h.
6892 (get_finish): Likewise for inline function.
6893 (make_location): Likewise for declaration.
6895 2016-07-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6898 * match.pd (x / abs(x) -> copysign(1.0, x)): New pattern.
6900 2016-07-27 David Malcolm <dmalcolm@redhat.com>
6902 * system.h (STATIC_ASSERT): Use static_assert if building
6905 2016-07-27 Richard Biener <rguenther@suse.de>
6907 PR tree-optimization/72517
6908 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
6909 Revert change to not compute read-read dependences.
6911 2016-07-27 Richard Biener <rguenther@suse.de>
6913 * predict.c (set_even_probabilities): Make nedges unsigned.
6915 2016-07-27 Martin Liska <mliska@suse.cz>
6917 * predict.c (set_even_probabilities): Handle unlikely edges.
6918 (combine_predictions_for_bb): Likewise.
6920 2016-07-26 Michael Meissner <meissner@linux.vnet.ibm.com>
6923 * config/rs6000/rs6000.c (rs6000_generate_compare): Rework
6924 __float128 support when we don't have hardware support, so that
6925 the IEEE built-in functions like isgreater, first call __unordkf3
6926 to make sure neither operand is a NaN, and if both operands are
6927 ordered, do the normal comparison.
6929 2016-07-26 Patrick Palka <ppalka@gcc.gnu.org>
6931 * tree-vrp.c (dump_asserts_for): Print loc->expr instead of
6933 (extract_code_and_val_from_cond_with_ops): Verify that name is
6934 either cond_op0 or cond_op1.
6936 2016-07-26 Patrick Palka <ppalka@gcc.gnu.org>
6938 PR tree-optimization/18046
6939 * genmodes.c (emit_mode_size_inline): Emit an assert that
6940 verifies that mode is a valid array index.
6941 (emit_mode_nuinits_inline): Likewise.
6942 (emit_mode_inner_inline): Likewise.
6943 (emit_mode_unit_size_inline): Likewise.
6944 (emit_mode_unit_precision_inline): Likewise.
6945 * tree-vrp.c: Include params.h.
6946 (find_switch_asserts): Register edge assertions for the default
6947 label which correspond to the anti-ranges of each case label.
6948 * params.def (PARAM_MAX_VRP_SWITCH_ASSERTIONS): New.
6949 * doc/invoke.texi: Document it.
6951 2016-07-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6953 * gimple-ssa-strength-reduction.c (slsr_process_phi): Remove dead
6954 and unnecessary call to gimple_bb.
6956 2016-07-26 Richard Biener <rguenther@suse.de>
6958 PR rtl-optimization/71984
6959 * simplify-rtx.c (simplify_subreg): Use GET_MODE_SIZE and prepare
6962 2016-07-26 Richard Biener <rguenther@suse.de>
6965 * expmed.c (extract_bit_field_1): Constrain the vector mode
6966 with element size matching the extraction mode size when
6967 choosing a better vector mode to do the extraction from.
6969 2016-07-26 Richard Biener <rguenther@suse.de>
6970 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6973 * match.pd ((intptr)x eq/ne CST to x eq/ne (typeof x) CST): New
6976 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6978 * tree-ssa-structalias.c (struct scc_info): Change types of
6979 members to auto_sbitmap and auto_vec.
6980 (scc_info::scc_info): New constructor.
6981 (scc_info::~scc_info): New destructor.
6982 (init_scc_info): Remove.
6983 (free_scc_info): Remove.
6984 (find_indirect_cycles): Adjust.
6985 (perform_var_substitution): Likewise.
6986 (free_var_substitution_info): Likewise.
6988 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6990 * tree-outof-ssa.c (struct elim_graph): Change type of members
6991 to auto_vec and auto_sbitmap.
6992 (elim_graph::elim_graph): New constructor.
6993 (delete_elim_graph): Remove.
6994 (expand_phi_nodes): Adjust.
6996 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6998 * tree-outof-ssa.c (struct elim_graph): Remove typedef.
6999 (new_elim_graph): Adjust.
7000 (clear_elim_graph): Likewise.
7001 (delete_elim_graph): Likewise.
7002 (elim_graph_size): Likewise.
7003 (elim_graph_add_node): Likewise.
7004 (elim_graph_add_edge): Likewise.
7005 (elim_graph_remove_succ_edge): Likewise.
7006 (eliminate_name): Likewise.
7007 (eliminate_build): Likewise.
7008 (elim_forward): Likewise.
7009 (elim_unvisited_predecessor): Likewise.
7010 (elim_backward): Likewise.
7011 (elim_create): Likewise.
7012 (eliminate_phi): Likewise.
7013 (expand_phi_nodes): Likewise.
7015 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7017 * bt-load.c (compute_out): Use auto_sbitmap class.
7018 (link_btr_uses): Likewise.
7019 * cfganal.c (mark_dfs_back_edges): Likewise.
7020 (post_order_compute): Likewise.
7021 (inverted_post_order_compute): Likewise.
7022 (pre_and_rev_post_order_compute_fn): Likewise.
7023 (single_pred_before_succ_order): Likewise.
7024 * cfgexpand.c (pass_expand::execute): Likewise.
7025 * cfgloop.c (verify_loop_structure): Likewise.
7026 * cfgloopmanip.c (fix_bb_placements): Likewise.
7027 (remove_path): Likewise.
7028 (update_dominators_in_loop): Likewise.
7029 * cfgrtl.c (break_superblocks): Likewise.
7030 * ddg.c (check_sccs): Likewise.
7031 (create_ddg_all_sccs): Likewise.
7032 * df-core.c (df_worklist_dataflow): Likewise.
7033 * dse.c (dse_step3): Likewise.
7034 * except.c (eh_region_outermost): Likewise.
7035 * function.c (thread_prologue_and_epilogue_insns): Likewise.
7036 * gcse.c (prune_expressions): Likewise.
7037 (prune_insertions_deletions): Likewise.
7038 * gimple-ssa-backprop.c (backprop::~backprop): Likewise.
7039 * graph.c (draw_cfg_nodes_no_loops): Likewise.
7040 * ira-lives.c (remove_some_program_points_and_update_live_ranges): Likewise.
7041 * lcm.c (compute_earliest): Likewise.
7042 (compute_farthest): Likewise.
7043 * loop-unroll.c (unroll_loop_constant_iterations): Likewise.
7044 (unroll_loop_runtime_iterations): Likewise.
7045 (unroll_loop_stupid): Likewise.
7046 * lower-subreg.c (decompose_multiword_subregs): Likewise.
7047 * lra-lives.c: Likewise.
7048 * lra.c (lra): Likewise.
7049 * modulo-sched.c (schedule_reg_moves): Likewise.
7050 (optimize_sc): Likewise.
7051 (get_sched_window): Likewise.
7052 (sms_schedule_by_order): Likewise.
7053 (check_nodes_order): Likewise.
7054 (order_nodes_of_sccs): Likewise.
7055 (order_nodes_in_scc): Likewise.
7056 * recog.c (split_all_insns): Likewise.
7057 * regcprop.c (pass_cprop_hardreg::execute): Likewise.
7058 * reload1.c (reload): Likewise.
7059 * sched-rgn.c (haifa_find_rgns): Likewise.
7060 (split_edges): Likewise.
7061 (compute_trg_info): Likewise.
7062 * sel-sched.c (init_seqno): Likewise.
7063 * store-motion.c (remove_reachable_equiv_notes): Likewise.
7064 * tree-into-ssa.c (update_ssa): Likewise.
7065 * tree-ssa-live.c (live_worklist): Likewise.
7066 * tree-ssa-loop-im.c (fill_always_executed_in): Likewise.
7067 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
7069 (try_peel_loop): Likewise.
7070 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop):
7072 * tree-ssa-pre.c (compute_antic): Likewise.
7073 * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
7074 * tree-stdarg.c (reachable_at_most_once): Likewise.
7075 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Likewise.
7076 * var-tracking.c (vt_find_locations): Likewise.
7078 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7080 * sbitmap.h (auto_sbitmap): New class.
7082 2016-07-26 Alan Modra <amodra@gmail.com>
7085 * config/rs6000/rs6000.c (rs6000_secondary_reload): Initialize
7088 2016-07-25 David Malcolm <dmalcolm@redhat.com>
7090 * input.c (selftest::temp_source_file::temp_source_file): Fix
7091 missing "%s" in fprintf.
7093 2016-07-25 John David Anglin <danglin@gcc.gnu.org>
7096 * cselib.c (cselib_process_insn): Invalidate argument slots for
7099 2016-07-25 Jiong Wang <jiong.wang@arm.com>
7101 * config/aarch64/arm_neon.h (vfmah_lane_f16, vfmah_laneq_f16,
7102 vfmsh_lane_f16, vfmsh_laneq_f16, vmulh_lane_f16, vmulh_laneq_f16,
7103 vmulxh_lane_f16, vmulxh_laneq_f16): New.
7105 2016-07-25 Jiong Wang <jiong.wang@arm.com>
7107 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
7108 * config/aarch64/aarch64.md (fma, fnma): Support HF.
7109 * config/aarch64/arm_fp16.h (vfmah_f16, vfmsh_f16): New.
7111 2016-07-25 Jiong Wang <jiong.wang@arm.com>
7113 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
7114 * config/aarch64/aarch64.md (<FCVT_F2FIXED:fcvt_fixed_insn>hf<mode>3):
7116 (<FCVT_FIXED2F:fcvt_fixed_insn><mode>hf3): Likewise.
7117 (add<mode>3): Likewise.
7118 (sub<mode>3): Likewise.
7119 (mul<mode>3): Likewise.
7120 (div<mode>3): Likewise.
7121 (*div<mode>3): Likewise.
7122 (<fmaxmin><mode>3): Extend to HF.
7123 * config/aarch64/aarch64-simd.md (aarch64_rsqrts<mode>): Likewise.
7124 (fabd<mode>3): Likewise.
7125 (<FCVT_F2FIXED:fcvt_fixed_insn><VHSDF_HSDF:mode>3): Likewise.
7126 (<FCVT_FIXED2F:fcvt_fixed_insn><VHSDI_HSDI:mode>3): Likewise.
7127 (aarch64_fmulx<mode>): Likewise.
7128 (aarch64_fac<optab><mode>): Likewise.
7129 (aarch64_frecps<mode>): Likewise.
7130 (<FCVT_F2FIXED:fcvt_fixed_insn>hfhi3): New.
7131 (<FCVT_FIXED2F:fcvt_fixed_insn>hihf3): Likewise.
7132 * config/aarch64/iterators.md (VHSDF_SDF): Delete.
7133 (VSDQ_HSDI): Support HI.
7134 (fcvt_target, FCVT_TARGET): Likewise.
7135 * config/aarch64/arm_fp16.h (vaddh_f16, vsubh_f16, vabdh_f16,
7136 vcageh_f16, vcagth_f16, vcaleh_f16, vcalth_f16, vceqh_f16, vcgeh_f16,
7137 vcgth_f16, vcleh_f16, vclth_f16, vcvth_n_f16_s16, vcvth_n_f16_s32,
7138 vcvth_n_f16_s64, vcvth_n_f16_u16, vcvth_n_f16_u32, vcvth_n_f16_u64,
7139 vcvth_n_s16_f16, vcvth_n_s32_f16, vcvth_n_s64_f16, vcvth_n_u16_f16,
7140 vcvth_n_u32_f16, vcvth_n_u64_f16, vdivh_f16, vmaxh_f16, vmaxnmh_f16,
7141 vminh_f16, vminnmh_f16, vmulh_f16, vmulxh_f16, vrecpsh_f16,
7144 2016-07-25 Jiong Wang <jiong.wang@arm.com>
7146 * config.gcc (aarch64*-*-*): Install arm_fp16.h.
7147 * config/aarch64/aarch64-builtins.c (hi_UP): New.
7148 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
7149 * config/aarch64/aarch64-simd.md (aarch64_frsqrte<mode>): Extend to HF
7151 (aarch64_frecp<FRECP:frecp_suffix><mode>): Likewise.
7152 (aarch64_cm<optab><mode>): Likewise.
7153 * config/aarch64/aarch64.md (<frint_pattern><mode>2): Likewise.
7154 (l<fcvt_pattern><su_optab><GPF:mode><GPI:mode>2): Likewise.
7155 (fix_trunc<GPF:mode><GPI:mode>2): Likewise.
7156 (sqrt<mode>2): Likewise.
7157 (*sqrt<mode>2): Likewise.
7158 (abs<mode>2): Likewise.
7159 (<optab><mode>hf2): New pattern for HF mode.
7160 (<optab>hihf2): Likewise.
7161 * config/aarch64/arm_neon.h: Include arm_fp16.h.
7162 * config/aarch64/iterators.md (GPF_F16, GPI_F16, VHSDF_HSDF): New.
7163 (w1, w2, v, s, q, Vmtype, V_cmp_result, fcvt_iesize, FCVT_IESIZE):
7165 * config/aarch64/arm_fp16.h: New file.
7166 (vabsh_f16, vceqzh_f16, vcgezh_f16, vcgtzh_f16, vclezh_f16, vcltzh_f16,
7167 vcvth_f16_s16, vcvth_f16_s32, vcvth_f16_s64, vcvth_f16_u16,
7168 vcvth_f16_u32, vcvth_f16_u64, vcvth_s16_f16, vcvth_s32_f16,
7169 vcvth_s64_f16, vcvth_u16_f16, vcvth_u32_f16, vcvth_u64_f16,
7170 vcvtah_s16_f16, vcvtah_s32_f16, vcvtah_s64_f16, vcvtah_u16_f16,
7171 vcvtah_u32_f16, vcvtah_u64_f16, vcvtmh_s16_f16, vcvtmh_s32_f16,
7172 vcvtmh_s64_f16, vcvtmh_u16_f16, vcvtmh_u32_f16, vcvtmh_u64_f16,
7173 vcvtnh_s16_f16, vcvtnh_s32_f16, vcvtnh_s64_f16, vcvtnh_u16_f16,
7174 vcvtnh_u32_f16, vcvtnh_u64_f16, vcvtph_s16_f16, vcvtph_s32_f16,
7175 vcvtph_s64_f16, vcvtph_u16_f16, vcvtph_u32_f16, vcvtph_u64_f16,
7176 vnegh_f16, vrecpeh_f16, vrecpxh_f16, vrndh_f16, vrndah_f16, vrndih_f16,
7177 vrndmh_f16, vrndnh_f16, vrndph_f16, vrndxh_f16, vrsqrteh_f16,
7180 2016-07-25 Jiong Wang <jiong.wang@arm.com>
7182 * config/aarch64/aarch64-simd-builtins.def (reduc_smax_scal_,
7183 reduc_smin_scal_): Use VDQIF_F16.
7184 (reduc_smax_nan_scal_, reduc_smin_nan_scal_): Use VHSDF.
7185 * config/aarch64/aarch64-simd.md (reduc_<maxmin_uns>_scal_<mode>):
7187 (aarch64_reduc_<maxmin_uns>_internal<mode>): Likewise.
7188 * config/aarch64/iterators.md (VDQIF_F16): New.
7189 (vp): Support HF modes.
7190 * config/aarch64/arm_neon.h (vmaxv_f16, vmaxvq_f16, vminv_f16,
7191 vminvq_f16, vmaxnmv_f16, vmaxnmvq_f16, vminnmv_f16, vminnmvq_f16): New.
7193 2016-07-25 Jiong Wang <jiong.wang@arm.com>
7195 * config/aarch64/aarch64-simd.md (*aarch64_mulx_elt_to_64v2df): Rename to
7196 "*aarch64_mulx_elt_from_dup<mode>".
7197 (*aarch64_mul3_elt<mode>): Update schedule type.
7198 (*aarch64_mul3_elt_from_dup<mode>): Likewise.
7199 (*aarch64_fma4_elt_from_dup<mode>): Likewise.
7200 (*aarch64_fnma4_elt_from_dup<mode>): Likewise.
7201 * config/aarch64/iterators.md (VMUL): Supprt half precision float modes.
7202 (f, fp): Support HF modes.
7203 * config/aarch64/arm_neon.h (vfma_lane_f16, vfmaq_lane_f16,
7204 vfma_laneq_f16, vfmaq_laneq_f16, vfma_n_f16, vfmaq_n_f16, vfms_lane_f16,
7205 vfmsq_lane_f16, vfms_laneq_f16, vfmsq_laneq_f16, vfms_n_f16,
7206 vfmsq_n_f16, vmul_lane_f16, vmulq_lane_f16, vmul_laneq_f16,
7207 vmulq_laneq_f16, vmul_n_f16, vmulq_n_f16, vmulx_lane_f16,
7208 vmulxq_lane_f16, vmulx_laneq_f16, vmulxq_laneq_f16): New.
7210 2016-07-25 Jiong Wang <jiong.wang@arm.com>
7212 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
7213 * config/aarch64/aarch64-simd.md (fma<mode>4, fnma<mode>4): Extend to HF
7215 * config/aarch64/arm_neon.h (vfma_f16, vfmaq_f16, vfms_f16,
7218 2016-07-25 Jiong Wang <jiong.wang@arm.com>
7220 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
7221 * config/aarch64/aarch64-simd.md
7222 (aarch64_rsqrts<mode>): Extend to HF modes.
7223 (fabd<mode>3): Likewise.
7224 (<FCVT_F2FIXED:fcvt_fixed_insn><VHSDF_SDF:mode>3): Likewise.
7225 (<FCVT_FIXED2F:fcvt_fixed_insn><VHSDI_SDI:mode>3): Likewise.
7226 (aarch64_<maxmin_uns>p<mode>): Likewise.
7227 (<su><maxmin><mode>3): Likewise.
7228 (<maxmin_uns><mode>3): Likewise.
7229 (<fmaxmin><mode>3): Likewise.
7230 (aarch64_faddp<mode>): Likewise.
7231 (aarch64_fmulx<mode>): Likewise.
7232 (aarch64_frecps<mode>): Likewise.
7233 (*aarch64_fac<optab><mode>): Rename to aarch64_fac<optab><mode>.
7234 (add<mode>3): Extend to HF modes.
7235 (sub<mode>3): Likewise.
7236 (mul<mode>3): Likewise.
7237 (div<mode>3): Likewise.
7238 (*div<mode>3): Likewise.
7239 * config/aarch64/aarch64.c (aarch64_emit_approx_div): Return false for
7241 * config/aarch64/iterators.md (VDQ_HSDI, VSDQ_HSDI): New mode iterator.
7242 * config/aarch64/arm_neon.h (vadd_f16, vaddq_f16, vabd_f16, vabdq_f16,
7243 vcage_f16, vcageq_f16, vcagt_f16, vcagtq_f16, vcale_f16, vcaleq_f16,
7244 vcalt_f16, vcaltq_f16, vceq_f16, vceqq_f16, vcge_f16, vcgeq_f16,
7245 vcgt_f16, vcgtq_f16, vcle_f16, vcleq_f16, vclt_f16, vcltq_f16,
7246 vcvt_n_f16_s16, vcvtq_n_f16_s16, vcvt_n_f16_u16, vcvtq_n_f16_u16,
7247 vcvt_n_s16_f16, vcvtq_n_s16_f16, vcvt_n_u16_f16, vcvtq_n_u16_f16,
7248 vdiv_f16, vdivq_f16, vdup_lane_f16, vdup_laneq_f16, vdupq_lane_f16,
7249 vdupq_laneq_f16, vdups_lane_f16, vdups_laneq_f16, vmax_f16, vmaxq_f16,
7250 vmaxnm_f16, vmaxnmq_f16, vmin_f16, vminq_f16, vminnm_f16, vminnmq_f16,
7251 vmul_f16, vmulq_f16, vmulx_f16, vmulxq_f16, vpadd_f16, vpaddq_f16,
7252 vpmax_f16, vpmaxq_f16, vpmaxnm_f16, vpmaxnmq_f16, vpmin_f16, vpminq_f16,
7253 vpminnm_f16, vpminnmq_f16, vrecps_f16, vrecpsq_f16, vrsqrts_f16,
7254 vrsqrtsq_f16, vsub_f16, vsubq_f16): New.
7256 2016-07-25 Jiong Wang <jiong.wang@arm.com>
7258 * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New.
7259 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
7260 * config/aarch64/aarch64-simd.md (aarch64_rsqrte<mode>): Extend to HF modes.
7261 (neg<mode>2): Likewise.
7262 (abs<mode>2): Likewise.
7263 (<frint_pattern><mode>2): Likewise.
7264 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): Likewise.
7265 (<optab><VDQF:mode><fcvt_target>2): Likewise.
7266 (<fix_trunc_optab><VDQF:mode><fcvt_target>2): Likewise.
7267 (ftrunc<VDQF:mode>2): Likewise.
7268 (<optab><fcvt_target><VDQF:mode>2): Likewise.
7269 (sqrt<mode>2): Likewise.
7270 (*sqrt<mode>2): Likewise.
7271 (aarch64_frecpe<mode>): Likewise.
7272 (aarch64_cm<optab><mode>): Likewise.
7273 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Return false for
7275 * config/aarch64/iterators.md (VHSDF, VHSDF_DF, VHSDF_SDF): New.
7276 (VDQF_COND, fcvt_target, FCVT_TARGET, hcon): Extend mode attribute to HF modes.
7278 * config/aarch64/arm_neon.h (vdup_n_f16): New.
7279 (vdupq_n_f16): Likewise.
7280 (vld1_dup_f16): Use vdup_n_f16.
7281 (vld1q_dup_f16): Use vdupq_n_f16.
7282 (vabs_f16, vabsq_f16, vceqz_f16, vceqzq_f16, vcgez_f16, vcgezq_f16,
7283 vcgtz_f16, vcgtzq_f16, vclez_f16, vclezq_f16, vcltz_f16, vcltzq_f16,
7284 vcvt_f16_s16, vcvtq_f16_s16, vcvt_f16_u16, vcvtq_f16_u16, vcvt_s16_f16,
7285 vcvtq_s16_f16, vcvt_u16_f16, vcvtq_u16_f16, vcvta_s16_f16,
7286 vcvtaq_s16_f16, vcvta_u16_f16, vcvtaq_u16_f16, vcvtm_s16_f16,
7287 vcvtmq_s16_f16, vcvtm_u16_f16, vcvtmq_u16_f16, vcvtn_s16_f16,
7288 vcvtnq_s16_f16, vcvtn_u16_f16, vcvtnq_u16_f16, vcvtp_s16_f16,
7289 vcvtpq_s16_f16, vcvtp_u16_f16, vcvtpq_u16_f16, vneg_f16, vnegq_f16,
7290 vrecpe_f16, vrecpeq_f16, vrnd_f16, vrndq_f16, vrnda_f16, vrndaq_f16,
7291 vrndi_f16, vrndiq_f16, vrndm_f16, vrndmq_f16, vrndn_f16, vrndnq_f16,
7292 vrndp_f16, vrndpq_f16, vrndx_f16, vrndxq_f16, vrsqrte_f16, vrsqrteq_f16,
7293 vsqrt_f16, vsqrtq_f16): New.
7295 2016-07-25 Jiong Wang <jiong.wang@arm.com>
7297 * config/aarch64/aarch64-simd.md
7298 (aarch64_<PERMUTE:perm_insn><PERMUTE:perm_hilo><mode>): Use VALL_F16.
7299 (aarch64_ext<mode>): Likewise.
7300 (aarch64_rev<REVERSE:rev_op><mode>): Likewise.
7301 * config/aarch64/aarch64.c (aarch64_evpc_trn, aarch64_evpc_uzp,
7302 aarch64_evpc_zip, aarch64_evpc_ext, aarch64_evpc_rev): Support V4HFmode
7304 * config/aarch64/arm_neon.h (__INTERLEAVE_LIST): Support float16x4_t,
7306 (__aarch64_vdup_lane_f16, __aarch64_vdup_laneq_f16,
7307 __aarch64_vdupq_lane_f16, __aarch64_vdupq_laneq_f16, vbsl_f16,
7308 vbslq_f16, vdup_n_f16, vdupq_n_f16, vdup_lane_f16, vdup_laneq_f16,
7309 vdupq_lane_f16, vdupq_laneq_f16, vduph_lane_f16, vduph_laneq_f16,
7310 vext_f16, vextq_f16, vmov_n_f16, vmovq_n_f16, vrev64_f16, vrev64q_f16,
7311 vtrn1_f16, vtrn1q_f16, vtrn2_f16, vtrn2q_f16, vtrn_f16, vtrnq_f16,
7312 vuzp1_f16, vuzp1q_f16, vuzp2_f16, vuzp2q_f16, vzip1_f16, vzip2q_f16):
7314 (vmov_n_f16): Reimplement using vdup_n_f16.
7315 (vmovq_n_f16): Reimplement using vdupq_n_f16..
7317 2016-07-25 Jiong Wang <jiong.wang@arm.com>
7319 * config/aarch64/aarch64.c (aarch64_add_constant): New parameter
7320 "frame_related_p". Generate CFA annotation when it's necessary.
7321 (aarch64_expand_prologue): Use aarch64_add_constant.
7322 (aarch64_expand_epilogue): Likewise.
7323 (aarch64_output_mi_thunk): Pass "false" when calling
7324 aarch64_add_constant.
7326 2016-07-25 Jiong Wang <jiong.wang@arm.com>
7328 * config/aarch64/aarch64.c (aarch64_add_constant): Optimize instruction
7331 2016-07-25 Jiong Wang <jiong.wang@arm.com>
7333 * config/aarch64/aarch64.c (aarch64_add_constant): New parameter "mode".
7334 Use aarch64_internal_mov_immediate instead of aarch64_build_constant.
7335 (aarch64_output_mi_thunk): Pass Pmode when calling aarch64_add_constant.
7336 (aarch64_build_constant): Delete.
7338 2016-07-25 Alexander Monakov <amonakov@ispras.ru>
7341 2016-07-20 Alexander Monakov <amonakov@ispras.ru>
7343 * config/nvptx/nvptx.c (nvptx_option_override): Do not set
7344 flag_toplevel_reorder.
7346 2016-07-25 Richard Biener <rguenther@suse.de>
7348 * cgraph.c (cgraph_node::verify_node): Compare against builtin
7349 by using DECL_BUILT_IN_CLASS and DECL_FUNCTION_CODE.
7350 * tree-chkp.c (chkp_gimple_call_builtin_p): Likewise.
7351 * tree-streamer.h (streamer_handle_as_builtin_p): Remove.
7352 (streamer_get_builtin_tree): Likewise.
7353 (streamer_write_builtin): Likewise.
7354 * lto-streamer.h (LTO_builtin_decl): Remove.
7355 * lto-streamer-in.c (lto_read_tree_1): Remove assert.
7356 (lto_input_scc): Remove LTO_builtin_decl handling.
7357 (lto_input_tree_1): Liekwise.
7358 * lto-streamer-out.c (lto_output_tree_1): Remove special
7359 handling of builtins.
7360 (DFS::DFS): Likewise.
7361 * tree-streamer-in.c (streamer_get_builtin_tree): Remove.
7362 * tree-streamer-out.c (pack_ts_function_decl_value_fields): Remove
7364 (streamer_write_builtin): Remove.
7366 2016-07-25 Martin Liska <mliska@suse.cz>
7368 * lto-cgraph.c (input_symtab): Don't call get_working_sets
7369 if flag_auto_profile is set to true.
7371 2016-07-25 Martin Liska <mliska@suse.cz>
7373 PR gcov-profile/71868
7374 * cfgloopanal.c (expected_loop_iterations_unbounded): When we
7375 have a function with multiple latches, count them all.
7377 2016-07-25 Martin Liska <mliska@suse.cz>
7379 * tree-ssa-loop-niter.c (loop_only_exit_p): Release body array.
7381 2016-07-25 Martin Liska <mliska@suse.cz>
7383 PR tree-optimization/71987
7384 * tree-ssa-reassoc.c (maybe_optimize_range_tests): Call get_ops
7385 just for SSA_NAMEs. Fix GNU coding style.
7387 2016-07-25 Martin Liska <mliska@suse.cz>
7389 PR gcov-profile/64874
7390 * gcov-io.h: Update command about file format.
7391 * gcov-iov.c (main): Adapt the numbering scheme.
7393 2016-07-24 Kugan Vivekanandarajah <kuganv@linaro.org>
7396 * tree-ssa-reassoc.c (optimize_vec_cond_expr): Handle tcc_compare stmt
7397 whose result is used in PHI.
7398 (final_range_test_p): Likewise.
7399 (maybe_optimize_range_tests): Likewise.
7401 2016-07-22 Michael Meissner <meissner@linux.vnet.ibm.com>
7403 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
7404 Reformat two multi-line strings.
7406 2016-07-22 Martin Sebor <msebor@redhat.com>
7408 * doc/extend.texi (Compound Literals): Add '@' missed in last commit.
7410 2016-07-22 Martin Sebor <msebor@redhat.com>
7413 * doc/extend.texi (Compound Literals): Correct and clarify.
7414 (Cast to Union): Same.
7416 2016-07-22 Kelvin Nilsen <kelvin@gcc.gnu.org>
7418 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
7419 comments to explain why certain error messages make mention of
7420 undocumented options.
7421 (rs6000_invalid_builtin): Change error messages to replace mention
7422 of undocumented options with mention of the -mcpu=power9 option
7423 that enables those undocumented options.
7424 * config/rs6000/rs6000.h (MASK_FLOAT128): New macro.
7425 (RS6000_BTM_FLOAT128): Use the new MASK_FLOAT128 macro in the
7426 definition of this macro to correct an existing error.
7427 * config/rs6000/rs6000.opt: Add the Undocumented qualifier to the
7428 mpower9-fusion, mpower9-vector, mpower9-dform, and mmodulo entries.
7429 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Modify
7430 descriptions of built-in functions so that they depend on
7431 -mcpu=power9 instead of on the corresponding undocumented flags.
7432 * doc/invoke.texi (Option Summary): Remove all mention of newly
7434 (IBM RS/6000 and PowerPC Options): Likewise.
7435 * doc/md.texi (Constraints for Particuliar Machines): Remove all
7436 mention of newly undocumented flags.
7438 2016-07-22 Evgeny Stupachenko <evstupac@gmail.com>
7440 * ipa-cp.c (determine_versionability): Do not create constprop clones,
7441 when target_clones attribute is set.
7443 2016-07-22 Bin Cheng <bin.cheng@arm.com>
7445 * common.opt (funsafe-loop-optimizations): Mark ignore.
7446 * doc/invoke.texi (funsafe-loop-optimizations): Remove.
7447 * loop-iv.c (get_simple_loop_desc): Remove unsafe-loop-optimizations
7449 * tree-ssa-loop-niter.c (finite_loop_p): Ditto.
7450 * config/bfin/bfin.c (bfin_can_use_doloop_p): Ditto.
7452 2016-07-22 Bin Cheng <bin.cheng@arm.com>
7454 * tree-ssa-loop-niter.h (number_of_iterations_exit_assumptions): New
7456 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): New
7458 (number_of_iterations_exit): Warn missed loop optimization for
7459 possible infinite loops.
7461 2016-07-22 Segher Boessenkool <segher@kernel.crashing.org>
7464 * config/rs6000/rs6000.c (rs6000_file_start): Fix condition for
7465 when to emit a ".machine" pseudo-op.
7467 2016-07-22 Martin Liska <mliska@suse.cz>
7469 PR gcov-profile/69028
7470 PR gcov-profile/62047
7471 * coverage.c (coverage_compute_lineno_checksum): Do not
7472 calculate checksum for fns w/o xloc.file.
7473 (coverage_compute_profile_id): Likewise.
7475 2016-07-22 Georg-Johann Lay <avr@gjlay.de>
7477 * config/avr/avr.c (TARGET_SECONDARY_RELOAD): Remove hook define...
7478 (avr_secondary_reload): ...and implementation.
7479 (avr_adjust_insn_length) [ADJUST_LEN_LPM]: Remove handling.
7480 * config/avr/avr.md (reload_in<mode>): Remove insns.
7481 (adjust_len) [lpm]: Remove insn attribute value.
7482 * config/avr/predicates.md (flash_operand): Remove insn predicate.
7484 2016-07-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
7487 * builtin-attrs.def (ATTR_RT_NOTHROW_LEAF_LIST): New return twice
7489 * builtins.def (BUILT_IN_SETJMP): Use ATTR_RT_NOTHROW_LEAF_LIST here.
7490 * calls.c (special_function_p): Remove the special handling of the
7491 "__builtin_" prefix.
7493 2016-07-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
7496 * calls.c (gimple_maybe_alloca_call_p): New function. Return true
7497 if STMT may be an alloca call.
7498 (gimple_alloca_call_p, alloca_call_p): Return only true for the
7499 builtin alloca call.
7500 * calls.h (gimple_maybe_alloca_call_p): New function.
7501 * tree-inline.c (inline_forbidden_p_stmt): Use
7502 gimple_maybe_alloca_call_p here.
7504 2016-07-21 David Malcolm <dmalcolm@redhat.com>
7506 * spellcheck-tree.c (best_macro_match::best_macro_match):
7507 Explictly specify the template arguments when invoking the base
7508 class constructor, to help older C++ compilers.
7510 2016-07-21 Jakub Jelinek <jakub@redhat.com>
7513 * asan.c (asan_dynamic_init_call): Call asan_init_shadow_ptr_types
7514 before builtin_decl_implicit.
7516 2016-07-21 James Greenhalgh <james.greenhalgh@arm.com>
7518 * optabs.c (emit_condiitonal_move): Short circuit for identical
7521 2016-07-21 James Greenhalgh <james.greenhalgh@arm.com>
7523 * ifcvt.c (noce_if_info): New fields: speed_p, original_cost,
7524 max_seq_cost. Removed fields: then_cost, else_cost, branch_cost.
7525 (noce_conversion_profitable_p): New.
7526 (noce_try_store_flag_constants): Use it.
7527 (noce_try_addcc): Likewise.
7528 (noce_try_store_flag_mask): Likewise.
7529 (noce_try_cmove): Likewise.
7530 (noce_try_cmove_arith): Likewise.
7531 (bb_valid_for_noce_process_p): Add to the cost parameter rather than
7533 (noce_convert_multiple_sets): Move cost model to here, from...
7534 (bb_ok_for_noce_convert_multiple_sets) ...here.
7535 (noce_process_if_block): Update calls for above changes.
7536 (noce_find_if_block): Record new noce_if_info parameters.
7538 2016-07-21 James Greenhalgh <james.greenhalgh@arm.com>
7540 * target.def (max_noce_ifcvt_seq_cost): New.
7541 * doc/tm.texi.in (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Document it.
7542 * doc/tm.texi: Regenerate.
7543 * targhooks.h (default_max_noce_ifcvt_seq_cost): New.
7544 * targhooks.c (default_max_noce_ifcvt_seq_cost): New.
7545 * params.def (PARAM_MAX_RTL_IF_CONVERSION_PREDICTABLE_COST): New.
7546 (PARAM_MAX_RTL_IF_CONVERSION_UNPREDICTABLE_COST): Likewise.
7547 * doc/invoke.texi: Document new params.
7549 2016-07-21 Richard Biener <rguenther@suse.de>
7551 PR tree-optimization/71947
7552 * tree-vrp.c (extract_range_from_assert): Singleton symbolic
7553 ranges have useful limit_vr information.
7555 2016-07-21 Richard Biener <rguenther@suse.de>
7557 * function-tests.c (build_trivial_generic_function): Set
7558 BLOCK_SUPERCONTEXT of DECL_INITIAL.
7559 * omp-low.c (create_omp_child_function): Likewise.
7560 (grid_expand_target_grid_body): Likewise.
7561 * cgraphunit.c (init_lowered_empty_function): Likewise.
7562 (cgraph_node::expand_thunk): Likewise.
7563 * tree-parloops.c (create_loop_fn): Likewise.
7564 * ipa.c (cgraph_build_static_cdtor_1): Likewise.
7566 2016-07-21 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
7568 * tree-ssa-strlen.c (strlen_dom_walker::before_dom_children): Fix typo
7571 2016-07-21 Georg-Johann Lay <avr@gjlay.de>
7573 * config/avr/avr.md (any_extract, any_shiftrt): New code iterators.
7574 (*insv.extract, *insv.shiftrt, *insv.not-bit.0, *insv.not-bit.7)
7575 (*insv.xor-extract, *insv.xor1-bit.0): New insns.
7576 (adjust_len) [insv_notbit, insv_notbit_0, insv_notbit_7]: New
7577 values for insn attribute.
7578 * config/avr/avr.c (avr_out_insert_notbit): New function.
7579 (avr_adjust_insn_length): Handle ADJUST_LEN_INSV_NOTBIT,
7580 ADJUST_LEN_INSV_NOTBIT_0/_7.
7581 * config/avr/avr-protos.h (avr_out_insert_notbit): New proto.
7583 2016-07-21 Bin Cheng <bin.cheng@arm.com>
7585 * tree-chrec.c (convert_affine_scev): New parameter. Pass new arg.
7586 (chrec_convert_1, chrec_convert): Ditto.
7587 * tree-chrec.h (chrec_convert, convert_affine_scev): New parameter.
7588 * tree-scalar-evolution.c (interpret_rhs_expr): Pass new arg.
7589 * tree-vrp.c (adjust_range_with_scev): Ditto.
7590 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): Ditto.
7591 (scev_var_range_cant_overflow): New function.
7592 (scev_probably_wraps_p): New parameter. Call above function.
7593 * tree-ssa-loop-niter.h (scev_probably_wraps_p): New parameter.
7595 2016-07-21 Bin Cheng <bin.cheng@arm.com>
7597 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up
7598 by removing computation of may_be_zero.
7600 2016-07-21 Jakub Jelinek <jakub@redhat.com>
7602 * tree-object-size.c (unknown): Use HOST_WIDE_INT_M1U instead of -1.
7604 2016-07-21 Andrew Sutton <andrew.n.sutton@gmail.com>
7606 Improving concepts performance and diagnostics.
7607 * timevar.def (TV_CONSTRAINT_SAT, TV_CONSTRAINT_SUB): New time vars
7608 for constraint satisfaction and subsumption.
7609 * timevar.h (auto_timevar): New constructor that matches the push/pop
7610 pattern of usage in pt.c.
7612 2016-07-20 Uros Bizjak <ubizjak@gmail.com>
7614 * hwint.h (HOST_WIDE_INT_0): New define.
7615 (HOST_WIDE_INT_0U): Ditto.
7616 * double-int.c: Use HOST_WIDE_INT_0 instead of (HOST_WIDE_INT) 0.
7617 * dse.c: Use HOST_WIDE_INT_0U instead of (unsigned HOST_WIDE_INT) 0.
7618 * simplify-rtx.c: Ditto.
7619 * tree-object-size.c: Ditto.
7621 2016-07-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7623 * config/s390/s390.c (s390_encode_section_info): Remove mode size
7626 2016-07-20 Uros Bizjak <ubizjak@gmail.com>
7628 * cse.c: Use HOST_WIDE_INT_M1 instead of ~(HOST_WIDE_INT) 0.
7629 * combine.c: Use HOST_WIDE_INT_M1U instead of
7630 ~(unsigned HOST_WIDE_INT) 0.
7631 * double-int.h: Ditto.
7633 * dwarf2asm.c:Ditto.
7635 * genmodes.c: Ditto.
7637 * read-rtl.c: Ditto.
7638 * tree-ssa-loop-ivopts.c: Ditto.
7639 * tree-ssa-loop-prefetch.c: Ditto.
7640 * tree-vect-generic.c: Ditto.
7641 * tree-vect-patterns.c: Ditto.
7644 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
7646 * gcc/config/avr.c (avr_legitimize_address) [AVR_TINY]: Force
7647 constant addresses outside [0,0xc0] into a register.
7648 (avr_out_movhi_r_mr_reg_no_disp_tiny): Pass insn. And handle
7649 cases where the base address register is unused after.
7650 (avr_out_movhi_r_mr_reg_disp_tiny): Same.
7651 (avr_out_movhi_mr_r_reg_disp_tiny): Same.
7652 (avr_out_store_psi_reg_disp_tiny): Same.
7654 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
7656 Implement attribute progmem on reduced Tiny cores by adding
7657 flash offset 0x4000 to respective symbols.
7660 * doc/extend.texi (AVR Variable Attributes) [progmem]: Add
7661 documentation how it works on reduced Tiny cores.
7662 (AVR Named Address Spaces): No support for reduced Tiny.
7663 * config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_PM): New macro.
7664 (avr_address_tiny_pm_p): New static function.
7665 (avr_print_operand_address) [AVR_TINY]: Add AVR_TINY_PM_OFFSET
7666 if the address is in progmem.
7667 (avr_assemble_integer): Same.
7668 (avr_encode_section_info) [AVR_TINY]: Set AVR_SYMBOL_FLAG_TINY_PM
7669 for symbol_ref in progmem.
7670 * config/avr/avr.h (AVR_TINY_PM_OFFSET): New macro.
7671 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it instead of
7672 magic 0x4000 when built-in def'ing __AVR_TINY_PM_BASE_ADDRESS__.
7674 2016-07-20 Patrick Palka <ppalka@gcc.gnu.org>
7676 * configure.ac (thin_archive_support): New variable. AC_SUBST it.
7677 * configure: Regenerate.
7678 * Makefile.in (THIN_ARCHIVE_SUPPORT): New variable.
7679 (USE_THIN_ARCHIVES): New variable.
7680 (libbackend.a): If USE_THIN_ARCHIVES then pass T to ar to build
7681 this archive as a thin archive.
7683 2016-07-20 David Malcolm <dmalcolm@redhat.com>
7685 * diagnostic-show-locus.c (diagnostic_show_locus): If this is the
7686 same location as last time, don't skip if we have fix-it hints.
7687 Clarify the skipping logic by converting it from one "if" clause
7688 to repeated "if" clauses.
7689 * spellcheck-tree.c: Include "cpplib.h".
7690 (find_closest_macro_cpp_cb): Move here from c/c-decl.c.
7691 (best_macro_match::best_macro_match): New constructor.
7692 * spellcheck-tree.h (struct edit_distance_traits<cpp_hashnode *>):
7693 Move here from c/c-decl.c.
7694 (class best_macro_match): Move here from c/c-decl.c, converting
7695 from a typedef to a subclass, gaining a ctor.
7697 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
7699 * config/avr/avr-protos.h (avr_addr_space_supported_p): New prototype.
7700 * config/avr/avr.c (TARGET_ADDR_SPACE_DIAGNOSE_USAGE): New hook
7702 (avr_addr_space_diagnose_usage): ...and implementation.
7703 (avr_addr_space_supported_p): New function.
7704 (avr_nonconst_pointer_addrspace, avr_pgm_check_var_decl): Only
7705 report bad address space usage if that space is supported.
7706 (avr_insert_attributes): Same. No more complain about unsupported
7708 * config/avr/avr-c.c (tm_p.h): Include it.
7709 (avr_cpu_cpp_builtins): Only define addr-space related built-in
7710 macro if avr_addr_space_supported_p.
7712 2016-07-20 Alexander Monakov <amonakov@ispras.ru>
7714 * config/nvptx/nvptx.c (nvptx_option_override): Do not set
7715 flag_toplevel_reorder.
7717 2016-07-20 David Malcolm <dmalcolm@redhat.com>
7719 * gcc-rich-location.c
7720 (gcc_rich_location::add_fixit_misspelled_id): New overload, taking
7722 * gcc-rich-location.h
7723 (gcc_rich_location::add_fixit_misspelled_id): Likewise.
7725 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
7727 * target.def (addr_space): Add new diagnose_usage to hook vector.
7728 * targhooks.c (default_addr_space_diagnose_usage): Add default
7729 implementation and...
7730 * targhooks.h (default_addr_space_diagnose_usage): ... its prototype.
7731 * c/c-parser.c (c_lex_one_token) [CPP_NAME]: If the token
7732 is some address space, call targetm.addr_space.diagnose_usage.
7733 * doc/tm.texi.in (Named Address Spaces): Add anchor for
7734 TARGET_ADDR_SPACE_DIAGNOSE_USAGE documentation.
7735 * doc/tm.texi: Regenerate.
7737 2016-07-20 Martin Liska <mliska@suse.cz>
7740 * graphite-isl-ast-to-gimple.c (later_of_the_two):
7741 Properly handly PHI stmts.
7743 2016-07-20 Bin Cheng <bin.cheng@arm.com>
7745 PR tree-optimization/71503
7746 PR tree-optimization/71683
7747 * tree-if-conv.c (gen_phi_arg_condition): Record true predicate
7750 2016-07-20 Martin Liska <mliska@suse.cz>
7752 * doc/invoke.texi (-fipa-ra): Document when the option is
7753 disabled. Fix a typo.
7755 2016-07-20 Martin Liska <mliska@suse.cz>
7757 * Makefile.in: Include fibonacci_heap.c
7758 * fibonacci_heap.c: New file.
7759 * fibonacci_heap.h (fibonacci_heap::insert): Use insert_node.
7760 (fibonacci_heap::union_with): Fix deletion of the second heap.
7761 * selftest-run-tests.c (selftest::run_tests): Incorporate
7762 fibonacci heap tests.
7763 * selftest.h: Declare fibonacci_heap_c_tests.
7765 2016-07-20 Martin Liska <mliska@suse.cz>
7767 * selftest-run-tests.c (selftest::run_tests): New function.
7768 * selftest.h (sreal_c_tests): Declare.
7769 * sreal.c (sreal_verify_basics): New function.
7770 (verify_aritmetics): Likewise.
7771 (sreal_verify_arithmetics): Likewise.
7772 (verify_shifting): Likewise.
7773 (sreal_verify_shifting): Likewise.
7774 (void sreal_c_tests): Likewise.
7776 2016-07-19 Jakub Jelinek <jakub@redhat.com>
7778 PR rtl-optimization/71916
7779 * cfgrtl.c (contains_no_active_insn_p): Return false also for
7780 bb which have a single succ fake edge.
7782 2016-07-19 Aldy Hernandez <aldyh@redhat.com>
7785 * dwarf2out.c (gen_subprogram_die): Only call
7786 gen_unspecified_parameters_die while dumping early dwarf.
7788 2016-07-19 Jakub Jelinek <jakub@redhat.com>
7791 * gimple-fold.c (fold_builtin_memory_op): Use
7792 get_addr_base_and_unit_offset instead of get_ref_base_and_extent.
7794 2016-07-19 Uros Bizjak <ubizjak@gmail.com>
7796 * builtins.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1,
7797 HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1,
7798 HOST_WIDE_INT_M1 instead of (HOST_WIDE_INT) -1 and
7799 HOST_WIDE_INT_M1U instead of (unsigned HOST_WIDE_INT) -1.
7803 * double-int.c: Ditto.
7805 * dwarf2out.c: Ditto.
7808 * fold-const.c: Ditto.
7809 * function.c: Ditto.
7811 * genmodes.c: Ditto.
7815 * loop-doloop.c: Ditto.
7816 * loop-invariant.c: Ditto.
7823 * simplify-rtx.c: Ditto.
7824 * stor-layout.c: Ditto.
7826 * tree-ssa-loop-ivopts.c: Ditto.
7827 * tree-vect-generic.c: Ditto.
7828 * tree-vect-patterns.c: Ditto.
7833 * wide-int-print.cc: Ditto.
7834 * wide-int.cc: Ditto.
7835 * wide-int.h: Ditto.
7837 2016-07-19 David Malcolm <dmalcolm@redhat.com>
7839 * selftest.c (selftest::assert_streq): Handle NULL values of
7840 val_actual and val_expected.
7842 2016-07-19 Martin Jambor <mjambor@suse.cz>
7845 * trans-decl.c (gfc_generate_function_code): Use cgraph_get_create_node
7846 rather than cgraph_create_node to get a call graph node.
7848 2016-07-19 Richard Biener <rguenther@suse.de>
7850 * gimple-fold.c (get_base_constructor): Add VIEW_CONVERT case,
7851 handle all tcc_constant bases and valueize SSA names.
7852 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Handle
7855 2016-07-19 David Malcolm <dmalcolm@redhat.com>
7857 * function-tests.c (selftest::verify_three_block_rtl_cfg): Verify
7858 the flags of the exit block and bb2, not just the entry block.
7860 2016-07-19 Richard Biener <rguenther@suse.de>
7862 PR tree-optimization/71901
7863 * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
7864 align member, group stuff with the bitfield.
7865 (vn_ref_op_align_unit): New inline.
7866 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): For ARRAY_REFs
7867 record element alignment and operand 3 unchanged.
7868 (ao_ref_init_from_vn_reference): Adjust.
7869 (valueize_refs_1): Likewise.
7870 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
7872 2016-07-19 Richard Biener <rguenther@suse.de>
7874 PR tree-optimization/71908
7875 * tree-ssa-structalias.c (get_constraint_for_component_ref): Handle
7876 symbolic constants in a more reliable way.
7878 2016-07-19 Ilya Enkovich <ilya.enkovich@intel.com>
7880 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Update
7882 (vect_update_inits_of_drs): Likewise.
7883 (vect_create_cond_for_alias_checks): Likewise.
7884 * tree-vect-loop.c (vect_get_known_peeling_cost): Likewise.
7886 2016-07-19 Richard Biener <rguenther@suse.de>
7889 * lto-streamer-out.c (DFS::DFS_write_tree_body): For blocks
7890 with an abstract origin that is not an inlined function outer
7891 scope add a self-reference as abstract origin.
7892 * tree-streamer-out.c (write_ts_block_tree_pointers): Likewise.
7894 2016-07-18 Michael Meissner <meissner@linux.vnet.ibm.com>
7897 * config/rs6000/rs6000.c (rs6000_function_value): Fix
7898 unintentional System V.4 structure return breakage for structures
7899 with a single floating point element.
7901 2016-07-18 Yuri Rumyantsev <ysrumyan@gmail.com>
7903 PR tree-optimization/71734
7904 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Add REF_LOOP argument which
7905 contains REF, use it to check safelen, assume that safelen value
7906 must be greater 1, fix style.
7907 (ref_indep_loop_p_2): Add REF_LOOP argument.
7908 (ref_indep_loop_p): Pass LOOP as additional argument to
7911 2016-07-18 Dominik Vogt <vogt@linux.vnet.ibm.com>
7913 * cfgexpand.c (expand_stack_vars): Implement synamic stack space
7914 allocation in the prologue.
7915 * explow.c (get_dynamic_stack_base): New function to return an address
7916 expression for the dynamic stack base.
7917 (get_dynamic_stack_size): New function to do the required dynamic stack
7918 space size calculations.
7919 (allocate_dynamic_stack_space): Use new functions.
7920 (align_dynamic_address): Move some code from
7921 allocate_dynamic_stack_space to new function.
7922 * explow.h (get_dynamic_stack_base, get_dynamic_stack_size): Export.
7924 2016-07-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7926 * config/s390/s390.c (s390_encode_section_info): Always set
7927 notaligned marker if mode size is 0 or no MEM_ALIGN info could be
7930 2016-07-18 Richard Biener <rguenther@suse.de>
7932 PR tree-optimization/71893
7933 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Compensate
7934 for sizetype cast added by array_ref_element_size.
7935 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
7937 2016-07-16 John David Anglin <danglin@gcc.gnu.org>
7939 * config/pa/pa.c (hppa_profile_hook): Allocate stack space for
7940 register parameters. Remove code to initialize argument pointer
7941 on TARGET_64BIT. Optimize call to _mcount when it can be reached
7942 using a pc-relative branch. Cleanup conditional code.
7943 * config/pa/pa.md (call_mcount): New expander.
7944 (call_mcount_nonpic): New insn.
7945 (call_mcount_pic): New insn and split.
7946 (call_mcount_pic_post_reload): New insn.
7947 (call_mcount_64bit): New insn and split.
7948 (call_mcount_64bit_post_reload): New insn.
7950 2016-07-15 Georg-Johann Lay <avr@gjlay.de>
7952 * config/avr/predicates.md (const_m255_to_m1_operand): New.
7953 * config/avr/constraints.md (Cn8, Ca1, Co1, Yx2): New constraints.
7954 * config/avr/avr.md (add<mode>3) <ALL1>: Fix set_vzn for +/-2.
7955 (*cmphi.zero-extend.0, *cmphi.zero-extend.1)
7956 (*usum_widenqihi3, *udiff_widenqihi3)
7957 (*addhi3_zero_extend.const): New combiner insns.
7958 (andqi3, iorqi3): Provide "l" (NO_LD_REGS) alternative if
7959 just 1 bit is affected.
7960 * config/avr/avr.c (avr_out_bitop) <QImode>: Don't access xop[3].
7961 (avr_out_compare) [EQ,NE]: Tweak comparing d-regs against -1.
7963 2016-07-15 Cesar Philippidis <cesar@codesourcery.com>
7965 * omp-low.c (lower_omp_target): Mark data clauses with
7966 GOMP_MAP_FORCE_{PRESENT,TO,FROM,TOFROM} as potentially having
7967 zero-length subarrays.
7969 2016-07-15 Richard Biener <rguenther@suse.de>
7971 PR tree-optimization/71881
7972 * tree-loop-distribution.c (destroy_loop): Remove blocks in
7973 reverse DOM order to make debug temp generation happy.
7975 2016-07-15 Richard Biener <rguenther@suse.de>
7977 PR tree-optimization/71887
7978 * tree-ssa-phiopt.c (absorbing_element_p): Add rhs arg and
7979 verify it is not zero for division / modulo handling.
7980 (value_replacement): Adjust.
7982 2016-07-15 Virendra Pathak <virendra.pathak@broadcom.com>
7983 Julian Brown <julian@codesourcery.com>
7985 * config/aarch64/aarch64-cores.def: Update vulcan COSTS.
7986 * config/aarch64/aarch64-cost-tables.h
7987 (vulcan_extra_costs): New variable.
7988 * config/aarch64/aarch64.c
7989 (vulcan_addrcost_table): Likewise.
7990 (vulcan_regmove_cost): Likewise.
7991 (vulcan_vector_cost): Likewise.
7992 (vulcan_branch_cost): Likewise.
7993 (vulcan_tunings): Likewise.
7995 2016-07-15 Alexander Monakov <amonakov@ispras.ru>
7997 * cgraphunit.c (cgraph_order_sort_kind): New entry ORDER_VAR_UNDEF.
7998 (output_in_order): Loop over undefined variables too. Output them
7999 via assemble_undefined_decl. Skip variables that correspond to hard
8000 registers or have value-exprs.
8001 * varpool.c (symbol_table::output_variables): Handle undefined
8002 variables together with defined ones.
8004 2016-07-15 Richard Biener <rguenther@suse.de>
8006 * tree-ssa-pre.c (get_representative_for): Make sure to return
8007 the value number of SSA names.
8008 (phi_translate_1): get_representative_for cannot return NULL.
8009 (do_pre_regular_insertion): Remove redundant call to
8010 fully_constant_expression.
8011 (do_pre_partial_partial_insertion): Likewise.
8013 2016-07-15 Bin Cheng <bin.cheng@arm.com>
8015 * tree-scalar-evolution.c (simple_iv_with_niters): New funcion.
8016 (derive_simple_iv_with_niters): New function.
8017 (simple_iv): Rewrite using simple_iv_with_niters.
8018 * tree-scalar-evolution.h (simple_iv_with_niters): New decl.
8019 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): New
8021 (number_of_iterations_exit): Rewrite using above function.
8022 * tree-ssa-loop-niter.h (number_of_iterations_exit_assumptions): New
8025 2016-07-15 Richard Biener <rguenther@suse.de>
8027 * config/i386/i386.c (ix86_builtin_vectorization_cost): Adjust
8030 2016-07-14 Jakub Jelinek <jakub@redhat.com>
8032 PR tree-optimization/71872
8033 * tree-data-ref.c (get_references_in_stmt): Ignore references
8034 with is_gimple_constant get_base_address.
8036 2016-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
8038 * config/arm/arm.h (TARGET_HAVE_LDACQ): Enable for ARMv8-M Mainline.
8039 (TARGET_HAVE_LDACQD): New macro.
8040 * config/arm/sync.md (atomic_loaddi): Use TARGET_HAVE_LDACQD rather
8041 than TARGET_HAVE_LDACQ.
8042 (arm_load_acquire_exclusivedi): Likewise.
8043 (arm_store_release_exclusivedi): Likewise.
8045 2016-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
8047 PR rtl-optimization/71878
8048 * lra-constraints.c (match_reload): Pass information about other
8049 output operands. Create new unique register value if matching input
8050 operand shares same register value as output operand being considered.
8051 (curr_insn_transform): Record output operands already processed.
8053 2016-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8056 PR tree-optimization/70923
8057 * tree-vect-patterns.c: Include mult-synthesis.h.
8058 (target_supports_mult_synth_alg): New function.
8059 (synth_lshift_by_additions): Likewise.
8060 (apply_binop_and_append_stmt): Likewise.
8061 (vect_synth_mult_by_constant): Likewise.
8062 (target_has_vecop_for_code): Likewise.
8063 (vect_recog_mult_pattern): Use above functions to synthesize vector
8064 multiplication by integer constants.
8066 2016-07-14 Alan Modra <amodra@gmail.com>
8068 * gcc/config/rs6000/altivec.md (altivec_mov<mode>): Disparage
8069 gpr alternatives. Correct '*' placement on Y,r alternative.
8070 Add '*' on operand 1 of r,r alternative.
8072 2016-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8074 * expmed.c (mult_variant, choose_mult_variant): Move declaration to...
8075 * expmed.h: ... Here.
8077 2016-07-14 Jan Hubicka <hubicka@ucw.cz>
8079 * gimple.h (stmt_can_terminate_bb_p): New function.
8080 * tree-cfg.c (need_fake_edge_p): Rename to ...
8081 (stmt_can_terminate_bb_p): ... this; return true if stmt can
8082 throw external; handle const and pure calls.
8083 * tree-ssa-loop-niter.c (loop_only_exit_p): Use it.
8085 2016-07-14 Richard Biener <rguenther@suse.de>
8087 PR tree-optimization/71866
8088 * tree-ssa-pre.c (get_constant_for_value_id): Remove.
8089 (do_hoist_insertion): Avoid endless recursion when we
8090 didn't insert anything because we managed to simplify
8091 things down to a constant or SSA name.
8092 (fully_constant_expression): Re-write in terms of ...
8093 * tree-ssa-sccvn.h (vn_nary_simplify): ... this. Declare.
8094 * tree-ssa-sccvn.c (vn_nary_simplify): New wrapper around
8095 vn_nary_build_or_lookup_1.
8096 (vn_nary_build_or_lookup_1): Added flag and renamed from ...
8097 (vn_nary_build_or_lookup): ... this which now wraps it.
8099 2016-07-14 Alan Modra <amodra@gmail.com>
8102 * config/rs6000/rs6000.c (rs6000_option_override_internal): Deal
8103 with p9_vector override before power9-dform override.
8105 2016-07-13 Andi Kleen <ak@linux.intel.com>
8107 * value-prof.c (gimple_value_profile_transformations): Don't run
8108 when auto_profile is on.
8110 2016-07-13 Andi Kleen <ak@linux.intel.com>
8112 * auto-profile.c (update_inlined_ind_target,
8113 afdo_indirect_call): Print information to dump file.
8115 2016-07-13 Andrew Burgess <andrew.burgess@embecosm.com>
8117 * genrecog.c (special_predicate_operand_p): New function.
8118 (predicate_name): Move function.
8119 (validate_pattern): Don't warn about missing mode for all
8120 define_special_predicate predicates.
8122 2016-07-13 Bin Cheng <bin.cheng@arm.com>
8124 * tree-vect-data-refs.c (vect_no_alias_p): New function.
8125 (vect_prune_runtime_alias_test_list): Call vect_no_alias_p to
8126 resolve alias checks which are known at compilation time.
8127 Truncate vector LOOP_VINFO_MAY_ALIAS_DDRS(loop_vinfo) if all
8128 alias checks are resolved. Move dump info for too many runtime
8129 alias checks to here...
8130 * tree-vect-loop.c (vect_analyze_loop_2): ...From here.
8132 2016-07-13 Richard Biener <rguenther@suse.de>
8134 PR tree-optimization/24574
8135 * tree-ssa-phiopt.c (absorbing_element_p): Pass in argument
8136 position and add shift, rotate, divison and modulo support
8138 (value_replacement): Pass in argument position to absorbing_element_p.
8140 2016-07-13 Ilya Enkovich <ilya.enkovich@intel.com>
8143 * ipa-inline-transform.c (inline_call): Support
8144 instrumented thunks.
8146 2016-07-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
8148 * config/arm/arm.h (TARGET_HAVE_CBZ): Define.
8149 (TARGET_IDIV): Set for all Thumb targets provided they have hardware
8151 * config/arm/arm.md (divsi3): New unpredicable alternative for ARMv8-M
8152 Baseline. Make initial alternative TARGET_32BIT only.
8153 (udivsi3): Likewise.
8154 * config/arm/thumb1.md (thumb1_cbz): New define_insn.
8155 * doc/sourcebuild.texi (arm_thumb1_cbz_ok): Document new effective
8158 2016-07-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
8160 * config/arm/arm.h (TARGET_HAVE_MOVT): Include ARMv8-M as having MOVT.
8161 * config/arm/arm.c (arm_arch_name): (const_ok_for_op): Check MOVT/MOVW
8162 availability with TARGET_HAVE_MOVT.
8163 (thumb_legitimate_constant_p): Strip the high part of a label_ref.
8164 (thumb1_rtx_costs): Also return 0 if setting a half word constant and
8165 MOVW is available and replace (unsigned HOST_WIDE_INT) INTVAL by
8167 (thumb1_size_rtx_costs): Make set of half word constant also cost 1
8168 extra instruction if MOVW is available. Use a cost variable
8169 incremented by COSTS_N_INSNS (1) when the condition match rather than
8170 returning an arithmetic expression based on COSTS_N_INSNS. Make
8171 constant with bottom half word zero cost 2 instruction if MOVW is
8173 * config/arm/arm.md (define_attr "arch"): Add v8mb.
8174 (define_attr "arch_enabled"): Set to yes if arch value is v8mb and
8175 target is ARMv8-M Baseline.
8176 (arm_movt): New unpredicable alternative for ARMv8-M Baseline.
8177 (arm_movtas_ze): Likewise.
8178 * config/arm/thumb1.md (thumb1_movdi_insn): Add ARMv8-M Baseline only
8179 alternative for constants satisfying j constraint.
8180 (thumb1_movsi_insn): Likewise.
8181 (movsi splitter for K alternative): Tighten condition to not trigger
8182 if movt is available and j constraint is satisfied.
8183 (Pe immediate splitter): Likewise.
8184 (thumb1_movhi_insn): Add ARMv8-M Baseline only alternative for
8185 constant fitting in an halfword to use MOVW.
8186 * doc/sourcebuild.texi (arm_thumb1_movt_ok): Document new ARM
8189 2016-07-13 Richard Biener <rguenther@suse.de>
8192 * gimplify.c (gimplify_modify_expr): Gimplify the RHS before
8193 gimplifying the LHS. Make sure to gimplify a returning twice
8194 call LHS without using SSA names.
8196 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8198 * tree-data-ref.c (find_data_references_in_stmt): Remove
8199 unnecessary call to vec::release.
8200 (graphite_find_data_references_in_stmt): Likewise.
8201 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): Likewise.
8202 * tree-vect-stmts.c (vectorizable_condition): Likewise.
8204 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8206 * cfgexpand.c (expand_used_vars): Make the type of a local
8208 * genmatch.c (lower_for): Likewise.
8209 * haifa-sched.c (haifa_sched_init): Likewise.
8210 (add_to_speculative_block): Likewise.
8211 (create_check_block_twin): Likewise.
8212 * predict.c (handle_missing_profiles): Likewise.
8213 * tree-data-ref.c (loop_nest_has_data_refs): Likewise.
8214 * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Likewise.
8215 * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
8217 (maybe_lower_iteration_bound): Likewise.
8218 * tree-ssa-sccvn.c (DFS): Likewise.
8219 * tree-stdarg.c (reachable_at_most_once): Likewise.
8220 * tree-vect-stmts.c (vectorizable_conversion): Likewise.
8221 (vectorizable_store): Likewise.
8223 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8225 * tree-ssa-sccvn.c (sccvn_dom_walker::~sccvn_dom_walker): remove.
8226 (sccvn_dom_walker): make cond_stack an auto_vec.
8228 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8230 * ree.c (struct ext_state): Make type of members auto_vec.
8231 (find_and_remove_re): Adjust.
8233 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8235 * cfgexpand.c (struct stack_vars_data): Make type of fields
8237 (expand_used_vars): Adjust.
8239 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8241 * ipa.c (record_cdtor_fn): Adjust.
8242 (build_cdtor_fns): Likewise.
8243 (ipa_cdtor_merge): Make static_ctors and static_dtors local
8246 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8248 * genextract.c (struct accum_extract): Add constructor and make
8252 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8254 * tree.c (struct free_lang_data_d): Add constructor and change
8255 types of members to ones that automatically manage resources.
8256 (fld_worklist_push): Adjust.
8257 (find_decls_types): Likewise.
8258 (find_decls_types_in_eh_region): Likewise.
8259 (free_lang_data_in_cgraph): Stop manually creating and
8260 destroying members of free_lang_data_d.
8262 2016-07-13 Uros Bizjak <ubizjak@gmail.com>
8264 PR rtl-optimization/68961
8265 * config/i386/sse.md (movsd/movhpd to movupd peephole2s): Add new
8266 peephole variant. Use sse_reg_operand predicates.
8268 2016-07-12 Uros Bizjak <ubizjak@gmail.com>
8270 * config/i386/predicates.md (x86_64_immediate_operand)
8271 <case CONST_INT>: Remove unneeded truncation to DImode.
8272 <case CONST>: Ditto.
8273 (x86_64_zext_immediate_operand) <case CONST>: Ditto.
8275 2016-07-12 Michael Meissner <meissner@linux.vnet.ibm.com>
8278 * config/rs6000/altivec.md (altivec_vperm_<mode>_internal):
8279 The xxperm and xxpermr instructions require that the 2nd input
8280 operand overlap with the output operand, and not the 1st.
8281 (altivec_vperm_v8hiv16qi): Likewise.
8282 (altivec_vperm_<mode>_uns_internal): Likewise.
8283 (altivec_vpermr_<mode>_internal): Likewise.
8284 (vperm_v8hiv4si): Likewise.
8285 (vperm_v16qiv8hi): Likewise.
8287 2016-07-12 Nathan Sidwell <nathan@acm.org>
8289 * config/arm/arm.c (arm_option_override): Set MASK_SINGLE_PIC_BASE
8290 when -mno-pic-data-is-text-relative is in effect, by default.
8291 * doc/invoke.texi (mpic-data-is-text-relative): Document new
8292 behavior and clarify.
8294 2016-07-12 Martin Liska <mliska@suse.cz>
8296 * params.def: Add avg-loop niter.
8297 * tree-ssa-loop-ivopts.c (avg_loop_niter): Use the param.
8298 * cfgloopanal.c (expected_loop_iterations_unbounded): Likewise.
8299 * doc/invoke.texi: Document the new parameter.
8301 2016-07-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8304 * expr.c (store_constructor): Mask sign-extended bits when widening
8305 sub-word constructor element at the start of a word.
8307 2016-07-12 Martin Liska <mliska@suse.cz>
8309 * Makefile.in: Append rule for params-options.h.
8310 * params-options.h: New file.
8312 2016-07-12 Martin Liska <mliska@suse.cz>
8314 * ira-build.c (mark_loops_for_removal): Properly iterate
8317 2016-07-12 Steven Bosscher <steven@gcc.gnu.org>
8318 Richard Biener <rguenther@suse.de>
8320 PR tree-optimization/23286
8321 PR tree-optimization/70159
8322 * doc/invoke.texi: Document -fcode-hoisting.
8323 * common.opt (fcode-hoisting): New flag.
8324 * opts.c (default_options_table): Enable -fcode-hoisting at -O2+.
8325 * tree-ssa-pre.c (pre_stats): Add hoist_insert.
8326 (do_regular_insertion): Rename to ...
8327 (do_pre_regular_insertion): ... this and amend general comments
8328 on insertion strathegy.
8329 (do_partial_partial_insertion): Rename to ...
8330 (do_pre_partial_partial_insertion): ... this.
8331 (do_hoist_insertion): New function.
8332 (insert_aux): Take flags on whether to do PRE and/or hoist insertion
8333 and call do_hoist_insertion properly.
8335 (pass_pre::gate): Enable also if -fcode-hoisting is enabled.
8336 (pass_pre::execute): Register hoist_insert stats.
8338 2016-07-12 Jakub Jelinek <jakub@redhat.com>
8341 * gimple-fold.c (optimize_atomic_compare_exchange_p): Return false
8342 for SCALAR_FLOAT_TYPE_P type of expected var, or if TYPE_PRECISION
8343 is different from mode's bitsize. Small cleanup.
8345 2016-07-12 Richard Biener <rguenther@suse.de>
8347 PR rtl-optimization/68961
8348 * fwprop.c (propagate_rtx): Allow SUBREGs of VEC_CONCAT and CONCAT
8349 to simplify to a non-constant.
8351 2016-07-11 Jakub Jelinek <jakub@redhat.com>
8354 * omp-low.c (expand_omp_target): Gimplify device.
8356 PR tree-optimization/71823
8357 * tree-vect-stmts.c (vectorizable_operation): Use vect_get_vec_defs
8358 to get vec_oprnds2 from op2.
8360 2016-07-11 Uros Bizjak <ubizjak@gmail.com>
8362 * config/i386/predicates.md (x86_64_immediate_operand) <case CONST>:
8363 Hoist common subexpressions.
8364 (x86_64_zext_immediate_operand) <case CONST>: Ditto.
8366 2016-07-11 Pat Haugen <pthaugen@us.ibm.com>
8369 * config/rs6000/rs6000.md (stfiwx): Change constraint to 'wu' to
8370 prevent generation of 'stxsiwx' on pre Power8 hardware.
8372 2016-07-11 David Malcolm <dmalcolm@redhat.com>
8374 * input.c: Include cpplib.h.
8375 (selftest::temp_source_file): New class.
8376 (selftest::temp_source_file::temp_source_file): New ctor.
8377 (selftest::temp_source_file::~temp_source_file): New dtor.
8378 (selftest::should_have_column_data_p): New function.
8379 (selftest::test_should_have_column_data_p): New function.
8380 (selftest::temp_line_table): New class.
8381 (selftest::temp_line_table::temp_line_table): New ctor.
8382 (selftest::temp_line_table::~temp_line_table): New dtor.
8383 (selftest::test_accessing_ordinary_linemaps): Add case_ param; use
8384 it to create a temp_line_table.
8385 (selftest::assert_loceq): Only verify LOCATION_COLUMN for
8386 locations that are known to have column data.
8387 (selftest::line_table_case): New struct.
8388 (selftest::test_reading_source_line): Move tempfile handling
8389 to class temp_source_file.
8390 (ASSERT_TOKEN_AS_TEXT_EQ): New macro.
8391 (selftest::assert_token_loc_eq): New function.
8392 (ASSERT_TOKEN_LOC_EQ): New macro.
8393 (selftest::test_lexer): New function.
8394 (selftest::boundary_locations): New array.
8395 (selftest::input_c_tests): Call test_should_have_column_data_p.
8396 Loop over a test matrix of interesting values of location and
8397 default_range_bits, calling test_lexer on each case in the matrix.
8398 Move call to test_accessing_ordinary_linemaps into the matrix.
8399 * selftest.h (ASSERT_EQ): Reimplement in terms of...
8400 (ASSERT_EQ_AT): New macro.
8402 2016-07-11 H.J. Lu <hongjiu.lu@intel.com>
8405 * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
8406 Don't convert TImode in debug insn.
8408 2016-07-11 Bernd Edlinger <bernd.edlinger@hotmail.de>
8410 Convert TYPE_ALIGN_OK to a TYPE_LANG_FLAG.
8411 * tree-core.h (tree_base::nothrow_flag): Adjust comment.
8412 (tree_type_common::lang_flag_7): New.
8413 (tree_type_common::spare): Reduce size.
8414 * tree.h (TYPE_ALIGN_OK): Remove.
8415 (TYPE_LANG_FLAG_7): New.
8416 (get_inner_reference): Adjust header.
8417 * print-tree.c (print_node): Adjust.
8418 * expr.c (get_inner_reference): Remove parameter keep_aligning.
8419 (get_bit_range, expand_assignment, expand_expr_addr_expr_1): Adjust
8420 calls to get_inner_reference.
8421 (expand_expr_real_1): Adjust call to get_inner_reference. Remove
8422 handling of TYPE_ALIGN_OK.
8423 * builtins.c (get_object_alignment_2): Adjust call to
8424 get_inner_reference. Remove handling of VIEW_CONVERT_EXPR.
8425 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove handling of
8427 * asan.c (instrument_derefs): Adjust calls to get_inner_reference.
8428 * cfgexpand.c (expand_debug_expr): Likewise.
8429 * dbxout.c (dbxout_expand_expr): Likewise.
8430 * dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref,
8431 loc_list_from_tree, fortran_common): Likewise.
8432 * fold-const.c (optimize_bit_field_compare,
8433 decode_field_reference, fold_unary_loc, fold_comparison,
8434 split_address_to_core_and_offset): Likewise.
8435 * gimple-laddress.c (execute): Likewise.
8436 * gimple-ssa-strength-reduction.c (slsr_process_ref): Likewise.
8437 * gimplify.c (gimplify_scan_omp_clauses): Likewise.
8438 * hsa-gen.c (gen_hsa_addr): Likewise.
8439 * simplifx-rtx.c (delegitimize_mem_from_attrs): Likewise.
8440 * tsan.c (instrument_expr): Likewise.
8441 * ubsan.c (instrument_bool_enum_load, instrument_object_size): Likewise.
8442 * tree.c (verify_type_variant): Remove handling of TYPE_ALIGN_OK.
8443 * tree-affine.c (tree_to_aff_combination,
8444 get_inner_reference_aff): Adjust calls to get_inner_reference.
8445 * tree-data-ref.c (split_constant_offset_1,
8446 dr_analyze_innermost): Likewise.
8447 * tree-scalar-evolution.c (interpret_rhs_expr): Likewise.
8448 * tree-sra.c (ipa_sra_check_caller): Likewise.
8449 * tree-ssa-loop-ivopts.c (split_address_cost): Likewise.
8450 * tree-ssa-math-opts.c (find_bswap_or_nop_load,
8451 bswap_replace): Likewise.
8452 * tree-vect-data-refs.c (vect_check_gather,
8453 vect_analyze_data_refs): Likewise.
8454 * config/mips/mips.c (r10k_safe_mem_expr_p): Likewise.
8455 * config/pa/pa.c (pa_emit_move_sequence): Remove handling of
8458 2016-07-11 David Malcolm <dmalcolm@redhat.com>
8460 * Makefile.in (selftest-valgrind): New phony target.
8461 * function-tests.c (selftest::build_cfg): Delete pass instances
8462 created by the test.
8463 (selftest::convert_to_ssa): Likewise.
8464 (selftest::test_expansion_to_rtl): Likewise.
8465 * tree-cfg.c (selftest::test_linear_chain): Release dominator
8467 (selftest::test_diamond): Likewise.
8469 2016-07-11 Richard Biener <rguenther@suse.de>
8471 PR tree-optimization/71816
8472 * tree-ssa-pre.c (compute_avail): Adjust alignment of ref rather
8473 than replacing all of its operands.
8475 2016-07-11 Alan Modra <amodra@gmail.com>
8477 * config/rs6000/rs6000.md (UNSPEC_DOLOOP): New unspec.
8478 (ctr<mode>): Add unspec.
8479 (ctr<mode>_internal*): Likewise.
8481 2016-07-08 James Bowman <james.bowman@ftdichip.com>
8483 * config/ft32/ft32.c (ft32_elf_encode_section_info): New function.
8484 * config/ft32/ft32.h (ASM_OUTPUT_SYMBOL_REF): New function.
8486 2016-07-08 Vladimir Makarov <vmakarov@redhat.com>
8488 PR rtl-optimization/71621
8489 * lra-constraints.c (process_alt_operands): Check combination of
8492 2016-07-08 Jason Merrill <jason@redhat.com>
8493 Richard Biener <rguenther@suse.de>
8495 P0145: Refining Expression Order for C++.
8496 * gimplify.c (initial_rhs_predicate_for): New.
8497 (gimplfy_modify_expr): Gimplify RHS before LHS.
8499 2016-07-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8502 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
8503 Allow standard error handling to take over when a wrong number
8504 of arguments is presented to __builtin_vec_ld () or
8505 __builtin_vec_st ().
8507 2016-07-08 Jiong Wang <jiong.wang@arm.com>
8509 * config/aarch64/aarch64-simd-builtins.def (smax): Remove float
8514 * config/aarch64/arm_neon.h (vmaxnm_f32): Use
8515 __builtin_aarch64_fmaxv2sf.
8516 (vmaxnmq_f32): Likewise.
8517 (vmaxnmq_f64): Likewise.
8518 (vminnm_f32): Likewise.
8519 (vminnmq_f32): Likewise.
8520 (vminnmq_f64): Likewise.
8522 2016-07-08 Michael Meissner <meissner@linux.vnet.ibm.com>
8525 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Do not
8526 enable -mfloat128-hardware by default.
8527 (ISA_3_0_MASKS_IEEE): New macro to give all of the VSX options
8528 that IEEE 128-bit hardware support needs.
8529 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
8530 -mcpu=power9 -mfloat128, enable -mfloat128-hardware by default.
8531 Use ISA_3_0_MASKS_IEEE as the set of options that IEEE 128-bit
8532 floating point requires.
8533 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
8534 -mfloat128 and -mfloat128-hardware changes.
8536 2016-07-08 Alan Hayward <alan.hayward@arm.com>
8538 PR tree-optimization/71667
8539 * tree-vect-loop.c (vectorizable_live_operation): ignore DEBUG stmts
8541 2016-07-08 Martin Liska <mliska@suse.cz>
8544 * fold-const.c (fold_convertible_p): As COMPLEX_TYPE
8545 folding produces SAVE_EXPRs, thus return false for the type.
8547 2016-07-07 Martin Liska <mliska@suse.cz>
8549 * file-find.c (remove_prefix): New function.
8550 * file-find.h (remove_prefix): Declare the function.
8551 * gcc-ar.c (main): Skip a folder of the wrapper if
8552 a wrapped binary would point to the same file.
8554 2016-07-07 Jan Hubicka <jh@suse.cz>
8556 * tree-scalar-evolution.c (iv_can_overflow_p): export.
8557 * tree-scalar-evolution.h (iv_can_overflow_p): Declare.
8558 * tree-ssa-loop-ivopts.c (alloc_iv): Use it.
8560 2016-07-07 Ilya Enkovich <ilya.enkovich@intel.com>
8563 * ipa-inline-analysis.c (compute_inline_parameters): Set
8564 local.can_change_signature to false for intrumentation
8567 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
8569 * config/arm/arm.h (TARGET_USE_MOVT): Check MOVT/MOVW availability
8570 with TARGET_HAVE_MOVT.
8571 (TARGET_HAVE_MOVT): Define.
8572 * config/arm/arm.c (const_ok_for_op): Check MOVT/MOVW
8573 availability with TARGET_HAVE_MOVT.
8574 * config/arm/arm.md (arm_movt): Use TARGET_HAVE_MOVT to check MOVT
8576 (addsi splitter): Use TARGET_THUMB && TARGET_HAVE_MOVT rather than
8578 (symbol_refs movsi splitter): Remove TARGET_32BIT check.
8579 (arm_movtas_ze): Use TARGET_HAVE_MOVT to check MOVT availability.
8580 * config/arm/constraints.md (define_constraint "j"): Use
8581 TARGET_HAVE_MOVT to check MOVT availability.
8583 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
8585 * config/arm/arm-protos.h: Reindent FL_FOR_* macro definitions.
8587 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
8589 * config/arm/arm-arches.def (armv8-m.base): Define new architecture.
8590 (armv8-m.main): Likewise.
8591 (armv8-m.main+dsp): Likewise.
8592 * config/arm/arm-protos.h (FL_FOR_ARCH8M_BASE): Define.
8593 (FL_FOR_ARCH8M_MAIN): Likewise.
8594 * config/arm/arm-tables.opt: Regenerate.
8595 * config/arm/bpabi.h: Add armv8-m.base, armv8-m.main and
8596 armv8-m.main+dsp to BE8_LINK_SPEC.
8597 * config/arm/arm.h (TARGET_HAVE_LDACQ): Exclude ARMv8-M.
8598 (enum base_architecture): Add BASE_ARCH_8M_BASE and BASE_ARCH_8M_MAIN.
8599 * config/arm/arm.c (arm_arch_name): Increase size to work with ARMv8-M
8600 Baseline and Mainline.
8601 (arm_option_override_internal): Also disable arm_restrict_it when
8602 !arm_arch_notm. Update comment for -munaligned-access to also cover
8604 (arm_file_start): Increase buffer size for printing architecture name.
8605 * doc/invoke.texi: Document architectures armv8-m.base, armv8-m.main
8606 and armv8-m.main+dsp.
8607 (mno-unaligned-access): Clarify that this is disabled by default for
8608 ARMv8-M Baseline architectures as well.
8610 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
8612 * config/arm/elf.h: Use __ARM_ARCH_ISA_THUMB and __ARM_ARCH_ISA_ARM to
8613 decide whether to prevent some libgcc routines being included for some
8614 multilibs rather than __ARM_ARCH_6M__ and add comment to indicate the
8615 link between this condition and the one in
8616 libgcc/config/arm/lib1func.S.
8618 2016-07-07 Richard Biener <rguenther@suse.de>
8620 * tree-ssa-pre.c: Include alias.h.
8621 (compute_avail): If we have multiple VN_REFERENCEs with the
8622 same hashtable entry adjust that to make it a valid replacement
8623 for all of them with respect to alignment and aliasing
8624 when doing insertion.
8625 * tree-ssa-sccvn.h (vn_reference_operands_for_lookup): Declare.
8626 * tree-ssa-sccvn.c (vn_reference_operands_for_lookup): New function.
8628 2016-07-06 Segher Boessenkool <segher@kernel.crashing.org>
8632 * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
8633 *ctr<mode>_internal5, *ctr<mode>_internal6): Add *wi to the output
8636 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8638 * var-tracking.c (struct adjust_mem_data): Make side_effects a vector.
8639 (adjust_mems): Adjust.
8640 (adjust_insn): Likewise.
8641 (prepare_call_arguments): Likewise.
8643 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8645 * gcse.c (struct ls_expr): Make stores field a vector.
8646 (ldst_entry): Adjust.
8647 (free_ldst_entry): Likewise.
8648 (print_ldst_list): Likewise.
8649 (compute_ld_motion_mems): Likewise.
8650 (update_ld_motion_stores): Likewise.
8652 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8654 * gcse.c (struct ls_expr): Remove loads field.
8655 (ldst_entry): Adjust.
8656 (free_ldst_entry): Likewise.
8657 (print_ldst_list): Likewise.
8658 (compute_ld_motion_mems): Likewise.
8660 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8662 * store-motion.c (struct st_expr): Make antic_stores a vector.
8663 (st_expr_entry): Adjust.
8664 (free_st_expr_entry): Likewise.
8665 (print_store_motion_mems): Likewise.
8666 (find_moveable_store): Likewise.
8667 (compute_store_table): Likewise.
8668 (remove_reachable_equiv_notes): Likewise.
8669 (replace_store_insn): Likewise.
8670 (build_store_vectors): Likewise.
8672 2016-07-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8674 * config/arm/driver-arm.c (arm_cpu_table): Add entries for cortex-a32,
8675 cortex-a35, cortex-a53, cortex-a57, cortex-a72, cortex-a73.
8677 2016-07-06 Yuri Rumyantsev <ysrumyan@gmail.com>
8679 PR tree-optimization/71518
8680 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust
8681 misalign also for outer loops with negative step.
8683 2016-07-06 Wilco Dijkstra <wdijkstr@arm.com>
8685 * config/arm/cortex-a53.md: Use final_presence_set for in-order.
8686 (cortex_a53_shift): Add mov_shift.
8687 (cortex_a53_shift_reg): Add new reservation for register shifts.
8688 (cortex_a53_alu): Remove bfm.
8689 (cortex_a53_alu_shift): Add bfm, remove mov_shift.
8690 (cortex_a53_alu_extr): Add new reservation for EXTR.
8691 (bypasses): Improve bypass modelling.
8693 2016-07-06 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
8696 * config/avr/avr.c (avr_asm_select_section): Strip off
8697 SECTION_DECLARED from flags when calling get_section.
8699 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
8701 * tree-vectorizer.h (vect_memory_access_type): Add
8702 VMAT_INVARIANT, VMAT_CONTIGUOUS_DOWN and VMAT_CONTIGUOUS_REVERSED.
8703 * tree-vect-stmts.c (compare_step_with_zero): New function.
8704 (perm_mask_for_reverse): Move further up file.
8705 (get_group_load_store_type): Stick to VMAT_ELEMENTWISE if the
8707 (get_negative_load_store_type): New function.
8708 (get_load_store_type): Call it. Add an ncopies argument.
8709 (vectorizable_mask_load_store): Update call accordingly and
8710 remove tests for negative steps.
8711 (vectorizable_store, vectorizable_load): Likewise. Handle new
8712 memory_access_types.
8714 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
8716 * tree-vectorizer.h (vect_memory_access_type): New enum.
8717 (_stmt_vec_info): Add a memory_access_type field.
8718 (STMT_VINFO_MEMORY_ACCESS_TYPE): New macro.
8719 (vect_model_store_cost): Take an access type instead of a boolean.
8720 (vect_model_load_cost): Likewise.
8721 * tree-vect-slp.c (vect_analyze_slp_cost_1): Update calls to
8722 vect_model_store_cost and vect_model_load_cost.
8723 * tree-vect-stmts.c (vec_load_store_type): New enum.
8724 (vect_model_store_cost): Take an access type instead of a
8725 store_lanes_p boolean. Simplify tests.
8726 (vect_model_load_cost): Likewise, but for load_lanes_p.
8727 (get_group_load_store_type, get_load_store_type): New functions.
8728 (vectorizable_store): Use get_load_store_type. Record the access
8729 type in STMT_VINFO_MEMORY_ACCESS_TYPE.
8730 (vectorizable_load): Likewise.
8731 (vectorizable_mask_load_store): Likewise. Replace is_store
8732 variable with vls_type.
8734 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
8736 * tree-vectorizer.h (vect_grouped_load_supported): Add a
8737 single_element_p parameter.
8738 * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
8739 Check the PR65518 case here rather than in vectorizable_load.
8740 * tree-vect-loop.c (vect_analyze_loop_2): Update call accordignly.
8741 * tree-vect-stmts.c (vectorizable_load): Likewise.
8743 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
8745 * tree-vectorizer.h (gather_scatter_info): New structure.
8746 (vect_check_gather_scatter): Return a bool rather than a decl.
8747 Replace return-by-pointer arguments with a single
8748 gather_scatter_info *.
8749 * tree-vect-data-refs.c (vect_check_gather_scatter): Likewise.
8750 (vect_analyze_data_refs): Update call accordingly.
8751 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
8752 (vectorizable_mask_load_store): Likewise. Also record the
8753 offset dt and vectype in the gather_scatter_info.
8754 (vectorizable_store): Likewise.
8755 (vectorizable_load): Likewise.
8757 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
8759 * tree-vect-stmts.c (vect_model_store_cost): For non-SLP
8760 strided groups, use the cost of N scalar accesses instead
8761 of ncopies vector accesses.
8762 (vect_model_load_cost): Likewise.
8764 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
8766 * tree-vect-stmts.c (vect_cost_group_size): Delete.
8767 (vect_model_store_cost): Avoid calling it. Use first_stmt_p
8768 variable to indicate when once-per-group costs are being used.
8769 (vect_model_load_cost): Likewise. Fix comment and misindented code.
8771 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
8773 * tree-vect-stmts.c (vectorizable_load): Remove unnecessary
8774 peeling-for-gaps condition.
8776 2016-07-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8778 * config/s390/s390.c (s390_expand_vec_init): Force initializer
8779 element to register if it doesn't match general_operand.
8781 2016-07-05 Michael Meissner <meissner@linux.vnet.ibm.com>
8782 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8784 * config/rs6000/rs6000-protos.h (rs6000_split_signbit): New
8786 * config/rs6000/rs6000.c (rs6000_split_signbit): New function.
8787 * config/rs6000/rs6000.md (UNSPEC_SIGNBIT): New constant.
8788 (SIGNBIT): New mode iterator.
8789 (Fsignbit): New mode attribute.
8790 (signbit<mode>2): Change operand1 to match FLOAT128 instead of
8791 IBM128; dispatch to gen_signbit{kf,tf}2_dm for __float128
8792 when direct moves are available.
8793 (signbit<mode>2_dm): New define_insn_and_split).
8794 (signbit<mode>2_dm2): New define_insn.
8796 2016-07-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8798 PR rtl-optimization/71594
8799 * ifcvt.c (noce_convert_multiple_sets): Wrap new_val or old_val
8800 into subregs of appropriate mode before trying to emit a conditional
8803 2016-07-05 Jan Hubicka <jh@suse.cz>
8805 * tree-scalar-evolution.c (iv_can_overflow_p): New function.
8806 (simple_iv): Use it.
8808 2016-07-05 Jan Hubicka <jh@suse.cz>
8810 * tree-ssa-loop-niter.c (nowrap_type_p): Use ANY_INTEGRAL_TYPE_P.
8812 2016-07-05 Jiong Wang <jiong.wang@arm.com>
8814 * lra-constraints.c (process_alt_operands): Don't add spilling cost for
8817 2016-07-05 Jan Hubicka <jh@suse.cz>
8819 * tree-scalar-evoluiton.c (simple_iv): Use nowrap_type to check if
8822 2016-07-05 Richard Biener <rguenther@suse.de>
8824 * gimple-ssa-split-paths.c (find_block_to_duplicate_for_splitting_pa):
8825 Handle empty else block.
8826 (is_feasible_trace): Likewise.
8827 (split_paths): Likewise.
8829 2016-07-05 Richard Biener <rguenther@suse.de>
8831 * tree-loop-distribution.c (distribute_loop): Fix issue with
8832 the cost model loop.
8834 2016-07-05 Christophe Lyon <christophe.lyon@linaro.org>
8836 * config/arm/neon-testgen.ml: Delete.
8837 * config/arm/neon.ml: Delete.
8839 2016-07-04 Jakub Jelinek <jakub@redhat.com>
8842 * tree.c (attribute_value_equal): Use get_attribute_name instead of
8843 directly using TREE_PURPOSE.
8845 2016-07-04 Jiong Wang <jiong.wang@arm.com>
8847 * config/aarch64/aarch64.h: Rename "ARMv8.1" to "ARMv8.1-A".
8848 * config/aarch64/aarch64_neon.h: Likewise.
8849 * config/aarch64/arm_neon.h: Likewise.
8850 * config/aarch64/atomics.md: Likewise.
8851 * config/aarch64/aarch64-simd-builtins.def: Likewise.
8852 * doc/invoke.texi: Likewise.
8854 2016-07-04 Dominik Vogt <vogt@linux.vnet.ibm.com>
8856 * config/s390/s390.md: Add "z13" cpu_facility.
8857 ("*mov<mode>cc"): Add support for z13 instructions lochi and locghi.
8858 * config/s390/predicates.md ("loc_operand"): New predicate for "load on
8859 condition" type instructions.
8861 2016-07-04 Dominik Vogt <vogt@linux.vnet.ibm.com>
8862 Jeff Law <law@redhat.com>
8864 * explow.c (allocate_dynamic_stack_space): Simplify knowing that
8865 MUST_ALIGN was always true and extra_align ist always BITS_PER_UNIT.
8867 2016-07-04 Yuri Rumyantsev <ysrumyan@gmail.com>
8869 * config/i386/i386.c (ix86_expand_vec_perm): Add handle one-operand
8870 permutation for TARGET_AVX512F.
8871 (ix86_expand_vec_one_operand_perm_avx512): New function.
8872 (expand_vec_perm_1): Invoke introduced function.
8873 * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since
8874 it may be not valid after vectorization.
8876 2016-07-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8879 * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix
8880 typo in comment. Only force to memory if it is a weak
8883 2016-07-04 Matthew Wahab <matthew.wahab@arm.com>
8884 Jiong Wang <jiong.wang@arm.com>
8886 * config/aarch64/aarch64-arches.def: Add "armv8.2-a".
8887 * config/aarch64/aarch64.h (AARCH64_FL_V8_2): New.
8888 (AARCH64_FL_F16): New.
8889 (AARCH64_FL_FOR_ARCH8_2): New.
8890 (AARCH64_ISA_8_2): New.
8891 (AARCH64_ISA_F16): New.
8892 (TARGET_FP_F16INST): New.
8893 (TARGET_SIMD_F16INST): New.
8894 * config/aarch64/aarch64-option-extensions.def ("fp16"): New entry.
8895 ("fp"): Disabling "fp" also disables "fp16".
8896 * config/aarch64/aarch64-c.c (arch64_update_cpp_builtins):
8897 Conditionally define __ARM_FEATURE_FP16_SCALAR_ARITHMETIC
8898 and __ARM_FEATURE_FP16_VECTOR_ARITHMETIC.
8899 * doc/invoke.texi (AArch64 Options): Document "armv8.2-a" and "fp16".
8901 2016-07-04 Jan Beulich <jbeulich@suse.com>
8903 * gcc.c (default_compilers["@c-header"]): Conditionalize "-o".
8905 2016-07-01 Michael Meissner <meissner@linux.vnet.ibm.com>
8908 * config/rs6000/vsx.md (vsx_splat_v4sf_internal): When splitting
8909 the insns, use an insn form that does not adjust the offset on
8910 little endian systems.
8912 2016-07-01 Jan Beulich <jbeulich@suse.com>
8914 * varasm.c (get_variable_section): Validate initializer in
8915 named .bss-like sections.
8917 2016-07-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
8919 * config/rs6000/altivec.md (*altivec_vpermr_<mode>_internal):
8920 Exchange the order of the second and third operands in the vpermr
8921 instruction tmeplate.
8923 2016-07-01 Peter Bergner <bergner@vnet.ibm.com>
8926 * config/rs6000/rs6000.c (rs6000_secondary_reload_simple_move):
8927 Disallow TDmode values.
8929 2016-07-01 Alan Modra <amodra@gmail.com>
8931 PR rtl-optimization/71709
8932 * ira-lives.c (find_call_crossed_cheap_reg): Exit loop on arg reg
8933 being set, not referenced.
8935 2016-07-01 Yuri Rumyantsev <ysrumyan@gmail.com>
8937 PR tree-optimization/70729
8938 * tree-vectorizer.c (adjust_simduid_builtins): Nullify safelen field
8939 of loop since it can be not valid after transformation.
8941 2016-07-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8943 * config/arm/arm.c (thumb_reload_in_hi): Delete.
8944 * config/arm/arm-protos.h (thumb_reload_in_hi): Delete prototype.
8946 2016-07-01 Eric Botcazou <ebotcazou@adacore.com>
8948 * config/arm/arm.c (arm_function_ok_for_sibcall): Add another check
8951 2016-06-30 Michael Meissner <meissner@linux.vnet.ibm.com>
8954 * config/rs6000/constraints.md (wY constraint): New constraint to
8955 match the requirements for the LXSD and STXSD instructions.
8956 * config/rs6000/predicates.md (offsettable_mem_14bit_operand): New
8957 predicate to match the requirements for the LXSD and STXSD
8959 * config/rs6000/rs6000.md (mov<mode>_hardfloat32, FMOVE64 case):
8960 Use constaint wY for LXSD/STXSD instructions instead of 'o' or 'Y'
8961 to make sure that the bottom 2 bits of offset are 0, the address
8962 form is offsettable, and no updating is done in the address mode.
8963 (mov<mode>_hardfloat64, FMOVE64 case): Likewise.
8964 (movdi_internal32): Likewise
8965 (movdi_internal64): Likewise.
8967 2016-06-30 Jakub Jelinek <jakub@redhat.com>
8969 PR tree-optimization/71707
8970 * tree-ssa-strlen.c (get_stridx_plus_constant): Handle already present
8971 strinfo even for ADDR_EXPR ptr.
8973 2016-06-30 Kelvin Nilsen <kelvin@gcc.gnu.org>
8975 * config/rs6000/altivec.md (darn_32): Change the condition to
8976 TARGET_P9_MISC instead of TARGET_MODULO.
8977 (darn_raw): Replace TARGET_MODULO with TARGET_P9_MISC in the
8978 condition expression.
8979 (darn): Replace TARGET_MODULO with TARGET_P9_MISC in the
8980 condition expression.
8981 * config/rs6000/dfp.md (UNSPEC_DTSTSFI): New unspec constant.
8982 (DFP_TEST): New code iterator.
8983 (dfptstsfi_<code>_mode>): New define_expand.
8984 (*dfp_sgnfcnc_<mode>): New define_insn.
8985 * config/rs6000/rs6000-builtin.def (BU_P9_MISC_0): Move this macro
8986 definition next to BU_P9_MISC_1 definition and change the MASK
8987 value to RS6000_BTM_P9_MISC.
8988 (BU_P9_MISC_1): Change the MASK value to RS6000_BTM_P9_MISC.
8989 (BU_P9_64BIT_MISC_0): Likewise.
8990 (BU_P9_DFP_MISC_0): New macro definition.
8991 (BU_P9_DFP_MISC_1): New macro definition.
8992 (BU_P9_DFP_MISC_2): New macro definition.
8993 (BU_P9_DFP_OVERLOAD_1): New macro definition.
8994 (BU_P9_DFP_OVERLOAD_2): New macro definition.
8995 (BU_P9_DFP_OVERLOAD_3): New macro definition.
8996 (TSTSFI_LT_DD): New BU_P9_DFP_MISC_2.
8997 (TSTSFI_LT_TD): Likewise.
8998 (TSTSFI_EQ_DD): Likewise.
8999 (TSTSFI_EQ_TD): Likewise.
9000 (TSTSFI_GT_DD): Likewise.
9001 (TSTSFI_GT_TD): Likewise.
9002 (TSTSFI_OV_DD): Likewise.
9003 (TSTSFI_OV_TD): Likewise.
9004 (TSTSFI_LT): New BU_P9_DFP_OVERLOAD_2.
9005 (TSTSFI_LT_DD): Likewise.
9006 (TSTSFI_LT_TD): Likewise.
9007 (TSTSFI_EQ): Likewise.
9008 (TSTSFI_EQ_DD): Likewise.
9009 (TSTSFI_EQ_TD): Likewise.
9010 (TSTSFI_GT): Likewise.
9011 (TSTSFI_GT_DD): Likewise.
9012 (TSTSFI_GT_TD): Likewise.
9013 (TSTSFI_OV): Likewise.
9014 (TSTSFI_OV_DD): Likewise.
9015 (TSTSFI_OV_TD): Likewise.
9016 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
9017 overloaded test significance functions.
9018 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
9019 OPTION_MASK_P9_MISC into the representation of this mask.
9020 (POWERPC_MASKS): Add OPTION_MASK_P9_MISC into the representation
9022 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Set the
9023 RS6000_BTM_P9_MISC flag in the return value if TARGET_P9_MISC is
9025 (rs6000_expand_binop_builtin): Enforce that argument 0 of the exp
9026 argument is a 6-bit unsigned literal value if the icode argument
9027 represents a DFP test significance built-in call.
9028 (rs6000_invalid_builtin): Add support for the RS6000_BTM_P9_MISC
9029 flag used independently and in combination with the
9030 RS6000_BTM_64BIT flag.
9031 (rs6000_opt_masks): Add entry for power9-misc command-line option.
9032 (rs6000_builtin_mask_names): Add entry for power9-misc
9033 command-line option.
9034 * config/rs6000/rs6000.h: Redefine TARGET_P9_MISC as 0 if
9035 HAVE_AS_POWER9 is not a defined macro. Define MASK_P9_MISC and
9036 RS6000_BTM_P9_MISC macros.
9037 * config/rs6000/rs6000.opt: Add support for the -mpower9-misc
9038 option and change the description of the -mpower9-vector option to
9039 enable only vector instructions, removing its erroneously claimed
9040 support for scalar instructions.
9041 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
9042 the ISA 3.0 digital floating point test significance built-in
9045 2016-06-30 Wilco Dijkstra <wdijkstr@arm.com>
9047 * config/aarch64/aarch64.c (cortexa35_tunings):
9048 Enable AES fusion. Use cortexa57_branch_cost.
9049 (cortexa53_tunings): Use cortexa57_branch_cost.
9050 (cortexa72_tunings): Use cortexa57_branch_cost.
9051 Use AUTOPREFETCHER_WEAK.
9052 (cortexa73_tunings): Use cortexa57_branch_cost.
9054 2016-06-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9055 James Greenhalgh <james.greenhalgh@arm.com>
9057 * config/aarch64/arm_neon.h (vcopyq_lane_f32, vcopyq_lane_f64,
9058 vcopyq_lane_p8, vcopyq_lane_p16, vcopyq_lane_s8, vcopyq_lane_s16,
9059 vcopyq_lane_s32, vcopyq_lane_s64, vcopyq_lane_u8, vcopyq_lane_u16,
9060 vcopyq_lane_u32, vcopyq_lane_u64): Reimplement in C.
9061 (vcopy_lane_f32, vcopy_lane_f64, vcopy_lane_p8, vcopy_lane_p16,
9062 vcopy_lane_s8, vcopy_lane_s16, vcopy_lane_s32, vcopy_lane_s64,
9063 vcopy_lane_u8, vcopy_lane_u16, vcopy_lane_u32, vcopy_lane_u64,
9064 vcopy_laneq_f32, vcopy_laneq_f64, vcopy_laneq_p8, vcopy_laneq_p16,
9065 vcopy_laneq_s8, vcopy_laneq_s16, vcopy_laneq_s32, vcopy_laneq_s64,
9066 vcopy_laneq_u8, vcopy_laneq_u16, vcopy_laneq_u32, vcopy_laneq_u64,
9067 vcopyq_laneq_f32, vcopyq_laneq_f64, vcopyq_laneq_p8, vcopyq_laneq_p16,
9068 vcopyq_laneq_s8, vcopyq_laneq_s16, vcopyq_laneq_s32, vcopyq_laneq_s64,
9069 vcopyq_laneq_u8, vcopyq_laneq_u16, vcopyq_laneq_u32, vcopyq_laneq_u64):
9072 2016-06-30 James Greenhalgh <james.greenhalgh@arm.com>
9073 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9075 * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>):
9077 (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise.
9079 2016-06-30 David Malcolm <dmalcolm@redhat.com>
9082 * gcc.c (driver::build_option_suggestions): Pass "option" to
9083 add_misspelling_candidates.
9084 * opts-common.c (add_misspelling_candidates): Add "option" param;
9085 use it to avoid adding negated forms for options marked with
9087 * opts.h (add_misspelling_candidates): Add "option" param.
9089 2016-06-30 Jakub Jelinek <jakub@redhat.com>
9092 * fold-const.c (fold_binary_loc) <case RROTATE_EXPR>: Cast
9093 TREE_OPERAND (arg0, 0) and TREE_OPERAND (arg0, 1) to type
9094 first when permuting bitwise operation with rotate. Cast
9095 TREE_OPERAND (arg0, 0) to type when cancelling two rotations.
9097 2016-06-29 David Malcolm <dmalcolm@redhat.com>
9099 * opts.c (handle_param): Use find_param_fuzzy to offer suggestions
9100 for misspelled param names.
9101 * params.c: Include spellcheck.h.
9102 (find_param_fuzzy): New function.
9103 * params.h (find_param_fuzzy): New prototype.
9104 * spellcheck.c (struct edit_distance_traits<const char *>): Move to...
9105 * spellcheck.h (struct edit_distance_traits<const char *>):
9108 2016-06-29 Michael Meissner <meissner@linux.vnet.ibm.com>
9110 * config/rs6000/predicates.md (const_0_to_7_operand): New
9111 predicate, recognize 0..7.
9112 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
9113 support for doing extracts from V16QImode, V8HImode, V4SImode
9115 * config/rs6000/vsx.md (VSX_EXTRACT_I): Mode iterator for ISA 3.0
9116 vector extract support.
9117 (VSX_EXTRACT_PREDICATE): Mode attribute to validate element number
9118 for ISA 3.0 vector extract.
9119 (VSX_EX): Constraints to use for ISA 3.0 vector extract.
9120 (vsx_extract_<mode>, VSX_EXTRACT_I): Add support for doing
9121 extracts of a constant element number from small integer vectors
9122 on 64-bit ISA 3.0 systems.
9123 (vsx_extract_<mode>_di): Likewise.
9124 * config/rs6000/rs6000.h (TARGET_VEXTRACTUB): New target macro to
9125 say when we can do ISA 3.0 vector extracts.
9126 * config/rs6000/rs6000.md (stfiwx): Allow DImode in Altivec
9127 registers, using the stxsiwx instruction.
9129 2016-06-29 Jim Wilson <jim.wilson@linaro.org>
9131 * config/aarch64/aarch64-cores.def (qdf24xx): Use qdf24xx tuning.
9132 * config/aarch64/aarch64.c (qdf24xx_addrcost_table,
9133 qdf24xx_regmove_cost, qdf24xx_tunings): New.
9134 * config/arm/aarch64-cost-tables.h (qdf24xx_extra_costs): New.
9135 * config/arm/arm-cores.def (qdf24xx): Use qdf24xx tuning.
9136 * config/arm/arm.c (arm_qdf24xx_tune): New.
9138 2016-06-29 Wilco Dijkstra <wdijkstr@arm.com>
9140 * config/aarch64/aarch64.c (cortexa53_tunings):
9141 Increase loop alignment to 8. Set function alignment to 16.
9142 (cortexa35_tunings): Likewise.
9143 (cortexa57_tunings): Increase loop alignment to 8.
9144 (cortexa72_tunings): Likewise.
9145 (cortexa73_tunings): Likewise.
9147 2016-06-29 Matthew Wahab <matthew.wahab@arm.com>
9149 * doc/sourcebuild.texi (Effective-Target keywords): Add entries
9150 for arm_fp16_ok and arm_fp16_hw.
9151 (Add Options): Add entries for arm_fp16, arm_fp16_ieee and
9152 arm_fp16_alternative.
9154 2016-06-29 Ilya Enkovich <ilya.enkovich@intel.com>
9156 PR tree-optimization/71655
9157 * tree-vect-stmts.c (vectorizable_comparison): Swap definition
9158 types when swapping operands.
9160 2016-06-29 Martin Liska <mliska@suse.cz>
9163 * common.opt (flag_stack_protect): Mark the flag as optimization flag.
9164 * ipa-inline-transform.c (inline_call): Remove unnecessary call
9165 of build_optimization_node.
9167 2016-06-29 Yuri Rumyantsev <ysrumyan@gmail.com>
9169 PR tree-optimization/70729
9170 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Consider memory reference as
9171 independent in loops having positive safelen value.
9172 * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since
9173 it may be not valid after vectorization.
9175 2016-06-29 Jakub Jelinek <jakub@redhat.com>
9177 PR tree-optimization/71625
9178 * tree-ssa-strlen.c (get_addr_stridx): Add PTR argument. Assume list
9179 is sorted by ascending list->offset. If PTR is non-NULL and there is
9180 previous strinfo, call get_stridx_plus_constant.
9181 (get_stridx): Pass exp as second argument to get_addr_stridx.
9182 (addr_stridxptr): Add missing list = list->next, so that there can be
9183 more than one entries in the list. Bump limit from 16 to 32. Ensure
9184 the list is sorted by ascending list->offset.
9185 (get_stridx_plus_constant): Adjust so that it can be also called with
9186 ADDR_EXPR instead of SSA_NAME as PTR.
9187 (handle_char_store): Pass NULL_TREE as second argument to
9190 2016-06-29 Richard Biener <rguenther@suse.de>
9192 PR rtl-optimization/68961
9193 * simplify-rtx.c (simplify_subreg): Handle VEC_CONCAT like CONCAT.
9195 2016-06-29 Richard Biener <rguenther@suse.de>
9198 * alias.c (component_uses_parent_alias_set_from): Handle
9199 type punning through union accesses by using the union alias set.
9200 * gimple.c (gimple_get_alias_set): Remove union type punning case.
9202 2016-07-29 Richard Biener <rguenther@suse.de>
9204 * match.pd ((T)(T2)x -> (T)x): Remove restriction on final
9205 precision not matching mode precision.
9207 2016-06-28 John David Anglin <danglin@gcc.gnu.org>
9209 * config/pa/pa.md (call_symref_64bit_post_reload): Don't call
9210 pa_output_arg_descriptor.
9211 (call_val_symref_64bit_post_reload): Likewise.
9212 (call_val_powf_64bit_post_reload): Likewise.
9213 (sibcall_internal_symref_64bit): Likewise.
9214 (sibcall_value_internal_symref_64bit): Likewise.
9216 2016-06-28 Jakub Jelinek <jakub@redhat.com>
9219 * config/i386/i386.c (ix86_expand_vector_move): For SUBREG of
9220 a constant, force its SUBREG_REG into memory or register instead
9223 2016-06-28 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
9226 * config/avr/avr.opt (-mfract-convert-truncate): Update description.
9227 * doc/invoke.texi (AVR Options): Document it.
9229 2016-06-28 Walter Lee <walt@tilera.com>
9231 * config/tilegx/linux.h: Do not include arch/icache.h
9232 (CLEAR_INSN_CACHE): Provide inlined definition directly.
9233 * config/tilepro/linux.h: Do not include arch/icache.h
9234 (CLEAR_INSN_CACHE): Provide inlined definition directly.
9236 2016-06-28 Wilco Dijkstra <wdijkstr@arm.com>
9238 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adjust bitnumbering
9239 for big-endian BIT_FIELD_REF.
9241 2016-06-28 Pat Haugen <pthaugen@us.ibm.com>
9243 * config/rs6000/rs6000.md ('type' attribute): Add htmsimple/dfp types.
9244 ('size' attribute): Add '128'.
9246 (*mov<mode>_hardfloat32, *mov<mode>_hardfloat64, *movdi_internal32,
9247 *movdi_internal64, *movdf_update1): Set size attribute to '64'.
9248 (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3, sqrt<mode>2,
9249 copysign<mode>3, neg<mode>2_hw, abs<mode>2_hw, *nabs<mode>2_hw,
9250 *fma<mode>4_hw, *fms<mode>4_hw, *nfma<mode>4_hw, *nfms<mode>4_hw,
9251 extend<SFDF:mode><IEEE128:mode>2_hw, trunc<mode>df2_hw,
9252 *xscvqp<su>wz_<mode>, *xscvqp<su>dz_<mode>, *xscv<su>dqp_<mode>,
9253 *trunc<mode>df2_odd): Set size attribute to '128'.
9254 (*cmp<mode>_hw): Change type to veccmp and set size attribute to '128'.
9255 * config/rs6000/power6.md (power6-fp): Include dfp type.
9256 * config/rs6000/power7.md (power7-fp): Likewise.
9257 * config/rs6000/power8.md (power8-fp): Likewise.
9258 * config/rs6000/power9.md: New file.
9259 * config/rs6000/t-rs6000 (MD_INCLUDES): Add power9.md.
9260 * config/rs6000/htm.md (*tabort, *tabort<wd>c, *tabort<wd>ci,
9261 *trechkpt, *treclaim, *tsr, *ttest): Change type attribute to
9263 * config/rs6000/dfp.md (extendsddd2, truncddsd2, extendddtd2,
9264 trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
9265 divtd3, *cmpdd_internal1, *cmptd_internal1, floatdidd2, floatditd2,
9266 ftruncdd2, fixdddi2, ftrunctd2, fixtddi2, dfp_ddedpd_<mode>,
9267 dfp_denbcd_<mode>, dfp_dxex_<mode>, dfp_diex_<mode>, dfp_dscli_<mode>,
9268 dfp_dscri_<mode>): Change type attribute to dfp.
9269 * config/rs6000/crypto.md (crypto_vshasigma<CR_char>): Change type
9270 attribute to vecsimple.
9271 * config/rs6000/rs6000.c (power9_cost): Update costs, cache size
9272 and prefetch streams.
9273 (rs6000_option_override_internal): Remove temporary code setting
9274 tuning to power8. Don't set rs6000_sched_groups for power9.
9275 (last_scheduled_insn): Change to rtx_insn *.
9276 (divide_cnt, vec_load_pendulum): New variables.
9277 (rs6000_adjust_cost): Add Power9 to test for store->load separation.
9278 (rs6000_issue_rate): Set issue rate for Power9.
9279 (is_power9_pairable_vec_type): New.
9280 (power9_sched_reorder2): New.
9281 (rs6000_sched_reorder2): Call new function for Power9 specific
9283 (insn_must_be_first_in_group): Remove Power9.
9284 (insn_must_be_last_in_group): Likewise.
9285 (force_new_group): Likewise.
9286 (rs6000_sched_init): Fix initialization of last_scheduled_insn.
9287 Initialize divide_cnt/vec_load_pendulum.
9288 (_rs6000_sched_context, rs6000_init_sched_context,
9289 rs6000_set_sched_context): Handle context save/restore of new
9292 2016-06-28 Richard Biener <rguenther@suse.de>
9294 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
9295 Properly handle DECL_BIT_FIELD_REPRESENTATIVE occuring as
9296 COMPONENT_REF operand.
9297 (nonoverlapping_component_refs_p): Likewise.
9298 * stor-layout.c (start_bitfield_representative): Mark
9299 DECL_BIT_FIELD_REPRESENTATIVE as DECL_NONADDRESSABLE_P.
9301 2016-06-28 Jakub Jelinek <jakub@redhat.com>
9303 * Makefile.in: Don't cat ../stage_current if it does not exist.
9305 * doc/extend.texi (__builtin_add_overflow_p): Clarify behavior when
9306 last argument is a bit-field.
9308 PR rtl-optimization/71673
9309 * internal-fn.c (expand_arith_overflow_result_store): Use
9310 OPTAB_LIB_WIDEN instead of OPTAB_DIRECT as last argument to
9311 expand_simple_binop.
9314 * builtins.c (expand_ifn_atomic_compare_exchange_into_call,
9315 expand_ifn_atomic_compare_exchange): New functions.
9316 * internal-fn.c (expand_ATOMIC_COMPARE_EXCHANGE): New function.
9317 * tree.h (build_call_expr_internal_loc): Rename to ...
9318 (build_call_expr_internal_loc_array): ... this. Fix up type of
9320 * internal-fn.def (ATOMIC_COMPARE_EXCHANGE): New internal fn.
9321 * predict.c (expr_expected_value_1): Handle IMAGPART_EXPR of
9322 ATOMIC_COMPARE_EXCHANGE result.
9323 * builtins.h (expand_ifn_atomic_compare_exchange): New prototype.
9324 * gimple-fold.h (optimize_atomic_compare_exchange_p,
9325 fold_builtin_atomic_compare_exchange): New prototypes.
9326 * gimple-fold.c (optimize_atomic_compare_exchange_p,
9327 fold_builtin_atomic_compare_exchange): New functions..
9328 * tree-ssa.c (execute_update_addresses_taken): If
9329 optimize_atomic_compare_exchange_p, ignore &var in 2nd argument
9330 of call when finding addressable vars, and if such var becomes
9331 non-addressable, call fold_builtin_atomic_compare_exchange.
9333 2016-06-27 Segher Boessenkool <segher@kernel.crashing.org>
9336 * config/rs6000/rs6000.md (ashdi3_extswsli_dot): Use
9337 gen_ashdi3_extswsli_dot2 instead of gen_ashdi3_extswsli_dot.
9339 2016-06-27 Pat Haugen <pthaugen@us.ibm.com>
9341 * config/rs6000/rs6000.md ('type' attribute): Add
9342 veclogical,veccmpfx,vecexts,vecmove insn types.
9343 (*abs<mode>2_fpr, *nabs<mode>2_fpr, *neg<mode>2_fpr, *extendsfdf2_fpr,
9344 copysign<mode>3_fcpsgn, trunc<mode>df2_internal1, neg<mode>2_internal,
9345 p8_fmrgow_<mode>, pack<mode>): Change type to fpsimple.
9346 (*xxsel<mode>, copysign<mode>3_hard, neg<mode>2_hw, abs<mode>2_hw,
9347 *nabs<mode>2_hw): Change type to vecmove.
9348 (*and<mode>3_internal, *bool<mode>3_internal, *boolc<mode>3_internal,
9349 *boolcc<mode>3_internal, *eqv<mode>3_internal,
9350 *one_cmpl<mode>3_internal, *ieee_128bit_vsx_neg<mode>2_internal,
9351 *ieee_128bit_vsx_abs<mode>2_internal,
9352 *ieee_128bit_vsx_nabs<mode>2_internal, extendkftf2, trunctfkf2,
9353 *ieee128_mfvsrd_64bit, *ieee128_mfvsrd_32bit, *ieee128_mtvsrd_64bit,
9354 *ieee128_mtvsrd_32bit): Change type to veclogical.
9355 (mov<mode>_hardfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
9356 *movdi_internal32, *movdi_internal64): Update insn types.
9357 * config/rs6000/vsx.md (*vsx_le_undo_permute_<mode>,
9358 vsx_extract_<mode>): Change type to veclogical.
9359 (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns): Change type to vecmove.
9360 (vsx_sign_extend_qi_<mode>, *vsx_sign_extend_hi_<mode>,
9361 *vsx_sign_extend_si_v2di): Change type to vecexts.
9362 * config/rs6000/altivec.md (*altivec_mov<mode>, *altivec_movti): Change
9364 (*altivec_eq<mode>, *altivec_gt<mode>, *altivec_gtu<mode>,
9365 *altivec_vcmpequ<VI_char>_p, *altivec_vcmpgts<VI_char>_p,
9366 *altivec_vcmpgtu<VI_char>_p): Change type to veccmpfx.
9367 (*altivec_vsel<mode>, *altivec_vsel<mode>_uns): Change type to vecmove.
9368 * config/rs6000/dfp.md (*negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
9369 negtd2, *abstd2_fpr, *nabstd2_fpr): Change type to fpsimple.
9370 * config/rs6000/40x.md (ppc405-float): Add fpsimple.
9371 * config/rs6000/440.md (ppc440-fp): Add fpsimple.
9372 * config/rs6000/476.md (ppc476-fp): Add fpsimple.
9373 * config/rs6000/601.md (ppc601-fp): Add fpsimple.
9374 * config/rs6000/603.md (ppc603-fp): Add fpsimple.
9375 * config/rs6000/6xx.md (ppc604-fp): Add fpsimple.
9376 * config/rs6000/7xx.md (ppc750-fp): Add fpsimple.
9377 (ppc7400-vecsimple): Add veclogical, vecmove, veccmpfx.
9378 * config/rs6000/7450.md (ppc7450-fp): Add fpsimple.
9379 (ppc7450-vecsimple): Add veclogical, vecmove.
9380 (ppc7450-veccmp): Add veccmpfx.
9381 * config/rs6000/8540.md (ppc8540_simple_vector): Add veclogical,
9383 (ppc8540_vector_compare): Add veccmpfx.
9384 * config/rs6000/a2.md (ppca2-fp): Add fpsimple.
9385 * config/rs6000/cell.md (cell-fp): Add fpsimple.
9386 (cell-vecsimple): Add veclogical, vecmove.
9387 (cell-veccmp): Add veccmpfx.
9388 * config/rs6000/e300c2c3.md (ppce300c3_fp): Add fpsimple.
9389 * config/rs6000/e6500.md (e6500_vecsimple): Add veclogical, vecmove,
9391 * config/rs6000/mpc.md (mpccore-fp): Add fpsimple.
9392 * config/rs6000/power4.md (power4-fp): Add fpsimple.
9393 (power4-vecsimple): Add veclogical, vecmove.
9394 (power4-veccmp): Add veccmpfx.
9395 * config/rs6000/power5.md (power5-fp): Add fpsimple.
9396 * config/rs6000/power6.md (power6-fp): Add fpsimple.
9397 (power6-vecsimple): Add veclogical, vecmove.
9398 (power6-veccmp): Add veccmpfx.
9399 * config/rs6000/power7.md (power7-fp): Add fpsimple.
9400 (power7-vecsimple): Add veclogical, vecmove, veccmpfx.
9401 * config/rs6000/power8.md (power8-fp): Add fpsimple.
9402 (power8-vecsimple): Add veclogical, vecmove, veccmpfx.
9403 * config/rs6000/rs64.md (rs64a-fp): Add fpsimple.
9404 * config/rs6000/titan.md (titan_fp): Add fpsimple.
9405 * config/rs6000/xfpu.md (fp-default, fp-addsub-s, fp-addsub-d): Add
9407 * config/rs6000/rs6000.c (rs6000_adjust_cost): Add TYPE_FPSIMPLE.
9409 2016-06-27 Peter Bergner <bergner@vnet.ibm.com>
9412 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
9413 OPTION_MASK_P9_DFORM_VECTOR.
9414 * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
9415 disable -mpower9-dform-vector when using reload.
9416 (quad_address_p): Remove 'gpr_p' argument and all associated code.
9417 New 'strict' argument. Update all callers. Add strict addressing
9419 (rs6000_legitimate_offset_address_p): Remove call to
9420 virtual_stack_registers_memory_p.
9421 (rs6000_legitimize_reload_address): Add quad address support.
9422 (rs6000_legitimate_address_p): Move call to quad_address_p above
9423 call to virtual_stack_registers_memory_p. Adjust quad_address_p args
9424 to account for new strict usage.
9425 (rs6000_output_move_128bit): Adjust quad_address_p args to account
9426 for new strict usage.
9427 * config/rs6000/predicates.md (quad_memory_operand): Likewise.
9429 2016-06-26 Uros Bizjak <ubizjak@gmail.com>
9436 * config/i386/i386.c (ix86_spill_class): Disable condition to
9437 always return NO_REGS.
9439 2016-06-26 Jan Hubicka <hubicka@ucw.cz>
9441 * predict.c: Include gimple-pretty-print.h
9442 (predicted_by_loop_heuristics_p): Check also
9443 PRED_LOOP_EXIT_WITH_RECURSION
9444 (predict_loops): Find self recursive calls and use special purpose
9445 predictors for them; dump log about decisions.
9446 (pass_profile::execute): Dump info about #of iterations.
9447 * predict.def (PRED_LOOP_EXIT_WITH_RECURSION,
9448 (PRED_LOOP_GUARD_WITH_RECURSION): New predictors.
9450 2016-06-26 John David Anglin <danglin@gcc.gnu.org>
9452 * config/pa/pa.c (pa_output_indirect_call): Rework to combine
9453 output_asm_insn calls and shorten long lines. Output .CALL
9454 argument descriptor using pa_output_arg_descriptor. Add various
9455 inline $$dyncall and other optimizations.
9456 (pa_attr_length_indirect_call): Adjust ordering and lengths.
9458 2016-06-25 Jakub Jelinek <jakub@redhat.com>
9460 PR tree-optimization/71643
9461 * tree-ssa-tail-merge.c (find_clusters_1): Ignore basic blocks with
9464 * tree-ssa-tail-merge.c (deps_ok_for_redirect_from_bb_to_bb): Don't
9465 leak a bitmap if dep_bb is NULL.
9467 PR tree-optimization/71631
9468 * tree-ssa-reassoc.c (reassociate_bb): Pass true as last argument
9469 to rewrite_expr_tree even if negate_result, move new_lhs var
9470 declaration and initialization earlier, for powi_result set afterwards
9471 new_lhs to lhs. For negate_result, use new_lhs instead of tmp
9472 if new_lhs != lhs, and don't shadow gsi var.
9474 2016-06-24 Jan Hubicka <hubicka@ucw.cz>
9476 * predict.c (predict_paths_leading_to, predict_paths_leading_to_edge):
9477 Add in_loop parameter.
9478 (predict_loops): Add loop guard heuristics.
9479 * predict.def (PRED_LOOP_GUARD): New heuristics.
9481 2016-06-24 Jan Hubicka <hubicka@ucw.cz>
9483 * predict.c: Include ipa-utils.h
9484 (tree_bb_level_prediction): Predict recursive calls.
9485 (tree_estimate_probability_bb): Skip inexpensive calls for call
9487 * predict.def (PRED_RECURSIVE_CALL): New.
9489 2016-06-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9491 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): New #define.
9492 (BU_FLOAT128_1): Likewise.
9494 (COPYSIGNQ): Likewise.
9495 (RS6000_BUILTIN_NANQ): Likewise.
9496 (RS6000_BUILTIN_NANSQ): Likewise.
9497 (RS6000_BUILTIN_INFQ): Likewise.
9498 (RS6000_BUILTIN_HUGE_VALQ): Likewise.
9499 * config/rs6000/rs6000.c (rs6000_fold_builtin): New prototype.
9500 (TARGET_FOLD_BUILTIN): New #define.
9501 (rs6000_builtin_mask_calculate): Add TARGET_FLOAT128 entry.
9502 (rs6000_invalid_builtin): Add handling for RS6000_BTM_FLOAT128.
9503 (rs6000_fold_builtin): New target hook implementation, handling
9504 folding of 128-bit NaNs and infinities.
9505 (rs6000_init_builtins): Initialize const_str_type_node; ensure all
9506 entries are filled in to avoid problems during bootstrap
9507 self-test; define builtins for 128-bit NaNs and infinities.
9508 (rs6000_opt_mask): Add entry for float128.
9509 * config/rs6000/rs6000.h (RS6000_BTM_FLOAT128): New #define.
9510 (RS6000_BTM_COMMON): Include RS6000_BTM_FLOAT128.
9511 (rs6000_builtin_type_index): Add RS6000_BTI_const_str.
9512 (const_str_type_node): New #define.
9513 * config/rs6000/rs6000.md (copysign<mode>3 for IEEE128): Convert
9514 to a define_expand that dispatches to either copysign<mode>3_soft
9515 or copysign<mode>3_hard.
9516 (copysign<mode>3_hard): Rename from copysign<mode>3.
9517 (copysign<mode>3_soft): New define_insn.
9518 * doc/extend.texi: Document new builtins.
9520 2016-06-24 Jakub Jelinek <jakub@redhat.com>
9522 * cfgloop.c (flow_loop_dump): Cast nit to uint64_t and print it using
9523 PRIu64 instead of lu.
9525 2016-06-24 Eric Botcazou <ebotcazou@adacore.com>
9528 * tree-inline.c (remap_decl): When fixing up DECL_ORIGINAL_TYPE, just
9531 2016-06-24 Jakub Jelinek <jakub@redhat.com>
9533 PR tree-optimization/71647
9534 * omp-low.c (lower_rec_input_clauses): Convert
9535 omp_clause_aligned_alignment (c) to size_type_node for the
9536 last argument of __builtin_assume_aligned.
9538 2016-06-24 H.J. Lu <hongjiu.lu@intel.com>
9540 * configure.ac (calling ___tls_get_addr via GOT): New
9541 assembler/linker check.
9542 (HAVE_AS_IX86_TLS_GET_ADDR_GOT): New. Defined to 1 if 32-bit
9543 assembler and linker supports calling ___tls_get_addr via GOT.
9544 Otherise, defined to 0.
9545 * config.in: Regenerated.
9546 * configure: Likewise.
9547 * config/i386/constraints.md (Yb): New constraint.
9548 * config/i386/i386.h (reg_class): Add TLS_GOTBASE_REGS.
9549 (REG_CLASS_NAMES): Likewise.
9550 (REG_CLASS_CONTENTS): Likewise.
9551 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Replace
9552 the b constraint with the Yb constraint. Call ___tls_get_addr
9553 via GOT for GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT
9555 (*tls_local_dynamic_base_32_gnu): Likewise.
9556 (*tls_global_dynamic_64_<mode>): Call _tls_get_addr via GOT for
9557 GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT is 1.
9558 (*tls_local_dynamic_base_64_<mode>): Likewise.
9560 2016-06-24 Martin Liska <mliska@suse.cz>
9562 * cfgloop.c (flow_loop_dump): Dump average number of loop iterations.
9563 * cfgloop.h: Change 'struct loop' to 'const struct loop' for a
9565 * cfgloopanal.c (expected_loop_iterations_unbounded): Set a new
9566 argument to true if the expected number of iterations is
9569 2016-06-24 Uros Bizjak <ubizjak@gmail.com>
9571 * configure.ac (HAVE_AS_GOTOF_IN_DATA): Use $as_ix86_gas_32_opt to
9572 assemble for 32bit target.
9573 (HAVE_AS_IX86_TLSGDPLT): Use $as_ix86_gas_32_opt to assemble
9574 and $ld_ix86_gld_32_opt to link for 32bit target.
9575 (HAVE_AS_IX86_TLSLDMPLT): Ditto.
9576 * configure: Regenerate.
9578 2016-06-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9580 * config/arm/arm.c (int_log2): Delete definition and prototype.
9581 (shift_op): Use exact_log2 instead of int_log2.
9582 (vfp3_const_double_for_fract_bits): Likewise.
9584 2016-06-24 Jakub Jelinek <jakub@redhat.com>
9586 * internal-fn.c (expand_arith_set_overflow): New function.
9587 (expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow):
9589 (expand_arith_overflow_result_store): Likewise. Handle precision
9590 smaller than mode precision.
9591 * tree-vrp.c (extract_range_basic): For imag part, handle
9592 properly signed 1-bit precision result.
9593 * doc/extend.texi (__builtin_add_overflow): Document that last
9594 argument can't be pointer to enumerated or boolean type.
9595 (__builtin_add_overflow_p): Document that last argument can't
9596 have enumerated or boolean type.
9598 2016-06-23 Michael Meissner <meissner@linux.vnet.ibm.com>
9599 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9601 * config/rs6000/predicates.md (splat_input_operand): Rework.
9602 Don't allow constants, since the insns that use this predicate
9603 don't support constants. Constants are handled by other insns
9604 that are created via combine. During and after register
9605 allocation, only allow indexed or indirect addresses, and not
9606 general addresses. Only allow modes supported by the hardware.
9607 * config/rs6000/rs6000.c (xxsplitb_constant_p): Update usage
9608 comment. Move check for using VSPLTIS<x> to a common location,
9609 instead of doing it in two different places.
9611 2016-06-23 Jocelyn Mayer <l_indien@magic.fr>
9613 * config/i386/driver-i386.c (host_detect_local_cpu): Set
9614 PROCESSOR_PENTIUMPRO for signature_CENTAUR_ebx family >= 9.
9615 <case PROCESSOR_PENTIMUMPRO>: Pass c7 or nehemiah for
9616 signature_CENTAUR_ebx.
9618 2016-06-23 H.J. Lu <hongjiu.lu@intel.com>
9622 * configure.ac (as_ix86_tls_ldm_opt): Renamed to ...
9623 (as_ix86_gas_32_opt): This.
9624 (ld_ix86_tls_ldm_opt): Renamed to ...
9625 (ld_ix86_gld_32_opt): This.
9626 (R_386_TLS_LDM reloc): Updated.
9627 (R_386_GOT32X reloc): New assembler/linker check.
9628 (HAVE_AS_IX86_GOT32X): New. Defined to 1 if 32-bit assembler and
9629 linker support "jmp *_start@GOT" and "cmpl $0, bar@GOT". Otherise,
9631 * config.in: Regenerated.
9632 * configure: Likewise.
9633 * config/i386/i386.c (ix86_force_load_from_GOT_p): Return
9634 true if HAVE_AS_IX86_GOT32X is 1 in 32-bit mode.
9635 (ix86_legitimate_address_p): Allow UNSPEC_GOT for -fno-plt
9636 if ix86_force_load_from_GOT_p returns true.
9637 (ix86_print_operand_address_as): Also support UNSPEC_GOT if
9638 ix86_force_load_from_GOT_p returns true.
9639 (ix86_expand_move): Generate UNSPEC_GOT in 32-bit mode to load
9640 the external function address via the GOT slot.
9641 (ix86_nopic_noplt_attribute_p): Check both TARGET_64BIT and
9642 HAVE_AS_IX86_GOT32X before returning false.
9643 (ix86_output_call_insn): Generate "%!jmp/call\t*%p0@GOT" in
9644 32-bit mode if ix86_nopic_noplt_attribute_p returns true.
9646 2016-06-23 Eric Botcazou <ebotcazou@adacore.com>
9648 * tree-inline.c (remap_decl): Preserve DECL_ORIGINAL_TYPE invariant.
9650 2016-06-23 Andi Kleen <ak@linux.intel.com>
9652 * Makefile.in: Regenerate.
9653 * doc/install.texi: Document autoprofiledbootstrap.
9655 2016-06-23 Andi Kleen <ak@linux.intel.com>
9657 * config/i386/gcc-auto-profile: New file.
9659 2016-06-23 Martin Liska <mliska@suse.cz>
9662 * predict.c (predict_loops): Revert the hunk that was removed
9665 2016-06-23 Jakub Sejdak <jakub.sejdak@phoesys.com>
9667 * config.gcc: Add support for arm*-*-phoenix* targets.
9668 * config/arm/t-phoenix: New.
9669 * config/phoenix.h: New.
9671 2016-06-23 Uros Bizjak <ubizjak@gmail.com>
9672 H.J. Lu <hongjiu.lu@intel.com>
9675 * config/i386/i386-protos.h (ix86_force_load_from_GOT_p): New.
9676 * config/i386/i386.c (ix86_force_load_from_GOT_p): New function.
9677 (ix86_legitimate_constant_p): Do not allow UNSPEC_GOTPCREL if
9678 ix86_force_load_from_GOT_p returns true.
9679 (ix86_legitimate_address_p): Allow UNSPEC_GOTPCREL if
9680 ix86_force_load_from_GOT_p returns true.
9681 (ix86_print_operand_address_as): Support UNSPEC_GOTPCREL if
9682 ix86_force_load_from_GOT_p returns true.
9683 (ix86_expand_move): Load the external function address via the
9684 GOT slot if ix86_force_load_from_GOT_p returns true.
9685 * config/i386/predicates.md (x86_64_immediate_operand): Return
9686 false for SYMBOL_REFs where ix86_force_load_from_GOT_p returns true.
9687 (x86_64_zext_immediate_operand): Ditto.
9689 2016-06-22 Uros Bizjak <ubizjak@gmail.com>
9691 * config/i386/i386.c (ix86_expand_move): Simplify SYMBOL_REF handling.
9693 2016-06-22 David Malcolm <dmalcolm@redhat.com>
9696 * diagnostic-core.h (pedwarn_at_rich_loc): New prototype.
9697 * diagnostic.c (pedwarn_at_rich_loc): New function.
9698 * spellcheck.h (best_match::best_match): Add a
9699 "best_distance_so_far" optional parameter.
9700 (best_match::set_best_so_far): New method.
9701 (best_match::get_best_distance): New accessor.
9702 (best_match::get_best_candidate_length): New accessor.
9704 2016-06-22 Nick Clifton <nickc@redhat.com>
9706 * dwarf2out.c (scompare_loc_descriptor): Use SCALAR_INT_MODE_P() in
9707 place of GET_MODE_CLASS() == MODE_INT, so that partial integer
9708 modes are accepted as well.
9709 (ucompare_loc_descriptor): Likewise.
9710 (minmax_loc_descriptor): Likewise.
9711 (clz_loc_descriptor): Likewise.
9712 (popcount_loc_descriptor): Likewise.
9713 (bswap_loc_descriptor): Likewise.
9714 (rotate_loc_descriptor): Likewise.
9715 (mem_loc_descriptor): Likewise.
9716 (loc_descriptor): Likewise.
9718 2016-06-22 David Malcolm <dmalcolm@redhat.com>
9720 * common.opt (fdiagnostics-parseable-fixits): New option.
9721 * diagnostic.c: Include "selftest.h".
9722 (print_escaped_string): New function.
9723 (print_parseable_fixits): New function.
9724 (diagnostic_report_diagnostic): Call print_parseable_fixits.
9725 (selftest::assert_print_escaped_string): New function.
9726 (ASSERT_PRINT_ESCAPED_STRING_STREQ): New macro.
9727 (selftest::test_print_escaped_string): New function.
9728 (selftest::test_print_parseable_fixits_none): New function.
9729 (selftest::test_print_parseable_fixits_insert): New function.
9730 (selftest::test_print_parseable_fixits_remove): New function.
9731 (selftest::test_print_parseable_fixits_replace): New function.
9732 (selftest::diagnostic_c_tests): New function.
9733 * diagnostic.h (struct diagnostic_context): Add field
9734 "parseable_fixits_p".
9735 * doc/invoke.texi (Diagnostic Message Formatting Options): Add
9736 -fdiagnostics-parseable-fixits.
9737 (-fdiagnostics-parseable-fixits): New option.
9738 * opts.c (common_handle_option): Handle
9739 -fdiagnostics-parseable-fixits.
9740 * selftest-run-tests.c (selftest::run_tests): Call
9741 selftest::diagnostic_c_tests.
9742 * selftest.h (selftest::diagnostic_c_tests): New prototype.
9744 2016-06-22 Ilya Enkovich <ilya.enkovich@intel.com>
9746 PR tree-optimization/71488
9747 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Support
9748 comparison of boolean vectors.
9749 * tree-vect-stmts.c (vectorizable_comparison): Vectorize comparison
9750 of boolean vectors using bitwise operations.
9752 2016-06-22 Andreas Schwab <schwab@suse.de>
9754 * config/aarch64/aarch64-protos.h (aarch64_elf_asm_named_section):
9757 2016-06-22 Eric Botcazou <ebotcazou@adacore.com>
9759 * function.c (assign_parm_setup_reg): Prevent sharing in another case.
9761 2016-06-22 Bernd Edlinger <bernd.edlinger@hotmail.de>
9763 * config/i386/i386.c (print_reg): Emit an error message on attempt to
9766 2016-06-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9768 * config/arm/arm.c (arm_cortex_a73_tune): New struct.
9769 * config/arm/arm-cores.def (cortex-a73): New entry.
9770 (cortex-a73.cortex-a35): Likewise.
9771 (cortex-a73.cortex-a53): Likewise.
9772 * config/arm/arm-tables.opt: Regenerate.
9773 * config/arm/arm-tune.md: Likewise.
9774 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle mcpu=cortex-a73,
9775 mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
9776 * config/arm/t-aprofile: Handle mcpu=cortex-a73,
9777 mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
9778 * doc/invoke.texi (ARM Options): Document cortex-a73,
9779 cortex-a73.cortex-a35 and cortex-a73.cortex-a53.
9781 2016-06-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9783 * config/aarch64/aarch64.c (cortexa73_tunings): New struct.
9784 * config/aarch64/aarch64-cores.def (cortex-a73): New entry.
9785 (cortex-a73.cortex-a35): Likewise.
9786 (cortex-a73.cortex-a53): Likewise.
9787 * config/aarch64/aarch64-tune.md: Regenerate.
9788 * doc/invoke.texi (AArch64 Options): Document cortex-a73,
9789 cortex-a73.cortex-a35 and cortex-a73.cortex-a53 arguments to
9792 2016-06-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9794 * configure.ac (gcc_cv_as_compress_debug): Remove
9795 --compress-debug-sections as extra as switch.
9796 Handle gas --compress-debug-sections=type.
9797 (gcc_cv_ld_compess_debug): Remove bogus ld_date check.
9798 Handle gld --compress-debug-sections=type.
9799 * configure: Regenerate.
9801 2016-06-21 Andrew Burgess <andrew.burgess@embecosm.com>
9803 * bb-reorder.c (pass_partition_blocks::gate): Update comment.
9805 2016-06-21 John David Anglin <danglin@gcc.gnu.org>
9807 * gcov-tool.c (profile_rewrite): Use int64_t instead of long long.
9808 (do_rewrite): likewise.
9810 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9812 * common/config/mep/mep-common.c: Remove.
9813 * config.gcc: Remove mep-* support.
9814 * config/mep/constraints.md: Remove.
9815 * config/mep/default.h: Remove.
9816 * config/mep/intrinsics.h: Remove.
9817 * config/mep/intrinsics.md: Remove.
9818 * config/mep/ivc2-template.h: Remove.
9819 * config/mep/mep-c5.cpu: Remove.
9820 * config/mep/mep-core.cpu: Remove.
9821 * config/mep/mep-default.cpu: Remove.
9822 * config/mep/mep-ext-cop.cpu: Remove.
9823 * config/mep/mep-intrin.h: Remove.
9824 * config/mep/mep-ivc2.cpu: Remove.
9825 * config/mep/mep-pragma.c: Remove.
9826 * config/mep/mep-protos.h: Remove.
9827 * config/mep/mep.c: Remove.
9828 * config/mep/mep.cpu: Remove.
9829 * config/mep/mep.h: Remove.
9830 * config/mep/mep.md: Remove.
9831 * config/mep/mep.opt: Remove.
9832 * config/mep/predicates.md: Remove.
9833 * config/mep/t-mep: Remove.
9834 * doc/install.texi: Remove mep-* documentation.
9835 * doc/md.texi: Likewise.
9837 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9839 * config.gcc: Remove support for avr-rtems.
9840 * config/avr/gen-avr-mmcu-specs.c: Likewise.
9841 * config/avr/rtems.h: Remove.
9842 * config/avr/t-rtems: Remove.
9844 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9846 * config.gcc: Remove m32r-rtems support.
9847 * config/m32r/rtems.h: Remove.
9849 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9851 * config.gcc: Remove h8300-rtems support.
9852 * config/h8300/rtems.h: Remove.
9853 * config/h8300/t-rtems: Remove.
9855 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9857 * config.gcc: Remove support for knetbsd.
9858 * configure.ac: Likewise.
9859 * config/i386/knetbsd-gnu.h: Remove. * config/i386/knetbsd-gnu64.h: Remove.
9860 * config/knetbsd-gnu.h: Remove.
9861 * configure: Regenerate.
9863 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9865 * config.gcc: Remove support for openbsd 2 and 3.
9866 * config/openbsd-oldgas.h: Remove.
9868 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9870 * config.gcc: Remove interix support.
9871 * config/i386/i386-interix.h: Remove.
9872 * config/i386/interix.opt: Remove.
9873 * config/i386/t-interix: Remove.
9874 * configure: Regenerate.
9875 * configure.ac: Remove interix support.
9876 * doc/install.texi: Remove interix documentation.
9878 2016-06-21 Kelvin Nilsen <kelvin@gcc.gnu.org>
9880 * config/rs6000/rs6000.h: Add conditional preprocessing directives
9881 to disable Power9-specific compiler features if HAVE_AS_POWER9 is
9884 2016-06-21 Eric Botcazou <ebotcazou@adacore.com>
9886 * tree.c (verify_type_variant): Skip TYPE_SIZE and TYPE_SIZE_UNIT if
9887 they are both PLACEHOLDER_EXPRs.
9889 2016-06-21 Michael Meissner <meissner@linux.vnet.ibm.com>
9891 * stor-layout.c (layout_type): Move setting complex MODE to
9892 layout_type, instead of setting it ahead of time by the caller.
9893 * tree.c (build_complex_type): Likewise.
9895 2016-06-21 Martin Liska <mliska@suse.cz>
9897 * predict.c (force_edge_cold): Replace imposisble with
9900 2016-06-21 Ilya Verbin <ilya.verbin@intel.com>
9902 * config/i386/i386.c (ix86_emit_swsqrtsf): Emit vrsqrt28ps.
9903 * config/i386/sse.md (define_expand "rsqrtv16sf2"): New.
9905 2016-06-21 Ilya Verbin <ilya.verbin@intel.com>
9907 * config/i386/i386.c (ix86_emit_swdivsf): Emit vrcp28ps.
9909 2016-06-21 H.J. Lu <hongjiu.lu@intel.com>
9910 Ilya Enkovich <ilya.enkovich@intel.com>
9913 * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
9914 New member function to convert V1TImode register to SUBREG
9915 TImode in debug insn.
9916 (timode_scalar_chain::convert_insn): Call fix_debug_reg_uses
9917 after changing register mode to V1TImode.
9919 2016-06-21 Virendra Pathak <virendra.pathak@broadcom.com>
9921 * config/aarch64/aarch64-cores.def (vulcan): New core.
9922 * config/aarch64/aarch64-tune.md: Regenerate.
9923 * doc/invoke.texi: Document vulcan as an available option.
9925 2016-06-21 Eric Botcazou <ebotcazou@adacore.com>
9927 * cse.c (canon_asm_operands): New function extracted from...
9928 (canonicalize_insn): ...here. Call it to canonicalize an ASM_OPERANDS
9929 either standalone or member of a PARALLEL.
9931 2016-06-21 Georg-Johann Lay <avr@gjlay.de>
9934 * config/avr/gen-avr-mmcu-specs.c (print_mcu):
9935 [*link_data_start]: Wrap -Tdata into %{!Tdata:...}.
9936 [*link_text_start]: Wrap -Ttext into %{!Ttext:...}.
9938 2016-06-21 Georg-Johann Lay <avr@gjlay.de>
9941 * config/avr/avr.md (movqi): Only handle loading subreg:qi of
9942 constant addresses if can_create_pseudo_p.
9944 2016-06-21 Jakub Jelinek <jakub@redhat.com>
9946 PR tree-optimization/71588
9947 * tree-ssa-strlen.c (valid_builtin_call): New function.
9948 (adjust_last_stmt, handle_builtin_memset, strlen_optimize_stmt): Use
9951 2016-06-20 Jakub Jelinek <jakub@redhat.com>
9954 * tree-ssa-uninit.c (warn_uninit): If EXPR and VAR are NULL,
9955 see if T isn't anonymous SSA_NAME with COMPLEX_EXPR created
9956 for conversion of scalar user var to complex type and use the
9957 underlying SSA_NAME_VAR in that case. If EXPR is still NULL,
9960 PR rtl-optimization/71591
9961 * toplev.c (toplev::run_self_tests): If no_backend, complain and
9962 don't run any tests.
9964 2016-06-20 Hans-Peter Nilsson <hp@axis.com>
9967 * config/cris/cris.c (cris_asm_output_mi_thunk): Add missing "ba"
9968 delay-slot "nop" for PIC with CRIS v32. Also add missing leading
9969 space for PIC with non-v32 and the common non-PIC "jump".
9971 2016-06-20 Jakub Jelinek <jakub@redhat.com>
9974 * config/i386/i386.c (ix86_fp_cmp_code_to_pcmp_immediate): Fix up
9975 returned values and add UN*/LTGT/*ORDERED cases with values matching
9976 D operand modifier on vcmp for AVX.
9978 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com>
9980 * config/aarch64/aarch64.opt
9981 (mpc-relative-literal-loads): Rename internal option name.
9982 * config/aarch64/aarch64.c
9983 (aarch64_nopcrelative_literal_loads): Rename to
9984 aarch64_pcrelative_literal_loads.
9985 (aarch64_expand_mov_immediate): Likewise.
9986 (aarch64_secondary_reload): Likewise.
9987 (aarch64_can_use_per_function_literal_pools_p): Likewise.
9988 (aarch64_override_options_after_change_1): Rename and simplify logic.
9989 (aarch64_classify_symbol): Merge large model checks into switch,
9990 remove pc-relative load check.
9992 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
9994 * config/arm/aarch-cost-tables.h (cortexa53_extra_costs): Make FP
9995 costs relative to the cost of a register move.
9997 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
9999 * config/aarch64/arm_neon.h (vcvt_n_f64_s64): New.
10000 (vcvt_n_f64_u64): Likewise.
10001 (vcvt_n_s64_f64): Likewise.
10002 (vcvt_n_u64_f64): Likewise.
10003 (vcvt_f64_s64): Likewise.
10004 (vrecpe_f64): Likewise.
10005 (vcvt_f64_u64): Likewise.
10006 (vrecps_f64): Likewise.
10008 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
10010 * config/aarch64/aarch64.md
10011 (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3): Add attributes to
10013 (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>3): Likewise. Correct
10015 * config/aarch64/aarch64-builtins.c
10016 (aarch64_types_binop_uss_qualifiers): Delete.
10017 (TYPES_BINOP_USS): Likewise.
10018 (aarch64_types_binop_sus_qualifiers): Likewise.
10019 (TYPES_BINOP_SUS): Likewise.
10020 (aarch64_types_fcvt_from_unsigned_qualifiers): New.
10021 (TYPES_FCVTIMM_SUS): Likewise.
10022 * config/aarch64/aarch64-simd-builtins.def (scvtf): Use SHIFTIMM
10024 (ucvtf): Use FCVTIMM_SUS rather than BINOP_SUS.
10025 (fcvtzs): Use SHIFTIMM rather than BINOP.
10026 (fcvtzu): Use SHIFTIMM_USS rather than BINOP_USS.
10028 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
10030 * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): Make FP
10031 costs relative to the cost of a register move.
10033 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com>
10035 * config/aarch64/aarch64.c (aarch64_modes_tieable_p):
10036 Allow scalar/single vector modes to be tieable.
10038 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com>
10040 * config/arm/cortex-a57.md (cortex_a57_fp_cpys): Add fcsel.
10042 2016-06-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10044 * params.def (PARAM_ALIGN_LOOP_ITERATIONS): Use "alignment" instead of
10046 * tree.h (TYPE_ALIGN): Likewise.
10048 2016-06-20 Georg-Johann Lay <avr@gjlay.de>
10051 * config/avr/avr.md (movqi): Handle loading subreg:qi (const).
10053 2016-06-20 Georg-Johann Lay <avr@gjlay.de>
10055 * config/avr/avr.c (avr_print_operand): Fix "format not a string
10056 literal" build warnings.
10057 (avr_print_operand_address): Dito.
10059 2016-06-19 David Edelsohn <dje.gcc@gmail.com>
10062 * config/rs6000/aix51.h (TARGET_EXTRA_BUILTINS): Define as 0.
10063 * config/rs6000/aix43.h (TARGET_EXTRA_BUILTINS): Same.
10065 2016-06-18 John David Anglin <danglin@gcc.gnu.org>
10067 * config/pa/pa.h (TARGET_LONG_PIC_PCREL_CALL): Remove.
10069 2016-06-18 Eric Botcazou <ebotcazou@adacore.com>
10072 * reload1.c (reload): Pass 0 to finish_spills when called because
10073 update_eliminables_and_spill returns true and remove did_spill.
10074 (finish_spills): Adjust comment and document GLOBAL parameter.
10076 2016-06-17 DJ Delorie <dj@redhat.com>
10079 * config/rl78/rl78-expand.c (umulqihi3): Enable for G10.
10080 * config/rl78/rl78-virtual.c (umulhi3_shift_virt): Likewise.
10081 (umulqihi3_virt): Likewise.
10082 * config/rl78/rl78-real.c (umulhi3_shift_real): Likewise.
10083 (umulqihi3_real): Likewise.
10085 2016-06-17 Martin Liska <mliska@suse.cz>
10087 * tree-ssa-reassoc.c (transform_add_to_multiply): Use auto_vec.
10089 2016-06-17 Martin Liska <mliska@suse.cz>
10091 * predict.def: PRED_LOOP_EXIT from 92 to 85.
10093 2016-06-17 James Greenhalgh <james.greenhalgh@arm.com>
10095 * config/arm/arm_neon.h (vadd_f32): replace __FAST_MATH with
10097 (vaddq_f32): Likewise.
10098 (vmul_f32): Likewise.
10099 (vmulq_f32): Likewise.
10100 (vsub_f32): Likewise.
10101 (vsubq_f32): Likewise.
10103 2016-06-17 Bin Cheng <bin.cheng@arm.com>
10105 PR tree-optimization/71347
10106 * tree-ssa-loop-ivopts.c (determine_group_iv_cost_address): Compute
10107 cost for all uses in group.
10109 2016-06-17 Bin Cheng <bin.cheng@arm.com>
10111 * tree-vect-loop.c (vect_create_epilog_for_reduction): Only
10112 insert gimple seq if it's not empty.
10114 2016-06-17 Bin Cheng <bin.cheng@arm.com>
10116 * tree-vectorizer.h (struct dr_with_seg_len): Remove class
10118 * tree-vect-data-refs.c (operator ==): Handle DR_OFFSET directly,
10119 rather than OFFSET.
10120 (comp_dr_with_seg_len_pair): Ditto.
10121 (vect_prune_runtime_alias_test_list): Ditto. Also Canonicalize
10122 struct dr_with_seg_len_pair against DR_OFFSET.
10123 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Handle
10124 DR_OFFSET directly.
10126 2016-06-17 Szabolcs Nagy <szabolcs.nagy@arm.com>
10128 * config/aarch64/geniterators.sh: Handle parenthesised conditions.
10130 2016-06-16 John David Anglin <danglin@gcc.gnu.org>
10132 * config/pa/pa.c (pa_output_pic_pcrel_sequence): New.
10133 (pa_output_lbranch): Use pa_output_pic_pcrel_sequence.
10134 (pa_output_millicode_call): Likewise.
10135 (pa_output_call): Likewise.
10136 (pa_output_indirect_call): Likewise.
10137 (pa_asm_output_mi_thunk): Likewise.
10139 2016-06-16 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
10141 * doc/invoke.texi (x86 Options): Fix -mno-fp-ret-in-387 typo.
10143 2016-06-16 Martin Liska <mliska@suse.cz>
10145 * predict.c (combine_predictions_for_insn): When we find a first
10146 match predictor, we should consider just predictors with
10147 PRED_FLAG_FIRST_MATCH. Print either first match (if any) or
10148 DS theory predictor.
10149 (combine_predictions_for_bb): Likewise.
10151 2016-06-16 Jakub Jelinek <jakub@redhat.com>
10153 * gimplify.c (gimplify_scan_omp_clauses): Handle COMPONENT_REFs
10154 with base of reference to struct.
10156 2016-06-16 Uros Bizjak <ubizjak@gmail.com>
10158 * doc/invoke.texi (x86 Options): Document -m80387 and -mhard-float.
10160 2016-06-16 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
10163 * config/avr/avr.c (avr_asm_init_sections): Remove setup of
10164 progmem_swtable_section.
10165 (progmem_swtable_section): Remove.
10166 (avr_asm_function_rodata_section): Remove.
10167 (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
10168 * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION: Define to 1.
10170 2016-06-16 Jocelyn Mayer <l_indien@magic.fr>
10172 * config/i386/driver-i386.c (host_detect_local_cpu): Set
10173 PROCESSOR_K8 for signature_CENTAUR_ebx with has_longmode.
10174 <case PROCESSOR_K8>: Pass nano-3000, nano, eden-x2 or k8 for
10175 signature_CENTAUR_ebx.
10176 * config/i386/i386.c (ix86_option_override_internal): Add
10177 definitions for VIA c7, samuel-2, nehemiah, esther, eden-x2, eden-x4,
10178 nano, nano-1000, nano-2000, nano-3000, nano-x2 and nano-x4.
10179 * doc/invoke.texi (x86 Options): Document new VIA -march entries.
10181 2016-06-16 Martin Liska <mliska@suse.cz>
10183 * predict.def: Add fortran loop preheader predictor.
10184 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Properly
10185 fold IFN_BUILTIN_EXPECT with a known constant argument.
10187 2016-06-16 Martin Liska <mliska@suse.cz>
10189 * predict.def: Add 'Fortran' to display text of all
10190 PRED_FORTRAN_* predictors.
10192 2016-06-16 Uros Bizjak <ubizjak@gmail.com>
10195 * config/ia64/ia64.c (enum ia64_builtins) [IA64_BUILTIN_NANQ]: New.
10196 [IA64_BUILTIN_NANSQ]: Ditto.
10197 (ia64_fold_builtin): New function.
10198 (TARGET_FOLD_BUILTIN): New define.
10199 (ia64_init_builtins) Declare const_string_type node.
10200 Add __builtin_nanq and __builtin_nansq builtin functions.
10201 (ia64_expand_builtin): Handle IA64_BUILTIN_NANQ and IA64_BUILTIN_NANSQ.
10203 2016-06-16 Nick Clifton <nickc@redhat.com>
10205 * config/msp430/msp430-opts.h (msp430_hwmult_types): Add
10206 MSP430_HWMULT_ prefix to enum values.
10207 (msp430_regions): Add MSP430_REGION_ prefix to enum values.
10208 * config/msp430/msp430.c: Update use of enum values.
10209 * config/msp430/msp430.md: Likewise.
10210 * config/msp430/msp430.opt: Likewise.
10212 2016-06-16 Jan Hubicka <hubicka@ucw.cz>
10214 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Fix estimation
10215 of comparsions in the last iteration.
10217 2016-06-16 Claudiu Zissulescu <claziss@synopsys.com>
10218 Joern Rennecke <joern.rennecke@embecosm.com>
10220 * config/arc/arc.c (arc_print_operand_address): Handle pc-relative
10222 (arc_needs_pcl_p): Add GOTOFFPC.
10223 (arc_legitimate_pic_addr_p): Likewise.
10224 (arc_output_pic_addr_const): Likewise.
10225 (arc_legitimize_pic_address): Generate a pc-relative address using
10227 (arc_output_libcall): Use @pcl syntax.
10228 (arc_delegitimize_address_0): Delegitimize ARC_UNSPEC_GOTOFFPC.
10229 * config/arc/arc.md ("unspec"): Add ARC_UNSPEC_GOTOFFPC.
10230 (*movsi_insn): Use @pcl syntax.
10231 (doloop_begin_i): Likewise.
10233 2016-06-16 Martin Liska <mliska@suse.cz>
10235 * predict.def: Define a new predictor.
10237 2016-06-16 Claudiu Zissulescu <claziss@synopsys.com>
10239 * config/arc/arc.opt (mtp-regno): Update text.
10241 2016-06-16 Renlin Li <renlin.li@arm.com>
10243 * config/aarch64/aarch64.c (aarch64_legitimize_address): Fix a typo.
10245 2016-06-16 Jakub Jelinek <jakub@redhat.com>
10248 * config/i386/i386.md (setcc + movzbl peephole2): Use reg_set_p.
10249 (setcc + and peephole2): Likewise.
10251 PR rtl-optimization/71532
10252 * cse.c (cse_insn): For const/pure calls, invalidate argument passing
10255 2016-06-15 Michael Meissner <meissner@linux.vnet.ibm.com>
10257 * config/rs6000/vsx.md (VSINT_84): Add DImode to enable loading
10258 DImode constants with XXSPLTIB in vector registers.
10259 (vsx_extract_<mode>, V2DImode/V2DFmode): Combine both
10260 vsx_extract_<mode>_internal{1,2} into a single insn that handles
10261 direct move (both ISA 2.07 and ISA 3.0 versions), and optimizes
10262 extraction of the element at the top of the register as a scalar
10264 (vsx_extract_<mode>_internal1): Likewise.
10265 (vsx_extract_<mode>_internal2): Likewise.
10266 * config/rs6000/constraints.md (wi constraint): Remove a comment
10267 about DImode not being allowed in Altivec registers.
10268 (wB constraint): New constraint for constants that can be
10269 generated in Altivec registers with VSPLTISW/VUPKHSW.
10270 * config/rs6000/predicates.md (xxspltib_constant_split): Update
10272 (xxspltib_constant_nosplit): Likewise.
10273 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Add
10274 support for -mupper-regs-di to enable DImode to go into Altivec
10276 (POWERPC_MASKS): Likewise.
10277 (power7 cpu): Likewise.
10278 * config/rs6000/rs6000.opt (-mupper-regs-di): Likewise.
10279 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
10280 for DImode being allowed in Altivec registers. Update wi/wj
10281 constraints. Set scalar_in_vmx_p flag.
10282 (rs6000_option_override_internal): Add checks for -mupper-regs-di.
10283 (xxspltib_constant_p): Allow CONST_INT's with VOIDmode. Don't
10284 return true if we could use VSPLTISW/VUPKHSW instead of XXSPLTIB.
10285 (rs6000_opt_masks): Add -mupper-regs-di.
10286 * config/rs6000/rs6000.md (lfiwax): Update clobbers that don't use
10287 direct move to use wi and not wj.
10288 (lfiwzx): Likewise.
10289 (floatsi<mode>2_lfiwax_mem): Combine alternatives into a single
10291 (floatunssi<mode>2_lfiwzx_mem): Likewise.
10292 (fix_trunc<mode>di2_fctidz): Change second alternative to allow
10293 any VSX register, instead of just Altivec registers, to allow
10294 either operand to be an Altivec register or both.
10295 (fixuns_trunc<mode>di2_fctiduz): Likewise.
10296 (movdi_internal32): Add support for -mupper-regs-di. Add support
10297 to load constants via XXSPLTIB or VSPLTISW. Add spacing to allow
10298 the alternatives and attributes to be lined up to be easier to
10300 (movdi_internal64): Likewise.
10301 (64-bit DImode splitters): Change predicates to only split loading
10302 up GPR registers. Add splits for using XXSPLTIB or VSPLTISW to
10303 load constants in ISA 3.0 or ISA 2.07 respectively.
10304 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
10305 -mupper-regs-di. Update -mupper-regs-df and -mupper-regs-sf to
10306 mention -mcpu=power9 sets these options.
10307 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document the
10310 2016-06-15 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
10313 * config/avr/avr.c (avr_set_current_function): Warn misspelled
10314 interrupt/ signal handler if -Wmisspelled-isr flag is enabled.
10315 * config/avr/avr.opt (Wmisspelled-isr): New warning flag. Enabled
10316 by default to warn misspelled interrupt/ signal handler.
10317 * doc/invoke.texi (AVR Options): Document it. Update description
10318 for -nodevicelib option.
10320 2016-06-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10322 * config/aarch64/aarch64-simd.md (aarch64_<sur>shll_n<mode>): Clean
10323 up parentheses. Use GET_MODE_UNIT_BITSIZE.
10324 (aarch64_<sur>shll2_n<mode>): Likewise.
10326 2016-06-15 Ilya Enkovich <ilya.enkovich@intel.com>
10328 PR middle-end/71529
10329 * ipa-chkp.c (chkp_build_instrumented_fndecl): Fix
10330 DECL_CONTEXT for copied arguments.
10332 2016-06-15 Alan Hayward <alan.hayward@arm.com>
10334 PR tree-optimization/71483
10335 * tree-vect-loop.c (vectorizable_live_operation): Pick correct index
10338 2016-06-15 Martin Liska <mliska@suse.cz>
10340 * predict.c (tree_predict_by_opcode): Call predict_edge_def
10341 instead of predict_edge w/o a probability.
10343 2016-06-15 Alan Hayward <alan.hayward@arm.com>
10345 PR tree-optimization/71439
10346 * tree-vect-loop.c (vect_analyze_loop_operations): Additional check for
10349 2016-06-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10351 * ifcvt.c (bb_ok_for_noce_multiple_sets): Allow simple lowpart
10352 register subregs in SET_SRC.
10354 2016-06-15 Richard Biener <rguenther@suse.de>
10356 * tree-vect-stmts.c (vectorizable_store): Remove strided grouped
10357 store restrictions.
10359 2016-06-15 Richard Biener <rguenther@suse.de>
10361 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Do
10362 not consider dependences between accesses that belong to the
10364 (vect_analyze_data_ref_dependences): Do not analyze read-read
10365 or self-dependences.
10367 2016-06-14 David Malcolm <dmalcolm@redhat.com>
10369 * spellcheck-tree.c: Include spellcheck-tree.h rather than
10371 (find_closest_identifier): Reimplement in terms of
10372 best_match<tree,tree>.
10373 * spellcheck-tree.h: New file.
10374 * spellcheck.c (struct edit_distance_traits<const char *>): New
10376 (find_closest_string): Reimplement in terms of
10377 best_match<const char *, const char *>.
10378 * spellcheck.h (levenshtein_distance): Move prototype of tree-based
10379 overload to spellcheck-tree.h.
10380 (find_closest_identifier): Likewise.
10381 (struct edit_distance_traits<T>): New template.
10382 (class best_match): New class.
10384 2016-06-14 David Malcolm <dmalcolm@redhat.com>
10386 * selftest-run-tests.c (selftest::run_tests): Call
10387 selftest::spellcheck_tree_c_tests.
10388 * selftest.h (selftest::spellcheck_tree_c_tests): New decl.
10389 * spellcheck-tree.c: Include selftest.h and stringpool.h.
10390 (selftest::test_find_closest_identifier): New function.
10391 (selftest::spellcheck_tree_c_tests): New function.
10392 * spellcheck.c (selftest::test_find_closest_string): Verify that
10393 the order of the vec does not affect the results for this case.
10394 (selftest::test_data): New array.
10395 (selftest::test_metric_conditions): New function.
10396 (selftest::spellcheck_c_tests): Add a test of case-comparison.
10397 Call selftest::test_metric_conditions.
10399 2016-06-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10401 * config/rs6000/rs6000-builtin.def (commentary): Typo.
10402 (BU_P9_MISC_1): Likewise.
10403 (BU_P9_64BIT_MISC_0): Likewise.
10404 (BU_P9_MISC_0): Likewise.
10406 2016-06-14 David Malcolm <dmalcolm@redhat.com>
10408 * gcc-rich-location.c
10409 (gcc_rich_location::add_fixit_misspelled_id): New method.
10410 * gcc-rich-location.h
10411 (gcc_rich_location::add_fixit_misspelled_id): Add decl.
10413 2016-06-14 Andreas Tobler <andreast@gcc.gnu.org>
10415 * config/arm/freebsd.h: Only enable unaligned access for armv6 on
10416 FreeBSD 11 and above.
10418 2016-06-14 Uros Bizjak <ubizjak@gmail.com>
10420 * config/i386/i386.md (signbittf2): Emit sse_movmskps for TARGET_SSE.
10422 2016-06-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10424 * expmed.h: Close parenthesis in "at your option" in copyright
10426 * lower-subreg.h: Likewise.
10428 2016-06-14 Richard Biener <rguenther@suse.de>
10430 PR middle-end/71526
10431 * genmatch.c (expr::gen_transform): Use in_type for comparisons
10434 2015-06-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10436 * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
10438 (aarch64_rtx_costs): Use it. Rewrite CONST_INT_P (op1) case to handle
10439 mask+shift version.
10440 * config/aarch64/aarch64-protos.h (aarch64_mask_and_shift_for_ubfiz_p):
10442 * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Replace
10443 matching condition with aarch64_mask_and_shift_for_ubfiz_p.
10445 2016-06-14 Richard Biener <rguenther@suse.de>
10447 PR tree-optimization/71522
10448 * tree-ssa.c (non_rewritable_lvalue_p): Do not rewrite non-float
10449 copying into float copying.
10451 2016-06-14 Jakub Jelinek <jakub@redhat.com>
10453 PR tree-optimization/71520
10454 * tree-ssa-tail-merge.c (find_duplicate): Handle labels.
10455 (replace_block_by): Move user labels from bb1 to bb2.
10457 2016-06-14 Richard Biener <rguenther@suse.de>
10459 PR middle-end/71310
10461 * expr.h (get_bit_range): Declare.
10462 * expr.c (get_bit_range): Export.
10463 * fold-const.c (optimize_bit_field_compare): Use get_bit_range and
10464 word_mode again to constrain the bitfield access.
10466 2016-06-14 Richard Biener <rguenther@suse.de>
10468 PR tree-optimization/71521
10469 * tree-vrp.c (extract_range_from_binary_expr_1): Guard
10470 division int_const_binop against zero divisor.
10472 2016-06-13 Uros Bizjak <ubizjak@gmail.com>
10474 * config/i386/i386.md (signbittf2): New expander.
10475 * config/i386/sse.md (ptesttf2): New insn pattern.
10477 2016-06-13 David Malcolm <dmalcolm@redhat.com>
10480 * input.c (selftest::test_reading_source_line): Avoid reading from
10481 __FILE__ by creating a tempfile with known content and reading
10484 2016-06-13 David Malcolm <dmalcolm@redhat.com>
10486 * pretty-print.c (assert_pp_format_colored): Skip the test if
10488 (test_pp_format): Remove comment about GCC_COLORS.
10490 2016-06-13 David Malcolm <dmalcolm@redhat.com>
10492 * input.c (test_reading_source_line): Use SELFTEST_LOCATION.
10493 * pretty-print.c (assert_pp_format_va): Add location param and use
10494 it with ASSERT_STREQ_AT.
10495 (assert_pp_format): Add location param and pass it to
10496 assert_pp_format_va.
10497 (assert_pp_format_colored): Likewise.
10498 (ASSERT_PP_FORMAT_1): New.
10499 (ASSERT_PP_FORMAT_2): New.
10500 (ASSERT_PP_FORMAT_3): New.
10501 (test_pp_format): Provide SELFTEST_LOCATION throughout, either
10502 explicitly, or implicitly via the above macros.
10503 * selftest.c (selftest::pass): Use a selftest::location rather
10504 than file and line.
10505 (selftest::fail): Likewise. Print the function name.
10506 (selftest::fail_formatted): Likewise.
10507 (selftest::assert_streq): Use a selftest::location rather than
10509 * selftest.h (selftest::location): New struct.
10510 (SELFTEST_LOCATION): New macro.
10511 (selftest::pass): Accept a const location & rather than file
10513 (selftest::fail): Likewise.
10514 (selftest::fail_formatted): Likewise.
10515 (selftest::assert_streq): Likewise.
10516 (ASSERT_TRUE): Update for above changes, using SELFTEST_LOCATION.
10517 (ASSERT_FALSE): Likewise.
10518 (ASSERT_EQ): Likewise.
10519 (ASSERT_NE): Likewise.
10520 (ASSERT_STREQ): Likewise.
10521 (ASSERT_PRED1): Likewise.
10522 (ASSERT_STREQ_AT): New macro.
10524 2016-06-13 David Malcolm <dmalcolm@redhat.com>
10526 * selftest.c (selftest::fail_formatted): New function.
10527 (selftest::assert_streq): New function.
10528 * selftest.h (selftests::fail_formatted): New decl.
10529 (selftest::assert_streq): New decl.
10530 (ASSERT_STREQ): Reimplement in terms of selftest::assert_streq.
10532 2016-06-13 Jeff Law <law@redhat.com>
10534 PR tree-optimization/71403
10535 * tree-ssa-threadbackward.c
10536 (convert_and_register_jump_thread_path): No longer accept reference
10537 to path. Do not pop items off the path anymore.
10538 (fsm_find_control_statement_thread_paths): Do not allow threading
10539 to a deeper loop nest. Pop the last item off the path here rather
10540 than in convert_and_register_jump_thread_path.
10542 2016-06-13 Evandro Menezes <e.menezes@samsung.com>
10543 Wilco Dijkstra <Wilco.Dijkstra@arm.com>
10545 [AArch64] Emit division using the Newton series
10547 * config/aarch64/aarch64-protos.h
10548 (cpu_approx_modes): Add new member "division".
10549 (aarch64_emit_approx_div): Declare new function.
10550 * config/aarch64/aarch64.c
10551 (generic_approx_modes): New member "division".
10552 (exynosm1_approx_modes): Likewise.
10553 (xgene1_approx_modes): Likewise.
10554 (aarch64_emit_approx_div): Define new function.
10555 * config/aarch64/aarch64.md ("div<mode>3"): New expansion.
10556 * config/aarch64/aarch64-simd.md ("div<mode>3"): Likewise.
10557 * config/aarch64/aarch64.opt (-mlow-precision-div): Add new option.
10558 * doc/invoke.texi (-mlow-precision-div): Describe new option.
10560 2016-06-13 Evandro Menezes <e.menezes@samsung.com>
10561 Wilco Dijkstra <wilco.dijkstra@arm.com>
10563 [AArch64] Emit square root using the Newton series
10565 * config/aarch64/aarch64-protos.h
10566 (aarch64_emit_approx_rsqrt): Replace with new function
10567 "aarch64_emit_approx_sqrt".
10568 (cpu_approx_modes): New member "sqrt".
10569 * config/aarch64/aarch64.c
10570 (generic_approx_modes): New member "sqrt".
10571 (exynosm1_approx_modes): Likewise.
10572 (xgene1_approx_modes): Likewise.
10573 (aarch64_emit_approx_rsqrt): Replace with new function
10574 "aarch64_emit_approx_sqrt".
10575 (aarch64_override_options_after_change_1): Handle new option.
10576 * config/aarch64/aarch64-simd.md
10577 (rsqrt<mode>2): Use new function instead.
10578 (sqrt<mode>2): New expansion and insn definitions.
10579 * config/aarch64/aarch64.md: Likewise.
10580 * config/aarch64/aarch64.opt
10581 (mlow-precision-sqrt): Add new option description.
10582 * doc/invoke.texi (mlow-precision-sqrt): Likewise.
10584 2016-06-13 Evandro Menezes <e.menezes@samsung.com>
10586 [AArch64] Add more choices for the reciprocal square root approximation
10588 Allow a target to prefer such operation depending on the operation mode.
10590 * config/aarch64/aarch64-protos.h
10591 (AARCH64_APPROX_MODE): New macro.
10592 (AARCH64_APPROX_{NONE,ALL}): Likewise.
10593 (cpu_approx_modes): New structure.
10594 (tune_params): New member "approx_modes".
10595 * config/aarch64/aarch64-tuning-flags.def
10596 (AARCH64_EXTRA_TUNE_APPROX_RSQRT): Remove macro.
10597 * config/aarch64/aarch64.c
10598 (generic_approx_modes): New core "cpu_approx_modes" structure.
10599 (exynosm1_approx_modes): Likewise.
10600 (xgene1_approx_modes): Likewise.
10601 (generic_tunings): New member "approx_modes".
10602 (cortexa35_tunings): Likewise.
10603 (cortexa53_tunings): Likewise.
10604 (cortexa57_tunings): Likewise.
10605 (cortexa72_tunings): Likewise.
10606 (exynosm1_tunings): Likewise.
10607 (thunderx_tunings): Likewise.
10608 (xgene1_tunings): Likewise.
10609 (use_rsqrt_p): New argument for the mode and use new member from
10611 (aarch64_builtin_reciprocal): Devise mode from builtin.
10612 (aarch64_optab_supported_p): New argument for the mode.
10613 * doc/invoke.texi (-mlow-precision-recip-sqrt): Reword description.
10615 2016-06-13 Kelvin Nilsen <kelvin@gcc.gnu.org>
10617 * config/rs6000/rs6000.h (RS6000_BTM_COMMON): Add the
10618 RS6000_BTM_MODULO flag into the set of flags that are considered
10619 to be part of the common configuration.
10621 2016-06-13 Kelvin Nilsen <kelvin@gcc.gnu.org>
10623 * config/rs6000/altivec.h (vec_absd): New macro for vector absolute
10624 difference unsigned.
10625 (vec_absdb): New macro for vector absolute difference unsigned
10627 (vec_absdh): New macro for vector absolute difference unsigned
10629 (vec_absdw): New macro for vector absolute difference unsigned word.
10630 * config/rs6000/altivec.md (UNSPEC_VADU): New value.
10631 (vadu<mode>3): New insn.
10632 (*p9_vadu<mode>3): New insn.
10633 * config/rs6000/rs6000-builtin.def (vadub): New built-in
10635 (vaduh): New built-in definition.
10636 (vaduw): New built-in definition.
10637 (vadu): New overloaded built-in definition.
10638 (vadub): New overloaded built-in definition.
10639 (vaduh): New overloaded built-in definition.
10640 (vaduw): New overloaded built-in definition.
10641 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
10642 overloaded vector absolute difference unsigned functions.
10643 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
10644 the ISA 3.0 vector absolute difference unsigned built-in functions.
10646 2016-06-13 Eric Botcazou <ebotcazou@adacore.com>
10648 * tree-ssa-sccvn.c (vn_reference_lookup_3): Use a uniform test and
10649 update shared_lookup_references only once after changing operands.
10651 2016-06-13 Thomas Schwinge <thomas@codesourcery.com>
10653 PR middle-end/71373
10654 * tree-nested.c (convert_nonlocal_omp_clauses)
10655 (convert_local_omp_clauses): Document missing OMP_CLAUSE_*.
10657 * tree-cfg.c (edge_to_cases_cleanup): Fix CASE_CHAIN typo.
10658 * tree.def (CASE_LABEL_EXPR): Likewise.
10660 2016-06-13 Bernd Edlinger <bernd.edlinger@hotmail.de>
10663 * input.c (test_builtins): Fix an assertion.
10665 2016-06-13 Uros Bizjak <ubizjak@gmail.com>
10667 * config/i386/i386.md (paritydi2): Use ix86_expand_setcc.
10668 (paritysi2): Ditto.
10670 (isinf<mode>2): Ditto.
10672 2016-06-13 Uros Bizjak <ubizjak@gmail.com>
10674 * ggc-tests.c (test_finalization): Only test need_finalization_p
10675 for GCC_VERSION >= 4003.
10677 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10679 * config/s390/vecintrin.h: Fix file description in comment.
10681 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10683 * config/s390/s390-builtin-types.def: Change builtin type naming
10684 scheme to match builtin-types.def.
10686 2016-06-13 Marc Glisse <marc.glisse@inria.fr>
10688 * fold-const.c (optimize_minmax_comparison): Remove.
10689 (fold_comparison): Remove call to the above.
10690 * match.pd (MIN (X, Y) == X, MIN (X, 5) == 0, MIN (X, C1) < C2):
10691 New transformations.
10693 2016-06-13 Alan Hayward <alan.hayward@arm.com>
10695 PR tree-optimization/71416
10696 * tree-vect-loop.c (vectorizable_live_operation): Let worklist have
10699 2016-06-13 Martin Liska <mliska@suse.cz>
10701 * predict.c (enum predictor_reason): Prefix enum with REASON_.
10702 (combine_predictions_for_insn): Likewise.
10703 (prune_predictions_for_bb): Likewise.
10704 (combine_predictions_for_bb): Likewise.
10706 2016-06-13 Richard Biener <rguenther@suse.de>
10708 PR tree-optimization/71505
10709 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Make
10710 assert match comment.
10712 2016-06-13 Marek Polacek <polacek@redhat.com>
10714 PR middle-end/71476
10715 * gimplify.c (maybe_warn_switch_unreachable): Factored out of
10716 gimplify_switch_expr.
10717 (warn_switch_unreachable_r): New function.
10719 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10722 * config/s390/s390.c (s390_expand_builtin): Increase MAX_ARGS by
10725 2016-06-13 Richard Biener <rguenther@suse.de>
10727 PR middle-end/64516
10728 * fold-const.c (fold_unary_loc): Preserve alignment when
10729 folding a VIEW_CONVERT_EXPR into a MEM_REF.
10731 2016-06-13 Martin Liska <mliska@suse.cz>
10734 * toplev.c (process_options): Do not enable -fcheck-pointer-bounds
10735 w/ -fsanitize=bounds.
10737 2016-06-12 Uros Bizjak <ubizjak@gmail.com>
10739 * config/i386/i386.c (ix86_init_builtins): Calculate
10740 FLOAT128_FTYPE_CONST_STRING function type only once.
10741 * doc/extend.texi (x86 Built-in Functions): Update text, __float128
10742 built-in functions are available for x86-32 and x86-64 targets.
10744 2016-06-12 Uros Bizjak <ubizjak@gmail.com>
10747 * config/i386/i386.i386-builtin-types.def (CONST_STRING):
10748 New primitive type.
10749 (FLOAT128_FTYPE_CONST_STRING): New function type.
10750 * config/i386/i386.c (enum ix86_builtins) [IX86_BUILTIN_NANQ]: New.
10751 [IX86_BUILTIN_NANSQ]: Ditto.
10752 (ix86_fold_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
10753 (ix86_init_builtin_types): Declare const_string_type_node.
10754 (ix86_init_builtins): Add __builtin_nanq and __builtin_nansq
10756 (ix86_expand_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
10757 * doc/extend.texi (x86 Built-in Functions): Document
10758 __builtin_nanq and __builtin_nansq.
10760 2016-06-11 Jiong Wang <jiong.wang@arm.com>
10763 * config/arm/arm-protos.h (arm_attr_length_pop_multi): New declaration.
10764 * config/arm/arm.c (arm_attr_length_pop_multi): New function to return
10765 length for pop patterns.
10766 (arm_attr_length_push_multi): Update comments.
10767 * config/arm/arm.md (*load_multiple_with_writeback): Set "length"
10769 (*pop_multiple_with_writeback_and_return): Likewise.
10770 (*pop_multiple_with_return): Likewise.
10772 2016-06-11 Segher Boessenkool <segher@kernel.crashing.org>
10774 PR middle-end/71310
10775 * fold-const.c (optimize_bit_field_compare): Don't try to use
10776 word_mode unconditionally for reading the bit field, look at
10777 DECL_BIT_FIELD_REPRESENTATIVE instead.
10779 2016-06-11 Kugan Vivekanandarajah <kuganv@linaro.org>
10781 PR middle-end/71478
10782 * tree-ssa-reassoc.c (reassociate_bb): Remove (-1) from ops list for
10783 vector integer type.
10785 2016-06-10 Jakub Jelinek <jakub@redhat.com>
10787 PR middle-end/71494
10788 * tree-nested.c (convert_nonlocal_reference_stmt): For GIMPLE_GOTO
10789 without LABEL_DECL, set *handled_ops_p to false instead of true.
10791 2016-06-10 Martin Sebor <msebor@redhat.com>
10794 * builtin-attrs.def (ATTR_NOTHROW_NONNULL_LEAF_LIST): New macro.
10795 (ATTR_NOTHROW_NONNULL_TYPEGENERIC_LEAF): Same.
10796 * builtins.def (BUILT_IN_SADD_OVERFLOW, BUILT_IN_SADDL_OVERFLOW): Use
10798 (BUILT_IN_SADDLL_OVERFLOW, BUILT_IN_SSUB_OVERFLOW): Same.
10799 (BUILT_IN_SSUBL_OVERFLOW, BUILT_IN_SSUBLL_OVERFLOW): Same.
10800 (BUILT_IN_SMUL_OVERFLOW, BUILT_IN_SMULL_OVERFLOW): Same.
10801 (BUILT_IN_SMULLL_OVERFLOW, BUILT_IN_UADD_OVERFLOW): Same.
10802 (BUILT_IN_UADDL_OVERFLOW, BUILT_IN_UADDLL_OVERFLOW): Same.
10803 (BUILT_IN_USUB_OVERFLOW, BUILT_IN_USUBL_OVERFLOW): Same.
10804 (BUILT_IN_USUBLL_OVERFLOW, BUILT_IN_UMUL_OVERFLOW): Same.
10805 (BUILT_IN_UMULL_OVERFLOW, BUILT_IN_UMULLL_OVERFLOW): Same.
10807 2016-06-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
10809 * config/arm/arm.h (pool_vector_label,
10810 return_used_this_function): Remove.
10812 2016-06-10 Jeff Law <law@redhat.com>
10814 PR tree-optimization/71335
10815 * tree-ssa-threadbackward.c (profitable_jump_thread_path): Filter out
10816 zero length paths here.
10817 (convert_and_register_jump_thread_path): Remove hacks related to
10818 duplicated blocks in the jump thread path.
10819 (fsm_find_control_statement_thread_paths): Avoid putting the same
10820 block on the thread path twice, but ensure the thread path is
10821 unchanged from the caller's point of view.
10823 2016-06-10 Jan Hubicka <hubicka@ucw.cz>
10825 * predict.c (predict_loops): Remove PRED_LOOP_BRANCH.
10826 * predict.def (PRED_LOOP_BRANCH): Remove.
10828 2016-06-10 David Malcolm <dmalcolm@redhat.com>
10830 * Makefile.in (OBJS): Add ggc-tests.o.
10831 (GTFILES): Add ggc-tests.c.
10832 * ggc-tests.c: New file.
10833 * selftest-run-tests.c (selftest::run_tests): Call
10834 selftest::ggc_tests_c_tests.
10835 * selftest.h (selftest::ggc_tests_c_tests): New prototype.
10837 2016-06-10 Alexander Monakov <amonakov@ispras.ru>
10839 * match.pd (-1 / B < A): Use :c to avoid pattern duplication.
10841 2016-06-10 Maxim Ostapenko <m.ostapenko@samsung.com>
10844 * varasm.c (place_block_symbol): Adjust alignment for asan protected
10845 STRING_CSTs even if TREE_CONSTANT_POOL_ADDRESS_P.
10847 2016-06-10 Jan Hubicka <hubicka@ucw.cz>
10849 * profile.c: Include cfgloop.h.
10850 (branch_prob): Compute estimated number of iterations.
10851 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Do not
10852 recompute estimate number of iterations from profile.
10854 2016-06-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
10856 PR inline-asm/68843
10857 * reg-stack.c (check_asm_stack_operands): Explicit input arguments
10858 must be grouped on top of stack. Don't force early clobber
10859 on ordinary reg outputs.
10861 2016-06-10 Richard Biener <rguenther@suse.de>
10863 * targhooks.c (default_builtin_vectorization_cost): Adjust
10864 vec_construct cost.
10866 2016-06-10 Richard Biener <rguenther@suse.de>
10868 * gimple-fold.c (gimple_fold_builtin_memory_op): Make sure
10869 to fold the RHS to a constant if possible.
10871 2016-06-10 Thomas Schwinge <thomas@codesourcery.com>
10873 PR middle-end/71373
10874 * tree-nested.c (convert_nonlocal_omp_clauses)
10875 (convert_local_omp_clauses): Handle OMP_CLAUSE_ASYNC,
10876 OMP_CLAUSE_WAIT, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
10877 OMP_CLAUSE__CACHE_, OMP_CLAUSE_TILE.
10879 * gimplify.c (gimplify_adjust_omp_clauses): Discard
10881 * omp-low.c (scan_sharing_clauses): Don't expect OMP_CLAUSE_TILE.
10883 * omp-low.c (scan_sharing_clauses): Don't expect
10884 OMP_CLAUSE__CACHE_.
10886 2016-06-10 Alan Hayward <alan.hayward@arm.com>
10888 PR tree-optimization/71407
10889 PR tree-optimization/71416
10890 * tree-vect-loop.c (vectorizable_live_operation): Use vectype for
10891 BIT_FIELD_REF type.
10893 2016-06-10 Richard Biener <rguenther@suse.de>
10895 PR middle-end/71477
10896 * cfgloop.c (alloc_loop): Initialize nb_iterations_likely_upper_bound.
10898 2016-06-09 Eric Botcazou <ebotcazou@adacore.com>
10900 * df-problems.c (df_note_bb_compute): Guard use of DF_INSN_INFO_GET.
10902 2016-06-09 Vladimir Makarov <vmakarov@redhat.com>
10903 Jiong Wang <jiong.wang@arm.com>
10905 PR rtl-optimization/70751
10906 * lra-constraints.c (process_alt_operands): Recognize Non-pseudo
10907 spilled into memory.
10909 2016-06-09 Jonathan Yong <10walls@gmail.com>
10912 2015-09-21 Jonathan Yong <10walls@gmail.com>
10914 * config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search
10915 sysroot/usr/lib/32api for additional win32 libraries,
10916 fixes failing Cygwin bootstrapping.
10918 2016-06-09 Marcin Baczyński <marbacz@gmail.com>
10920 * diagnostic.h (diagnostic_line_cutoff, diagnostic_flush_buffer):
10923 2016-06-09 David Malcolm <dmalcolm@redhat.com>
10926 * pretty-print.c (pp_indent): Specify that %p is printed in a
10927 host-dependent manner.
10928 (test_pp_format): Remove the test for %p.
10930 2016-06-09 Maciej W. Rozycki <macro@imgtec.com>
10932 * config/mips/mips.c (mips_output_jump): Fix formatting.
10934 2016-06-09 Richard Biener <rguenther@suse.de>
10936 PR tree-optimization/71462
10937 * tree-ssa-loop-manip.c (find_uses_to_rename): Guard against
10940 2016-06-09 Martin Liska <mliska@suse.cz>
10942 * predict.c (dump_prediction): Add new argument.
10943 (enum predictor_reason): New enum.
10944 (struct predictor_hash): New struct.
10945 (predictor_hash::hash): New function.
10946 (predictor_hash::equal): Likewise.
10947 (not_removed_prediction_p): New function.
10948 (prune_predictions_for_bb): Likewise.
10949 (combine_predictions_for_bb): Prune predictions.
10951 2016-06-09 Martin Liska <mliska@suse.cz>
10953 * predict.c (filter_predictions): New function.
10954 (remove_predictions_associated_with_edge): Use the filter
10956 (equal_edge_p): New function.
10958 2016-06-09 Stefan Bruens <stefan.bruens@rwth-aachen.de>
10960 * doc/invoke.texi (ARM Options): Use lexicographical ordering.
10961 Correct usage of @samp vs @option, add @samp where appropriate.
10962 Add -march={armv6k,armv6z,arm6zk}, remove -march=ep9312.
10963 Add armv6s-m and document it, as it is no official ARM name.
10965 2016-06-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10967 * ifcvt.c (struct noce_if_info): Add transform_name field.
10968 (noce_try_move): Set if_info->transform_name to the function name.
10969 (noce_try_ifelse_collapse): Likewise.
10970 (noce_try_store_flag): Likewise.
10971 (noce_try_inverse_constants): Likewise.
10972 (noce_try_store_flag_constants): Likewise.
10973 (noce_try_addcc): Likewise.
10974 (noce_try_store_flag_mask): Likewise.
10975 (noce_try_cmove): Likewise.
10976 (noce_try_cmove_arith): Likewise.
10977 (noce_try_minmax): Likewise.
10978 (noce_try_abs): Likewise.
10979 (noce_try_sign_mask): Likewise.
10980 (noce_try_bitop): Likewise.
10981 (noce_convert_multiple_sets): Likewise.
10982 (noce_process_if_block): Print if_info->transform_name to
10983 dump_file if transformation succeeded.
10985 2016-06-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10987 * config/arm/cortex-a57.md (cortex_a57_alu):
10990 2016-06-08 Martin Sebor <msebor@redhat.com>
10991 Jakub Jelinek <jakub@redhat.com>
10995 * builtins.def (BUILT_IN_ADD_OVERFLOW_P, BUILT_IN_SUB_OVERFLOW_P,
10996 BUILT_IN_MUL_OVERFLOW_P): New builtins.
10997 * builtins.c: Include gimple-fold.h.
10998 (fold_builtin_arith_overflow): Handle
10999 BUILT_IN_{ADD,SUB,MUL}_OVERFLOW_P.
11000 (fold_builtin_3): Likewise.
11001 * doc/extend.texi (Integer Overflow Builtins): Document
11002 __builtin_{add,sub,mul}_overflow_p.
11004 2016-06-08 Jose E. Marchesi <jose.marchesi@oracle.com>
11006 * config/sparc/driver-sparc.c (cpu_names): Fix the entry for the
11007 SPARC-M7 and add an entry for SPARC-S7 cpus (Sonoma).
11009 2016-06-08 Alan Lawrence <alan.lawrence@arm.com>
11011 * config/aarch64/aarch64.c (aarch64_function_arg_alignment):
11012 Rewrite, looking one level down for records and arrays.
11014 2016-06-08 David Malcolm <dmalcolm@redhat.com>
11016 * pretty-print.c: Include "selftest.h".
11017 (pp_format): Fix comment.
11018 (identifier_to_locale): Likewise.
11019 (selftest::test_basic_printing): New function.
11020 (selftest::assert_pp_format): New function.
11021 (selftest::test_pp_format): New function.
11022 (selftest::pretty_print_c_tests): New function.
11023 * selftest-run-tests.c (selftest::run_tests): Call
11024 selftest::pretty_print_c_tests.
11025 * selftest.h (pretty_print_c_tests): New declaration.
11027 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
11029 * invoke.texi (max-loop-headers-insns): Document.
11030 * params.def (PARAM_MAX_LOOP_HEADER_INSNS): New.
11031 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Update comment.
11032 (ch_base::copy_headers): Use PARAM_MAX_LOOP_HEADER_INSNS.
11034 2016-06-08 Richard Biener <rguenther@suse.de>
11036 * tree-vect-stmts.c (vectorizable_load): Remove restrictions
11037 on strided SLP loads and fall back to scalar loads in case
11038 we can't chunk them.
11040 2016-06-08 Richard Biener <rguenther@suse.de>
11042 PR tree-optimization/71452
11043 * tree-ssa.c (non_rewritable_lvalue_p): Make sure that the
11044 type used for the SSA rewrite has enough precision to cover
11045 the dynamic type of the location.
11047 2016-06-08 Jakub Jelinek <jakub@redhat.com>
11048 Richard Biener <rguenther@suse.de>
11051 * fold-const.c (fold_comparison): Handle CONSTANT_CLASS_P (base0)
11052 the same as DECL_P (base0) for indirect_base0. Use equality_code
11053 in one further place.
11055 2016-06-08 Richard Sandiford <richard.sandiford@arm.com>
11057 * expmed.c (store_bit_field_1): Do not restrict a multiword op0
11058 to one word if the field is known to overlap other words.
11059 (extract_bit_field_1): Likewise.
11060 (store_split_bit_field): Remove compensating code.
11061 (extract_split_bit_field): Likewise.
11063 2016-06-08 Bernd Schmidt <bschmidt@redhat.com>
11067 * tree-ssa-strlen.c (handle_builtin_memcmp): Ignore debug insns.
11069 2016-06-08 Jiong Wang <jiong.wang@arm.com>
11071 * config/aarch64/aarch64-builtins.def (faddp): New builtins for modes in
11073 * config/aarch64/aarch64-simd.md (aarch64_faddp<mode>): New.
11074 (arch64_addpv4sf): Delete.
11075 (reduc_plus_scal_v4sf): Use "gen_aarch64_faddpv4sf" instead of
11076 "gen_aarch64_addpv4sf".
11077 * config/aarch64/arm_neon.h (vpadd_f32): Remove inline assembly. Use
11079 (vpadds_f32): Likewise.
11080 (vpaddq_f32): Likewise.
11081 (vpaddq_f64): Likewise.
11083 2016-06-08 Jiong Wang <jiong.wang@arm.com>
11085 * config/aarch64/aarch64-builtins.def (fabd): New builtins for modes
11087 * config/aarch64/aarch64-simd.md (fabd<mode>_3): Extend modes from VDQF
11088 to VALLF. Rename to "fabd<mode>3".
11089 "*fabd_scalar<mode>3): Delete.
11090 * config/aarch64/arm_neon.h (vabds_f32): Remove inline assembly.
11092 (vabdd_f64): Likewise.
11093 (vabd_f32): Likewise.
11094 (vabd_f64): Likewise.
11095 (vabdq_f32): Likewise.
11096 (vabdq_f64): Likewise.
11098 2016-06-08 Jiong Wang <jiong.wang@arm.com>
11100 * config/aarch64/aarch64-builtins.def (rsqrts): New builtins for modes
11102 * config/aarch64/aarch64-simd.md (aarch64_rsqrts_<mode>3): Rename to
11103 "aarch64_rsqrts<mode>".
11104 * config/aarch64/aarch64.c (get_rsqrts_type): Update gen* name.
11105 * config/aarch64/arm_neon.h (vrsqrtss_f32): Remove inline assembly. Use
11107 (vrsqrtsd_f64): Likewise.
11108 (vrsqrts_f32): Likewise.
11109 (vrsqrts_f64): Likewise.
11110 (vrsqrtsq_f32): Likewise.
11111 (vrsqrtsq_f64): Likewise.
11113 2016-06-08 Jiong Wang <jiong.wang@arm.com>
11115 * config/aarch64/aarch64-builtins.def (rsqrte): New builtins for modes
11117 * config/aarch64/aarch64-simd.md (aarch64_rsqrte_<mode>2): Rename to
11118 "aarch64_rsqrte<mode>".
11119 * config/aarch64/aarch64.c (get_rsqrte_type): Update gen* name.
11120 * config/aarch64/arm_neon.h (vrsqrts_f32): Remove inline assembly. Use
11122 (vrsqrted_f64): Likewise.
11123 (vrsqrte_f32): Likewise.
11124 (vrsqrte_f64): Likewise.
11125 (vrsqrteq_f32): Likewise.
11126 (vrsqrteq_f64): Likewise.
11128 2016-06-08 Jiong Wang <jiong.wang@arm.com>
11130 * config/aarch64/aarch64-builtins.def (scvtf): Register vector modes.
11132 (fcvtzs): Likewise.
11133 (fcvtzu): Likewise.
11134 * config/aarch64/aarch64-simd.md
11135 (<FCVT_F2FIXED:fcvt_fixed_insn><VDQF:mode>3): New.
11136 (<FCVT_FIXED2F:fcvt_fixed_insn><VDQ_SDI:mode>3): Likewise.
11137 * config/aarch64/arm_neon.h (vcvt_n_f32_s32): Remove inline assembly.
11139 (vcvt_n_f32_u32): Likewise.
11140 (vcvt_n_s32_f32): Likewise.
11141 (vcvt_n_u32_f32): Likewise.
11142 (vcvtq_n_f32_s32): Likewise.
11143 (vcvtq_n_f32_u32): Likewise.
11144 (vcvtq_n_f64_s64): Likewise.
11145 (vcvtq_n_f64_u64): Likewise.
11146 (vcvtq_n_s32_f32): Likewise.
11147 (vcvtq_n_s64_f64): Likewise.
11148 (vcvtq_n_u32_f32): Likewise.
11149 (vcvtq_n_u64_f64): Likewise.
11150 * config/aarch64/iterators.md (VDQ_SDI): New mode iterator.
11151 (VSDQ_SDI): Likewise.
11152 (fcvt_target): Support V4DI, V4SI and V2SI.
11153 (FCVT_TARGET): Likewise.
11155 2016-06-08 Jiong Wang <jiong.wang@arm.com>
11157 * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New
11158 (TYPES_BINOP_SUS): Likewise.
11159 (aarch64_simd_builtin_data): Update include file name.
11160 (aarch64_builtins): Likewise.
11161 * config/aarch64/aarch64-simd-builtins.def (scvtf): New entries
11162 for conversion between scalar float-point and fixed-point.
11164 (fcvtzs): Likewise.
11165 (fcvtzu): Likewise.
11166 * config/aarch64/aarch64.md
11167 (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3: New
11168 pattern for conversion between scalar float to fixed-pointer.
11169 (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>: Likewise.
11170 (UNSPEC_FCVTZS): New UNSPEC enumeration.
11171 (UNSPEC_FCVTZU): Likewise.
11172 (UNSPEC_SCVTF): Likewise.
11173 (UNSPEC_UCVTF): Likewise.
11174 * config/aarch64/arm_neon.h (vcvtd_n_f64_s64): Remove inline assembly.
11176 (vcvtd_n_f64_u64): Likewise.
11177 (vcvtd_n_s64_f64): Likewise.
11178 (vcvtd_n_u64_f64): Likewise.
11179 (vcvtd_n_f32_s32): Likewise.
11180 (vcvts_n_f32_u32): Likewise.
11181 (vcvtd_n_s32_f32): Likewise.
11182 (vcvts_n_u32_f32): Likewise.
11183 * config/aarch64/iterators.md (fcvt_target): Support integer to float
11185 (FCVT_TARGET): Likewise.
11186 (FCVT_FIXED2F): New iterator.
11187 (FCVT_F2FIXED): Likewise.
11188 (fcvt_fixed_insn): New define_int_attr.
11190 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
11192 * predict.c (pass_strip_predict_hints::execute): Cleanup CFG if
11193 some statements was removed.
11195 2016-06-08 Alan Hayward <alan.hayward@arm.com>
11197 * tree-vect-data-refs.c (vect_analyze_data_refs): Remove debug newline.
11198 * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): likewise.
11199 (vect_can_advance_ivs_p): likewise.
11200 (vect_update_ivs_after_vectorizer): likewise.
11201 * tree-vect-loop.c (vect_determine_vectorization_factor): likewise.
11202 (vect_analyze_scalar_cycles_1): likewise.
11203 (vect_analyze_loop_operations): likewise.
11204 (report_vect_op): likewise.
11205 (vect_is_slp_reduction): likewise.
11206 (vect_is_simple_reduction): likewise.
11207 (get_initial_def_for_induction): likewise.
11208 (vect_transform_loop): likewise.
11209 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): likewise.
11210 (vect_recog_sad_pattern): likewise.
11211 (vect_recog_widen_sum_pattern): likewise.
11212 (vect_recog_widening_pattern): likewise.
11213 (vect_recog_divmod_pattern): likewise.
11214 * tree-vect-slp.c (vect-build-slp_tree_1): likewise.
11215 (vect_analyze_slp_instance): likewise.
11216 (vect_transform_slp_perm_load): likewise.
11217 (vect_schedule_slp_instance): likewise.
11219 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
11221 * predict.c (predict_iv_comparison): Mention that heuristics is broken.
11222 (return_prediction): PRED_CONST_RETURN predict return as not taken.
11223 * predict.def (PRED_CONTINUE): Change hitrate 50->67
11224 (PRED_LOOP_BRANCH): Document predictor as broken.
11225 (PRED_LOOP_EXIT): Change hitrate 91->92.
11226 (PRED_LOOP_EXTRA_EXIT): Change hitrate 91->83.
11227 (PRED_POINTER, PRED_TREE_POINTER): Change hitrate 85->70.
11228 (PRED_OPCODE_POSITIVE): Change hitrate 79->64.
11229 (PRED_OPCODE_NONEQUAL): Change hitrate 91->66.
11230 (PRED_TREE_OPCODE_POSITIVE): Change hitrate 73->64
11231 (PRED_TREE_OPCODE_NONEQUAL): Chnage hitrate 72->66
11232 (PRED_CALL): Chane hitrate 71->67.
11233 (PRED_TREE_EARLY_RETURN): Document issues, change hitrate 61->54.
11234 (PRED_GOTO): Document as unused right now.
11235 (PRED_CONST_RETURN): Change hitrate 67->69
11236 (PRED_NEGATIVE_RETURN): Change hitrate 96->98
11237 (PRED_NULL_RETURN): Change hitrate 91->90.
11238 (PRED_LOOP_IV_COMPARE_GUESS): Change hitrate to 98.
11239 (PRED_FORTRAN_FAIL_ALLOC): Change hitrate to 62; document issues.
11240 (PRED_FORTRAN_SIZE_ZERO): Change hitrate to 99.
11242 2016-06-07 Bill Seurer <seurer@linux.vnet.ibm.com>
11244 * config/rs6000/altivec.h: Add __builtin_vec_mul.
11245 * config/rs6000/rs6000-builtin.def (vec_mul): Change vec_mul to a
11246 special case Altivec builtin.
11247 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
11248 VSX_BUILTIN_VEC_MUL (replaced with special case code).
11249 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
11250 code for ALTIVEC_BUILTIN_VEC_MUL.
11251 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
11252 for __builtin_vec_mul.
11254 2016-06-07 Peter Bergner <bergner@vnet.ibm.com>
11256 * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mhtm and
11259 2016-06-07 David Malcolm <dmalcolm@redhat.com>
11261 * spellcheck.c (selftest::test_find_closest_string): New function.
11262 (spellcheck_c_tests): Call the above.
11264 2016-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11266 * simplify-rtx.c (simplify_cond_clz_ctz): Delete 'mode' local variable.
11268 2016-06-07 Jakub Jelinek <jakub@redhat.com>
11270 * config/i386/sse.md (avx_vec_concat<mode>): Add v=v,vm and
11271 Yv=Yv,C alternatives.
11273 2016-06-07 Richard Biener <rguenther@suse.de>
11276 * common.opt (ffast-math): Make Optimization.
11278 2016-06-07 Simon Dardis <simon.dardis@imgtec.com>
11279 Prachi Godbole <prachi.godbole@imgtec.com>
11281 * config/mips/p5600.md (p5600_fpu_fadd): Remove checking for
11282 `fabs' and `fneg' type attributes.
11283 (p5600_fpu_fabs): Add `fmove' to the comment.
11285 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
11287 * gimple.c: Include builtins.h
11288 (gimple_inexpensive_call_p): New function.
11289 * gimple.h (gimple_inexpensive_call_p): Declare.
11290 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use it.
11291 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise;
11294 2016-06-07 Paolo Carlini <paolo.carlini@oracle.com>
11296 * diagnostic.c (diagnostic_impl, diagnostic_n_impl): New.
11297 (inform, inform_at_rich_loc, inform_n, warning, warning_at,
11298 warning_at_rich_loc, warning_n, pedwarn, permerror,
11299 permerror_at_rich_loc, error, error_n, error_at, error_at_rich_loc,
11300 sorry, fatal_error, internal_error, internal_error_no_backtrace):
11303 2016-06-07 Richard Biener <rguenther@suse.de>
11305 PR tree-optimization/71428
11306 * tree-ssa-math-opts.c (perform_symbolic_merge): Properly distinguish
11307 BIT_FIELD_REF op vs. load.
11309 2016-06-07 Richard Biener <rguenther@suse.de>
11311 PR middle-end/71423
11312 * match.pd ((X | ~Y) -> Y <= X): Properly invert the comparison
11315 2016-06-06 John David Anglin <danglin@gcc.gnu.org>
11317 * config/pa/pa.md (call): Generate indirect long calls to non-local
11318 functions on TARGET_64BIT.
11319 (call_value): Likewise.
11321 2016-06-06 John David Anglin <danglin@gcc.gnu.org>
11323 * config/pa/pa.md (call_val_reg_64bit): Remove "reg: DI " clobber from
11324 pattern and subsequent splitters.
11325 (call_val_reg_64bit_post_reload): Likewise.
11327 2016-06-07 Kugan Vivekanandarajah <kuganv@linaro.org>
11329 PR middle-end/71408
11330 * tree-ssa-reassoc.c (zero_one_operation): Fix NEGATE_EXPR operand for
11331 propagate_op_to_single_use.
11333 2016-06-07 Kugan Vivekanandarajah <kuganv@linaro.org>
11335 PR middle-end/71281
11336 * tree-ssa-reassoc.c (reassociate_bb): Set uid for negate stmt.
11338 2016-06-07 Uros Bizjak <ubizjak@gmail.com>
11340 * config/i386/i386.h (enum ix86_enitity): Add X86_DIRFLAG.
11341 (enum x86_dirflag_state): New enum.
11342 (NUM_MODES_FOR_MODE_SWITCHING): Add X86_DIRFLAG_ANY.
11343 (machine_function): Remove needs_cld.
11344 (ix86_current_function_needs_cld): Remove.
11345 * config/i386/i386.c (ix86_set_func_type): Set
11346 ix86_optimize_mode_switching[X86_DIRFLAG] to 1.
11347 (ix86_expand_prologue): Do not emit CLD here.
11348 (ix86_dirflag_mode_needed): New function.
11349 (ix86_dirflag_mode_entry): Ditto.
11350 (ix86_mode_needed): Handle X86_DIRFLAG entity.
11351 (ix86_mode_after): Ditto.
11352 (ix86_mode_entry): Ditto.
11353 (ix86_mode_exit): Ditto.
11354 (ix86_emit_mode_set): Ditto.
11355 * config/i386/i386.md (strmov_singleop): Set
11356 ix86_optimize_mode_switching[X86_DIRFLAG] to 1 for TARGET_CLD.
11357 Do not set ix86_current_function_needs_cld.
11359 (strset_singleop): Ditto.
11361 (cmpstrnqi_nz_1): Ditto.
11362 (cmpstrnqi_1): Ditto.
11363 (strlenqi_1): Ditto.
11365 2016-06-06 Jakub Jelinek <jakub@redhat.com>
11367 PR tree-optimization/71259
11368 * tree-vect-slp.c (vect_get_constant_vectors): For
11369 VECTOR_BOOLEAN_TYPE_P, return all ones constant instead of
11370 one for constant op, and use COND_EXPR for non-constant.
11372 2016-06-06 David Malcolm <dmalcolm@redhat.com>
11374 * Makefile.in (OBJS): Add function-tests.o,
11375 hash-map-tests.o, hash-set-tests.o, rtl-tests.o,
11376 selftest-run-tests.o.
11377 (OBJS-libcommon): Add selftest.o.
11378 (OBJS-libcommon-target): Add selftest.o.
11379 (all.internal): Add "selftest".
11380 (all.cross): Likewise.
11381 (selftest): New phony target.
11382 (s-selftest): New target.
11383 (selftest-gdb): New phony target.
11384 (COLLECT2_OBJS): Add selftest.o.
11385 * bitmap.c: Include "selftest.h".
11386 (selftest::test_gc_alloc): New function.
11387 (selftest::test_set_range): New function.
11388 (selftest::test_clear_bit_in_middle): New function.
11389 (selftest::test_copying): New function.
11390 (selftest::test_bitmap_single_bit_set_p): New function.
11391 (selftest::bitmap_c_tests): New function.
11392 * common.opt (fself-test): New.
11393 * diagnostic-show-locus.c: Include "selftest.h".
11394 (make_range): New function.
11395 (test_range_contains_point_for_single_point): New function.
11396 (test_range_contains_point_for_single_line): New function.
11397 (test_range_contains_point_for_multiple_lines): New function.
11398 (assert_eq): New function.
11399 (test_get_line_width_without_trailing_whitespace): New function.
11400 (selftest::diagnostic_show_locus_c_tests): New function.
11401 * et-forest.c: Include "selftest.h".
11402 (selftest::test_single_node): New function.
11403 (selftest::test_simple_tree): New function.
11404 (selftest::test_disconnected_nodes): New function.
11405 (selftest::et_forest_c_tests): New function.
11406 * fold-const.c: Include "selftest.h".
11407 (selftest::assert_binop_folds_to_const): New function.
11408 (selftest::assert_binop_folds_to_nonlvalue): New function.
11409 (selftest::test_arithmetic_folding): New function.
11410 (selftest::fold_const_c_tests): New function.
11411 * function-tests.c: New file.
11412 * gimple.c: Include "selftest.h".
11413 Include "gimple-pretty-print.h".
11414 (selftest::verify_gimple_pp): New function.
11415 (selftest::test_assign_single): New function.
11416 (selftest::test_assign_binop): New function.
11417 (selftest::test_nop_stmt): New function.
11418 (selftest::test_return_stmt): New function.
11419 (selftest::test_return_without_value): New function.
11420 (selftest::gimple_c_tests): New function.
11421 * hash-map-tests.c: New file.
11422 * hash-set-tests.c: New file.
11423 * input.c: Include "selftest.h".
11424 (selftest::assert_loceq): New function.
11425 (selftest::test_accessing_ordinary_linemaps): New function.
11426 (selftest::test_unknown_location): New function.
11427 (selftest::test_builtins): New function.
11428 (selftest::test_reading_source_line): New function.
11429 (selftest::input_c_tests): New function.
11430 * rtl-tests.c: New file.
11431 * selftest-run-tests.c: New file.
11432 * selftest.c: New file.
11433 * selftest.h: New file.
11434 * spellcheck.c: Include "selftest.h".
11435 (selftest::levenshtein_distance_unit_test_oneway): New function,
11436 adapted from testsuite/gcc.dg/plugin/levenshtein_plugin.c.
11437 (selftest::levenshtein_distance_unit_test): Likewise.
11438 (selftest::spellcheck_c_tests): Likewise.
11439 * toplev.c: Include selftest.h.
11440 (toplev::run_self_tests): New.
11441 (toplev::main): Handle -fself-test.
11442 * toplev.h (toplev::run_self_tests): New.
11443 * tree.c: Include "selftest.h".
11444 (selftest::test_integer_constants): New function.
11445 (selftest::test_identifiers): New function.
11446 (selftest::test_labels): New function.
11447 (selftest::tree_c_tests): New function.
11448 * tree-cfg.c: Include "selftest.h".
11449 (selftest::push_fndecl): New function.
11450 (selftest::test_linear_chain): New function.
11451 (selftest::test_diamond): New function.
11452 (selftest::test_fully_connected): New function.
11453 (selftest::tree_cfg_c_tests): New function.
11454 * vec.c: Include "selftest.h".
11455 (selftest::safe_push_range): New function.
11456 (selftest::test_quick_push): New function.
11457 (selftest::test_safe_push): New function.
11458 (selftest::test_truncate): New function.
11459 (selftest::test_safe_grow_cleared): New function.
11460 (selftest::test_pop): New function.
11461 (selftest::test_safe_insert): New function.
11462 (selftest::test_ordered_remove): New function.
11463 (selftest::test_unordered_remove): New function.
11464 (selftest::test_block_remove): New function.
11465 (selftest::reverse_cmp): New function.
11466 (selftest::test_qsort): New function.
11467 (selftest::vec_c_tests): New function.c.
11468 * wide-int.cc: Include selftest.h and wide-int-print.h.
11469 (selftest::from_int <wide_int>): New function.
11470 (selftest::from_int <offset_int>): New function.
11471 (selftest::from_int <widest_int>): New function.
11472 (selftest::assert_deceq): New function.
11473 (selftest::assert_hexeq): New function.
11474 (selftest::test_printing <VALUE_TYPE>): New function template.
11475 (selftest::test_ops <VALUE_TYPE>): New function template.
11476 (selftest::test_comparisons <VALUE_TYPE>): New function template.
11477 (selftest::run_all_wide_int_tests <VALUE_TYPE>): New function
11479 (selftest::wide_int_cc_tests): New function.
11481 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11483 PR middle-end/37780
11484 * ifcvt.c (noce_try_ifelse_collapse): New function.
11486 (noce_process_if_block): Call noce_try_ifelse_collapse.
11487 * simplify-rtx.c (simplify_cond_clz_ctz): New function.
11488 (simplify_ternary_operation): Use the above to simplify
11489 conditional CLZ/CTZ expressions.
11491 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11493 PR middle-end/37780
11494 * config/aarch64/aarch64.md (ctz<mode>2): Convert to
11495 define_insn_and_split.
11497 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11499 PR middle-end/37780
11500 * config/arm/arm.md (ctzsi2): Convert to define_insn_and_split.
11502 2016-06-06 Bernd Edlinger <bernd.edlinger@hotmail.de>
11505 * cfgexpand.c (expand_asm_loc): Remove handling for ADDR_EXPR.
11506 Implicitly clobber memory for basic asm with non-empty assembler
11507 string. Use targetm.md_asm_adjust also here.
11508 * compare-elim.c (arithmetic_flags_clobber_p): Use asm_noperands here.
11509 * final.c (final_scan_insn): Handle basic asm in PARALLEL block.
11510 * gimple.c (gimple_asm_clobbers_memory_p): Handle basic asm with
11511 non-empty assembler string.
11512 * ira.c (compute_regs_asm_clobbered): Use asm_noperands here.
11513 * recog.c (asm_noperands): Handle basic asm in PARALLEL block.
11514 (decode_asm_operands): Handle basic asm in PARALLEL block.
11515 (extract_insn): Handle basic asm in PARALLEL block.
11516 * doc/extend.texi: Mention new behavior of basic asm.
11517 * config/ia64/ia64 (rtx_needs_barrier): Handle ASM_INPUT here.
11518 * config/pa/pa.c (branch_to_delay_slot_p, branch_needs_nop_p,
11519 branch_needs_nop_p): Use asm_noperands.
11521 2016-06-06 Jose E. Marchesi <jose.marchesi@oracle.com>
11523 * config/sparc/sparc.md (cpu): Add niagara7 cpu type.
11524 Include the M7 SPARC DFA scheduler.
11525 New attribute v3pipe.
11526 Annotate insns with v3pipe where appropriate.
11527 Define cpu_feature vis4.
11528 Add lzd instruction type and set it on clzdi_sp64 and clzsi_sp64.
11529 Add (V8QI "8") to vbits.
11530 Add insns {add,sub}v8qi3
11531 Add insns ss{add,sub}v8qi3
11532 Add insns us{add,sub}{v8qi,v4hi}3
11533 Add insns {min,max}{v8qi,v4hi,v2si}3
11534 Add insns {minu,maxu}{v8qi,v4hi,v2si}3
11535 Add insns fpcmp{le,gt,ule,ug,ule,ugt}{8,16,32}_vis.
11536 * config/sparc/niagara4.md: Add a comment explaining the
11537 discrepancy between the documented latenty numbers and the
11539 * config/sparc/niagara7.md: New file.
11540 * configure.ac (HAVE_AS_SPARC5_VIS4): Define if the assembler
11541 supports SPARC5 and VIS 4.0 instructions.
11542 * configure: Regenerate.
11543 * config.in: Likewise.
11544 * config.gcc: niagara7 is a supported cpu in sparc*-*-* targets.
11545 * config/sparc/sol2.h (ASM_CPU32_DEFAUILT_SPEC): Set for
11546 TARGET_CPU_niagara7.
11547 (ASM_CPU64_DEFAULT_SPEC): Likewise.
11548 (CPP_CPU_SPEC): Handle niagara7.
11549 (ASM_CPU_SPEC): Likewise.
11550 * config/sparc/sparc-opts.h (processor_type): Add
11551 PROCESSOR_NIAGARA7.
11552 (mvis4): New option.
11553 * config/sparc/sparc.h (TARGET_CPU_niagara7): Define.
11554 (AS_NIAGARA7_FLAG): Define.
11555 (ASM_CPU64_DEFAULT_SPEC): Set for niagara7.
11556 (CPP_CPU64_DEFAULT_SPEC): Likewise.
11557 (CPP_CPU_SPEC): Handle niagara7.
11558 (ASM_CPU_SPEC): Likewise.
11559 * config/sparc/sparc.c (niagara7_costs): Define.
11560 (sparc_option_override): Handle niagara7 and adjust cache-related
11561 parameters with better values for niagara cpus. Also support VIS4.
11562 (sparc32_initialize_trampoline): Likewise.
11563 (sparc_use_sched_lookahead): Likewise.
11564 (sparc_issue_rate): Likewise.
11565 (sparc_register_move_cost): Likewise.
11566 (dump_target_flag_bits): Support VIS4.
11567 (sparc_vis_init_builtins): Likewise.
11568 (sparc_builtins): Likewise.
11569 * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__ for
11571 * config/sparc/driver-sparc.c (cpu_names): Add SPARC-M7 and
11573 * config/sparc/sparc.opt (sparc_processor_type): New value
11575 * config/sparc/visintrin.h (__attribute__): Prototypes for the
11577 * doc/invoke.texi (SPARC Options): Document -mcpu=niagara7 and
11579 * doc/extend.texi (SPARC VIS Built-in Functions): Document the
11582 2016-06-06 Jonathan Wakely <jwakely@redhat.com>
11584 * doc/sourcebuild.texi (Directives): Remove extra closing braces.
11586 2016-06-06 Richard Biener <rguenther@suse.de>
11588 PR tree-optimization/71398
11589 * tree-ssa-loop-ivcanon.c (unloop_loops): First unloop, then
11592 2016-06-05 James Bowman <james.bowman@ftdichip.com>
11594 * config/ft32/ft32.c (ft32_setup_incoming_varargs,
11595 ft32_expand_prolog, ft32_expand_epilogue):
11596 Handle pretend_args.
11597 * config/ft32/ft32.h: Remove OUTGOING_REG_PARM_STACK_SPACE.
11598 * config/ft32/ft32.md: Add pretend_returner.
11600 2016-06-06 Uros Bizjak <ubizjak@gmail.com>
11603 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
11604 Copy op1 RTX to avoid invalid sharing.
11605 (ix86_expand_vector_move_misalign): Ditto.
11607 2016-06-05 John David Anglin <danglin@gcc.gnu.org>
11609 * expr.c (move_by_pieces_d::generate): Mark mode parameter with
11612 2016-06-05 Jan Hubicka <hubicka@ucw.cz>
11614 * predict.c (predicted_by_loop_heuristics_p): New function.
11615 (predict_iv_comparison): Use it.
11616 (predict_loops): Walk from innermost loops; do not predict edges
11617 leaving multiple loops multiple times; implement
11618 PRED_LOOP_ITERATIONS_MAX heuristics.
11619 * predict.def (PRED_LOOP_ITERATIONS_MAX): New predictor.
11621 2016-06-05 Jan Hubicka <hubicka@ucw.cz>
11623 * cfg.c (check_bb_profile): Do not report mismatched profiles when
11624 only edges out of BB are EH edges.
11626 2016-06-04 Martin Sebor <msebor@redhat.com>
11627 Marcin Baczyński <marbacz@gmail.com>
11630 * doc/invoke.texi (-Wreturn-type): Mention not warning on return with
11631 a void expression in a void function.
11633 2016-06-03 Jan Hubicka <hubicka@ucw.cz>
11635 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Do not check
11636 aux; dump reasons of decisions.
11637 (should_duplicate_loop_header_p): Likewise.
11638 (do_while_loop_p): Likewise.
11639 (ch_base::copy_headers): Dump asi num insns duplicated.
11641 2016-06-04 Jakub Jelinek <jakub@redhat.com>
11643 PR tree-optimization/71405
11644 * tree-ssa.c (execute_update_addresses_taken): For clobber with
11645 incompatible type, build a new clobber with the right type instead
11646 of building a VIEW_CONVERT_EXPR around it.
11648 2016-06-04 Oleg Endo <olegendo@gcc.gnu.org>
11650 PR tree-optimization/52171
11651 * config/sh/sh.c (sh_use_by_pieces_infrastructure_p): Use
11652 by_pieces_ninsns instead of move_by_pieces_ninsns.
11654 2016-06-04 Oleg Endo <olegendo@gcc.gnu.org>
11656 * config/sh/sh.c (sh_print_operand_address): Don't use hardcoded 'r0'
11657 for reg+reg addressing mode.
11659 2016-06-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11661 * rs6000-c.c (c/c-tree.h): Add #include.
11662 (altivec_resolve_overloaded_builtin): Handle ARRAY_TYPE arguments
11663 in C++ when found in the base position of vec_ld or vec_st.
11665 2016-06-03 Jan Hubicka <hubicka@ucw.cz>
11667 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Avoid
11668 use of profile unless profile status is PROFILE_READ.
11669 * profile.c (compute_branch_probabilities): Set profile status
11670 only after reporting predictor hitrates.
11672 2016-06-03 Joseph Myers <joseph@codesourcery.com>
11676 * common.opt (ffp-int-builtin-inexact): New option.
11677 * doc/invoke.texi (-fno-fp-int-builtin-inexact): Document.
11678 * doc/md.texi (floor@var{m}2, btrunc@var{m}2, round@var{m}2)
11679 (ceil@var{m}2): Document dependence on this option.
11680 * ipa-inline-transform.c (inline_call): Handle
11681 flag_fp_int_builtin_inexact.
11682 * ipa-inline.c (can_inline_edge_p): Likewise.
11683 * config/i386/i386.md (rintxf2): Do not test
11684 flag_unsafe_math_optimizations.
11685 (rint<mode>2_frndint): New define_insn.
11686 (rint<mode>2): Do not test flag_unsafe_math_optimizations for 387
11687 or !flag_trapping_math for SSE. Just use gen_rint<mode>2_frndint
11688 for 387 instead of extending and truncating.
11689 (frndintxf2_<rounding>): Test flag_fp_int_builtin_inexact ||
11690 !flag_trapping_math instead of flag_unsafe_math_optimizations.
11691 Change to frndint<mode>2_<rounding>.
11692 (frndintxf2_<rounding>_i387): Likewise. Change to
11693 frndint<mode>2_<rounding>_i387.
11694 (<rounding_insn>xf2): Likewise.
11695 (<rounding_insn><mode>2): Test flag_fp_int_builtin_inexact ||
11696 !flag_trapping_math instead of flag_unsafe_math_optimizations for
11697 x87. Test TARGET_ROUND || !flag_trapping_math ||
11698 flag_fp_int_builtin_inexact instead of !flag_trapping_math for
11699 SSE. Use ROUND_NO_EXC in constant operand of
11700 gen_sse4_1_round<mode>2. Just use gen_frndint<mode>2_<rounding>
11701 for 387 instead of extending and truncating.
11703 2016-06-03 H.J. Lu <hongjiu.lu@intel.com>
11704 Julia Koval <julia.koval@intel.com>
11716 * config/i386/i386-protos.h (ix86_epilogue_uses): New prototype.
11717 * config/i386/i386.c (ix86_conditional_register_usage): Preserve
11718 all registers, except for function return registers if there are
11719 no caller-saved registers.
11720 (ix86_set_func_type): New function.
11721 (ix86_set_current_function): Call ix86_set_func_type to set
11722 no_caller_saved_registers and func_type. Call reinit_regs if
11723 caller-saved registers are changed. Don't allow MPX, SSE, MMX
11724 nor x87 instructions in interrupt handler nor function with
11725 no_caller_saved_registers attribute.
11726 (ix86_function_ok_for_sibcall): Return false if there are no
11727 caller-saved registers.
11728 (type_natural_mode): Don't warn ABI change for MMX in interrupt
11730 (ix86_function_arg_advance): Skip for callee in interrupt handler.
11731 (ix86_function_arg): Return special arguments in interrupt handler.
11732 (ix86_promote_function_mode): Promote pointer to word_mode only
11733 for normal functions.
11734 (ix86_can_use_return_insn_p): Don't use `ret' instruction in
11736 (ix86_epilogue_uses): New function.
11737 (ix86_hard_regno_scratch_ok): Likewise.
11738 (ix86_save_reg): Preserve all registers in interrupt handler
11739 after reload. Preserve all registers, except for function return
11740 registers, if there are no caller-saved registers after reload.
11741 (find_drap_reg): Always use callee-saved register if there are
11742 no caller-saved registers.
11743 (ix86_minimum_incoming_stack_boundary): Return MIN_STACK_BOUNDARY
11744 for interrupt handler.
11745 (ix86_expand_prologue): Don't allow DRAP in interrupt handler.
11746 Emit cld instruction if stringops are used in interrupt handler
11747 or interrupt handler isn't a leaf function.
11748 (ix86_expand_epilogue): Generate interrupt return for interrupt
11749 handler and pop the 'ERROR_CODE' off the stack before interrupt
11750 return in exception handler.
11751 (ix86_expand_call): Disallow calling interrupt handler directly.
11752 If there are no caller-saved registers, mark all registers that
11753 are clobbered by the call which returns as clobbered.
11754 (ix86_handle_no_caller_saved_registers_attribute): New function.
11755 (ix86_handle_interrupt_attribute): Likewise.
11756 (ix86_attribute_table): Add interrupt and no_caller_saved_registers
11758 (TARGET_HARD_REGNO_SCRATCH_OK): Likewise.
11759 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use argument
11760 accumulation in interrupt function if stack may be realigned to
11762 (EPILOGUE_USES): New.
11763 (function_type): New enum.
11764 (machine_function): Add func_type and no_caller_saved_registers.
11765 * config/i386/i386.md (UNSPEC_INTERRUPT_RETURN): New.
11766 (interrupt_return): New pattern.
11767 * doc/extend.texi: Document x86 interrupt and
11768 no_caller_saved_registers attributes.
11770 2016-06-03 Bernd Schmidt <bschmidt@redhat.com>
11772 PR tree-optimization/52171
11773 * builtins.c (expand_cmpstrn_or_cmpmem): Delete, moved elsewhere.
11774 (expand_builtin_memcmp): New arg RESULT_EQ. All callers changed.
11775 Look for constant strings. Move some code to emit_block_cmp_hints
11777 * builtins.def (BUILT_IN_MEMCMP_EQ): New.
11778 * defaults.h (COMPARE_MAX_PIECES): New macro.
11779 * expr.c (move_by_pieces_d, store_by_pieces_d): Remove old structs.
11780 (move_by_pieces_1, store_by_pieces_1, store_by_pieces_2): Remvoe.
11781 (clear_by_pieces_1): Don't declare. Move definition before use.
11782 (can_do_by_pieces): New static function.
11783 (can_move_by_pieces): Use it. Return bool.
11784 (by_pieces_ninsns): Renamed from move_by_pieces_ninsns. New arg
11785 OP. All callers changed. Handle COMPARE_BY_PIECES.
11786 (class pieces_addr); New.
11787 (pieces_addr::pieces_addr, pieces_addr::decide_autoinc,
11788 pieces_addr::adjust, pieces_addr::increment_address,
11789 pieces_addr::maybe_predec, pieces_addr::maybe_postinc): New member
11791 (class op_by_pieces_d): New.
11792 (op_by_pieces_d::op_by_pieces_d, op_by_pieces_d::run): New member
11794 (class move_by_pieces_d, class compare_by_pieces_d,
11795 class store_by_pieces_d): New subclasses of op_by_pieces_d.
11796 (move_by_pieces_d::prepare_mode, move_by_pieces_d::generate,
11797 move_by_pieces_d::finish_endp, store_by_pieces_d::prepare_mode,
11798 store_by_pieces_d::generate, store_by_pieces_d::finish_endp,
11799 compare_by_pieces_d::generate, compare_by_pieces_d::prepare_mode,
11800 compare_by_pieces_d::finish_mode): New member functions.
11801 (compare_by_pieces, emit_block_cmp_via_cmpmem): New static
11803 (expand_cmpstrn_or_cmpmem): Moved here from builtins.c.
11804 (emit_block_cmp_hints): New function.
11805 (move_by_pieces, store_by_pieces, clear_by_pieces): Rewrite to just
11806 use the newly defined classes.
11807 * expr.h (by_pieces_constfn): New typedef.
11808 (can_store_by_pieces, store_by_pieces): Use it in arg declarations.
11809 (emit_block_cmp_hints, expand_cmpstrn_or_cmpmem): Declare.
11810 (move_by_pieces_ninsns): Don't declare.
11811 (can_move_by_pieces): Change return value to bool.
11812 * target.def (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Update docs.
11813 (compare_by_pieces_branch_ratio): New hook.
11814 * target.h (enum by_pieces_operation): Add COMPARE_BY_PIECES.
11815 (by_pieces_ninsns): Declare.
11816 * targethooks.c (default_use_by_pieces_infrastructure_p): Handle
11818 (default_compare_by_pieces_branch_ratio): New function.
11819 * targhooks.h (default_compare_by_pieces_branch_ratio): Declare.
11820 * doc/tm.texi.in (STORE_MAX_PIECES, COMPARE_MAX_PIECES): Document.
11821 * doc/tm.texi: Regenerate.
11822 * tree-ssa-strlen.c: Include "builtins.h".
11823 (handle_builtin_memcmp): New static function.
11824 (strlen_optimize_stmt): Call it for BUILT_IN_MEMCMP.
11825 * tree.c (build_common_builtin_nodes): Create __builtin_memcmp_eq.
11827 2016-06-03 Alan Hayward <alan.hayward@arm.com>
11829 * tree-vect-stmts.c (vect_stmt_relevant_p): Do not vectorize non live
11830 relevant stmts which are simple and invariant.
11831 * tree-vect-loop.c (vectorizable_live_operation): Check relevance
11832 instead of simple and invariant
11834 2016-06-03 Alan Hayward <alan.hayward@arm.com>
11836 * tree-vect-loop.c (vect_analyze_loop_operations): Allow live stmts.
11837 (vectorizable_reduction): Check for new relevant state.
11838 (vectorizable_live_operation): vectorize live stmts using
11839 BIT_FIELD_REF. Remove special case for gimple assigns stmts.
11840 * tree-vect-stmts.c (is_simple_and_all_uses_invariant): New function.
11841 (vect_stmt_relevant_p): Check for stmts which are only used live.
11842 (process_use): Use of a stmt does not inherit it's live value.
11843 (vect_mark_stmts_to_be_vectorized): Simplify relevance inheritance.
11844 (vect_analyze_stmt): Check for new relevant state.
11845 * tree-vectorizer.h (vect_relevant): New entry for a stmt which is used
11846 outside the loop, but not inside it.
11848 2016-06-03 Alan Hayward <alan.hayward@arm.com>
11850 * tree-vectorizer.h (vect_get_vec_def_for_operand_1): New.
11851 * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): New.
11852 (vect_get_vec_def_for_operand): Split out code.
11854 2016-06-03 Segher Boessenkool <segher@kernel.crashing.org>
11856 * config/rs6000/rs6000.md (define_peepholes for two mfcr's): Delete.
11858 2016-06-03 Alan Hayward <alan.hayward@arm.com>
11860 * tree-vect-stmts.c (vectorizable_call) Remove GOMP_SIMD_LANE code.
11862 2016-06-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11864 * config/arm/thumb1.md (*thumb1_mulsi3): Fix typos in comment.
11866 2016-06-03 Jakub Jelinek <jakub@redhat.com>
11868 PR middle-end/71387
11869 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): If redirecting
11870 to noreturn e->callee->decl that has void return type and void
11871 arguments, adjust gimple_call_fntype and remove lhs even if it had
11872 previously addressable type.
11874 2016-06-02 Jeff Law <law@redhat.com>
11876 PR tree-optimization/71328
11877 * tree-ssa-threadupdate.c (duplicate_thread_path): Fix off-by-one
11878 error when checking for a jump back onto the copied path.
11880 2016-06-02 David Malcolm <dmalcolm@redhat.com>
11882 * config/microblaze/microblaze.c (get_branch_target): Add return
11883 NULL_RTX for the non-CALL_P case.
11884 (insert_wic_for_ilb_runout): Remove unused local "wic_addr1".
11885 (insert_wic): Remove unused local "j".
11887 2016-06-02 Martin Liska <mliska@suse.cz>
11889 * predict.def: Fix typo in PRED_FORTRAN_FAIL_IO display name.
11891 2016-06-02 H.J. Lu <hongjiu.lu@intel.com>
11892 Julia Koval <julia.koval@intel.com>
11894 * function.c (assign_parm_setup_stack): Force source into a
11895 register if needed.
11896 * target.def (function_incoming_arg): Update documentation to
11897 allow arbitrary address computation based on hard register.
11898 * doc/tm.texi: Regenerated.
11900 2016-06-02 Martin Liska <mliska@suse.cz>
11902 * predict.c (combine_predictions_for_bb): Fix first match in
11903 cases where a first predictor contains more than one occurence
11904 in list of predictors. Take the best value in such case.
11906 2016-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11908 PR rtl-optimization/71295
11909 * rtlanal.c (subreg_get_info): If taking a subreg at the requested
11910 offset would go over the size of the inner mode reject it.
11912 2016-06-02 Jakub Jelinek <jakub@redhat.com>
11914 * config/i386/sse.md (*vec_concatv4si): Use v=v,v instead of
11915 x=x,x and v=v,m instead of x=x,m.
11917 * config/i386/sse.md (*vec_concatv2si_sse4_1): Add avx512dq v=Yv,rm
11918 alternative. Change x=x,x alternative to v=Yv,Yv and x=rm,C
11919 alternative to v=rm,C.
11921 * config/i386/sse.md (*vec_concatv2di): Add x86_avx512dq v=Yv,rm
11922 alternative. Change x=xm,C alternative to v=vm,C, x=x,x alternative
11923 to v=Yv,Yv and x=x,m to v=v,m. Use maybe_evex prefix attribute
11924 instead of vex for the last two above mentioned alternatives.
11926 2016-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11929 * config/arm/arm.c (arm_output_multireg_pop): Guard "pop" on update.
11931 2016-06-02 Segher Boessenkool <segher@kernel.crashing.org>
11933 * config/rs6000/dfp.md (trunctddd2): Correct the "length" attribute.
11935 2016-06-01 David Malcolm <dmalcolm@redhat.com>
11937 * config/rl78/rl78.c (rl78_expand_prologue): Convert local
11938 from int to unsigned.
11940 2016-05-31 Michael Meissner <meissner@linux.vnet.ibm.com>
11942 * config/rs6000/vsx.md (vsx_splat_<mode>, V2DI/V2DF): Simplify
11943 alternatives, eliminating preferred register class. Add support
11944 for the MTVSRDD instruction in ISA 3.0.
11945 (vsx_splat_v4si_internal): Use splat_input_operand instead of
11946 reg_or_indexed_operand.
11947 (vsx_splat_v4sf_internal): Likewise.
11949 2016-05-31 Michael Meissner <meissner@linux.vnet.ibm.com>
11952 * config/rs6000/vsx.md (xxspltib_<mode>_nosplit): Add alternatives
11953 for loading up all 0's or all 1's.
11955 2016-06-01 Thomas Preud'homme <thomas.preudhomme@arm.com>
11957 * doc/sourcebuild.texi (arm_acq_rel): Document new effective target.
11959 2016-06-01 Eduard Sanou <dhole@openmailbox.org>
11961 * doc/cppenv.texi: Note that the `%s` in `date` is a non-standard
11963 * gcc.c (driver_handle_option): Call set_source_date_epoch_envvar.
11964 * gcc.c (set_source_date_epoch_envvar): New function, sets
11965 the SOURCE_DATE_EPOCH environment variable to the current time.
11967 2016-06-01 Eric Botcazou <ebotcazou@adacore.com>
11969 * tree-vect-loop.c (vect_determine_vectorization_factor): Also compute
11970 the factor for live Phi nodes.
11972 2016-06-01 Jan Hubicka <hubicka@ucw.cz>
11974 * loop-dolop.c (doloop_optimize): Us likely max iteration bound.
11975 * tree-parloops.c (parallelize_loops): likewise.
11976 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop,
11977 tree_unswitch_outer_loop): likewise.
11979 2016-06-01 Jakub Jelinek <jakub@redhat.com>
11981 PR middle-end/71371
11982 * gimplify.c (gimplify_omp_for): Temporarily clear gimplify_omp_ctxp
11983 around creation of the temporary.
11985 2016-06-01 Richard Biener <rguenther@suse.de>
11987 PR tree-optimization/71366
11988 * tree-ssa-loop-ivcanon.c (edges_to_remove): New global.
11989 (unloop_loops): Move removing edges here ...
11990 (try_unroll_loop_completely): ... from here.
11991 (try_peel_loop): ... and here.
11992 (tree_unroll_loops_completely_1): Track parent loops via
11993 bitmap of header BBs.
11994 (tree_unroll_loops_completely): Adjust for that.
11996 2016-06-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
11998 * config/rs6000/altivec.h (vec_slv): New macro.
11999 (vec_srv): New macro.
12000 * config/rs6000/altivec.md (UNSPEC_VSLV): New value.
12001 (UNSPEC_VSRV): New value.
12004 * config/rs6000/rs6000-builtin.def (vslv): New builtin definition.
12005 (vsrv): New builtin definition.
12006 * config/rs6000/rs6000-c.c (P9V_BUILTIN_VSLV): Macro expansion to
12007 define argument types for new builtin.
12008 (P9V_BUILTIN_VSRV): Macro expansion to define argument types for
12010 * doc/extend.texi: Document the new vec_vslv and vec_srv built-in
12013 2016-06-01 Uros Bizjak <ubizjak@gmail.com>
12014 Jocelyn Mayer <l_indien@magic.fr>
12017 * config/i386/driver-i386.c (host_detect_local_cpu): Correctly
12018 detect processor family for signature_CENTAUR_ebx.
12019 <case PROCESSOR_I486>: Pass c3, winchip2 or winchip-c6 for
12020 signature_CENTAUR_ebx.
12021 <case PROCESSOR _PENTIUMPRO>: Pass c3-2 for signature_CENTAUR_ebx.
12022 <default>: Pass x86-64 for has_longmode.
12024 2016-06-01 Nathan Sidwell <nathan@acm.org>
12026 * config/nvptx/nvptx.c (nvptx_assemble_undefined_decl): Reject
12029 2016-06-01 Richard Biener <rguenther@suse.de>
12031 PR tree-optimization/71261
12032 * tree-vect-patterns.c (check_bool_pattern): Gather a hash-set
12033 of stmts successfully put in the bool pattern. Remove
12034 single-use restriction.
12035 (adjust_bool_pattern_cast): Add cast at the use site via the
12036 pattern def sequence.
12037 (adjust_bool_pattern): Remove recursion, maintain a hash-map
12038 of patterned defs. Use the pattern def seqence instead of
12039 multiple independent patterns.
12040 (sort_after_uid): New qsort compare function.
12041 (adjust_bool_stmts): New function to process stmts in the bool
12042 pattern in IL order.
12043 (vect_recog_bool_pattern): Adjust.
12044 * tree-if-conv.c (ifcvt_split_def_stmt): Remove.
12045 (ifcvt_walk_pattern_tree): Likewise.
12046 (stmt_is_root_of_bool_pattern): Likewise.
12047 (ifcvt_repair_bool_pattern): Likewise.
12048 (tree_if_conversion): Do not call ifcvt_repair_bool_pattern.
12050 2016-06-01 Jan Hubicka <hubicka@ucw.cz>
12052 * loop-unroll.c (decide_unroll_constant_iterations,
12053 decide_unroll_runtime_iterations, decide_unroll_stupid): Use
12054 likely upper bounds.
12055 * loop-iv.c (find_simple_exit): Dump likely upper bounds.
12057 2016-06-01 Thomas Schwinge <thomas@codesourcery.com>
12059 * tree-core.h (enum omp_clause_code): Remove
12060 OMP_CLAUSE_DEVICE_RESIDENT. Adjust all users.
12062 2016-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12064 * config/arm/sync.md (arm_store_exclusive<mode>):
12065 Use 'H' output modifier on operands[2] rather than creating a new
12066 entry in out-of-bounds memory of the operands array.
12067 (arm_store_release_exclusivedi): Likewise.
12069 2016-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12071 * config/arm/arm.c (arm_fusion_enabled_p): New function.
12072 * config/arm/arm-protos.h (arm_fusion_enabled_p): Declare prototype.
12073 * config/arm/crypto.md (crypto_<crypto_pattern>, CRYPTO_UNARY):
12074 Add "=w,0" alternative. Enable it when AES/AESMC fusion is enabled.
12076 2016-06-01 Eric Botcazou <ebotcazou@adacore.com>
12078 * tree-vect-loop.c (vect_determine_vectorization_factor): Also take
12079 into account live statements for mask producers.
12081 2016-06-01 Richard Biener <rguenther@suse.de>
12083 PR tree-optimization/71311
12084 * match.pd (@0 < @1 && @0 < @2 -> @0 < min(@1,@2)): Add :c and
12085 restrict to non-INTEGER_CST @0.
12087 2016-06-01 Richard Biener <rguenther@suse.de>
12089 * match.pd ((A & B) - (A & ~B) -> B - (A ^ B)): Add missing :c.
12090 (relational patterns): Use :c to avoid pattern duplications.
12092 2016-06-01 Richard Biener <rguenther@suse.de>
12094 * genmatch.c (comparison_code_p): New predicate.
12095 (swap_tree_comparison): New function.
12096 (commutate): Add for_vec parameter to append new for entries.
12097 Support commutating relational operators by swapping it alongside
12099 (lower_commutative): Adjust.
12100 (dt_simplify::gen): Do not pass artificial operators to gen
12102 (decision_tree::gen): Do not add artificial operators as parameters.
12103 (parser::parse_expr): Verify operator commutativity when :c is
12104 applied. Allow :C to override this.
12105 * match.pd: Adjust patterns to use :C instead of :c where required.
12107 2016-06-01 Patrick Palka <ppalka@gcc.gnu.org>
12109 PR tree-optimization/71077
12110 * tree-ssa-threadedge.c (simplify_control_stmt_condition_1): In
12111 the combining step, use boolean_false_node and boolean_true_node
12112 as the designated false/true return values.
12114 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
12116 * predict.def (PRED_LOOP_EXTRA_EXIT): Define.
12117 * predict.c (predict_iv_comparison): Also check PRED_LOOP_EXTRA_EXIT.
12118 (predict_extra_loop_exits): Use PRED_LOOP_EXTRA_EXIT instead of
12121 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
12123 * doc/invoke.texi (-frename-registers): Drop -fpeel-loops from list
12124 of flags impliying the register renaming.
12125 * toplev.c (process_options): Do not imply flag_rename_registers with
12128 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
12130 * config/sh/sh.h (ASM_OUTPUT_SYMBOL_REF): Remove macro and use the
12131 default implementation.
12133 2016-05-31 Nathan Sidwell <nathan@acm.org>
12135 * dwarf2out.c (cur_line_info_table): Add GTY marker.
12137 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
12139 * config/sh/constraints.md (b): Remove constraint.
12140 * config/sh/predicates.md (arith_reg_operand): Remove
12142 * config/sh/sh-modes.def (PDI): Remove.
12143 * config/sh/sh.c (sh_target_reg_class,
12144 sh_optimize_target_register_callee_saved): Remove functions.
12145 (sh_option_override): Don't set MASK_SAVE_ALL_TARGET_REGS.
12146 (sh_expand_epilogue): Update comment.
12147 (sh_hard_regno_mode_ok, sh_register_move_cost, calc_live_regs,
12148 sh_secondary_reload): Remove TARGET_REGS related code.
12149 * config/sh/sh.h (FIRST_TARGET_REG, LAST_TARGET_REG,
12150 TARGET_REGISTER_P): Remove macros.
12151 (SH_DBX_REGISTER_NUMBER, REG_ALLOC_ORDER): Remove target regs.
12152 * config/sh/sh.md (PR_MEDIA_REG, T_MEDIA_REG, FR23_REG, TR0_REG,
12153 TR1_REG, TR2_REG): Remove constants.
12154 * config/sh/sh.opt (SAVE_ALL_TARGET_REGS): Remove.
12156 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
12158 * config/sh/sh.md (adddi3, subdi3, negdi2, abs<mode>2): Remove
12159 define_expand patterns.
12160 (adddi3_compact): Rename to adddi3.
12161 (subdi3_compact): Rename to subdi3.
12162 (*negdi2): Rename to negdi2.
12163 (*abs<mode>2): Rename to abs<mode>2.
12165 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
12167 * config/rx/rx.md (FETCHOP_NO_MINUS): New code iterator.
12168 (atomic_<fetchop_name>_fetchsi): Extract minus operator into ...
12169 (atomic_sub_fetchsi): ... this new pattern.
12170 (mvtc): Add CC_REG clobber.
12172 2016-05-31 Marek Polacek <polacek@redhat.com>
12174 * gimplify.c (gimplify_switch_expr): Also handle GIMPLE_TRY.
12176 2016-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12178 * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Use
12179 aarch64_fusion_enabled_p to check for fusion capabilities.
12181 2016-05-31 Richard Biener <rguenther@suse.de>
12183 PR tree-optimization/71352
12184 * tree-ssa-reassoc.c (zero_one_operation): Handle op equal to
12185 minus one and a negate.
12187 2016-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12189 * config/aarch64/aarch64.c (aarch64_simd_attr_length_move): Delete.
12190 * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
12192 * config/aarch64/iterators.md (insn_count): Add descriptive comment.
12193 * config/aarch64/aarch64-simd.md (*aarch64_mov<mode>, VSTRUCT modes):
12194 Remove use of aarch64_simd_attr_length_move, set length attribute
12196 (*aarch64_be_movoi): Likewise.
12197 (*aarch64_be_movci): Likewise.
12198 (*aarch64_be_movxi): Likewise.
12200 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
12202 * loop-init.c (gate): Do not enale RTL loop unroller with -fpeel-loops.
12203 It no longer does that.
12204 * toplev.c (process_options): Do not enable flag_web with -fpeel-loops.
12206 2016-05-31 Wladimir J. van der Laan <laanwj@gmail.com>
12208 * config/aarch64/arm_neon.h (vdupb_laneq_s8): Remove spurious
12209 attribute __unused__.
12211 2016-05-31 Thomas Preud'homme <thomas.preudhomme@arm.com>
12213 * config/arm/arm-protos.h (arm_arch_thumb1): Declare.
12214 * config/arm/arm.c (arm_arch_thumb1): Define.
12215 (arm_option_override): Initialize arm_arch_thumb1.
12216 * config/arm/arm.h (arm_arch_thumb1): Declare.
12217 (TARGET_ARM_ARCH_ISA_THUMB): Use arm_arch_thumb to determine if target
12218 support Thumb-1 ISA.
12220 2016-05-31 Kirill Yukhin <kirill.yukhin@intel.com>
12223 * config/i386/sse.md (define_insn_and_split "*vec_extractv4sf_0"): Use
12224 `Yv' for scalar operand.
12226 2016-05-31 Tom de Vries <tom@codesourcery.com>
12228 PR tree-optimization/69068
12229 * graphite-isl-ast-to-gimple.c (copy_bb_and_scalar_dependences): Handle
12230 phis with more than two args.
12232 2016-05-30 Andreas Tobler <andreast@gcc.gnu.org>
12234 * config.gcc: Move hard float support for arm*hf*-*-freebsd* into
12235 armv6*-*-freebsd* for FreeBSD 11. Eliminate the arm*hf*-*-freebsd*
12238 2016-05-30 Jose E. Marchesi <jose.marchesi@oracle.com>
12240 * config.gcc (sparc*-*-*): Support cpu_32, cpu_64, tune_32 and
12242 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
12244 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Add entries for
12245 cpu_32, cpu_64, tune_32 and tune_64.
12246 * config/sparc/sol2.h (OPTION_DEFAULT_SPECS): Likewise.
12248 2016-05-30 Uros Bizjak <ubizjak@gmail.com>
12250 * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
12252 2016-05-30 Andi Kleen <ak@linux.intel.com>
12254 * auto-profile.c (read_profile): Replace asserts with errors
12255 when file does not exist.
12256 * gcov-io.c (gcov_read_words): Dito.
12258 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
12260 * tree-cfg.c (print_loop): Print likely upper bounds.
12262 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
12264 * doc/invoke.texi (-fpeel-loops,-O3): Update documentation.
12265 * opts.c (default_options): Enable peel loops at -O3.
12266 * tree-ssa-loop-ivcanon.c (peeled_loops): New static var.
12267 (try_peel_loop): Do not re-peel already peeled loops;
12268 use likely upper bounds; fix profile updating.
12269 (pass_complete_unroll::execute): Initialize peeled_loops.
12271 2016-05-30 Martin Liska <mliska@suse.cz>
12273 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Scale
12274 computed costs by frequency of BB they belong to.
12275 (get_scaled_computation_cost_at): New function.
12277 2016-05-30 Alexander Monakov <amonakov@ispras.ru>
12278 Marc Glisse <marc.glisse@inria.fr>
12280 PR tree-optimization/71289
12281 * match.pd (-1 / B < A, A > -1 / B): New transformations.
12283 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
12285 * tree-vect-loop.c (vect_transform_loop): Update likely bounds.
12287 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
12289 * tree-ssa-loop-ivcanon.c (try_peel_loop): Correctly set wont_exit
12290 for peeled copies; avoid underflow when updating estimates; correctly
12291 scale loop profile.
12293 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
12295 * tree-ssa-reassoc.ci (swap_ops_for_binary_stmt): Fix typo from commit
12296 r236875. Corrected oe3 to oe2 as obvious.
12298 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
12300 PR middle-end/71269
12301 PR middle-end/71252
12302 * tree-ssa-reassoc.c (insert_stmt_before_use): Use find_insert_point so
12303 that inserted stmt will not dominate stmts that defines its operand.
12304 (rewrite_expr_tree): Add stmt_to_insert before adding the use stmt.
12305 (rewrite_expr_tree_parallel): Likewise.
12307 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
12309 PR middle-end/71252
12310 * tree-ssa-reassoc.c (swap_ops_for_binary_stmt): Fix swap such that
12311 all fields including stmt_to_insert are swapped.
12313 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
12315 * predict.h (force_edge_cold): Declare.
12316 * predict.c (force_edge_cold): New function.
12317 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Fix profile
12319 (canonicalize_loop_induction_variables): Fix formating.
12321 2016-05-30 Eric Botcazou <ebotcazou@adacore.com>
12323 * config/visium/visium.c (visium_split_double_add): Minor tweaks.
12324 (visium_expand_copysign): Use gen_int_mode directly.
12325 (visium_compute_frame_size): Minor tweaks.
12327 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
12329 * tree-vect-loop.c (vect_analyze_loop_2): Use
12330 likely_max_stmt_executions_int.
12332 2016-05-30 Tom de Vries <tom@codesourcery.com>
12334 PR tree-optimization/69067
12335 * graphite-isl-ast-to-gimple.c (get_def_bb_for_const): Remove assert.
12337 2016-05-29 Uros Bizjak <ubizjak@gmail.com>
12340 * config/i386/sync.md (define_peephole2 atomic_storedi_fpu):
12341 New peepholes to remove unneeded fild/fistp pairs.
12342 (define_peephole2 atomic_loaddi_fpu): Ditto.
12344 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
12346 * predict.c (maybe_hot_frequency_p): Avoid division.
12348 2016-05-28 Gerald Pfeifer <gerald@pfeifer.com>
12350 * doc/install.texi: Use https for shop.fsf.org.
12352 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
12354 * tree-ssa-loop-ivopts.c (estimated_stmt_executions_int): Use
12355 likely_max_stmt_executions_int.
12357 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
12359 * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
12360 likely_max_stmt_executions_int.
12362 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
12364 * profile.c (compute_branch_probabilities): Do not report hitrates
12366 (branch_prob): Report hitrates here.
12367 * predict.c (gimple_predict_edge): Do not assert profile status;
12368 fix formatting issues.
12370 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
12372 * predict.c (edge_predicted_by_p): New function.
12373 (predict_paths_for_bb): Do not put multiple predictions of the same type
12376 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
12378 * tree-ssa-loop-niter.c (number_of_iterations_exit): Revert accidental
12381 2016-05-28 Alan Modra <amodra@gmail.com>
12383 * dominance.c (verify_dominators): Don't segfault on NULL imm_bb.
12385 2016-05-28 Alan Modra <amodra@gmail.com>
12387 PR rtl-optimization/71275
12388 * ira.c (ira): Free dominance info.
12390 2016-05-27 Gerald Pfeifer <gerald@pfeifer.com>
12392 * doc/sourcebuild.texi: New address for upstream Go repository.
12394 2016-05-27 Thomas Preud'homme <thomas.preudhomme@arm.com>
12396 * config/arm/arm.h (TARGET_ARM_V6M): Remove.
12397 (TARGET_ARM_V7M): Likewise.
12399 2016-05-26 Jeff Law <law@redhat.com>
12401 * tree-ssa-threadedge.c: Remove include of tree-ssa-threadbackward.h.
12402 (thread_across_edge): Remove calls to find_jump_threads_backwards.
12403 * passes.def: Add jump threading passes before DOM/VRP.
12404 * tree-ssa-threadbackward.c (find_jump_threads_backwards): Change
12405 argument to a basic block from an edge. Remove tests which are
12407 (pass_data_thread_jumps, class pass_thread_jumps): New.
12408 (pass_thread_jumps::gate, pass_thread_jumps::execute): New.
12409 (make_pass_thread_jumps): Likewise.
12410 * tree-pass.h (make_pass_thread_jumps): Declare.
12412 2016-05-27 Eric Botcazou <ebotcazou@adacore.com>
12414 * config/visium/visium-protos.h (split_double_move): Rename into...
12415 (visium_split_double_move): ...this.
12416 (visium_split_double_add): Declare.
12417 * config/visium/visium.c (split_double_move): Rename into...
12418 (visium_split_double_move): ...this.
12419 (visium_split_double_add): New function.
12420 (visium_expand_copysign): Renumber operands for consistency.
12421 * config/visium/visium.md (DImode move splitter): Adjust to renaming.
12422 (DFmode move splitter): Likewise.
12423 (*addi3_insn): Split by means of visium_split_double_add.
12424 (*adddi3_insn_flags): Delete.
12425 (*plus_plus_sltu<subst_arith>): New insn.
12426 (*subdi3_insn): Split by means of visium_split_double_add.
12427 (subdi3_insn_flags): Delete.
12428 (*minus_minus_sltu<subst_arith>): New insn.
12429 (*negdi2_insn): Split by means of visium_split_double_add.
12430 (*negdi2_insn_flags): Delete.
12432 2016-05-27 Ulrich Weigand <uweigand@de.ibm.com>
12434 * configure.ac: Treat a --with-headers option without argument
12435 the same as the default (i.e. consult sys-include directory).
12436 * configure: Regenerate.
12438 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12440 * config/aarch64/aarch64.c (aarch64_fusion_enabled_p): New function.
12441 * config/aarch64/aarch64-protos.h (aarch64_fusion_enabled_p): Declare
12443 * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aesmc_op>v16qi):
12444 Add "=w,0" alternative. Enable it when AES/AESMC fusion is enabled.
12446 2016-05-27 Jiong Wang <jiong.wang@arm.com>
12449 * config/aarch64/aarch64.c (aarch64_expand_builtin_va_start): Honor
12450 tree-stdarg analysis results.
12451 (aarch64_setup_incoming_varargs): Likewise.
12453 2016-05-27 Jiong Wang <jiong.wang@arm.com>
12455 * config/aarch64/aarch64.c (aarch64_build_builtin_va_list): Initialize
12456 va_list_gpr_counter_field and va_list_fpr_counter_field.
12458 2016-05-27 Wilco Dijkstra <wdijkstr@arm.com>
12461 * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Remove.
12462 * config/aarch64/aarch64.c
12463 (aarch64_cannot_change_mode_class): Remove function.
12464 * config/aarch64/aarch64-protos.h
12465 (aarch64_cannot_change_mode_class): Remove.
12467 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
12469 * cfgloop.c (record_niter_bound): Record likely upper bounds.
12470 (likely_max_stmt_executions_int, get_likely_max_loop_iterations,
12471 get_likely_max_loop_iterations_int): New.
12472 * cfgloop.h (struct loop): Add nb_iterations_likely_upper_bound,
12473 any_likely_upper_bound.
12474 (get_likely_max_loop_iterations_int, get_likely_max_loop_iterations):
12476 * cfgloopmanip.c (copy_loop_info): Copy likely upper bounds.
12477 * loop-unroll.c (unroll_loop_constant_iterations): Update likely
12479 (unroll_loop_constant_iterations): Likewise.
12480 (unroll_loop_runtime_iterations): Likewise.
12481 * lto-streamer-in.c (input_cfg): Stream likely upper bounds.
12482 * lto-streamer-out.c (output_cfg): Likewise.
12483 * tree-ssa-loop-ivcanon.c (try_peel_loop): Update likely upper
12485 (canonicalize_loop_induction_variables): Dump likely upper bounds.
12486 * tree-ssa-loop-niter.c (record_estimate): Record likely upper bounds.
12487 (likely_max_loop_iterations): New.
12488 (likely_max_loop_iterations_int): New.
12489 (likely_max_stmt_executions): New.
12490 * tree-ssa-loop-niter.h (likely_max_loop_iterations,
12491 likely_max_loop_iterations_int, likely_max_stmt_executions_int,
12492 likely_max_stmt_executions): Declare.
12494 2016-05-27 Marek Polacek <polacek@redhat.com>
12496 PR middle-end/71308
12497 * gimple-fold.c (gimple_fold_call): Check that LHS is not null.
12499 2016-05-27 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
12501 * config/s390/s390.md (2x risbg splitters): Use
12502 reg_overlap_mentioned_p instead of rtx_equal_p.
12504 2016-05-27 Dominik Vogt <vogt@linux.vnet.ibm.com>
12506 * combine.c (make_compound_operation): Take known zero bits into
12507 account when checking for possible zero_extend.
12509 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12511 * config/aarch64/aarch64.md (ashl<mode>3, SHORT modes):
12512 Use const_int_operand for operand 2 predicate. Simplify expand code
12515 2016-05-27 Ilya Enkovich <ilya.enkovich@intel.com>
12517 PR middle-end/71279
12518 * fold-const.c (fold_ternary_loc): Don't fold VEC_COND_EXPR
12521 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12523 * config/aarch64/aarch64-modes.def (CC_ZESWP, CC_SESWP): Delete.
12524 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Remove condition
12525 that returns CC_SESWPmode and CC_ZESWPmode.
12526 (aarch64_get_condition_code_1): Remove handling of CC_SESWPmode
12528 (aarch64_rtx_costs): Likewise.
12530 2016-05-26 Michael Meissner <meissner@linux.vnet.ibm.com>
12532 * config/rs6000/rs6000.c (rs6000_emit_p9_fp_minmax): New function
12533 for ISA 3.0 min/max support.
12534 (rs6000_emit_p9_fp_cmove): New function for ISA 3.0 floating point
12535 conditional move support.
12536 (rs6000_emit_cmove): Call rs6000_emit_p9_fp_minmax and
12537 rs6000_emit_p9_fp_cmove if the ISA 3.0 instructions are
12539 * config/rs6000/rs6000.md (SFDF2): New iterator to allow doing
12540 conditional moves where the comparison type is different from move
12542 (fp_minmax): New code iterator for smin/smax.
12543 (minmax): New code attributes for min/max.
12544 (SMINMAX): Likewise.
12545 (smax<mode>3): Combine min, max insns into one insn using the
12546 fp_minmax code iterator. Add support for ISA 3.0 min/max
12547 instructions that don't need -ffast-math.
12548 (s<minmax><mode>3): Likewise.
12549 (smax<mode>3_vsx): Likewise.
12550 (smin<mode>3): Likewise.
12551 (s<minmax><mode>3_vsx): Likewise.
12552 (smin<mode>3_vsx): Likewise.
12553 (pre-VSX min/max splitters): Likewise.
12554 (s<minmax><mode>3_fpr): Likewise.
12555 (movsfcc): Rewrite floating point conditional moves to combine
12556 SFmode/DFmode into a single insn.
12557 (mov<mode>cc): Likewise.
12558 (movdfcc): Likewise.
12559 (fselsfsf4): Combine FSEL cases into a single insn, using SFDF and
12560 SFDF2 iterators to handle all combinations.
12561 (fseldfsf4): Likewise.
12562 (fsel<SFDF:mode><SFDF2:mode>4): Likewise.
12563 (fseldfdf4): Likewise.
12564 (fselsfdf4): Likewise.
12565 (mov<SFDF:mode><SFDF2:mode>cc_p9): Add support for the ISA 3.0
12566 comparison instructions that set a 0/-1 mask, and use it for
12567 floating point conditional move via XXSEL.
12568 (fpmask<mode>): Likewise.
12569 (xxsel<mode>): Likewise.
12570 * config/rs6000/predicates.md (min_max_operator): Delete, no
12572 (fpmask_comparison_operaton): New insn for ISA 3.0 comparison
12573 instructions that generate a 0/-1 mask for use with XXSEL.
12574 * config/rs6000/rs6000.h (TARGET_MINMAX_SF): New helper macros to
12575 say whether floating point min/max is available, either through
12576 FSEL, ISA 2.06 min/max, and ISA 3.0 min/max instrucitons.
12577 (TARGET_MINMAX_DF): Likewise.
12579 2016-05-27 Alan Modra <amodra@gmail.com>
12581 PR rtl-optimization/71275
12582 * ira.c (ira): Call loop_optimizer_init to set up bb_loop_depth
12583 for update_equiv_regs and combine_and_move_insns.
12585 2016-05-26 Uros Bizjak <ubizjak@gmail.com>
12587 * config/i386/i386.md (*movqi_internal) <attr "isa">: Use
12588 if_then_else or cond RTXes to calculate attribute value.
12589 * config/i386/mmx.md (*vec_extractv2sf_1) <attr "prefix_rep">: Ditto.
12590 <attr "length_immediate>: Ditto.
12591 (*vec_extractv2sf_1) <attr "length_immediate">: Ditto.
12592 * config/i386/sse.md (sse_loadlps) <attr "length_immediate">: Ditto.
12593 (*vec_concatv2sf_sse4_1) <attr "isa">: Ditto.
12594 <attr "type">: Ditto.
12595 <attr "prefix_data16">: Ditto.
12596 <attr "prefix_extra">: Ditto.
12597 <attr "length_immediate">: Ditto.
12598 <attr "prefix">: Ditto.
12599 (vec_set<mode>_0) <attr "isa">: Ditto.
12600 <attr "prefix_extra">: Ditto.
12601 <attr "length_immediate">: Ditto.
12602 <attr "prefix">: Ditto.
12603 (*vec_interleave_highv2df) <attr "prefix_data16">: Ditto.
12604 (*vec_interleave_lowv2df) <attr "prefix_data16">: Ditto.
12605 (sse2_storelpd) <attr "prefix_data16">: Ditto.
12606 (sse2_loadhpd) <attr "prefix_data16">: Ditto.
12607 (sse2_loadlpd) <attr "prefix_data16">: Ditto.
12608 <attr "length_immediate">: Ditto.
12609 <attr "prefix">: Ditto.
12610 (sse2_movsd) <attr "length_immediate">: Ditto.
12611 <attr "prefix">: Ditto.
12612 (vec_concatv2df) <attr "isa">: Ditto.
12613 <attr "prefix">: Ditto.
12614 (*vec_extractv4si) <attr "prefix_extra">: Ditto.
12615 (*vec_extractv2di_1) <attr "isa">: Ditto.
12616 <attr "type">: Ditto.
12617 <attr "length_immediate">: Ditto.
12618 <attr "prefix_rex">: Ditto.
12619 <attr "prefix_extra">: Ditto.
12620 (*vec_concatv2si_sse4_1) <attr "type">: Ditto.
12621 <attr "prefix_extra">: Ditto.
12622 <attr "length_immediate">: Ditto.
12623 (vec_concatv2di) <attr "isa">: Ditto.
12624 <attr "prefix_extra">: Ditto.
12625 <attr "length_immediate">: Ditto.
12626 <attr "prefix">: Ditto.
12628 2016-05-26 Martin Liska <mliska@suse.cz>
12630 * tree-ssa-loop-ivopts.c (comp_cost::infinite_cost_p): New
12632 (operator+): Likewise.
12633 (operator-): Likewise.
12634 (comp_cost::operator+=): Likewise.
12635 (comp_cost::operator-=): Likewise.
12636 (comp_cost::operator/=): Likewise.
12637 (comp_cost::operator*=): Likewise.
12638 (operator<): Likewise.
12639 (operator==): Likewise.
12640 (operator<=): Likewise.
12641 (new_cost): Remove.
12642 (infinite_cost_p): Likewise.
12643 (add_costs): Likewise.
12644 (sub_costs): Likewise.
12645 (compare_costs): Likewise.
12646 (set_group_iv_cost): Use the newly introduced functions.
12647 (get_address_cost): Likewise.
12648 (get_shiftadd_cost): Likewise.
12649 (force_expr_to_var_cost): Likewise.
12650 (split_address_cost): Likewise.
12651 (ptr_difference_cost): Likewise.
12652 (difference_cost): Likewise.
12653 (get_computation_cost_at): Likewise.
12654 (determine_group_iv_cost_generic): Likewise.
12655 (determine_group_iv_cost_address): Likewise.
12656 (determine_group_iv_cost_cond): Likewise.
12657 (autoinc_possible_for_pair): Likewise.
12658 (determine_group_iv_costs): Likewise.
12659 (cheaper_cost_pair): Likewise.
12660 (iv_ca_recount_cost): Likewise.
12661 (iv_ca_set_no_cp): Likewise.
12662 (iv_ca_set_cp): Likewise.
12663 (iv_ca_cost): Likewise.
12664 (iv_ca_new): Likewise.
12665 (iv_ca_dump): Likewise.
12666 (iv_ca_narrow): Likewise.
12667 (iv_ca_prune): Likewise.
12668 (iv_ca_replace): Likewise.
12669 (try_add_cand_for): Likewise.
12670 (try_improve_iv_set): Likewise.
12671 (find_optimal_iv_set): Likewise.
12673 2016-05-26 Richard Sandiford <richard.sandiford@arm.com>
12675 * tree-ssa-loop-ivopts.c (loop_body_includes_call): Don't assume
12676 that internal functions will clobber all caller-saved registers.
12678 2016-05-26 Wilco Dijkstra <wdijkstr@arm.com>
12680 * config/aarch64/aarch64.c (aarch64_case_values_threshold):
12681 Return a better case_values_threshold when optimizing.
12683 2016-05-26 Wilco Dijkstra <wdijkstr@arm.com>
12685 * config/aarch64/aarch64-simd.md (aarch64_combinez):
12686 Add ? to integer variant.
12687 (aarch64_combinez_be): Likewise.
12689 2016-05-26 Jakub Jelinek <jakub@redhat.com>
12691 * config/i386/sse.md (*vcvtps2ph_store<mask_name>): Use v constraint
12692 instead of x constraint.
12693 (vcvtps2ph256<mask_name>): Likewise.
12695 * config/i386/sse.md (*ssse3_palignr<mode>_perm): Add avx512bw
12696 alternative. Formatting fix.
12698 * config/i386/sse.md
12699 (<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Rename
12701 (avx512vl_shuf_<shuffletype>32x4_1<mask_name>): ... this.
12702 (*avx_vperm_broadcast_v4sf): Use v constraint instead of x. Use
12703 maybe_evex prefix instead of vex.
12704 (*avx_vperm_broadcast_<mode>): Use v constraint instead of x. Handle
12705 EXT_REX_SSE_REG_P (op0) case in the splitter.
12707 2016-05-25 Jeff Law <law@redhat.com>
12709 PR tree-optimization/71272
12710 * tree-ssa-threadbackward.c (convert_and_register_jump_thread_path):
12711 Update comments. Add test for empty path.
12713 2016-05-25 Bill Seurer <seurer@linux.vnet.ibm.com>
12715 * config/rs6000/altivec.h (vec_cmpne): Add #define for vec_cmpne.
12716 * config/rs6000/rs6000-builtin.def (vec_cmpne): Add vec_cmpne as a
12717 special case builtin.
12718 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
12719 code for ALTIVEC_BUILTIN_VEC_CMPNE.
12720 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
12721 for __builtin_vec_cmpne.
12723 2016-05-25 Eric Botcazou <ebotcazou@adacore.com>
12725 * tree-ssa-phiopt.c (factor_out_conditional_conversion): Remove
12726 redundant test and bail out if the type of the new operand is not
12727 a GIMPLE register type after stripping a VIEW_CONVERT_EXPR.
12729 2016-05-25 Uros Bizjak <ubizjak@gmail.com>
12731 * config/i386/i386.opt (ix86_target_flags_explicit): Remove.
12732 (x_ix86_target_flags_explicit): Remove.
12733 * config/i386/i386.c (ix86_function_specific_save): Do not copy
12734 x_ix86_target_flags_explicit.
12735 (ix86_function_specific_restore): Ditto.
12737 2016-05-25 Uros Bizjak <ubizjak@gmail.com>
12738 H.J. Lu <hongjiu.lu@intel.com>
12741 * common/config/i386/i386-common.c
12742 (OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): New.
12743 (ix86_handle_option) <case OPT_mgeneral_regs_only>: Disable
12744 MPX, MMX, SSE and x87 instructions for -mgeneral-regs-only.
12745 * config/i386/i386.opt (ix86_target_flags): Add new Variable.
12746 (-mgeneral-regs-only): Add new option.
12747 * config/i386/i386.c (ix86_option_override_internal): Don't enable
12748 x87 instructions if only general registers are allowed.
12749 (ix86_target_string): Add ix86_flags argument. Handle additional
12750 flags options through ix86_flags argument. Update all callers.
12751 * doc/invoke.texi (x86 Options): Document -mgeneral-regs-only.
12753 2016-05-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12755 PR rtl-optimization/66940
12756 * ifcvt.c (noce_get_alt_condition): Check that incrementing or
12757 decrementing desired_val will not overflow before performing these
12760 2016-05-25 Ilya Verbin <ilya.verbin@intel.com>
12762 * config/i386/i386-builtin-types.def: Add V16SI_FTYPE_V16SF,
12763 V8DF_FTYPE_V8DF_ROUND, V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND.
12764 * config/i386/i386.c (enum ix86_builtins): Add
12765 IX86_BUILTIN_CVTPS2DQ512_MASK, IX86_BUILTIN_FLOORPS512,
12766 IX86_BUILTIN_FLOORPD512, IX86_BUILTIN_CEILPS512, IX86_BUILTIN_CEILPD512,
12767 IX86_BUILTIN_TRUNCPS512, IX86_BUILTIN_TRUNCPD512,
12768 IX86_BUILTIN_CVTPS2DQ512, IX86_BUILTIN_VEC_PACK_SFIX512,
12769 IX86_BUILTIN_FLOORPS_SFIX512, IX86_BUILTIN_CEILPS_SFIX512,
12770 IX86_BUILTIN_ROUNDPS_AZ_SFIX512.
12771 (builtin_description bdesc_args): Add __builtin_ia32_floorps512,
12772 __builtin_ia32_ceilps512, __builtin_ia32_truncps512,
12773 __builtin_ia32_floorpd512, __builtin_ia32_ceilpd512,
12774 __builtin_ia32_truncpd512, __builtin_ia32_cvtps2dq512,
12775 __builtin_ia32_vec_pack_sfix512, __builtin_ia32_roundps_az_sfix512,
12776 __builtin_ia32_floorps_sfix512, __builtin_ia32_ceilps_sfix512.
12777 Change IX86_BUILTIN_CVTPS2DQ512 to IX86_BUILTIN_CVTPS2DQ512_MASK for
12778 __builtin_ia32_cvtps2dq512_mask.
12779 (ix86_expand_args_builtin): Handle V8DF_FTYPE_V8DF_ROUND,
12780 V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF.
12781 (ix86_builtin_vectorized_function): Handle builtins mentioned above.
12782 * config/i386/sse.md
12783 (<mask_codefor>avx512f_fix_notruncv16sfv16si<mask_name><round_name>):
12785 (avx512f_fix_notruncv16sfv16si<mask_name><round_name>): ... this.
12786 (<mask_codefor>avx512f_cvtpd2dq512<mask_name><round_name>): Rename
12788 (avx512f_cvtpd2dq512<mask_name><round_name>): ... this.
12789 (avx512f_vec_pack_sfix_v8df): New define_expand.
12790 (avx512f_roundpd512): Rename to ...
12791 (avx512f_round<castmode>512): ... this. Change iterator.
12792 (avx512f_roundps512_sfix): New define_expand.
12793 (round<mode>2_sfix): Change iterator.
12795 2016-05-25 Nick Clifton <nickc@redhat.com>
12797 * config/msp430/msp430.c (msp430_attr): Produce an error if a
12798 static interrupt handler is detected.
12799 * config/msp430/msp430.h (LIB_SPEC): Do not use msp430.ld as the
12800 default linker script.
12801 * config/msp430/msp430.md (movpsihi2_lo): New pattern for loading
12802 the low part of a symbolic pointer.
12804 2016-05-25 Richard Biener <rguenther@suse.de>
12806 PR tree-optimization/71261
12807 * tree-if-conv.c (ifcvt_split_def_stmt): Walk uses on the
12808 interesting stmt instead of immediate uses when looking
12809 for the use operand to replace.
12811 2016-05-25 Martin Liska <mliska@suse.cz>
12813 * ipa-inline.c (edge_badness): Use 'w/' instead of 'w'.
12815 2016-05-25 Richard Biener <rguenther@suse.de>
12817 PR tree-optimization/71264
12818 * tree-vect-stmts.c (vect_init_vector): Properly deal with
12821 2016-05-25 Martin Liska <mliska@suse.cz>
12823 PR tree-optimization/71239
12824 * tree.c (array_at_struct_end_p): Do not call operand_equal_p
12825 if DECL_SIZE is NULL.
12827 2016-05-25 Richard Biener <rguenther@suse.de>
12829 * timevar.def (TV_TREE_LOOP_IFCVT): Add.
12830 * tree-if-conv.c (pass_data_if_conversion): Use it.
12832 2016-05-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
12834 * cgraph.c (cgraph_node::get_availability): Fix typo in comment.
12835 * symtab.c (symtab_node::binds_to_current_def_p): Likewise.
12836 * varpool.c (varpool_node::get_availability): Likewise.
12838 2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
12840 * config/rs6000/altivec.md (VNEG iterator): New iterator for
12841 VNEGW/VNEGD instructions.
12842 (p9_neg<mode>2): New insns for ISA 3.0 VNEGW/VNEGD.
12843 (neg<mode>2): Add expander for V2DImode added in ISA 2.07, and
12844 support for ISA 3.0 VNEGW/VNEGD instructions.
12846 2016-05-24 Cesar Philippidis <cesar@codesourcery.com>
12848 * gimplify.c (omp_notice_variable): Use zero-length arrays for data
12849 pointers inside OACC_DATA regions.
12850 (gimplify_scan_omp_clauses): Prune firstprivate clause associated
12851 with OACC_DATA, OACC_ENTER_DATA and OACC_EXIT data regions.
12852 (gimplify_adjust_omp_clauses): Fix typo in comment.
12854 2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
12856 * config/rs6000/altivec.md (VParity): New mode iterator for vector
12857 parity built-in functions.
12858 (p9v_ctz<mode>2): Add support for ISA 3.0 vector count trailing
12860 (p9v_parity<mode>2): Likewise.
12861 * config/rs6000/vector.md (VEC_IP): New mode iterator for vector
12863 (ctz<mode>2): ISA 3.0 expander for vector count trailing zeros.
12864 (parity<mode>2): ISA 3.0 expander for vector parity.
12865 * config/rs6000/rs6000-builtin.def (BU_P9_MISC_1): New macros for
12867 (BU_P9_64BIT_MISC_0): Likewise.
12868 (BU_P9_MISC_0): Likewise.
12869 (BU_P9V_AV_1): Likewise.
12870 (BU_P9V_AV_2): Likewise.
12871 (BU_P9V_AV_3): Likewise.
12872 (BU_P9V_AV_P): Likewise.
12873 (BU_P9V_VSX_1): Likewise.
12874 (BU_P9V_OVERLOAD_1): Likewise.
12875 (BU_P9V_OVERLOAD_2): Likewise.
12876 (BU_P9V_OVERLOAD_3): Likewise.
12877 (VCTZB): Add vector count trailing zeros support.
12881 (VPRTYBD): Add vector parity support.
12882 (VPRTYBQ): Likewise.
12883 (VPRTYBW): Likewise.
12884 (VCTZ): Add overloaded vector count trailing zeros support.
12885 (VPRTYB): Add overloaded vector parity support.
12886 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
12887 overloaded vector count trailing zeros and parity instructions.
12888 * config/rs6000/rs6000.md (wd mode attribute): Add V1TI and TI for
12889 vector parity support.
12890 * config/rs6000/altivec.h (vec_vctz): Add ISA 3.0 vector count
12891 trailing zeros support.
12892 (vec_cntlz): Likewise.
12893 (vec_vctzb): Likewise.
12894 (vec_vctzd): Likewise.
12895 (vec_vctzh): Likewise.
12896 (vec_vctzw): Likewise.
12897 (vec_vprtyb): Add ISA 3.0 vector parity support.
12898 (vec_vprtybd): Likewise.
12899 (vec_vprtybw): Likewise.
12900 (vec_vprtybq): Likewise.
12901 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
12902 the ISA 3.0 vector count trailing zeros and vector parity built-in
12905 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
12907 * tree-ssa-reassoc.c (sort_by_operand_rank): Skip checking gimple_bb
12908 when there is stmt_to_insert.
12910 2016-05-24 Martin Sebor <msebor@redhat.com>
12913 * tree.h (complete_or_array_type_p): New inline function.
12915 2016-05-24 Jakub Jelinek <jakub@redhat.com>
12917 * config/i386/i386.h (TARGET_AVOID_4BYTE_PREFIXES): Define.
12918 * config/i386/constraints.md (Yr): Test TARGET_AVOID_4BYTE_PREFIXES
12919 rather than X86_TUNE_AVOID_4BYTE_PREFIXES.
12921 * config/i386/sse.md (<sse4_1>_round<ssemodesuffix><avxsizesuffix>):
12922 Limit 1st alternative to noavx isa, split 2nd alternative into one
12923 noavx and one avx alternative, use *x and Bm in the former and
12924 x and m in the latter.
12926 * config/i386/sse.md (vec_set<mode>_0): Use sse4_noavx isa instead
12927 of sse4 for the first alternative, drop %v from the template
12928 and d operand modifier. Split second alternative into one sse4_noavx
12929 and one avx alternative, use *x instead of *v in the former and v
12930 instead of *v in the latter.
12931 (*sse4_1_extractps): Use noavx isa instead of * for the first
12932 alternative, drop %v from the template. Split second alternative into
12933 one noavx and one avx alternative, use *x instead of *v in the
12934 former and v instead of *v in the latter.
12935 (<vi8_sse4_1_avx2_avx512>_movntdqa): Guard the first 2 alternatives
12936 with noavx and the last one with avx.
12937 (sse4_1_phminposuw): Guard first alternative with noavx isa,
12938 split the second one into one noavx and one avx alternative,
12939 use *x and Bm in the former and x and m in the latter one.
12940 (<sse4_1>_ptest<mode>): Use noavx instead of * for the first two
12943 * config/i386/sse.md (sse4_1_<code>v8qiv8hi2<mask_name>): Limit
12944 first two alternatives to noavx, use *x instead of *v in the second
12945 one, add avx alternative without *.
12946 (sse4_1_<code>v4qiv4si2<mask_name>, sse4_1_<code>v4hiv4si2<mask_name>,
12947 sse4_1_<code>v2qiv2di2<mask_name>, sse4_1_<code>v2hiv2di2<mask_name>,
12948 sse4_1_<code>v2siv2di2<mask_name>): Likewise.
12950 2016-05-24 Jeff Law <law@redhat.com>
12952 * tree-ssa-threadbackwards.c (convert_and_register_jump_thread_path):
12953 New function, extracted from...
12954 (fsm_find_control_statement_thread_paths): Here. Use the new function.
12955 Allow simple copies and constant initializations in the SSA chain.
12957 2016-05-24 Marek Polacek <polacek@redhat.com>
12960 * gimplify.c (gimplify_switch_expr): Look into the innermost lexical
12963 2016-05-24 Jakub Jelinek <jakub@redhat.com>
12966 * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
12967 SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
12968 SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP. Add
12969 SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP and
12970 SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP cases explicitly.
12972 2016-05-24 Richard Biener <rguenther@suse.de>
12974 PR tree-optimization/71240
12975 * tree-ssa-math-opts.c (init_symbolic_number): Verify the source
12978 2016-05-24 Richard Biener <rguenther@suse.de>
12980 PR tree-optimization/71230
12981 * tree-ssa-reassoc.c (zero_one_operation): Handle negate special ops.
12983 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
12985 * tree-vectorizer.h (vectorizable_comparison): Delete.
12986 * tree-vect-loop.c (vectorizable_reduction): Remove redundant
12987 PURE_SLP_STMT check.
12988 * tree-vect-stmts.c (vectorizable_call): Likewise.
12989 (vectorizable_simd_clone_call): Likewise.
12990 (vectorizable_conversion): Likewise.
12991 (vectorizable_assignment): Likewise.
12992 (vectorizable_shift): Likewise.
12993 (vectorizable_operation): Likewise.
12994 (vectorizable_load): Likewise.
12995 (vectorizable_condition): Likewise.
12996 (vectorizable_store): Likewise. Assert that we don't have
12998 (vectorizable_comparison): Make static. Remove redundant
12999 PURE_SLP_STMT check.
13000 (vect_transform_stmt): Assert that we always have an slp_node
13003 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13005 * config/arm/neon.md (ashldi3_neon): Replace comparison of INTVAL of
13006 operands[2] against 1 with comparison against CONST1_RTX.
13007 (<shift>di3_neon): Likewise.
13008 * config/arm/predicates.md (const0_operand): Replace with comparison
13009 against CONST0_RTX.
13011 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13013 * config/arm/arm.md (ashldi3): Replace comparison of INTVAL of
13014 operands[2] against 1 with comparison against CONST1_RTX.
13015 (ashrdi3): Likewise.
13016 (lshrdi3): Likewise.
13017 (ashlsi3): Replace cast of INTVAL to unsigned HOST_WIDE_INT with
13019 (ashrsi3): Likewise.
13020 (lshrsi3): Likewise.
13021 (rotrsi3): Likewise.
13022 (define_split above *compareqi_eq0): Likewise.
13023 (define_split above "prologue"): Likewise.
13024 * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
13025 * config/arm/predicates.md (shift_operator): Likewise.
13026 (shift_nomul_operator): Likewise.
13027 (sat_shift_operator): Likewise.
13028 (thumb1_cmp_operand): Likewise.
13029 (const_neon_scalar_shift_amount_operand): Replace manual range
13030 check with IN_RANGE.
13031 * config/arm/thumb1.md (define_peephole2 above *thumb_subdi3):
13032 Replace cast of INTVAL to unsigned HOST_WIDE_INT with UINTVAL.
13034 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13036 * config/arm/arm.md (andsi3): Replace cast of 1 to HOST_WIDE_INT
13037 with HOST_WIDE_INT_1.
13039 * config/arm/arm.c (optimal_immediate_sequence): Replace cast of
13040 1 to unsigned HOST_WIDE_INT with HOST_WIDE_INT_1U.
13041 (arm_canonicalize_comparison): Likewise.
13042 (thumb1_rtx_costs): Replace cast of 1 to HOST_WIDE_INT with
13044 (thumb1_size_rtx_costs): Likewise.
13045 (vfp_const_double_index): Replace cast of 1 to unsigned
13046 HOST_WIDE_INT with HOST_WIDE_INT_1U.
13047 (get_jump_table_size): Replace cast of 1 to HOST_WIDE_INT with
13049 (arm_asan_shadow_offset): Replace cast of 1 to unsigned
13050 HOST_WIDE_INT with HOST_WIDE_INT_1U.
13051 * config/arm/neon.md (vec_set<mode>): Replace cast of 1 to
13052 HOST_WIDE_INT with HOST_WIDE_INT_1.
13054 2016-05-24 Marek Polacek <polacek@redhat.com>
13056 * tree-cfg.h (should_remove_lhs_p): New predicate.
13057 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
13058 * gimplify.c (gimplify_modify_expr): Likewise.
13059 * tree-cfg.c (verify_gimple_call): Likewise.
13060 * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
13061 * gimple-fold.c: Include "tree-cfg.h".
13062 (gimple_fold_call): Use should_remove_lhs_p.
13064 2016-05-24 Richard Biener <rguenther@suse.de>
13066 PR tree-optimization/71253
13067 * cfganal.h (control_dependences): Make robust against edge
13069 (control_dependences::control_dependences): Remove edge_list argument.
13070 (control_dependences::get_edge): Remove.
13071 (control_dependences::get_edge_src): Add.
13072 (control_dependences::get_edge_dest): Likewise.
13073 (control_dependences::m_el): Make a vector of edge src/dest index.
13074 * cfganal.c (control_dependences::find_control_dependence): Adjust.
13075 (control_dependences::control_dependences): Likewise.
13076 (control_dependences::~control_dependence): Likewise.
13077 (control_dependences::get_edge): Remove.
13078 (control_dependences::get_edge_src): Add.
13079 (control_dependences::get_edge_dest): Likewise.
13080 * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Use
13082 (perform_tree_ssa_dce): Adjust.
13083 * tree-loop-distribution.c (create_edge_for_control_dependence): Use
13085 (pass_loop_distribution::execute): Adjust. Do loop destroying
13086 conditional on changed.
13088 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13091 * config/arm/arm.c (gen_operands_ldrd_strd): Remove bogus early
13092 return. Reindent transformation comment and mention the ARM state
13095 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
13097 PR middle-end/71252
13098 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Add stmt_to_insert
13099 after build_and_add_sum creates new use stmt.
13101 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
13103 * tree-vect-stmts.c (vectorizable_load): Reorder checks so that
13104 load_lanes/grouped_load classification comes first. Don't check
13105 whether the vectorization factor is a multiple of the group size
13108 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
13110 * tree-vect-data-refs.c (vect_analyze_group_access_1): Set
13111 GROUP_GAP for single-element interleaving.
13112 * tree-vect-stmts.c (vectorizable_load): Remove force_peeling
13115 2016-05-24 Richard Biener <rguenther@suse.de>
13117 PR middle-end/70434
13119 * tree-ssa.c (non_rewritable_mem_ref_base): Make sure to mark
13120 bases which are accessed with non-invariant indices.
13121 * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Re-write
13122 constant index ARRAY_REFs of vectors into BIT_FIELD_REFs.
13124 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
13126 PR middle-end/71170
13127 * tree-ssa-reassoc.c (struct operand_entry): Add field stmt_to_insert.
13128 (add_to_ops_vec): Add stmt_to_insert.
13129 (add_repeat_to_ops_vec): Init stmt_to_insert.
13130 (insert_stmt_before_use): New.
13131 (transform_add_to_multiply): Remove mult_stmt insertion and add it
13133 (get_ops): Init stmt_to_insert.
13134 (maybe_optimize_range_tests): Likewise.
13135 (rewrite_expr_tree): Insert stmt_to_insert before use stmt.
13136 (rewrite_expr_tree_parallel): Likewise.
13137 (reassociate_bb): Likewise.
13139 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
13142 * config/rs6000/altivec.md (altivec_vperm_<mode>_internal): Drop
13143 ISA 3.0 xxperm fusion alternative.
13144 (altivec_vperm_v8hiv16qi): Likewise.
13145 (altivec_vperm_<mode>_uns_internal): Likewise.
13146 (vperm_v8hiv4si): Likewise.
13147 (vperm_v16qiv8hi): Likewise.
13149 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
13150 Kelvin Nilsen <kelvin@gcc.gnu.org>
13152 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate
13153 vpermr/xxpermr on ISA 3.0.
13154 (altivec_expand_vec_perm_le): Likewise.
13155 * config/rs6000/altivec.md (UNSPEC_VPERMR): New unspec.
13156 (altivec_vpermr_<mode>_internal): Add VPERMR/XXPERMR support for
13159 2016-05-23 Uros Bizjak <ubizjak@gmail.com>
13161 * config/i386/i386.h (IS_STACK_MODE): Enable for
13162 TARGET_MIX_SSE_I387. Rewrite using X87_FLOAT_MODE_P and
13163 SSE_FLOAT_MODE_P macros.
13164 * config/i386/i386.c (ix86_preferred_reload_class): Use
13165 IS_STACK_MODE, INTEGER_CLASS_P, FLOAT_CLASS_P and Q_CLASS_P macros.
13166 Cleanup regclass processing for CONST_DOUBLE_P.
13167 (ix86_preferred_output_reload_class): Use IS_STACK_MODE macro.
13168 (ix86_rtx_costs): Remove redundant TARGET_80387 check
13169 with IS_STACK_MODE macro.
13170 * config/i386/i386.md: Replace SSE_FLOAT_MODE_P (DFmode)
13172 (*movdf_internal): Use IS_STACK_MODE macro.
13173 (*movsf_internal): Ditto.
13175 2016-05-23 Marc Glisse <marc.glisse@inria.fr>
13177 * match.pd (a * (1 << b), ~x & ~y, ~X ^ ~Y, (X ^ Y) ^ Y, ~ (-A),
13178 ~ (A - 1), ~(~X >> Y), ~(~X >>r Y)): Relax constraints.
13180 2016-05-23 Jeff Law <law@redhat.com>
13182 * tree-ssa-threadbackward.c (profitable_jump_thread_path): New function
13184 (fsm_find_control_statement_thread_paths): Call it.
13186 2016-05-23 Martin Jambor <mjambor@suse.cz>
13189 * ipa-cp.c (ipa_get_indirect_edge_target_1): Only check value of
13190 from_global_constant if t is not NULL.
13192 2016-05-23 Marek Polacek <polacek@redhat.com>
13195 * common.opt (Wswitch-unreachable): New option.
13196 * doc/invoke.texi: Document -Wswitch-unreachable.
13197 * gimplify.c (gimplify_switch_expr): Implement the -Wswitch-unreachable
13200 2016-05-23 Bin Cheng <bin.cheng@arm.com>
13202 * tree-ssa-address.c (copy_ref_info): Check NULL TMR_STEP when
13203 TMR_INDEX is non-NULL.
13205 2016-05-23 Richard Biener <rguenther@suse.de>
13207 PR tree-optimization/71230
13208 * tree-ssa-reassoc.c (acceptable_pow_call): Move initial condition...
13209 (try_special_add_to_ops): ... here. Always test for single-use.
13211 2016-05-23 Martin Jambor <mjambor@suse.cz>
13213 * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Create an empty
13214 default block if a PHI node in the original one would be resized.
13216 2016-05-23 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
13218 PR tree-optimization/58135
13219 * tree-vect-slp.c: When group size is not multiple
13220 of vector size, allow splitting of store group at
13223 2016-05-23 Christophe Lyon <christophe.lyon@linaro.org>
13225 * config/arm/arm_neon.h (vtst_p16, vtstq_p16): New.
13227 2016-05-22 Jakub Jelinek <jakub@redhat.com>
13229 * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
13230 vec_set_hi_<mode><mask_name>): Add && <mask_avx512dq_condition>
13231 condition. For !TARGET_AVX512DQ, emit 32x4 instruction instead
13234 * config/i386/sse.md (vec_set_lo_v16hi, vec_set_hi_v16hi,
13235 vec_set_lo_v32qi, vec_set_hi_v32qi): Add alternative with
13236 v constraint instead of x and vinserti32x4 insn.
13238 * config/i386/sse.md (i128vldq): New mode iterator.
13239 (avx2_vbroadcasti128_<mode>, avx_vbroadcastf128_<mode>): Add
13240 avx512dq and avx512vl alternatives.
13242 * config/i386/sse.md (avx2_vec_dupv4df): Use v instead of x
13243 constraint, use maybe_evex prefix instead of vex.
13244 (vec_dupv4sf): Use v constraint instead of x for output
13245 operand except for noavx alternative, use Yv constraint
13246 instead of x for input. Use maybe_evex prefix instead of vex.
13247 (*vec_dupv4si): Likewise.
13248 (*vec_dupv2di): Likewise.
13250 2016-05-22 Kugan Vivekanandarajah <kuganv@linaro.org>
13252 PR middle-end/40921
13253 * tree-ssa-reassoc.c (try_special_add_to_ops): New.
13254 (linearize_expr_tree): Call try_special_add_to_ops.
13255 (reassociate_bb): Convert MULT_EXPR by (-1) to NEGATE_EXPR.
13257 2016-05-21 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
13259 * config/avr/avr.c (avr_expand_prologue): Add INCOMING_FRAME_SP_OFFSET
13260 to computed stack_usage.
13262 2016-05-21 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
13265 * config/avr/avr.md (define_expand "mov<mode>"): If the source
13266 operand is subreg (symbol_ref) then move the symbol ref to register.
13268 2016-05-21 Jan Hubicka <hubicka@ucw.cz>
13270 * tree.c (array_at_struct_end_p): Look through MEM_REF.
13272 2016-05-21 Kugan Vivekanandarajah <kuganv@linaro.org>
13274 PR middle-end/71179
13275 * tree-ssa-reassoc.c (transform_add_to_multiply): Disallow float
13278 2016-05-20 Eric Botcazou <ebotcazou@adacore.com>
13280 * tree-vrp.c (compare_values_warnv): Simplify handling of symbolic
13281 ranges by calling get_single_symbol and tidy up. Look more closely
13282 into NAME + CST1 vs CST2 comparisons if type overflow is undefined.
13284 2016-05-20 Jeff Law <law@redhat.com>
13286 * bitmap.c (bitmap_find_bit): Remove useless test.
13288 2016-05-20 Segher Boessenkool <segher@kernel.crashing.org>
13290 * function.c (thread_prologue_and_epilogue_insns): Commit the
13291 insertion of the epilogue.
13293 2016-05-20 Martin Jambor <mjambor@suse.cz>
13295 PR tree-optimization/70884
13296 * tree-sra.c (initialize_constant_pool_replacements): Do not check
13297 should_scalarize_away_bitmap and cannot_scalarize_away_bitmap bits.
13298 (sort_and_splice_var_accesses): Do not consider multiple scalar reads
13299 of constant pool data as a reason for scalarization.
13301 2016-05-20 Eric Botcazou <ebotcazou@adacore.com>
13303 * config/arm/arm.c (arm_expand_prologue): Set the stack usage to 0
13304 for naked functions.
13305 (thumb1_expand_prologue): Likewise.
13307 2016-05-20 Nathan Sidwell <nathan@acm.org>
13309 * config/nvptx/nptx.c (nvptx_option_override): Only set
13310 flag_toplevel_reorder, if not explicitly specified. Set
13311 flag_no_common, unless explicitly specified.
13313 2016-05-20 David Malcolm <dmalcolm@redhat.com>
13315 * calls.c (can_implement_as_sibling_call_p): Mark param
13316 reg_parm_stack_space with ATTRIBUTE_UNUSED.
13318 2016-05-20 Uros Bizjak <ubizjak@gmail.com>
13320 * config/i386/i386.c (ix86_rtx_costs) <case CONST_DOUBLE>:
13321 Use IS_STACK_MODE when calculating cost of standard 80387 constants.
13322 Fallthru to CONST_VECTOR case to calculate cost of standard SSE
13324 <case CONST_WIDE_INT>: Calculate cost of (MEM (SYMBOL_REF)).
13325 (ix86_legitimate_constant_p): Use CASE_CONST_SCALAR_INT
13326 and CASE_CONST_ANY.
13328 2016-05-20 Cesar Philippidis <cesar@codesourcery.com>
13330 * config/nvptx/nvptx.md (sincossf3): New pattern.
13332 2016-05-20 David Malcolm <dmalcolm@redhat.com>
13334 * calls.c (maybe_complain_about_tail_call): New function.
13335 (initialize_argument_information): Call
13336 maybe_complain_about_tail_call when clearing *may_tailcall.
13337 (can_implement_as_sibling_call_p): Call
13338 maybe_complain_about_tail_call when returning false.
13339 (expand_call): Read CALL_EXPR_MUST_TAIL_CALL and, if set,
13340 ensure try_tail_call is set. Call maybe_complain_about_tail_call
13341 if tail-call optimization fails.
13342 * cfgexpand.c (expand_call_stmt): Initialize
13343 CALL_EXPR_MUST_TAIL_CALL from gimple_call_must_tail_p.
13344 * gimple-pretty-print.c (dump_gimple_call): Dump
13345 gimple_call_must_tail_p.
13346 * gimple.c (gimple_build_call_from_tree): Call
13347 gimple_call_set_must_tail with the value of
13348 CALL_EXPR_MUST_TAIL_CALL.
13349 * gimple.h (enum gf_mask): Add GF_CALL_MUST_TAIL_CALL.
13350 (gimple_call_set_must_tail): New function.
13351 (gimple_call_must_tail_p): New function.
13352 * print-tree.c (print_node): Update printing of TREE_STATIC
13353 to reflect its use for CALL_EXPR_MUST_TAIL_CALL.
13354 * tree-core.h (struct tree_base): Add MUST_TAIL_CALL to the
13355 trailing comment listing applicable flags.
13356 * tree.h (CALL_EXPR_MUST_TAIL_CALL): New macro.
13358 2016-05-20 David Malcolm <dmalcolm@redhat.com>
13360 * calls.c (expand_call): Move "Rest of purposes for tail call
13361 optimizations to fail" to...
13362 (can_implement_as_sibling_call_p): ...this new function, and
13363 split into multiple "if" statements.
13365 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
13367 * cfgloop.h (expected_loop_iterations_unbounded,
13368 expected_loop_iterations): Unconstify.
13369 * cfgloopanal.c (expected_loop_iterations_unbounded): Sanity check the
13370 profile with known upper bound; return 3 when profile is absent.
13371 (expected_loop_iterations): Update.
13373 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
13375 * loop-doloop.c (doloop_optimize): Use get_estimated_loop_iterations_int
13376 and get_max_loop_iterations_int.
13378 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
13380 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can not produce
13381 realistic upper bounds here.
13383 2016-05-20 Jakub Jelinek <jakub@redhat.com>
13386 * gimple-fold.c (gimple_fold_call): Do not remove lhs of noreturn
13387 calls if the LHS is variable length or has addressable type.
13388 If targets[0]->decl is a noreturn call with void return type and
13389 zero arguments, adjust fntype and remove lhs in that case.
13391 2016-05-20 Marc Glisse <marc.glisse@inria.fr>
13393 PR tree-optimization/71079
13394 PR tree-optimization/71206
13395 * match.pd ((X ^ Y) ^ (X ^ Z)): Convert the arguments.
13397 2016-05-20 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
13399 * tree-vectorizer.c (get_vec_alignment_for_decl): New static function.
13400 (get_vec_alignment_for_array_decl): Likewise.
13401 (get_vec_alignment_for_record_decl): Likewise.
13402 (increase_alignment::execute): Move code to find alignment to
13403 get_vec_alignment_for_array_decl and call get_vec_alignment_for_decl.
13404 (type_align_map): New hash_map.
13406 2016-05-20 Richard Guenther <rguenther@suse.de>
13408 PR tree-optimization/29756
13409 * tree.def (BIT_INSERT_EXPR): New tcc_expression tree code.
13410 * expr.c (expand_expr_real_2): Handle BIT_INSERT_EXPR.
13411 * fold-const.c (operand_equal_p): Likewise.
13412 (fold_ternary_loc): Add constant folding of BIT_INSERT_EXPR.
13413 * gimplify.c (gimplify_expr): Handle BIT_INSERT_EXPR.
13414 * tree-inline.c (estimate_operator_cost): Likewise.
13415 * tree-pretty-print.c (dump_generic_node): Likewise.
13416 * tree-ssa-operands.c (get_expr_operands): Likewise.
13417 * cfgexpand.c (expand_debug_expr): Likewise.
13418 * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
13419 * gimple.c (get_gimple_rhs_num_ops): Handle BIT_INSERT_EXPR.
13420 * tree-cfg.c (verify_gimple_assign_ternary): Verify BIT_INSERT_EXPR.
13421 * tree-ssa.c (non_rewritable_lvalue_p): We can rewrite
13422 vector inserts using BIT_FIELD_REF or MEM_REF on the lhs.
13423 (execute_update_addresses_taken): Do it.
13425 2016-05-20 Richard Biener <rguenther@suse.de>
13427 PR tree-optimization/71185
13428 * tree-ssa-loop-prefetch.c (gather_memory_references): Drop
13429 register operations.
13431 2016-05-20 Richard Biener <rguenther@suse.de>
13433 * tree-if-conv.c (add_bb_predicate_gimplified_stmts): Use
13434 gimple_seq_add_seq_without_update.
13435 (release_bb_predicate): Assert we have no operands to free.
13436 (if_convertible_loop_p_1): Calculate post dominators later.
13437 Do not free BB predicates here.
13438 (combine_blocks): Do not recompute BB predicates.
13439 (version_loop_for_if_conversion): Save BB predicates around
13442 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org>
13444 * function.c (make_epilogue_seq): Remove epilogue_end parameter.
13445 (thread_prologue_and_epilogue_insns): Remove bb_flags. Restructure
13446 code. Ignore sibcalls on EDGE_IGNORE edges.
13447 * shrink-wrap.c (handle_simple_exit): New function. Set EDGE_IGNORE
13448 on edges for sibcalls that run without prologue. The rest of the
13449 function is combined from...
13450 (fix_fake_fallthrough_edge): ... this, and ...
13451 (try_shrink_wrapping): ... a part of this. Remove the bb_with
13452 function argument, make it a local variable.
13454 2016-05-19 Sandra Loosemore <sandra@codesourcery.com>
13456 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Allow
13457 --disable-sjlj-exceptions for TARGET_BI_ARCH to select DWARF-2 EH
13458 for 32-bit mode and SEH for 64-bit.
13459 * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): Handle
13460 TARGET_64BIT_DEFAULT.
13462 2016-05-19 Ryan Burn <contact@rnburn.com>
13464 * Makefile.in (GTFILES): Add cilk.h and cilk-common.c.
13465 * gengtype.c (open_base_files): Add cilk.h to ifiles.
13467 2016-05-19 Uros Bizjak <ubizjak@gmail.com>
13469 * sched-deps.c (sched_analyze_2) <case TRAP_IF>: Also
13470 force pending loads from memory.
13472 2016-05-19 Kelvin Nilsen <kelvin@gcc.gnu.org>
13474 * config/rs6000/altivec.md (UNSPEC_DARN): New unspec constant.
13475 (UNSPEC_DARN_32): New unspec constant.
13476 (UNSPEC_DARN_RAW): New unspec constant.
13477 (darn_32): New instruction.
13478 (darn_raw): New instruction.
13479 (darn): New instruction.
13480 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_0): Add
13481 support and documentation for this macro.
13482 (BU_P9_MISC_1): New macro definition.
13483 (BU_P9_64BIT_MISC_0): New macro definition.
13484 (BU_P9_MISC_0): New macro definition.
13485 (darn_32): New builtin definition.
13486 (darn_raw): New builtin definition.
13487 (darn): New builtin definition.
13488 * config/rs6000/rs6000.c: Add #define RS6000_BUILTIN_0 and #undef
13489 RS6000_BUILTIN_0 directives to surround each occurrence of
13490 #include "rs6000-builtin.def".
13491 (rs6000_builtin_mask_calculate): Add in the RS6000_BTM_MODULO and
13492 RS6000_BTM_64BIT flags to the returned mask, depending on
13494 (def_builtin): Correct an error in the assignments made to the
13495 debugging variable attr_string.
13496 (rs6000_expand_builtin): Add support for no-operand built-in
13498 (builtin_function_type): Remove fatal_error assertion that is no
13500 (rs6000_common_init_builtins): Add support for no-operand built-in
13502 * config/rs6000/rs6000.h (RS6000_BTM_MODULO): New macro
13504 (RS6000_BTM_PURE): Enhance comment to clarify intent of this flag
13506 (RS6000_BTM_64BIT): New macro definition.
13507 * doc/extend.texi: Document __builtin_darn (void),
13508 __builtin_darn_raw (void), and __builtin_darn_32 (void) built-in
13511 2016-05-19 Jan Hubicka <hubicka@ucw.cz>
13513 * tree-vect-loop.c (vect_analyze_loop_2): Use also
13514 max_loop_iterations_int.
13516 2016-05-19 Marek Polacek <polacek@redhat.com>
13518 PR tree-optimization/71031
13519 * tree-vrp.c (extract_range_from_binary_expr_1): Turn assert into a
13520 condition and adjust the code a bit.
13522 2016-05-19 Martin Liska <mliska@suse.cz>
13524 * tree-vect-stmts.c (vectorizable_simd_clone_call): Utilize
13525 auto_vec instead of vec.
13527 2016-05-19 Martin Liska <mliska@suse.cz>
13529 * tree-parloops.c (oacc_entry_exit_ok): Release a vector.
13531 2016-05-19 Martin Liska <mliska@suse.cz>
13533 * tree-if-conv.c (ifcvt_repair_bool_pattern): Utilize auto_vecs.
13535 2016-05-19 Martin Liska <mliska@suse.cz>
13537 * ipa-pure-const.c (set_function_state): Remove an existing
13539 (remove_node_data): Do not free it as it's released
13540 in set_function_state.
13542 2016-05-19 Martin Liska <mliska@suse.cz>
13544 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Release
13547 2016-05-19 Martin Liska <mliska@suse.cz>
13549 * omp-simd-clone.c (simd_clone_adjust): Release vector.
13551 2016-05-19 Martin Liska <mliska@suse.cz>
13553 * tree-ssa-reassoc.c (eliminate_duplicate_pair): Truncate
13554 an auto_vec instead of re-creating it.
13556 2016-05-19 Martin Liska <mliska@suse.cz>
13558 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Use
13559 auto_vec instead of vec.
13561 2016-05-19 Martin Liska <mliska@suse.cz>
13563 * lto-section-in.c (lto_get_section_data): Call
13564 lto_check_version with additional argument.
13565 * lto-streamer.c (lto_check_version): Add new argument.
13566 * lto-streamer.h (lto_check_version): Likewise.
13568 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13570 * config/arm/arm.c (arm_new_rtx_costs, SIGN_EXTEND case):
13571 Don't add cost of inner memory when handling sign-extended loads.
13573 2016-05-19 Ilya Enkovich <ilya.enkovich@intel.com>
13575 PR rtl-optimization/71148
13576 * cse.c (cse_main): Free dominance info.
13577 (rest_of_handle_cse): Don't free dominance info.
13578 (rest_of_handle_cse2): Likewise.
13579 (rest_of_handle_cse_after_global_opts): Likewise.
13581 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13584 * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Return
13585 NULL_TREE early if NEON is not available. Remove now redundant check
13586 in ARM_CHECK_BUILTIN_MODE.
13588 2016-05-19 Maxim Ostapenko <m.ostapenko@samsung.com>
13591 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add new
13592 builtin __SANITIZE_THREAD__ macros for fsanitize=thread switch.
13593 * doc/cpp.texi: Document new macros.
13595 2016-05-19 Bin Cheng <bin.cheng@arm.com>
13597 PR tree-optimization/69848
13598 * tree-vect-loop.c (vectorizable_reduction): Don't factor
13599 comparison expr out of VEC_COND_EXPR for COND_REDUCTION.
13601 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org>
13603 * function.c (thread_prologue_and_epilogue_insn): Move the
13604 "goto epilogue_done" one block later.
13606 2016-05-19 Richard Biener <rguenther@suse.de>
13608 PR tree-optimization/70729
13609 * passes.def: Move LIM pass before PRE. Remove no longer
13610 required copyprop and move first DCE out of the loop pipeline.
13612 2016-05-18 David Malcolm <dmalcolm@redhat.com>
13615 * Makefile.in (GCC_OBJS): Move spellcheck.o to...
13616 (OBJS-libcommon-target): ...here.
13617 * opts-common.c: Include spellcheck.h.
13618 (cmdline_handle_error): Build a vec of valid options and use it
13619 to suggest provide hints for misspelled arguments.
13621 2016-05-18 Jakub Jelinek <jakub@redhat.com>
13624 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Don't drop
13625 lhs if it has TREE_ADDRESSABLE type.
13627 2016-05-18 Uros Bizjak <ubizjak@gmail.com>
13630 * config/alpha/alpha.md (trap): Add (use (reg:DI 29)).
13631 (*exception_receiver_1): Return "#" for TARGET_EXPLICIT_RELOCS.
13633 2016-05-18 Martin Jambor <mjambor@suse.cz>
13636 * ipa-cp.c (ipa_get_jf_pass_through_result): Allow non-ip constant
13637 input for NOP_EXPR pass-through functions.
13638 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Allow
13639 aggregate global constant VAR_DECLs in constant jump functions.
13641 2016-05-18 Martin Jambor <mjambor@suse.cz>
13644 * ipa-prop.c (parm_preserved_before_stmt_p): Return true for loads
13645 from TREE_READONLY parameters.
13647 2016-05-18 Martin Jambor <mjambor@suse.cz>
13650 * cgraph.h (cgraph_indirect_call_info): New field
13651 guaranteed_unmodified.
13652 * ipa-cp.c (ipa_get_indirect_edge_target_1): Also pass parameter value
13653 to ipa_find_agg_cst_for_param, check guaranteed_unmodified when
13655 * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Also
13656 pass the parameter value to ipa_find_agg_cst_for_param.
13657 * ipa-prop.c (ipa_load_from_parm_agg): New parameter
13658 guaranteed_unmodified, store AA results there instead of bailing out
13660 (ipa_note_param_call): Also initialize guaranteed_unmodified flag.
13661 (ipa_analyze_indirect_call_uses): Also set guaranteed_unmodified flag.
13662 (find_constructor_constant_at_offset): New function.
13663 (ipa_find_agg_cst_from_init): Likewise.
13664 (ipa_find_agg_cst_for_param): Also seearch for aggregate values in
13665 static initializers of contants, report back through a new paameter
13666 from_global_constant if that was the case.
13667 (try_make_edge_direct_simple_call): Also pass parameter value to
13668 ipa_find_agg_cst_for_param, check guaranteed_unmodified when
13670 (ipa_write_indirect_edge_info): Stream new flag guaranteed_unmodified.
13671 (ipa_read_indirect_edge_info): Likewise.
13672 * ipa-prop.h (ipa_find_agg_cst_for_param): Update declaration.
13673 (ipa_load_from_parm_agg): Likewise.
13675 2016-05-18 Jiong Wang <jiong.wang@arm.com>
13677 PR rtl-optimization/71150
13678 * lra-constraint (process_addr_reg): Guard "in_class_p" with REG_P
13681 2016-05-18 Michael Meissner <meissner@linux.vnet.ibm.com>
13684 * config/rs6000/constraints.md (wE constraint): New constraint
13685 for a vector constant that can be loaded with XXSPLTIB.
13686 (wM constraint): New constraint for a vector constant of a 1's.
13687 (wS constraint): New constraint for a vector constant that can be
13688 loaded with XXSPLTIB and a vector sign extend instruction.
13689 * config/rs6000/predicates.md (xxspltib_constant_split): New
13690 predicates for wE/wS constraints.
13691 (xxspltib_constant_nosplit): Likewise.
13692 (easy_vector_constant): Add support for constants that can be
13693 loaded via XXSPLTIB.
13694 (all_ones_constant): New predicate for vector constant with all
13696 (splat_input_operand): Add support for ISA 3.0 word splat operations.
13697 * config/rs6000/rs6000.c (xxspltib_constant_p): New function to
13698 return if a constant can be loaded with the ISA 3.0 XXSPLTIB
13699 instruction and possibly with a sign extension.
13700 (output_vec_const_move): Add support for XXSPLTIB. If we are
13701 loading up 0/-1 into Altivec registers, prefer using VSPLTISW
13702 instead of XXLXOR/XXLORC.
13703 (rs6000_expand_vector_init): Add support for ISA 3.0 word splat
13705 (rs6000_legitimize_reload_address): Likewise.
13706 (rs6000_output_move_128bit): Use output_vec_const_move to emit
13708 * config/rs6000/vsx.md (VSX_M): Add TImode (if -mvsx-timode) and
13709 combine VSX_M and VSX_M2 into one iterator.
13710 (VSX_M2): Likewise.
13711 (VSINT_84): New iterators for loading constants with XXSPLTIB.
13712 (VSINT_842): Likewise.
13713 (UNSPEC_VSX_SIGN_EXTEND): New UNSPEC.
13714 (xxspltib_v16qi): New insns to load up constants with the ISA 3.0
13715 XXSPLTIB instruction.
13716 (xxspltib_<mode>_nosplit): Likewise.
13717 (xxspltib_<mode>_split): New insn to load up constants with
13718 XXSPLTIB and a sign extend instruction.
13719 (vsx_mov<mode>): Replace single move that handled all vector types
13720 with separate 32-bit and 64-bit moves. Combine the movti_<bit>
13721 moves (when -mvsx-timode is in effect) into the main vector
13722 moves. Eliminate separate moves for <VSr> <VSa>, where the
13723 preferred register class (<VSr>) is listed first, and the
13724 secondary register class (<VSa>) is listed second with a '?' to
13725 discourage use. Prefer loading 0/-1 in any VSX register for ISA
13726 3.0, and Altivec registers for ISA 2.06/2.07 (PR target/70915) so
13727 that if the register was involved in a slow operation, the
13728 clear/set operation does not wait for the slow operation to
13729 finish. Adjust the length attributes for 32-bit mode. Use
13730 rs6000_output_move_128bit and drop the use of the string
13731 instructions for 32-bit movti when -mvsx-timode is in effect. Use
13732 spacing so that the alternatives and attributes don't generate
13733 long lines, and put things in columns, so that it is easier to
13734 match up the operands and attributes with the insn alternatives.
13735 (vsx_mov<mode>_64bit): Likewise.
13736 (vsx_mov<mode>_32bit): Likewise.
13737 (vsx_movti_64bit): Fold movti into normal vector moves.
13738 (vsx_movti_32bit): Likewise.
13739 (vsx_splat_<mode>, V4SI/V4SF modes): Add support for ISA 3.0 word
13740 splat instructions.
13741 (vsx_splat_v4si_internal): Likewise.
13742 (vsx_splat_v4sf_internal): Likewise.
13743 (vector fusion peepholes): Use VSX_M instead of VSX_M2.
13744 (vsx_sign_extend_qi_<mode>): New ISA 3.0 instructions to sign
13745 extend vector elements.
13746 (vsx_sign_extend_hi_<mode>): Likewise.
13747 (vsx_sign_extend_si_v2di): Likewise.
13748 * config/rs6000/rs6000-protos.h (xxspltib_constant_p): Add
13750 * doc/md.texi (PowerPC constraints): Document the wE, wM, and wS
13751 constraints. Add trailing period to wL documentation.
13753 2016-05-18 Richard Sandiford <richard.sandiford@arm.com>
13755 PR middle-end/71020
13756 * tree-dfa.h (replace_abnormal_ssa_names): Declare.
13757 * tree-dfa.c (replace_abnormal_ssa_names): New function.
13758 * tree-call-cdce.c: Include tree-dfa.h.
13759 (can_guard_call_p): New function, extracted from...
13760 (can_use_internal_fn): ...here.
13761 (shrink_wrap_one_built_in_call_with_conds): Remove failure path
13763 (shrink_wrap_one_built_in_call): Likewise.
13764 (use_internal_fn): Likewise.
13765 (shrink_wrap_conditional_dead_built_in_calls): Update accordingly
13766 and return void. Call replace_abnormal_ssa_names.
13767 (pass_call_cdce::execute): Check can_guard_call_p during the
13768 initial walk. Assume shrink_wrap_conditional_dead_built_in_calls
13769 will always change something.
13771 2016-05-18 Martin Jambor <mjambor@suse.cz>
13774 * ipa-prop.c (determine_locally_known_aggregate_parts): Bail out early
13775 if parameter PARAM_IPA_MAX_AGG_ITEMS is zero.
13777 2016-05-18 Martin Jambor <mjambor@suse.cz>
13780 * ipa-inline.h (condition): New field size.
13781 * ipa-inline-analysis.c (add_condition): New parameter SIZE, use it
13782 for comaprison and store it into the new condition.
13783 (evaluate_conditions_for_known_args): Use condition size to check
13784 access sizes for all but CHANGED conditions.
13785 (unmodified_parm_1): New parameter size_p, store access size into it.
13786 (unmodified_parm): Likewise.
13787 (unmodified_parm_or_parm_agg_item): Likewise.
13788 (eliminated_by_inlining_prob): Pass NULL to unmodified_parm as size_p.
13789 (set_cond_stmt_execution_predicate): Extract access sizes and store
13790 them to conditions.
13791 (set_switch_stmt_execution_predicate): Likewise.
13792 (will_be_nonconstant_expr_predicate): Likewise.
13793 (will_be_nonconstant_predicate): Likewise.
13794 (inline_read_section): Stream condition size.
13795 (inline_write_summary): Likewise.
13797 2016-05-18 Richard Biener <rguenther@suse.de>
13799 * tree-ssa-loop-im.c (determine_max_movement): Properly add
13800 condition cost to PHI cost instead of total_cost.
13802 2016-05-18 Martin Liska <mliska@suse.cz>
13805 * ipa-icf.c (sem_variable::merge): Set DECL_PT_UID for
13808 2016-05-18 Richard Biener <rguenther@suse.de>
13810 * lto-streamer.h (LTO_major_version): Bump to 6.
13812 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org>
13814 * function.c (make_split_prologue_seq, make_prologue_seq,
13815 make_epilogue_seq): New functions, factored out from...
13816 (thread_prologue_and_epilogue_insns): Here.
13818 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org>
13820 * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
13821 cleanup_cfg with CLEANUP_EXPENSIVE after shrink-wrapping instead
13822 of before. Add a comment.
13824 2016-05-18 Bin Cheng <bin.cheng@arm.com>
13826 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check invariant
13827 expression pointer, not pointer to the pointer.
13829 2016-05-18 Jakub Jelinek <jakub@redhat.com>
13831 * config/i386/sse.md (pbroadcast_evex_isa): New mode attr.
13832 (avx2_pbroadcast<mode>): Add another alternative with v instead
13833 of x constraints in it, using <pbroadcast_evex_isa> isa.
13834 (avx2_pbroadcast<mode>_1): Similarly, add two such alternatives.
13836 * config/i386/sse.md (<ssse3_avx2>_palignr<mode>): Use
13837 constraint x instead of v in second alternative, add avx512bw
13840 * config/i386/sse.md (<ssse3_avx2>_pshufb<mode>3<mask_name>): Use
13841 constraint x instead of v in second alternative, add avx512bw
13844 * config/i386/sse.md (*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>): Use
13845 constraint x instead of v in second alternative, add avx512bw
13848 * config/i386/sse.md (avx2_pmaddubsw256, ssse3_pmaddubsw128): Add
13849 avx512bw alternative.
13851 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
13853 * config/i386/sse.md (define_insn "*andnot<mode>3"): Extend static
13854 array to 128 chars.
13855 (define_insn "*andnottf3"): Ditto.
13856 (define_insn "*<code><mode>3"/any_logic): Ditto.
13857 (define_insn "*<code>tf3"/any_logic): Ditto.
13858 (define_insn "sse2_storehpd"): Use Yv constraint for scalar
13859 operand to block AVX-512VL insn variant emit when it is not enabled.
13861 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
13863 * config/i386/sse.md (define_insn "*vec_concatv2sf_sse4_1"): Use 'Yv'
13864 constraint fot SF mode.
13866 2016-05-18 Petr Murzin <petr.murzin@intel.com>
13867 Kirill Yukhin <kirill.yukhin@intel.com>
13869 * config/i386/sse.md (define_insn "srcp14<mode>"): Use proper operand
13871 (define_insn "rsqrt14<mode>"): Ditto.
13872 (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
13873 (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
13874 (define_insn "avx512f_<code>v8div16qi2_mask_store"): Ditto.
13875 (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
13876 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"):
13878 (define_insn "*avx512f_gatherdi<mode>"): Ditto.
13879 (define_insn "*avx512f_scatterdi<mode>"): Ditto.
13880 * config/i386/i386.c (ix86_print_operand): Expand check for size
13881 override codes for Intel syntax.
13883 2016-05-18 Richard Biener <rguenther@suse.de>
13885 PR tree-optimization/71168
13886 * tree-loop-distribution.c (distribute_loop): Move *destroy_p
13887 initialization earlier.
13889 2016-05-18 James Greenhalgh <james.greenhalgh@arm.com>
13891 * config/aarch64/aarch64-simd.md
13892 (aarch64_reduc_plus_internal<mode>): Rename to...
13893 (reduc_plus_scal): ...This, and remove previous implementation.
13895 2016-05-18 Richard Biener <rguenther@suse.de>
13897 * passes.def: Put late dse and cd_dce in canonical order.
13899 2016-05-17 Jan Hubicka <hubicka@ucw.cz>
13901 * ipa-inline-transform.c (preserve_function_body_p): Look for
13902 first non-thunk clone.
13903 (save_function_body): Save into first non-thunk.
13904 * lto-cgraph.c (lto_output_edge): When streaming thunk do not look
13906 (lto_output_node): Inline thunks don't need body in every
13908 * lto-streamer-in.c: Do not fixup thunk clones.
13909 * cgraphclones.c (cgraph_node::create_edge_including_clone): Skip
13911 * tree-inline.c (copy_bb): Be prepared for target node to be new after
13914 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org>
13916 PR middle-end/63586
13917 * tree-ssa-reassoc.c (transform_add_to_multiply): New.
13918 (reassociate_bb): Call transform_add_to_multiply.
13920 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org>
13922 * config/aarch64/aarch64.c (all_extensions): Removed unused
13925 2016-05-17 Nathan Sidwell <nathan@acm.org>
13927 * config/nvptx/nvptx.c (nvptx_function_arg_boundary): New.
13928 (TARGET_FUNCTION_ARG_BOUNDARY): Override.
13930 2016-05-17 Mikhail Maltsev <maltsevm@gmail.com>
13932 PR tree-optimization/54579
13933 PR middle-end/55299
13934 * match.pd (~(~X >> Y), ~(~X >>r Y), ~(~X <<r Y)): New patterns.
13936 2016-05-17 Marek Polacek <polacek@redhat.com>
13939 * tree-inline.c (expand_call_inline): Call
13940 maybe_remove_unused_call_args.
13942 2016-05-17 Jim Wilson <jim.wilson@linaro.org>
13944 * doc/cpp.texi (__GNUC__): Major version changes are no longer rare.
13945 * doc/invoke.texi (-mnan=2008): Change signalling to signaling.
13946 * doc/md.texi (fmin@var{m}3): Likewise.
13948 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
13950 * match.pd (X & C): New transformation.
13952 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
13954 * match.pd (~X & Y): New transformation.
13956 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
13958 * tree-vrp.c (simplify_truth_ops_using_ranges): Set range
13959 information for new SSA_NAME.
13960 (simplify_conversion_using_ranges): Get range through get_range_info
13961 instead of get_value_range.
13963 2016-05-17 Jiong Wang <jiong.wang@arm.com>
13965 * config/aarch64/arm_neon.h (vmvn_s8): Reimplement using C operator.
13966 Remove inline assembly.
13967 (vmvn_s16): Likewise.
13968 (vmvn_s32): Likewise.
13969 (vmvn_u8): Likewise.
13970 (vmvn_u16): Likewise.
13971 (vmvn_u32): Likewise.
13972 (vmvnq_s8): Likewise.
13973 (vmvnq_s16): Likewise.
13974 (vmvnq_s32): Likewise.
13975 (vmvnq_u8): Likewise.
13976 (vmvnq_u16): Likewise.
13977 (vmvnq_u32): Likewise.
13978 (vmvn_p8): Likewise.
13979 (vmvnq_p16): Likewise.
13981 2016-05-17 Jiong Wang <jiong.wang@arm.com>
13983 * config/aarch64/aarch64-simd.md (vmul_n_f32): Remove inline assembly.
13985 (vmul_n_s16): Likewise.
13986 (vmul_n_s32): Likewise.
13987 (vmul_n_u16): Likewise.
13988 (vmul_n_u32): Likewise.
13989 (vmulq_n_f32): Likewise.
13990 (vmulq_n_f64): Likewise.
13991 (vmulq_n_s16): Likewise.
13992 (vmulq_n_s32): Likewise.
13993 (vmulq_n_u16): Likewise.
13994 (vmulq_n_u32): Likewise.
13996 2016-05-17 Jiong Wang <jiong.wang@arm.com>
13998 * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_to_128df): Extend
13999 to all supported modes. Rename to "*aarch64_mul3_elt_from_dup".
14001 2016-05-17 Jiong Wang <jiong.wang@arm.com>
14003 * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_to_128df): Rename
14004 to *aarch64_fma4_elt_from_dup<mode>.
14005 (*aarch64_fnma4_elt_to_128df): Rename to
14006 *aarch64_fnma4_elt_from_dup<mode>.
14007 * config/aarch64/arm_neon.h (vfma_n_f64): New.
14008 (vfms_n_f32): Likewise.
14009 (vfms_n_f64): Likewise.
14010 (vfmsq_n_f32): Likewise.
14011 (vfmsq_n_f64): Likewise.
14013 2016-05-17 Gerald Pfeifer <gerald@pfeifer.com>
14015 * wide-int.h: Change fixed_wide_int_storage from class to struct.
14017 2016-05-17 Richard Biener <rguenther@suse.de>
14019 PR tree-optimization/71132
14020 * tree-loop-distribution.c (create_rdg_cd_edges): Pass in loop.
14021 Only add control dependences for blocks in the loop.
14022 (build_rdg): Adjust.
14023 (generate_code_for_partition): Return whether loop should
14024 be destroyed and delay that.
14025 (distribute_loop): Likewise.
14026 (pass_loop_distribution::execute): Record loops to be destroyed
14027 and perform delayed destroying of loops.
14029 2016-05-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14032 * config/aarch64/aarch64-simd.md (aarch64_vmls<mode>): Delete.
14034 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
14036 * config/aarch64/aarch64-elf.h (ASM_OUTPUT_DEF): Delete.
14038 2016-05-17 Ilya Enkovich <ilya.enkovich@intel.com>
14041 * config/i386/i386.c (dimode_scalar_chain::convert_op): Fix
14042 insertion point for instructions generated by validize_mem.
14044 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
14046 * config/aarch64/aarch64.c (SHIFT_COUNT_TRUNCATED): Wrap definition
14049 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
14051 * config/aarch64/aarch64.c
14052 (aarch64_output_simd_mov_immediate): Make "buf_size" a variable
14053 rather than a macro.
14055 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
14057 * doc/invoke.texi (AArch64 Options): Various updates.
14059 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
14061 * ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig
14062 into instrumentation thunks.
14063 * cif-code.def (CIF_CHKP): New.
14065 2016-05-16 Uros Bizjak <ubizjak@gmail.com>
14067 * config/i386/xopintrin.h: Correct "unsinged" typo in the comments.
14069 2016-05-16 Martin Jambor <mjambor@suse.cz>
14071 * hsa-gen.c (fillup_for_decl): Increase alignment to natural one.
14072 (get_symbol_for_decl): Sorry if a global symbol in under-aligned.
14074 2016-05-16 Marek Polacek <polacek@redhat.com>
14076 * gimple.c (maybe_remove_unused_call_args): Fix typos in the
14079 2016-05-16 Martin Jambor <mjambor@suse.cz>
14082 * omp-low.c (grid_expand_target_grid_body): Copy RESULT_DECL of
14083 the outlined kernel function.
14085 2016-05-16 Robert Suchanek <robert.suchanek@imgtec.com>
14087 * config/mips/mips.h (ISA_HAS_LSA): Enable for -mmsa.
14088 (ISA_HAS_DLSA): Ditto.
14090 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com>
14092 * config/mips/m5100.md (m51_int_load): Update the latency to 2.
14094 2016-05-16 Nathan Sidwell <nathan@acm.org>
14096 * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): Revert.
14097 (nvptx_name_replacement): Restore. Add comment.
14098 (write_fn_proto, write_fn_proto_from_insn,
14099 nvptx_output_call_insn): Restore
14100 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Delete.
14102 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
14104 * config/aarch64/aarch64.md
14105 (add<mode>3_compareC_cconly_imm): Remove use of %w.
14106 (add<mode>3_compareC_imm): Likewise.
14107 (<optab>si3_uxtw): Split into register and immediate variants.
14108 (andsi3_compare0_uxtw): Likewise.
14109 (and<mode>3_compare0): Likewise.
14110 (and<mode>3nr_compare0): Likewise.
14111 (stack_protect_test_<mode>): Don't use %x for memory operands.
14113 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com>
14115 * config/mips/mips-cpus.def (p5600): Add multi-line brackets.
14117 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
14119 * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
14120 Split integer shifts into shift_reg and bfm.
14121 (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
14122 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
14123 (ror<mode>3_insn): Likewise.
14124 (<optab>si3_insn_uxtw): Likewise.
14125 (<optab><mode>3_insn): Change to rotate_imm.
14126 (extr<mode>5_insn_alt): Likewise.
14127 (extrsi5_insn_uxtw): Likewise.
14128 (extrsi5_insn_uxtw_alt): Likewise.
14130 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
14132 * doc/tm.texi: Regenerate.
14133 * doc/tm.texi.in (TARGET_INVALID_PARAMETER_TYPE): Remove.
14134 (TARGET_INVALID_RETURN_TYPE): Remove.
14135 * system.h: Poison TARGET_INVALID_PARAMETER_TYPE and
14136 TARGET_INVALID_RETURN_TYPE.
14137 * target.def (invalid_parameter_type): Remove.
14138 (invalid_return_type): Remove.
14140 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
14142 * ipa-inline-analysis.c (compute_inline_parameters): Be more reailistic
14143 on estimating thunk bodies; do not set inline_failed to CIF_THUNK for
14145 * ipa-inline-transform.c (inline_call): When inlining into thunk produce
14147 (preserve_function_body_p): No need to preserve function body
14148 * cif-codes.def (CIF_THUNK): Remove.
14149 * cgraphclones.c (duplicate_thunk_for_node): Thunks calls are inlinable.
14151 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
14153 * tree-inline.c (expand_call_inline): recurse after inlining thunk.
14155 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
14157 * tree.c (free_lang_data_in_decl): Also set target/optimization flags
14160 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
14162 * ipa-inline.c (report_inline_failed_reason): Look into thunks, too
14163 (inline_small_functions): Do not look for function symbol when
14166 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
14168 * lto-cgraph.c (compute_ltrans_boundary, output_symtab): Fix handling
14171 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
14172 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
14173 Jiong Wang <jiong.wang@arm.com>
14175 * config/arm/arm-c.c (arm_cpu_builtins): Use def_or_undef_macro
14176 for __ARM_FP16_FORMAT_IEEE and __ARM_FP16_FORMAT_ALTERNATIVE.
14177 Define __ARM_FP16_ARGS when appropriate.
14178 * config/arm/arm.c (arm_invalid_parameter_type): Remove
14180 (arm_invalid_return_type): Likewise.
14181 (TARGET_INVALID_PARAMETER_TYPE): Remove.
14182 (TARGET_INVALID_RETURN_TYPE): Remove.
14183 (aapcs_vfp_sub_candidate): Allow HFmode.
14184 (aapcs_vfp_allocate): Add comment. Support HFmode.
14185 (aapcs_vfp_allocate_return_reg): Likewise.
14186 (struct aapcs_cp_arg_layout): Slightly reword comments for
14187 is_return_candidate and allocate_return_reg.
14188 (output_mov_vfp): Update assert.
14189 (arm_hard_regno_mode_ok): Remove comment, update HF-mode
14191 (arm_invalid_parameter_type): Remove.
14192 (amr_invalid_return_type): Remove.
14193 * config/arm/arm.h (TARGET_NEON_FP16): Fix definition.
14194 * config/arm/arm.md (*arm32_movhf): Disable for TARGET_VFP.
14195 * config/arm/vfp.md (*movhf_vfp): Enable for TARGET_VFP.
14197 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
14199 * config/aarch64/aarch64.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
14200 * config/aarch64/arch64-protos.h
14201 (aarch64_legitimize_reload_address): Remove.
14202 * config/aarch64/aarch64.c (aarch64_legitimize_reload_address):
14205 2016-05-16 Eric Botcazou <ebotcazou@adacore.com>
14207 * configure.ac: Add ACX_NONCANONICAL_HOST.
14208 * configure: Regenerate.
14209 * Makefile.in: Set host_noncanonical.
14211 2016-05-14 Uros Bizjak <ubizjak@gmail.com>
14214 * config/i386/i386.md (*movtf_internal): Before register allocation,
14215 do not allow FP constants for CM_MEDIUM memory model, allow only
14216 standard FP constants for CM_LARGE and CM_LARGE_PIC models.
14217 (*movxf_internal): Ditto.
14218 (*movdf_internal): Ditto.
14219 (*movsf_internal): Ditto.
14221 2016-05-13 Segher Boessenkool <segher@kernel.crashing.org>
14223 PR rtl-optimization/67483
14224 * combine.c (make_compound_operation): Don't call extract_left_shift
14225 with negative shift amounts.
14227 2016-05-13 Jakub Jelinek <jakub@redhat.com>
14230 * fold-const.c (fold_checksum_tree): Allow modification
14231 of TYPE_ALIAS_SET during folding.
14233 * config/i386/i386.c (ix86_compute_frame_layout, ix86_expand_prologue,
14234 ix86_expand_split_stack_prologue): Use HOST_WIDE_INT_C macro.
14235 (ix86_split_to_parts): Likewise. Fix up formatting.
14237 2016-05-13 H.J. Lu <hongjiu.lu@intel.com>
14239 * tree-ssa-loop-ivopts.c (create_new_ivs): Cast to
14240 unsigned HOST_WIDE_INT with HOST_WIDE_INT_PRINT_UNSIGNED in
14243 2016-05-13 Nathan Sidwell <nathan@acm.org>
14245 * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): New.
14246 (nvptx_name_replacement): Delete.
14247 (write_fn_proto, write_fn_proto_from_insn,
14248 nvptx_output_call_insn): Remove nvptx_name_replacement call.
14249 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Override.
14250 * langhooks.c (add_builtin_funcction_common): Call
14251 targetm.mangle_decl_assembler_name.
14253 * config/nvptx/nvptx.c (write_fn_proto): Handle
14254 BUILT_IN_ATOMIC_COMPARE_EXCHANGE_n oddity.
14256 2016-05-13 Martin Liska <mliska@suse.cz>
14258 * tree-ssa-loop-ivopts.c (create_new_ivs): Use HOST_WIDE_INT_PRINT_DEC
14259 and PRIu64 in printf format.
14261 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14263 * tree-ssa-loop-ivanon.c (try_unroll_loop_completely): Typo fix in
14266 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14268 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
14269 Change --param max-completely-peeled-times to
14270 --param max-completely-peel-times in dump file printing.
14272 2016-05-13 Richard Biener <rguenther@suse.de>
14274 PR tree-optimization/42587
14275 * tree-ssa-math-opts.c (perform_symbolic_merge): Handle BIT_FIELD_REF.
14276 (find_bswap_or_nop_1): Likewise.
14277 (bswap_replace): Likewise.
14279 2016-05-13 Martin Liska <mliska@suse.cz>
14281 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
14282 Initialize a variable with default value.
14284 2016-05-13 Martin Liska <mliska@suse.cz>
14286 * doc/invoke.texi: Enhance explanation of error recovery
14289 2016-05-13 Martin Liska <mliska@suse.cz>
14291 * tree-ssa-loop-ivopts.c (avg_loop_niter): Fix coding style.
14292 (struct cost_pair): Change inv_expr_id (int) to inv_expr
14293 (iv_inv_expr_ent *).
14294 (struct iv_inv_expr_ent): Comment struct fields.
14295 (sort_iv_inv_expr_ent): New function.
14296 (struct ivopts_data): Rename inv_expr_id to max_inv_expr_id.
14297 (struct iv_ca): Replace used_inv_expr and num_used_inv_expr with
14298 a hash_map between iv_inv_expr_ent and number of usages.
14299 (niter_for_exit): Fix coding style.
14300 (tree_ssa_iv_optimize_init): Use renamed variable.
14301 (determine_base_object): Fix coding style.
14302 (alloc_iv): Likewise.
14303 (find_interesting_uses_outside): Likewise.
14304 (add_candidate_1): Likewise.
14305 (add_standard_iv_candidates): Likewise.
14306 (set_group_iv_cost): Replace inv_expr_id with inv_expr.
14307 (prepare_decl_rtl): Fix coding style.
14308 (get_address_cost): Likewise.
14309 (get_shiftadd_cost): Likewise.
14310 (force_expr_to_var_cost): Likewise.
14311 (compare_aff_trees): Likewise.
14312 (get_expr_id): Restructure the function.
14313 (get_loop_invariant_expr_id): Renamed to
14314 get_loop_invariant_expr.
14315 (get_computation_cost_at): Replace usage of inv_expr_id with
14317 (get_computation_cost): Likewise.
14318 (determine_group_iv_cost_generic): Likewise.
14319 (determine_group_iv_cost_address): Likewise.
14320 (iv_period): Fix coding style.
14321 (iv_elimination_compare_lt): Likewise.
14322 (may_eliminate_iv): Likewise.
14323 (determine_group_iv_cost_cond): Replace usage of inv_expr_id with
14325 (determine_group_iv_costs): Dump invariant expressions.
14326 (iv_ca_recount_cost): Use the newly added hash_map.
14327 (iv_ca_set_remove_invariants): Fix coding style.
14328 (iv_ca_set_add_invariants): Fix coding style.
14329 (iv_ca_set_no_cp): Utilize the newly added hash_map for used
14331 (iv_ca_set_cp): Likewise.
14332 (iv_ca_new): Initialize the newly added hash_map and remove
14333 initialization of fields.
14334 (iv_ca_free): Delete the hash_map.
14335 (iv_ca_dump): Dump invariant expressions.
14336 (iv_ca_extend): Fix coding style.
14337 (try_add_cand_for): Likewise.
14338 (create_new_ivs): Dump information about # of avg iterations and
14339 # of used invariant expressions.
14340 (rewrite_use_compare): Fix coding style.
14341 (free_loop_data): Set default value for max_inv_expr_id.
14343 2016-05-13 Ilya Enkovich <ilya.enkovich@intel.com>
14345 * cse.c (rest_of_handle_cse): Use cleanup_cfg
14346 returned value cse_cfg_altered computation.
14347 (rest_of_handle_cse2): Likewise.
14348 (rest_of_handle_cse_after_global_opts): Likewise.
14350 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
14353 * config/arm/arm.c (arm32_output_mi_thunk): New.
14354 (arm_output_mi_thunk): Rename to arm_thumb1_mi_thunk. Rework
14355 to split Thumb1 vs TARGET_32BIT functionality.
14356 (arm_thumb1_mi_thunk): New.
14358 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
14360 * config/aarch64/aarch64.c (TARGET_OMIT_STRUCT_RETURN_REG): Set
14363 2016-05-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14366 * config/i386/i386.c (ix86_in_large_data_p): Guard against NULL exp.
14368 2016-05-13 Eric Botcazou <ebotcazou@adacore.com>
14370 * builtins.c (expand_builtin_memcmp): Do not emit the call here.
14371 (expand_builtin_trap): Emit a regular call.
14372 (set_builtin_user_assembler_name): Remove obsolete cases.
14373 * dse.c (scan_insn): Adjust.
14374 * except.c: Include calls.h.
14375 (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is defined,
14376 emit a regular call to setjmp.
14377 * expr.c (emit_block_move_hints): Call emit_block_copy_via_libcall.
14378 (block_move_libcall_safe_for_call_parm): Use memcpy builtin.
14379 (emit_block_move_via_libcall): Delete.
14380 (block_move_fn): Delete.
14381 (init_block_move_fn): Likewise.
14382 (emit_block_move_libcall_fn): Likewise.
14383 (emit_block_op_via_libcall): New function.
14384 (set_storage_via_libcall): Tidy up and use memset builtin.
14385 (block_clear_fn): Delete.
14386 (init_block_clear_fn): Likewise.
14387 (clear_storage_libcall_fn): Likewise.
14388 (expand_assignment): Call emit_block_move_via_libcall.
14389 Do not include gt-expr.h.
14390 * expr.h (emit_block_op_via_libcall): Declare.
14391 (emit_block_copy_via_libcall): New inline function.
14392 (emit_block_move_via_libcall): Likewise.
14393 (emit_block_comp_via_libcall): Likewise.
14394 (block_clear_fn): Delete.
14395 (init_block_move_fn): Likewise.
14396 (init_block_clear_fn): Likewise.
14397 (emit_block_move_via_libcall): Likewise.
14398 (set_storage_via_libcall): Add default parameter value.
14399 * libfuncs.h (enum libfunc_index): Remove obsolete values.
14400 (abort_libfunc): Delete.
14401 (memcpy_libfunc): Likewise.
14402 (memmove_libfunc): Likewise.
14403 (memcmp_libfunc): Likewise.
14404 (memset_libfunc): Likewise.
14405 (setbits_libfunc): Likewise.
14406 (setjmp_libfunc): Likewise.
14407 (longjmp_libfunc): Likewise.
14408 (profile_function_entry_libfunc): Likewise.
14409 (profile_function_exit_libfunc): Likewise.
14410 (gcov_flush_libfunc): Likewise.
14411 * optabs-libfuncs.c (build_libfunc_function): Set DECL_ARTIFICIAL
14412 and DECL_VISIBILITY on the declaration.
14413 (init_optabs): Do not initialize obsolete libfuncs.
14414 * optabs.c (prepare_cmp_insn): Call emit_block_comp_via_libcall.
14415 * tree-core.h (ECF_RET1): Define.
14416 (ECF_TM_PURE): Adjust.
14417 (ECF_TM_BUILTIN): Likewise.
14418 * tree.c (set_call_expr_flags): Deal with ECF_RET1.
14419 (build_common_builtin_nodes): Initialize abort builtin.
14420 Add ECF_RET1 on memcpy, memmove and memset builtins.
14421 Pass final flags for alloca and alloca_with_align builtins.
14422 * config/alpha/alpha.c (alpha_init_libfuncs): Do not initialize
14424 * config/ia64/ia64.c (ia64_vms_init_libfuncs): Likewise.
14425 * config/i386/i386.c (ix86_expand_set_or_movmem): Adjust call to
14426 set_storage_via_libcall and call emit_block_copy_via_libcall.
14428 2016-05-12 Uros Bizjak <ubizjak@gmail.com>
14430 * config/i386/i386.md (*call_got_x32): Change operand 0 to
14431 DImode before it is passed to ix86_output_call_operand.
14432 (*call_value_got_x32): Ditto for operand 1.
14434 2016-05-12 Jiong Wang <jiong.wang@arm.com>
14436 PR rtl-optimization/70904
14437 * lra-constraint.c (process_addr_reg): Relax the restriction on subreg
14438 reload for wide mode.
14440 2016-05-12 Marek Polacek <polacek@redhat.com>
14443 * langhooks-def.h (lhd_incomplete_type_error): Adjust declaration.
14444 * langhooks.c (lhd_incomplete_type_error): Add location parameter.
14445 * langhooks.h (incomplete_type_error): Likewise.
14446 * tree.c (size_in_bytes_loc): Renamed from size_in_bytes. Add location
14447 parameter, pass it down to incomplete_type_error.
14448 * tree.h (size_in_bytes): New inline overload.
14449 (size_in_bytes_loc): Renamed from size_in_bytes.
14451 2016-05-12 Richard Biener <rguenther@suse.de>
14453 PR tree-optimization/71059
14454 * tree-ssa-pre.c (phi_translate_1): Fully fold translated
14455 nary before looking up or entering the expression into the VN
14457 * tree-ssa-sccvn.c (vn_nary_build_or_lookup): Fix comment typo.
14458 Make sure to re-use NARYs without result as inserted by
14461 2016-05-12 Richard Biener <rguenther@suse.de>
14463 PR tree-optimization/71062
14464 * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
14466 * tree-ssa-structalias.c (set_uids_in_ptset): Set
14467 vars_contains_restrict if the var is a restrict tag.
14468 * tree-ssa-alias.c (ptrs_compare_unequal): If vars_contains_restrict
14469 do not disambiguate pointers against it.
14470 (dump_points_to_solution): Re-structure and adjust for new
14471 vars_contains_restrict flag.
14472 * gimple-pretty-print.c (pp_points_to_solution): Likewise.
14474 2016-05-12 Martin Liska <mliska@suse.cz>
14476 * doc/invoke.texi: Explain connection between
14477 -fsanitize-recover=address and ASAN_OPTIONS="halt_on_error=1".
14479 2016-05-12 Ilya Enkovich <ilya.enkovich@intel.com>
14481 PR tree-optimization/71006
14482 * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
14483 consider COND_EXPR as a mask producer.
14485 2016-05-12 Marek Polacek <polacek@redhat.com>
14488 * opts.c (common_handle_option): Detect missing argument for --help^.
14490 2016-05-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14493 * config/arm/arm.c (arm_output_multireg_pop): Avoid POP instruction
14494 when popping the PC and within an interrupt handler routine.
14495 Add missing tab to output of "ldmfd".
14496 (output_return_instruction): Output LDMFD with SP update rather
14497 than POP when returning from interrupt handler.
14499 2016-05-12 Jakub Jelinek <jakub@redhat.com>
14501 * config/i386/i386.md (isa): Add x64_avx512dq, enable if
14502 TARGET_64BIT && TARGET_AVX512DQ.
14503 * config/i386/sse.md (*vec_extract<mode>): Add avx512bw alternatives.
14504 (*vec_extract<PEXTR_MODE12:mode>_zext): Add avx512bw alternative.
14505 (*vec_extract<ssevecmodelower>_0, *vec_extractv4si_0_zext,
14506 *vec_extractv2di_0_sse): Use v constraint instead of x constraint.
14507 (*vec_extractv4si): Add avx512dq and avx512bw alternatives.
14508 (*vec_extractv4si_zext): Add avx512dq alternative.
14509 (*vec_extractv2di_1): Add x64_avx512dq and avx512bw alternatives,
14510 use v instead of x constraint in other alternatives where possible.
14512 * config/i386/sse.md (sse2_loadld): Use v instead of x
14513 constraint in alternatives 0,1,4.
14515 * config/i386/sse.md (pinsr_evex_isa): New mode attr.
14516 (<sse2p4_1>_pinsr<ssemodesuffix>): Add 2 alternatives with
14517 v constraints instead of x and <pinsr_evex_isa> isa attribute.
14520 * config/i386/sse.md (<sse2_avx2>_packssdw<mask_name>,
14521 <sse4_1_avx2>_packusdw<mask_name>): Make sure EVEX encoded insn
14522 is not emitted unless TARGET_AVX512BW.
14523 (<sse2_avx2>_packuswb<mask_name>, <sse2_avx2>_packsswb<mask_name>):
14524 Likewise. For TARGET_AVX512BW, use "=v" constraint instead of "=x"
14525 for the result operand.
14527 * config/i386/sse.md (*vec_setv4sf_sse4_1, sse4_1_insertps): Use v
14528 constraint instead of x in avx alternatives. Use maybe_evex instead
14531 * config/i386/constraints.md (Yv): New constraint.
14532 * config/i386/i386.h (VALID_AVX512VL_128_REG_MODE): Allow
14533 TFmode and V1TImode in xmm16+ registers for TARGET_AVX512VL.
14534 * config/i386/i386.md (avx512fvecmode): New mode attr.
14535 (*pushtf): Use v constraint instead of x.
14536 (*movtf_internal): Likewise. For TARGET_AVX512VL and
14537 xmm16+ registers, use vmovdqu64 or vmovdqa64 instructions.
14538 (*absneg<mode>2): Use Yv constraint instead of x constraint.
14539 (*absnegtf2_sse): Likewise.
14540 (copysign<mode>3_const, copysign<mode>3_var): Likewise.
14541 * config/i386/sse.md (*andnot<mode>3): Add avx512vl and
14542 avx512f alternatives.
14543 (*andnottf3, *<code><mode>3, *<code>tf3): Likewise.
14545 2016-05-12 Richard Biener <rguenther@suse.de>
14547 PR tree-optimization/71060
14548 * tree-data-ref.c (initialize_data_dependence_relation): Do not
14549 require exact match of DR_BASE_OBJECT but only matching address and
14552 2016-05-12 Richard Biener <rguenther@suse.de>
14554 PR tree-optimization/70986
14555 * cfganal.c: Include cfgloop.h.
14556 (dfs_find_deadend): Prefer to take edges exiting loops.
14558 2016-05-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14560 * gcc.target/powerpc/pr70963.c: Require at least power8 at both
14561 compile and run time.
14563 2016-05-11 Mikhail Maltsev <maltsevm@gmail.com>
14566 * doc/invoke.texi (Wduplicate-decl-specifier): Document new option.
14568 2016-05-11 Uros Bizjak <ubizjak@gmail.com>
14570 * config/i386/i386.c (legitimize_pic_address): Use
14571 copy_to_suggested_reg instead of gen_movsi.
14573 2016-05-11 Michael Meissner <meissner@linux.vnet.ibm.com>
14575 * config/rs6000/predicates.md (quad_memory_operand): Move most of
14576 the code into quad_address_p and call it to share code with
14577 vsx_quad_dform_memory_operand.
14578 (vsx_quad_dform_memory_operand): New predicate for ISA 3.0 vector
14580 * config/rs6000/rs6000.opt (-mlra): Switch to being an option mask
14581 bit instead of being a separate word. Split -mpower9-dform into
14582 two switches, -mpower9-dform-scalar and -mpower9-dform-vector.
14583 * config/rs6000/rs6000.c (RELOAD_REG_QUAD_OFFSET): New addr_mask
14584 for the register class supporting 128-bit quad word memory offsets.
14585 (mode_supports_vsx_dform_quad): Helper function to return if the
14586 register class uses quad word memory offsets.
14587 (rs6000_debug_addr_mask): Add support for quad word memory offsets.
14588 (rs6000_debug_reg_global): Always print if we are using LRA or not.
14589 (rs6000_setup_reg_addr_masks): If ISA 3.0 vector d-form
14590 instructions are enabled, set up the appropriate addr_masks for
14592 (rs6000_init_hard_regno_mode_ok): wb constraint is now based on
14593 -mpower9-dform-scalar, instead of -mpower9-dform.
14594 (rs6000_option_override_internal): Split -mpower9-dform into two
14595 switches, -mpower9-dform-scalar and -mpower9-dform-vector. The
14596 -mpower9-dform switch sets or clears both. If we are not using
14597 the LRA register allocator, do not enable -mpower9-dform-vector by
14598 default. If we are using LRA, enable -mpower9-dform-vector and
14599 -mvsx-timode if it is appropriate. Issue a warning if either
14600 -mpower9-dform-vector or -mvsx-timode are explicitly used without
14602 (quad_address_offset_p): New helper function to return if the
14603 offset is legal for quad word memory instructions.
14604 (quad_address_p): New function to determin if GPR or vector
14605 register quad word memory addresses are legal.
14606 (mem_operand_gpr): Validate quad word address offsets.
14607 (reg_offset_addressing_ok_p): Add support for ISA 3.0 vector
14608 d-form (register + offset) instructions.
14609 (offsettable_ok_by_alignment): Likewise.
14610 (rs6000_legitimate_offset_address_p): Likewise.
14611 (legitimate_lo_sum_address_p): Likewise.
14612 (rs6000_legitimize_address): Likewise.
14613 (rs6000_legitimize_reload_address): Add more debug statements for
14615 (rs6000_legitimate_address_p): Add support for ISA 3.0 vector
14616 d-form instructions.
14617 (rs6000_secondary_reload_memory): Add support for ISA 3.0 vector
14618 d-form instructions. Distinguish different cases in debug
14619 output. (rs6000_secondary_reload_inner): Add support for ISA 3.0 vector
14620 d-form instructions.
14621 (rs6000_preferred_reload_class): Likewise.
14622 (rs6000_output_move_128bit): Add support for ISA 3.0 d-form
14623 instructions. If ISA 3.0 is available, generate lxvx/stxvx instead
14624 of the ISA 2.06 indexed memory instructions.
14625 (rs6000_emit_prologue): If we have ISA 3.0 d-form instructions,
14626 use them to save/restore the saved vector registers instead of
14627 using Altivec instructions.
14628 (rs6000_emit_epilogue): Likewise.
14629 (rs6000_lra_p): Use TARGET_LRA instead of the old option word.
14630 (rs6000_opt_masks): Split -mpower9-dform into
14631 -mpower9-dform-scalar and -mpower9-dform-vector.
14632 (rs6000_print_options_internal): Print -mno-<switch> if <switch>
14634 * config/rs6000/vsx.md (p9_vecload_<mode>): Delete hack to emit
14635 ISA 3.0 vector indexed memory instructions, and fold the code into
14636 the normal mov<mode> patterns.
14637 (p9_vecstore_<mode>): Likewise.
14638 (vsx_mov<mode>): Add support for ISA 3.0 vector d-form
14640 (vsx_movti_64bit): Likewise.
14641 (vsx_movti_32bit): Likewise.
14642 * config/rs6000/constraints.md (wO constraint): New constraint for
14643 ISA 3.0 vector d-form support.
14644 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Use
14645 -mpower9-dform-scalar instead of -mpower9-dform. Add note not to
14646 include -mpower9-dform-vector until we switch over to LRA.
14647 (POWERPC_MASKS): Add -mlra. Split -mpower9-dform into two.
14648 switches, -mpower9-dform-scalar and -mpower9-dform-vector.
14649 * config/rs6000/rs6000-protos.h (quad_address_p): Add declaration.
14650 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
14651 for -mpower9-dform and -mlra.
14652 * doc/md.texi (wO constraint): Document wO constraint.
14654 2016-05-11 Alexander Monakov <amonakov@ispras.ru>
14656 * genattr.c (main): Change 'rtx' to 'rtx_insn *' in prototypes of
14657 'insn_latency', 'maximal_insn_latency', 'min_insn_conflict_delay'.
14658 * genautomata.c (output_internal_insn_code_evaluation): Simplify.
14659 Move handling of non-insn arguments inline into the sole user:
14660 (output_trans_func): ...here.
14661 (output_min_insn_conflict_delay_func): Change 'rtx' to 'rtx_insn *'
14662 in emitted function prototype.
14663 (output_internal_insn_latency_func): Ditto. Simplify.
14664 (output_internal_maximal_insn_latency_func): Ditto. Delete
14665 always-unused argument.
14666 (output_insn_latency_func): Ditto.
14667 (output_maximal_insn_latency_func): Ditto.
14669 2016-05-11 Richard Biener <rguenther@suse.de>
14671 PR tree-optimization/71055
14672 * tree-ssa-sccvn.c (vn_reference_lookup_3): When native-interpreting
14673 sth with precision not equal to access size verify we don't chop
14676 2016-05-11 Richard Biener <rguenther@suse.de>
14679 * dwarf2out.c (retry_incomplete_types): Set early_dwarf.
14680 (dwarf2out_finish): Move retry_incomplete_types call ...
14681 (dwarf2out_early_finish): ... here.
14683 2016-05-11 Richard Biener <rguenther@suse.de>
14685 PR middle-end/71002
14686 * alias.c (reference_alias_ptr_type): Preserve alias-set zero
14687 if the langhook insists on it.
14688 * fold-const.c (make_bit_field_ref): Add arg for the original
14689 reference and preserve its alias-set.
14690 (decode_field_reference): Take exp by reference and adjust it
14691 to the original memory reference.
14692 (optimize_bit_field_compare): Adjust callers.
14693 (fold_truth_andor_1): Likewise.
14694 * gimplify.c (gimplify_expr): Adjust in-SSA form test.
14696 2016-05-11 Ilya Enkovich <ilya.enkovich@intel.com>
14698 PR middle-end/70807
14699 * cfgrtl.h (delete_insn_and_edges): Now return bool.
14700 * cfgrtl.c (delete_insn_and_edges): Likewise.
14701 * config/i386/i386.c (convert_scalars_to_vector): Remove
14703 * cse.c (cse_insn): Compute cse_cfg_altered.
14704 (delete_trivially_dead_insns): Likewise.
14705 (cse_cc_succs): Likewise.
14706 (rest_of_handle_cse): Free dominance info if required.
14707 (rest_of_handle_cse2): Likewise.
14708 (rest_of_handle_cse_after_global_opts): Likewise.
14710 2016-05-11 Alan Modra <amodra@gmail.com>
14712 * config/rs6000/rs6000.c (is_complex_IBM_long_double,
14713 abi_v4_pass_in_fpr): New functions.
14714 (rs6000_function_arg_boundary): Exclude complex IBM long double
14715 from 64-bit alignment when ABI_V4.
14716 (rs6000_function_arg, rs6000_function_arg_advance_1,
14717 rs6000_gimplify_va_arg): Use abi_v4_pass_in_fpr.
14719 2016-05-10 Segher Boessenkool <segher@kernel.crashing.org>
14721 PR rtl-optimization/71028
14722 * cfgcleanup.c (try_optimize_cfg): Do not flip a conditional
14723 jump with just a return in the fallthrough block if the branch
14724 block contains just a return as well.
14726 2016-05-10 Marc Glisse <marc.glisse@inria.fr>
14728 * fold-const.c (fold_binary_loc) [(X ^ Y) & Y]: Remove and merge with...
14729 * match.pd ((X & Y) ^ Y): ... this.
14730 ((X & Y) & Y, (X | Y) | Y, (X ^ Y) ^ Y, (X & Y) & (X & Z), (X | Y)
14731 | (X | Z), (X ^ Y) ^ (X ^ Z)): New transformations.
14733 2016-05-10 David Malcolm <dmalcolm@redhat.com>
14735 * read-md.c (require_char_ws): New function.
14736 (read_string): Simplify using require_char_ws.
14737 (handle_constants): Likewise.
14738 (handle_enum): Likewise.
14739 (handle_file): Likewise.
14740 * read-md.h (require_char_ws): New declaration.
14741 * read-rtl.c (read_conditions): Simplify using require_char_ws.
14742 (read_mapping): Likewise.
14743 (read_rtx_code): Likewise.
14744 (read_nested_rtx): Likewise.
14746 2016-05-10 James Norris <jnorris@codesourcery.com>
14748 * config/rs6000/sysv4.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o
14749 if offloading is enabled and -fopenacc or -fopenmp is specified.
14750 (CRTOFFLOADEND): Likewise.
14751 (STARTFILE_LINUX_SPEC): Add CRTOFFLOADBEGIN.
14752 (ENDFILE_LINUX_SPEC): Add CRTOFFLOADEND.
14754 2016-05-10 Uros Bizjak <ubizjak@gmail.com>
14756 * config/i386/i386.c (legitimize_pic_address): Merge 64-bit and 32-bit
14757 gotoff_operand code paths. Use copy_to_suggested_regs and
14758 expand_simple_binop where appropriate. Cleanup.
14760 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
14763 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Allow
14765 (dimode_scalar_chain::vector_const_cost): New.
14766 (dimode_scalar_chain::compute_convert_gain): Handle constants.
14767 (dimode_scalar_chain::convert_op): Likewise.
14768 (dimode_scalar_chain::convert_insn): Likewise.
14770 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com>
14772 * dwarf2out.c (resolve_args_picking_1): Consider DW_OP_neg as an
14773 unary operation, not a binary one.
14775 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
14777 PR middle-end/70877
14778 * tree-chkp.c (chkp_add_bounds_to_call_stmt): Handle
14779 calls with type casted fndecl.
14781 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
14783 PR tree-optimization/70786
14784 * tree-chkp.c (chkp_find_bounds_1): Support WITH_SIZE_EXPR.
14785 * calls.c (initialize_argument_information): Bind bounds
14786 with corresponding args passed by reference.
14788 2016-05-10 Jakub Jelinek <jakub@redhat.com>
14791 * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>),
14792 *<code><mode>3<mask_name>): For !TARGET_AVX512DQ and EVEX encoding,
14793 use vp*[dq] instead of v*p[sd] instructions and adjust mode attribute
14796 2016-05-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14799 * config/rs6000/vsx.md (vsx_xvcvdpsxds_scale): Generate correct
14800 code for a zero scale factor.
14801 (vsx_xvcvdpuxds_scale): Likewise.
14803 2016-05-10 David Malcolm <dmalcolm@redhat.com>
14805 * diagnostic-show-locus.c (layout::layout): Call show_ruler
14806 if show_ruler_p was set on the context.
14807 (layout::show_ruler): New method.
14808 * diagnostic.h (struct diagnostic_context): Add field
14811 2016-05-10 Richard Biener <rguenther@suse.de>
14813 PR tree-optimization/71039
14814 * tree-ssa-phiprop.c: Include tree-ssa-loop.h.
14815 (chk_uses): New function.
14816 (propagate_with_phi): Verify we can safely replicate the lhs of an
14817 aggregate assignment on all incoming edges.
14819 2016-05-10 Oleg Endo <olegendo@gcc.gnu.org>
14821 * config/rx/rx-protos.h (is_interrupt_func, is_fast_interrupt_func):
14823 (rx_atomic_sequence): New class.
14824 * config/rx/rx.c (rx_print_operand): Use symbolic names for PSW bits.
14825 (is_interrupt_func, is_fast_interrupt_func): Make non-static and
14827 (rx_atomic_sequence::rx_atomic_sequence,
14828 rx_atomic_sequence::~rx_atomic_sequence): New functions.
14829 * config/rx/rx.md (CTRLREG_PSW, CTRLREG_USP, CTRLREG_FPSW, CTRLREG_CPEN,
14830 CTRLREG_BPSW, CTRLREG_BPC, CTRLREG_ISP, CTRLREG_FINTV,
14831 CTRLREG_INTB): New constants.
14832 (FETCHOP): New code iterator.
14833 (fethcop_name, fetchop_name2): New iterator code attributes.
14834 (QIHI): New mode iterator.
14835 (atomic_exchange<mode>, atomic_exchangesi, xchg_mem<mode>,
14836 atomic_fetch_<fetchop_name>si, atomic_fetch_nandsi,
14837 atomic_<fetchop_name>_fetchsi, atomic_nand_fetchsi): New patterns.
14839 2016-05-10 Martin Liska <mliska@suse.cz>
14841 * tree-inline.c (remap_dependence_clique): Do not remap
14842 debugging statements.
14844 2016-05-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
14846 * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly")
14847 ("*fixuns_truncdfdi2_z13")
14848 ("*fixuns_trunc<FP:mode><GPR:mode>2_z196")
14849 ("*fix_truncdfdi2_bfp_z13", "*floatunsdidf2_z13")
14850 ("*extendsfdf2_z13"): Replace TARGET_Z13 with TARGET_VX.
14852 2016-05-10 Richard Biener <rguenther@suse.de>
14854 PR tree-optimization/70497
14855 PR tree-optimization/28367
14856 * tree-ssa-sccvn.c (vn_nary_build_or_lookup): New function
14858 (visit_reference_op_load): ... here.
14859 (vn_reference_lookup_3): Use it to handle subreg-like accesses
14860 with simplified BIT_FIELD_REFs.
14861 * tree-ssa-pre.c (eliminate_insert): Handle inserting BIT_FIELD_REFs.
14862 * tree-complex.c (extract_component): Handle BIT_FIELD_REFs
14865 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com>
14867 * dwarf2out.c (add_abstract_origin_attribute): Adjust
14868 documentation comment. For BLOCK nodes, add a
14869 DW_AT_abstract_origin attribute that points to the DIE generated
14870 for the origin BLOCK.
14871 (gen_lexical_block_die): Call add_abstract_origin_attribute for
14872 blocks from inlined functions.
14874 2016-05-10 Alan Modra <amodra@gmail.com>
14877 * config/rs6000/rs6000.c (rs6000_expand_split_stack_prologue): Stop
14878 regrename modifying insns saving lr before __morestack call.
14879 * config/rs6000/rs6000.md (split_stack_return): Similarly for
14880 insns restoring lr after __morestack call.
14882 2016-05-09 Jakub Jelinek <jakub@redhat.com>
14884 * config/i386/i386.md (set_got, set_got_labelled, lwp_llwpcb,
14885 lwp_lwpval<mode>3, lwp_lwpins<mode>3): Remove constraints from
14887 * config/i386/sse.md (vec_interleave_high<mode>,
14888 vec_interleave_low<mode>, <avx512>_vpermi2var<mode>3_maskz,
14889 <avx512>_vpermt2var<mode>3_maskz): Likewise.
14891 2016-05-04 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
14893 * config/rs6000/rs6000.c (rs6000_reassociation_width): Add
14894 function for TARGET_SCHED_REASSOCIATION_WIDTH to enable
14895 parallel reassociation for power8 and forward.
14897 2016-05-09 Uros Bizjak <ubizjak@gmail.com>
14899 * config/i386/i386.md (absneg splitters with general regs): Use
14900 general_reg_operand predicate.
14901 (btsq peephole2): Use x86_64_immediate_operand to check if new
14902 value is suitable for immediate operand. Generate emitted insn
14903 using RTL expressions.
14904 (btcq peephole2): Ditto.
14905 (btrq peephole2): Ditto. Generate correct immediate operand
14908 2016-05-09 Richard Sandiford <richard.sandiford@arm.com>
14910 * cfgexpand.c (expand_debug_expr): Fix address offset for negative
14913 2016-05-09 Richard Sandiford <richard.sandiford@arm.com>
14915 * tree-affine.c (wide_int_constant_multiple_p): Add missing
14916 pointer dereference.
14918 2016-05-09 Richard Biener <rguenther@suse.de>
14920 PR tree-optimization/70985
14921 * match.pd (BIT_FIELD_REF -> (type)): Disable on GIMPLE when
14922 op0 isn't a gimple register.
14924 2016-05-09 Prachi Godbole <prachi.godbole@imgtec.com>
14926 * config/mips/i6400.md (i6400_fpu_intadd, i6400_fpu_logic)
14927 (i6400_fpu_div, i6400_fpu_cmp, i6400_fpu_float, i6400_fpu_store)
14928 (i6400_fpu_long_pipe, i6400_fpu_logic_l, i6400_fpu_float_l)
14929 (i6400_fpu_mult): New cpu units.
14930 (i6400_msa_add_d, i6400_msa_int_add, i6400_msa_short_logic3)
14931 (i6400_msa_short_logic2, i6400_msa_short_logic, i6400_msa_move)
14932 (i6400_msa_cmp, i6400_msa_short_float2, i6400_msa_div_d)
14933 (i6400_msa_div_w, i6400_msa_div_h, i6400_msa_div_b)
14934 (i6400_msa_copy, i6400_msa_branch, i6400_fpu_msa_store)
14935 (i6400_fpu_msa_load, i6400_fpu_msa_move, i6400_msa_long_logic1)
14936 (i6400_msa_long_logic2, i6400_msa_mult, i6400_msa_long_float2)
14937 (i6400_msa_long_float4, i6400_msa_long_float5)
14938 (i6400_msa_long_float8, i6400_msa_fdiv_df)
14939 (i6400_msa_fdiv_sf): New reservations.
14940 * config/mips/p5600.md (p5600_fpu_intadd, p5600_fpu_cmp)
14941 (p5600_fpu_float, p5600_fpu_logic_a, p5600_fpu_logic_b)
14942 (p5600_fpu_div, p5600_fpu_logic, p5600_fpu_float_a)
14943 (p5600_fpu_float_b, p5600_fpu_float_c, p5600_fpu_float_d)
14944 (p5600_fpu_mult, p5600_fpu_fdiv, p5600_fpu_load): New cpu units.
14945 (msa_short_int_add, msa_short_logic, msa_short_logic_move_v)
14946 (msa_short_cmp, msa_short_float2, msa_short_logic3)
14947 (msa_short_store4, msa_long_load, msa_short_store)
14948 (msa_long_logic, msa_long_float2, msa_long_float4)
14949 (msa_long_float5, msa_long_float8, msa_long_mult)
14950 (msa_long_fdiv, msa_long_div): New reservations.
14952 2016-05-09 Robert Suchanek <robert.suchanek@imgtec.com>
14953 Sameera Deshpande <sameera.deshpande@imgtec.com>
14954 Matthew Fortune <matthew.fortune@imgtec.com>
14955 Graham Stott <graham.stott@imgtec.com>
14956 Chao-ying Fu <chao-ying.fu@imgtec.com>
14958 * config.gcc: Add MSA header file for mips*-*-* target.
14959 * config/mips/constraints.md (YI, YC, YZ, Unv5, Uuv5, Usv5, Uuv6)
14960 (Ubv8i, Urv8): New constraints.
14961 * config/mips/mips-ftypes.def: Add function types for MSA
14963 * config/mips/mips-modes.def (V16QI, V8HI, V4SI, V2DI, V4SF)
14964 (V2DF, V32QI, V16HI, V8SI, V4DI, V8SF, V4DF): New modes.
14965 * config/mips/mips-msa.md: New file.
14966 * config/mips/mips-protos.h
14967 (mips_split_128bit_const_insns): New prototype.
14968 (mips_msa_idiv_insns): Likewise.
14969 (mips_split_128bit_move): Likewise.
14970 (mips_split_128bit_move_p): Likewise.
14971 (mips_split_msa_copy_d): Likewise.
14972 (mips_split_msa_insert_d): Likewise.
14973 (mips_split_msa_fill_d): Likewise.
14974 (mips_expand_msa_branch): Likewise.
14975 (mips_const_vector_same_val_p): Likewise.
14976 (mips_const_vector_same_bytes_p): Likewise.
14977 (mips_const_vector_same_int_p): Likewise.
14978 (mips_const_vector_shuffle_set_p): Likewise.
14979 (mips_const_vector_bitimm_set_p): Likewise.
14980 (mips_const_vector_bitimm_clr_p): Likewise.
14981 (mips_msa_vec_parallel_const_half): Likewise.
14982 (mips_msa_output_division): Likewise.
14983 (mips_ldst_scaled_shift): Likewise.
14984 (mips_expand_vec_cond_expr): Likewise.
14985 * config/mips/mips.c (enum mips_builtin_type): Add
14986 MIPS_BUILTIN_MSA_TEST_BRANCH.
14987 (mips_gen_const_int_vector_shuffle): New prototype.
14988 (mips_const_vector_bitimm_set_p): New function.
14989 (mips_const_vector_bitimm_clr_p): Likewise.
14990 (mips_const_vector_same_val_p): Likewise.
14991 (mips_const_vector_same_bytes_p): Likewise.
14992 (mips_const_vector_same_int_p): Likewise.
14993 (mips_const_vector_shuffle_set_p): Likewise.
14994 (mips_symbol_insns): Forbid loading symbols via immediate for
14996 (mips_valid_offset_p): Limit offset to 10-bit for MSA loads and
14998 (mips_valid_lo_sum_p): Forbid loadings symbols via %lo(base) for
15000 (mips_lx_address_p): Add support load indexed address for MSA.
15001 (mips_address_insns): Add calculation of instructions needed for
15002 stores and loads for MSA.
15003 (mips_const_insns): Move CONST_DOUBLE below CONST_VECTOR. Handle
15004 CONST_VECTOR for MSA and let it fall through.
15005 (mips_ldst_scaled_shift): New function.
15006 (mips_subword_at_byte): Likewise.
15007 (mips_msa_idiv_insns): Likewise.
15008 (mips_legitimize_move): Validate MSA moves.
15009 (mips_rtx_costs): Add UNGE, UNGT, UNLE, UNLT cases. Add
15010 calculation of costs for MSA division.
15011 (mips_split_move_p): Check if MSA moves need splitting.
15012 (mips_split_move): Split MSA moves if necessary.
15013 (mips_split_128bit_move_p): New function.
15014 (mips_split_128bit_move): Likewise.
15015 (mips_split_msa_copy_d): Likewise.
15016 (mips_split_msa_insert_d): Likewise.
15017 (mips_split_msa_fill_d): Likewise.
15018 (mips_output_move): Handle MSA moves.
15019 (mips_expand_msa_branch): New function.
15020 (mips_print_operand): Add 'E', 'B', 'w', 'v' and 'V' modifiers.
15021 Reinstate 'y' modifier.
15022 (mips_file_start): Add MSA .gnu_attribute.
15023 (mips_hard_regno_mode_ok_p): Allow TImode and 128-bit vectors in
15025 (mips_hard_regno_nregs): Always return 1 for MSA supported mode.
15026 (mips_class_max_nregs): Add register size for MSA supported mode.
15027 (mips_cannot_change_mode_class): Allow conversion between MSA
15028 vector modes and TImode.
15029 (mips_mode_ok_for_mov_fmt_p): Allow MSA to use move.v
15031 (mips_secondary_reload_class): Force MSA loads/stores via memory.
15032 (mips_preferred_simd_mode): Add preffered modes for MSA.
15033 (mips_vector_mode_supported_p): Add MSA supported modes.
15034 (mips_autovectorize_vector_sizes): New function.
15035 (mips_msa_output_division): Likewise.
15036 (MSA_BUILTIN, MIPS_BUILTIN_DIRECT_NO_TARGET)
15037 (MSA_NO_TARGET_BUILTIN, MSA_BUILTIN_TEST_BRANCH): New macros.
15038 (CODE_FOR_msa_adds_s_b, CODE_FOR_msa_adds_s_h)
15039 (CODE_FOR_msa_adds_s_w, CODE_FOR_msa_adds_s_d)
15040 (CODE_FOR_msa_adds_u_b, CODE_FOR_msa_adds_u_h)
15041 (CODE_FOR_msa_adds_u_w, CODE_FOR_msa_adds_u_du
15042 (CODE_FOR_msa_addv_b, CODE_FOR_msa_addv_h, CODE_FOR_msa_addv_w)
15043 (CODE_FOR_msa_addv_d, CODE_FOR_msa_and_v, CODE_FOR_msa_bmnz_v)
15044 (CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bmz_v, CODE_FOR_msa_bmzi_b)
15045 (CODE_FOR_msa_bnz_v, CODE_FOR_msa_bz_v, CODE_FOR_msa_bsel_v)
15046 (CODE_FOR_msa_bseli_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w)
15047 (CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b)
15048 (CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w)
15049 (CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clti_u_b)
15050 (CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w)
15051 (CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_s_b)
15052 (CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w)
15053 (CODE_FOR_msa_clei_s_d, CODE_FOR_msa_clei_u_b)
15054 (CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w)
15055 (CODE_FOR_msa_clei_u_d, CODE_FOR_msa_div_s_b)
15056 (CODE_FOR_msa_div_s_h, CODE_FOR_msa_div_s_w)
15057 (CODE_FOR_msa_div_s_d, CODE_FOR_msa_div_u_b)
15058 (CODE_FOR_msa_div_u_h, CODE_FOR_msa_div_u_w)
15059 (CODE_FOR_msa_div_u_d, CODE_FOR_msa_fadd_w, CODE_FOR_msa_fadd_d)
15060 (CODE_FOR_msa_fexdo_w, CODE_FOR_msa_ftrunc_s_w)
15061 (CODE_FOR_msa_ftrunc_s_d, CODE_FOR_msa_ftrunc_u_w)
15062 (CODE_FOR_msa_ftrunc_u_d, CODE_FOR_msa_ffint_s_w)
15063 (CODE_FOR_msa_ffint_s_d, CODE_FOR_msa_ffint_u_w)
15064 (CODE_FOR_msa_ffint_u_d, CODE_FOR_msa_fsub_w)
15065 (CODE_FOR_msa_fsub_d, CODE_FOR_msa_fmsub_d, CODE_FOR_msa_fmadd_w)
15066 (CODE_FOR_msa_fmadd_d, CODE_FOR_msa_fmsub_w, CODE_FOR_msa_fmul_w)
15067 (CODE_FOR_msa_fmul_d, CODE_FOR_msa_fdiv_w, CODE_FOR_msa_fdiv_d)
15068 (CODE_FOR_msa_fmax_w, CODE_FOR_msa_fmax_d, CODE_FOR_msa_fmax_a_w)
15069 (CODE_FOR_msa_fmax_a_d, CODE_FOR_msa_fmin_w, CODE_FOR_msa_fmin_d)
15070 (CODE_FOR_msa_fmin_a_w, CODE_FOR_msa_fmin_a_d)
15071 (CODE_FOR_msa_fsqrt_w, CODE_FOR_msa_fsqrt_d)
15072 (CODE_FOR_msa_max_s_b, CODE_FOR_msa_max_s_h)
15073 (CODE_FOR_msa_max_s_w, CODE_FOR_msa_max_s_d)
15074 (CODE_FOR_msa_max_u_b, CODE_FOR_msa_max_u_h)
15075 (CODE_FOR_msa_max_u_w, CODE_FOR_msa_max_u_d)
15076 (CODE_FOR_msa_min_s_b, CODE_FOR_msa_min_s_h)
15077 (CODE_FOR_msa_min_s_w, CODE_FOR_msa_min_s_d)
15078 (CODE_FOR_msa_min_u_b, CODE_FOR_msa_min_u_h)
15079 (CODE_FOR_msa_min_u_w, CODE_FOR_msa_min_u_d)
15080 (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
15081 (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
15082 (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
15083 (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
15084 (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
15085 (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
15086 (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
15087 (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
15088 (CODE_FOR_msa_mulv_b, CODE_FOR_msa_mulv_h, CODE_FOR_msa_mulv_w)
15089 (CODE_FOR_msa_mulv_d, CODE_FOR_msa_nlzc_b, CODE_FOR_msa_nlzc_h)
15090 (CODE_FOR_msa_nlzc_w, CODE_FOR_msa_nlzc_d, CODE_FOR_msa_nor_v)
15091 (CODE_FOR_msa_or_v, CODE_FOR_msa_ori_b, CODE_FOR_msa_nori_b)
15092 (CODE_FOR_msa_pcnt_b, CODE_FOR_msa_pcnt_h, CODE_FOR_msa_pcnt_w)
15093 (CODE_FOR_msa_pcnt_d, CODE_FOR_msa_xor_v, CODE_FOR_msa_xori_b)
15094 (CODE_FOR_msa_sll_b, CODE_FOR_msa_sll_h, CODE_FOR_msa_sll_w)
15095 (CODE_FOR_msa_sll_d, CODE_FOR_msa_slli_b, CODE_FOR_msa_slli_h)
15096 (CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d, CODE_FOR_msa_sra_b)
15097 (CODE_FOR_msa_sra_h, CODE_FOR_msa_sra_w, CODE_FOR_msa_sra_d)
15098 (CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w)
15099 (CODE_FOR_msa_srai_d, CODE_FOR_msa_srl_b, CODE_FOR_msa_srl_h)
15100 (CODE_FOR_msa_srl_w, CODE_FOR_msa_srl_d, CODE_FOR_msa_srli_b)
15101 (CODE_FOR_msa_srli_h, CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d)
15102 (CODE_FOR_msa_subv_b, CODE_FOR_msa_subv_h, CODE_FOR_msa_subv_w)
15103 (CODE_FOR_msa_subv_d, CODE_FOR_msa_subvi_b, CODE_FOR_msa_subvi_h)
15104 (CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d, CODE_FOR_msa_move_v)
15105 (CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h, CODE_FOR_msa_vshf_w)
15106 (CODE_FOR_msa_vshf_d, CODE_FOR_msa_ilvod_d, CODE_FOR_msa_ilvev_d)
15107 (CODE_FOR_msa_pckod_d, CODE_FOR_msa_pckdev_d, CODE_FOR_msa_ldi_b)
15108 (CODE_FOR_msa_ldi_hi, CODE_FOR_msa_ldi_w)
15109 (CODE_FOR_msa_ldi_d): New code_aliasing macros.
15110 (mips_builtins): Add MSA sll_b, sll_h, sll_w, sll_d, slli_b,
15111 slli_h, slli_w, slli_d, sra_b, sra_h, sra_w, sra_d, srai_b,
15112 srai_h, srai_w, srai_d, srar_b, srar_h, srar_w, srar_d, srari_b,
15113 srari_h, srari_w, srari_d, srl_b, srl_h, srl_w, srl_d, srli_b,
15114 srli_h, srli_w, srli_d, srlr_b, srlr_h, srlr_w, srlr_d, srlri_b,
15115 srlri_h, srlri_w, srlri_d, bclr_b, bclr_h, bclr_w, bclr_d,
15116 bclri_b, bclri_h, bclri_w, bclri_d, bset_b, bset_h, bset_w,
15117 bset_d, bseti_b, bseti_h, bseti_w, bseti_d, bneg_b, bneg_h,
15118 bneg_w, bneg_d, bnegi_b, bnegi_h, bnegi_w, bnegi_d, binsl_b,
15119 binsl_h, binsl_w, binsl_d, binsli_b, binsli_h, binsli_w,
15120 binsli_d, binsr_b, binsr_h, binsr_w, binsr_d, binsri_b, binsri_h,
15121 binsri_w, binsri_d, addv_b, addv_h, addv_w, addv_d, addvi_b,
15122 addvi_h, addvi_w, addvi_d, subv_b, subv_h, subv_w, subv_d,
15123 subvi_b, subvi_h, subvi_w, subvi_d, max_s_b, max_s_h, max_s_w,
15124 max_s_d, maxi_s_b, maxi_s_h, maxi_s_w, maxi_s_d, max_u_b,
15125 max_u_h, max_u_w, max_u_d, maxi_u_b, maxi_u_h, maxi_u_w,
15126 maxi_u_d, min_s_b, min_s_h, min_s_w, min_s_d, mini_s_b, mini_s_h,
15127 mini_s_w, mini_s_d, min_u_b, min_u_h, min_u_w, min_u_d, mini_u_b,
15128 mini_u_h, mini_u_w, mini_u_d, max_a_b, max_a_h, max_a_w, max_a_d,
15129 min_a_b, min_a_h, min_a_w, min_a_d, ceq_b, ceq_h, ceq_w, ceq_d,
15130 ceqi_b, ceqi_h, ceqi_w, ceqi_d, clt_s_b, clt_s_h, clt_s_w,
15131 clt_s_d, clti_s_b, clti_s_h, clti_s_w, clti_s_d, clt_u_b,
15132 clt_u_h, clt_u_w, clt_u_d, clti_u_b, clti_u_h, clti_u_w,
15133 clti_u_d, cle_s_b, cle_s_h, cle_s_w, cle_s_d, clei_s_b, clei_s_h,
15134 clei_s_w, clei_s_d, cle_u_b, cle_u_h, cle_u_w, cle_u_d, clei_u_b,
15135 clei_u_h, clei_u_w, clei_u_d, ld_b, ld_h, ld_w, ld_d, st_b, st_h,
15136 st_w, st_d, sat_s_b, sat_s_h, sat_s_w, sat_s_d, sat_u_b, sat_u_h,
15137 sat_u_w, sat_u_d, add_a_b, add_a_h, add_a_w, add_a_d, adds_a_b,
15138 adds_a_h, adds_a_w, adds_a_d, adds_s_b, adds_s_h, adds_s_w,
15139 adds_s_d, adds_u_b, adds_u_h, adds_u_w, adds_u_d, ave_s_b,
15140 ave_s_h, ave_s_w, ave_s_d, ave_u_b, ave_u_h, ave_u_w, ave_u_d,
15141 aver_s_b, aver_s_h, aver_s_w, aver_s_d, aver_u_b, aver_u_h,
15142 aver_u_w, aver_u_d, subs_s_b, subs_s_h, subs_s_w, subs_s_d,
15143 subs_u_b, subs_u_h, subs_u_w, subs_u_d, subsuu_s_b, subsuu_s_h,
15144 subsuu_s_w, subsuu_s_d, subsus_u_b, subsus_u_h, subsus_u_w,
15145 subsus_u_d, asub_s_b, asub_s_h, asub_s_w, asub_s_d, asub_u_b,
15146 asub_u_h, asub_u_w, asub_u_d, mulv_b, mulv_h, mulv_w, mulv_d,
15147 maddv_b, maddv_h, maddv_w, maddv_d, msubv_b, msubv_h, msubv_w,
15148 msubv_d, div_s_b, div_s_h, div_s_w, div_s_d, div_u_b, div_u_h,
15149 div_u_w, div_u_d, hadd_s_h, hadd_s_w, hadd_s_d, hadd_u_h,
15150 hadd_u_w, hadd_u_d, hsub_s_h, hsub_s_w, hsub_s_d, hsub_u_h,
15151 hsub_u_w, hsub_u_d, mod_s_b, mod_s_h, mod_s_w, mod_s_d, mod_u_b,
15152 mod_u_h, mod_u_w, mod_u_d, dotp_s_h, dotp_s_w, dotp_s_d,
15153 dotp_u_h, dotp_u_w, dotp_u_d, dpadd_s_h, dpadd_s_w, dpadd_s_d,
15154 dpadd_u_h, dpadd_u_w, dpadd_u_d, dpsub_s_h, dpsub_s_w, dpsub_s_d,
15155 dpsub_u_h, dpsub_u_w, dpsub_u_d, sld_b, sld_h, sld_w, sld_d,
15156 sldi_b, sldi_h, sldi_w, sldi_d, splat_b, splat_h, splat_w,
15157 splat_d, splati_b, splati_h, splati_w, splati_d, pckev_b,
15158 pckev_h, pckev_w, pckev_d, pckod_b, pckod_h, pckod_w, pckod_d,
15159 ilvl_b, ilvl_h, ilvl_w, ilvl_d, ilvr_b, ilvr_h, ilvr_w, ilvr_d,
15160 ilvev_b, ilvev_h, ilvev_w, ilvev_d, ilvod_b, ilvod_h, ilvod_w,
15161 ilvod_d, vshf_b, vshf_h, vshf_w, vshf_d, and_v, andi_b, or_v,
15162 ori_b, nor_v, nori_b, xor_v, xori_b, bmnz_v, bmnzi_b, bmz_v,
15163 bmzi_b, bsel_v, bseli_b, shf_b, shf_h, shf_w, bnz_v, bz_v,
15164 fill_b, fill_h, fill_w, fill_d, pcnt_b, pcnt_h, pcnt_w,
15165 pcnt_d, nloc_b, nloc_h, nloc_w, nloc_d, nlzc_b, nlzc_h, nlzc_w,
15166 nlzc_d, copy_s_b, copy_s_h, copy_s_w, copy_s_d, copy_u_b,
15167 copy_u_h, copy_u_w, copy_u_d, insert_b, insert_h, insert_w,
15168 insert_d, insve_b, insve_h, insve_w, insve_d, bnz_b, bnz_h,
15169 bnz_w, bnz_d, bz_b, bz_h, bz_w, bz_d, ldi_b, ldi_h, ldi_w, ldi_d,
15170 fcaf_w, fcaf_d, fcor_w, fcor_d, fcun_w, fcun_d, fcune_w, fcune_d,
15171 fcueq_w, fcueq_d, fceq_w, fceq_d, fcne_w, fcne_d, fclt_w, fclt_d,
15172 fcult_w, fcult_d, fcle_w, fcle_d, fcule_w, fcule_d, fsaf_w,
15173 fsaf_d, fsor_w, fsor_d, fsun_w, fsun_d, fsune_w, fsune_d,
15174 fsueq_w, fsueq_d, fseq_w, fseq_d, fsne_w, fsne_d, fslt_w,
15175 fslt_d, fsult_w, fsult_d, fsle_w, fsle_d, fsule_w, fsule_d,
15176 fadd_w, fadd_d, fsub_w, fsub_d, fmul_w, fmul_d, fdiv_w, fdiv_d,
15177 fmadd_w, fmadd_d, fmsub_w, fmsub_d, fexp2_w, fexp2_d, fexdo_h,
15178 fexdo_w, ftq_h, ftq_w, fmin_w, fmin_d, fmin_a_w, fmin_a_d,
15179 fmax_w, fmax_d, fmax_a_w, fmax_a_d, mul_q_h, mul_q_w, mulr_q_h,
15180 mulr_q_w, madd_q_h, madd_q_w, maddr_q_h, maddr_q_w, msub_q_h,
15181 msub_q_w, msubr_q_h, msubr_q_w, fclass_w, fclass_d, fsqrt_w,
15182 fsqrt_d, frcp_w, frcp_d, frint_w, frint_d, frsqrt_w, frsqrt_d,
15183 flog2_w, flog2_d, fexupl_w, fexupl_d, fexupr_w, fexupr_d, ffql_w,
15184 ffql_d, ffqr_w, ffqr_d, ftint_s_w, ftint_s_d, ftint_u_w,
15185 ftint_u_d, ftrunc_s_w, ftrunc_s_d, ftrunc_u_w, ftrunc_u_d,
15186 ffint_s_w, ffint_s_d, ffint_u_w, ffint_u_d, ctcmsa, cfcmsa,
15188 (mips_get_builtin_decl_index): New array.
15189 (MIPS_ATYPE_QI, MIPS_ATYPE_HI, MIPS_ATYPE_V2DI, MIPS_ATYPE_V4SI)
15190 (MIPS_ATYPE_V8HI, MIPS_ATYPE_V16QI, MIPS_ATYPE_V2DF)
15191 (MIPS_ATYPE_V4SF, MIPS_ATYPE_UV2DI, MIPS_ATYPE_UV4SI)
15192 (MIPS_ATYPE_UV8HI, MIPS_ATYPE_UV16QI): New.
15193 (mips_init_builtins): Initialize mips_get_builtin_decl_index
15195 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
15197 (mips_expand_builtin_insn): Prepare operands for
15198 CODE_FOR_msa_addvi_b, CODE_FOR_msa_addvi_h, CODE_FOR_msa_addvi_w,
15199 CODE_FOR_msa_addvi_d, CODE_FOR_msa_clti_u_b,
15200 CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w,
15201 CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_u_b,
15202 CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w,
15203 CODE_FOR_msa_clei_u_d, CODE_FOR_msa_maxi_u_b,
15204 CODE_FOR_msa_maxi_u_h, CODE_FOR_msa_maxi_u_w,
15205 CODE_FOR_msa_maxi_u_d, CODE_FOR_msa_mini_u_b,
15206 CODE_FOR_msa_mini_u_h, CODE_FOR_msa_mini_u_w,
15207 CODE_FOR_msa_mini_u_d, CODE_FOR_msa_subvi_b,
15208 CODE_FOR_msa_subvi_h, CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d,
15209 CODE_FOR_msa_ceqi_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w,
15210 CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b,
15211 CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w,
15212 CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clei_s_b,
15213 CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w,
15214 CODE_FOR_msa_clei_s_d, CODE_FOR_msa_maxi_s_b,
15215 CODE_FOR_msa_maxi_s_h, CODE_FOR_msa_maxi_s_w,
15216 CODE_FOR_msa_maxi_s_d, CODE_FOR_msa_mini_s_b,
15217 CODE_FOR_msa_mini_s_h, CODE_FOR_msa_mini_s_w,
15218 CODE_FOR_msa_mini_s_d, CODE_FOR_msa_andi_b, CODE_FOR_msa_ori_b,
15219 CODE_FOR_msa_nori_b, CODE_FOR_msa_xori_b, CODE_FOR_msa_bmzi_b,
15220 CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bseli_b, CODE_FOR_msa_fill_b,
15221 CODE_FOR_msa_fill_h, CODE_FOR_msa_fill_w, CODE_FOR_msa_fill_d,
15222 CODE_FOR_msa_ilvl_b, CODE_FOR_msa_ilvl_h, CODE_FOR_msa_ilvl_w,
15223 CODE_FOR_msa_ilvl_d, CODE_FOR_msa_ilvr_b, CODE_FOR_msa_ilvr_h,
15224 CODE_FOR_msa_ilvr_w, CODE_FOR_msa_ilvr_d, CODE_FOR_msa_ilvev_b,
15225 CODE_FOR_msa_ilvev_h, CODE_FOR_msa_ilvev_w, CODE_FOR_msa_ilvod_b,
15226 CODE_FOR_msa_ilvod_h, CODE_FOR_msa_ilvod_w, CODE_FOR_msa_pckev_b,
15227 CODE_FOR_msa_pckev_h, CODE_FOR_msa_pckev_w, CODE_FOR_msa_pckod_b,
15228 CODE_FOR_msa_pckod_h, CODE_FOR_msa_pckod_w, CODE_FOR_msa_slli_b,
15229 CODE_FOR_msa_slli_h, CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d,
15230 CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w,
15231 CODE_FOR_msa_srai_d, CODE_FOR_msa_srli_b, CODE_FOR_msa_srli_h,
15232 CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d, CODE_FOR_msa_insert_b,
15233 CODE_FOR_msa_insert_h, CODE_FOR_msa_insert_w,
15234 CODE_FOR_msa_insert_d, CODE_FOR_msa_insve_b,
15235 CODE_FOR_msa_insve_h, CODE_FOR_msa_insve_w, CODE_FOR_msa_insve_d,
15236 CODE_FOR_msa_shf_b, CODE_FOR_msa_shf_h, CODE_FOR_msa_shf_w,
15237 CODE_FOR_msa_shf_w_f, CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h,
15238 CODE_FOR_msa_vshf_w, CODE_FOR_msa_vshf_d.
15239 (mips_expand_builtin): Add case for MIPS_BULTIN_MSA_TEST_BRANCH.
15240 (mips_set_compression_mode): Disallow MSA with MIPS16 code.
15241 (mips_option_override): -mmsa requires -mfp64 and -mhard-float.
15242 These are set implicitly and an error is reported if overridden.
15243 (mips_expand_builtin_msa_test_branch): New function.
15244 (mips_expand_msa_shuffle): Likewise.
15245 (MAX_VECT_LEN): Increase maximum length of a vector to 16 bytes.
15246 (TARGET_SCHED_REASSOCIATION_WIDTH): Define target hook.
15247 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Likewise.
15248 (mips_expand_vec_unpack): Add support for MSA.
15249 (mips_expand_vector_init): Likewise.
15250 (mips_expand_vi_constant): Use CONST0_RTX (element_mode)
15251 instead of const0_rtx.
15252 (mips_msa_vec_parallel_const_half): New function.
15253 (mips_gen_const_int_vector): Likewise.
15254 (mips_gen_const_int_vector_shuffle): Likewise.
15255 (mips_expand_msa_cmp): Likewise.
15256 (mips_expand_vec_cond_expr): Likewise.
15257 * config/mips/mips.h
15258 (TARGET_CPU_CPP_BUILTINS): Add __mips_msa and __mips_msa_width.
15259 (OPTION_DEFAULT_SPECS): Ignore --with-fp-32 if -mmsa is
15261 (ASM_SPEC): Pass mmsa and mno-msa to the assembler.
15262 (ISA_HAS_MSA): New macro.
15263 (UNITS_PER_MSA_REG): Likewise.
15264 (BITS_PER_MSA_REG): Likewise.
15265 (BIGGEST_ALIGNMENT): Redefine using ISA_HAS_MSA.
15266 (MSA_REG_FIRST): New macro.
15267 (MSA_REG_LAST): Likewise.
15268 (MSA_REG_NUM): Likewise.
15269 (MSA_REG_P): Likewise.
15270 (MSA_REG_RTX_P): Likewise.
15271 (MSA_SUPPORTED_MODE_P): Likewise.
15272 (HARD_REGNO_CALL_PART_CLOBBERED): Redefine using TARGET_MSA.
15273 (ADDITIONAL_REGISTER_NAMES): Add named registers $w0-$w31.
15274 * config/mips/mips.md: Include mips-msa.md.
15275 (alu_type): Add simd_add.
15276 (mode): Add V2DI, V4SI, V8HI, V16QI, V2DF, V4SF.
15277 (type): Add simd_div, simd_fclass, simd_flog2, simd_fadd,
15278 simd_fcvt, simd_fmul, simd_fmadd, simd_fdiv, simd_bitins,
15279 simd_bitmov, simd_insert, simd_sld, simd_mul, simd_fcmp,
15280 simd_fexp2, simd_int_arith, simd_bit, simd_shift, simd_splat,
15281 simd_fill, simd_permute, simd_shf, simd_sat, simd_pcnt,
15282 simd_copy, simd_branch, simd_cmsa, simd_fminmax, simd_logic,
15283 simd_move, simd_load, simd_store. Choose "multi" for moves
15285 (qword_mode): New attribute.
15286 (insn_count): Add instruction count for quad moves.
15287 Increase the count for MIPS SIMD division.
15288 (UNITMODE): Add UNITMODEs for vector types.
15289 (addsub): New code iterator.
15290 * config/mips/mips.opt (mmsa): New option.
15291 * config/mips/msa.h: New file.
15292 * config/mips/mti-elf.h: Don't infer -mfpxx if -mmsa is
15294 * config/mips/mti-linux.h: Likewise.
15295 * config/mips/predicates.md
15296 (const_msa_branch_operand): New constraint.
15297 (const_uimm3_operand): Likewise.
15298 (const_uimm4_operand): Likewise.
15299 (const_uimm5_operand): Likewise.
15300 (const_uimm8_operand): Likewise.
15301 (const_imm5_operand): Likewise.
15302 (aq10b_operand): Likewise.
15303 (aq10h_operand): Likewise.
15304 (aq10w_operand): Likewise.
15305 (aq10d_operand): Likewise.
15306 (const_m1_operand): Likewise.
15307 (reg_or_m1_operand): Likewise.
15308 (const_exp_2_operand): Likewise.
15309 (const_exp_4_operand): Likewise.
15310 (const_exp_8_operand): Likewise.
15311 (const_exp_16_operand): Likewise.
15312 (const_vector_same_val_operand): Likewise.
15313 (const_vector_same_simm5_operand): Likewise.
15314 (const_vector_same_uimm5_operand): Likewise.
15315 (const_vector_same_uimm6_operand): Likewise.
15316 (const_vector_same_uimm8_operand): Likewise.
15317 (par_const_vector_shf_set_operand): Likewise.
15318 (reg_or_vector_same_val_operand): Likewise.
15319 (reg_or_vector_same_simm5_operand): Likewise.
15320 (reg_or_vector_same_uimm6_operand): Likewise.
15321 * doc/extend.texi (MIPS SIMD Architecture Functions): New
15323 * doc/invoke.texi (-mmsa): Document new option.
15325 2016-05-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15327 * configure.ac (enable_vtable_verify): Handle --enable-vtable-verify.
15328 * configure: Regenerate.
15329 * config.in: Regenerate.
15330 * gcc.c (VTABLE_VERIFICATION_SPEC) [!ENABLE_VTABLE_VERIFY]: Error
15331 on -fvtable-verify.
15332 * config/sol2.h [!ENABLE_VTABLE_VERIFY] (STARTFILE_VTV_SPEC): Define.
15333 (ENDFILE_VTV_SPEC): Define.
15335 2016-05-09 Kaushik Phatak <kaushik.phatak@kpit.com>
15337 * config/rl78/rl78.c (rl78_expand_prologue): Save the MDUC related
15338 registers in all interrupt handlers if necessary.
15339 (rl78_option_override): Add warning.
15340 (MUST_SAVE_MDUC_REGISTERS): New macro.
15341 (rl78_expand_epilogue): Restore the MDUC registers if necessary.
15342 * config/rl78/rl78.c (check_mduc_usage): New function.
15343 (mduc_regs): New structure to hold MDUC register data.
15344 * config/rl78/rl78.md (is_g13_muldiv_insn): New attribute.
15345 (mulsi3_g13): Add is_g13_muldiv_insn attribute.
15346 (udivmodsi4_g13): Add is_g13_muldiv_insn attribute.
15347 (mulhi3_g13): Add is_g13_muldiv_insn attribute.
15348 * config/rl78/rl78.opt (msave-mduc-in-interrupts): New option.
15349 * doc/invoke.texi (RL78 Options): Add -msave-mduc-in-interrupts.
15351 2016-05-09 Bin Cheng <bin.cheng@arm.com>
15353 * tree-if-conv.c (tree-ssa-loop.h): Include header file.
15354 (tree-ssa-loop-niter.h): Ditto.
15355 (idx_within_array_bound, ref_within_array_bound): New functions.
15356 (ifcvt_memrefs_wont_trap): Check if array ref is within bound.
15357 Factor out check on writable base object to ...
15358 (base_object_writable): ... here.
15360 2016-05-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15362 * config/arm/arm.md (probe_stack): Add modes to set source
15365 2016-05-09 Bernd Schmidt <bschmidt@redhat.com>
15367 * regrename.c (base_reg_class_for_rename): New static function.
15368 (scan_rtx_address, scan_rtx): Use it instead of base_reg_class.
15370 2016-05-08 Jan Hubicka <hubicka@ucw.cz>
15372 * cgraph.c (thunk_adjust): Export.
15373 * cgraphclones.c (cgraph_node::create_clone): Clone thunk info.
15374 * cgraphunit.c (thunk_adjust): Export.
15375 (cgraph_node::assemble_thunks_and_aliases): Do not assemble inlined
15377 * ipa-inline-analyssi.c (compute_inline_parameters): Thunks are
15379 * tree-inline.c (expand_call_inline): Expand thunks inline.
15381 2016-05-08 Uros Bizjak <ubizjak@gmail.com>
15384 * config/i386/sse.md (*sse2_vd_cvtsd2ss): New insn pattern.
15385 (*sse2_vd_cvtss2sd): Ditto.
15386 * config/i386/i386.md
15387 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf splitter):
15388 Generate *sse2_vd_cvtsd2ss pattern.
15389 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df splitter):
15390 Generate *sse2_vd_cvtss2sd pattern.
15392 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
15394 * config/sh/sh.h (GET_SH_ARG_CLASS): Convert macro into ...
15395 * config/sh/sh.c (get_sh_arg_class): ... this new function. Update its
15398 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
15400 * config/sh/sh-protos.h (sh_media_register_for_return): Remove.
15401 * config/sh/sh.c: Define and declare variables on first use throughout
15403 (current_function_interrupt): Change to bool type.
15404 (frame_insn): Rename to emit_frame_insn and update users.
15405 (push_regs): Use bool for 'interrupt_handler' argument.
15406 (save_schedule_s): Remove.
15407 (TARGET_ASM_UNALIGNED_DI_OP, TARGET_ASM_ALIGNED_DI_OP): Remove.
15408 (sh_option_override): Don't nullify targetm.asm_out.aligned_op.di and
15409 targetm.asm_out.unaligned_op.di.
15410 (gen_far_branch): Remove redundant forward declaration.
15411 (sh_media_register_for_return, MAX_SAVED_REGS, save_entry_s, save_entry,
15412 MAX_TEMPS, save_schedule_ssave_schedule): Remove.
15413 (sh_set_return_address, sh_function_ok_for_sibcall,
15414 scavenge_reg): Update comments.
15415 (sh_builtin_saveregs): Use TRAGET_FPU_ANY condition.
15416 (sh2a_get_function_vector_number, sh2a_function_vector_p): Use for loop.
15417 (sh_attr_renesas_p): Remove unnecessary parentheses.
15418 (branch_dest): Simplify.
15419 * config/sh/sh.h (sh_args): Remove byref, byref_regs, stack_regs fields.
15420 Change force_mem, prototype_p, outgoing, renesas_abi fields to bool.
15421 (CUMULATIVE_ARGS): Change macro to typedef.
15422 (current_function_interrupt): Change to bool type.
15423 (sh_arg_class, sh_args, CUMULATIVE_ARGS, current_function_interrupt):
15424 Surround with __cplusplus ifdef.
15425 (sh_compare_op0, sh_compare_op1): Remove.
15426 (EPILOGUE_USES): Use TARGET_FPU_ANY condition.
15428 2016-05-07 Jim Wilson <jim.wilson@linaro.org>
15430 * config/arm/arm.md: (arch): Add neon.
15431 (arch_enabled): Return yes for arch neon when TARGET_NEON.
15432 * config/arm/vfp.md (movdf_vfp): Add w/G as alternative 3. Add
15433 neon_move as type for alt 3. Add arch attr enabling alt 3 for neon.
15434 Emit vmov.i64 for alt 3. Renumber alternatives 3 to 8. Adjust
15435 attributes for alt renumbering. Mark alt 3 as non-predicable.
15436 (thumb2_movdf_vfp): Likewise.
15438 2016-05-07 Uros Bizjak <ubizjak@gmail.com>
15440 * config/i386/i386.md (*addqi_1): Add preferred_for_speed attribute
15441 to disparage alternatives 3 and 4 for TARGET_PARTIAL_REG_STALL targets.
15442 (*andqi_1): Add preferred_for_speed attribute to disparage
15443 alternative 2 for TARGET_PARTIAL_REG_STALL targets.
15444 (*<code>qi_1): Ditto.
15445 (*one_cmplqi2_1): Add preferred_for_speed attribute to disparage
15446 alternative 1 for TARGET_PARTIAL_REG_STALL targets.
15447 (*ashlqi3_1): Ditto.
15448 (*swap<mode>): Merge from *swap<mode>_1 and *swap<mode>_2 patterns.
15449 Add preferred_for_size attribute to disparage alternative 0 and
15450 preferred_for_speed attribute to disparage alternative 1 for
15451 TARGET_PARTIAL_REG_STALL targets.
15453 2016-05-07 Tom de Vries <tom@codesourcery.com>
15455 PR tree-optimization/70956
15456 * graphite-scop-detection.c (build_cross_bb_scalars_def): Handle NULL
15459 2016-05-07 Oleg Endo <olegendo@gcc.gnu.org>
15461 * config/sh/sh-protos.h (sh_cbranch_distance): Declare new function.
15462 * config/sh/sh.c (sh_cbranch_distance): Implement it.
15463 * config/sh/sh.md (branch_zero): Remove define_attr.
15464 (define_delay): Disable delay slot if branch distance is one insn.
15466 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
15468 * config/i386/i386.md (LEAMODE): New mode attribute.
15469 (plus to LEA splitter): Rewrite splitter using LEAMODE mode attribute.
15470 (ashift to LEA splitter): Rewrte splitter using SWI mode iterator
15471 and LEAMODE mode attribute. Use VOIDmode const_0_to_3_operand as
15472 operand 2 predicate.
15473 (*lea<mode>_general_2): Use VOIDmode for const248_operand.
15474 (*lea<mode>_general_3): Ditto.
15475 (*lea<mode>_general_4): Use VOIDmode for const_0_to_3_operand.
15477 2016-05-06 Jakub Jelinek <jakub@redhat.com>
15479 * genmddump.c (main): Convert argv from char ** to const char **.
15481 2016-05-06 David Malcolm <dmalcolm@redhat.com>
15483 * coretypes.h (OVERRIDE): New macro.
15484 (FINAL): New macro.
15486 2016-05-06 Eric Botcazou <ebotcazou@adacore.com>
15488 * tree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case,
15489 allow coalescing if the types are compatible.
15491 2016-05-06 David Malcolm <dmalcolm@redhat.com>
15493 * pass_manager.h (pass_manager::register_pass_name): New method.
15494 (pass_manager::get_pass_by_name): New method.
15495 (pass_manager::create_pass_tab): New method.
15496 (pass_manager::m_name_to_pass_map): New field.
15497 * passes.c (name_to_pass_map): Delete global in favor of field
15498 "m_name_to_pass_map" of pass_manager.
15499 (register_pass_name): Rename from a function to...
15500 (pass_manager::register_pass_name): ...this method, updating
15501 for renaming of global "name_to_pass_map" to field
15502 "m_name_to_pass_map".
15503 (create_pass_tab): Rename from a function to...
15504 (pass_manager::create_pass_tab): ...this method, updating
15505 for renaming of global "name_to_pass_map" to field.
15506 (get_pass_by_name): Rename from a function to...
15507 (pass_manager::get_pass_by_name): ...this method.
15508 (enable_disable_pass): Convert use of get_pass_by_name to
15509 a method call, locating the pass_manager singleton.
15511 2016-05-06 David Malcolm <dmalcolm@redhat.com>
15513 * genattr-common.c (main): Convert argv from char ** to const char **.
15514 * genattr.c (main): Likewise.
15515 * genattrtab.c (main): Likewise.
15516 * genautomata.c (initiate_automaton_gen): Likewise.
15518 * gencodes.c (main): Likewise.
15519 * genconditions.c (main): Likewise.
15520 * genconfig.c (main): Likewise.
15521 * genconstants.c (main): Likewise.
15522 * genemit.c (main): Likewise.
15523 * genenums.c (main): Likewise.
15524 * genextract.c (main): Likewise.
15525 * genflags.c (main): Likewise.
15526 * genmddeps.c (main): Likewise.
15527 * genopinit.c (main): Likewise.
15528 * genoutput.c (main): Likewise.
15529 * genpeep.c (main): Likewise.
15530 * genpreds.c (main): Likewise.
15531 * genrecog.c (main): Likewise.
15532 * gensupport.c (init_rtx_reader_args_cb): Likewise.
15533 (init_rtx_reader_args): Likewise.
15534 * gensupport.h (init_rtx_reader_args_cb): Likewise.
15535 (init_rtx_reader_args): Likewise.
15536 * gentarget-def.c (main): Likewise.
15537 * read-md.c (read_md_files): Likewise.
15538 * read-md.h (read_md_files): Likewise.
15540 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
15542 * config/i386/i386.md (int cmove peephole2s): Use general_reg_operand
15543 instead of register_and_not_any_fp_reg_operand as operand 0 predicate.
15544 * config/i386/predicates.md (register_and_not_any_fp_reg_operand):
15545 Remove unused predicate.
15546 (register_and_not_fp_reg_operand): Ditto.
15548 2016-05-06 Martin Liska <mliska@suse.cz>
15550 * tree-if-conv.c (ifcvt_split_critical_edges): Use auto_vec
15551 instead of vec as the vector is local to the function.
15553 2016-05-06 Jakub Jelinek <jakub@redhat.com>
15555 * config/i386/sse.md (*<code>v8hi3, *<code>v16qi3): Add
15556 avx512bw alternative.
15558 * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>): Move
15559 before the ashr<mode>3 pattern.
15561 * config/i386/sse.md (*avx2_pmaddwd, *sse2_pmaddwd): Use
15562 v instead of x in vex or maybe_vex alternatives, use
15563 maybe_evex instead of vex in prefix.
15565 * config/i386/sse.md (*vec_extractv4sf_0, *sse4_1_extractps,
15566 *vec_extractv4sf_mem, vec_extract_lo_v16hi, vec_extract_hi_v16hi,
15567 vec_extract_lo_v32qi, vec_extract_hi_v32qi): Use v instead of x
15568 in vex or maybe_vex alternatives, use maybe_evex instead of vex
15571 * config/i386/sse.md (*vec_concatv2sf_sse4_1, *vec_concatv4sf): Use
15572 v instead of x in vex or maybe_vex alternatives, use
15573 maybe_evex instead of vex in prefix.
15575 * config/i386/sse.md (sse_shufps_<mode>, sse_storehps, sse_loadhps,
15576 sse_storelps, sse_movss, avx2_vec_dup<mode>, avx2_vec_dupv8sf_1,
15577 sse2_shufpd_<mode>, sse2_storehpd, sse2_storelpd, sse2_loadhpd,
15578 sse2_loadlpd, sse2_movsd): Use v instead of x in vex or maybe_vex
15579 alternatives, use maybe_evex instead of vex in prefix.
15581 * config/i386/sse.md (vec_interleave_lowv4sf,
15582 *vec_interleave_highv2df, *vec_interleave_lowv2df): Use
15583 v instead of x in vex or maybe_vex alternatives, use
15584 maybe_evex instead of vex in prefix.
15586 * config/i386/sse.md (sse_movhlps, sse_movlhps): Use
15587 v instead of x in vex or maybe_vex alternatives, use
15588 maybe_evex instead of vex in prefix.
15590 * config/i386/sse.md (*avx_cvtpd2dq256_2, *avx_cvtps2pd256_2): Use
15591 v constraint instead of x.
15593 2016-05-06 Nathan Sidwell <nathan@codesourcery.com>
15595 * gimple.c (gimple_call_same_target_p): Unique functions are eq.
15596 * tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
15599 2016-05-06 Richard Biener <rguenther@suse.de>
15601 PR tree-optimization/70948
15602 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
15603 Properly clobber all fields of va_list for __builtin_va_start.
15605 2016-05-06 Yuri Rumyantsev <ysrumyan@gmail.com>
15608 * tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
15609 loop latch destination.
15611 2016-05-06 Martin Liska <mliska@suse.cz>
15613 * tree-ssa-uninit.c: Apply manual changes
15614 to the GNU coding style.
15615 (prune_uninit_phi_opnds): Rename from
15616 prune_uninit_phi_opnds_in_unrealizable_paths.
15618 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
15620 * config/sh/sh.opt (madjust-unroll, minvalid-symbols, msoft-atomic,
15621 mspace): Remove deprecated options.
15622 * doc/invoke.texi (SH options): Remove -mspace.
15624 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
15626 * config/sh/sh.md (ic_invalidate_line_sh4a): Fix insn length.
15628 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
15630 * config/sh/sh.md (*cmpeqsi_t): Remove combine insn pattern and similar
15631 corresponding combine split pattern.
15633 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
15636 * config/sh/predicates.md (long_displacement_mem_operand): New.
15637 * config/sh/sh.md (movsi_i): Allow for SH2A, disallow for any FPU.
15638 Add movi20, movi20s alternatives. Adjust length attribute for
15640 (movsi_ie): Allow for any FPU. Adjust length attribute for
15642 (movsi_i_lowpart): Add movi20, movi20s alternatives. Adjust length
15643 attribute for alternatives.
15644 (*mov<mode>): Use long_displacement_mem_operand for length attribute.
15645 (*movdi_i, movdf_k, movdf_i4, movsf_i, movsf_ie, movsf_ie_ra): Adjust
15646 length attribute for alternatives.
15648 2016-05-06 Richard Biener <rguenther@suse.de>
15650 PR tree-optimization/70960
15651 * tree-if-conv.c (ifcvt_walk_pattern_tree): Handle non-SSA ops.
15653 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
15656 * config/sh/sh.md (*cmp_div0s_7, *cmp_div0s_8): Add div0s variants.
15657 * config/sh/sh.c (sh_rtx_costs): Add another div0s case.
15659 2016-05-06 Marek Polacek <polacek@redhat.com>
15662 * ubsan.c (get_ubsan_type_info_for_type): Remove assert.
15664 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
15667 * config/sh/sh.md (*rotcr): Add another variant.
15669 2016-05-06 Richard Biener <rguenther@suse.de>
15671 PR middle-end/70931
15672 * dwarf2out.c (native_encode_initializer): Skip zero-sized fields.
15674 2016-05-06 Richard Biener <rguenther@suse.de>
15676 PR middle-end/70941
15677 * fold-const.c (split_tree): Always convert to the original type
15680 2016-05-06 Richard Biener <rguenther@suse.de>
15682 * fwprop.c (fwprop): Remove duplicate cleanup_cfg call.
15683 (fwprop_addr): Likewise.
15685 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
15688 * config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p):
15690 * config/i386/i386.c (ix86_standard_x87sse_constant_load_p): New.
15691 * config/i386/i386.md (push mem splitter): Use find_constant_src in
15692 the splitter condition.
15693 (FP load splitter): Use ix86_standard_x87sse_constant_load_p in
15694 the splitter condition.
15695 (FP float_extend load splitter): Ditto.
15697 2016-05-05 Uros Bizjak <ubizjak@gmail.com>
15699 * config/i386/i386.md (peehole2 patterns): Change true_regnum
15700 to REGNO in all peephole2 patterns.
15701 (post-reload splitters): Change true_regnum to REGNO in
15702 post-reload splitters.
15703 (zero_extend splitters): Use general_reg_operand and
15704 nonimmediate_gr_operand predicates.
15706 2016-05-05 Jakub Jelinek <jakub@redhat.com>
15708 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use
15709 v constraint instead of x.
15711 2016-05-05 Alan Modra <amodra@gmail.com>
15714 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
15715 set OPTION_MASK_RELOCATABLE when flag_pic == 2. Set
15716 TARGET_NO_FP_IN_TOC for -mrelocatable.
15717 (MINIMAL_TOC_SECTION_ASM_OP): Remove redundant
15718 TARGET_RELOCATABLE test.
15719 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
15720 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
15721 * config/rs6000/linux64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
15722 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
15723 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
15724 * config/rs6000/freebsd64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
15725 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
15726 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
15727 * config/rs6000/predicates.md (easy_fp_constant): Likewise.
15728 * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
15730 (rs6000_assemble_integer): Update TARGET_RELOCATABLE test.
15731 (rs6000_stack_info): Likewise.
15732 (rs6000_elf_asm_out_constructor): Likewise.
15733 (rs6000_elf_asm_out_destructor): Likewise.
15734 (rs6000_elf_declare_function_name): Likewise.
15735 * config/rs6000/rs6000.md (load_toc_aix_di): Likewise.
15736 * config/rs6000/rs6000.h (MASK_RELOCATABLE, MASK_MINIMAL_TOC):
15739 2016-05-05 Alan Modra <amodra@gmail.com>
15741 * config/rs6000/rs6000.c (rs6000_frame_related): Rewrite.
15743 2016-05-05 Alan Modra <amodra@gmail.com>
15745 * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
15746 out-of-line gpr restore for one or two regs if that would add
15749 2016-05-04 Uros Bizjak <ubizjak@gmail.com>
15752 * config/i386/i386.md
15753 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df peephole2):
15754 Change to post-epilogue_completed late splitter. Use sse_reg_operand
15755 as operand 0 predicate.
15756 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf peephole2):
15758 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2):
15759 Ditto. Emit the pattern using RTX.
15761 (TARGET_USE_VECTOR_FP_CONVERTS float_extend sf->df splitter):
15762 Use sse_reg_opreand as operand 0 predicate. Do not use true_regnum in
15763 the post-reload splitter. Use lowpart_subreg instead of gen_rtx_REG.
15764 (TARGET_USE_VECTOR_FP_CONVERTS float_truncate df->sf splitter):
15766 (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use
15767 sse_reg_operand as operand 0 predicate.
15769 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_extend sf->df peephole2):
15770 Use sse_reg_opreand as operand 0 predicate. Use lowpart_subreg
15771 instead of gen_rtx_REG.
15772 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_truncate sf->df peephole2):
15775 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
15777 * function.c (emit_use_return_register_into_block): Delete.
15778 (gen_return_pattern): Delete.
15779 (emit_return_into_block): Delete.
15780 (active_insn_between): Delete.
15781 (convert_jumps_to_returns): Delete.
15782 (emit_return_for_exit): Delete.
15783 (thread_prologue_and_epilogue_insns): Delete all code dealing with
15784 simple_return for shrink-wrapped blocks.
15785 * shrink-wrap.c (try_shrink_wrapping): Insert simple_return at the
15786 end of blocks that need one.
15787 (get_unconverted_simple_return): Delete.
15788 (convert_to_simple_return): Delete.
15789 * shrink-wrap.c (get_unconverted_simple_return): Delete declaration.
15790 (convert_to_simple_return): Ditto.
15792 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
15794 * cfgcleanup.c (bb_is_just_return): New function.
15795 (try_optimize_cfg): Simplify jumps to return, branches to return,
15796 and branches around return.
15798 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
15800 * cfgcleanup.c (try_simplify_condjump): Don't try to simplify a
15801 branch to a return.
15803 2016-05-04 Jakub Jelinek <jakub@redhat.com>
15807 * tree-core.h (enum operand_equal_flag): Add OEP_HASH_CHECK.
15808 * tree.c (inchash::add_expr): If !IS_EXPR_CODE_CLASS (tclass),
15809 assert flags & OEP_HASH_CHECK, instead of asserting it
15810 never happens. Handle TARGET_EXPR.
15811 * fold-const.c (operand_equal_p): For hash verification,
15812 or in OEP_HASH_CHECK into flags.
15814 2016-05-04 Eric Botcazou <ebotcazou@adacore.com>
15816 * tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
15818 (compute_samebase_partition_bases): Fix typo.
15820 2016-05-04 Jakub Jelinek <jakub@redhat.com>
15822 * config/i386/sse.md (vec_interleave_highv8sf,
15823 vec_interleave_lowv8sf, vec_interleave_highv4df,
15824 vec_interleave_lowv4df): Remove constraints from expanders.
15826 * config/i386/sse.md (sse2_movq128): Use v constraint instead of x.
15828 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
15830 * tree-inline.c (expand_call_inline): Fix path dealing with
15831 making lhs of call statement undefined.
15833 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
15835 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
15836 Check availability on NODE, too.
15837 * cgraph.h (symtab_node::call_for_symbol_and_aliases): Likewise.
15838 (cgraph_node::call_for_symbol_and_aliases): Likewise.
15839 (varpool_node::call_for_symbol_and_aliase): Likewise.
15840 * ipa-pure-const.c (add_new_function): Analyze all bodies.
15841 (propagate_pure_const): Propagate across interposable functions, too.
15842 (skip_function_for_local_pure_const): Do not skip interposable bodies
15844 (pass_local_pure_const::execute): Update.
15846 2016-05-04 Marek Polacek <polacek@redhat.com>
15848 * doc/invoke.texi: Document -Wdangling-else.
15850 2016-05-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
15852 * config.gcc: Error out when conflicting multilib is detected. Do not
15853 loop over multilibs since no combination is legal.
15855 2016-05-04 Alan Modra <amodra@gmail.com>
15857 * config/rs6000/rs6000.h (PIC_OFFSET_TABLE_REGNUM): Correct.
15858 * config/rs6000/sysv4.h (TARGET_TOC): Simplify.
15859 * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
15862 2016-05-04 Matthew Fortune <matthew.fortune@imgtec.com>
15864 * config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
15865 Clean up p5600 comments.
15867 2016-05-04 Richard Biener <rguenther@suse.de>
15869 * match.pd: Add BIT_FIELD_REF canonicalizations and vector
15870 constructor simplifications.
15871 * fold-const.c (fold_ternary_loc): Remove duplicate functionality here.
15873 2016-05-04 Oleg Endo <olegendo@gcc.gnu.org>
15875 * config/sh/predicates (post_inc_mem, pre_dec_mem): New predicates.
15876 * config/sh/sh-protos.h (sh_find_set_of_reg): Return null result if
15877 result.set_rtx is null instead of aborting.
15878 * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT):
15880 (USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT): Enable for SH2A.
15881 * config/sh/sh.md (*extend<mode>si2_predec, *mov<mode>_load_predec,
15882 *mov<mode>_store_postinc): New patterns.
15884 2016-05-04 Marc Glisse <marc.glisse@inria.fr>
15886 * match.pd ((A | B) & (A | C)): Generalize to BIT_XOR_EXPR. Mark
15887 as commutative. Check both conversions are NOP.
15888 ((A & B) OP (C & B)): Remove.
15890 2016-05-04 Alan Modra <amodra@gmail.com>
15892 * combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.
15894 2016-05-04 Alan Modra <amodra@gmail.com>
15897 * config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
15898 when cr2,3,4 are all fixed regs.
15900 2016-05-04 Bernd Schmidt <bschmidt@redhat.com>
15902 PR rtl-optimization/57193
15903 * opts.c (default_options_table): Revert OPT_frename_registers change.
15904 * doc/invoke.texi (-frename-registers, -O2): Likewise.
15906 2016-05-03 Martin Sebor <msebor@redhat.com>
15909 * builtins.c (fold_builtin_FILE): New function.
15910 (fold_builtin_FUNCTION, fold_builtin_LINE): New functions.
15911 (fold_builtin_0): Call them.
15912 * gimplify.c (gimplify_call_expr): Remove the handling of
15913 BUILT_IN_FILE, BUILT_IN_FUNCTION, and BUILT_IN_LINE.
15916 * doc/extend.texi (Other Builtins): Update __builtin_FILE,
15917 __builtin_FUNCTION, and __builtin_LINE to reflect they yield
15921 * doc/extend.texi (Function Names as Strings): Update __func__,
15922 __FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
15925 2016-05-03 Jakub Jelinek <jakub@redhat.com>
15926 Richard Biener <rguenther@suse.de>
15928 PR tree-optimization/70916
15929 * tree-if-conv.c: Include cfganal.h.
15930 (pass_if_conversion::execute): Call connect_infinite_loops_to_exit
15931 and remove_fake_exit_edges around the optimization pass.
15933 2016-05-03 Jan Hubicka <hubicka@ucw.cz>
15935 * cgraph.c (symbol_table::create_edge): Set inline_failed.
15936 (cgraph_edge::make_direct): Likewise.
15937 (cgraph_edge::dump_edge_flags): Dump call_stmt_cannot_inline_p.
15938 * cgraphclones.c (duplicate_thunk_for_node): Set inline_failed.
15939 * cif-code.def (CIF_LTO_MISMATCHED_DECLARATIONS): New code
15940 (CIF_THUNK): New code.
15941 * ipa-inline-analysis.c (initialize_inline_failed): Preserve
15942 CIF_FINAL_ERROR codes; do not deal with call_stmt_cannot_inline_p.
15943 (compute_inline_parameters): Set inline_failed for thunks.
15944 (inline_analyze_function): Cleanup.
15945 * ipa-inline.c (can_inline_edge_p): Do not deal with
15946 call_stmt_cannot_inline_p.
15947 (can_early_inline_edge_p): Likewise.
15948 (early_inliner): Initialize inline_failed.
15949 * lto-cgraph.c (lto_output_edge): Sanity check inline_failed.
15951 2016-05-03 Uros Bizjak <ubizjak@gmail.com>
15953 * config/i386/predicates.md (x87nonimm_ssenomem_operand): Rename
15954 from nonimm_ssenomem_operand.
15955 (nonimm_ssenomem_operand): New predicate.
15956 * config/i386/i386.md (extendsfdf2): Use nonimm_ssenomem_operand
15957 as operand 0 predicate.
15958 (*extendsfdf2): Merge from *extendsfdf2_mixed and *extendsfdf2_i387.
15959 Disable unsupported alternatives using "enabled" attribute.
15960 Use register_ssemem_operand as operand 0 predicate.
15961 (*fop_<mode>_1): Use x87nonimm_ssenomem_operand as operand 1 predicate.
15963 2016-05-03 Marek Polacek <polacek@redhat.com>
15966 * input.c (expansion_point_location): New function.
15967 * input.h (expansion_point_location): Declare.
15969 2016-05-03 Pierre-Marie de Rodat <derodat@adacore.com>
15971 * dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
15972 occurence with frame_offset_ ones.
15974 2016-05-03 Alan Modra <amodra@gmail.com>
15976 PR rtl-optimization/70890
15977 * ira.c (combine_and_move_insns): When moving def_insn, remove
15978 equivs on use_insn.
15980 2016-05-03 Dominik Vogt <vogt@linux.vnet.ibm.com>
15982 * config/s390/s390.md ("*r<noxa>sbg_<mode>_sll")
15983 ("*r<noxa>sbg_<mode>_srl"): New define_insns.
15984 ("*r<noxa>sbg_<mode>_srl_bitmask"): Rename by adding "_bitmask".
15985 ("*r<noxa>sbg_<mode>_sll_bitmask"): Likewise.
15987 2016-05-03 Alan Modra <amodra@gmail.com>
15989 * config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
15990 for SAVE_MULTIPLE/STORE_MULTIPLE.
15992 2016-05-03 Jakub Jelinek <jakub@redhat.com>
15994 * config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
15995 *truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead of x.
15997 2016-05-03 Richard Biener <rguenther@suse.de>
15999 * gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
16001 (gimplify_arg): Likewise.
16002 * gimplify.c (gimplify_expr): Add overload with allow_ssa parameter,
16003 re-writing the result to a decl if required.
16004 (internal_get_tmp_var): Add allow_ssa parameter
16005 and override into_ssa with it.
16006 (get_formal_tmp_var): Adjust.
16007 (get_initialized_tmp_var): Add allow_ssa parameter.
16008 (gimplify_arg): Add allow_ssa parameter and avoid generating
16009 SSA names for the result false.
16010 (gimplify_call_expr): If the call may return twice do not
16011 gimplify parameters into SSA.
16012 (prepare_gimple_addressable): Do not allow an SSA name as temporary.
16013 (gimplify_modify_expr): Adjust assert. For noreturn calls
16014 with a SSA name LHS adjust its def.
16015 (gimplify_save_expr): Do not allow an SSA name as save-expr result.
16016 (gimplify_one_sizepos): Do not allow an SSA name as a sizepos.
16017 (gimplify_body): Init GIMPLE SSA data structures and gimplify into-SSA.
16018 (gimplify_scan_omp_clauses): Make sure OMP_CLAUSE_SIZE is not
16019 an SSA name. Likewise for OMP_CLAUSE_REDUCTION operands.
16020 (gimplify_omp_for): Likewise for OMP_CLAUSE_DECL. Likewise
16021 for OMP_FOR_COND, OMP_FOR_INCR and OMP_CLAUSE_LINEAR_STEP.
16022 (optimize_target_teams): Do not allow SSA names for clause operands.
16023 (gimplify_expr): Likewise for where we mark the result addressable.
16024 * passes.def (pass_init_datastructures): Remove.
16025 * tree-into-ssa.c (mark_def_sites): Ignore existing SSA names.
16026 (rewrite_stmt): Likewise.
16027 * tree-inline.c (initialize_cfun): Properly transfer SSA state.
16028 (replace_locals_op): Replace SSA names.
16029 (copy_gimple_seq_and_replace_locals): Init src_cfun.
16030 * gimple-low.c (lower_builtin_setjmp): Deal with SSA.
16031 * cgraph.c (release_function_body): Free CFG annotations only
16032 when we have a CFG. Simplify.
16033 * gimple-fold.c (gimplify_and_update_call_from_tree): Use
16034 force_gimple_operand instead of get_initialized_tmp_var.
16035 * tree-pass.h (make_pass_init_datastructures): Remove.
16036 * tree-ssa.c (execute_init_datastructures): Remove.
16037 (pass_data_init_datastructures): Likewise.
16038 (class pass_init_datastructures): Likewise.
16039 (make_pass_init_datastructures): Likewise.
16040 * omp-low.c (create_omp_child_function): Init SSA data structures.
16041 (grid_expand_target_grid_body): Likewise.
16042 * tree-cfg.c (move_block_to_fn): Double-check the DEF is an SSA
16043 name before adding it to names_to_release.
16044 (remove_bb): Always release SSA defs.
16045 * tree-ssa-ccp.c (get_default_value): Check SSA_NAME_VAR
16046 before dereferencing it.
16047 * cgraphunit.c (init_lowered_empty_function): Always
16048 int SSA data structures.
16049 * tree-ssanames.c (release_defs): Remove assert that we are in
16051 * trans-mem.c (diagnose_tm_1): Handle SSA name function.
16053 2016-05-03 Jakub Jelinek <jakub@redhat.com>
16054 Uros Bizjak <ubizjak@gmail.com>
16056 PR rtl-optimization/70467
16057 * config/i386/predicates.md (x86_64_hilo_int_operand,
16058 x86_64_hilo_general_operand): New predicates.
16059 * config/i386/constraints.md (Wd): New constraint.
16060 * config/i386/i386.md (mode attr di): Use Wd instead of e.
16061 (general_hilo_operand): New mode attr.
16062 (add<mode>3, sub<mode>3): Use <general_hilo_operand>
16063 instead of <general_operand>.
16064 (*add<dwi>3_doubleword, *sub<dwi>3_doubleword): Use
16065 x86_64_hilo_general_operand instead of <general_operand>.
16067 2016-05-03 Jakub Jelinek <jakub@redhat.com>
16069 PR tree-optimization/70916
16070 * tree-if-conv.c (constant_or_ssa_name): Removed.
16071 (fold_build_cond_expr): Use is_gimple_val instead of
16072 constant_or_ssa_name.
16074 PR tree-optimization/70916
16075 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
16076 if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.
16079 * tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h.
16080 (optimize_atomic_bit_test_and): New function.
16081 (pass_fold_builtins::execute): Use it.
16082 * optabs.def (atomic_bit_test_and_set_optab,
16083 atomic_bit_test_and_complement_optab,
16084 atomic_bit_test_and_reset_optab): New optabs.
16085 * internal-fn.def (ATOMIC_BIT_TEST_AND_SET,
16086 ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_BIT_TEST_AND_RESET): New ifns.
16087 * builtins.h (expand_ifn_atomic_bit_test_and): New prototype.
16088 * builtins.c (expand_ifn_atomic_bit_test_and): New function.
16089 * internal-fn.c (expand_ATOMIC_BIT_TEST_AND_SET,
16090 expand_ATOMIC_BIT_TEST_AND_COMPLEMENT,
16091 expand_ATOMIC_BIT_TEST_AND_RESET): New functions.
16092 * doc/md.texi (atomic_bit_test_and_set@var{mode},
16093 atomic_bit_test_and_complement@var{mode},
16094 atomic_bit_test_and_reset@var{mode}): Document.
16095 * config/i386/sync.md (atomic_bit_test_and_set<mode>,
16096 atomic_bit_test_and_complement<mode>,
16097 atomic_bit_test_and_reset<mode>): New expanders.
16098 (atomic_bit_test_and_set<mode>_1,
16099 atomic_bit_test_and_complement<mode>_1,
16100 atomic_bit_test_and_reset<mode>_1): New insns.
16102 2016-05-03 Richard Sandiford <richard.sandiford@arm.com>
16104 PR rtl-optimization/70687
16105 * combine.c (change_zero_ext): Check for scalar modes. Use wide_int
16106 instead of unsigned HOST_WIDE_INT.
16108 2016-05-03 Bernd Schmidt <bschmidt@redhat.com>
16110 PR rtl-optimization/44281
16111 * hard-reg-set.h (struct target_hard_regs): New field
16112 x_fixed_nonglobal_reg_set.
16113 (fixed_nonglobal_reg_set): New macro.
16114 * reginfo.c (init_reg_sets_1): Initialize it.
16115 * ira.c (setup_alloc_regs): Use fixed_nonglobal_reg_set instead
16117 * df-scan.c (df_insn_refs_collect): Asms may reference global regs.
16119 2016-05-03 Bin Cheng <bin.cheng@arm.com>
16121 PR tree-optimization/56541
16122 * doc/invoke.texi (@item max-tree-if-conversion-phi-args): New item.
16123 * params.def (PARAM_MAX_TREE_IF_CONVERSION_PHI_ARGS): new param.
16124 * tree-if-conv.c (MAX_PHI_ARG_NUM): new macro.
16125 (any_complicated_phi): new static variable.
16126 (aggressive_if_conv): delete.
16127 (if_convertible_phi_p): support phis with more than two arguments.
16128 (if_convertible_bb_p): remvoe check on aggressive_if_conv and
16129 critical pred edges.
16130 (ifcvt_split_critical_edges): support phis with more than two
16131 arguments by checking new parameter. only split critical edges
16133 (tree_if_conversion): handle simd pragma marked loop using new
16134 local variable aggressive_if_conv. check any_complicated_phi.
16136 2016-05-03 Bin Cheng <bin.cheng@arm.com>
16138 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
16141 2016-05-03 Bin Cheng <bin.cheng@arm.com>
16143 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
16146 2016-05-03 Oleg Endo <olegendo@gcc.gnu.org>
16148 * config/sh/sh.md (udivsi3, divsi3, mulsi3): Simplify.
16149 (mulhisi3, umulhisi3, (smulsi3_highpart, umulsi3_highpart): Convert to
16150 define_insn_and_split.
16151 (mulsi3_i): New define_insn_and_split.
16152 (mulsi3_call): Convert to define_insn.
16153 (mulsidi3, mulsidi3_compact, umulsidi3, umulsidi3_compact):
16154 Remove constraints.
16156 2016-05-02 Michael Meissner <meissner@linux.vnet.ibm.com>
16158 * machmode.h (mode_complex): Add support to give the complex mode
16160 (GET_MODE_COMPLEX_MODE): Likewise.
16161 * stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
16162 stored by build_complex_type and gfc_build_complex_type instead of
16163 trying to figure out the appropriate mode based on the size. Raise
16164 an assertion error, if the type was not set.
16165 * genmodes.c (struct mode_data): Add field for the complex type of
16167 (blank_mode): Likewise.
16168 (make_complex_modes): Remember the complex mode created in the
16170 (emit_mode_complex): Write out the mode_complex array to map a
16171 type mode to the complex version.
16172 (emit_insn_modes_c): Likewise.
16173 * tree.c (build_complex_type): Set the complex type to use before
16174 calling layout_type.
16175 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
16176 support for __float128 complex datatypes.
16177 (rs6000_hard_regno_mode_ok): Likewise.
16178 (rs6000_setup_reg_addr_masks): Likewise.
16179 (rs6000_complex_function_value): Likewise.
16180 * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
16181 __float128 and __ibm128 complex.
16182 (FLOAT128_IBM_P): Likewise.
16183 (ALTIVEC_ARG_MAX_RETURN): Likewise.
16184 * doc/extend.texi (Additional Floating Types): Document that
16185 -mfloat128 must be used to enable __float128. Document complex
16186 __float128 and __ibm128 support.
16188 2016-05-02 Jakub Jelinek <jakub@redhat.com>
16191 * gimple.c (gimple_builtin_call_types_compatible_p): Allow
16192 char/short arguments promoted to int because of promote_prototypes.
16194 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
16196 * config/i386/predicates.md (register_ssemem_operand): New predicate.
16197 * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Merge from
16198 *cmpi<FPCMP:unord><MODEF:mode>_mixed and
16199 *cmpi<FPCMP:unord><X87MODEF:mode>_i387. Disable unsupported
16200 alternatives using "enabled" attribute. Use register_ssemem_operand
16201 as operand 1 predicate.
16202 (*cmpi<unord>xf_i387): Split XFmode pattern from
16203 *cmpi<FPCMP:unord><X87MODEF:mode>_i387.
16204 (*absneg<mode>2): Merge from *absneg<mode>2_mixed and
16205 *absneg<mode>2_i387. Disable unsupported alternatives using
16206 "enabled" attribute.
16207 (*absnegxf2_i387): Split XFmode pattern from *absneg<mode>2_i387.
16209 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
16211 * omp-low.c (lower_oacc_head_tail): Assert there is at least one
16213 (oacc_loop_process): Check mask for loop termination.
16215 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
16217 * cif-code.def (CIF_THUNK): Add.
16218 * ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
16221 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
16223 * ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
16224 (dump_inline_summary): Dump it.
16225 (fp_expression_p): New predicate.
16226 (estimate_function_body_sizes): Use it.
16227 (inline_merge_summary): Merge fp_expressions.
16228 (inline_read_section): Read fp_expressions.
16229 (inline_write_summary): Write fp_expressions.
16230 * ipa-inline.c (can_inline_edge_p): Permit inlining across fp math
16231 codegen boundary if either caller or callee is !fp_expressions.
16232 * ipa-inline.h (inline_summary): Add fp_expressions.
16233 * ipa-inline-transform.c (inline_call): When inlining !fp_expressions
16234 to fp_expressions be sure the fp generation flags are updated.
16236 2016-05-02 Jakub Jelinek <jakub@redhat.com>
16238 PR rtl-optimization/70467
16239 * cse.c (cse_insn): Handle no-op MEM moves after folding.
16241 PR rtl-optimization/70467
16242 * ipa-pure-const.c (check_call): Handle internal calls even in
16243 ipa mode like in local mode.
16245 2016-05-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
16247 * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.
16249 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
16251 * match.pd (X u< X, X u> X): New transformations.
16253 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
16255 * flag-types.h (enum warn_strict_overflow_code): Move ...
16256 * coretypes.h: ... here.
16257 * fold-const.h (fold_overflow_warning): Declare.
16258 * fold-const.c (fold_overflow_warning): Make non-static.
16259 (fold_comparison): Move the transformation of X +- C1 CMP C2
16260 into X CMP C2 -+ C1 ...
16261 * match.pd: ... here.
16262 * gimple-fold.c (fold_stmt_1): Protect with
16263 fold_defer_overflow_warnings.
16265 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
16267 * omp-low.c (struct oacc_loop): Add 'inner' field.
16268 (new_oacc_loop_raw): Initialize it to zero.
16269 (oacc_loop_fixed_partitions): Initialize it.
16270 (oacc_loop_auto_partitions): Partition outermost loop to outermost
16271 available partitioning.
16273 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
16275 * config/arc/arc.md (mulsidi3): Change operand 0 predicate to
16277 (umulsidi3): Likewise.
16278 (indirect_jump): Fix jump instruction assembly patterns.
16280 2016-05-02 Thomas Schwinge <thomas@codesourcery.com>
16283 * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
16284 (nvptx_function_value): Assert non-NULL cfun.
16286 2016-05-02 Eric Botcazou <ebotcazou@adacore.com>
16288 PR rtl-optimization/70886
16289 * sched-deps.c (estimate_dep_weak): Canonicalize cselib values.
16291 * cselib.h (rtx_equal_for_cselib_1): Declare.
16292 (rtx_equal_for_cselib_p: New inline function.
16293 * cselib.c (rtx_equal_for_cselib_p): Delete.
16294 (rtx_equal_for_cselib_1): Make public.
16296 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
16298 * config/i386/predicates.md (nonimm_ssenomem_operand): New predicate.
16299 (register_mixssei387nonimm_operand): Remove predicate.
16300 * config/i386/i386.md (*fop_<mode>_comm): Merge from
16301 *fop_<mode>_comm_mixed and *fop_<mode>_comm_i387. Disable unsupported
16302 alternatives using "enabled" attribute. Also check X87_ENABLE_ARITH
16303 for TARGET_MIX_SSE_I387 alternatives.
16304 (*fop_<mode>_1): Merge from *fop_<mode>_1_mixed and *fop_<mode>_1_i387.
16305 Disable unsupported alternatives using "enabled" attribute. Use
16306 nonimm_ssenomem_operand as operand 1 predicate. Also check
16307 X87_ENABLE_ARITH for TARGET_MIX_SSE_I387 alternatives.
16309 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
16311 * tree.c (cst_and_fits_in_hwi): Simplify.
16313 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
16315 * tree.h (wi::to_wide): New function.
16316 * expr.c (expand_expr_real_1): Use wi::to_wide.
16317 * fold-const.c (int_const_binop_1): Likewise.
16318 (extract_muldiv_1): Likewise.
16320 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
16322 * wide-int.h: Update offset_int and widest_int documentation.
16323 (WI_SIGNED_SHIFT_RESULT): New macro.
16324 (wi::binary_shift): Define signed_shift_result_type for
16325 shifts on offset_int- and widest_int-like types.
16326 (generic_wide_int): Support <<= and >>= if << and >> are supported.
16327 * tree.h (int_bit_position): Use shift operators instead of wi::
16329 * alias.c (adjust_offset_for_component_ref): Likewise.
16330 * expr.c (get_inner_reference): Likewise.
16331 * fold-const.c (fold_comparison): Likewise.
16332 * gimple-fold.c (fold_nonarray_ctor_reference): Likewise.
16333 * gimple-ssa-strength-reduction.c (restructure_reference): Likewise.
16334 * tree-dfa.c (get_ref_base_and_extent): Likewise.
16335 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
16336 (stmt_kills_ref_p): Likewise.
16337 * tree-ssa-ccp.c (bit_value_binop_1): Likewise.
16338 * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
16339 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
16340 (ao_ref_init_from_vn_reference): Likewise.
16342 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
16344 * wide-int.h: Update offset_int and widest_int documentation.
16345 (WI_SIGNED_BINARY_PREDICATE_RESULT): New macro.
16346 (wi::binary_traits): Allow ordered comparisons between offset_int and
16347 offset_int, between widest_int and widest_int, and between either
16348 of these types and basic C types.
16349 (operator <, <=, >, >=): Define for the same combinations.
16350 * tree.h (tree_int_cst_lt): Use comparison operators instead
16351 of wi:: comparisons.
16352 (tree_int_cst_le): Likewise.
16353 * gimple-fold.c (fold_array_ctor_reference): Likewise.
16354 (fold_nonarray_ctor_reference): Likewise.
16355 * gimple-ssa-strength-reduction.c (record_increment): Likewise.
16356 * tree-affine.c (aff_comb_cannot_overlap_p): Likewise.
16357 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Likewise.
16358 * tree-sra.c (completely_scalarize): Likewise.
16359 * tree-ssa-alias.c (stmt_kills_ref_p): Likewise.
16360 * tree-ssa-reassoc.c (extract_bit_test_mask): Likewise.
16361 * tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
16362 (check_for_binary_op_overflow): Likewise.
16363 (search_for_addr_array): Likewise.
16364 * ubsan.c (ubsan_expand_objsize_ifn): Likewise.
16366 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
16368 * config/arc/arc.c (arc_preferred_simd_mode): Remove enum keyword.
16369 (arc_save_restore): Likewise.
16370 (arc_dwarf_register_span): Likewise.
16371 (arc_output_pic_addr_const): Initialize suffix variable.
16373 2016-05-02 Martin Liska <mliska@suse.cz>
16375 * symbol-summary.h (function_summary::function_summary):
16376 Remove checking assert for all cgraph nodes.
16377 (function_summary::get): Check summary_uid.
16378 (symtab_insertion): Check summary_uid.
16380 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
16382 * config/arc/arc-protos.h (compact_memory_operand_p): Declare.
16383 * config/arc/arc.c (arc_output_commutative_cond_exec): Consider
16384 bmaskn instruction.
16385 (arc_dwarf_register_span): Remove enum keyword.
16386 (compact_memory_operand_p): New function.
16387 * config/arc/arc.h (reg_class): Add code density register classes.
16388 (REG_CLASS_NAMES): Likewise.
16389 (REG_CLASS_CONTENTS): Likewise.
16390 * config/arc/arc.md (*movqi_insn): Add code density instructions.
16391 (*movhi_insn, *movsi_insn, *movsf_insn): Likewise.
16392 (*extendhisi2_i, andsi3_i, cmpsi_cc_insn_mixed): Likewise.
16393 (*cmpsi_cc_c_insn, *movsi_ne): Likewise.
16394 * config/arc/constraints.md (C2p, Uts, Cm1, Cm3, Ucd): New
16396 (h, Rcd, Rsd, Rzd): New register constraints.
16397 (T): Use compact_memory_operand_p function.
16398 * config/arc/predicates.md (compact_load_memory_operand): Remove.
16400 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
16402 * config/sh/sh.md (*negnegt, *movtt): Remove.
16404 2016-05-02 Marek Polacek <polacek@redhat.com>
16405 Tom de Vries <tom@codesourcery.com>
16407 PR tree-optimization/70700
16408 * tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids
16409 bigger than FIRST_REF_NODE.
16411 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
16414 * config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4,
16416 (prepare_cbranch_operands): Don't use scratch register. Assume that
16417 function is used when pseudos can be created.
16418 (expand_cbranchdi4): Likewise. Remove unused TARGET_CMPEQDI_T paths.
16419 * config/sh/sh.md (cbranchsi4): Allow only when pseudos can be created.
16420 (cbranchdi4, cbranchdi4_i): Simplify to single cbranchdi4
16421 define_expand. Allow it only when pseudos can be created.
16422 * config/sh/sh.opt (mcbranchdi, mcmpeqdi): Delete.
16424 2016-05-01 Uros Bizjak <ubizjak@gmail.com>
16426 * config/i386/constraints.md (BC): Only allow -1 operands.
16427 * config/i386/sse.md (mov<mode>_internal): Add (v,C) alternative.
16428 Add "enabled" attribute. Update XI mode attribute calculation.
16429 * config/i386/i386.md (*movxi_internal_avx512f): Add (v,C) alternative.
16430 (*movoi_internal_avx): Update XI mode attribute calculation.
16431 (*movti_internal): Ditto.
16433 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
16435 * config/sh/sh.md (push, pop, ic_invalidate_line, cstoresi4, cstoredi4,
16436 cstoresf4, cstoredf4, fix_truncsfsi2): Remove constraints.
16438 2016-05-01 Eric Botcazou <ebotcazou@adacore.com>
16440 * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Do not use switch
16441 statement on instruction code. Remove trailing spaces.
16442 (altivec_expand_stv_builtin): Likewise.
16444 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
16446 * config/sh/sh.h (TARGET_SH4): Remove and use default implementation.
16447 (TARGET_FPU_DOUBLE): Simplify.
16448 (BASE_ARG_REG, DOUBLE_TYPE_SIZE, OPTIMIZE_MODE_SWITCHING): Replace
16449 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions with 'TARGET_FPU_DOUBLE'.
16450 * config/sh/sh.c: Replace 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions
16451 with 'TARGET_FPU_DOUBLE'.
16452 * config/sh/sh.md: Likewise.
16454 2016-05-01 Yoshinori Sato <ysato@users.sourceforge.jp>
16456 * config/sh/linux.h (SH_DIV_STRATEGY_DEFAULT,
16457 SH_DIV_STR_FOR_SIZE): Remove.
16458 * config/sh/netbsd-elf.h (SH_DIV_STRATEGY_DEFAULT,
16459 SH_DIV_STR_FOR_SIZE): Remove.
16461 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
16463 * config/sh/predicates.md (any_register_operand, zero_extend_operand,
16464 logical_reg_operand): Delete.
16465 (arith_operand, arith_reg_dest, arith_or_int_operand, cmpsi_operand,
16466 arith_reg_or_0_operand, arith_reg_or_0_or_1_operand, logical_operand,
16467 logical_and_operand, movsrc_no_disp_mem_operand): Rewrite using
16468 match_operand and match_test.
16469 (sh_const_vec, sh_1el_vec): Remove redundant checks. Declare local
16470 variables on their first use. Return bool values.
16471 * config/sh/sh.h (LOAD_EXTEND_OP): Update comment.
16472 * config/sh/sh.md (andsi3, iorsi3): Use arith_reg_dest for result and
16473 arith_reg_operand for input operand. Remove empty constraints.
16475 (*xorsi3_compact): Rename to xorsi3.
16476 (zero_extend<mode>si2): Use arith_reg_operand for input operand.
16477 (*zero_extend<mode>si2_disp_mem): Update comment.
16480 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
16482 * config/sh/t-sh: Remove SH5 support.
16483 * config.gcc: Likewise.
16484 * configure: Likewise.
16486 2016-04-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16488 * config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus.
16490 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
16492 * config/sh/sh.c (register_sh_passes, sh_option_override,
16493 sh_print_operand, prepare_move_operands,
16494 sh_can_follow_jump): Remove TARGET_SH1 checks.
16495 * config/sh/sh.h (TARGET_VARARGS_PRETEND_ARGS, VALID_REGISTER_P,
16496 PROMOTE_MODE): Likewise.
16497 * config/sh/sh.md (adddi3, addsi3, subdi3, subsi3, andsi3,
16500 2016-04-30 Alan Modra <amodra@gmail.com>
16502 * config/rs6000/rs6000.c (rs6000_savres_strategy): Force inline
16503 restoring when fixed_reg_p, but allow out-of-line or stmw save.
16504 Check for user regs later to avoid unnecessary looping over regs.
16505 Merge user reg check with non-saved reg check. Don't force
16506 inline VR restore when static chain used.
16507 (rs6000_frame_related): Omit eh_frame info for user regs when
16509 (fixed_regs_p): Delete.
16511 2016-04-30 Alan Modra <amodra@gmail.com>
16513 * config/rs6000/rs6000.c (SAVRES_MULTIPLE): Replace with..
16514 (SAVE_STRATEGY, REST_STRATEGY): ..this. Renumber and sort enum.
16517 2016-04-30 Alan Modra <amodra@gmail.com>
16520 * config/rs6000/rs6000.c (fixed_reg_p): New function.
16521 (fixed_regs_p): Rename from global_regs_p. Call fixed_reg_p.
16524 2016-04-30 Alan Modra <amodra@gmail.com>
16526 * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
16527 Remove redundant PIC_OFFSET_TABLE_REGNUM test. Replace with
16528 flag_pic test for Darwin.
16530 2016-04-30 Alan Modra <amodra@gmail.com>
16532 * regs.h (struct reg_info_t): Delete freq_calls_crossed and
16533 throw_calls_crossed.
16534 (REG_FREQ_CALLS_CROSSED): Delete.
16535 (REG_N_THROWING_CALLS_CROSSED): Delete.
16536 * regstat.c (regstat_bb_compute_ri): Don't calculate
16537 REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED.
16538 (dump_reg_info): Don't print call cross frequency.
16539 * ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED
16540 and REG_N_THROWING_CALLS_CROSSED.
16542 2016-04-30 Alan Modra <amodra@gmail.com>
16544 * regs.h (struct reg_info_t): Delete live_length.
16545 (REG_LIVE_LENGTH): Delete macro.
16546 * regstat.c (regstat_bb_compute_ri): Delete artificial_uses,
16547 local_live, local_processed and local_live_last_luid params.
16548 Replace bb_index param with bb. Don't set REG_LIVE_LENGTH.
16550 (regstat_compute_ri): Adjust for above. Don't set
16552 (dump_reg_info): Don't print live length.
16553 * ira.c (update_equiv_regs): Replace test of REG_LIVE_LENGTH
16554 with test of setjmp_crosses. Don't set REG_LIVE_LENGTH.
16555 Localize loop_depth var.
16557 2016-04-30 Alan Modra <amodra@gmail.com>
16559 * ira.c (enum valid_equiv): New.
16560 (validate_equiv_mem): Return enum.
16561 (update_equiv_mem): Create replacement in more cases.
16562 (add_store_equivs): Update validate_equiv_mem call.
16564 2016-04-30 Alan Modra <amodra@gmail.com>
16566 * ira.c (combine_and_move_insns): Rather than scanning insns,
16567 use DF infrastucture to find use and def insns.
16569 2016-04-30 Alan Modra <amodra@gmail.com>
16571 ira.c (combine_and_move_insns): Move invariant conditions..
16572 (ira.c): ..to here. Call combine_and_move_insns before
16573 add_store_equivs. Call grow_reg_equivs later. Allocate
16574 req_equiv later using max_reg_num() rather than global max_regno.
16575 (contains_replace_regs): Delete.
16576 (add_store_equivs): Remove contains_replace_regs test.
16578 2016-04-30 Alan Modra <amodra@gmail.com>
16580 * ira.c (struct equiv_mem_data): New.
16581 (equiv_mem, equiv_mem_modified): Delete static vars.
16582 (validate_equiv_mem_from_store): Use "data" param to communicate..
16583 (validate_equiv_mem): ..from here.
16585 2016-04-30 Alan Modra <amodra@gmail.com>
16587 * ira.c (add_store_equivs, combine_and_move_insns): New functions,
16589 (update_reg_equivs): ..here. Move allocation and freeing of
16590 reg_equiv, and calls to grow_reg_equivs, init_alias_analysis,
16591 end_alias_analysis to..
16594 2016-04-30 Alan Modra <amodra@gmail.com>
16596 * ira.c (pdx_subregs): Delete.
16597 (struct equivalence): Add pdx_subregs field.
16598 (set_paradoxical_subreg): Remove pdx_subregs param. Update
16599 pdx_subregs access.
16600 (update_equiv_regs): Don't create or free pdx_subregs. Update
16601 pdx_subregs access.
16603 2016-04-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16605 * config/rs6000/altivec.h: Change definitions of vec_xl and
16607 * config/rs6000/rs6000-builtin.def (LD_ELEMREV_V2DF): New.
16608 (LD_ELEMREV_V2DI): New.
16609 (LD_ELEMREV_V4SF): New.
16610 (LD_ELEMREV_V4SI): New.
16611 (LD_ELEMREV_V8HI): New.
16612 (LD_ELEMREV_V16QI): New.
16613 (ST_ELEMREV_V2DF): New.
16614 (ST_ELEMREV_V2DI): New.
16615 (ST_ELEMREV_V4SF): New.
16616 (ST_ELEMREV_V4SI): New.
16617 (ST_ELEMREV_V8HI): New.
16618 (ST_ELEMREV_V16QI): New.
16621 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
16622 descriptions for VSX_BUILTIN_VEC_XL and VSX_BUILTIN_VEC_XST.
16623 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Map from
16624 TARGET_P9_VECTOR to RS6000_BTM_P9_VECTOR.
16625 (altivec_expand_builtin): Add handling for
16626 VSX_BUILTIN_ST_ELEMREV_<MODE> and VSX_BUILTIN_LD_ELEMREV_<MODE>.
16627 (rs6000_invalid_builtin): Add error-checking for
16628 RS6000_BTM_P9_VECTOR.
16629 (altivec_init_builtins): Define builtins used to implement vec_xl
16631 (rs6000_builtin_mask_names): Define power9-vector.
16632 * config/rs6000/rs6000.h (MASK_P9_VECTOR): Define.
16633 (RS6000_BTM_P9_VECTOR): Define.
16634 (RS6000_BTM_COMMON): Include RS6000_BTM_P9_VECTOR.
16635 * config/rs6000/vsx.md (vsx_ld_elemrev_v2di): New define_insn.
16636 (vsx_ld_elemrev_v2df): Likewise.
16637 (vsx_ld_elemrev_v4sf): Likewise.
16638 (vsx_ld_elemrev_v4si): Likewise.
16639 (vsx_ld_elemrev_v8hi): Likewise.
16640 (vsx_ld_elemrev_v16qi): Likewise.
16641 (vsx_st_elemrev_v2df): Likewise.
16642 (vsx_st_elemrev_v2di): Likewise.
16643 (vsx_st_elemrev_v4sf): Likewise.
16644 (vsx_st_elemrev_v4si): Likewise.
16645 (vsx_st_elemrev_v8hi): Likewise.
16646 (vsx_st_elemrev_v16qi): Likewise.
16647 * doc/extend.texi: Add prototypes for vec_xl and vec_xst. Correct
16650 2016-04-29 Patrick Palka <ppalka@gcc.gnu.org>
16652 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Split
16654 (simplify_control_stmt_condition_1): ... here. Recurse into
16655 BIT_AND_EXPRs and BIT_IOR_EXPRs.
16657 2016-04-29 David Edelsohn <dje.gcc@gmail.com>
16660 * config/rs6000/rs6000.md (EXTQI): Don't allow extension to HImode.
16661 (zero_extendqi<mode>2_dot): Revert earlier conversion from
16662 define_insn_and_split to define_insn.
16663 (zero_extendqi<mode>2_dot2): Same.
16664 (extendqi<mode>2_dot): Same.
16665 (extendqi<mode>2_dot2): Same.
16667 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
16669 * config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK.
16670 (probe_stack): New expander.
16671 (probe_stack_<mode>): New insn pattern.
16673 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
16675 * config/i386/i386.md
16676 (operations with memory inputs setting flags peephole2):
16677 Remove uneeded REG_P checks. Cleanup pattern generation.
16679 2016-04-29 Ilya Enkovich <ilya.enkovich@intel.com>
16681 * tree-vect-loop.c (vect_transform_loop): Fix
16682 nb_iterations_upper_bound computation for vectorized loop.
16684 2016-04-29 Marek Polacek <polacek@redhat.com>
16685 Jakub Jelinek <jakub@redhat.com>
16688 * fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
16689 TARGET_EXPR_SLOT as a base.
16691 2016-04-29 Andrew Burgess <andrew.burgess@embecosm.com>
16693 * config/arc/arc.md (*loadqi_update): Replace use of 'rI' constraint
16694 with 'rCm2' constraints to limit possible immediate size.
16695 (*load_zeroextendqisi_update): Likewise.
16696 (*load_signextendqisi_update): Likewise.
16697 (*loadhi_update): Likewise.
16698 (*load_zeroextendhisi_update): Likewise.
16699 (*load_signextendhisi_update): Likewise.
16700 (*loadsi_update): Likewise.
16701 (*loadsf_update): Likewise.
16703 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
16705 * config/i386/predicates.md (constm1_operand): Fix comparison.
16707 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
16709 * testsuite/gcc.target/arc/ieee_eq.c: New test.
16711 2016-04-29 Oleg Endo <olegendo@gcc.gnu.org>
16713 * common/config/sh/sh-common.c (sh_option_optimization_table): Remove
16714 remaining SH5 related settings.
16715 * config/sh/sh-protos.h (shmedia_cleanup_truncate,
16716 shmedia_prepare_call_address): Delete.
16717 * config/sh/sh.c (sh_print_operand, output_stack_adjust,
16718 DWARF_CIE_DATA_ALIGNMENT, LOCAL_ALIGNMENT): Update comments.
16719 * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC,
16720 UNSUPPORTED_SH2A): Remove m5 checks.
16721 (sh_divide_strategy_e): Remove SH5 division strategies.
16722 (TARGET_PTRMEMFUNC_VBIT_LOCATION): Remove and use default.
16723 * config/sh/sh.md (divsf3): Reinstate define_expand pattern.
16725 2016-04-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
16727 * config/s390/s390.c (s390_rtx_costs): Update documentation.
16729 2016-04-29 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16731 * config/s390/2964.md ("z13_unit_fxu", "z13_0"): Remove lder.
16732 * config/s390/s390.md ("movsi_larl", "*movsi_esa", "mov<mode>"):
16733 Change lder to ldr.
16734 * config/s390/vector.md ("mov<mode>"): Likewise.
16736 2016-04-29 Ulrich Weigand <uweigand@de.ibm.com>
16738 * config/s390/constraints.md ("U", "W"): Invoke
16739 s390_mem_constraint with "ZR" and "ZT".
16740 * config/s390/s390.c (s390_check_qrst_address): Reject invalid
16741 addresses when using LRA. Accept also short displacements for S
16742 and T constraints. Do not check for long displacement target for
16743 S and T constraints.
16744 (s390_mem_constraint): Remove handling of U and W constraints.
16745 * config/s390/s390.md (various patterns): Remove the short
16746 displacement constraints (Q and R) if a long displacement
16747 constraint is present. Add longdisp as required CPU capability.
16748 * config/s390/vector.md: Likewise.
16749 * config/s390/vx-builtins.md: Likewise.
16751 2016-04-29 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
16754 * reload1.c (reload): Call finish_spills before
16755 restarting reload loop. Skip select_reload_regs
16756 if update_eliminables_and_spill returns true.
16758 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
16760 * config/arc/arc.h (UNSIGNED_INT12, UNSIGNED_INT16): Define.
16761 * config/arc/arc.md (umulhisi3): Use arc_short_operand predicate.
16762 (umulhisi3_imm): Update predicates and constraint letters.
16763 (umulhisi3_reg): Declare instruction as commutative.
16764 * config/arc/constraints.md (J12, J16): New constraints.
16765 * config/arc/predicates.md (short_unsigned_const_operand): New
16767 (arc_short_operand): Likewise.
16768 * testsuite/gcc.target/arc/umulsihi3_z.c: New file.
16770 2016-04-29 Richard Biener <rguenther@suse.de>
16772 PR tree-optimization/13962
16773 PR tree-optimization/65686
16774 * tree-ssa-alias.h (ptrs_compare_unequal): Declare.
16775 * tree-ssa-alias.c (ptrs_compare_unequal): New function
16776 using PTA to compare pointers.
16777 * match.pd: Add pattern for pointer equality compare simplification
16778 using ptrs_compare_unequal.
16780 2016-04-29 Richard Biener <rguenther@suse.de>
16782 * stor-layout.c (layout_type): Do not build a pointer-to-element
16785 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
16787 * config/i386/i386.md (Load+RegOp to Mov+MemOp peephole2):
16788 Use SWI mode iterator. Use general_reg_operand predicate.
16789 (Load+RegOp to Mov+MemOp peephole2 with vector regs): Split
16790 peephole to MMX and SSE part. Use mmx_reg_operand and sse_reg_operand
16793 2016-04-29 Jakub Jelinek <jakub@redhat.com>
16795 PR middle-end/70843
16796 * fold-const.c (operand_equal_p): Don't verify hash value equality
16798 * tree.c (inchash::add_expr): Handle STATEMENT_LIST. Ignore BLOCK
16801 2016-04-28 Jakub Jelinek <jakub@redhat.com>
16804 * config/i386/i386.c (bdesc_special_args): Add | OPTION_MASK_ISA_64BIT
16805 to __builtin_ia32_lwpval64 and __builtin_ia32_lwpins64.
16806 (bdesc_args): Add | OPTION_MASK_ISA_64BIT to __builtin_ia32_bextr_u64,
16807 __builtin_ia32_bextri_u64, __builtin_ia32_bzhi_di,
16808 __builtin_ia32_pdep_di and __builtin_ia32_pext_di.
16810 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
16812 * config/rs6000/rs6000.c (compute_save_world_info): Rename info_ptr
16813 to info. Don't initialize separate fields to 0. Clean up
16816 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
16818 * config/i386/i386.md (peephole2s for operations with memory inputs):
16819 Use SWI mode iterator.
16820 (peephole2s for operations with memory outputs): Ditto.
16821 Do not check for stack checking probe.
16823 (probe_stack): Remove expander.
16825 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
16826 Andrew Burgess <andrew.burgess@embecosm.com>
16828 * config/arc/arc.c (arc_print_operand): Print integer 'H' / 'L'
16829 operands as 32-bits.
16831 2016-04-28 Jason Merrill <jason@redhat.com>
16833 * gdbinit.in: Skip line-map.h.
16835 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
16836 Andrew Burgess <andrew.burgess@embecosm.com>
16838 * config/arc/arc.c (arc_conditional_register_usage): Take
16839 TARGET_RRQ_CLASS into account.
16840 (arc_print_operand): Support printing 'p' and 's' operands.
16841 * config/arc/arc.h (TARGET_NPS_BITOPS_DEFAULT): Provide default
16843 (TARGET_RRQ_CLASS): Define.
16844 (IS_POWEROF2_OR_0_P): Define.
16845 * config/arc/arc.md (*movsi_insn): Add w/Clo, w/Chi, and w/Cbi
16847 (*tst_movb): New define_insn.
16848 (*tst): Avoid recognition if it could prevent '*tst_movb'
16849 combination; replace c/CnL with c/Chs alternative.
16850 (*tst_bitfield_tst): New define_insn.
16851 (*tst_bitfield_asr): New define_insn.
16852 (*tst_bitfield): New define_insn.
16853 (andsi3_i): Add Rrq variant.
16854 (extzv): New define_expand.
16855 (insv): New define_expand.
16856 (*insv_i): New define_insn.
16857 (*movb): New define_insn.
16858 (*movb_signed): New define_insn.
16859 (*movb_high): New define_insn.
16860 (*movb_high_signed): New define_insn.
16861 (*movb_high_signed + 1): New define_split pattern.
16862 (*mrgb): New define_insn.
16863 (*mrgb + 1): New define_peephole2 pattern.
16864 (*mrgb + 2): New define_peephole2 pattern.
16865 * config/arc/arc.opt (mbitops): New option for nps400, uses
16866 TARGET_NPS_BITOPS_DEFAULT.
16867 * config/arc/constraints.md (q): Make register class conditional.
16868 (Rrq): New register constraint.
16869 (Chs): New constraint.
16870 (Clo): New constraint.
16871 (Chi): New constraint.
16872 (Cbf): New constraint.
16873 (Cbn): New constraint.
16874 (C18): New constraint.
16875 (Cbi): New constraint.
16877 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
16879 * cfganal.c (bitmap_intersection_of_succs): Delete assert checking
16881 (bitmap_intersection_of_preds): Ditto.
16882 (bitmap_union_of_succs): Ditto.
16883 (bitmap_union_of_preds): Ditto.
16884 * sbitmap.c (do_popcount): Delete.
16885 (BITMAP_DEBUGGING): Delete.
16886 (sbitmap_verify_popcount): Delete.
16887 (sbitmap_alloc): Don't initialize the popcount field.
16888 (sbitmap_alloc_with_popcount): Delete.
16889 (sbitmap_resize): Don't resize the popcount array.
16890 (sbitmap_vector_alloc): Don't initialize the popcount field.
16891 (bitmap_copy): Don't copy the popcount array.
16892 (bitmap_clear): Don't clear the popcount array.
16893 (bitmap_clear): Delete the popcount array handling.
16894 (bitmap_ior_and_compl): Delete the popcount assert.
16895 (bitmap_not): Ditto.
16896 (bitmap_and_compl): Ditto.
16897 (bitmap_and): Delete the popcount array handling.
16898 (bitmap_xor): Ditto.
16899 (bitmap_ior): Ditto.
16900 (bitmap_or_and): Delete the popcount assert.
16901 (bitmap_and_or): Ditto.
16902 (popcount_table): Delete.
16903 (sbitmap_elt_popcount): Delete.
16904 * sbitmap.h (simple_bitmap_def): Delete the popcount field.
16905 (bitmap_set_bit): Delete the popcount assert.
16906 (bitmap_clear_bit): Ditto.
16907 (sbitmap_free): Don't free the popcount array.
16908 (sbitmap_alloc_with_popcount): Delete declaration.
16909 (sbitmap_popcount): Ditto.
16911 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
16912 Andrew Burgess <andrew.burgess@embecosm.com>
16914 * config/arc/arc.h (SYMBOL_FLAG_CMEM): Define.
16915 (TARGET_NPS_CMEM_DEFAULT): Provide default definition.
16916 * config/arc/arc.c (arc_address_cost): Return 0 for cmem_address.
16917 (arc_encode_section_info): Set SYMBOL_FLAG_CMEM where indicated.
16918 * config/arc/arc.opt (mcmem): New option.
16919 * config/arc/arc.md (*extendqihi2_i): Add r/Uex alternative,
16920 supply length for r/m alternative.
16921 (*extendqisi2_ac): Likewise.
16922 (*extendhisi2_i): Add r/Uex alternative, supply length for r/m and
16924 (movqi_insn): Add r/Ucm and Ucm/?Rac alternatives.
16925 (movhi_insn): Likewise.
16926 (movsi_insn): Add r/Ucm,Ucm/w alternatives.
16927 (*zero_extendqihi2_i): Add r/Ucm alternative.
16928 (*zero_extendqisi2_ac): Likewise.
16929 (*zero_extendhisi2_i): Likewise.
16930 * config/arc/constraints.md (Uex): New memory constraint.
16931 (Ucm): New define_constraint.
16932 * config/arc/predicates.md (long_immediate_loadstore_operand):
16933 Return 0 for MEM with cmem_address address.
16934 (cmem_address_0): New predicates.
16935 (cmem_address_1): Likewise.
16936 (cmem_address_2): Likewise.
16937 (cmem_address): Likewise.
16939 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
16941 * config/rs6000/rs6000.c (machine_function): Rename
16942 insn_chain_scanned_p to spe_insn_chain_scanned_p.
16943 (rs6000_stack_info): Adjust.
16945 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
16946 Andrew Burgess <andrew.burgess@embecosm.com>
16948 * config/arc/constraints.md (Usd): Convert to define_constraint.
16952 2016-04-28 Jakub Jelinek <jakub@redhat.com>
16955 * config/i386/sync.md (define_peephole2 *atomic_fetch_add_cmp<mode>):
16956 Add new peephole2 where the first insn is *mov<mode>_or instead of
16957 *mov<mode>_internal.
16959 2016-04-28 Segher Boesssenkool <segher@kernel.crashing.org>
16961 * tracer.c (bb_seen): Make static.
16963 2016-04-28 Andrew Burgess <andrew.burgess@embecosm.com>
16965 * common/config/arc/arc-common.c (arc_handle_option): Add NPS400
16966 support, setup defaults.
16967 * config/arc/arc-opts.h (enum processor_type): Add NPS400.
16968 * config/arc/arc.c (arc_init): Add NPS400 support.
16969 * config/arc/arc.h (CPP_SPEC): Add NPS400 defines.
16970 (TARGET_ARC700): NPS400 is also an ARC700.
16971 * config/arc/arc.opt: Add NPS400 options to -mcpu=.
16973 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
16976 * config/nds32/nds32.md (casesi): Don't access the operands array
16979 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
16981 * config/i386/i386.md (zeroing peephole2): Use general_reg_operand.
16982 (or $-1,reg peephole2): Ditto.
16983 (strict_low_part zeroing peephole2): Use SWI12 mode iterator.
16985 2016-04-28 Markus Trippelsdorf <markus@trippelsdorf.de>
16987 * doc/extend.texi (Common Function Attributes) [optimize]:
16988 Discourage use of the optimize attribute.
16990 2016-04-28 Bill Seurer <seurer@linux.vnet.ibm.com>
16992 * config/rs6000/rs6000-builtin.def (vec_adde): Change vec_adde to a
16993 special case builtin.
16994 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
16995 ALTIVEC_BUILTIN_VEC_ADDE.
16996 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
16997 support for ALTIVEC_BUILTIN_VEC_ADDE.
16998 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
16999 for __builtin_vec_adde.
17001 2016-04-28 Jakub Jelinek <jakub@redhat.com>
17003 * config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
17004 * config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise.
17006 2016-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17009 * doc/sourcebuild.texi (Effective-Target Keywords, Other
17010 attributes): Document cilkplus_runtime.
17012 2016-04-28 Martin Jambor <mjambor@suse.cz>
17014 * tree-cfg.c (verify_expr): Verify that local declarations belong to
17015 this function. Call verify_expr on MEM_REFs and bases of other
17016 handled_components.
17018 2016-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17020 * internal-fn.c (expand_arith_overflow): Convert preprocessor check
17021 for WORD_REGISTER_OPERATIONS to runtime check.
17023 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
17025 * config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.
17027 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
17029 * config/arc/arc.c (arc_process_double_reg_moves): Fix for
17030 big-endian compilation.
17031 * config/arc/arc.md (addf3): Likewise.
17032 (subdf3): Likewise.
17033 (muldf3): Likewise.
17035 2016-04-28 Richard Biener <rguenther@suse.de>
17037 PR tree-optimization/70840
17038 * match.pd: powi(-x, y) and powi(|x|,y) -> powi(x,y) if y is even;
17039 Fix pow(copysign(x, y), z) -> pow(x, z) and add powi variant;
17040 Mark x * pow(x,c) -> pow(x,c+1) commutative.
17041 Add powi(x,y) * powi(z,y) -> powi(x*z,y).
17043 2015-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17045 * config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
17046 and explain why in a comment.
17048 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
17050 * config/arc/arc.md (cpu_facility): Add fpx variant.
17051 (subdf3): Prohibit use reverse sub when assist operations option
17053 * config/arc/fpx.md (subdf3_insn, *dsubh_peep2_insn): Allow drsub
17054 instructions only when FPX is enabled.
17055 * testsuite/gcc.target/arc/trsub.c: New test.
17057 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
17059 * config/i386/i386.md (*fop_<mode>_1_mixed): Do not check for
17060 mult_operator when calculating "type" attribute.
17061 (*fop_<mode>_1_i387): Ditto.
17062 (*fop_xf_1_i387): Ditto.
17063 (x87 stack loads peephole2): Add "reg = op (mem, reg)" peephole2.
17064 Use std::swap to swap operands. Use RTL expressions to generate
17067 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
17068 Joern Rennecke <joern.rennecke@embecosm.com>
17070 * config/arc/arc-protos.h (arc_legitimize_pic_address): Remove
17072 (emit_pic_move): Remove.
17073 (arc_eh_uses, insn_is_tls_gd_dispatch): Declare.
17074 * config/arc/arc.c (emit_pic_move): Removed.
17075 (TARGET_HAVE_TLS): Define.
17076 (arc_conditional_register_usage): Test for arc_tp_regno.
17077 (arc_print_operand, arc_print_operand_address): Handle TLS
17079 (arc_needs_pcl_p): New function.
17080 (arc_legitimate_pc_offset_p): Use arc_needs_pcl_p.
17081 (arc_legitimate_pic_addr_p): Handle TLS unspecs.
17082 (arc_raw_symbolic_reference_mentioned_p): Likewise.
17083 (arc_get_tp, arc_emit_call_tls_get_addr): New function.
17084 (arc_legitimize_tls_address): Likewise.
17085 (DTPOFF_ZERO_SYM): Define.
17086 (arc_legitimize_pic_address): Make it static, handle TLS cases.
17087 (arc_output_pic_addr_const): Print TLS unspecs.
17088 (prepare_pic_move): New function, replaces emit_pic_move.
17089 (arc_legitimate_constant_p): Handle TLS unspecs.
17090 (arc_legitimate_address_p): Likewise.
17091 (arc_rewrite_small_data_p): Use assert for TLS constants.
17092 (prepare_move_operands): Use prepare_pic_move.
17093 (arc_legitimize_address): Legitimize tls addresses.
17094 (arc_epilogue_uses): Check for arc_tp_regno.
17095 (arc_eh_uses, insn_is_tls_gd_dispatch): New function.
17096 * config/arc/arc.h [DEFAULT_LIBC != LIBC_UCLIBC] (EXTRA_SPECS):
17098 [DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC):
17100 [DEFAULT_LIBC != LIBC_UCLIBC] (STARTFILE_SPEC): Add
17101 %(arc_tls_extra_start_spec).
17102 (TARGET_CPU_CPP_BUILTINS): Define __ARC_TLS_REGNO__.
17103 (REGNO_OK_FOR_BASE_P): Check for arc_tp_regno.
17105 (INSN_REFERENCES_ARE_DELAYED): Use insn_is_tls_gd_dispatch.
17106 * config/arc/arc.md (UNSPEC_TLS_GD, UNSPEC_TLS_LD, UNSPEC_TLS_IE)
17107 (UNSPEC_TLS_OFF): Add.
17109 (tls_load_tp_soft, tls_gd_load, tls_gd_get_addr, tls_gd_dispatch)
17110 (get_thread_pointersi): New patterns.
17111 * config/arc/arc.opt (mtp-regno): New option.
17112 * config/arc/predicates.md (move_src_operand): Handle TLS symbols.
17113 (move_dest_operand): Likewise.
17114 * configure: Regenerate.
17115 * configure.ac: Add arc*-*-* case to test for tls.
17116 * doc/invoke.texi (ARC options): Document mtp-regno.
17118 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
17120 * config/arc/arc.c (arc_vector_mode_supported_p): Add support for
17121 the new ARC HS SIMD instructions.
17122 (arc_preferred_simd_mode): New function.
17123 (arc_autovectorize_vector_sizes): Likewise.
17124 (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
17125 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
17126 (arc_init_reg_tables): Accept new ARC HS SIMD modes.
17127 (arc_init_builtins): Add new SIMD builtin types.
17128 (arc_split_move): Handle 64 bit vector moves.
17129 * config/arc/arc.h (TARGET_PLUS_DMPY, TARGET_PLUS_MACD)
17130 (TARGET_PLUS_QMACW): Define.
17131 * config/arc/builtins.def (QMACH, QMACHU, QMPYH, QMPYHU, DMACH)
17132 (DMACHU, DMPYH, DMPYHU, DMACWH, DMACWHU, VMAC2H, VMAC2HU, VMPY2H)
17133 (VMPY2HU, VADDSUB2H, VSUBADD2H, VADDSUB, VSUBADD, VADDSUB4H)
17134 (VSUBADD4H): New builtins.
17135 * config/arc/simdext.md: Add new ARC HS SIMD instructions.
17136 * testsuite/gcc.target/arc/builtin_simdarc.c: New file.
17138 2016-04-28 Eduard Sanou <dhole@openmailbox.org>
17139 Matthias Klose <doko@debian.org>
17141 * doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable.
17143 2016-04-28 Richard Biener <rguenther@suse.de>
17145 PR middle-end/70777
17146 * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
17149 2016-04-28 Oleg Endo <olegendo@gcc.gnu.org>
17151 * common/config/sh/sh-common.c: Remove SH5 support.
17152 * config/sh/constraints.md: Likewise.
17153 * config/sh/config/sh/elf.h: Likewise.
17154 * config/sh/linux.h: Likewise.
17155 * config/sh/netbsd-elf.h: Likewise.
17156 * config/sh/predicates.md: Likewise.
17157 * config/sh/sh-c.c: Likewise.
17158 * config/sh/sh-protos.h: Likewise.
17159 * config/sh/sh.c: Likewise.
17160 * config/sh/sh.h: Likewise.
17161 * config/sh/sh.md: Likewise.
17162 * config/sh/sh.opt: Likewise.
17163 * config/sh/sync.md: Likewise.
17164 * config/sh/sh64.h: Delete.
17165 * config/sh/shmedia.h: Likewise.
17166 * config/sh/shmedia.md: Likewise.
17167 * config/sh/sshmedia.h: Likewise.
17168 * config/sh/t-netbsd-sh5-64: Likewise.
17169 * config/sh/t-sh64: Likewise.
17170 * config/sh/ushmedia.h: Likewise.
17172 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
17174 * config/i386/i386.md (sign_extend to memory peephole2s): Use
17175 general_reg_operand instead of register_operand predicate.
17177 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
17179 * params.def (MIN_PARTITION_SIZE): Set default value to 10000.
17181 2016-04-27 Marc Glisse <marc.glisse@inria.fr>
17183 * match.pd (A - B > A, A + B < A): New transformations.
17185 2016-04-27 Patrick Palka <ppalka@gcc.gnu.org>
17187 * genattrtab.c (write_test_expr): New parameter EMIT_PARENS
17188 which defaults to true. Emit an outer pair of parentheses only if
17189 EMIT_PARENS. When continuing a chain of && or || (or & or |),
17190 don't emit parentheses for the right-hand operand.
17192 2016-04-27 Jeff Law <law@redhat.com>
17194 * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.
17196 2016-04-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17198 * config/rs6000/altivec.md (altivec_lvx_<mode>): Remove.
17199 (altivec_lvx_<mode>_internal): Document.
17200 (altivec_lvx_<mode>_2op): New define_insn.
17201 (altivec_lvx_<mode>_1op): Likewise.
17202 (altivec_lvx_<mode>_2op_si): Likewise.
17203 (altivec_lvx_<mode>_1op_si): Likewise.
17204 (altivec_stvx_<mode>): Remove.
17205 (altivec_stvx_<mode>_internal): Document.
17206 (altivec_stvx_<mode>_2op): New define_insn.
17207 (altivec_stvx_<mode>_1op): Likewise.
17208 (altivec_stvx_<mode>_2op_si): Likewise.
17209 (altivec_stvx_<mode>_1op_si): Likewise.
17210 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
17211 Expand vec_ld and vec_st during parsing.
17212 * config/rs6000/rs6000.c (altivec_expand_lvx_be): Commentary
17214 (altivec_expand_stvx_be): Likewise.
17215 (altivec_expand_lv_builtin): Expand lvx built-ins to expose the
17216 address-masking behavior in RTL.
17217 (altivec_expand_stv_builtin): Expand stvx built-ins to expose the
17218 address-masking behavior in RTL.
17219 (altivec_expand_builtin): Change builtin code arguments for calls
17220 to altivec_expand_stv_builtin and altivec_expand_lv_builtin.
17221 (insn_is_swappable_p): Avoid incorrect swap optimization in the
17222 presence of lvx/stvx patterns.
17223 (alignment_with_canonical_addr): New function.
17224 (alignment_mask): Likewise.
17225 (find_alignment_op): Likewise.
17226 (recombine_lvx_pattern): Likewise.
17227 (recombine_stvx_pattern): Likewise.
17228 (recombine_lvx_stvx_patterns): Likewise.
17229 (rs6000_analyze_swaps): Perform a pre-pass to recognize lvx and
17230 stvx patterns from expand.
17231 * config/rs6000/vector.md (vector_altivec_load_<mode>): Use new
17233 (vector_altivec_store_<mode>): Likewise.
17235 2016-04-26 Evandro Menezes <e.menezes@samsung.com>
17237 * config/aarch64/aarch64.md
17238 (*movhf_aarch64): Add "movi %0, #0" to zero up register and
17239 remove the "fp" attributes.
17240 (*movsf_aarch64): Add "movi %0, #0" to zero up register and
17241 add the "simd" attributes.
17242 (*movdf_aarch64): Likewise.
17243 (*movtf_aarch64): Remove the "fp" attributes.
17244 * testsuite/gcc.target/aarch64/fmovf-zero-reg.c: Update accordingly.
17245 * testsuite/gcc.target/aarch64/fmovd-zero-reg.c: Likewise.
17247 2016-04-27 David Malcolm <dmalcolm@redhat.com>
17249 * emit-rtl.c (maybe_set_first_label_num): Strengthen param from
17250 rtx to rtx_code_label *.
17251 * rtl.h (maybe_set_first_label_num): Likewise.
17253 2016-04-27 David Malcolm <dmalcolm@redhat.com>
17255 * df-core.c (df_add_problem): Make the problem param be const.
17256 (df_remove_problem): Make local "problem" be const.
17257 * df-problems.c (problem_RD): Make const.
17258 (problem_LR): Likewise.
17259 (problem_LIVE): Likewise.
17260 (problem_MIR): Likewise.
17261 (problem_CHAIN): Likewise.
17262 (problem_WORD_LR): Likewise.
17263 (problem_NOTE): Likewise.
17264 (problem_MD): Likewise.
17265 * df-scan.c (problem_SCAN): Likewise.
17266 * df.h (struct df_problem): Make field "dependent_problem" be
17268 (struct dataflow): Likewise for field "problem".
17269 (df_add_problem): Make param const.
17271 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
17273 * config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when
17274 inter-unit moves to/from vector registers are enabled. Do not disable
17277 2016-04-27 David Malcolm <dmalcolm@redhat.com>
17279 * df.h (DF_SCAN, DF_LR, DF_LIVE, DF_RD, DF_CHAIN, DF_WORD_LR,
17280 DF_NOTE, DF_MD, DF_MIR, DF_LAST_PROBLEM_PLUS1): Convert from
17282 (enum df_problem_id): ...this new enum.
17283 (struct df_problem): Convert field "id" from "int" to
17284 enum df_problem_id.
17286 2016-04-27 David Malcolm <dmalcolm@redhat.com>
17288 * rtl.def: Update comment for "things in the instruction chain" to
17289 reflect the removal of the leading "i" field for INSN_UID in
17290 r210360. Fix bogus apostrophe.
17292 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
17294 * config/i386/i386.md
17295 (lea arith with mem operand + setcc peephole2): Set operator mode.
17297 2016-04-27 H.J. Lu <hongjiu.lu@intel.com>
17300 * config/i386/i386.c (scalar_to_vector_candidate_p): Renamed to ...
17301 (dimode_scalar_to_vector_candidate_p): This.
17302 (timode_scalar_to_vector_candidate_p): New function.
17303 (scalar_to_vector_candidate_p): Likewise.
17304 (timode_check_non_convertible_regs): Likewise.
17305 (timode_remove_non_convertible_regs): Likewise.
17306 (remove_non_convertible_regs): Likewise.
17307 (remove_non_convertible_regs): Renamed to ...
17308 (dimode_remove_non_convertible_regs): This.
17309 (scalar_chain::~scalar_chain): Make it virtual.
17310 (scalar_chain::compute_convert_gain): Make it pure virtual.
17311 (scalar_chain::mark_dual_mode_def): Likewise.
17312 (scalar_chain::convert_insn): Likewise.
17313 (scalar_chain::convert_registers): Likewise.
17314 (scalar_chain::add_to_queue): Make it protected.
17315 (scalar_chain::emit_conversion_insns): Likewise.
17316 (scalar_chain::replace_with_subreg): Likewise.
17317 (scalar_chain::replace_with_subreg_in_insn): Likewise.
17318 (scalar_chain::convert_op): Likewise.
17319 (scalar_chain::convert_reg): Likewise.
17320 (scalar_chain::make_vector_copies): Likewise.
17321 (scalar_chain::convert_registers): New pure virtual function.
17322 (class dimode_scalar_chain): New class.
17323 (class timode_scalar_chain): Likewise.
17324 (scalar_chain::mark_dual_mode_def): Renamed to ...
17325 (dimode_scalar_chain::mark_dual_mode_def): This.
17326 (timode_scalar_chain::mark_dual_mode_def): New function.
17327 (timode_scalar_chain::convert_insn): Likewise.
17328 (dimode_scalar_chain::convert_registers): Likewise.
17329 (scalar_chain::compute_convert_gain): Renamed to ...
17330 (dimode_scalar_chain::compute_convert_gain): This.
17331 (scalar_chain::replace_with_subreg): Renamed to ...
17332 (dimode_scalar_chain::replace_with_subreg): This.
17333 (scalar_chain::replace_with_subreg_in_insn): Renamed to ...
17334 (dimode_scalar_chain::replace_with_subreg_in_insn): This.
17335 (scalar_chain::make_vector_copies): Renamed to ...
17336 (dimode_scalar_chain::make_vector_copies): This.
17337 (scalar_chain::convert_reg): Renamed to ...
17338 (dimode_scalar_chain::convert_reg ): This.
17339 (scalar_chain::convert_op): Renamed to ...
17340 (dimode_scalar_chain::convert_op): This.
17341 (scalar_chain::convert_insn): Renamed to ...
17342 (dimode_scalar_chain::convert_insn): This.
17343 (scalar_chain::convert): Call convert_registers.
17344 (convert_scalars_to_vector): Change to scalar_chain pointer to
17345 use timode_scalar_chain in 64-bit mode and dimode_scalar_chain
17346 in 32-bit mode. Delete scalar_chain pointer. Call
17347 free_dominance_info in 64-bit mode.
17348 (pass_stv::gate): Remove TARGET_64BIT check.
17349 (ix86_option_override): Put the 64-bit STV pass before the CSE
17352 2016-04-27 Pierre-Marie de Rodat <derodat@adacore.com>
17354 * dwarf2out.h (struct dw_loc_descr_node): Remove the
17355 dw_loc_frame_offset field.
17356 * dwarf2out.c (new_loc_descr): Likewise.
17357 (resolve_args_picking_1): Turn the VISITED hash set into a
17358 FRAME_OFFSET hash map. Use it to associate a frame offset to
17359 visited nodes. Remove uses of the CHECKING_P macro.
17360 (resolve_args_picking): Update call to resolve_args_picking_1.
17362 2016-04-27 Martin Liska <mliska@suse.cz>
17364 * tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
17365 (free_loop_data): Release vuses of groups.
17367 2016-04-27 Bin Cheng <bin.cheng@arm.com>
17369 * tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use
17370 instead of redundant use_id and boolean have_use_for.
17371 (struct iv_use): Change sub_id into group_id. Remove field next.
17372 Move fields: related_cands, n_map_members, cost_map and selected
17374 (struct iv_group): ... here. New structure.
17375 (struct iv_common_cand): Use structure declaration directly.
17376 (struct ivopts_data, iv_ca, iv_ca_delta): Rename fields.
17377 (MAX_CONSIDERED_USES): Rename macro to ...
17378 (MAX_CONSIDERED_GROUPS): ... here.
17379 (n_iv_uses, iv_use, n_iv_cands, iv_cand): Delete.
17380 (dump_iv, dump_use, dump_cand): Refactor format of dump information.
17381 (dump_uses): Rename to ...
17382 (dump_groups): ... here. Update all uses.
17383 (tree_ssa_iv_optimize_init, alloc_iv): Update all uses.
17384 (find_induction_variables): Refactor format of dump information.
17385 (record_sub_use): Delete.
17386 (record_use): Update all uses.
17387 (record_group): New function.
17388 (record_group_use, find_interesting_uses_op): Call above functions.
17390 (find_interesting_uses_cond): Ditto.
17391 (group_compare_offset): New function.
17392 (split_all_small_groups): Rename to ...
17393 (split_small_address_groups_p): ... here. Update all uses.
17394 (split_address_groups): Update all uses.
17395 (find_interesting_uses): Refactor format of dump information.
17396 (add_candidate_1): Update all uses. Remove redundant check on iv,
17398 (add_candidate, record_common_cand): Remove redundant assert.
17399 (add_iv_candidate_for_biv): Update use.
17400 (add_iv_candidate_derived_from_uses): Update all uses.
17401 (add_iv_candidate_for_groups, record_important_candidates): Ditto.
17402 (alloc_use_cost_map): Ditto.
17403 (set_use_iv_cost, get_use_iv_cost): Rename to ...
17404 (set_group_iv_cost, get_group_iv_cost): ... here. Update all uses.
17405 (determine_use_iv_cost_generic): Ditto.
17406 (determine_group_iv_cost_generic): Ditto.
17407 (determine_use_iv_cost_address): Ditto.
17408 (determine_group_iv_cost_address): Ditto.
17409 (determine_use_iv_cost_condition): Ditto.
17410 (determine_group_iv_cost_cond): Ditto.
17411 (determine_use_iv_cost): Ditto.
17412 (determine_group_iv_cost): Ditto.
17413 (set_autoinc_for_original_candidates): Update all uses.
17414 (find_iv_candidates): Update all uses. Refactor dump information.
17415 (determine_use_iv_costs): Ditto.
17416 (determine_iv_costs): Ditto.
17417 (iv_ca_cand_for_use): Rename to ...
17418 (iv_ca_cand_for_group): ... here. Update all uses.
17419 (iv_ca_add_use, iv_ca_add_group): Ditto.
17420 (iv_ca_set_cp, iv_ca_cost, iv_ca_delta_add): Update all uses.
17421 (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_delta_free): Ditto.
17422 (iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow): Ditto.
17423 (iv_ca_prune, cheaper_cost_with_cand, iv_ca_replace): Ditto.
17424 (try_add_cand_for, try_improve_iv_set, find_optimal_iv_set): Ditto.
17425 (create_new_iv, adjust_iv_update_pos): Ditto.
17426 (rewrite_use_address): Delete.
17427 (rewrite_use_address_1): Rename to ...
17428 (rewrite_use_address): ... here.
17429 (rewrite_use_compare): Update all uses.
17430 (rewrite_use): Delete.
17431 (rewrite_uses): Rename to ...
17432 (rewrite_groups): ... here. Update all uses.
17433 (remove_unused_ivs, free_loop_data): Update all uses.
17434 (tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize_loop): Ditto.
17436 2016-04-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17438 * rtlanal.c (nonzero_bits1): Convert preprocessor check
17439 for WORD_REGISTER_OPERATIONS to runtime check.
17441 2016-04-27 Richard Biener <rguenther@suse.de>
17444 * tree-ssa-structalias.c (find_func_aliases_for_call): Use
17445 aggregate_value_p to determine if a function result is
17446 returned by reference.
17447 (ipa_pta_execute): Functions having their address taken are
17448 not automatically nonlocal.
17450 2016-04-27 Jakub Jelinek <jakub@redhat.com>
17453 * tree-core.h (enum operand_equal_flag): Add OEP_NO_HASH_CHECK.
17454 * fold-const.c (operand_equal_p): If flag_checking and
17455 OEP_NO_HASH_CHECK is not set in flag, recurse with OEP_NO_HASH_CHECK
17456 and if it returns non-zero, assert iterative_hash_expr on both
17459 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
17461 * doc/invoke.texi (-frename-registers): Also enabled at -Os.
17463 2016-04-27 Nick Clifton <nickc@redhat.com>
17465 PR middle-end/49889
17466 * varasm.c (merge_weak): Generate an error if an attempt is made
17467 to convert a non-weak static function into a weak, public function.
17469 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
17471 * params.def (MAX_PARTITION_SIZE): New param.
17472 * doc/invoke.texi: Document lto-max-partition.
17474 2016-04-27 Richard Biener <rguenther@suse.de>
17477 * tree-ssa-structalias.c (refered_from_nonlocal_fn): New
17478 function cummulating used_from_other_partition, externally_visible
17479 and force_output from aliases.
17480 (refered_from_nonlocal_var): Likewise.
17481 (ipa_pta_execute): Use call_for_symbol_and_aliases to cummulate
17482 node flags properly.
17484 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
17486 * doc/invoke.texi (Warning Options): Add -Wmemset-elt-size.
17487 (-Wmemset-elt-size): New item.
17489 2016-04-27 Eric Botcazou <ebotcazou@adacore.com>
17492 * stor-layout.h (internal_reference_types): Delete.
17493 * stor-layout.c (reference_types_internal): Likewise.
17494 (internal_reference_types): Likewise.
17495 (layout_type) <REFERENCE_TYPE>: Adjust.
17497 2016-04-27 Jakub Jelinek <jakub@redhat.com>
17500 * tree.h (inchash::add_expr): Add FLAGS argument.
17501 * tree.c (inchash::add_expr): Likewise. If not OEP_ADDRESS_OF,
17502 use STRIP_NOPS first. For INTEGER_CST assert not OEP_ADDRESS_OF.
17503 For REAL_CST and !HONOR_SIGNED_ZEROS (t) hash +/- 0 the same.
17504 Formatting fix. Adjust recursive calls. For tcc_comparison,
17505 if swap_tree_comparison (code) is smaller than code, hash that
17506 and arguments in the other order. Hash CONVERT_EXPR the same
17507 as NOP_EXPR. For OEP_ADDRESS_OF hash MEM_REF with 0 offset
17508 of ADDR_EXPR of decl as the decl itself. Add or remove
17509 OEP_ADDRESS_OF from recursive flags as needed. For
17510 FMA_EXPR, WIDEN_MULT_{PLUS,MINUS}_EXPR hash the first two
17511 operands commutatively and only the third one normally.
17512 For internal CALL_EXPR hash in CALL_EXPR_IFN.
17514 2016-04-27 Sebastian Huber <sebastian.huber@embedded-brains.de>
17516 * config/rtems.h (LIB_SPEC): Add -latomic.
17518 2016-04-27 Joel Sherrill <joel@rtems.org>
17520 * config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
17521 xilink.ld and flags not relevant to RTEMS.
17523 2016-04-26 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
17525 * toplev.c (backend_init_target): Avoid calling init_reload when using
17528 2016-04-26 Jakub Jelinek <jakub@redhat.com>
17530 * reorg.c (try_merge_delay_insns): Declare i and j inside the
17531 for loops rather than one for the whole function.
17533 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
17535 * match.pd (X + CST CMP X): New transformation.
17537 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
17539 * genmatch.c (write_predicate): Add ATTRIBUTE_UNUSED.
17540 * fold-const.c (fold_binary_loc): Remove 2 transformations
17541 superseded by match.pd.
17542 * match.pd (x+x -> x*2): Generalize to integers.
17544 2016-04-26 Bernd Schmidt <bschmidt@redhat.com>
17546 * config/i386/i386.md (operation on memory peephole): Duplicate an
17547 existing peephole and adapt it to match lea rather than an operation
17550 PR rtl-optimization/57193
17551 * opts.c (default_options_table): Add OPT_frename_registers at -O2
17553 * doc/invoke.texi (-frename-registers, -O2): Update documentation.
17555 2016-04-26 Bin Cheng <bin.cheng@arm.com>
17557 * tree-if-conv.c (any_pred_load_store): New static variable.
17558 (if_convertible_gimple_assign_stmt_p): Remove parameter. Use
17559 any_pred_load_store instead of and_mask_load_store.
17560 (if_convertible_stmt_p, if_convertible_loop_p_1): Ditto.
17561 (if_convertible_loop_p, insert_gimplified_predicates): Ditto.
17562 (combine_blocks, tree_if_conversion): Ditto.
17564 2016-04-26 Bin Cheng <bin.cheng@arm.com>
17566 PR tree-optimization/70771
17567 PR tree-optimization/70775
17568 * tree-if-conv.c (if_convertible_phi_p): Remove check on special
17569 virtual PHI nodes. Delete parameter.
17570 (if_convertible_loop_p_1): Delete argument to above function.
17571 (predicate_all_scalar_phis): Delete code handling single-argument
17573 (tree_if_conversion): Mark and update virtual SSA.
17575 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17578 * config/i386/i386.c (LARGECOMM_SECTION_ASM_OP): Define default.
17579 (x86_elf_aligned_common): Rename to ...
17580 (x86_elf_aligned_decl_common): ... this.
17581 Add decl arg. Switch to .lbss for largecomm object. Use
17582 LARGECOMM_SECTION_ASM_OP.
17583 * config/i386/i386-protos.h (x86_elf_aligned_common): Reflect
17585 * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_COMMON): Rename to ...
17586 (ASM_OUTPUT_ALIGNED_DECL_COMMON): ... this.
17588 * config/i386/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
17589 [!USE_GAS] (LARGECOMM_SECTION_ASM_OP): Define.
17591 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17594 * config/i386/i386.c (SECTION_LARGE): Define.
17595 (x86_64_elf_select_section): Set it for large data/bss sections.
17596 Only clear SECTION_WRITE for .lrodata.
17597 (x86_64_elf_section_type_flags): Set SECTION_LARGE for large
17599 * config/i386/sol2.h (MACH_DEP_SECTION_ASM_FLAG): Define.
17600 * varasm.c (default_elf_asm_named_section): Grow flagchars.
17601 [MACH_DEP_SECTION_ASM_FLAG] Emit MACH_DEP_SECTION_ASM_FLAG for
17603 * doc/tm.texi.in (Sections, MACH_DEP_SECTION_ASM_FLAG): Describe.
17604 * doc/tm.texi: Regenerate.
17606 2016-04-26 Jakub Jelinek <jakub@redhat.com>
17609 * configure.ac (--enable-checking): Document extra flag, for
17610 non-release builds default to --enable-checking=yes,extra.
17611 If misc checking and extra checking, define CHECKING_P to 2 instead
17613 * common.opt (fchecking=): Add.
17614 * doc/invoke.texi (-fchecking=): Document.
17615 * doc/install.texi: Document --enable-checking changes.
17616 * configure: Regenerated.
17617 * config.in: Regenerated.
17619 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
17621 * config/i386/i386.md (*movxi_internal_avx512f): Use insn type
17622 attribute instead of which_alternative.
17623 * config/i386/sse.md (*mov<mode>_internal): Ditto.
17624 Use EXT_REX_SSE_REG_P where appropriate.
17626 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
17628 * config/i386/predicates.md (const0_operand): Do not match
17629 const_wide_int code.
17630 (const1_operand): Ditto.
17632 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
17634 * config/i386/i386.md (*movoi_internal_avx): Set mode attribute to XI
17635 for SSE constm1 operands and TARGET_AVX512VL.
17636 (*movti_internal): Ditto.
17637 (*mov<mode>_or): Use constm1_operand predicate.
17638 * config/i386/sse.md (*mov<mode>_internal): Set mode attribute to XI
17639 for SSE vector_all_ones operands and TARGET_AVX512VL.
17640 * config/i386/predicates.md (constm1_operand): New predicate.
17641 * config/i386/i386.c (standard_sse_constant_opcode): Simplify
17642 emission of constant -1 load.
17644 2016-04-25 Jason Merrill <jason@redhat.com>
17646 * gdbinit.in: Skip is-a.h.
17648 * attribs.c (register_scoped_attributes): Fix logic.
17649 * attribs.h: Declare register_scoped_attributes.
17651 2016-04-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17653 * config/rs6000/rs6000-builtin.def: Correct pasto error for
17654 stxvd2x and stxvw4x built-in functions.
17656 2016-04-25 DJ Delorie <dj@redhat.com>
17658 * config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
17659 (ashrhi3): Likewise.
17660 (lshrhi3): Likewise.
17662 2016-04-25 Richard Biener <rguenther@suse.de>
17664 PR tree-optimization/70780
17665 * tree-ssa-pre.c (compute_antic_aux): Also return true if the block
17666 wasn't visited yet.
17667 (compute_antic): Mark blocks with abnormal preds as visited as
17668 they have a final empty antic-in solution already.
17670 2016-04-25 Michael Collison <michael.collison@linaro.org>
17672 * ChangeLog(2016-04-25): Fix ChangeLog formatting.
17674 2016-04-25 Michael Collison <michael.collison@linaro.org>
17676 * config/arm/neon.md (widen_<us>sum<mode>): New patterns where
17677 mode is VQI to improve mixed mode vectorization.
17678 * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3): New
17679 define_insn to match low half of signed vaddw.
17680 * config/arm/neon.md (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): New
17681 define_insn to match high half of signed vaddw.
17682 * config/arm/neon.md (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): New
17683 define_insn to match low half of unsigned vaddw.
17684 * config/arm/neon.md (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): New
17685 define_insn to match high half of unsigned vaddw.
17686 * config/arm/arm.c (arm_simd_vect_par_cnst_half): New function.
17687 (arm_simd_check_vect_par_cnst_half_p): Likewise.
17688 * config/arm/arm-protos.h (arm_simd_vect_par_cnst_half): Prototype
17690 (arm_simd_check_vect_par_cnst_half_p): Likewise.
17691 * config/arm/predicates.md (vect_par_constant_high): Support
17692 big endian and simplify by calling
17693 arm_simd_check_vect_par_cnst_half
17694 (vect_par_constant_low): Likewise.
17696 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
17698 * config/i386/i386.md (*lea<mode>_general_4): Use const_0_to_3_operand
17699 predicate for operand 2.
17701 2016-04-24 Uros Bizjak <ubizjak@gmail.com>
17702 H.J. Lu <hongjiu.lu@intel.com>
17704 * config/i386/i386-protos.h (standard_sse_constant_p): Add
17705 machine_mode argument.
17706 * config/i386/i386.c (standard_sse_constant_p): Return 2 for
17707 constm1_rtx operands. For VOIDmode constants, get mode from
17708 pred_mode. Check mode size if the mode is supported by ABI.
17709 (standard_sse_constant_opcode): Do not use standard_constant_p.
17710 Strictly check ABI support for all-ones operands.
17711 (ix86_legitimate_constant_p): Handle TImode, OImode and XImode
17712 immediates. Update calls to standard_sse_constant_p.
17713 (ix86_expand_vector_move): Update calls to standard_sse_constant_p.
17714 (ix86_rtx_costs): Ditto.
17715 * config/i386/i386.md (*movxi_internal_avx512f): Use
17716 nonimmediate_or_sse_const_operand instead of vector_move_operand.
17717 Use (v,BC) alternative instead of (v,C). Use register_operand
17718 checks instead of MEM_P.
17719 (*movoi_internal_avx): Use nonimmediate_or_sse_const_operand instead
17720 of vector_move_operand. Add (v,BC) alternative and corresponding avx2
17721 isa attribute. Use register_operand checks instead of MEM_P.
17722 (*movti_internal): Use nonimmediate_or_sse_const_operand for
17723 TARGET_SSE. Improve TARGET_SSE insn constraint. Add (v,BC)
17724 alternative and corresponding sse2 isa attribute.
17725 (*movtf_internal, *movdf_internal, *movsf_interal): Update calls
17726 to standard_sse_constant_p.
17727 (FP constant splitters): Ditto.
17728 * config/i386/constraints.md (BC): Do not use standard_sse_constant_p.
17730 * config/i386/predicates.md (constm1_operand): Remove.
17731 (nonimmediate_or_sse_const_operand): Rewrite using RTX.
17732 * config/i386/sse.md (*<avx512>_cvtmask2<ssemodesuffix><mode>): Use
17733 vector_all_ones_operand instead of constm1_operand.
17735 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
17737 * print-rtl.c (print_rtx_insn_vec): New function.
17738 * print-rtl.h: New prototype.
17739 * store-motion.c (struct st_expr): Make avail_stores a vector.
17740 (st_expr_entry): Adjust.
17741 (free_st_expr_entry): Likewise.
17742 (print_store_motion_mems): Likewise.
17743 (find_moveable_store): Likewise.
17744 (compute_store_table): Likewise.
17745 (delete_store): Likewise.
17746 (build_store_vectors): Likewise.
17748 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
17750 * reorg.c (try_merge_delay_insns): Make merged_insns a vector.
17752 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
17754 * vec.h (vec_safe_contains): New function.
17755 (vec::contains): Likewise.
17756 (vec::begin): Likewise.
17757 (vec::end): Likewise.
17759 2016-04-23 Jakub Jelinek <jakub@redhat.com>
17762 * cfgexpand.c (expand_stack_vars): Fix typo.
17764 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
17766 * system.h (list, map, set, vector): Include conditionally.
17767 * auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define.
17768 * graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define.
17769 * ipa-icf.c (INCLUDE_LIST): Define.
17770 * config/aarch64/cortex-a57-fma-steering.c (INCLUDE_LIST): Define.
17771 * config/sh/sh.c (INCLUDE_VECTOR): Define.
17772 * config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define.
17773 (INCLUDE_LIST, INCLUDE_VECTOR): Define.
17774 * cp/logic.cc (INCLUDE_LIST): Define.
17775 * fortran/trans-common.c (INCLUDE_MAP): Define.
17777 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
17779 * auto-profile.c: Remove <string.h> include.
17780 * ipa-icf-gimple.c: Remove <list> include.
17781 * diagnostic.c: Remove <new> include.
17782 * genmatch.c: Likewise.
17783 * pretty-print.c: Likewise.
17784 * toplev.c: Likewise
17785 * c/c-objc-common.c: Likewise.
17786 * cp/error.c: Likewise.
17787 * fortran/error.c: Likewise.
17789 2016-04-22 Richard Biener <rguenther@suse.de>
17791 * lto-streamer-in.c (input_ssa_names): Do not allocate
17792 GIMPLE_NOP for all SSA names.
17793 * lto-streamer-out.c (output_ssa_names): Do not output
17794 SSA names that should have been released.
17796 2016-04-22 Richard Biener <rguenther@suse.de>
17798 PR tree-optimization/70740
17799 * tree-ssa-phiprop.c (propagate_with_phi): Handle inserted
17802 2016-04-21 H.J. Lu <hongjiu.lu@intel.com>
17805 * config/i386/predicates.md (call_insn_operand): Replace
17806 sibcall_memory_operand with memory_operand.
17808 2016-04-21 Patrick Palka <ppalka@gcc.gnu.org>
17810 * tree-vrp.c (register_edge_assert_for_2): Remove redundant
17811 has_single_use() tests.
17812 (register_edge_assert_for_1): Likewise.
17813 (find_assert_locations_1): Check the liveness bitmap instead of
17814 checking has_single_use().
17816 2016-04-21 Kirill Yukhin <kirill.yukhin@intel.com>
17819 * config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
17820 Extract AVX-512BW constraint from AVX.
17822 2016-04-21 Richard Biener <rguenther@suse.de>
17824 PR tree-optimization/70725
17825 * tree-if-conv.c (if_convertible_phi_p): Adjust guard
17826 for phi_convertible_by_degenerating_args.
17827 (predicate_all_scalar_phis): Handle single-argument PHIs.
17829 2016-04-21 Richard Biener <rguenther@suse.de>
17831 PR middle-end/70747
17832 * fold-const.c (fold_comparison): Return properly typed
17835 2016-04-21 Bin Cheng <bin.cheng@arm.com>
17837 PR tree-optimization/70715
17838 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
17839 after expanding BASE using expand_simple_operations.
17841 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
17843 * match.pd (min(-x, -y), max(-x, -y), min(~x, ~y), max(~x, ~y)):
17844 New transformations.
17846 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
17848 * match.pd (min(int_max, x), max(int_min, x)): New transformations.
17850 2016-04-20 Jan Hubicka <jh@suse.cz>
17852 * ipa-inline.c (can_inline_edge_p): Pass caller info to
17853 ultiimate_alias_target.
17854 (update_callee_keys): Likewise.
17855 (lookup_recursive_calls): Likewise.
17856 (speculation_useful_p): Likewise.
17858 2016-04-20 Jan Hubicka <jh@suse.cz>
17861 * cgraph.c (cgraph_set_nothrow_flag_1): Rename to ...
17862 (set_nothrow_flag_1): ... this; handle interposition correctly;
17863 recurse on aliases and thunks.
17864 (cgraph_node::set_nothrow_flag): New.
17865 * ipa-pure-const.c (ignore_edge_for_nothrow): Ignore calls to
17866 functions compiled with non-call exceptions that binds to current
17868 (propagate_nothrow): Be safe WRT interposition.
17869 * cgraph.h (set_nothrow_flag): Update prototype.
17871 2016-04-18 Jan Hubicka <jh@suse.cz>
17873 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
17874 max_loop_iterations_int.
17875 (tree_unswitch_outer_loop): Likewise.
17877 2016-04-20 Bin Cheng <bin.cheng@arm.com>
17879 PR tree-optimization/69489
17880 * tree-if-conv.c (phi_convertible_by_degenerating_args): New.
17881 (if_convertible_phi_p): Call phi_convertible_by_degenerating_args.
17882 Revise dump message.
17883 (if_convertible_bb_p): Remove check on edge count of basic block's
17886 2016-04-20 Bin Cheng <bin.cheng@arm.com>
17888 PR tree-optimization/56625
17889 PR tree-optimization/69489
17890 * tree-data-ref.h (DR_INNERMOST): New macro.
17891 * tree-if-conv.c (innermost_loop_behavior_hash): New class for
17892 hashing struct innermost_loop_behavior.
17893 (ref_DR_map): Remove.
17894 (innermost_DR_map): New map.
17895 (baseref_DR_map): Revise comment.
17896 (hash_memrefs_baserefs_and_store_DRs_read_written_info): Store DR
17897 to innermost_DR_map accroding to its innermost loop behavior.
17898 (ifcvt_memrefs_wont_trap): Get DR from innermost_DR_map according
17899 to its innermost loop behavior.
17900 (if_convertible_loop_p_1): Remove intialization for ref_DR_map.
17901 Add initialization for innermost_DR_map. Record memory reference
17902 in DR_BASE_ADDRESS if the reference is compound one or it doesn't
17903 have innermost loop behavior.
17904 (if_convertible_loop_p): Remove release for ref_DR_map. Release
17907 2016-04-20 Uros Bizjak <ubizjak@gmail.com>
17909 * config/i386/i386.md (*lea<mode>_general_1): Rename from
17910 *lea_general_1. Use explicit SWI12 mode interator.
17911 (*lea<mode>_general_2): Rename from *lea_general_2.
17912 Use explicit SWI12 mode interator.
17913 (*lea<mode>_general_3): Rename from *lea_general_3.
17914 Use explicit SWI12 mode interator.
17915 (*lea<SWI12:mode>_general_4): Split from *lea_general_4.
17916 Use explicit SWI12 mode interator.
17917 (*lea<SWI48:mode>_general_4): Split from *lea_general_4.
17918 Use explicit SWI48 mode interator.
17920 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
17922 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
17923 Short-cut unaligned load and store cases. Handle all integer
17925 (ix86_expand_vector_move_misalign): Short-cut unaligned load
17926 and store cases. Call ix86_avx256_split_vector_move_misalign
17927 directly without checking mode class.
17929 2016-04-20 Andrew Pinski <apinski@cavium.com>
17930 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17933 * config/aarch64/aarch64.md (sibcall): Force call
17934 address to be DImode for ILP32.
17935 (sibcall_value): Likewise.
17937 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
17939 * doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.
17941 2016-04-20 Richard Biener <rguenther@suse.de>
17943 * gimple-match.h (maybe_build_generic_op): Adjust prototype.
17944 * gimple-match-head.c (maybe_build_generic_op): Pass all ops
17945 by reference, clear op1 and op2 when GENERICizing BIT_FIELD_REF.
17946 (maybe_push_res_to_seq): Adjust.
17947 * gimple-fold.c (maybe_build_generic_op): Likewise.
17949 2016-04-20 Marek Polacek <polacek@redhat.com>
17951 * tree-if-conv.c (is_false_predicate): For NULL_TREE return false
17954 2016-04-20 Ilya Enkovich <ilya.enkovich@intel.com>
17956 * config/i386/sse.md (vec_unpacks_lo_hi): Always
17957 use kmovw to support AVX512F target.
17959 2016-04-20 Bin Cheng <bin.cheng@arm.com>
17961 * tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
17963 2016-04-20 Marek Polacek <polacek@redhat.com>
17965 PR tree-optimization/70725
17966 * tree-if-conv.c (is_false_predicate): New function.
17967 (predicate_mem_writes): Use it.
17969 2016-04-20 Richard Biener <rguenther@suse.de>
17971 PR tree-optimization/70726
17972 * tree-vect-stmts.c (vectorizable_shift): Do not use scalar
17973 shift amounts from a pattern stmt operand.
17975 2016-04-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17978 * config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new
17979 stack_restore_from_fpr pattern when restoring r15.
17980 (s390_optimize_prologue): Strip away the memory barrier in the
17981 parallel when trying to get rid of restore insns.
17982 * config/s390/s390.md ("stack_restore_from_fpr"): New insn
17983 definition for loading the stack pointer from an FPR. Compared to
17984 the normal move insn this pattern includes a full memory barrier.
17986 2016-04-19 Jakub Jelinek <jakub@redhat.com>
17988 PR middle-end/70680
17989 * gimplify.c (gimplify_omp_for): Call omp_notice_variable for
17990 implicitly linear or lastprivate iterator on the outer context.
17992 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
17994 * config/i386/i386.c (ix86_legitimate_combined_insn): Remove
17996 * config/i386/i386.md (ssememalign): Removed.
17997 * config/i386/sse.md: Remove ssememalign attribute from patterns.
17999 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
18002 * config/i386/avx512bwintrin.h (_mm512_mask_loadu_epi16): Pass
18003 const short * to __builtin_ia32_loaddquhi512_mask.
18004 (_mm512_maskz_loadu_epi16): Likewise.
18005 (_mm512_mask_storeu_epi16): Pass short * to
18006 __builtin_ia32_storedquhi512_mask.
18007 (_mm512_mask_loadu_epi8): Pass const char * to
18008 __builtin_ia32_loaddquqi512_mask.
18009 (_mm512_maskz_loadu_epi8): Likewise.
18010 (_mm512_mask_storeu_epi8): Pass char * to
18011 __builtin_ia32_storedquqi512_mask.
18012 * config/i386/avx512fintrin.h (_mm512_loadu_pd): Pass
18013 const double * to __builtin_ia32_loadupd512_mask.
18014 (_mm512_mask_loadu_pd): Likewise.
18015 (_mm512_maskz_loadu_pd): Likewise.
18016 (_mm512_storeu_pd): Pass double * to
18017 __builtin_ia32_storeupd512_mask.
18018 (_mm512_mask_storeu_pd): Likewise.
18019 (_mm512_loadu_ps): Pass const float * to
18020 __builtin_ia32_loadups512_mask.
18021 (_mm512_mask_loadu_ps): Likewise.
18022 (_mm512_maskz_loadu_ps): Likewise.
18023 (_mm512_storeu_ps): Pass float * to
18024 __builtin_ia32_storeups512_mask.
18025 (_mm512_mask_storeu_ps): Likewise.
18026 (_mm512_mask_loadu_epi64): Pass const long long * to
18027 __builtin_ia32_loaddqudi512_mask.
18028 (_mm512_maskz_loadu_epi64): Likewise.
18029 (_mm512_mask_storeu_epi64): Pass long long *
18030 to __builtin_ia32_storedqudi512_mask.
18031 (_mm512_loadu_si512): Pass const int * to
18032 __builtin_ia32_loaddqusi512_mask.
18033 (_mm512_mask_loadu_epi32): Likewise.
18034 (_mm512_maskz_loadu_epi32): Likewise.
18035 (_mm512_storeu_si512): Pass int * to
18036 __builtin_ia32_storedqusi512_mask.
18037 (_mm512_mask_storeu_epi32): Likewise.
18038 * config/i386/avx512vlbwintrin.h (_mm256_mask_storeu_epi8): Pass
18039 char * to __builtin_ia32_storedquqi256_mask.
18040 (_mm_mask_storeu_epi8): Likewise.
18041 (_mm256_mask_loadu_epi16): Pass const short * to
18042 __builtin_ia32_loaddquhi256_mask.
18043 (_mm256_maskz_loadu_epi16): Likewise.
18044 (_mm_mask_loadu_epi16): Pass const short * to
18045 __builtin_ia32_loaddquhi128_mask.
18046 (_mm_maskz_loadu_epi16): Likewise.
18047 (_mm256_mask_loadu_epi8): Pass const char * to
18048 __builtin_ia32_loaddquqi256_mask.
18049 (_mm256_maskz_loadu_epi8): Likewise.
18050 (_mm_mask_loadu_epi8): Pass const char * to
18051 __builtin_ia32_loaddquqi128_mask.
18052 (_mm_maskz_loadu_epi8): Likewise.
18053 (_mm256_mask_storeu_epi16): Pass short * to.
18054 __builtin_ia32_storedquhi256_mask.
18055 (_mm_mask_storeu_epi16): Pass short * to.
18056 __builtin_ia32_storedquhi128_mask.
18057 * config/i386/avx512vlintrin.h (_mm256_mask_loadu_pd): Pass
18058 const double * to __builtin_ia32_loadupd256_mask.
18059 (_mm256_maskz_loadu_pd): Likewise.
18060 (_mm_mask_loadu_pd): Pass onst double * to
18061 __builtin_ia32_loadupd128_mask.
18062 (_mm_maskz_loadu_pd): Likewise.
18063 (_mm256_mask_storeu_pd): Pass double * to
18064 __builtin_ia32_storeupd256_mask.
18065 (_mm_mask_storeu_pd): Pass double * to
18066 __builtin_ia32_storeupd128_mask.
18067 (_mm256_mask_loadu_ps): Pass const float * to
18068 __builtin_ia32_loadups256_mask.
18069 (_mm256_maskz_loadu_ps): Likewise.
18070 (_mm_mask_loadu_ps): Pass const float * to
18071 __builtin_ia32_loadups128_mask.
18072 (_mm_maskz_loadu_ps): Likewise.
18073 (_mm256_mask_storeu_ps): Pass float * to
18074 __builtin_ia32_storeups256_mask.
18075 (_mm_mask_storeu_ps): ass float * to
18076 __builtin_ia32_storeups128_mask.
18077 (_mm256_mask_loadu_epi64): Pass const long long * to
18078 __builtin_ia32_loaddqudi256_mask.
18079 (_mm256_maskz_loadu_epi64): Likewise.
18080 (_mm_mask_loadu_epi64): Pass const long long * to
18081 __builtin_ia32_loaddqudi128_mask.
18082 (_mm_maskz_loadu_epi64): Likewise.
18083 (_mm256_mask_storeu_epi64): Pass long long * to
18084 __builtin_ia32_storedqudi256_mask.
18085 (_mm_mask_storeu_epi64): Pass long long * to
18086 __builtin_ia32_storedqudi128_mask.
18087 (_mm256_mask_loadu_epi32): Pass const int * to
18088 __builtin_ia32_loaddqusi256_mask.
18089 (_mm256_maskz_loadu_epi32): Likewise.
18090 (_mm_mask_loadu_epi32): Pass const int * to
18091 __builtin_ia32_loaddqusi128_mask.
18092 (_mm_maskz_loadu_epi32): Likewise.
18093 (_mm256_mask_storeu_epi32): Pass int * to
18094 __builtin_ia32_storedqusi256_mask.
18095 (_mm_mask_storeu_epi32): Pass int * to
18096 __builtin_ia32_storedqusi128_mask.
18097 * config/i386/i386-builtin-types.def (PCSHORT): New.
18098 (PINT64): Likewise.
18099 (V64QI_FTYPE_PCCHAR_V64QI_UDI): Likewise.
18100 (V32HI_FTYPE_PCSHORT_V32HI_USI): Likewise.
18101 (V32QI_FTYPE_PCCHAR_V32QI_USI): Likewise.
18102 (V16SF_FTYPE_PCFLOAT_V16SF_UHI): Likewise.
18103 (V8DF_FTYPE_PCDOUBLE_V8DF_UQI): Likewise.
18104 (V16SI_FTYPE_PCINT_V16SI_UHI): Likewise.
18105 (V16HI_FTYPE_PCSHORT_V16HI_UHI): Likewise.
18106 (V16QI_FTYPE_PCCHAR_V16QI_UHI): Likewise.
18107 (V8SF_FTYPE_PCFLOAT_V8SF_UQI): Likewise.
18108 (V8DI_FTYPE_PCINT64_V8DI_UQI): Likewise.
18109 (V8SI_FTYPE_PCINT_V8SI_UQI): Likewise.
18110 (V8HI_FTYPE_PCSHORT_V8HI_UQI): Likewise.
18111 (V4DF_FTYPE_PCDOUBLE_V4DF_UQI): Likewise.
18112 (V4SF_FTYPE_PCFLOAT_V4SF_UQI): Likewise.
18113 (V4DI_FTYPE_PCINT64_V4DI_UQI): Likewise.
18114 (V4SI_FTYPE_PCINT_V4SI_UQI): Likewise.
18115 (V2DF_FTYPE_PCDOUBLE_V2DF_UQI): Likewise.
18116 (V2DI_FTYPE_PCINT64_V2DI_UQI): Likewise.
18117 (VOID_FTYPE_PDOUBLE_V8DF_UQI): Likewise.
18118 (VOID_FTYPE_PDOUBLE_V4DF_UQI): Likewise.
18119 (VOID_FTYPE_PDOUBLE_V2DF_UQI): Likewise.
18120 (VOID_FTYPE_PFLOAT_V16SF_UHI): Likewise.
18121 (VOID_FTYPE_PFLOAT_V8SF_UQI): Likewise.
18122 (VOID_FTYPE_PFLOAT_V4SF_UQI): Likewise.
18123 (VOID_FTYPE_PINT64_V8DI_UQI): Likewise.
18124 (VOID_FTYPE_PINT64_V4DI_UQI): Likewise.
18125 (VOID_FTYPE_PINT64_V2DI_UQI): Likewise.
18126 (VOID_FTYPE_PINT_V16SI_UHI): Likewise.
18127 (VOID_FTYPE_PINT_V8SI_UHI): Likewise.
18128 (VOID_FTYPE_PINT_V4SI_UHI): Likewise.
18129 (VOID_FTYPE_PSHORT_V32HI_USI): Likewise.
18130 (VOID_FTYPE_PSHORT_V16HI_UHI): Likewise.
18131 (VOID_FTYPE_PSHORT_V8HI_UQI): Likewise.
18132 (VOID_FTYPE_PCHAR_V64QI_UDI): Likewise.
18133 (VOID_FTYPE_PCHAR_V32QI_USI): Likewise.
18134 (VOID_FTYPE_PCHAR_V16QI_UHI): Likewise.
18135 (V64QI_FTYPE_PCV64QI_V64QI_UDI): Removed.
18136 (V32HI_FTYPE_PCV32HI_V32HI_USI): Likewise.
18137 (V32QI_FTYPE_PCV32QI_V32QI_USI): Likewise.
18138 (V16HI_FTYPE_PCV16HI_V16HI_UHI): Likewise.
18139 (V16QI_FTYPE_PCV16QI_V16QI_UHI): Likewise.
18140 (V8HI_FTYPE_PCV8HI_V8HI_UQI): Likewise.
18141 (VOID_FTYPE_PV32HI_V32HI_USI): Likewise.
18142 (VOID_FTYPE_PV16HI_V16HI_UHI): Likewise.
18143 (VOID_FTYPE_PV8HI_V8HI_UQI): Likewise.
18144 (VOID_FTYPE_PV64QI_V64QI_UDI): Likewise.
18145 (VOID_FTYPE_PV32QI_V32QI_USI): Likewise.
18146 (VOID_FTYPE_PV16QI_V16QI_UHI): Likewise.
18147 * config/i386/i386.c (ix86_emit_save_reg_using_mov): Don't
18149 (ix86_emit_restore_sse_regs_using_mov): Don't use UNSPEC_LOADU.
18150 (ix86_avx256_split_vector_move_misalign): Don't use unaligned
18152 (ix86_expand_vector_move_misalign): Likewise.
18153 (bdesc_special_args): Use CODE_FOR_movvNXY_internal and pointer
18154 to scalar function prototype for unaligned load/store builtins.
18155 (ix86_expand_special_args_builtin): Updated.
18156 * config/i386/sse.md (UNSPEC_LOADU): Removed.
18157 (UNSPEC_STOREU): Likewise.
18158 (VI_ULOADSTORE_BW_AVX512VL): Likewise.
18159 (VI_ULOADSTORE_F_AVX512VL): Likewise.
18160 (ssescalarsize): Handle V4TI, V2TI and V1TI.
18161 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
18162 (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
18163 (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Likewise.
18164 (<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask): Likewise.
18165 (<sse2_avx_avx512f>_loaddqu<mode><mask_name>): Likewise.
18166 (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"): Likewise.
18167 (sse2_avx_avx512f>_storedqu<mode>): Likewise.
18168 (<avx512>_storedqu<mode>_mask): Likewise.
18169 (*sse4_2_pcmpestr_unaligned): Likewise.
18170 (*sse4_2_pcmpistr_unaligned): Likewise.
18171 (*mov<mode>_internal): Renamed to ...
18172 (mov<mode>_internal): This. Remove check of AVX and IAMCU on
18173 misaligned operand. Replace vmovdqu64 with vmovdqu<ssescalarsize>.
18174 (movsd/movhpd to movupd peephole): Don't use UNSPEC_LOADU.
18175 (movlpd/movhpd to movupd peephole): Don't use UNSPEC_STOREU.
18177 2016-04-19 Richard Biener <rguenther@suse.de>
18179 PR tree-optimization/70171
18180 * tree-ssa-phiprop.c: Include stor-layout.h.
18181 (phiprop_insert_phi): Handle the aggregate copy case.
18182 (propagate_with_phi): Likewise.
18184 2016-04-19 Uros Bizjak <ubizjak@gmail.com>
18186 * config/i386/i386.c (ix86_decompose_address): Use lowpart_subreg
18187 instead of simplify_gen_subreg (... , 0).
18188 (ix86_delegitimize_address): Ditto.
18189 (ix86_split_divmod): Ditto.
18190 (ix86_split_copysign_const): Ditto.
18191 (ix86_split_copysign_var): Ditto.
18192 (ix86_expand_args_builtin): Ditto.
18193 (ix86_expand_round_builtin): Ditto.
18194 (ix86_expand_special_args_builtin): Ditto.
18195 * config/i386/i386.md (TARGET_USE_VECTOR_FP_CONVERTS splitters): Ditto.
18196 (TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters and peephole2s): Ditto.
18197 (udivmodqi4): Ditto.
18198 (absneg splitters): Ditto.
18199 (*jcc_bt<mode>_1): Ditto.
18201 2016-04-19 Richard Biener <rguenther@suse.de>
18203 PR tree-optimization/70724
18204 * tree-ssa-sccvn.c (scc_vn_restore_ssa_info): Split SSA info
18205 restoring out from ...
18206 (free_scc_vn): ... here.
18207 * tree-ssa-sccvn.h (scc_vn_restore_ssa_info): Declare.
18208 * tres-ssa-pre.c (pass_pre::execute): Restore SSA info before
18210 (pass_fre::execute): Restore SSA info.
18212 2016-04-19 Richard Biener <rguenther@suse.de>
18214 * gimple-walk.h (struct walk_stmt_info): Add stmt member.
18215 * gimple-walk.c (walk_gimple_op): Initialize it.
18216 (walk_gimple_asm): Set wi->is_lhs before each callback invocation.
18217 * tree-inline.c (remap_gimple_op_r): Set SSA_NAME_DEF_STMT when
18218 remapping SSA names of defs.
18219 (copy_bb): Remove walk over all SSA defs and SSA_NAME_DEF_STMT
18222 2016-04-18 Vladimir Makarov <vmakarov@redhat.com>
18224 PR middle-end/70689
18225 * lra-constraints.c (equiv_substition_p): New.
18226 (process_alt_operands): Use it.
18227 (swap_operands): Swap it.
18228 (curr_insn_transform): Update it.
18230 2016-04-18 Michael Matz <matz@suse.de>
18232 * tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount.
18233 (SET_TYPE_ALIGN, SET_DECL_ALIGN): New.
18234 * tree-core.h (tree_type_common.align): Use bit-field.
18235 (tree_type_common.spare): New.
18236 (tree_decl_common.off_align): Make smaller.
18237 (tree_decl_common.align): Use bit-field.
18239 * expr.c (expand_expr_addr_expr_1): Use SET_TYPE_ALIGN.
18240 * omp-low.c (install_var_field): Use SET_DECL_ALIGN.
18241 (scan_sharing_clauses): Ditto.
18242 (finish_taskreg_scan): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
18243 (omp_finish_file): Ditto.
18244 * stor-layout.c (do_type_align): Use SET_DECL_ALIGN.
18245 (layout_decl): Ditto.
18246 (relayout_decl): Ditto.
18247 (finalize_record_size): Use SET_TYPE_ALIGN.
18248 (finalize_type_size): Ditto.
18249 (finish_builtin_struct): Ditto.
18250 (layout_type): Ditto.
18251 (initialize_sizetypes): Ditto.
18252 * targhooks.c (std_gimplify_va_arg_expr): Use SET_TYPE_ALIGN.
18253 * tree-nested.c (insert_field_into_struct): Use SET_TYPE_ALIGN.
18254 (lookup_field_for_decl): Use SET_DECL_ALIGN.
18255 (get_chain_field): Ditto.
18256 (get_trampoline_type): Ditto.
18257 (get_nl_goto_field): Ditto.
18258 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
18260 (unpack_ts_type_common_value_fields): Use SET_TYPE_ALIGN.
18261 * gimple-expr.c (copy_var_decl): Use SET_DECL_ALIGN.
18262 * tree.c (make_node_stat): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
18263 (build_qualified_type): Use SET_TYPE_ALIGN.
18264 (build_aligned_type, build_range_type_1): Ditto.
18265 (build_atomic_base): Ditto.
18266 (build_common_tree_nodes): Ditto.
18267 * cfgexpand.c (align_local_variable): Use SET_DECL_ALIGN.
18268 (expand_one_stack_var_at): Ditto.
18269 * coverage.c (build_var): Use SET_DECL_ALIGN.
18270 * except.c (init_eh): Ditto.
18271 * function.c (assign_parm_setup_block): Ditto.
18272 * symtab.c (increase_alignment_1): Ditto.
18273 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Ditto.
18274 * tree-vect-stmts.c (ensure_base_align): Ditto.
18275 * varasm.c (align_variable): Ditto.
18276 (assemble_variable): Ditto.
18277 (build_constant_desc): Ditto.
18278 (output_constant_def_contents): Ditto.
18280 * config/arm/arm.c (arm_relayout_function): Use SET_DECL_ALIGN.
18281 * config/avr/avr.c (avr_adjust_type_node): Use SET_TYPE_ALIGN.
18282 * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Ditto.
18283 * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Ditto.
18284 * config/spu/spu.c (spu_build_builtin_va_list): Use SET_DECL_ALIGN.
18286 2016-04-18 H.J. Lu <hongjiu.lu@intel.com>
18289 * config/i386/sse.md (sse2_loadlpd): Accept load from "xm" and
18290 replace %vmovsd with "%vmovq".
18291 (vec_concatv2df): Likewise.
18293 2016-04-18 Uros Bizjak <ubizjak@gmail.com>
18295 * config/i386/mmx.md (*vec_extractv2sf_0): Use gen_lowpart.
18296 (*vec_extractv2si_0): Ditto.
18297 * config/i386/sse.md (*vec_extractv4sf_0): Ditto.
18298 (zero_extended_scalar_load_operand splitters): Ditto.
18299 (vec_extract splitters): Ditto.
18300 (*vec_extractv4si_0_zext): Ditto.
18301 (avx_<castmode><avxsizesuffix>_<castmode>): Use gen_lowpart
18302 and lowpart_subreg.
18303 (avx512f_<castmode><avxsizesuffix>_<castmode>): Ditto.
18304 (avx512f_<castmode><avxsizesuffix>_256<castmode>): Ditto.
18305 (*sse4_1_extractps): Use lowpart_subreg.
18306 * config/i386/i386.md (x87 floatsplitter): Use gen_lowpart.
18308 2016-04-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18310 * doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
18312 (Specific, *-*-solaris2*): Update Solaris 11 bundled gcc versions.
18313 Mention Solaris 11 packaging changes.
18314 Update gas and gld requirements.
18315 Remove reference to pre-Solaris 10 bug.
18316 (Specific, sparc-sun-solaris2*): Remove reference to pre-Solaris 10
18318 (Specific, sparc64-*-solaris2*): Remove reference to bootstrap
18321 2016-04-17 Jan Hubicka <jh@suse.cz>
18323 * tree-ssa-loop-ivopts.c (avg_loop_niter): Use also
18324 max_loop_iterations_int.
18326 2016-04-18 Richard Biener <rguenther@suse.de>
18328 PR tree-optimization/43434
18329 * tree-ssa-structalias.c (struct vls_data): New.
18330 (visit_loadstore): Handle all pointer-based accesses.
18331 (compute_dependence_clique): Compute a bitmap of restrict tags
18332 assigned bases and pass it to visit_loadstore.
18334 2016-04-18 Matthew Wahab <matthew.wahab@arm.com>
18337 * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc,
18338 armv8.1-a and armv8.1-a+crc.
18340 2016-04-18 Richard Biener <rguenther@suse.de>
18342 PR tree-optimization/70701
18343 * tree-ssa-sccvn.c (vn_reference_lookup_3): Resolve fully constant
18344 references after translating through a memcpy.
18346 2016-04-18 Richard Biener <rguenther@suse.de>
18348 * tree-ssa-pre.c (postorder, postorder_num): Make locals ...
18349 (compute_antic): ... here. For partial antic use regular
18350 postorder and scrap iteration.
18351 (compute_partial_antic_aux): Remove unused return value.
18352 (init_pre): Do not allocate postorder.
18353 (fini_pre): Do not free postorder.
18355 2016-04-18 Richard Biener <rguenther@suse.de>
18357 PR middle-end/37870
18358 * expmed.c (extract_bit_field_1): Remove broken case
18359 using a wider MODE_INT mode.
18361 2016-04-18 Segher Boessenkool <segher@kernel.crashing.org>
18363 * has-brig.c (lendian16): Don't try to use __builtin_bswap16
18364 unless compiling with at least GCC-4.8.
18366 2016-04-17 Jan Hubicka <jh@suse.cz>
18369 * graphite.c (graphite_finalize): Update call to
18370 tree_estimate_probability.
18371 * predict.h (tree_estimate_probability): Update prototype.
18373 2016-04-17 Jan Hubicka <jh@suse.cz>
18375 * predict.c (combine_predictions_for_bb): Add dry_run parmaeter.
18376 (tree_estimate_probability): Likewise.
18377 (pass_profile::execute): Update.
18378 (report_predictor_hitrates): New function.
18379 * profile.c (compute_branch_probabilities): Use it.
18380 * predict.h (report_predictor_hitrates): Declare.
18382 2016-04-17 Jan Hubicka <jh@suse.cz>
18385 * cgraph.h (cgraph_node::set_const_flag,
18386 cgraph_node::set_pure_flag): Update prototype to return bool;
18388 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Thunks
18389 of interposable symbol are interposable, too.
18390 (cgraph_set_const_flag_1): Rename to ...
18391 (set_const_flag_1): ... this one; change to self recursive function
18392 instead of call_for_symbol_thunks_and_aliases. Handle correctly
18393 clearnig the flag in all variants and also virtual thunks of const
18394 functions are pure; track if any change was done.
18395 (cgraph_node::set_const_flag): Update.
18396 (struct set_pure_flag_info): New struct.
18397 (cgraph_set_pure_flag_1): Rename to ...
18398 (set_pure_flag_1): ... this one; take set_pure_flag_info parameter
18399 rather than pointer encoded flags; track if any changes was done;
18400 handle correctly clearning flag and setting flag of aliases already
18402 (cgraph_node::set_pure_flag): Update.
18403 (cgraph_node::set_nothrow_flag): Handle correctly clearning the flag.
18405 2016-04-17 Tom de Vries <tom@codesourcery.com>
18408 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Escape
18409 backslash in label.
18411 2016-04-17 Tom de Vries <tom@codesourcery.com>
18413 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Classify chars
18414 '{}<> ' as escape-for-record.
18416 2016-04-17 Tom de Vries <tom@codesourcery.com>
18418 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Simplify loop
18421 2016-04-17 Tom de Vries <tom@codesourcery.com>
18424 * tree-pass.h (class opt_pass): Remove graph_dump_initialized member.
18425 * dumpfile.h (struct dump_file_info): Add graph_dump_initialized field.
18426 * dumpfile.c (dump_files): Initialize graph_dump_initialized field.
18427 * passes.c (finish_optimization_passes): Only call
18428 finish_graph_dump_file if dfi->graph_dump_initialized.
18429 (execute_function_dump, pass_init_dump_file): Use
18430 dfi->graph_dump_initialized instead of pass->graph_dump_initialized.
18432 2016-04-17 Tom de Vries <tom@codesourcery.com>
18434 PR tree-optimization/70256
18435 * tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap)
18436 (debug_varmap): New function.
18438 2016-04-17 Tom de Vries <tom@codesourcery.com>
18441 * passes.c (pass_manager::register_pass): Propagate pflags.
18443 2016-04-17 Tom de Vries <tom@codesourcery.com>
18446 * pass_manager.h (TERMINATE_PASS_LIST): Add pass argument.
18447 * passes.c (pass_manager::pass_manager): Declare and init p_start in
18448 INSERT_PASSES_AFTER. Add pass parameter to TERMINATE_PASS_LIST, and
18449 check if it's equal to p_start.
18450 * passes.def: Add arguments to TERMINATE_PASS_LISTs.
18452 2016-04-15 Jan Hubicka <jh@suse.cz>
18455 * cgraph.c (cgraph_set_const_flag_1): Only set as pure if
18456 function does not bind to current def.
18457 * ipa-pure-const.c (worse_state): Add FROM and TO parameters;
18458 handle conservatively calls to functions that does not need to bind
18460 (check_call): Update call of worse_state.
18461 (ignore_edge_for_nothrow): Update.
18462 (ignore_edge_for_pure_const): Likewise.
18463 (propagate_pure_const): Update calls to worse_state.
18464 (skip_function_for_local_pure_const): Reformat comments.
18466 2016-04-15 Jan Hubicka <jh@suse.cz>
18469 * cgraph.c (cgraph_node::get_availability): Add REF parameter.
18470 (cgraph_node::function_symbol): Likewise.
18471 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
18472 * cgraph.h (symtab_node::get_availabbility): Add REF parameter.
18473 (symtab_node::ultimate_alias_target): Add REF parameter.
18474 (symtab_node::binds_to_current_def_p): Declare.
18475 (symtab_node;:ultimate_alias_target_1): Add REF parameter.
18476 (cgraph_node::function_symbol): Likewise.
18477 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
18478 (cgraph_node::get_availability): Likewise.
18479 (cgraph_edge::binds_to_current_def_p): New inline function.
18480 (varpool_node::get_availability): Add REF parameter.
18481 (varpool_node::ultimate_alias_target): Likewise.
18482 * symtab.c (symtab_node::ultimate_alias_target_1): Likewise.
18483 (symtab_node::binds_to_current_def_p): Likewise.
18484 * varpool.c (varpool_node::get_availability): Likewise.
18486 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
18489 * config/i386/sse.md(define_insn "<avx512>_vec_dup<mode><mask_name>"):
18490 Fix mode size check.
18492 2016-04-15 Jakub Jelinek <jakub@redhat.com>
18494 * BASE-VER: Set to 7.0.0.
18496 2016-04-15 Alexander Monakov <amonakov@ispras.ru>
18498 * config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.
18500 2016-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18502 * doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T
18503 architecture revisions.
18505 2016-04-15 Bernd Schmidt <bschmidt@redhat.com>
18507 * config/i386/i386-protos.h (ix86_using_red_zone): Declare.
18508 * config/i386/i386.c (ix86_using_red_zone): No longer static.
18509 * config/i386/i386.md (stack decrement to push peepholes): Guard
18510 with !x86_using_red_zone ().
18512 2016-04-15 Jakub Jelinek <jakub@redhat.com>
18515 * tree-pretty-print.c (do_niy): Add FLAGS argument, pass it down
18516 to dump_generic_node.
18517 (NIY): Pass also flags to do_niy.
18519 2016-04-15 Thomas Schwinge <thomas@codesourcery.com>
18521 * omp-low.c (simd_clone_struct_alloc, simd_clone_struct_copy)
18522 (simd_clone_vector_of_formal_parm_types)
18523 (simd_clone_clauses_extract, simd_clone_compute_base_data_type)
18524 (simd_clone_mangle, simd_clone_create)
18525 (simd_clone_adjust_return_type, create_tmp_simd_array)
18526 (simd_clone_adjust_argument_types, simd_clone_init_simd_arrays)
18527 (struct modify_stmt_info, ipa_simd_modify_stmt_ops)
18528 (ipa_simd_modify_function_body, simd_clone_linear_addend)
18529 (simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone)
18530 (pass_data_omp_simd_clone, class pass_omp_simd_clone)
18531 (pass_omp_simd_clone::gate, make_pass_omp_simd_clone): Move into...
18532 * omp-simd-clone.c: ... this new file.
18533 (simd_clone_vector_of_formal_parm_types): Make it static.
18534 * Makefile.in (OBJS): Add omp-simd-clone.o.
18536 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
18539 * config/i386/sse.md: Use proper memory operand modifiers.
18542 2016-04-15 Richard Biener <rguenther@suse.de>
18543 Alan Modra <amodra@gmail.com>
18545 PR tree-optimization/70130
18546 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Detect
18547 when alignment stays not the same and no not use the realign
18550 2016-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
18553 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
18554 direct move handlers for KFmode. Change TFmode handlers test from
18555 FLOAT128_IEEE_P to FLOAT128_VECTOR_P.
18557 2016-04-14 Jakub Jelinek <jakub@redhat.com>
18560 * ipa-utils.h (polymorphic_ctor_dtor_p): New prototype.
18561 * ipa-polymorphic-call.c (polymorphic_ctor_dtor_p): New function.
18562 (inlined_polymorphic_ctor_dtor_block_p): Use it.
18563 * tree-ssa-live.c (remove_unused_scope_block_p): When
18564 in_ctor_dtor_block, avoid discarding not just BLOCKs with
18565 BLOCK_ABSTRACT_ORIGIN being FUNCTION_DECL, but even when
18566 block_ultimate_origin is FUNCTION_DECL.
18567 (remove_unused_locals): If current_function_decl is
18568 polymorphic_ctor_dtor_p, pass initial true to
18569 remove_unused_scope_block_p' is_ctor_dtor_block.
18571 2016-04-14 Martin Sebor <msebor@redhat.com>
18576 * doc/extend.texi (Variable Length): Revert.
18578 2016-04-14 Marek Polacek <polacek@redhat.com>
18579 Jan Hubicka <hubicka@ucw.cz>
18582 * tree.c (verify_type): Disable the canonical type of main variant
18585 2016-04-14 Jason Merrill <jason@redhat.com>
18587 * cfgexpand.c, expr.c: Revert previous change.
18589 2016-04-14 Cesar Philippidis <cesar@codesourcery.com>
18591 PR middle-end/70643
18592 * omp-low.c (lower_oacc_reductions): Check for TREE_CONSTANT
18593 when building a mem ref for the incoming reduction variable.
18595 2016-04-14 Richard Biener <rguenther@suse.de>
18597 PR tree-optimization/70614
18598 * tree-scalar-evolution.c (analyze_evolution_in_loop): Terminate
18599 loop if the evolution dropped to chrec_dont_know.
18600 (interpret_condition_phi): Likewise.
18602 2016-04-14 Richard Biener <rguenther@suse.de>
18604 PR tree-optimization/70623
18605 * tree-ssa-pre.c (changed_blocks): Make global ...
18606 (compute_antic): ... local here. Move and fix worklist
18607 handling here. Do not clear EDGE_DFS_BACK or call mark_dfs_back_edges.
18608 (compute_antic_aux): Add dumping for MAX assumed succs. Remove
18609 worklist handling, dump when ANTIC_IN changed.
18610 (compute_partial_antic_aux): Remove worklist handling.
18611 (init_pre): Do not compute post dominators. Add a comment about
18612 the CFG order chosen.
18613 (fini_pre): Do not free post dominators.
18615 2016-04-13 Martin Sebor <msebor@redhat.com>
18620 * doc/extend.texi (Variable Length): Document C++ specifics.
18622 2016-04-13 Jakub Jelinek <jakub@redhat.com>
18625 * ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt
18626 on all recursive call stmts. Return TODO_cleanup_cfg if any dead
18627 eh edges have been purged.
18630 * tree-sra.c (create_access_replacement,
18631 get_replaced_param_substitute): Set DECL_NAMELESS on repl if it
18633 * tree-pretty-print.c (dump_fancy_name): New function.
18634 (dump_decl_name, dump_generic_node): Use it.
18636 2016-04-13 Jason Merrill <jason@redhat.com>
18638 * cfgexpand.c (pass_expand::execute): Handle attribute "abi warning".
18639 * expr.c (expand_expr_real_1): Likewise.
18641 2016-04-13 Ilya Enkovich <ilya.enkovich@intel.com>
18643 * config/i386/i386.md (kunpckhi): Swap operands.
18644 (kunpcksi): Likewise.
18645 (kunpckdi): Likewise.
18646 * config/i386/sse.md (vec_pack_trunc_qi): Likewise.
18647 (vec_pack_trunc_<mode>): Likewise.
18649 2016-04-13 Jakub Jelinek <jakub@redhat.com>
18652 * explow.c (convert_memory_address_addr_space_1): Formatting fix.
18654 PR middle-end/70633
18655 * gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
18656 gimplification turns some element into non-constant.
18659 * rtl.h (convert_memory_address_addr_space_1): New prototype.
18660 * explow.c (convert_memory_address_addr_space_1): No longer static,
18661 add NO_EMIT argument and don't call convert_modes if true, pass
18662 it down recursively, remove break after return.
18663 (convert_memory_address_addr_space): Adjust caller.
18664 * simplify-rtx.c (simplify_unary_operation_1): Call
18665 convert_memory_address_addr_space_1 instead of convert_memory_address,
18666 if it returns NULL, don't simplify.
18668 2016-04-12 Eric Botcazou <ebotcazou@adacore.com>
18671 * config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.
18673 2016-04-12 Jakub Jelinek <jakub@redhat.com>
18675 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
18676 Bump the upper SIMDLEN limits, so that if the return type or
18677 characteristic type if the return type is void can be passed in
18678 all available SSE2/AVX/AVX2/AVX512-F registers, the SIMDLEN is
18681 2016-04-12 Michael Meissner <meissner@linux.vnet.ibm.com>
18684 * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2_internal):
18685 Do not use "=" constraint on an input constraint.
18686 (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
18687 (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
18688 (ieee_128bit_vsx_nabs<mode>2): Correct splitter so that it
18689 generates (neg (abs ...)) instead of (abs ...).
18691 2016-04-12 Jakub Jelinek <jakub@redhat.com>
18693 PR rtl-optimization/70596
18694 * lra-spills.c (spill_pseudos): Don't delete debug insns, instead
18695 just invalidate LRA data and reset them. Adjust dump wording.
18697 2016-04-12 Martin Liska <mliska@suse.cz>
18700 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
18702 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
18704 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
18705 max_loop_iterations_int.
18706 (tree_unswitch_outer_loop): Likewise.
18707 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
18708 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
18710 2016-04-12 Tom de Vries <tom@codesourcery.com>
18712 PR tree-optimization/68756
18713 * graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr
18714 instead of new_name.
18716 2016-04-12 Jakub Jelinek <jakub@redhat.com>
18718 PR tree-optimization/70602
18719 * tree-sra.c (generate_subtree_copies): Don't write anything into
18720 constant pool decls.
18722 * omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
18723 regardless whether there are depend clauses or not.
18725 2016-04-11 Michael Meissner <meissner@linux.vnet.ibm.com>
18728 * config/rs6000/rs6000.c (rs6000_opt_masks): Disable using the
18729 target attribute and pragma from changing the -mfloat128
18730 and -mfloat128-hardware options.
18732 * doc/extend.texi (Additional Floating Types): Document PowerPC
18733 __float128 restrictions.
18735 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
18738 * config/aarch64/driver-aarch64.c
18739 (aarch64_get_extension_string_for_isa_flags): New.
18740 (arch_extension): Rename to...
18741 (aarch64_arch_extension): ...This.
18742 (ext_to_feat_string): Rename to...
18743 (aarch64_extensions): ...This.
18744 (aarch64_core_data): Keep track of architecture extension flags.
18745 (cpu_data): Rename to...
18746 (aarch64_cpu_data): ...This.
18747 (aarch64_arch_driver_info): Keep track of architecture extension
18749 (get_arch_name_from_id): Rename to...
18750 (get_arch_from_id): ...This, change return type.
18751 (host_detect_local_cpu): Update and reformat for renames, handle
18752 extensions through common infrastructure.
18754 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
18757 * config/aarch64/aarch64-common.c (aarch64_option_extension): Keep
18758 track of a canonical flag name.
18759 (all_extensions): Likewise.
18760 (arch_to_arch_name): Also track extension flags enabled by the arch.
18761 (all_architectures): Likewise.
18762 (aarch64_parse_extension): Move to here.
18763 (aarch64_get_extension_string_for_isa_flags): Take a new argument,
18765 (aarch64_rewrite_selected_cpu): Update for above change.
18766 * config/aarch64/aarch64-option-extensions.def: Rework the way flags
18767 are handled, such that the single explicit value enabled by an
18768 extension is kept seperate from the implicit values it also enables.
18769 * config/aarch64/aarch64-protos.h (aarch64_parse_opt_result): Move
18771 (aarch64_parse_extension): New.
18772 * config/aarch64/aarch64.c (aarch64_parse_opt_result): Move from
18773 here to config/aarch64/aarch64-protos.h.
18774 (aarch64_parse_extension): Move from here to
18775 common/config/aarch64/aarch64-common.c.
18776 (aarch64_option_print): Update.
18777 (aarch64_declare_function_name): Likewise.
18778 (aarch64_start_file): Likewise.
18779 * config/aarch64/driver-aarch64.c (arch_extension): Keep track of
18780 the canonical flag for extensions.
18781 * config.gcc (aarch64*-*-*): Extend regex for capturing extension
18784 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
18786 * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
18789 2016-04-09 Tom de Vries <tom@codesourcery.com>
18791 PR tree-optimization/68953
18792 * graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from
18793 first to last subscript.
18795 2016-04-09 Jakub Jelinek <jakub@redhat.com>
18797 PR tree-optimization/70586
18798 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false
18801 2016-04-08 Cesar Philippidis <cesar@codesourcery.com>
18805 PR tree-optimization/70373
18806 PR middle-end/70533
18807 PR middle-end/70534
18808 PR middle-end/70535
18809 * gimplify.c (gimplify_adjust_omp_clauses): Add or adjust data
18810 clauses for acc parallel reductions as necessary. Error on those
18812 * omp-low.c (scan_sharing_clauses): Don't install variables which
18813 are used in acc parallel reductions.
18814 (lower_rec_input_clauses): Remove dead code.
18815 (lower_oacc_reductions): Add support for reference reductions.
18816 (lower_reduction_clauses): Remove dead code.
18817 (lower_omp_target): Don't remap variables appearing in acc parallel
18819 * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro.
18821 2016-04-08 Jakub Jelinek <jakub@redhat.com>
18823 PR middle-end/70593
18824 * tree-ssa-coalesce.c (build_ssa_conflict_graph): For stmt
18825 with multiple SSA_NAME defs, force the outputs other than first
18826 to be live before calling live_track_process_def on each output.
18828 PR rtl-optimization/70574
18829 * fwprop.c (forward_propagate_and_simplify): Don't add
18830 REG_EQUAL note if DF_REF_REG (use) is a paradoxical subreg.
18831 (try_fwprop_subst): Don't add REG_EQUAL note if there are any
18832 paradoxical subregs within *loc.
18834 2016-04-08 Thomas Schwinge <thomas@codesourcery.com>
18836 * config/arc/arc.h (LINK_COMMAND_SPEC): Use gt to ignore
18837 -ftree-parallelize-loops={0,1}.
18838 * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
18839 * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
18840 * config/ia64/hpux.h (LIB_SPEC): Likewise.
18841 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
18842 * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
18844 2016-04-08 Maxim Ostapenko <m.ostapenko@samsung.com>
18847 * asan.c (instrument_derefs): If we get unknown location, extract it
18848 with EXPR_LOCATION.
18849 (maybe_instrument_call): Instrument gimple_call's arguments if needed.
18851 2016-04-08 Tom de Vries <tom@codesourcery.com>
18853 * omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc
18854 implicit firstprivate clause.
18856 2016-04-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18859 * config/arm/thumb2.md (tst + branch-> lsls + branch
18860 peephole below *orsi_not_shiftsi_si): Require that condition
18861 register is dead after the peephole.
18862 (second peephole after the above): Likewise.
18864 2016-04-08 Alan Modra <amodra@gmail.com>
18867 * builtins.c (fold_builtin_classify): For IBM extended precision,
18868 look at just the high-order double to test for NaN.
18869 (fold_builtin_interclass_mathfn): Similarly for Inf. For isnormal
18870 test just the high double for Inf but both doubles for subnormal
18873 2016-04-07 Jakub Jelinek <jakub@redhat.com>
18875 * cgraph.h (struct cgraph_simd_clone): Add mask_mode field.
18876 * omp-low.c (simd_clone_init_simd_arrays, simd_clone_adjust): Handle
18877 node->simdclone->mask_mode != VOIDmode masks.
18878 (simd_clone_adjust_argument_types): Likewise. Move sc var definition
18879 earlier, use it instead of node->simdclone.
18880 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
18881 Set clonei->mask_mode.
18883 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
18886 * parser.c (cp_parser_iteration_statement): New parameter IF_P.
18887 Pass it through to cp_parser_already_scoped_statement.
18888 (cp_parser_already_scoped_statement): New parameter IF_P. Pass
18889 it through to cp_parser_statement.
18890 (cp_parser_statement): Pass IF_P through to
18891 cp_parser_iteration_statement.
18892 (cp_parser_pragma): Adjust call to
18893 cp_parser_iteration_statement.
18895 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
18898 * gimplify.c (gimplify_omp_ordered): Add explicit braces to
18899 resolve a future -Wparentheses warning.
18900 * omp-low.c (scan_sharing_clauses): Likewise.
18901 * tree-parloops.c (eliminate_local_variables): Likewise.
18903 2016-04-06 Vladimir Makarov <vmakarov@redhat.com>
18905 PR rtl-optimization/70398
18906 * lra-constraints.c (process_address_1): Check zero scale and code
18907 for reloading with zero scale.
18909 2016-04-06 Uros Bizjak <ubizjak@gmail.com>
18911 * config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
18912 (ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.
18914 2016-04-06 Jakub Jelinek <jakub@redhat.com>
18916 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
18917 Add support for AVX512F clones, include them by default for
18918 exported OpenMP declare simd functions. For AVX2 allow simdlen 32
18919 and use it if charasteric type is 8-bit, for AVX512F allow simdlen
18922 PR middle-end/70550
18923 * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define.
18924 * gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit
18925 firstprivate clauses.
18926 * omp-low.c (lower_send_clauses): Set TREE_NO_WARNING for
18927 OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT !by_ref vars in task contexts.
18928 (lower_omp_target): Set TREE_NO_WARNING for
18929 non-addressable possibly uninitialized vars which are copied into
18930 addressable temporaries or copied for GOMP_MAP_FIRSTPRIVATE_INT.
18932 2016-04-05 John David Anglin <danglin@gcc.gnu.org>
18934 * config/pa/predicates.md (integer_store_memory_operand): Accept
18935 REG+D operands with a large offset when reload_in_progress is true.
18936 (floating_point_store_memory_operand): Likewise.
18938 2016-04-05 Jakub Jelinek <jakub@redhat.com>
18941 * match.pd (nested int casts): Limit to GIMPLE.
18943 2016-04-05 Jan Hubicka <hubicka@ucw.cz>
18946 * ipa-devirt.c (maybe_record_node): Fix comment; use
18947 SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.
18949 2016-04-05 Jakub Jelinek <jakub@redhat.com>
18951 PR rtl-optimization/70542
18952 * ree.c (add_removable_extension): For VECTOR_MODE_P punt
18953 if there are any uses other than insn or debug insns.
18955 2016-04-05 Marc Glisse <marc.glisse@inria.fr>
18956 Jakub Jelinek <jakub@redhat.com>
18958 PR tree-optimization/70509
18959 * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SELECT>:
18960 Shift HOST_WIDE_INT_1U instead of 1.
18962 2016-04-05 Zdenek Sojka <zsojka@seznam.cz>
18964 PR tree-optimization/70509
18965 * tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int instead
18966 of the vector base type for index.
18968 2016-04-05 Uros Bizjak <ubizjak@gmail.com>
18971 * config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.
18973 2016-04-05 Richard Biener <rguenther@suse.de>
18975 PR tree-optimization/70526
18976 * tree-sra.c (build_ref_for_offset): Use prev_base to
18977 extract the alias pointer type.
18979 2016-04-05 Richard Biener <rguenther@suse.de>
18981 * dse.c (struct store_info): Remove alias_set member.
18982 (struct read_info_type): Likewise.
18983 (clear_alias_group, clear_alias_mode_table, clear_alias_mode_holder,
18984 spill_deleted, clear_alias_set_lookup): Remove.
18985 (get_group_info): Remove dead base == NULL_RTX case.
18986 (dse_step0): Remove initialization of removed variables.
18987 (delete_dead_store_insn): Reomve alias set dumping.
18988 (free_read_records): Remove alias_set handling.
18989 (canon_address): Remove alias_set_out parameter.
18990 (record_store): Remove spill_alias_set, it's always zero.
18991 (check_mem_read_rtx): Likewise.
18992 (dse_step2): Rename from ...
18993 (dse_step2_nospill): ... this. Adjust.
18994 (scan_stores): Rename from ...
18995 (scan_stores_nospill): ... this.
18996 (scan_reads): Rename from ...
18997 (scan_reads_nospill): ... this.
18998 (scan_stores_spill, scan_reads_spill): Remove.
18999 (dse_step3_scan): Remove for_spills argument which is always false.
19000 (dse_step3): Likewise.
19001 (dse_step5): Rename from ...
19002 (dse_step5_nospill): ... this. Remove alias_set handling.
19003 (rest_of_handle_dse): Adjust.
19005 2016-04-05 Jakub Jelinek <jakub@redhat.com>
19008 * config/i386/sse.md (*andnot<mode>3): Simplify assertions.
19009 Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for
19010 V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting.
19011 (*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator.
19013 2016-04-05 Richard Biener <rguenther@suse.de>
19015 PR middle-end/70499
19016 * gimplify-me.c (gimple_regimplify_operands): Do not rewrite
19017 non-register type temporaries into SSA.
19019 2016-04-04 Jan Hubicka <hubicka@ucw.cz>
19022 * ipa-devirt.c (maybe_record_node): Do not optimize cxa_pure_virtual
19023 calls when sanitizing.
19024 (possible_polymorphic_call_target_p): Fix formatting.
19026 2016-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
19027 Jakub Jelinek <jakub@redhat.com>
19029 PR middle-end/70457
19030 * tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p
19031 to ensure a call statement is compatible with a built-in's
19033 * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
19036 2016-04-04 Richard Biener <rguenther@suse.de>
19038 PR rtl-optimization/70484
19039 * rtl.h (canon_output_dependence): Declare.
19040 * alias.c (canon_output_dependence): New function.
19041 * dse.c (record_store): Use canon_output_dependence rather
19042 than canon_true_dependence.
19044 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
19047 * cgraph.h (symtab_node::copy_visibility_from): New function.
19048 * symtab.c (symtab_node::copy_visibility_from): New function.
19049 * ipa-visibility.c (optimize_weakref): New function.
19050 (function_and_variable_visibility): Use it.
19052 2016-04-04 Martin Liska <mliska@suse.cz>
19055 * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Guard index
19056 value that is really in range handled by SBR instruction.
19057 * hsa-brig.c (emit_switch_insn): Do not emit unconditional jump.
19058 * hsa-dump.c (dump_hsa_insn_1): Do not dump default BB.
19059 * hsa.h (hsa_insn_sbr::m_default_bb): Remove field.
19061 2016-04-03 Oleg Endo <olegendo@gcc.gnu.org>
19065 * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
19066 set, but not for SP_REG operands.
19068 2016-04-02 Martin Sebor <msebor@redhat.com>
19071 * fold-const.c (maybe_nonzero_address): New function.
19072 (fold_comparison): Call it. Fold equality and relational
19073 expressions involving null pointers.
19074 (tree_single_nonzero_warnv_p): Call maybe_nonzero_address.
19076 2016-03-31 Evandro Menezes <e.menezes@samsung.com>
19078 Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
19079 the "Y" constraint (scalar FP 0.0 immediate).
19081 * config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
19082 Add the "const_double" to the list of operand constraints.
19084 2016-04-01 Jakub Jelinek <jakub@redhat.com>
19086 PR rtl-optimization/70467
19087 * config/i386/i386.md (*add<dwi>3_doubleword, *sub<dwi>3_doubleword):
19088 If low word of the last operand is 0, just emit addition/subtraction
19091 2016-04-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19094 * config/s390/s390.c (s390_expand_insv): Check for everything
19095 constant instead of just VOIDmode stuff.
19097 2016-04-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
19100 * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB.
19102 2016-04-01 Nathan Sidwell <nathan@acm.org>
19104 * tree.def (TRY_CATCH_EXPR): Correct documentation.
19106 2016-03-31 Vladimir Makarov <vmakarov@redhat.com>
19108 PR rtl-optimization/70461
19109 * ira-color.c (allocno_copy_cost_saving): Use allocno class if it
19112 2016-03-31 Martin Liska <mliska@suse.cz>
19115 * hsa-brig.c (hsa_op_immed::emit_to_buffer): Emit either
19116 a tree value or an immediate integer value to a buffer
19117 that is eventually copied to a BRIG section.
19118 (emit_immediate_operand): Call the function here.
19119 * hsa-dump.c (dump_hsa_immed): Remove checking assert.
19120 * hsa-gen.c (hsa_op_immed::hsa_op_immed): Remove initialization
19121 of class' fields that are removed.
19122 (hsa_op_immed::~hsa_op_immed): Remove deinitialization.
19123 * hsa.h (class hsa_op_immed): Remove m_brig_repr and
19124 m_brig_repr_size fields.
19126 2016-03-31 Martin Liska <mliska@suse.cz>
19129 * hsa-gen.c (hsa_function_representation::update_dominance): New
19131 (convert_addr_to_flat_segment): Likewise.
19132 (gen_hsa_memory_set): New alignment argument.
19133 (gen_hsa_ctor_assignment): Likewise.
19134 (gen_hsa_insns_for_single_assignment): Provide alignment
19135 to gen_hsa_ctor_assignment.
19136 (gen_hsa_insns_for_direct_call): Add new argument.
19137 (expand_lhs_of_string_op): New function.
19138 (expand_string_operation_builtin): Likewise.
19139 (expand_memory_copy): New function.
19140 (expand_memory_set): New function.
19141 (gen_hsa_insns_for_call): Use HOST_WIDE_INT.
19142 (convert_switch_statements): Change signature.
19143 (generate_hsa): Use a return value of the function.
19144 (pass_gen_hsail::execute): Do not call
19145 convert_switch_statements here.
19146 * hsa-regalloc.c (hsa_regalloc): Call update_dominance.
19147 * hsa.h (hsa_function_representation::m_modified_cfg): New flag.
19148 (hsa_function_representation::update_dominance): New function.
19150 2016-03-31 Martin Liska <mliska@suse.cz>
19153 * hsa-brig.c (emit_directive_variable): Emit alignment
19154 according to hsa_symbol::m_align.
19155 * hsa-dump.c (hsa_byte_alignment): Move the function to another file.
19156 (dump_hsa_symbol): Dump alignment of HSA symbols.
19157 * hsa-gen.c (get_symbol_for_decl): Set-up alignment of a symbol.
19158 (gen_hsa_addr_with_align): New function.
19159 (hsa_bitmemref_alignment): Use newly added function.
19160 (gen_hsa_insns_for_load): Likewise.
19161 (gen_hsa_insns_for_store): Likewise.
19162 (gen_hsa_memory_copy): New argument added.
19163 (gen_hsa_insns_for_single_assignment): Respect
19164 alignment for assignments processed via gen_hsa_memory_copy.
19165 (gen_hsa_insns_for_direct_call): Likewise.
19166 (gen_hsa_insns_for_return): Likewise.
19167 (gen_function_def_parameters): Set default alignment.
19168 * hsa.c (hsa_object_alignment): New function.
19169 (hsa_byte_alignment): Pasted function.
19170 * hsa.h (hsa_symbol::m_align): New field.
19172 2016-03-31 Bin Cheng <bin.cheng@arm.com>
19174 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
19175 scratch field for goto case.
19177 2016-03-31 James Greenhalgh <james.greenhalgh@arm.com>
19179 * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.
19181 2016-03-31 Ilya Enkovich <enkovich.gnu@gmail.com>
19184 * config/i386/i386.c (scalar_chain::convert_op): Fix description.
19185 (scalar_chain::convert_insn): Call convert_op for reg
19186 moves to handle undefined registers.
19188 2016-03-31 Nathan Sidwell <nathan@acm.org>
19191 * varasm.c (output_constructor_regular_field): Flush bitfield earlier.
19192 Assert we don't want to move backwards.
19194 2016-03-31 Kirill Yukhin <kirill.yukhin@intel.com>
19197 * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
19199 2016-03-31 Jakub Jelinek <jakub@redhat.com>
19201 PR rtl-optimization/70460
19202 * ira.c (indirect_jump_optimize): Don't substitute LABEL_REF
19203 with operand from REG_LABEL_OPERAND, instead substitute
19204 SET_SRC or REG_EQUAL note content if it is a LABEL_REF.
19205 Don't do anything for REG_NON_LOCAL_GOTO jumps.
19207 2016-03-31 Martin Liska <mliska@suse.cz>
19209 * passes.c (execute_one_pass): Do not call
19210 todo_after for a discarded function.
19212 2016-03-31 Bin Cheng <bin.cheng@arm.com>
19214 * tree-ssa-loop-ivopts.c (struct comp_cost): New scrach field.
19215 (no_cost, infinite_cost): Initialize the new field.
19216 (get_computation_cost_at): Record setup cost.
19217 (determine_use_iv_cost_address): Skip cost computation for sub
19218 uses if we can estimate it without losing accuracy.
19220 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
19222 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
19224 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
19225 max_loop_iterations_int.
19226 (tree_unswitch_outer_loop): Likewise.
19227 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
19228 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
19230 2016-03-30 Richard Biener <rguenther@suse.de>
19232 PR middle-end/70450
19233 * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage.
19235 2016-03-30 Jakub Jelinek <jakub@redhat.com>
19238 * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
19239 in gen_blendm expander.
19241 2016-03-30 Nick Clifton <nickc@redhat.com>
19244 * config/arm/arm.c (arm_reload_out_hi): Add code to handle the
19245 case where we are already provided with an SImode SUBREG.
19247 2016-03-30 H.J. Lu <hongjiu.lu@intel.com>
19250 * config/i386/i386.c (ix86_expand_epilogue): Properly check
19251 conflict between DRAP register and __builtin_eh_return.
19253 2016-03-30 Michael Matz <matz@suse.de>
19254 Richard Biener <rguenther@suse.de>
19257 * ipa-polymorphic-call.c (struct type_change_info): Change
19258 speculative to an unsigned allowing to limit the work we do.
19259 (csftc_abort_walking_p): New inline function..
19260 (check_stmt_for_type_change): Limit the number of may-defs
19261 skipped for speculative devirtualization to
19262 max-speculative-devirt-maydefs.
19263 * params.def (max-speculative-devirt-maydefs): New param.
19264 * doc/invoke.texi (--param max-speculative-devirt-maydefs): Document.
19266 2016-03-30 Mike Stump <mrs@gcc.gnu.org>
19269 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
19272 2016-03-30 Patrick Palka <ppalka@gcc.gnu.org>
19274 PR tree-optimization/59124
19275 * tree-vrp.c (register_edge_assert_for_2): For NAME != CST1
19276 where NAME = A +- CST2 add the assertion A != (CST1 -+ CST2).
19278 2016-03-29 Jeff Law <law@redhat.com>
19280 * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment.
19282 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
19284 * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
19287 2016-03-29 Thomas Schwinge <thomas@codesourcery.com>
19289 * config/gnu.h (CPP_SPEC, LIB_SPEC): Don't override.
19290 * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt1.o instead of
19291 gcrt0.o if linking dynamically.
19293 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
19296 * ipa-devirt.c (methods_equal_p): New function.
19297 (compare_virtual_tables): Use it.
19298 * cgraph.h (symbol_table::symbol_suffix_separator): Declare.
19299 * cgraphclones.c (clone_function_name_1): Use
19300 symbol_table::symbol_suffix_separator.
19301 * coverage.c (build_var): Likewise.
19302 * symtab.c (symbol_table::symbol_suffix_separator): New.
19304 2016-03-29 Jakub Jelinek <jakub@redhat.com>
19306 PR rtl-optimization/70429
19307 * combine.c (simplify_shift_const_1): For ASHIFTRT don't optimize
19308 (cst1 >> count) >> cst2 into (cst1 >> cst2) >> count if
19309 mode != result_mode.
19312 * tree-inline.c (remap_decls): Don't add_local_decl if cfun is null.
19314 PR tree-optimization/70405
19315 * ssa-iterators.h (num_imm_uses): Add missing braces.
19317 2016-03-29 Vladimir Makarov <vmakarov@redhat.com>
19319 PR rtl-optimization/68695
19320 * ira-color.c (allocno_copy_cost_saving): New.
19321 (improve_allocation): Use it.
19323 2016-03-29 Richard Henderson <rth@redhat.com>
19325 PR middle-end/70355
19326 * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.
19328 2016-03-29 Richard Biener <rguenther@suse.de>
19330 PR middle-end/70424
19331 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
19332 use alignment returned by get_pointer_alignment_1 if it is
19333 bigger than BITS_PER_UNIT.
19334 * builtins.c (get_pointer_alignment_1): Do not return true
19335 for alignment extracted from SSA info.
19337 2016-03-28 James Bowman <james.bowman@ftdichip.com>
19339 * config/ft32/ft32.opt (mnodiv): New.
19340 * config/ft32/ft32.md (*divsi3, *modsi3): Qualify with TARGET_NODIV.
19341 * doc/invoke.texi (FT32 Options -mnodiv): New.
19343 2016-03-28 Kirill Yukhin <kirill.yukhin@intel.com>
19346 * config/i386/i386.md (define_split, andn): Fix modes.
19348 2016-03-26 Richard Biener <rguenther@suse.de>
19349 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
19352 * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
19354 TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
19355 as 2nd argument to cl_optimization_restore().
19357 2016-03-25 Richard Henderson <rth@redhat.com>
19360 * config/aarch64/aarch64.c (aarch64_asm_output_pool_epilogue): New.
19361 * config/aarch64/aarch64-protos.h: Declare it.
19362 * config/aarch64/aarch64.h (ASM_OUTPUT_POOL_EPILOGUE): New.
19364 2016-03-25 Alan Modra <amodra@gmail.com>
19367 * config/rs6000/constraints.md (j): Simplify.
19368 * config/rs6000/predicates.md (easy_fp_constant): Exclude
19370 * config/rs6000/rs6000.md (zero_fp): New mode_attr.
19371 (mov<mode>_hardfloat, mov<mode>_hardfloat32, mov<mode>_hardfloat64,
19372 mov<mode>_64bit_dm, mov<mode>_32bit): Use zero_fp in place of j
19373 in all constraint alternatives.
19374 (movtd_64bit_nodm): Delete "j" constraint alternative.
19376 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
19378 * tree-ssa-propagate.c: Enhance docs for
19379 SSA_PROP_NOT_INTERESTING.
19381 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
19383 * doc/extend.texi: Fix typo in documentation to pure attribute.
19385 2016-03-24 John David Anglin <danglin@gcc.gnu.org>
19388 * config/pa/pa.md (bswapdi2): Use a scratch register.
19390 2016-03-24 Richard Henderson <rth@redhat.com>
19392 PR middle-end/69845
19393 * fold-const.c (extract_muldiv_1): Correct test for multiplication
19396 2016-03-24 Uros Bizjak <ubizjak@gmail.com>
19398 * config/i386/i386.md (*anddi3_doubleword): Generate AND insn
19399 using ix86_expand_binary_operator instead of gen_andsi3.
19401 2016-03-24 Richard Biener <rguenther@suse.de>
19403 PR tree-optimization/70396
19404 * tree-vect-stmts.c (vectorizable_comparison): Use
19405 get_vectype_for_scalar_type.
19407 2016-03-24 Richard Biener <rguenther@suse.de>
19409 PR middle-end/70370
19410 * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
19411 with register bases.
19413 2016-03-24 Richard Biener <rguenther@suse.de>
19415 PR tree-optimization/70372
19416 * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Use
19417 build_all_ones_cst to also handle vector types correctly.
19419 2016-03-23 Michael Meissner <meissner@linux.vnet.ibm.com>
19422 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
19425 2016-03-23 Marek Polacek <polacek@redhat.com>
19428 * doc/invoke.texi: Document -Wignored-attributes.
19430 2016-03-23 Bin Cheng <bin.cheng@arm.com>
19432 PR tree-optimization/69042
19433 * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
19434 parameter from 30 to 40.
19436 2016-03-23 Bin Cheng <bin.cheng@arm.com>
19438 PR tree-optimization/69042
19439 * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Add IV cand
19440 for use with constant offset stripped in base.
19442 2016-03-23 Richard Biener <rguenther@suse.de>
19444 PR middle-end/70251
19445 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust
19446 mode compatibility check.
19447 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
19449 2016-03-23 Jeff Law <law@redhat.com>
19451 PR tree-optimization/64058
19452 * tree-ssa-coalesce.c (struct coalesce_pair): Add new field
19454 (struct ssa_conflicts): Move up earlier in the file.
19455 (conflicts_, var_map_): New static variables.
19456 (initialize_conflict_count): New function to initialize the
19457 CONFLICT_COUNT field for each conflict pair.
19458 (compare_pairs): Lazily initialize the conflict count and use it
19459 as the first tie-breaker.
19460 (sort_coalesce_list): Add new arguments conflicts, map. Initialize
19461 and wipe conflicts_ and map_ around the call to qsort. Remove
19462 special case for 2 coalesce pairs.
19463 * bitmap.c (bitmap_count_unique_bits): New function.
19464 (bitmap_count_bits_in_word): New function, extracted from
19466 (bitmap_count_bits): Use bitmap_count_bits_in_word.
19467 * bitmap.h (bitmap_count_unique_bits): Declare it.
19469 2016-03-23 Ilya Enkovich <enkovich.gnu@gmail.com>
19472 * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
19473 transparent alias chain for decl assembler name.
19474 * config/sol2.c (solaris_assemble_visibility): Likewise.
19476 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19478 * config/arm/arm1020e.md (1020call_op): Reduce reservation
19480 (v10_fdivs): Likewise.
19481 (v10_fdivd): Likewise.
19483 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19486 * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
19487 to not call fclose twice on file.
19489 2016-03-23 Jakub Jelinek <jakub@redhat.com>
19491 PR tree-optimization/70354
19492 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
19493 oprnd0 is wider than oprnd1 and there is a cast from the wider
19494 type to oprnd1, mask it with the mask of the narrower type.
19497 * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
19498 Optimize TARGET_STV splitters, if high or low word of last argument
19501 2016-03-22 Jeff Law <law@redhat.com>
19504 tree-ssa-threadbackward.c
19505 (fsm_find_control_statement_thread_paths): Correctly distinguish
19506 between old style jump threads vs FSM jump threads.
19508 2016-03-22 Ilya Enkovich <enkovich.gnu@gmail.com>
19511 * config/i386/i386.c (scalar_chain::convert_op): Support
19512 uninitialized register usage case.
19514 2016-03-22 Richard Biener <rguenther@suse.de>
19516 PR middle-end/70251
19517 * genmatch.c (gen_transform): Adjust last parameter to a three-state
19519 (capture::gen_transform): ... to change behavior when substituting
19520 a condition into cond or not-cond expr context.
19521 (dt_simplify::gen_1): Adjust.
19522 * gimple-match-head.c: Include gimplify.h for unshare_expr.
19523 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Revert
19524 last change and instead change to
19525 A + (B vcmp C ? 1 : 0) -> A - (B vcmp C ? -1 : 0).
19526 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
19528 2016-03-22 Anthony Green <green@moxielogic.com>
19530 * config/moxie/moxiebox.h (CC1_SPEC): Define. Fix endianness
19531 issue for moxiebox targets.
19532 (CC1PLUS_SPEC): Ditto.
19534 2016-03-22 Richard Biener <rguenther@suse.de>
19536 PR middle-end/70333
19537 * fold-const.c (extract_muldiv_1): Properly perform multiplication
19540 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
19542 * config/i386/i386.c (def_builtin): Remove duplicated functionality.
19544 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
19547 * config/i386/i386.c (def_builtin): Handle
19548 OPTION_MASK_ISA_AVX512VL to be and-ed with other
19550 (const struct builtin_description bdesc_special_args[]):
19551 Remove duplicate ISA bits.
19553 2016-03-22 Jakub Jelinek <jakub@redhat.com>
19556 * config/i386/i386.c (ix86_expand_vecop_qihi): Don't bother computing
19557 d.perm[i] for i >= d.nelt. If not full_interleave, compute d.perm[i]
19558 in a way that works also for AVX512BW.
19561 * config/i386/i386.md (cvtsd2ss splitter): Unpack in destination
19562 instead of source if operands[1] is xmm16 and above and
19563 !TARGET_AVX512VL. Use avx512f_vec_dupv16sf_1 instead of
19564 vec_interleave_lowv4sf if we need to unpack xmm16 and above.
19567 * gimplify.c (gimplify_modify_expr): Call gimple_set_no_warning
19568 on assign if (*from_p) is a comparison, set it to
19569 TREE_NO_WARNING (*from_p).
19571 2016-03-21 Jakub Jelinek <jakub@redhat.com>
19573 PR middle-end/70326
19574 * lra.c (restore_scratches): Ignore deleted insns.
19576 2016-03-21 Marc Glisse <marc.glisse@inria.fr>
19577 Jakub Jelinek <jakub@redhat.com>
19579 PR tree-optimization/70317
19580 * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
19583 2016-03-21 Uros Bizjak <ubizjak@gmail.com>
19586 * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
19587 of ix86_expand_move.
19589 (movti): Use general_operand for operand 1 predicate.
19591 2016-03-21 Martin Liska <mliska@suse.cz>
19593 * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
19595 (dump_hsa_symbol): Dump BRIG offset of hsa_symbols.
19597 2016-03-21 Martin Liska <mliska@suse.cz>
19600 * ipa-icf.c (sem_function::parse): Skip static
19601 constructors and destructors.
19603 2016-03-21 Jakub Jelinek <jakub@redhat.com>
19606 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If IDENT is
19607 function-like macro, peek following token(s) if it is followed
19608 by CPP_OPEN_PAREN token with optional padding in between, and
19609 if not, don't treat it like a macro.
19611 2016-03-21 Thomas Schwinge <thomas@codesourcery.com>
19612 Alexander Monakov <amonakov@ispras.ru>
19614 * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
19615 for the stabs debug format.
19617 2016-03-21 Richard Biener <rguenther@suse.de>
19619 PR tree-optimization/70310
19620 * tree-vect-generic.c (expand_vector_condition): Fold the built
19623 2016-03-21 Kirill Yukhin <kirill.yukhin@intel.com>
19626 * config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2):
19627 Block third alternative for AVX-512VL target,
19629 2016-03-21 Martin Liska <mliska@suse.cz>
19632 * hsa-brig.c (emit_function_directives): Mark unemitted
19633 global variables for emission.
19634 * hsa-gen.c (hsa_symbol::hsa_symbol): Initialize a new flag.
19635 (get_symbol_for_decl): Likewise.
19636 * hsa.h (struct hsa_symbol): New flag.
19638 2016-03-21 Richard Biener <rguenther@suse.de>
19640 PR tree-optimization/70288
19641 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Make sure
19642 we do not estimate unsimplified all-constant conditionals or
19643 switches as optimized away.
19645 2016-03-21 Andrey Belevantsev <abel@ispras.ru>
19647 PR rtl-optimization/69102
19648 * sched-deps.c (sched_analyze_insn): Do not set last_args_size field
19649 when we have a readonly dependency context.
19651 2016-03-18 Jeff Law <law@redhat.com>
19653 PR rtl-optimization/70263
19654 * ira.c (memref_used_between_p): Assert we found END in the insn chain.
19655 (update_equiv_regs): When trying to move a store to after the insn
19656 that sets the source of the store, make sure the store occurs after
19657 the insn that sets the source of the store. When successful note
19658 the REG_EQUIV note created in the dump file.
19660 2016-03-16 David Wohlferd <dw@LimeGreenSocks.com>
19661 Bernd Schmidt <bschmidt@redhat.com>
19663 * doc/extend.texi: Document more potential problems with basic asms.
19665 2016-03-18 Bernd Schmidt <bschmidt@redhat.com>
19667 PR rtl-optimization/70278
19668 * lra-constraints.c (split_reg): Handle the case where biggest_mode is
19671 2016-03-18 Jason Merrill <jason@redhat.com>
19673 * calls.c (load_register_parameters): Fix zero size sibcall logic.
19675 2016-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
19677 * config/i386/sse.md: Use vpbroadcastq for broadcasting DF
19678 values to 128b regs.
19680 2016-03-18 Ilya Enkovich <enkovich.gnu@gmail.com>
19682 PR tree-optimization/70252
19683 * tree-vect-stmts.c (supportable_widening_operation): Check resulting
19684 boolean vector has a proper number of elements.
19685 (supportable_narrowing_operation): Likewise.
19687 2016-03-18 Tom de Vries <tom@codesourcery.com>
19690 * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.
19692 2016-03-18 Jakub Jelinek <jakub@redhat.com>
19694 * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
19695 instead of replace_rtx for DEBUG_INSNs.
19697 2016-03-18 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
19699 * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
19700 load type reservations.
19702 2016-03-17 John David Anglin <danglin@gcc.gnu.org>
19705 * config/pa/constraints.md: Revert 2015-02-13 change. Use
19706 define_constraint for "Q" and "T" constraints.
19708 2016-03-17 Evandro Menezes <e.menezes@samsung.com>
19710 Tweak the pipeline model for Exynos M1
19712 * config/aarch64/aarch64.c (exynosm1_tunings): Enable weak prefetching
19715 2016-03-17 David Malcolm <dmalcolm@redhat.com>
19718 * diagnostic-show-locus.c (compatible_locations_p): Handle the case
19719 where one or both locations aren't within a line_map.
19721 2016-03-17 H.J. Lu <hongjiu.lu@intel.com>
19724 * opts.c (finish_options): Don't set flag_pie to the default if
19725 -fpic, -fPIC, -fno-pic or -fno-PIC is used. Set flag_pic to 0
19728 2016-03-17 Joern Rennecke <joern.rennecke@embecosm.com>
19730 * config/i386/i386.md (*movv4qicc_insn+1..36): Pass
19731 true as ALL_REGS argument to replace_rtx.
19733 2016-03-17 Richard Biener <rguenther@suse.de>
19736 * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
19739 2016-03-17 Jakub Jelinek <jakub@redhat.com>
19742 * rtl.h (replace_rtx): Add ALL_REGS argument.
19743 * rtlanal.c (replace_rtx): Likewise. If true, use REGNO
19744 equality and assert mode is the same, instead of just rtx pointer
19746 * config/i386/i386.md (mov + arithmetics with load peephole): Pass
19747 true as ALL_REGS argument to replace_rtx.
19749 2016-03-17 Ilya Enkovich <enkovich.gnu@gmail.com>
19751 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply
19752 for boolean vector with vector mode only.
19753 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
19755 2016-03-17 Nick Clifton <nickc@redhat.com>
19758 * config/rx/rx.c (rx_print_integer): Print negative constants in
19761 2016-03-17 Jakub Jelinek <jakub@redhat.com>
19764 * rtlanal.c (replace_rtx): Revert 2016-03-16 change.
19766 2016-03-16 Richard Henderson <rth@redhat.com>
19767 Richard Biener <rguenth@suse.de>
19769 PR middle-end/70240
19770 PR middle-end/68215
19772 * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
19773 first operand as is_gimple_condexpr.
19775 PR middle-end/70240
19776 PR middle-end/68215
19778 2015-12-11 Eric Botcazou <ebotcazou@adacore.com>
19779 * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter.
19780 Do not gimplify the result.
19781 (do_unop): Adjust call to tree_vec_extract.
19782 (do_binop): Likewise.
19783 (do_compare): Likewise.
19784 (do_plus_minus): Likewise.
19785 (do_negate): Likewise.
19786 (expand_vector_condition): Likewise.
19787 (do_cond): Likewise.
19789 2016-03-16 Richard Henderson <rth@redhat.com>
19792 * config/aarch64/aarch64.c (virt_or_elim_regno_p): New.
19793 (aarch64_classify_address): Use it.
19794 (aarch64_legitimize_address): Force all subexpressions of PLUS
19795 into registers. Simplify as (sfp+const)+reg or (reg+reg)+const.
19797 2016-03-16 Jakub Jelinek <jakub@redhat.com>
19798 Richard Biener <rguenth@suse.de>
19801 * rtlanal.c (replace_rtx): For REG, if from is a REG,
19802 return to even if only REGNO is equal, and assert
19805 2016-03-11 Jeff Law <law@redhat.com>
19807 PR rtl-optimization/70224
19808 * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
19810 2016-03-16 Richard Henderson <rth@redhat.com>
19812 PR middle-end/70199
19813 * function.h (struct function): Add has_forced_label_in_static.
19814 * gimplify.c (force_labels_r): Set it.
19815 * lto-streamer-in.c (input_struct_function_base): Read it.
19816 * lto-streamer-out.c (output_struct_function_base): Write it.
19817 * tree-inline.c (has_label_address_in_static_1): Remove.
19818 (copy_forbidden): Remove fndecl parameter; test
19819 has_forced_label_in_static.
19820 (inline_forbidden_p): Update call to copy_forbidden.
19821 (tree_versionable_function_p): Likewise.
19822 * ipa-chkp.c (chkp_instrumentable_p): Likewise.
19823 (chkp_versioning): Likewise.
19824 * tree-inline.h (copy_forbidden): Update decl.
19826 2016-03-16 Marek Polacek <polacek@redhat.com>
19829 * cgraphunit.c (cgraph_node::expand_thunk): Also build call to the
19830 function being thunked if the result type doesn't have fixed size.
19831 * gimplify.c (gimplify_modify_expr): Also set LHS if the result type
19832 doesn't have fixed size.
19834 2016-03-16 Bin Cheng <bin.cheng@arm.com>
19836 * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
19837 reporting malformed loop nest.
19839 2016-03-16 Tom de Vries <tom@codesourcery.com>
19842 * ipa-devirt.c (possible_polymorphic_call_targets): Move
19843 nodes.length () == 1 test to before first nodes[0] access.
19845 2016-03-16 Tom de Vries <tom@codesourcery.com>
19847 PR tree-optimization/68715
19848 * graphite-scop-detection.c (scop_detection::merge_sese): Add missing
19849 single_pred_p test.
19851 2016-03-16 Tom de Vries <tom@codesourcery.com>
19853 PR tree-optimization/68809
19854 * graphite-scop-detection.c (same_close_phi_node): Test if result types
19857 2016-03-16 Carlos O'Donell <carlos@redhat.com>
19858 Sandra Loosemore <sandra@codesourcery.com>
19860 * doc/extend.texi (Common Function Attributes): Describe ifunc impact
19861 on leaf attribute. Mention ELF interposition problems.
19863 2016-03-16 Alan Modra <amodra@gmail.com>
19865 PR rtl-optimization/69195
19866 PR rtl-optimization/47992
19867 * ira.c (indirect_jump_optimize): Ignore artificial defs.
19870 2016-03-15 Eric Botcazou <ebotcazou@adacore.com>
19873 * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.
19875 2016-03-15 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
19877 * config/avr/avr.md (rotl<mode>3): Set mode for operand 2.
19879 2016-03-15 Jakub Jelinek <jakub@redhat.com>
19881 PR rtl-optimization/70222
19882 * combine.c (simplify_shift_const_1): For A >> B >> C LSHIFTRT
19883 optimization if mode is different from result_mode, queue up masking
19884 of the result in outer_op. Formatting fix.
19886 PR middle-end/70239
19887 * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
19890 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
19892 PR rtl-optimization/69032
19893 * sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
19894 looping backwards over basic block insns.
19896 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
19899 * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
19900 to non-speculative when propagating trap bits.
19902 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
19904 PR rtl-optimization/63384
19905 * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
19906 DEBUG_INSN_P insns.
19908 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
19911 * sched-deps.c (get_implicit_reg_pending_clobbers): New function,
19912 factored out from ...
19913 (sched_analyze_insn): ... here.
19914 * sched-int.h (get_implicit_reg_pending_clobbers): Declare it.
19915 * sel-sched-ir.c (setup_id_implicit_regs): New function, use
19916 get_implicit_reg_pending_clobbers in it.
19917 (setup_id_reg_sets): Use setup_id_implicit_regs.
19918 (deps_init_id): Ditto.
19920 2016-03-15 Tom de Vries <tom@codesourcery.com>
19923 * cgraph.c (cgraph_node::get_body): Save, reset and restore
19925 * passes.c (execute_one_ipa_transform_pass): Add missing argument to
19926 execute_function_dump.
19927 (execute_one_pass): Don't dump function if it will be dumped after ipa
19930 2016-03-15 Segher Boessenkool <segher@kernel.crashing.org>
19932 * genrecog.c (match_pattern_2): If pred is NULL don't call
19933 safe_predicate_mode on it.
19935 2016-03-14 Jakub Jelinek <jakub@redhat.com>
19937 PR middle-end/70219
19938 * lra-constraints.c (delete_move_and_clobber): Change assertion
19939 to also allow dregno == 0.
19941 2016-03-14 Richard Henderson <rth@redhat.com>
19944 * tree-ssa-reassoc.c (ovce_extract_ops, optimize_vec_cond_expr): New.
19945 (can_reassociate_p): Allow ANY_INTEGRAL_TYPE_P.
19946 (reassociate_bb): Use optimize_vec_cond_expr; avoid
19947 optimize_range_tests, attempt_builtin_copysign and attempt_builtin_powi
19950 2016-03-14 Bernd Schmidt <bschmidt@redhat.com>
19953 * lra-lives.c (process_bb_lives): Also update biggest mode for hard
19955 (lra_create_live_ranges_1): initialize hard register biggest_mode to
19957 * lra-constraints.c (split_reg): For hard regs, try to find the
19958 biggest single-register mode used in the function.
19960 2016-03-14 Richard Biener <rguenther@suse.de>
19962 PR tree-optimization/56365
19963 * tree-ssa-phiopt.c (minmax_replacement): Handle alternate
19964 constants to compare against.
19966 2016-03-14 Segher Boessenkool <segher@kernel.crashing.org>
19969 * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
19970 *ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output.
19971 (define_split for the GPR case): Use int_reg_operand instead of
19972 gpc_reg_operand for the output.
19974 2016-03-14 Tom de Vries <tom@codesourcery.com>
19976 PR tree-optimization/70045
19977 * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Unshare
19978 create_empty_if_region_on_edge argument.
19980 2016-03-13 Eric Botcazou <ebotcazou@adacore.com>
19982 * config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define.
19983 (STACK_CHECK_PROTECT): Likewise.
19984 * config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
19985 (STACK_CHECK_PROTECT): Likewise.
19986 * config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
19987 (STACK_CHECK_PROTECT): Likewise.
19988 * config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise.
19989 * config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
19990 (STACK_CHECK_PROTECT): Likewise.
19992 2016-03-12 Andrey Belevantsev <abel@ispras.ru>
19994 PR rtl-optimization/69307
19995 * sel-sched.c (choose_best_pseudo_reg): Properly check for hard
19996 registers in modes that span more than one register.
19998 2016-03-12 Vladimir Makarov <vmakarov@redhat.com>
20001 * lra-constraints.c (delete_move_and_clobber): New.
20002 (remove_inheritance_pseudos): Use it.
20004 2016-03-12 Eric Botcazou <ebotcazou@adacore.com>
20007 * calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if
20008 the libcall is LCT_THROW.
20009 * explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call
20010 for the checking routine.
20012 2016-03-11 Michael Meissner <meissner@linux.vnet.ibm.com>
20015 * config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the
20016 optimization if we have direct move.
20017 (roundu32<mode>2_fprs): Likewise.
20019 2016-03-11 Bernd Schmidt <bschmidt@redhat.com>
20022 * lra-remat.c (operand_to_remat): Disallow hard regs in the value t
20024 (reg_overlap_for_remat_p): Renamed from input_regno_present_p.
20025 Arguments swapped. All callers changed. Take reg_renumber into
20026 account, and Calculate and compare register ranges for hard regs.
20028 2016-03-11 Jeff Law <law@redhat.com>
20030 PR tree-optimization/70190
20031 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
20032 Handle cases where we can not extract the taken edge, even though we
20033 found a constant value.
20035 PR tree-optimization/64058
20036 * tree-ssa-coalesce.c (struct coalesce_pair): Add new field INDEX.
20037 (num_coalesce_pairs): Move up earlier in file.
20038 (find_coalesce_pair): Initialize the INDEX field for each pair
20040 (compare_pairs): No longer sort on the elements in each pair.
20041 Instead break ties with the index of the coalesce pair.
20043 2016-03-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20046 * config/aarch64/aarch64-protos.h
20047 (aarch64_save_restore_target_globals): New prototype.
20048 * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
20049 Call the above when popping pragma.
20050 * config/aarch64/aarch64.c (aarch64_save_restore_target_globals):
20052 (aarch64_set_current_function): Rewrite using the above.
20054 2016-03-11 Jakub Jelinek <jakub@redhat.com>
20056 PR tree-optimization/70177
20057 * gimple-expr.h (extract_ops_from_tree_1): Renamed to ...
20058 (extract_ops_from_tree): ... this. In the 2 argument
20059 overload remove _1 suffix.
20060 * gimple-expr.c (extract_ops_from_tree_1): Renamed to ...
20061 (extract_ops_from_tree): ... this.
20062 * gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree):
20064 * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
20065 * tree-ssa-forwprop.c (defcodefor_name): Call 3 operand
20066 extract_ops_from_tree instead of 2 operand one.
20068 2016-03-11 Alan Lawrence <alan.lawrence@arm.com>
20070 PR tree-optimization/70013
20071 * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
20072 for constant-pool entries.
20074 2016-03-11 Jakub Jelinek <jakub@redhat.com>
20076 PR rtl-optimization/70174
20077 * expmed.c (store_bit_field_using_insv): Use gen_lowpart_if_possible
20078 followed by gen_lowpart on force_reg instead of just gen_lowpart.
20080 PR tree-optimization/70169
20081 * tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and
20082 LABEL_DECL like VAR_DECL. Emit nothing instead of gcc_unreachable
20085 2016-03-11 Ilya Enkovich <enkovich.gnu@gmail.com>
20086 Jakub Jelinek <jakub@redhat.com>
20089 * config/i386/i386.c (scalar_chain::convert_reg): Skip uses
20090 of uninitialized values.
20092 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20094 * config/s390/s390.md ("trunctddd2"): Turn former define_insn into
20096 ("*trunctddd2"): New pattern definition.
20097 ("trunctdsd2"): Set prep_for_short_prec rounding mode for the
20100 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20102 * config/s390/s390.md (BFP_RND_*, DFP_RND_*): Add new constant
20103 definitions for BFP and DFP rounding modes.
20104 ("fixuns_truncdddi2", "fixuns_trunctddi2")
20105 ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2")
20106 ("fix_trunc<DSF:mode><GPR:mode>2", "fix_trunc<mode>di2")
20107 ("fix_trunctf<mode>2"): Use the new constants instead of magic
20110 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20112 * config/s390/constraints.md: Adjust comment.
20113 ("Y"): Adjust comment. Rename s390_decompose_shift_count to
20114 s390_decompose_addrstyle_without_index.
20115 * config/s390/predicates.md (shift_count_or_setmem_operand):
20116 Rename to setmem_operand.
20117 * config/s390/s390-protos.h
20118 (s390_decompose_shift_count): Rename to
20119 s390_decompose_addrstyle_without_index.
20120 * config/s390/s390.c (s390_decompose_shift_count)
20121 (s390_mem_constraint, print_shift_count_operand)
20122 (print_operand_address, print_operand): Rename
20123 s390_decompose_shift_count to
20124 s390_decompose_addrstyle_without_index and rename
20125 print_shift_count_operand to print_addrstyle_operand troughout the
20127 * config/s390/s390.md ("setmem_long_<P:mode>", "*setmem_long")
20128 ("*setmem_long_and", "*setmem_long_31z", "*setmem_long_and_31z"):
20129 Rename shift_count_or_setmem_operand to setmem_operand.
20130 * config/s390/vx-builtins.md ("vec_insert<mode>")
20131 ("vec_promote<mode>"): Replace shift_count_or_setmem_operand with
20134 2016-03-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
20137 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
20138 Handle overlapping retval and newval.
20140 2016-03-10 Nick Clifton <nickc@redhat.com>
20143 * config/aarch64/aarch64.c
20144 (aarch64_override_options_after_change_1): When forcing
20145 flag_omit_frame_pointer to be true, use a special value that can
20146 be detected if this function is called again, thus preventing
20147 flag_omit_leaf_frame_pointer from being forced to be false.
20149 2016-03-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20151 * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
20152 Set x_flag_omit_leaf_frame_pointer when handling
20153 -momit-leaf-frame-pointer.
20155 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
20158 * cgraph.c (cgraph_node::dump): Dump split_part and
20159 indirect_call_target.
20160 * cgraph.h (cgraph_node): Add indirect_call_target flag.
20161 * ipa.c (has_addr_references_p): Cleanup.
20162 (is_indirect_call_target_p): New.
20163 (walk_polymorphic_call_targets): Do not mark virtuals that may be
20164 called indirectly as local.
20165 (symbol_table::remove_unreachable_nodes): Compute indirect_call_target.
20167 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
20170 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
20171 on cxa_pure_virtual.
20173 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
20176 * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
20178 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
20181 * tree.c (need_assembler_name_p): Only record main variant type names.
20183 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
20186 * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_843419_DEFAULT):
20187 Always define to 0 or 1.
20188 (TARGET_FIX_ERR_A53_843419): New macro.
20189 * config/aarch64/aarch64-elf-raw.h
20190 (TARGET_FIX_ERR_A53_843419_DEFAULT): Update for above changes.
20191 * config/aarch64/aarch64-linux.h: Likewise.
20192 * config/aarch64/aarch64.c
20193 (aarch64_override_options_after_change_1): Do not default
20194 aarch64_nopcrelative_literal_loads to true if Cortex-A53 erratum
20196 (aarch64_attributes): Handle fix-cortex-a53-843419.
20197 (aarch64_can_inline_p): Likewise.
20198 * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.
20200 2016-03-10 Alan Lawrence <alan.lawrence@arm.com>
20201 Jakub Jelinek <jakub@redhat.com>
20203 * common.opt (funconstrained-commons, flag_unconstrained_commons): New.
20204 * tree.c (array_at_struct_end_p): Do not limit to size of decl for
20205 DECL_COMMONS if flag_unconstrained_commons is set.
20206 * tree-dfa.c (get_ref_base_and_extent): Likewise.
20207 * doc/invoke.texi (Optimize Options): Add -funconstrained-commons.
20208 (funconstrained-commons): Document.
20210 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
20212 * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
20213 aarch64-fusion-pairs.def and aarch64-tuning-flags.def
20215 2016-03-10 Ilya Enkovich <enkovich.gnu@gmail.com>
20217 * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
20218 has a proper number of elements.
20220 2016-03-10 Alan Modra <amodra@gmail.com>
20222 PR rtl-optimization/69195
20223 PR rtl-optimization/47992
20224 * ira.c (recorded_label_ref): Delete.
20225 (update_equiv_regs): Return void.
20226 (indirect_jump_optimize): New function.
20227 (ira): Call indirect_jump_optimize and delete_trivially_dead_insns
20228 before regstat_compute_ri. Don't rebuild_jump_labels here.
20229 Delete update_regstat.
20231 2016-03-10 Richard Biener <rguenther@suse.de>
20233 PR tree-optimization/70128
20234 * tree-ssa-structalias.c (set_uids_in_ptset): Set
20235 vars_contains_nonlocal for any FUNCTION_DECL or LABEL_DECL.
20237 2016-03-09 Jakub Jelinek <jakub@redhat.com>
20239 PR tree-optimization/70152
20240 * tree-sra.c (replace_removed_params_ssa_names): Copy over
20241 SSA_NAME_OCCURS_IN_ABNORMAL_PHI from old_name to new_name.
20244 * config/i386/i386.md (truncdfsf2 splitter): Use gen_vec_concatv2df
20245 instead of gen_sse2_loadlpd.
20246 * config/i386/sse.md (*vec_concatv2df): Rename to...
20247 (vec_concatv2df): ... this.
20249 PR tree-optimization/70127
20250 * fold-const.c (operand_equal_p): Revert the 2015-10-28 change.
20252 2016-03-09 David Malcolm <dmalcolm@redhat.com>
20256 * diagnostic-show-locus.c (compatible_locations_p): New function.
20257 (layout::layout): Sanitize ranges using compatible_locations_p.
20259 2016-03-09 David Malcolm <dmalcolm@redhat.com>
20263 * diagnostic-show-locus.c (layout_range::layout_range): Replace
20264 location_range param with three const expanded_locations * and a
20266 (layout::layout): Replace call to
20267 rich_location::lazily_expand_location with get_expanded_location.
20268 Extract the range and perform location expansion here, passing
20269 the results to the layout_range ctor.
20270 * diagnostic.c (source_range::debug): Delete.
20271 * diagnostic.h (diagnostic_expand_location): Reimplement in terms
20272 of rich_location::get_expanded_location.
20273 * gcc-rich-location.c (get_range_for_expr): Delete.
20274 (gcc_rich_location::add_expr): Reimplement to avoid the
20275 rich_location::add_range overload that took a location_range,
20276 passing a location_t instead.
20278 2016-03-09 Richard Biener <rguenther@suse.de>
20279 Jakub Jelinek <jakub@redhat.com>
20281 PR tree-optimization/70138
20282 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
20283 Also skip vect_double_reduction_def.
20285 2016-03-09 Jakub Jelinek <jakub@redhat.com>
20288 * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
20289 if the operand is "m".
20291 2016-03-09 Nathan Sidwell <nathan@acm.org>
20293 * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.
20295 2016-03-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
20297 * config/i386/i386.c (processor_target_table): Fix cost table
20298 intialization order for znver1.
20300 2016-03-08 Jakub Jelinek <jakub@redhat.com>
20302 * ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling
20303 - becuase -> because.
20304 * ipa-reference.c (ignore_module_statics): Likewise.
20305 * cgraph.c (cgraph_node::get_body): Likewise.
20306 * ipa-inline.c (early_inliner): Likewise.
20307 * ipa-devirt.c (types_same_for_odr): Likewise.
20308 * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
20309 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Likewise.
20311 2016-03-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20313 * tree-ssa-math-opts.c: Fix typo in comment.
20315 2016-03-08 Jakub Jelinek <jakub@redhat.com>
20318 * config/i386/i386.c (scalar_chain::make_vector_copies,
20319 scalar_chain::convert_reg): Call end_sequence in between
20320 get_insns and emit_conversion_insns rather than after both
20323 2016-03-07 Uros Bizjak <ubizjak@gmail.com>
20326 * config/i386/i386.h (machine_function): Add
20327 pc_thunk_call_expanded flag.
20328 (ix86_pc_thunk_call_expanded): New define.
20329 * config/i386/i386.md (set_got, set_got_labelled): New expanders.
20330 (*set_got): Rename insn pattern from set_got.
20331 (*set_got_labelled): Rename inst pattern from set_got_labelled.
20332 * config/i386/i386.c (ix86_compute_frame_layout): Use
20333 ix86_pc_thunk_call_expanded to prevent red-zone.
20335 2016-03-07 Martin Jambor <mjambor@suse.cz>
20337 * hsa.h (hsa_get_ctor_statements): Declare.
20338 (hsa_get_dtor_statements): Likewise.
20339 (hsa_get_kernel_dispatch_type): Likewise.
20340 * hsa.c (hsa_get_ctor_statements): New function.
20341 (hsa_get_dtor_statements): Likewise.
20342 (hsa_get_kernel_dispatch_type): Likewise.
20343 * hsa-brig.c (hsa_cdtor_statements): Removed.
20344 (hsa_output_libgomp_mapping): Use hsa_get_ctor_statements and
20345 hsa_get_dtor_statements.
20346 * hsa-gen.c (hsa_kernel_dispatch_type): Removed.
20347 (get_hsa_kernel_dispatch_offset): Use hsa_get_kernel_dispatch_type.
20349 2016-03-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
20351 * config/arm/arm-cores.def (cortex-r8): New.
20352 * config/arm/arm-tables.opt (cortex-r8): Regenerate.
20353 * config/arm/arm-tune.md: Likewise.
20354 * doc/invoke.texi: Add cortex-r8 to list of cpu values.
20356 2016-03-07 Martin Sebor <msebor@redhat.com>
20358 PR rtl-optimization/19705
20359 * doc/invoke.texi (Options That Control Optimization): Clarify
20360 -fno-branch-count-reg.
20362 2016-02-26 Richard Biener <rguenther@suse.de>
20363 Jeff Law <law@redhat.com>
20365 PR tree-optimization/69740
20366 * cfghooks.c (remove_edge): Request loop fixups if we delete
20367 an edge that might turn an irreducible loop into a natural
20369 * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
20370 Move after definition of loops_state_clear.
20372 2016-03-07 Bin Cheng <bin.cheng@arm.com>
20374 PR rtl-optimization/69052
20375 * rtlanal.c (commutative_operand_precedence): Set higher precedence
20378 2016-03-07 Tom de Vries <tom@codesourcery.com>
20380 PR tree-optimization/70116
20381 * tree-ssa-tail-merge.c (merge_stmts_p): New function, handling
20382 is_tm_ending stmts and ubsan/asan internal functions.
20383 (find_duplicate): Use it. Don't test is_tm_ending here.
20385 2016-03-07 Richard Biener <rguenther@suse.de>
20387 PR tree-optimization/70115
20388 * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
20389 (propagate_constants_for_unrolling): Use replace_uses_by.
20391 2016-03-07 Nathan Sidwell <nathan@codesourcery.com>
20393 PR middle-end/69916
20394 * omp-low.c (struct oacc_loop): Add ifns.
20395 (new_oacc_loop_raw): Initialize it.
20396 (finish_oacc_loop): Clear mask & flags if no ifns.
20397 (oacc_loop_discover_walk): Count IFN_GOACC_LOOP calls.
20398 (oacc_loop_xform_loop): Add ifns arg & adjust.
20399 (oacc_loop_process): Adjust oacc_loop_xform_loop call.
20401 2016-03-07 Richard Henderson <rth@redhat.com>
20404 * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
20405 (insert_value_copy_on_edge): Likewise.
20407 2016-03-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20409 * config/arm/arm_neon.h: Show error if using with soft-float ABI.
20411 2016-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20414 * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
20416 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
20418 * config/i386/i386.c (znver1_cost): Fix Multiply cost.
20420 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
20422 Fix sseimul type attribute.
20423 * config/i386/znver1.md
20424 (znver1_sseimul, znver1_sseimul_avx256, znver1_sseimul_load,
20425 znver1_sseimul_avx256_load) : Fix the type attribute.
20426 (znver1_sseimul_di, znver1_sseimul_load_di): Fix type attribute,
20427 pipe usage and latency.
20429 2016-03-05 Jakub Jelinek <jakub@redhat.com>
20432 * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
20433 of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
20436 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
20439 * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
20441 PR rtl-optimization/69941
20442 * postreload.c (reload_combine_recognize_pattern): Ensure all uses of
20443 the reg share its mode.
20445 2016-03-04 Jeff Law <law@redhat.com>
20447 PR tree-optimization/69196
20448 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
20449 If the both SSA_NAMEs are anonymous, then consider them unassociated
20450 and include the PHI in the statement count.
20452 2016-03-05 Tom de Vries <tom@codesourcery.com>
20454 * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
20455 construct in oacc routine. Check for oacc region in oacc routine.
20457 2016-03-04 Jakub Jelinek <jakub@redhat.com>
20460 * config/i386/i386.c (decide_alg): Add RECUR argument. Revert
20461 2016-02-22 changes, instead don't recurse if RECUR is already true.
20462 Don't change *dynamic_check if RECUR. Adjust recursive caller
20463 to pass true to the new argument.
20464 (ix86_expand_set_or_movmem): Adjust decide_alg caller.
20467 * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
20468 <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
20470 (vec_set_hi_<mode><mask_name>): Likewise. Swap VEC_CONCAT operands.
20472 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
20474 PR rtl-optimization/57676
20475 * lra-assigns.c (lra_assign): Guard test for maximum iterations
20476 with flag_checking.
20478 2016-03-04 Ilya Enkovich <enkovich.gnu@gmail.com>
20480 * tree-vect-patterns.c (search_type_for_mask): Handle
20481 comparison of booleans.
20483 2016-03-04 Jakub Jelinek <jakub@redhat.com>
20485 * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
20489 * dwarf2out.c (prune_unused_types_walk_loc_descr): Handle
20490 all other ops that have dw_val_class_die_ref operands,
20491 and DW_OP_GNU_entry_value.
20493 2016-03-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20495 PR rtl-optimization/69904
20496 * config/arm/arm.c (arm_cannot_copy_insn_p):
20497 Return true for load-exclusive instructions.
20499 2016-03-03 Jakub Jelinek <jakub@redhat.com>
20502 * tree-vect-stmts.c (vect_mark_relevant): Remove USED_IN_PATTERN
20503 argument, if STMT_VINFO_IN_PATTERN_P (stmt_info), always mark
20504 the pattern no matter if it is used just by non-pattern, pattern
20506 (process_use, vect_mark_stmts_to_be_vectorized): Adjust callers.
20507 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
20508 oprnd1 def_stmt is in pattern, don't look through it.
20510 2016-03-03 Marek Polacek <polacek@redhat.com>
20512 PR middle-end/70050
20513 * match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
20515 2016-03-03 Martin Liska <mliska@suse.cz>
20517 PR tree-optimization/70043
20518 * tree-vect-loop.c (optimize_mask_stores): Move iterator to
20519 previous statement if we see a debug statement.
20521 2016-03-03 Richard Biener <rguenther@suse.de>
20523 PR tree-optimization/55936
20524 * tree-vrp.c (compare_name_with_value): Add use_equiv_p
20525 parameter and guard unsafe equivalence use.
20526 (vrp_evaluate_conditional_warnv_with_ops): Always use
20527 safe equivalences but not via the quadratic compare_names
20530 2016-03-03 Michael Collison <michael.collison@linaro.org>
20533 * config/arm/arm.md (*subsi3_carryin_const): Change predicate
20534 for operand 1 to s_register_operand. Change predicate for operand
20535 2 to arm_not_immediate_operand.
20537 2016-03-02 H.J. Lu <hongjiu.lu@intel.com>
20539 * doc/tm.texi: Regenerated.
20541 2016-03-02 Richard Henderson <rth@redhat.com>
20544 * simplify-rtx.c (simplify_plus_minus): Allow reassoc without
20545 simplification when all args are positive non-fixed registers.
20547 2016-03-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
20549 * target.def (lra_p): Specify that new ports should use LRA.
20551 2016-03-02 Jakub Jelinek <jakub@redhat.com>
20554 * gimplify.c (gimplify_decl_expr): For decls with REFERENCE_TYPE, also
20555 gimplify_type_sizes the type they refer to.
20556 (omp_notice_variable): Handle reference vars to VLAs.
20557 * omp-low.c (lower_omp_target): Emit setup of OMP_CLAUSE_PRIVATE
20558 reference to VLA decls in the second pass instead of first pass.
20560 2016-03-02 Tom de Vries <tom@codesourcery.com>
20562 PR tree-optimization/68659
20563 * graphite-isl-ast-to-gimple.c (collect_all_ssa_names): Handle
20564 new_expr == NULL_TREE.
20565 (get_new_name): Handle ADDR_EXPR.
20567 2016-03-02 Bin Cheng <bin.cheng@arm.com>
20569 PR rtl-optimization/69052
20570 * loop-invariant.c (canonicalize_address): New function.
20571 (inv_can_prop_to_addr_use): Check validity of address expression
20572 which is canonicalized by above function.
20574 2016-03-02 Alan Modra <amodra@gmail.com>
20577 * ipa-icf.c (sem_variable::merge): Do not merge an alias with
20580 2016-03-02 Jakub Jelinek <jakub@redhat.com>
20583 * config/i386/i386.md (kmovw): Move m constraint to 2nd alternative.
20584 (*movhi_internal): Put mask moves from and to memory separately
20585 from moves from/to GPRs.
20587 2016-03-02 Richard Biener <rguenther@suse.de>
20589 * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
20590 GENERIC expressions in GIMPLE.
20592 2016-03-02 Richard Biener <rguenther@suse.de>
20594 * config/i386/i386.c (type_natural_mode): Fix typo.
20596 2016-03-02 Nick Clifton <nickc@redhat.com>
20598 * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.
20600 2016-03-02 Richard Biener <rguenther@suse.de>
20601 Uros Bizjak <ubizjak@gmail.com>
20604 * config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
20606 2016-03-02 Richard Biener <rguenther@suse.de>
20608 PR middle-end/67278
20609 * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
20611 2016-03-02 Marek Polacek <polacek@redhat.com>
20614 * gimplify.c (gimplify_va_arg_expr): Use expanded location for the
20615 "is promoted to" warning.
20617 2016-03-01 DJ Delorie <dj@redhat.com>
20619 * config.gcc: Deprecate mep-*.
20621 2016-03-01 Vladimir Makarov <vmakarov@redhat.com>
20623 PR middle-end/70025
20624 * lra-constraints.c (regno_val_use_in): New.
20625 (match_reload): Use it instead of regno_use_in.
20627 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
20629 PR rtl-optimization/70007
20630 * gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
20631 references present in REG_EQUAL notes attached to non-SET patterns.
20633 2016-03-01 Jeff Law <law@redhat.com>
20635 PR tree-optimization/69196
20636 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
20637 Appropriately clamp the number of statements to copy when the
20638 thread path does not traverse a loop backedge.
20640 PR tree-optimization/69196
20641 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
20642 Do count some PHIs in the thread path against the insn count. Decrease
20643 final statement count by one as the control statement in the last
20644 block will get removed. Remove special cased code for handling PHIs
20647 2016-03-01 Uros Bizjak <ubizjak@gmail.com>
20650 * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
20651 asm dialect alternatives to explicit GOTPCREL calls.
20653 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
20656 * ira.c (do_reload): Issue warning for generic stack checking here...
20657 * reload1.c (reload): ...instead of here and streamline it.
20659 2016-03-01 Nick Clifton <nickc@redhat.com>
20661 * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
20663 2016-03-01 Richard Biener <rguenther@suse.de>
20665 PR tree-optimization/69983
20666 * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
20667 types and fall back to operand_equal_p.
20669 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20672 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20674 * config/s390/constraints.md ("jm8"): New constraint.
20675 * config/s390/predicates.md ("const_int_8bitset_operand"): New
20677 * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
20679 ("*setmem_long<setmem_and>"): New pattern.
20680 ("*setmem_long_31z", "*setmem_long_and_31z"): Merge
20682 ("*setmem_long_31z<setmem_and>"): New pattern.
20683 * config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
20684 New substitution rules with the required attributes.
20687 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20690 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20692 * gensupport.c (process_substs_on_one_elem): Split loop to
20693 complete mark_operands_used_in_match_dup on all expressions in the
20695 (adjust_operands_numbers): Inline into process_substs_on_one_elem
20696 and remove function.
20698 2016-03-01 Richard Biener <rguenther@suse.de>
20700 PR middle-end/70022
20701 * fold-const.c (fold_indirect_ref_1): Fix range checking for
20702 vector BIT_FIELD_REF extract.
20704 2016-03-01 Richard Biener <rguenther@suse.de>
20706 PR tree-optimization/69994
20707 * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
20709 2016-03-01 Ilya Enkovich <enkovich.gnu@gmail.com>
20711 PR tree-optimization/69956
20712 * tree-vect-stmts.c (supportable_widening_operation): Support
20713 multi-step conversion of boolean vectors.
20714 (supportable_narrowing_operation): Likewise.
20716 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20718 * config/s390/s390.c (s390_decompose_address): Don't accept SImode
20721 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20723 * config/s390/subst.md (DSI_VI): New mode iterator.
20724 ("addr_style_op_subst"): Use DSI_VI instead of DSI.
20725 * config/s390/vector.md ("vec_set<mode>"): Move expander before
20726 the insn definition.
20727 ("*vec_set<mode>"): Change predicate and add alternative to
20728 support only either register or const_int operands as element
20730 ("*vec_set<mode>_plus"): New pattern to support reg + const_int
20732 ("vec_extract<mode>"): New expander.
20733 ("*vec_extract<mode>"): New insn definition supporting reg and
20734 const_int element selectors.
20735 ("*vec_extract<mode>_plus"): New insn definition supporting
20736 reg+const_int element selectors.
20737 ("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
20738 following expander+insn definition.
20739 ("<vec_shifts_name><mode>3"): New expander.
20740 ("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.
20742 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20744 * config/s390/s390.md ("*tabort_1"): Change predicate to
20745 nonmemory_operand. Add a second alternative to cover
20746 register as well as const int operands.
20747 ("*tabort_1_plus"): New pattern definition.
20749 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20751 * config/s390/s390.md ("*ashrdi3_cc_31")
20752 ("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
20753 ("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
20754 Merge insn definitions into ...
20755 ("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
20756 New pattern definition.
20757 ("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
20758 ("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
20759 ("*ashr<mode>3_and"): Merge insn definitions into ...
20760 ("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
20761 New pattern definition.
20762 * config/s390/subst.md ("addr_style_op_cc_subst")
20763 ("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
20764 substitutions patterns plus attributes.
20765 Add ashiftrt to SUBST iterator.
20767 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20769 * config/s390/s390.md ("<shift><mode>3"): Change predicate of
20770 op2 to nonmemory_operand.
20771 ("*<shift>di3_31", "*<shift>di3_31_and"):
20772 Merge into single pattern definition ...
20773 ("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
20774 ("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
20775 pattern definition ...
20776 ("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
20777 * config/s390/subst.md: Add ashift and lshiftrt to SUBST
20780 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20782 * config/s390/predicates.md (const_int_6bitset_operand): New
20784 * config/s390/s390.md: Include subst.md.
20785 ("rotl<mode>3"): New expander.
20786 ("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
20788 ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
20789 * config/s390/subst.md: New file.
20791 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20793 * config/s390/s390.md ("op_type", "atype", "length" attributes):
20794 Remove RRR type. It doesn't really exist.
20795 ("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
20797 ("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
20798 ("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
20799 ("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
20800 ("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
20801 ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
20802 ("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
20803 `enabled' attribute.
20805 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20807 * gensupport.c (process_substs_on_one_elem): Split loop to
20808 complete mark_operands_used_in_match_dup on all expressions in the
20810 (adjust_operands_numbers): Inline into process_substs_on_one_elem
20811 and remove function.
20813 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
20816 * config/sparc/sparc.c (NWORDS_UP): Rename to...
20817 (CEIL_NWORDS): ...this. Use CEIL macro.
20818 (compute_fp_layout): Adjust to above renaming.
20819 (function_arg_union_value): Likewise.
20820 (sparc_arg_partial_bytes): Likewise.
20821 (sparc_function_arg_advance): Likewise.
20823 2016-02-29 Jeff Law <law@redhat.com>
20825 PR tree-optimization/70005
20826 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
20827 where an object with a boolean range is compared against a value
20830 PR tree-optimization/69999
20831 * gimple-ssa-split-paths.c (split_paths): When duplicating a block
20832 with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule
20835 2016-02-29 Richard Biener <rguenther@suse.de>
20837 PR tree-optimization/69994
20838 * tree-ssa-reassoc.c (gimple_nop_conversion_p): New function.
20839 (get_unary_op): Look through nop conversions.
20840 (ops_equal_values_p): New function, look for equality diregarding
20842 (eliminate_plus_minus_pair): Use ops_equal_values_p
20843 (repropagate_negates): Do not use get_unary_op here.
20845 2016-02-29 Martin Liska <mliska@suse.cz>
20847 * system.h: Poison ENABLE_CHECKING macro.
20849 2016-02-29 Martin Liska <mliska@suse.cz>
20851 * hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS
20852 is presented in dump flags.
20853 * hsa-regalloc.c (linear_scan_regalloc): Likewise.
20854 (hsa_regalloc): Likewise.
20856 2016-02-19 Richard Biener <rguenther@suse.de>
20858 PR tree-optimization/69980
20859 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
20860 permutation of those we need to keep.
20862 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
20865 * config/sparc/sparc.c (ROUND_ADVANCE): Rename to...
20866 (NWORDS_UP): ...this
20867 (init_cumulative_args): Minor tweaks.
20868 (sparc_promote_function_mode): Likewise.
20869 (scan_record_type): Delete.
20870 (traverse_record_type): New function template.
20871 (classify_data_t): New structure type.
20872 (classify_registers): New inline function.
20873 (function_arg_slotno): In 64-bit mode, bail out early if FP slots are
20874 exhausted. Instantiate traverse_record_type on classify_registers and
20875 deal with the case of a structure passed in slot #15 with no FP field
20877 (assign_data_t): New structure type.
20878 (compute_int_layout): New static function.
20879 (compute_fp_layout): Likewise.
20880 (count_registers): New inline function.
20881 (assign_int_registers): New static function.
20882 (assign_fp_registers): Likewise.
20883 (assign_registers): New inline function.
20884 (function_arg_record_value_1): Delete.
20885 (function_arg_record_value_2): Likewise.
20886 (function_arg_record_value_3): Likewise.
20887 (function_arg_record_value): Adjust to above changes. Instantiate
20888 traverse_record_type on count_registers to first count the number of
20889 registers to be used and then on assign_registers to assign them.
20890 (function_arg_union_value): Adjust to above renaming.
20891 (sparc_function_arg_1); Minor tweaks. Remove commented out code.
20892 (sparc_arg_partial_bytes): Adjust to above renaming. Deal with the
20893 case of a structure passed in slot #15
20894 (sparc_function_arg_advance): Likewise.
20895 (function_arg_padding): Minor tweak.
20897 2016-02-29 Richard Biener <rguenther@suse.de>
20899 PR tree-optimization/69720
20900 * tree-vect-loop.c (get_initial_def_for_reduction): Avoid
20901 the adjustment_def path for possibly vectorized defs.
20902 (vect_create_epilog_for_reduction): Handle vectorized initial
20905 2016-02-28 Eric Botcazou <ebotcazou@adacore.com>
20907 * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
20909 2016-02-27 Jeff Law <law@redhat.com>
20912 2016-02-26 Richard Biener <rguenther@suse.de>
20913 Jeff Law <law@redhat.com>
20915 PR tree-optimization/69740
20916 * cfghooks.c (remove_edge): Request loop fixups if we delete
20917 an edge that might turn an irreducible loop into a natural
20920 2016-02-27 Jakub Jelinek <jakub@redhat.com>
20922 PR rtl-optimization/69896
20923 * tree-vect-generic.c (get_compute_type): Avoid single element
20926 2016-02-26 Evandro Menezes <e.menezes@samsung.com>
20928 Rename the AArch64 tuning option and related functions to enable the
20929 Newton series for the reciprocal square root to reflect its
20930 approximative characteristic.
20932 * config/aarch64/aarch64-protos.h (aarch64_emit_swrsqrt): Rename
20933 function to "aarch64_emit_approx_rsqrt".
20934 * config/aarch64/aarch64-tuning-flags.def: Rename tuning flag to
20935 AARCH64_EXTRA_TUNE_APPROX_RSQRT.
20936 * config/aarch64/aarch64.c (exynosm1_tunigs): Use new flag name.
20937 (xgene1_tunings): Likewise.
20938 (use_rsqrt_p): Likewise.
20939 (aarch64_emit_swrsqrt): Use new function name.
20940 * config/aarch64/aarch64-simd.md (aarch64_rsqrts_*): Likewise.
20941 * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): Reword the
20942 text explaining this option.
20943 * doc/invoke.texi (-mlow-precision-recip-sqrt): Likewise.
20945 2016-02-26 Jakub Jelinek <jakub@redhat.com>
20948 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
20949 complain about -mallow-movmisalign without -mvsx if
20950 TARGET_ALLOW_MOVMISALIGN was not set explicitly.
20952 2016-02-26 Joel Sherrill <joel@rtems.org>
20954 * config.gcc: Add x86_64-*-rtems*.
20955 * config/i386/rtems-64.h: New file.
20957 2016-02-26 Joel Sherrill <joel@rtems.org>
20959 * config.gcc: Add aarch64-*-rtems*.
20960 * config/aarch64/rtems.h: New file.
20962 2016-02-26 Segher Boessenkool <segher@kernel.crashing.org>
20965 * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
20966 shift amount using %h. Add comment.
20968 2016-02-26 Richard Biener <rguenther@suse.de>
20969 Jeff Law <law@redhat.com>
20971 PR tree-optimization/69740
20972 * cfghooks.c (remove_edge): Request loop fixups if we delete
20973 an edge that might turn an irreducible loop into a natural
20976 2016-02-26 Martin Jambor <mjambor@suse.cz>
20978 PR middle-end/69920
20979 * tree-sra.c (sra_modify_assign): Do not remove loads of
20980 uninitialized aggregates to SSA_NAMEs.
20982 2016-02-26 Richard Henderson <rth@redhat.com>
20985 * config/s390/s390.md (risbg and risbgn splitters): Allocate new
20986 pseudo in case the target rtx matches the source of the left
20989 2016-02-26 Martin Jambor <mjambor@suse.cz>
20992 * hsa.h (hsa_type_packed_p): Declare.
20993 * hsa.c (hsa_type_packed_p): New function.
20994 * hsa-gen.c (mem_type_for_type): Use unsigned type for packed
20996 (gen_hsa_insns_for_store): Use hsa_type_packed_p.
20997 * hsa-brig.c (emit_basic_insn): Likewise.
20999 2016-02-26 Martin Jambor <mjambor@suse.cz>
21002 * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
21004 (gen_hsa_addr): Allow integer constants in TMR_INDEX2.
21006 2016-02-26 Martin Jambor <mjambor@suse.cz>
21008 * hsa.h (is_a_helper): New overload for hsa_op_immed for
21009 hsa_op_with_type operands.
21010 (hsa_unsigned_type_for_type): Declare.
21011 * hsa.c (hsa_unsigned_type_for_type): New function.
21012 * hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type.
21013 (gen_hsa_insns_for_operation_assignment): Satisfy constrains of
21014 the finalizer. Do not emit extra move.
21016 2016-02-26 Martin Jambor <mjambor@suse.cz>
21018 * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
21019 atomic operations in private segment.
21021 2016-02-26 Martin Jambor <mjambor@suse.cz>
21023 * omp-low.c (grid_find_ungridifiable_statement): Store problematic
21024 statements to wi->info. Also disallow omp simd constructs.
21025 (grid_target_follows_gridifiable_pattern): Use wi.info to dump reason
21026 for not gridifying. Dump special string for omp_for.
21028 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21031 * config/aarch64/aarch64.c (aarch64_set_current_function):
21032 Save/restore target globals when switching to
21033 target_option_default_node.
21035 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21038 * config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
21039 Return 0 if !SHIFT_COUNT_TRUNCATED.
21041 2016-02-26 Jakub Jelinek <jakub@redhat.com>
21042 Eric Botcazou <ebotcazou@adacore.com>
21044 PR rtl-optimization/69891
21045 * dse.c (scan_insn): If we can't figure out memset arguments
21046 or they are non-constant, call clear_rhs_from_active_local_stores.
21048 2016-02-26 Martin Liska <mliska@suse.cz>
21050 * doc/extend.texi: Mention clog10, clog10f an clog10l
21051 in Builtins section.
21053 2016-02-26 Martin Liska <mliska@suse.cz>
21055 * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
21057 (resolve_args_picking_1): Likewise.
21058 * dwarf2out.h (struct GTY): Likewise.
21060 2016-02-26 Martin Liska <mliska@suse.cz>
21062 * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
21063 with flag_checking.
21064 * hsa-regalloc.c (linear_scan_regalloc): Likewise.
21066 2016-02-26 Markus Trippelsdorf <markus@trippelsdorf.de>
21067 Martin Liska <mliska@suse.cz>
21069 * doc/install.texi: Mention --enable-valgrind-annotations.
21071 2016-02-26 Richard Biener <rguenther@suse.de>
21073 PR tree-optimization/69551
21074 * tree-ssa-structalias.c (get_constraint_for_ssa_var): When
21075 looking through aliases adjust DECL_PT_UID to refer to the
21076 ultimate alias target.
21078 2016-02-25 Martin Liska <mliska@suse.cz>
21080 PR middle-end/69919
21081 * alloc-pool.c (after_memory_report): New variable.
21082 * alloc-pool.h (base_pool_allocator ::release): Do not use
21083 the infrastructure if after_memory_report.
21084 * toplev.c (toplev::main): Mark after memory report.
21086 2016-02-25 Richard Biener <rguenther@suse.de>
21088 PR tree-optimization/48795
21089 * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
21091 2016-02-25 Ilya Verbin <ilya.verbin@intel.com>
21094 * config/gnu-user.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o if
21095 offloading is enabled and -fopenacc or -fopenmp is specified.
21096 (CRTOFFLOADEND): Likewise.
21097 (GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
21098 (GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
21099 * lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
21100 (offload_objects_file_name): New static var.
21101 (tool_cleanup): Remove offload_objects_file_name file.
21102 (find_offloadbeginend): Replace with ...
21103 (find_crtoffloadtable): ... this.
21104 (run_gcc): Remove offload_argc and offload_argv.
21105 Get offload_objects_file_name from -foffload-objects=... option.
21106 Read names of object files with offload from this file, pass them to
21107 compile_images_for_offload_targets. Don't call find_offloadbeginend and
21108 don't pass offloadbegin and offloadend to the linker. Don't pass
21109 offload non-LTO files to the linker, because now they're not claimed.
21111 2016-02-25 Jan Hubicka <hubicka@ucw.cz>
21114 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
21115 on builtin_unreachable.
21117 2016-02-25 Jakub Jelinek <jakub@redhat.com>
21119 PR rtl-optimization/69896
21120 * regcprop.c: Include cfgrtl.h.
21121 (copyprop_hardreg_forward_1): If noop_p insn uses narrower
21122 than remembered mode, either delete it (if noop_move_p), or
21123 treat like copy_p but not noop_p instruction.
21125 2016-02-24 Jakub Jelinek <jakub@redhat.com>
21128 * dwarf2out.c (gen_variable_die): Work around buggy LTO
21129 - allow NULL decl for Fortran DW_TAG_common_block variables.
21131 2016-02-24 Jason Merrill <jason@redhat.com>
21133 * common.opt (flifetime-dse): Add -flifetime-dse=1.
21135 2016-02-24 Richard Biener <rguenther@suse.de>
21136 Jakub Jelinek <jakub@redhat.com>
21138 PR middle-end/69760
21139 * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
21140 conditionally executed ops to well-defined overflow behavior.
21142 2016-02-24 Jakub Jelinek <jakub@redhat.com>
21144 PR middle-end/69915
21145 * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
21148 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21150 PR rtl-optimization/69886
21151 * gcse.c (can_assign_to_reg_without_clobbers_p): Accept mode
21152 argument. Use it when checking validity of set instructions.
21153 (want_to_gcse_p): Pass mode to can_assign_to_reg_without_clobbers_p.
21154 (compute_ld_motion_mems): Update can_assign_to_reg_without_clobbers_p
21156 * rtl.h (can_assign_to_reg_without_clobbers_p): Update prototype.
21157 * store-motion.c (find_moveable_store): Update
21158 can_assign_to_reg_without_clobbers_p callsite.
21160 2016-02-24 Richard Biener <rguenther@suse.de>
21162 PR middle-end/68963
21163 * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
21165 (record_nonwrapping_iv): Do not fall back to the low/high bound
21166 for non-constant IV bases if the stmt is not always executed.
21168 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21170 * config/arm/arm-cores.def (cortex-a32): New entry.
21171 * config/arm/arm-tables.opt: Regenerate.
21172 * config/arm/arm-tune.md: Regenerate.
21173 * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a32.
21174 * config/arm/t-aprofile: Handle mcpu=cortex-a32.
21175 * doc/invoke.texi (ARM Options): Document cortex-a32 as value
21176 for -mcpu and -mtune.
21178 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21181 * config/arm/arm.h (TARGET_HAVE_LPAE): Define.
21182 * config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value.
21183 * config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern.
21184 (atomic_loaddi_1): Delete.
21185 (atomic_loaddi): Rewrite expander using the above changes.
21187 2016-02-24 Jakub Jelinek <jakub@redhat.com>
21190 * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
21193 2016-02-24 Jakub Jelinek <jakub@redhat.com>
21194 Richard Biener <rguenth@suse.de>
21196 PR middle-end/69909
21197 * expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid
21198 set_mem_attributes if tem is SSA_NAME which got expanded
21201 2016-02-24 Richard Biener <rguenther@suse.de>
21203 PR tree-optimization/69907
21204 * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
21205 end of permutations for BB vectorization.
21207 2016-02-24 Christian Bruel <christian.bruel@st.com>
21209 * config/arm/arm-c.c (arm_option_override): Initialize
21210 target_option_current_node.
21211 * config/arm/arm.c (arm_pragma_target_parse): Replace
21212 build_target_option_node call by target_option_current_node.
21213 Set target_option_current_node.
21216 2016-02-23 David Edelsohn <dje.gcc@gmail.com>
21219 * config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
21220 define_insn_and_split to define_insn.
21221 (zero_extendqi<mode>2_dot2): Same.
21222 (extendqi<mode>2_dot): Same.
21223 (extendqi<mode>2_dot2): Same.
21225 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
21227 * config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores
21228 and add bypass for AES{D,E} and AESMC pairs.
21229 * config/aarch64/aarch64.c (exynosm1_tunings): Enable fusion of AES{D,E}
21232 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
21234 * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
21235 series for reciprocal square root in Exynos M1.
21237 2016-02-23 Martin Sebor <msebor@redhat.com>
21240 * doc/extend.texi (Other Builtins): Document __builtin_alloca and
21241 __builtin_alloca_with_align.
21243 2016-02-23 Richard Henderson <rth@redhat.com>
21245 * config/i386/i386-c.c (ix86_target_macros): Remove __SEG_TLS.
21246 (ix86_register_pragmas): Remove __seg_tls.
21247 * config/i386/i386-protos.h (ADDR_SPACE_SEG_TLS): Remove.
21248 * config/i386/i386.c (ix86_print_operand_address_as): Don't handle it.
21249 (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): Remove.
21250 (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): Remove.
21251 (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): Remove.
21252 * doc/extend.texi (__seg_tls): Remove item.
21254 2016-02-23 Richard Biener <rguenther@suse.de>
21256 * alloc-pool.h (struct allocation_object): Make id member
21257 conditional on CHECKING_P again.
21258 (get_instance): Adjust.
21259 (base_pool_allocator): Likewise.
21261 2016-02-23 Thomas Schwinge <thomas@codesourcery.com>
21263 * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
21264 (parallelize_loops): In OpenACC kernels mode, set n_threads to
21266 (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
21268 * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
21270 2016-02-23 Richard Biener <rguenther@suse.de>
21272 * mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
21273 * bitmap.h (struct bitmap_usage): Likewise.
21274 (bitmap_move): Declare.
21275 * bitmap.c (register_overhead): Take size_t argument.
21276 (bitmap_move): New function.
21277 * df-problems.c (df_rd_transfer_function): Use bitmap_move
21278 to properly account overhead.
21279 * tree.c (free_node): Use tree_size.
21281 2016-02-23 Jakub Jelinek <jakub@redhat.com>
21284 * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
21285 when inverting comparison.
21288 * common.opt (Wunreachable-code): Add Warning flag.
21290 2016-02-23 Mark Wielaard <mjw@redhat.com>
21291 Jakub Jelinek <jakub@redhat.com>
21294 * cgraphunit.c (check_global_declaration): Check main_input_filename
21295 and DECL_SOURCE_FILE are not NULL.
21297 2016-02-23 Martin Jambor <mjambor@suse.cz>
21299 PR tree-optimization/69666
21300 * tree-sra.c (sra_modify_assign): Do not attempt to create
21301 default_def replacements for unscalarizable regions.
21303 2016-02-20 Mark Wielaard <mjw@redhat.com>
21306 * cgraphunit.c (check_global_declaration): Check level of
21307 warn_unused_const_variable and main_input_filename.
21308 * doc/invoke.texi (Warning Options): Add -Wunused-const-variable=.
21309 (-Wunused-variable): For C implies -Wunused-const-variable=1.
21310 (-Wunused-const-variable): Explain levels 1 and 2.
21312 2016-02-22 Jakub Jelinek <jakub@redhat.com>
21315 * config/i386/i386.c (decide_alg): Ensure we don't recurse with
21316 identical arguments. Formatting and spelling fixes.
21319 * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
21324 * config/m68k/t-opts (OPTIONS_H_EXTRA): Add m68k-microarchs.def
21325 and m68k-devices.def.
21326 * config/c6x/t-c6x (OPTIONS_H_EXTRA): Add c6x-isas.def.
21327 * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add aarch64-arches.def.
21329 2016-02-22 Cesar Philippidis <cesar@codesourcery.com>
21331 * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
21332 and HImode registers.
21334 2016-02-22 Richard Biener <rguenther@suse.de>
21336 PR tree-optimization/69882
21337 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Properly
21338 preserve permutations present because of gaps.
21339 (vect_supported_load_permutation_p): Always continue checking
21340 permutations after vect_attempt_slp_rearrange_stmts.
21342 2016-02-22 Bin Cheng <bin.cheng@arm.com>
21344 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
21345 min_profitable_estimate, rather than min_profitable_iters.
21347 2016-02-22 Jakub Jelinek <jakub@redhat.com>
21350 * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
21351 SImode for last match_operand.
21353 2016-02-22 Martin Liska <mliska@suse.cz>
21355 * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
21356 return bitsize - 1 as the return value.
21358 2016-02-22 Oleg Endo <olegendo@gcc.gnu.org>
21362 * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
21363 Handle negative shift counts.
21364 * config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
21365 force_reg on the shift constant.
21366 (lshrsi3): Likewise. Expand into lshrsi3_n* instead of lshrsi3_d.
21367 (lshrsi3_d): Handle negative shift counts.
21369 2016-02-22 Richard Biener <rguenther@suse.de>
21370 Tom de Vries <tom@codesourcery.com>
21372 * graph.c: Include dumpfile.h.
21373 (print_graph_cfg): Split into three overloads.
21374 * gdbhooks.py (class DotFn): Add and instantiate, adding command dot-fn.
21376 2016-02-22 Tom de Vries <tom@codesourcery.com>
21378 * gdbhooks.py (class DumpFn): Add and instantiate, adding command
21381 2016-02-22 Richard Biener <rguenther@suse.de>
21384 * ipa-inline-transform.c (inline_call): When not updating
21385 overall summaries adjust self size by the growth estimate.
21386 * ipa-inline.c (inline_to_all_callers_1): Add to the callers
21387 hash-set, do not update overall summaries here. Renamed from ...
21388 (inline_to_all_callers): ... this which is now wrapping the
21389 above and performing delayed overall summary update.
21390 (early_inline_small_functions): Delay updating of the overall
21393 2016-02-21 Markus Trippelsdorf <markus@trippelsdorf.de>
21395 * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
21398 2016-02-19 Jakub Jelinek <jakub@redhat.com>
21401 * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use
21402 :%* in %:gt() argument.
21403 (greater_than_spec_func): Adjust for expecting only numbers,
21404 if there are more than two numbers, compare the last two.
21406 2016-02-19 Jonathan Wakely <jwakely@redhat.com>
21408 * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
21409 -Wnarrowing with -std.
21411 2016-02-19 Jakub Jelinek <jakub@redhat.com>
21414 * expr.c (store_field): Don't use bit-field path if exp is
21415 COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is
21416 different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize
21417 and the assignment can be performed by bitwise copy. Formatting
21420 PR middle-end/69838
21421 * lra.c (lra_process_new_insns): If non-call exceptions are enabled,
21422 call copy_reg_eh_region_note_forward on before and/or after sequences
21423 and remove note from insn if it no longer can throw.
21426 * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
21427 if TARGET_AVX512BW.
21429 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21431 * config/s390/vector.md: Add missing commutative operand markers
21432 to the patterns which qualify for one.
21433 * config/s390/vx-builtins.md: Likewise.
21435 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21437 * config/s390/vector.md (VI, VI_QHS): Add single element vector
21438 types to mode iterators.
21439 (vec_double): ... and mode attribute.
21440 * config/s390/vx-builtins.md (non_vec_int): Likewise.
21442 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21444 * config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
21445 Change the predicate of op2 from nonimmediate to general and let
21446 reload fix it if necessary.
21448 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21450 * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
21452 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21454 * config/s390/s390.c (s390_expand_vcond): Use the compare operand
21457 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21459 * config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
21460 * config/s390/s390.c (s390_expand_vec_movstr): New function.
21461 * config/s390/s390.md ("movstr<P:mode>"): Call
21462 s390_expand_vec_movstr.
21464 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21466 * config/s390/s390.md: Add missing output modifier for operand 1
21467 to print it as address properly.
21469 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21471 * config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
21472 * config/s390/2964.md: New file.
21473 * config/s390/s390.c (s390_get_sched_attrmask): Use the right set
21474 of insn grouping attributes depending on the CPU level.
21475 (s390_get_unit_mask): New function.
21476 (s390_sched_score): Remove the OOO from the scheduling macros.
21477 Add loop to calculate a score for the instruction mix.
21478 (s390_sched_reorder): Likewise plus improve debug output.
21479 (s390_sched_variable_issue): Rename macros as above. Calculate
21480 the unit distances after actually scheduling an insn. Improve
21482 (s390_sched_init): Clear last_scheduled_unit_distance array.
21483 * config/s390/s390.md: Include 2964.md.
21485 2016-02-18 Jakub Jelinek <jakub@redhat.com>
21488 * config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
21489 *avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
21490 *avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
21491 *avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
21492 *avx512f_<code>v8div16qi2_mask_1): New insns.
21494 2016-02-18 Michael Meissner <meissner@linux.vnet.ibm.com>
21497 * config/rs6000/predicates.md (fusion_gpr_addis): Revert
21500 * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
21501 earlyclobber from target. Use wF constraint for fused memory
21503 (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
21505 2016-02-18 Jakub Jelinek <jakub@redhat.com>
21506 Martin Liska <mliska@suse.cz>
21509 * cfgexpand.c (asan_sanitize_stack_p): New function.
21510 (partition_stack_vars): Use the function.
21511 (expand_stack_vars): Likewise.
21512 (defer_stack_allocation): Likewise.
21513 (expand_used_vars): Likewise.
21515 2016-02-18 Richard Biener <rguenther@suse.de>
21517 PR middle-end/69553
21518 * fold-const.c (operand_equal_p): Properly compare offsets for
21519 IMAGPART_EXPR and ARRAY_REF.
21521 2016-02-18 Nick Clifton <nickc@redhat.com>
21525 * config/arm/arm.c (arm_option_override_internal): Disable
21526 interworking if the target does not support thumb instructions.
21527 (arm_reload_in_hi): Handle the case where a register to register
21528 move needs reloading because there is no simple pattern to handle
21530 (arm_reload_out_hi): Likewise.
21532 2016-02-18 Richard Biener <rguenther@suse.de>
21534 PR middle-end/69854
21535 * match.pd: Don't use fold_binary or fold_unary for folding
21538 2016-02-17 Jakub Jelinek <jakub@redhat.com>
21541 * gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
21542 on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
21543 * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
21544 warn on gimple_no_warning_p statements.
21546 2016-02-17 Jonathan Wakely <jwakely@redhat.com>
21548 * doc/extend.texi (C++ Attributes): Correct description of
21549 warn_unused type attribute.
21551 2016-02-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
21553 * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
21554 correct instruction.
21556 2016-02-17 Richard Biener <rguenther@suse.de>
21558 PR rtl-optimization/69609
21559 * bb-reorder.c (struct bbro_basic_block_data): Add priority member.
21560 (find_traces_1_round): When ending a trace update cached priority
21562 (bb_to_key): Use cached priority when available.
21563 (copy_bb): Initialize cached priority.
21564 (reorder_basic_blocks_software_trace_cache): Likewise.
21566 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21569 * config/aarch64/predicates.md (aarch64_comparison_operator_mode):
21571 (aarch64_comparison_operator): Break overly long line into two.
21572 (aarch64_comparison_operation): Likewise.
21573 * config/aarch64/aarch64.md (cstorecc4): Use
21574 aarch64_comparison_operator_mode instead of
21575 aarch64_comparison_operator.
21576 (cstore<mode>4): Likewise.
21577 (aarch64_cstore<mode>): Likewise.
21578 (*cstoresi_insn_uxtw): Likewise.
21579 (cstore<mode>_neg): Likewise.
21580 (*cstoresi_neg_uxtw): Likewise.
21582 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21585 * config/arm/predicates.md (arm_comparison_operator_mode):
21587 * config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode
21588 instead of arm_comparison_operator.
21589 (*mov_negscc): Likewise.
21590 (*mov_notscc): Likewise.
21591 * config/arm/thumb2.md (*thumb2_mov_scc): Likewise.
21592 (*thumb2_mov_negscc): Likewise.
21593 (*thumb2_mov_negscc_strict_it): Likewise.
21594 (*thumb2_mov_notscc): Likewise.
21595 (*thumb2_mov_notscc_strict_it): Likewise.
21597 2016-02-17 Wilco Dijkstra <wdijkstr@arm.com>
21599 * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
21600 Add missing return.
21602 2016-02-17 Eric Botcazou <ebotcazou@adacore.com>
21604 * config/visium/visium.c (machine_libfunc_index): New enum.
21605 (machine_libfuncs): New structure.
21606 (visium_libfuncs): New static variable.
21607 (TARGET_INIT_LIBFUNCS): Define to...
21608 (visium_init_libfuncs): ...this. New function.
21609 (expand_block_move_4): Use the appropriate libfunc.
21610 (expand_block_move_2): Likewise.
21611 (expand_block_move_1): Likewise.
21612 (expand_block_set_4): Likewise.
21613 (expand_block_set_2): Likewise.
21614 (expand_block_set_1): Likewise.
21615 (visium_trampoline_init): Likewise.
21617 2016-02-17 Nick Clifton <nickc@redhat.com>
21619 * config/msp430/msp430.c (msp430_mcu_data): Sync with data from
21620 TI's devices.csv file as of March 2016.
21622 2016-02-16 Kelvin Nilsen <kelvin@gcc.gnu.org>
21625 * opts-global.c (handle_common_deferred_options): Introduce and
21626 initialize two global variables to remember command-line options
21627 specifying a stack-limiting register.
21628 * opts.h: Add extern declarations of the two new global variables.
21629 * emit-rtl.c (init_emit_once): Initialize the stack_limit_rtx
21630 variable based on the values of the two new global variables.
21632 2016-02-16 Jakub Jelinek <jakub@redhat.com>
21635 * common.opt (Wnonnull-compare): New warning.
21636 * doc/invoke.texi (-Wnonnull): Remove text about comparison
21637 of arguments against NULL.
21638 (-Wnonnull-compare): Document.
21639 * Makefile.in (OBJS): Add gimple-ssa-nonnull-compare.o.
21640 * tree-pass.h (make_pass_warn_nonnull_compare): Declare.
21641 * passes.def (pass_warn_nonnull_compare): Add.
21642 * gimple-ssa-nonnull-compare.c: New file.
21644 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
21646 * config/aarch64/aarch64.c (cortexa57_tunings): Remove
21647 AARCH64_EXTRA_TUNE_RECIP_SQRT.
21649 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
21651 * config/aarch64/aarch64.c (use_rsqrt_p): Always use software
21652 reciprocal sqrt for -mlow-precision-recip-sqrt.
21654 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
21655 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
21657 * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
21658 always use lane loads to construct non-constant vectors.
21660 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
21662 * config/aarch64/aarch64.md
21663 (arch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Fix register
21664 constraints for operand 3.
21665 (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
21667 2016-02-16 Jakub Jelinek <jakub@redhat.com>
21668 Richard Biener <rguenther@suse.de>
21670 PR tree-optimization/69820
21671 * tree-vect-patterns.c (type_conversion_p): Return false if
21672 *orig_type is unsigned single precision or boolean.
21673 (vect_recog_dot_prod_pattern, vect_recog_widen_mult_pattern):
21676 2016-02-16 Jakub Jelinek <jakub@redhat.com>
21678 PR rtl-optimization/69764
21679 PR rtl-optimization/69771
21680 * optabs.c (expand_binop): Ensure for shift optabs invalid CONST_INT
21681 op1 is valid for GET_MODE_INNER (mode) and force it into a reg.
21683 2016-02-16 Richard Biener <rguenther@suse.de>
21685 PR tree-optimization/69776
21686 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
21688 (indirect_refs_may_alias_p): Likewise.
21689 (refs_may_alias_p_1): Pass alias sets as from ao_ref.
21690 * tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set
21691 according to tbaa_p.
21692 * tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag.
21693 (optimize_stmt): For redundant store discovery do not allow tbaa.
21695 2016-02-16 Bernd Schmidt <bschmidt@redhat.com>
21697 PR tree-optimization/69714
21698 * tree-ssa-math-opts.c (find_bswap_or_nop): Revert previous change.
21699 Return NULL if we have irrelevant high bytes on BIG_ENDIAN.
21701 2016-02-16 Claudiu Zissulescu <claziss@synopsys.com>
21703 * config/arc/arc-modes.def (CC_FPU, CC_FPU_UNEQ): New modes.
21704 * config/arc/arc-opts.h (FPU_SP, FPU_SF, FPU_SC, FPU_SD, FPU_DP)
21705 (FPU_DF, FPU_DC, FPU_DD, FXP_DP): Define.
21706 * config/arc/arc.c (arc_init): Check FPU options.
21707 (get_arc_condition_code): Handle new CC_FPU* modes.
21708 (arc_select_cc_mode): Likewise.
21709 (arc_conditional_register_usage): Allow 64 bit datum into even-odd
21710 register pair only. Allow access for ARCv2 accumulator.
21711 (gen_compare_reg): Whenever we have FPU support use FPU compare
21713 (arc_reorg): Don't generate brcc insns when FPU compare
21714 instructions are involved.
21715 * config/arc/arc.h (TARGET_DPFP): Add TARGET_FP_DPAX condition.
21716 (TARGET_OPTFPE): Add condition when ARC EM can use optimized
21717 floating point emulation.
21718 (ACC_REG_FIRST, ACC_REG_LAST, ACCL_REGNO, ACCH_REGNO): Define.
21719 (REVERSE_CONDITION): Add new CC_FPU* modes.
21720 (TARGET_FP_SP_BASE): Define.
21721 (TARGET_FP_DP_BASE): Likewise.
21722 (TARGET_FP_SP_FUSED): Likewise.
21723 (TARGET_FP_DP_FUSED): Likewise.
21724 (TARGET_FP_SP_CONV): Likewise.
21725 (TARGET_FP_DP_CONV): Likewise.
21726 (TARGET_FP_SP_SQRT): Likewise.
21727 (TARGET_FP_DP_SQRT): Likewise.
21728 (TARGET_FP_DP_AX): Likewise.
21729 * config/arc/arc.md (ARCV2_ACC): New constant.
21730 (type): New fpu type attribute.
21731 (SDF): Conditional iterator.
21732 (cstore<mode>, cbranch<mode>): Change expand condition.
21733 (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3): New expands,
21734 handles FPU/FPX cases as well.
21735 * config/arc/arc.opt (mfpu): New option.
21736 * config/arc/fpx.md (addsf3_fpx, subsf3_fpx, mulsf3_fpx):
21738 (adddf3, muldf3, subdf3): Removed.
21739 * config/arc/predicates.md (proper_comparison_operator): Recognize
21741 * config/arc/fpu.md: New file.
21742 * doc/invoke.texi (ARC Options): Document mfpu option.
21744 2016-02-16 Richard Biener <rguenther@suse.de>
21746 PR rtl-optimization/69291
21747 * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
21748 noce_operand_ok check.
21750 2016-02-16 Tom de Vries <tom@codesourcery.com>
21753 * omp-low.c (simd_clone_create): Remove call to
21754 symtab->call_cgraph_insertion_hooks.
21756 2016-02-16 Jakub Jelinek <jakub@redhat.com>
21758 PR tree-optimization/69802
21759 * tree-ssa-reassoc.c (update_range_test): If op is
21760 SSA_NAME_IS_DEFAULT_DEF, give up unless tem is a positive
21761 op == 1 test of precision 1 integral op, otherwise handle
21762 that case as op itself. Fix up formatting.
21763 (optimize_range_tests_to_bit_test, optimize_range_tests): Fix
21766 2016-02-16 Richard Biener <rguenther@suse.de>
21768 PR tree-optimization/69586
21769 * tree-vrp.c (register_edge_assert_for_2): Handle all integral
21770 types for conversion sources.
21772 2016-02-16 Richard Biener <rguenther@suse.de>
21774 PR middle-end/69801
21775 * fold-const.c (operand_equal_p): For COND_EXPR zero operand
21776 mask OEP_ADDRESS_OF.
21778 2016-02-16 Alan Modra <amodra@gmail.com>
21781 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter.
21782 (p8_mtvsrd_df, p8_mtvsrd_sf): New.
21783 (p8_mtvsrd_1, p8_mtvsrd_2): Delete.
21785 (p8_mtvsrwz_1, p8_mtvsrwz_2): Delete.
21786 (p8_xxpermdi_<mode>): Take two DF inputs rather than one TF.
21787 (p8_fmrgow_<mode>): Likewise.
21788 (reload_vsx_from_gpr<mode>): Make clobber IF. Adjust for above
21790 (reload_fpr_from_gpr<mode>): Similarly. Use "d" for op0 constraint.
21791 (reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting
21792 to use movdi_internal64. Remove op0_di.
21793 * config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode.
21795 2016-02-15 Evandro Menezes <e.menezes@samsung.com>
21797 Add support for the FCCMP insn types
21799 * config/aarch64/aarch64.md (fccmp): Change insn type.
21800 (fccmpe): Likewise.
21801 * config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types.
21802 * config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise.
21803 * config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise.
21804 * config/arm/xgene1.md (xgene1_fcmp): Likewise.
21805 * config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation.
21806 * config/arm/types.md (fccmps): Add new insn type.
21807 (fccmpd): Likewise.
21809 2016-02-15 Bernd Edlinger <bernd.edlinger@hotmail.de>
21811 * alias.c (get_alias_set): Fix a typo in comment.
21813 2016-02-15 Richard Biener <rguenther@suse.de>
21815 PR tree-optimization/69595
21816 * match.pd: Complete range test simplification to true.
21818 2016-02-15 Bernd Schmidt <bschmidt@redhat.com>
21820 PR rtl-optimization/69648
21821 * lra-constraints.c (update_ebb_live_info): Don't remove sets of
21822 pic_offset_table_rtx.
21824 PR rtl-optimization/69752
21825 * ira.c (update_equiv_regs): When looking for more than a single SET,
21826 also take other side effects into account.
21828 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
21830 * config/s390/s390.c (s390_function_profiler): Add a new sequence
21831 for z900+ CPUs in 31-bit mode.
21833 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
21835 * common/config/s390/s390-common.c (s390_supports_split_stack):
21837 (TARGET_SUPPORTS_SPLIT_STACK): New macro.
21838 * config/s390/s390-protos.h: Add s390_expand_split_stack_prologue.
21839 * config/s390/s390.c (struct machine_function): New field
21840 split_stack_varargs_pointer.
21841 (s390_register_info): Mark r12 as clobbered if it'll be used as temp
21842 in s390_emit_prologue.
21843 (s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack
21845 (morestack_ref): New global.
21846 (SPLIT_STACK_AVAILABLE): New macro.
21847 (s390_expand_split_stack_prologue): New function.
21848 (s390_live_on_entry): New function.
21849 (s390_va_start): Use split-stack vararg pointer if appropriate.
21850 (s390_asm_file_end): Emit the split-stack note sections.
21851 (TARGET_EXTRA_LIVE_ON_ENTRY): New macro.
21852 * config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec.
21853 (UNSPECV_SPLIT_STACK_CALL): New unspec.
21854 (UNSPECV_SPLIT_STACK_DATA): New unspec.
21855 (split_stack_prologue): New expand.
21856 (split_stack_space_check): New expand.
21857 (split_stack_data): New insn.
21858 (split_stack_call): New expand.
21859 (split_stack_call_*): New insn.
21860 (split_stack_cond_call): New expand.
21861 (split_stack_cond_call_*): New insn.
21863 2016-02-15 Richard Biener <rguenther@suse.de>
21865 PR tree-optimization/69783
21866 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
21867 Add trivially correct cases.
21869 2016-02-15 Tom de Vries <tom@codesourcery.com>
21872 * lto-cgraph.c (input_offload_tables): Add and handle bool parameter
21874 * lto-streamer.h (input_offload_tables): Add and handle bool parameter.
21876 2016-02-15 Richard Biener <rguenther@suse.de>
21878 PR tree-optimization/69776
21879 * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
21880 * tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to
21881 indicate whether we can use TBAA to disambiguate against stores.
21882 Use alias-set zero if not.
21883 (visit_reference_op_store): Do not use TBAA when looking up
21885 * tree-ssa-pre.c (compute_avail): Use TBAA here.
21886 (eliminate_dom_walker::before_dom_children): But not when looking
21887 up redundant stores.
21889 2016-02-14 John David Anglin <danglin@gcc.gnu.org>
21891 * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.
21893 2016-02-14 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
21895 * config/i386/znver1.md
21896 (znver1_pop, znver1_pop_mem,
21897 znver1_load_imov_double_store,
21898 znver1_load_imov_direct_store,
21899 znver1_load_imov_direct_load,
21900 znver1_load_imov_double_load): Add new.
21901 (znver1_insn, znver1_insn_load): Add icmov type.
21902 (znver1_sseavx_fma,
21903 znver1_sseavx_fma_load,
21905 znver1_avx256_fma_load): Fix pipe usage.
21907 2016-02-14 Alan Modra <amodra@gmail.com>
21910 * reload.c (find_reloads_address_1): For pre/post-inc/dec
21911 with an invalid hard reg, reload just the reg not the entire
21912 pre/post-inc/dec address expression.
21914 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
21917 * config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with
21918 fixed R1_REG scratch reg.
21919 (sibcall_value_pcrel_fdpic): Likewise.
21921 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
21925 * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.
21927 2016-02-12 Walter Lee <walt@tilera.com>
21929 * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
21930 * config/tilegx/t-tilegx: Likewise.
21932 2016-02-12 David Malcolm <dmalcolm@redhat.com>
21935 * diagnostic-show-locus.c (struct line_span): New struct.
21936 (layout::get_first_line): Delete.
21937 (layout::get_last_line): Delete.
21938 (layout::get_num_line_spans): New member function.
21939 (layout::get_line_span): Likewise.
21940 (layout::print_heading_for_line_span_index_p): Likewise.
21941 (layout::get_expanded_location): Likewise.
21942 (layout::calculate_line_spans): Likewise.
21943 (layout::m_first_line): Delete.
21944 (layout::m_last_line): Delete.
21945 (layout::m_line_spans): New field.
21946 (layout::layout): Update comment. Replace m_first_line and
21947 m_last_line with m_line_spans, replacing their initialization
21948 with a call to calculate_line_spans.
21949 (diagnostic_show_locus): When printing source lines and
21950 annotations, rather than looping over a single span
21951 of lines, instead loop over each line_span within
21952 the layout, with an inner loop over the lines within them.
21953 Call the context's start_span callback when changing line spans.
21954 * diagnostic.c (diagnostic_initialize): Initialize start_span.
21955 (diagnostic_build_prefix): Break out the building of the location
21956 part of the string into...
21957 (diagnostic_get_location_text): ...this new function, rewriting
21958 it from nested ternary expressions to a sequence of "if"
21960 (default_diagnostic_start_span_fn): New function.
21961 * diagnostic.h (diagnostic_start_span_fn): New typedef.
21962 (diagnostic_context::start_span): New field.
21963 (default_diagnostic_start_span_fn): New prototype.
21965 2016-02-12 David Malcolm <dmalcolm@redhat.com>
21968 * gcc.c (driver::finalize): Fix cleanup of "specs".
21970 2016-02-12 David Malcolm <dmalcolm@redhat.com>
21974 * gcc.c (driver::driver): Initialize m_option_suggestions.
21975 (driver::~driver): Clean up m_option_suggestions.
21976 (suggest_option): Convert to...
21977 (driver::suggest_option): ...this, and split out into
21978 driver::build_option_suggestions and find_closest_string.
21979 (driver::build_option_suggestions): New function, from
21980 first half of suggest_option. Special-case
21981 OPT_fsanitize_ and OPT_fsanitize_recover_, making use of
21982 the sanitizer_opts array. For options of enum types, add the
21983 various enum values to the candidate strings.
21984 (driver::handle_unrecognized_options): Remove "const".
21985 * gcc.h (driver::handle_unrecognized_options): Likewise.
21986 (driver::build_option_suggestions): New decl.
21987 (driver::suggest_option): New decl.
21988 (driver::m_option_suggestions): New field.
21989 * opts-common.c (add_misspelling_candidates): New function.
21990 * opts.c (sanitizer_opts): Remove decl of struct sanitizer_opts_s
21991 and make non-static.
21992 * opts.h (sanitizer_opts): New array decl.
21993 (add_misspelling_candidates): New function decl.
21994 * spellcheck.c (find_closest_string): New function.
21995 * spellcheck.h (find_closest_string): New function decl.
21997 2016-02-12 Jakub Jelinek <jakub@redhat.com>
21999 PR rtl-optimization/69764
22000 PR rtl-optimization/69771
22001 * optabs.c (expand_binop_directly): For shift_optab_p, force
22002 convert_modes with VOIDmode if xop1 has VOIDmode.
22004 2016-02-12 Ilya Enkovich <enkovich.gnu@gmail.com>
22007 * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
22008 to correctly determine instrumentation thunks.
22010 2016-02-12 Jakub Jelinek <jakub@redhat.com>
22013 * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
22014 type by reference, force lhs on the call.
22017 * ipa-split.c (split_function): Don't compute/use main_part_return_p.
22018 Compute retval and retbnd early in all cases if split_part_return_p
22019 and return_bb is not EXIT. Remove all clobber stmts and reset
22020 all debug stmts that refer to SSA_NAMEs defined in split part,
22021 except if it is retval, in that case replace the old retval with the
22022 lhs of the call to the split part.
22024 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
22027 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
22029 PR middle-end/66726
22030 * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
22031 whose result is used in PHI.
22032 (maybe_optimize_range_tests): Likewise.
22033 (final_range_test_p): Likweise.
22035 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
22037 PR middle-end/66726
22038 * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
22039 whose result is used in PHI.
22040 (maybe_optimize_range_tests): Likewise.
22041 (final_range_test_p): Likweise.
22043 2016-02-12 Jakub Jelinek <jakub@redhat.com>
22045 * cgraph.c: Spelling fixes - behaviour -> behavior and
22046 neighbour -> neighbor.
22047 * target.def: Likewise.
22048 * sel-sched.c: Likewise.
22049 * config/mips/mips.c: Likewise.
22050 * config/arc/arc.md: Likewise.
22051 * config/arm/cortex-a57.md: Likewise.
22052 * config/arm/arm.c: Likewise.
22053 * config/arm/neon.md: Likewise.
22054 * config/arm/arm-c.c: Likewise.
22055 * config/vms/vms-c.c: Likewise.
22056 * config/s390/s390.c: Likewise.
22057 * config/i386/znver1.md: Likewise.
22058 * config/i386/i386.c: Likewise.
22059 * config/ia64/hpux-unix2003.h: Likewise.
22060 * config/msp430/msp430.md: Likewise.
22061 * config/rx/rx.c: Likewise.
22062 * config/rx/rx.md: Likewise.
22063 * config/aarch64/aarch64-simd.md: Likewise.
22064 * config/aarch64/aarch64.c: Likewise.
22065 * config/nvptx/nvptx.c: Likewise.
22066 * config/bfin/bfin.c: Likewise.
22067 * config/cris/cris.opt: Likewise.
22068 * config/rs6000/rs6000.c: Likewise.
22069 * target.h: Likewise.
22070 * spellcheck.c: Likewise.
22071 * ira-build.c: Likewise.
22072 * tree-inline.c: Likewise.
22073 * builtins.c: Likewise.
22074 * lra-constraints.c: Likewise.
22075 * explow.c: Likewise.
22076 * hwint.h: Likewise.
22077 * targhooks.c: Likewise.
22078 * tree-vect-data-refs.c: Likewise.
22079 * expr.c: Likewise.
22080 * doc/tm.texi: Likewise.
22081 * doc/extend.texi: Likewise.
22082 * doc/install.texi: Likewise.
22083 * doc/md.texi: Likewise.
22084 * tree-ssa-tail-merge.c: Likewise.
22085 * sched-int.h: Likewise.
22086 * match.pd: Likewise.
22087 * sched-ebb.c: Likewise.
22088 * target.def (omit_struct_return_reg): Likewise.
22089 * gimple-ssa-isolate-paths.c: Likewise.
22090 (find_implicit_erroneous_behaviour): Renamed to...
22091 (find_implicit_erroneous_behavior): ... this.
22092 (find_explicit_erroneous_behaviour): Renamed to...
22093 (find_explicit_erroneous_behavior): ... this.
22094 (gimple_ssa_isolate_erroneous_paths): Adjust caller.
22096 2016-02-11 Segher Boessenkool <segher@kernel.crashing.org>
22098 PR rtl-optimization/64682
22099 PR rtl-optimization/69567
22100 PR rtl-optimization/69737
22101 * combine.c (distribute_notes) <REG_DEAD>: If the register is set
22102 in I2 as well, just lose it.
22104 2016-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22106 * config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
22108 (aarch64_last_printed_tune_string): Likewise.
22109 (aarch64_declare_function_name): Only output .arch assembler
22110 directive if it will be different from the previously output
22111 directive. Same for .tune comment but only if -dA is set.
22112 (aarch64_start_file): New function.
22113 (TARGET_ASM_FILE_START): Define.
22115 2016-02-11 David Malcolm <dmalcolm@redhat.com>
22118 * Makefile.in (PLUGIN_HEADERS): Add params.list.
22120 2016-02-11 Jakub Jelinek <jakub@redhat.com>
22123 * tree-vect-slp.c (vect_schedule_slp_instance): Avoid
22124 -Wmaybe-uninitialized warning.
22126 2016-02-11 Oleg Endo <olegendo@gcc.gnu.org>
22129 * config/sh/sh.md (casesi_worker_0): Add T_REG use.
22131 2016-02-11 Richard Biener <rguenther@suse.de>
22133 PR rtl-optimization/69291
22134 * ifcvt.c (noce_try_store_flag_constants): Do not allow
22135 subexpressions affected by changing the result.
22137 2016-02-10 Vladimir Makarov <vmakarov@redhat.com>
22140 * lra-constraints.c (curr_insn_transform): Find in/out operands
22141 for secondary memory moves. Update dups.
22143 2016-02-10 Yuri Rumyantsev <ysrumyan@gmail.com>
22145 PR tree-optimization/69652
22146 * tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1
22147 to nested loop, did source re-formatting, skip debug statements,
22148 add check on statement with volatile operand, remove dead scalar
22151 2016-02-10 Jakub Jelinek <jakub@redhat.com>
22152 Patrick Palka <ppalka@gcc.gnu.org>
22156 * gimplify.c (gimplify_modify_expr): Set lhs even for noreturn
22157 calls if the return type is TREE_ADDRESSABLE.
22158 * cgraphunit.c (cgraph_node::expand_thunk): Likewise.
22159 * ipa-split.c (split_function): Fix doubled "we" in comment.
22160 Use void return type for the split part even if
22161 !split_point->split_part_set_retval.
22163 2016-02-10 Bin Cheng <bin.cheng@arm.com>
22165 PR tree-optimization/68021
22166 * tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if
22167 when computing the value of biv cand by itself.
22169 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
22171 * config/aarch64/aarch64.c (cortexa53_tunings): Enable AES fusion.
22172 (cortexa57_tunings): Likewise.
22173 (cortexa72_tunings): Likewise.
22174 (arch_macro_fusion_pair_p): Add support for AES fusion.
22175 * config/aarch64/aarch64-fusion-pairs.def: Add AES_AESMC entry.
22176 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
22177 Allow virtual registers before reload so early scheduling works.
22178 * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Use
22179 correct latency and pipeline.
22180 (cortex_a57_crypto_complex): Likewise.
22181 (cortex_a57_crypto_xor): Likewise.
22182 (define_bypass): Add AES bypass.
22184 2016-02-10 Richard Biener <rguenther@suse.de>
22186 PR tree-optimization/69726
22187 * passes.def: Add DCE pass before late uninit.
22188 * match.pd: Add A ? B : (!A ? C : X) -> A ? B : C patterns to
22189 really fixup if-conversions job.
22191 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
22193 * config/arm/arm.c (arm_cortex_a53_tune): Enable AES fusion.
22194 (arm_cortex_a57_tune): Likewise.
22195 (aarch_macro_fusion_pair_p): Add support for AES fusion.
22196 * config/arm/arm-protos.h (fuse_ops): Add FUSE_AES_AESMC.
22198 2016-02-10 Eric Botcazou <ebotcazou@adacore.com>
22200 * timevar.def (TV_PHASE_DBGINFO): Delete.
22201 (TV_PHASE_CHECK_DBGINFO): Likewise.
22202 * varpool.c (varpool_node::assemble_decl): Do not change timevar.
22204 2016-02-10 Richard Biener <rguenther@suse.de>
22206 PR tree-optimization/69719
22207 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
22208 Adjust previous fix by ensuring that dr_a1 is left of dr_a2.
22210 2016-02-09 Andrew Pinski <apinski@cavium.com>
22213 * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
22214 get_vcond_mask_icode returns false.
22216 2016-02-09 Michael Meissner <meissner@linux.vnet.ibm.com>
22219 * config/rs6000/predicates.md (fusion_gpr_addis): Prevent fusing
22220 an ADDIS that adds a pointer to a large constant that sets the
22221 upper16 bits with a load operation.
22223 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
22226 * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
22228 * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
22230 (vzipq_s16): Likewise.
22231 (vzipq_s32): Likewise.
22232 (vzipq_f32): Likewise.
22233 (vzipq_u8): Likewise.
22234 (vzipq_u16): Likewise.
22235 (vzipq_u32): Likewise.
22236 (vzipq_p8): Likewise.
22237 (vzipq_p16): Likewise.
22239 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
22242 * config/arm/arm.c (neon_endian_lane_map): New function.
22243 (neon_vector_pair_endian_lane_map): New function.
22244 (arm_evpc_neon_vuzp): Allow for big endian lane order.
22245 * config/arm/arm_neon.h (vuzpq_s8): Adjust shuffle patterns for big
22247 (vuzpq_s16): Likewise.
22248 (vuzpq_s32): Likewise.
22249 (vuzpq_f32): Likewise.
22250 (vuzpq_u8): Likewise.
22251 (vuzpq_u16): Likewise.
22252 (vuzpq_u32): Likewise.
22253 (vuzpq_p8): Likewise.
22254 (vuzpq_p16): Likewise.
22256 2016-02-11 Alexandre Oliva <aoliva@redhat.com>
22259 * regstat.c (regstat_bb_compute_calls_crossed): Disregard
22262 2016-02-09 Uros Bizjak <ubizjak@gmail.com>
22264 * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
22265 truncate const_int operand 1 to QImode.
22267 2016-02-09 Eric Botcazou <ebotcazou@adacore.com>
22269 * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
22270 corresponding to an abnormal edge.
22272 2016-02-09 Tom de Vries <tom@codesourcery.com>
22274 PR tree-optimization/69599
22275 * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
22277 (find_func_aliases_for_builtin_call, find_func_clobbers)
22278 (ipa_pta_execute): Handle case that foo and foo._0 are not in same lto
22281 2016-02-09 Richard Biener <rguenther@suse.de>
22283 PR tree-optimization/69715
22284 * tree-ssa.c (execute_update_addresses_taken): Mark non-decl
22285 LHS on calls as non-rewritable.
22287 2016-02-09 Tom de Vries <tom@codesourcery.com>
22290 * lto-wrapper.c (append_diag_options): New function.
22291 (compile_offload_image): Call append_diag_options.
22293 2016-02-08 Sandra Loosemore <sandra@codesourcery.com>
22296 * doc/extend.texi (Flag Output Operands): Correct sectioning.
22297 Minor copy-edit to fix verb tenses.
22299 2016-02-08 Jakub Jelinek <jakub@redhat.com>
22301 PR tree-optimization/69209
22302 * ipa-split.c (split_function): If split part is not
22303 returning retval, retval has gimple type but is not
22304 gimple value, force it into a SSA_NAME first.
22306 2016-02-08 Nicklas Bo Jensen <nbjensen@gmail.com>
22308 * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
22311 2016-02-08 Jason Merrill <jason@redhat.com>
22314 * convert.c (convert_to_integer_1): Check dofold on truncation
22316 (convert_to_pointer_maybe_fold, convert_to_real_maybe_fold)
22317 (convert_to_integer_maybe_fold, convert_to_complex_maybe_fold):
22318 Rename from *_nofold.
22319 * convert.h (convert_to_pointer_nofold, convert_to_integer_nofold)
22320 (convert_to_real_nofold, convert_to_complex_nofold): New inlines.
22322 2016-02-08 Bernd Schmidt <bschmidt@redhat.com>
22325 * tree.c (build_common_tree_nodes): Remove short_double argument.
22326 All callers changed.
22327 * tree.h (build_common_tree_nodes): Adjust declaration.
22328 * doc/invoke.texi (-fshort-double): Remove documentation.
22329 * config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
22330 MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
22331 * lto-wrapper.c (merge_and_complain, append_compiler_options)
22332 (append_linker_options): Don't handle OPT_fshort_double.
22334 PR rtl-optimization/68730
22335 * lra-remat.c (insn_to_cand_activation): New static variable.
22336 (lra_remat): Allocate and free it.
22337 (create_cand): New arg activation. Initialize a field in
22338 insn_to_cand_activation if it is nonnull.
22339 (create_cands): Pass the activation insn to create_cand when making
22340 a candidate involving an output reload. Reorganize code a little.
22341 (do_remat): Keep track of active status of candidates in a separate
22344 2016-02-08 Richard Biener <rguenther@suse.de>
22346 PR tree-optimization/69719
22347 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
22348 Properly use absolute of the difference of the two offsets to
22349 compare or adjust the segment length.
22351 2016-02-08 Richard Biener <rguenther@suse.de>
22352 Jeff Law <law@redhat.com>
22355 * tree-ssanames.c (make_ssa_name_fn): Always use unqualified
22356 types for anonymous SSA names.
22358 2016-02-08 Richard Biener <rguenther@suse.de>
22360 PR rtl-optimization/69274
22361 * ira.c (ira_setup_alts): Do not change recog_data.operand order.
22363 2016-02-08 Jeff Law <law@redhat.com>
22365 PR tree-optimization/65917
22366 * tree-ssa-dom.c (record_temporary_equivalences): Record both
22367 equivalences from if (x == y) style conditionals.
22368 (loop_depth_of_name): Remove.
22369 (record_equality): Remove loop depth check.
22370 * tree-ssa-scopedtables.h (const_and_copies): Refine comments.
22371 (const_and_copies::record_const_or_copy_raw): New member function.
22372 * tree-ssa-scopedtables.c
22373 (const_and_copies::record_const_or_copy_raw): New, factored out of
22374 (const_and_copies::record_const_or_copy): Call new member function.
22376 2016-02-05 Jeff Law <law@redhat.com>
22378 PR tree-optimization/68541
22379 * gimple-ssa-split-paths.c: Include tree-cfg.h and params.h.
22380 (count_stmts_in_block): New function.
22381 (poor_ifcvt_candidate_code): Likewise.
22382 (is_feasible_trace): Add some heuristics to determine when path
22383 splitting is profitable.
22384 (find_block_to_duplicate_for_splitting_paths): Make sure the graph
22385 is a diamond with a single exit.
22387 2016-02-05 Martin Sebor <msebor@redhat.com>
22390 * doc/invoke.texi: Update -Wplacement-new to take an optional
22393 2016-02-06 Richard Henderson <rth@redhat.com>
22396 * tree.c (tree_nop_conversion_p): Do not strip casts into or
22397 out of non-standard address spaces.
22399 2016-02-05 Jakub Jelinek <jakub@redhat.com>
22401 PR rtl-optimization/69691
22402 * lra-eliminations.c (move_plus_up): Don't add the addend twice.
22404 2016-02-05 Pat Haugen <pthaugen@us.ibm.com>
22406 * config/rs6000/crypto.md (crypto_vpermxor_<mode>): Correct insn type.
22407 * config/rs6000/rs6000.md (mov<mode>_hardfloat): Likewise.
22408 (*ieee128_mfvsrd_64bit): Likewise.
22409 (*ieee128_mfvsrd_32bit): Likewise.
22411 2016-02-05 Ilya Enkovich <enkovich.gnu@gmail.com>
22415 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
22417 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
22418 instrumented_version.
22420 2016-01-05 Jeremy Bennett <jeremy.bennett@embecosm.com>
22422 * doc/invoke.texi (Optimize Options): In table of --param options
22423 rename second occurrence of tracer-min-branch-ratio to
22424 tracer-min-branch-probability, rename
22425 tracer-min-branch-ratio-feedback to
22426 tracer-min-branch-probability-feedback and clarify description,
22427 rename sched-spec-state-edge-prob-cutoff to
22428 sched-state-edge-prob-cutoff, rename selsched-max-insns-to-rename
22429 to selsched-insns-to-rename, rename lto-minpartition to
22430 lto-min-partition, delete reorder-blocks-duplicate and
22431 reorder-blocks-duplicate-feedback.
22433 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
22435 * config/s390/s390.c (s390_register_info_set_ranges): Remove
22438 2016-02-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
22440 * doc/extend.texi: S/390: Correct some typos.
22442 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
22444 * config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
22446 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
22449 * config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines.
22450 (s390_register_info_gprtofpr): Use new macros above.
22451 (s390_register_info_stdarg_fpr): Adjust max_fpr to better match
22453 (s390_register_info_stdarg_gpr): Adjust max_gpr to better match
22454 its name. Adjust restore and save gpr ranges.
22455 (s390_register_info_set_ranges): New function.
22456 (s390_register_info): Use new macros above. Call
22457 s390_register_info_set_ranges.
22458 (s390_optimize_register_info): Likewise.
22459 (s390_hard_regno_rename_ok): Use new macros.
22460 (s390_hard_regno_scratch_ok): Likewise.
22461 (s390_emit_epilogue): Likewise.
22462 (s390_can_use_return_insn): Likewise.
22463 (s390_optimize_prologue): Likewise.
22464 * config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants.
22466 2016-02-05 Jakub Jelinek <jakub@redhat.com>
22469 * config/i386/i386.c (convert_scalars_to_vector): Readd stack
22471 (ix86_option_override_internal): Disable TARGET_STV even for
22472 -m{incoming,preferred}-stack-boundary=3.
22474 2016-02-03 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
22476 * config.gcc: Mark deprecated rtems targets as obsolete.
22478 2016-02-04 Segher Boessenkool <segher@kernel.crashing.org>
22480 PR rtl-optimization/64682
22481 PR rtl-optimization/69567
22482 * combine.c (distribute_notes) <REG_DEAD>: Place the death note
22483 before I2 only if the register is both used and set in I2.
22485 2016-02-04 DJ Delorie <dj@redhat.com>
22487 * config/msp430/msp430.c (msp430_start_function): Add function type.
22489 2016-02-04 Jakub Jelinek <jakub@redhat.com>
22492 * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
22494 2016-02-04 Uros Bizjak <ubizjak@gmail.com>
22496 PR rtl-optimization/69577
22498 2015-10-29 Richard Henderson <rth@redhat.com>
22502 * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
22503 sse check to the exact conditions of PR 67609.
22505 2016-02-04 Michael Meissner <meissner@linux.vnet.ibm.com>
22508 * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Use 'd' constraint
22509 instead of 'ws', and 'wh' instead of 'wm' since TFmode/IFmode are
22510 not allowed into the traditional Altivec registers.
22511 (movtd_64bit_nodm): Likewise.
22512 (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
22514 2016-02-04 David Malcolm <dmalcolm@redhat.com>
22516 * config/aarch64/cortex-a57-fma-steering.c
22517 (aarch64_register_fma_steering): Remove "static" from arguments
22520 2016-02-04 Wilco Dijkstra <wdijkstr@arm.com>
22523 * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
22524 twice when complex.
22526 2016-02-04 Mike Frysinger <vapier@gentoo.org>
22528 * doc/invoke.texi: Delete -mno-fma4.
22530 2016-02-04 Richard Sandiford <richard.sandiford@arm.com>
22532 PR rtl-optimization/69577
22533 * reginfo.c (record_subregs_of_mode): Add a partial_def parameter.
22534 (find_subregs_of_mode): Update accordingly. Iterate over partial
22537 2016-02-04 Alan Lawrence <alan.lawrence@arm.com>
22539 * config/arm/arm-protos.h (neon_reinterpret): Remove.
22540 * config/arm/arm.c (neon_reinterpret): Remove.
22541 * config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi,
22542 vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi,
22543 vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di,
22544 vreinterpretti): Remove.
22545 * config/arm/neon.md (neon_vreinterpretv8qi<mode>,
22546 neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
22547 neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>,
22548 neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>,
22549 neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>,
22550 neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove.
22551 * config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32,
22552 vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64,
22553 vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32,
22554 vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32,
22555 vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64,
22556 vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8,
22557 vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8,
22558 vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8,
22559 vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64,
22560 vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16,
22561 vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16,
22562 vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16,
22563 vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64,
22564 vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32,
22565 vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32,
22566 vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32,
22567 vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8,
22568 vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8,
22569 vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8,
22570 vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64,
22571 vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16,
22572 vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16,
22573 vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16,
22574 vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64,
22575 vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32,
22576 vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32,
22577 vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32,
22578 vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64,
22579 vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8,
22580 vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8,
22581 vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64,
22582 vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8,
22583 vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16,
22584 vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16,
22585 vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64,
22586 vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16,
22587 vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32,
22588 vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32,
22589 vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64,
22590 vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32,
22591 vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8,
22592 vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64,
22593 vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8,
22594 vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8,
22595 vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32,
22596 vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64,
22597 vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16,
22598 vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16,
22599 vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32,
22600 vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64,
22601 vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16,
22602 vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16,
22603 vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16,
22604 vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64,
22605 vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16,
22606 vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16,
22607 vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16,
22608 vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64,
22609 vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16,
22610 vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16,
22611 vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16,
22612 vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64,
22613 vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16,
22614 vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16,
22615 vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16,
22616 vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128,
22617 vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16,
22618 vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16,
22619 vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16,
22620 vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128,
22621 vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16,
22622 vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16,
22623 vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16,
22624 vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128,
22625 vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16,
22626 vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16,
22627 vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16,
22628 vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128,
22629 vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8,
22630 vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16,
22631 vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16,
22632 vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64,
22633 vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64,
22634 vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8,
22635 vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8,
22636 vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64,
22637 vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64,
22638 vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32,
22639 vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8,
22640 vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64,
22641 vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64,
22642 vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32,
22643 vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8,
22644 vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64,
22645 vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64,
22646 vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32,
22647 vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts.
22649 2016-02-04 Martin Liska <mliska@suse.cz>
22652 * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
22653 that are gimple_store_p.
22654 (maybe_instrument_call): Likewise.
22656 2016-02-04 Bin Cheng <bin.cheng@arm.com>
22658 * config/aarch64/aarch64.c (aarch64_legitimize_address): Force
22659 register scaling out of memory reference and comment why.
22661 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22665 * cse.c (cse_insn): Pass NULL to fold_rtx when initially
22666 folding the source of a SET.
22668 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22672 * config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
22673 the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.
22675 2016-02-04 Jim Wilson <jim.wilson@linaro.org>
22679 * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
22682 2016-02-04 Christian Bruel <christian.bruel@st.com>
22684 * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
22685 * config/arm/arm.c (arm_set_current_function): Likewise.
22687 2016-02-04 Jakub Jelinek <jakub@redhat.com>
22688 Ilya Enkovich <enkovich.gnu@gmail.com>
22689 H.J. Lu <hongjiu.lu@intel.com>
22692 * config/i386/i386.c (convert_scalars_to_vector): Remove
22693 stack alignment fixes.
22694 (ix86_option_override_internal): Disable TARGET_STV if stack
22695 might not be aligned enough.
22696 (ix86_minimum_alignment): Assert that TARGET_STV is false.
22698 2016-02-04 Victoria Stepanyan <victoria.stepanyan@amd.com>
22700 * config/i386/x86-tune.def: Disable default prefetching
22703 2016-02-03 Michael Meissner <meissner@linux.vnet.ibm.com>
22704 Vladimir Makarov <vmakarov@redhat.com>
22707 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
22708 in validating fused toc addresses.
22710 2016-02-03 Jakub Jelinek <jakub@redhat.com>
22713 * diagnostic-show-locus.c (layout::get_state_at_point): Don't read
22714 range->m_caret fields if range->m_show_caret_p is false.
22717 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
22718 Force oldval into register if it does not satisfy reg_or_short_operand
22719 predicate. Fix up formatting.
22721 2016-02-03 Vladimir Makarov <vmakarov@redhat.com>
22722 Alexandre Oliva <aoliva@redhat.com>
22725 * lra-constraints.c (simplify_operand_subreg): Check additionally
22726 address validity after potential reloading.
22727 (process_address_1): Check insns validity. In case of failure do
22730 2016-02-03 Kirill Yukhin <kirill.yukhin@intel.com>
22733 * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
22736 2016-02-02 Jakub Jelinek <jakub@redhat.com>
22738 * wide-int.cc (canonize_uhwi): New function.
22739 (wi::divmod_internal): Use it.
22741 2016-02-02 James Norris <jnorris@codesourcery.com>
22743 * gimplify.c (omp_notice_variable): Add usage check.
22745 2016-02-02 Alexander Monakov <amonakov@ispras.ru>
22747 * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
22748 like LE, GE, LT, GT when emitting relational operator.
22750 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
22752 * ira-costs.c (find_costs_and_classes): Add extra argument.
22753 * target.def (ira_change_pseudo_allocno_class): Add parameter.
22754 * targhooks.h (ira_change_pseudo_allocno_class): Likewise.
22755 * targhooks.c (ira_change_pseudo_allocno_class): Likewise.
22756 * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
22757 Add best_class parameter, and return it if not ALL_REGS.
22758 * config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
22760 * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
22761 Update target hook.
22763 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
22765 * config/aarch64/aarch64.c
22766 (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
22767 (aarch64_ira_change_pseudo_allocno_class): New function.
22769 2016-02-02 Uros Bizjak <ubizjak@gmail.com>
22772 * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
22774 2016-02-02 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
22776 * config/avr/avr.c (avr_option_override): Set
22777 PARAM_ALLOW_STORE_DATA_RACES to 1.
22779 2016-02-02 Richard Biener <rguenther@suse.de>
22781 PR tree-optimization/69595
22782 * match.pd: Add range test simplifications to true/false.
22784 2016-02-02 Thomas Schwinge <thomas@codesourcery.com>
22786 * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
22787 * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
22790 2016-02-02 Richard Biener <rguenther@suse.de>
22792 PR tree-optimization/69606
22793 * tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
22794 info on the result before moving a stmt.
22796 2016-02-02 Yuri Rumyantsev <ysrumyan@gmail.com>
22798 PR middle-end/68542
22799 * config/i386/i386.c (ix86_expand_branch): Add support for conditional
22800 branch with vector comparison.
22801 * config/i386/sse.md (VI48_AVX): New mode iterator.
22802 (define_expand "cbranch<mode>4): Add support for conditional branch
22803 with vector comparison.
22804 * tree-vect-loop.c (optimize_mask_stores): New function.
22805 * tree-vect-stmts.c (vectorizable_mask_load_store): Initialize
22806 has_mask_store field of vect_info.
22807 * tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for
22808 vectorized loops having masked stores after vec_info destroy.
22809 * tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and
22810 correspondent macros.
22811 (optimize_mask_stores): Add prototype.
22813 2016-02-02 Alan Modra <amodra@gmail.com>
22816 * config/rs6000/predicates.md (quad_int_reg_operand): Don't
22819 2016-02-02 Alan Modra <amodra@gmail.com>
22822 * config/rs6000/rs6000.c (need_toc_init): New var, set it
22823 whenever toc_label_name used.
22824 (rs6000_file_start): Don't set up toc section here,
22825 (rs6000_output_function_epilogue): do so here instead,
22826 (rs6000_xcoff_file_start): and here.
22827 * config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init.
22828 (load_toc_aix_di): Likewise.
22830 2016-02-01 Jakub Jelinek <jakub@redhat.com>
22832 PR rtl-optimization/69592
22833 * rtlanal.c (nonzero_bits_binary_arith_p): New inline function.
22834 (cached_nonzero_bits): Use it instead of ARITHMETIC_P.
22835 (num_sign_bit_copies_binary_arith_p): New inline function.
22836 (cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P.
22838 2016-02-01 Jeff Law <law@redhat.com>
22840 PR tree-optimization/69580
22841 * params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param.
22842 * tree-ssa-threadbackward.c
22843 (fsm_find_control_statement_thread_paths): Do not try to walk
22844 through large PHI nodes.
22846 2016-02-01 Jakub Jelinek <jakub@redhat.com>
22848 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
22849 when count is incremented above limit, don't analyze further
22852 * omp-low.c (oacc_parse_default_dims): Avoid
22853 -Wsign-compare warning, make sure value fits into int
22854 rather than just unsigned int.
22856 2016-02-01 Bin Cheng <bin.cheng@arm.com>
22858 PR tree-optimization/67921
22859 * fold-const.c (split_tree): New parameters. Convert pointer
22860 type variable part to proper type before negating.
22861 (fold_binary_loc): Pass new arguments to split_tree.
22863 2016-02-01 Nathan Sidwell <nathan@codesourcery.com>
22865 * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New.
22866 (nvptx_goacc_validate_dims): Extend to handle global defaults.
22867 * target.def (OACC_VALIDATE_DIMS): Extend documentation.
22868 * doc/tm.texti: Rebuilt.
22869 * doc/invoke.texi (fopenacc-dim): Document.
22870 * lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case.
22871 (append_compiler_options): Likewise.
22872 * omp-low.c (oacc_default_dims, oacc_min_dims): New.
22873 (oacc_parse_default_dims): New.
22874 (oacc_validate_dims): Add USED arg. Select non-unity default when
22876 (oacc_loop_fixed_partitions): Return mask of used partitions.
22877 (oacc_loop_auto_partitions): Emit dump info.
22878 (oacc_loop_partition): Return mask of used partitions.
22879 (execute_oacc_device_lower): Parse default dimension arg. Adjust
22880 loop partitioning and validation calls.
22882 2016-02-01 Richard Biener <rguenther@suse.de>
22884 PR middle-end/69556
22885 * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
22887 2016-02-01 Richard Biener <rguenther@suse.de>
22889 PR tree-optimization/69574
22890 * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
22891 of asserting return chrec_dont_know.
22893 2016-02-01 Martin Liska <mliska@suse.cz>
22895 * mem-stats-traits.h: Add copyright header.
22896 * mem-stats.h: Likewise.
22898 2016-02-01 Richard Biener <rguenther@suse.de>
22900 PR tree-optimization/69579
22901 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
22902 Do not propagate through abnormal PHI results.
22904 2016-02-01 Eric Botcazou <ebotcazou@adacore.com>
22906 * postreload.c (reload_cse_simplify): Remove dead code.
22908 2016-02-01 Jakub Jelinek <jakub@redhat.com>
22910 PR rtl-optimization/69570
22911 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only
22912 if there is more than one set, not if there is a single set.
22914 2016-02-01 Richard Henderson <rth@redhat.com>
22917 * combine.c (make_compound_operation): When looking through a
22918 subreg, make sure to re-extend to the width of the outer mode.
22920 2016-01-30 Jakub Jelinek <jakub@redhat.com>
22922 PR tree-optimization/69546
22923 * wide-int.cc (wi::divmod_internal): For unsigned division
22924 where both operands fit into uhwi, if o1 is 1 and o0 has
22925 msb set, if divident_prec is larger than bits per hwi,
22926 clear another quotient word and return 2 instead of 1.
22927 Similarly for remainder with msb in HWI set, if dividend_prec
22928 is larger than bits per hwi.
22930 2016-01-29 Martin Jambor <mjambor@suse.cz>
22932 * hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK.
22933 Use short lowercase names.
22934 (get_memory_order): Mask with MEMMODEL_BASE_MASK. Support
22935 MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with
22936 acq_rel one. Protect warning agains segfaults if
22937 get_memory_order_name returns NULL.
22938 (gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST
22939 with release semantics. Do not warn if get_memory_order already did.
22940 (gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire
22941 semantics. Fix check for relaxed or acquire semantics. Do not warn
22942 if get_memory_order already did.
22944 2016-01-29 Sebastian Pop <s.pop@samsung.com>
22946 * doc/install.texi: Document that isl-0.16 is supported.
22948 2016-01-29 Vladimir Makarov <vmakarov@redhat.com>
22951 * config/i386/constraints.md (Bm): Describe as special memory
22953 * doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it.
22954 * genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
22955 * genpreds.c (struct constraint_data): Add is_special_memory.
22956 (have_special_memory_constraints, special_memory_start): New
22958 (special_memory_end): Ditto.
22959 (add_constraint): Add new arg is_special_memory. Add code to
22960 process its true value. Update have_special_memory_constraints.
22961 (process_define_constraint): Pass the new arg.
22962 (process_define_register_constraint): Ditto.
22963 (choose_enum_order): Process special memory.
22964 (write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and
22965 function insn_extra_special_memory_constraint.
22966 (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
22967 * gensupport.c (process_rtx): Process
22968 DEFINE_SPECIAL_MEMORY_CONSTRAINT.
22969 * ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY.
22970 * ira-lives.c (single_reg_class): Use
22971 insn_extra_special_memory_constraint.
22972 * ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY.
22973 * lra-constraints.c (process_alt_operands): Ditto.
22974 (curr_insn_transform): Use insn_extra_special_memory_constraint.
22975 * recog.c (asm_operand_ok, preprocess_constraints): Process
22977 * reload.c (find_reloads): Ditto.
22978 * rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New.
22979 * stmt.c (parse_input_constraint): Use
22980 insn_extra_special_memory_constraint.
22982 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
22985 * lra-splill.c (lra_final_code_change): Revert r229087 by
22986 removing all sub-registers.
22988 2016-01-29 Steve Ellcey <sellcey@imgtec.com>
22991 * config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
22993 2016-01-29 Jakub Jelinek <jakub@redhat.com>
22996 * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
22997 SSE1, copy target into the temporary reg first before recursing
23000 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
23002 * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
23005 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
23007 * ginclude/stdarg.h: Test __cplusplus instead of
23008 __GXX_EXPERIMENTAL_CXX0X__.
23010 2016-01-29 Richard Biener <rguenther@suse.de>
23012 PR tree-optimization/69547
23013 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
23014 Do not mark clobbers necessary.
23015 (mark_all_reaching_defs_necessary_1): Likewise.
23017 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
23019 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
23020 declaration name with %qs and print it in both error messages.
23021 Also fix indentation.
23023 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
23026 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
23027 trailing blank line from error message.
23029 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
23032 * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
23035 2016-01-29 Richard Biener <rguenther@suse.de>
23037 PR middle-end/69537
23038 * match.pd: Allow all integral types when simplifying a
23039 widening or sign-changing conversion.
23041 2016-01-28 Sebastian Pop <s.pop@samsung.com>
23043 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
23044 back to setting codegen_error to fail codegen.
23046 2016-01-28 Uros Bizjak <ubizjak@gmail.com>
23049 * config/i386/constraints.md (C): Only accept constant zero operand.
23050 (BC): New constraint.
23051 * config/i386/sse.md (*mov<mode>_internal): Use BC constraint
23052 instead of C constraint.
23053 * doc/md.texi (Machine Constraints): Update description
23056 2016-01-28 Steve Ellcey <sellcey@imgtec.com>
23059 * config/mips/mips.c (and_operands_ok): Add MIPS16 check.
23061 2016-01-28 Jakub Jelinek <jakub@redhat.com>
23063 PR middle-end/69542
23064 * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
23067 2016-01-28 Pat Haugen <pthaugen@us.ibm.com>
23069 * config/rs6000/rs6000.c (output_cbranch): Don't statically predict
23070 branches if using guessed profile.
23072 2016-01-28 H.J. Lu <hongjiu.lu@intel.com>
23074 * graphite-optimize-isl.c (optimize_isl): Fix dump.
23076 2016-01-28 Richard Henderson <rth@redhat.com>
23079 * config/aarch64/aarch64-modes.def (CC_Cmode): New
23080 * config/aarch64/aarch64-protos.h: Update.
23081 * config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
23082 (aarch64_select_cc_mode): Add check for use of CC_Cmode.
23083 (aarch64_get_condition_code_1): Handle CC_Cmode.
23084 * config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
23085 (*add<mode>3_compareC_cconly_imm): New.
23086 (*add<mode>3_compareC_cconly): New.
23087 (*add<mode>3_compareC_imm): New.
23088 (add<mode>3_compareC): New.
23089 (add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
23090 to be first. Use aarch64_carry_operation.
23091 (*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
23092 (*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
23093 (*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
23094 (subti3): Use subdi3_compare1.
23095 (*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
23096 (sub<mode>3_compare1): New.
23097 (*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
23098 (*sub<mode>3_carryin): Use aarch64_borrow_operation.
23099 (*subsi3_carryin_uxtw): Likewise.
23100 (*ngc<mode>, *ngcsi_uxtw): Likewise.
23101 (*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
23102 * config/aarch64/iterators.md (DWI): New.
23103 * config/aarch64/predicates.md (aarch64_carry_operation): New.
23104 (aarch64_borrow_operation): New.
23106 2016-01-28 Abderrazek Zaafrani <a.zaafrani@samsung.com>
23108 * graphite-optimize-isl.c (optimize_isl): Print a different debug
23109 message when isl does not return a valid schedule.
23111 2016-01-28 Sebastian Pop <s.pop@samsung.com>
23113 * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
23114 Remove comments from class declarations: they are already in the code
23117 2016-01-28 Sebastian Pop <s.pop@samsung.com>
23119 * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
23121 (ternary_op_to_tree): Same.
23122 (unary_op_to_tree): Same.
23123 (nary_op_to_tree): Same.
23124 (gcc_expression_from_isl_expr_op): Same.
23125 (gcc_expression_from_isl_expression): Same.
23126 (graphite_create_new_loop): Same.
23127 (graphite_create_new_loop_guard): Same.
23128 (build_iv_mapping): Same.
23129 (graphite_create_new_guard): Same.
23130 (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same.
23131 (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same.
23133 2016-01-28 Sebastian Pop <s.pop@samsung.com>
23135 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
23136 instead of setting codegen_error to fail codegen.
23138 2016-01-28 Jason Merrill <jason@redhat.com>
23140 * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
23142 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
23144 * config/aarch64/aarch64.c (aarch64_if_then_else_costs):
23145 Remove CONST_INT_P check in CCMP cost calculation.
23147 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
23149 * config/aarch64/aarch64.c (generic_vector_cost):
23150 Set vec_permute_cost.
23151 (cortexa57_vector_cost): Likewise.
23152 (exynosm1_vector_cost): Likewise.
23153 (xgene1_vector_cost): Likewise.
23154 (aarch64_builtin_vectorization_cost): Use vec_permute_cost.
23155 * config/aarch64/aarch64-protos.h (cpu_vector_cost):
23156 Add vec_permute_cost entry.
23158 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
23160 * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
23162 (add<mode>3_compare0): Likewise.
23163 (addsi3_compare0_uxtw): Likewise.
23164 (add<mode>3nr_compare0): Likewise.
23165 (compare_neg<mode>): Likewise.
23166 (<optab><mode>3): Likewise.
23168 2016-01-28 Ilya Enkovich <enkovich.gnu@gmail.com>
23170 * tree-vect-stmts.c (vectorizable_comparison): Add
23171 NULL check for vectype.
23173 2016-01-28 Richard Biener <rguenther@suse.de>
23175 PR tree-optimization/69466
23176 * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
23177 Account for PHIs we couldn't duplicate.
23179 2016-01-28 Martin Liska <mliska@suse.cz>
23182 * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
23183 instead of ENABLE_VALGRIND_CHECKING.
23185 2016-01-27 Richard Henderson <rth@redhat.com>
23188 * lra-remat.c (subreg_regs): New.
23189 (dump_candidates_and_remat_bb_data): Dump it.
23190 (operand_to_remat): Reject if operand in subreg_regs.
23191 (set_bb_regs): Collect subreg_regs.
23192 (lra_remat): Init and free subreg_regs. Compute
23193 calculate_local_reg_remat_bb_data before create_cands.
23195 2016-01-27 H.J. Lu <hongjiu.lu@intel.com>
23198 * config/i386/i386.c (ix86_update_stack_boundary): Don't
23199 change stack_alignment_needed for __tls_get_addr call.
23201 2016-01-27 Segher Boessenkool <segher@kernel.crashing.org>
23203 * config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
23205 2016-01-27 Jeff Law <law@redhat.com>
23207 PR tree-optimization/68398
23208 PR tree-optimization/69196
23209 * params.def (PARAM_FSM_SCALE_PATH_STMTS): New parameter.
23210 (PARAM_FSM_SCALE_PATH_BLOCKS): Likewise.
23211 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
23212 Only count PHIs in the last block in the path. The others will
23213 const/copy propagate away. Add heuristic to allow more irreducible
23214 subloops to be created when it is likely profitable to do so.
23216 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
23217 Fix typo in comment. Use gsi_after_labels and remove the GIMPLE_LABEL
23218 check from within the loop. Use gsi_next_nondebug rather than gsi_next.
23220 2016-01-27 Jakub Jelinek <jakub@redhat.com>
23223 * sanitizer.def: Add BEGIN_SANITIZER_BUILTINS and
23224 END_SANITIZER_BUILTINS markers using DEF_BUILTIN_STUB.
23225 * asan.c (DEF_BUILTIN_STUB): Temporarily define.
23226 * tree-streamer-in.c: Include asan.h.
23227 (streamer_get_builtin_tree): For builtins in sanitizer
23228 range call initialize_sanitizer_builtins and retry.
23230 2016-01-27 Ian Lance Taylor <iant@google.com>
23232 * common.opt (fkeep-gc-roots-live): New undocumented option.
23233 * tree-ssa-loop-ivopts.c (add_candidate_1): If
23234 -fkeep-gc-roots-live, skip pointers.
23235 (add_iv_candidate_for_biv): Handle add_candidate_1 returning
23238 2016-01-27 Uros Bizjak <ubizjak@gmail.com>
23241 * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
23242 (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.
23244 2016-01-27 Thomas Klausner <wiz@NetBSD.org>
23247 * configure.ac: NetBSD provides SSP in its C library.
23248 * configure: Updated.
23250 2016-01-27 Richard Biener <rguenther@suse.de>
23252 PR tree-optimization/69166
23253 * tree-vect-loop.c (vect_is_simple_reduction): Always check
23254 reduction code for commutativity / associativity.
23256 2016-01-27 Martin Jambor <mjambor@suse.cz>
23258 PR tree-optimization/69355
23259 * tree-sra.c (analyze_access_subtree): Correct hole detection when
23260 total_scalarization fails.
23262 2016-01-27 David Edelsohn <dje.gcc@gmail.com>
23264 * config/rs6000/driver-rs6000.c (detect_processor_aix): Add
23267 2016-01-27 Christian Bruel <christian.bruel@st.com>
23270 * config/arm/arm-c.c (arm_pragma_target_parse): Add comments.
23271 Move arm_reset_previous_fndecl and set_target_option_current_node in
23272 the conditional part. Call save_restore_target_globals.
23273 * config/arm/arm.c (arm_set_current_function):
23274 Refactor to better support #pragma target and attribute mix.
23275 Call save_restore_target_globals.
23276 * config/arm/arm-protos.h (save_restore_target_globals): New function.
23278 2016-01-27 Martin Liska <mliska@suse.cz>
23280 * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
23281 reference for an HSA kernel and its host function.
23283 2016-01-27 Jakub Jelinek <jakub@redhat.com>
23285 PR tree-optimization/69399
23286 * wide-int.h (wi::lrshift): For larger precisions, only
23287 use fast path if shift is known to be < HOST_BITS_PER_WIDE_INT.
23289 2016-01-27 Claudiu Zissulescu <claziss@synopsys.com>
23291 * config/arc/predicates.md (proper_comparison_operator): Reject
23292 constant-constant comparison.
23294 2016-01-26 Tom de Vries <tom@codesourcery.com>
23296 PR tree-optimization/69110
23297 * tree-data-ref.c (initialize_data_dependence_relation): Handle
23298 DR_NUM_DIMENSIONS == 0.
23300 2016-01-26 Abderrazek Zaafrani <a.zaafrani@samsung.com>
23301 Sebastian Pop <s.pop@samsung.com>
23303 * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Handle
23304 isl_ast_op_cond and isl_ast_op_select.
23305 (gcc_expression_from_isl_expr_op): Same.
23307 2016-01-26 Jason Merrill <jason@redhat.com>
23310 * tree.c (recompute_constructor_flags): Split out from
23312 (verify_constructor_flags): New.
23313 * tree.h: Declare them.
23315 2016-01-26 Iain Buclaw <ibuclaw@gdcproject.org>
23317 PR rtl-optimization/69217
23318 * var-tracking.c (tracked_record_parameter_p): Don't segfault if there
23319 are no TYPE_FIELDS set for the record type.
23321 2016-01-26 Jakub Jelinek <jakub@redhat.com>
23324 * config/rs6000/rs6000.c (rs6000_option_override_internal): Initialize
23325 toc_label_name unconditionally.
23326 (rs6000_emit_load_toc_table): Call ggc_strdup on toc_label_name for
23327 SYMBOL_REF string. Use toc_label_name instead of constructing
23329 (rs6000_elf_declare_function_name): Use toc_label_name instead of
23330 constructing LCTOC1.
23332 2016-01-26 Martin Sebor <msebor@redhat.com>
23335 * doc/extend.texi (Common Type Attributes): Move text that talks about
23336 attribute packed from attribute aligned to the section discussing
23337 the former attribute for clarity.
23339 2016-01-26 Richard Henderson <rth@redhat.com>
23341 PR middle-end/60908
23342 * trans-mem.c (tm_region_init): Mark entry block as visited.
23344 2016-01-26 David Malcolm <dmalcolm@redhat.com>
23347 * diagnostic-show-locus.c (layout::print_source_line): Replace
23348 call to pp_newline with call to layout::print_newline.
23349 (layout::print_annotation_line): Likewise.
23350 (layout::move_to_column): Likewise.
23351 (layout::print_any_fixits): After printing any fixits, print a
23352 trailing newline, if necessary.
23353 (layout::print_newline): New method, resetting any colorization
23355 (diagnostic_show_locus): Move the pp_newline to before the
23356 early bailout. Remove dummy block enclosing the layout instance.
23357 * diagnostic.c (default_diagnostic_finalizer): Replace invocation
23358 of pp_newline_and_flush with pp_flush.
23359 (diagnostic_append_note): Delete use of pp_newline.
23360 (diagnostic_append_note_at_rich_loc): Delete.
23361 * diagnostic.h (diagnostic_append_note_at_rich_loc): Delete.
23362 * pretty-print.h (output_buffer_append_r): Reset buff->line_length
23363 when newline characters are added to the buffer.
23365 2016-01-26 Michael Matz <matz@suse.de>
23367 * configure.ac (ac_cv_std_swap_in_utility): New test.
23368 * system.h (<algorithm>): Check HAVE_SWAP_IN_UTILITY as well.
23369 * configure: Regenerate.
23370 * config.in: Regenerate.
23372 2016-01-26 Claudiu Zissulescu <claziss@synopsys.com>
23374 * config/arc/arc.md (cstoresi4): Force operand into register.
23375 (arcset<code>): Fix predicate.
23376 (arcsetltu): Likewise.
23377 (arcsetgeu): Likewise.
23378 (arcsethi): Likewise.
23379 (arcsetls): Likewise.
23381 2016-01-26 Jakub Jelinek <jakub@redhat.com>
23383 PR tree-optimization/69483
23384 * gimple-fold.c (canonicalize_constructor_val): Return NULL
23385 if base has error_mark_node type.
23387 2016-01-26 Christophe Lyon <christophe.lyon@linaro.org>
23390 * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
23391 * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
23393 (vget_lane_f16): Handle big-endian.
23394 (vgetq_lane_f16): Likewise.
23395 (vset_lane_f16): Likewise.
23396 (vsetq_lane_f16): Likewise.
23397 * config/arm/iterators.md (VQXMOV): Add V8HF.
23398 (VDQ): Add V4HF and V8HF.
23399 (V_reg): Handle V4HF and V8HF.
23400 (Is_float_mode): Likewise.
23401 * config/arm/neon.md (movv4hf, movv8hf, neon_vdup_nv4hf,
23402 neon_vdup_nv8hf): New patterns.
23403 (vec_set<mode>_internal, vec_extract<mode>, neon_vld1_dup<mode>):
23404 Use VD_LANE iterator.
23405 (neon_vld1_dup<mode>): Use VQ2 iterator.
23407 2016-01-26 Nathan Sidwell <nathan@acm.org>
23409 * omp-low.h (oacc_fn_attrib_kernels_p): Declare.
23410 (set_oacc_fn_attrib): Add IS_KERNEL arg.
23411 * omp-low.c (set_oacc_fn_attrib): Add IS_KERNEL arg.
23412 (oacc_fn_attrib_kernels_p, oacc_fn_attrib_level): New.
23413 (expand_omp_target): Pass is_kernel to set_oacc_fn_attrib.
23414 (oacc_validate_dims): Add LEVEL arg, don't return level.
23415 (new_oacc_loop_routine): Use oacc_fn_attrib_level, not
23416 oacc_validate_dims.
23417 (execute_oacc_device_lower): Adjust, add more dump output.
23418 * tree-ssa-loop.c (gate_oacc_kernels): Use
23419 oacc_fn_attrib_kernels_p.
23420 * tree-parloops.c (create_parallel_loop): Adjust
23421 set_oacc_fn_attrib call.
23423 2016-01-26 Jakub Jelinek <jakub@redhat.com>
23426 * lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
23427 (append_compiler_options): Handle -fcilkplus.
23428 (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.
23430 2016-01-26 Nick Clifton <nickc@redhat.com>
23433 * config/i386/winnt.c (i386_pe_binds_local_p): If a function has
23434 been marked as DECL_ONE_ONLY but we do not the means to make it
23435 so, then do not allow it to bind locally.
23437 2016-01-26 Jakub Jelinek <jakub@redhat.com>
23440 * opts.h (parse_sanitizer_options): New prototype.
23441 * opts.c (sanitizer_opts): New array.
23442 (parse_sanitizer_options): New function.
23443 (common_handle_option): Use parse_sanitizer_options.
23445 2016-01-26 H.J. Lu <hongjiu.lu@intel.com>
23448 * config/i386/i386.c (ix86_compute_frame_layout): Move stack
23449 alignment adjustment to ...
23450 (ix86_update_stack_boundary): Here. Don't over-align stack for
23452 (ix86_finalize_stack_realign_flags): Use stack_alignment_needed
23453 if __tls_get_addr is called.
23455 2016-01-26 Christian Bruel <christian.bruel@st.com>
23457 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.
23459 2016-01-26 Eric Botcazou <ebotcazou@adacore.com>
23461 * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.
23463 2016-01-26 Richard Biener <rguenther@suse.de>
23465 PR middle-end/69467
23466 * match.pd: Guard X * CST CMP 0 pattern with single_use.
23468 2016-01-26 Richard Biener <rguenther@suse.de>
23470 PR tree-optimization/69452
23471 * tree-ssa-loop-im.c (move_computations_dom_walker): Remove.
23472 (move_computations_dom_walker::before_dom_children): Rename
23474 (move_computations_worker): This.
23475 (move_computations): Perform an RPO rather than a DOM walk.
23477 2016-01-26 Jakub Jelinek <jakub@redhat.com>
23480 * combine.c (combine_instructions): For REG_EQUAL note with
23481 SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST
23482 to the underlying register.
23483 * doc/rtl.texi (REG_EQUAL): Document the behavior of
23484 REG_EQUAL/REG_EQUIV notes if SET_DEST is ZERO_EXTRACT.
23486 2016-01-26 Roger Ferrer Ibáñez <rofirrim@gmail.com>
23489 * config/aarch64/aarch64-builtins.c
23490 (aarch64_init_simd_builtin_types): Do not set structural
23491 equality to __Poly{8,16,64,128}_t types.
23493 2016-01-26 Richard Sandiford <richard.sandiford@arm.com>
23495 PR tree-optimization/69400
23496 * wide-int.cc (wi_pack): Take the precision as argument and
23497 perform canonicalization here rather than in the callers.
23498 Use the main loop to handle all full-width HWIs. Add a
23499 zero HWI if in_len isn't a full result.
23500 (wi::divmod_internal): Update accordingly.
23501 (wi::mul_internal): Likewise. Simplify.
23503 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
23504 Sebastian Pop <s.pop@samsung.com>
23506 * graphite-poly.c (apply_poly_transforms): Simplify.
23507 (print_isl_set): Use more readable format: ISL_YAML_STYLE_BLOCK.
23508 (print_isl_map): Same.
23509 (print_isl_union_map): Same.
23510 (print_isl_schedule): New.
23511 (debug_isl_schedule): New.
23512 * graphite-dependences.c (scop_get_reads): Do not call
23513 isl_union_map_add_map that is undocumented isl functionality.
23514 (scop_get_must_writes): Same.
23515 (scop_get_may_writes): Same.
23516 (scop_get_original_schedule): Remove.
23517 (scop_get_dependences): Do not call isl_union_map_compute_flow that
23518 is deprecated in isl 0.15. Instead, use isl_union_access_* interface.
23519 (compute_deps): Remove.
23520 * graphite-isl-ast-to-gimple.c (print_schedule_ast): New.
23521 (debug_schedule_ast): New.
23522 (translate_isl_ast_to_gimple::scop_to_isl_ast): Call
23523 set_separate_option.
23524 (graphite_regenerate_ast_isl): Add dump.
23525 (translate_isl_ast_to_gimple::scop_to_isl_ast): Generate code
23526 from scop->transformed_schedule.
23527 (graphite_regenerate_ast_isl): Add more dump.
23528 * graphite-optimize-isl.c (optimize_isl): Set
23529 scop->transformed_schedule. Check whether schedules are equal.
23530 (apply_poly_transforms): Move here.
23531 * graphite-poly.c (apply_poly_transforms): ... from here.
23532 (free_poly_bb): Static.
23533 (free_scop): Static.
23534 (pbb_number_of_iterations_at_time): Remove.
23535 (print_isl_ast): New.
23536 (debug_isl_ast): New.
23537 (debug_scop_pbb): New.
23538 * graphite-scop-detection.c (print_edge): Move.
23539 (print_sese): Move.
23540 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
23541 (build_scop_scattering): Remove.
23542 (create_pw_aff_from_tree): Assert instead of bailing out.
23543 (add_condition_to_pbb): Remove unused code, do not fail.
23544 (add_conditions_to_domain): Same.
23545 (add_conditions_to_constraints): Remove.
23546 (build_scop_context): New.
23547 (add_iter_domain_dimension): New.
23548 (build_iteration_domains): Initialize pbb->iterators.
23549 Call add_conditions_to_domain.
23552 (index_outermost_in_loop): New.
23553 (index_pbb_in_loop): New.
23554 (outermost_pbb_in): New.
23555 (add_in_sequence): New.
23556 (add_outer_projection): New.
23557 (outer_projection_mupa): New.
23558 (add_loop_schedule): New.
23559 (build_schedule_pbb): New.
23560 (build_schedule_loop): New.
23561 (embed_in_surrounding_loops): New.
23562 (build_schedule_loop_nest): New.
23563 (build_original_schedule): New.
23564 (build_poly_scop): Call build_original_schedule.
23565 * graphite.h: Declare print_isl_schedule and debug_isl_schedule.
23566 (free_poly_dr): Remove.
23567 (struct poly_bb): Add iterators. Remove schedule, transformed, saved.
23568 (free_poly_bb): Remove.
23569 (debug_loop_vec): Remove.
23570 (print_isl_ast): Declare.
23571 (debug_isl_ast): Declare.
23572 (scop_do_interchange): Remove.
23573 (scop_do_strip_mine): Remove.
23574 (scop_do_block): Remove.
23575 (flatten_all_loops): Remove.
23576 (optimize_isl): Remove.
23577 (pbb_number_of_iterations_at_time): Remove.
23578 (debug_scop_pbb): Declare.
23579 (print_schedule_ast): Declare.
23580 (debug_schedule_ast): Declare.
23581 (struct scop): Remove schedule. Add original_schedule,
23582 transformed_schedule.
23583 (free_gimple_poly_bb): Remove.
23584 (print_generated_program): Remove.
23585 (debug_generated_program): Remove.
23586 (unify_scattering_dimensions): Remove.
23587 * sese.c (print_edge): ... here.
23588 (print_sese): ... here.
23589 (debug_edge): ... here.
23590 (debug_sese): ... here.
23591 * sese.h (print_edge): Declare.
23592 (print_sese): Declare.
23593 (dump_edge): Declare.
23594 (dump_sese): Declare.
23596 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
23597 Sebastian Pop <s.pop@samsung.com>
23599 * Makefile.in: Set ISLVER in site.exp.
23601 2016-01-25 Jakub Jelinek <jakub@redhat.com>
23603 * omp-low.c (lower_omp_target) <case USE_DEVICE_PTR>: Set
23604 DECL_VALUE_EXPR of new_var even for the non-array case. Look
23605 through DECL_VALUE_EXPR for expansion.
23607 2016-01-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
23609 * config/mips/mips.c (mips_compute_frame_info): Skip re-computing
23610 the frame info after reload completed.
23612 2016-01-25 Jeff Law <law@redhat.com>
23614 PR tree-optimization/69196
23615 PR tree-optimization/68398
23616 * tree-ssa-threadupdate.h (enum bb_dom_status): Moved here from
23617 tree-ssa-threadupdate.c.
23618 (determine_bb_domination_status): Prototype
23619 * tree-ssa-threadupdate.c (enum bb_dom_status): Remove
23620 (determine_bb_domination_status): No longer static.
23621 (valid_jump_thread_path): Remove code to detect characteristics
23622 of the jump thread path not associated with correctness.
23623 * tree-ssa-threadbackward.c (fsm_find_control_statment_thread_paths):
23624 Correct test for thread path length. Count PHIs for real operands as
23625 statements that need to be copied. Do not count ASSERT_EXPRs.
23626 Look at all the blocks in the thread path. Compute and selectively
23627 filter thread paths based on threading through the latch, threading
23628 a multiway branch or crossing a multiway branch.
23630 2016-01-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
23632 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): Add
23633 decl with __attribute__ ((unused)) annotation.
23635 2016-01-25 Ilya Enkovich <enkovich.gnu@gmail.com>
23638 * tree-vect-stmts.c (vectorizable_condition): Check vectype
23639 of operands is compatible with a statement vectype.
23641 2016-01-25 Eric Botcazou <ebotcazou@adacore.com>
23643 * doc/extend.texi (scalar_storage_order type attribute): Fix typo and
23644 improve wording for mixed storage order support.
23646 2016-01-25 Bilyan Borisov <bilyan.borisov@arm.com>
23648 * config/aarch64/arm_neon.h (vcvt_s64_f64): New intrinsic.
23649 (vcvt_u64_f64): Likewise.
23650 (vcvta_s64_f64): Likewise.
23651 (vcvta_u64_f64): Likewise.
23652 (vcvtm_s64_f64): Likewise.
23653 (vcvtm_u64_f64): Likewise.
23654 (vcvtn_s64_f64): Likewise.
23655 (vcvtn_u64_f64): Likewise.
23656 (vcvtp_s64_f64): Likewise.
23657 (vcvtp_u64_f64): Likewise.
23659 2016-01-25 Claudiu Zissulescu <claziss@synopsys.com>
23661 * config/arc/arc.c (TARGET_DWARF_REGISTER_SPAN): Define.
23662 (arc_init): Check validity mll64 option.
23663 (arc_save_restore): Use double load/store instruction.
23664 (arc_expand_movmem): Likewise.
23665 (arc_split_move): Don't split if we have double load/store
23666 instructions. Returns a boolean.
23667 (arc_process_double_reg_moves): Change function to return boolean
23668 instead of a sequence of instructions.
23669 (arc_dwarf_register_span): New function.
23670 * config/arc/arc-protos.h (arc_split_move): Change prototype.
23671 * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __ARC_LL64__.
23672 * config/arc/arc.md (*movdi_insn): Emit ldd/std instructions.
23673 (*movdf_insn): Likewise.
23674 * config/arc/arc.opt (mll64): New option.
23675 * config/arc/predicates.md (even_register_operand): New predicate.
23676 * doc/invoke.texi (ARC Options): Add mll64 documentation.
23678 2016-01-25 Richard Biener <rguenther@suse.de>
23681 * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
23682 * tree-streamer-out.c (pack_ts_base_value_fields): Stream
23684 * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
23686 2016-01-25 Richard Biener <rguenther@suse.de>
23688 PR tree-optimization/69376
23689 * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
23691 (VN_INFO_ANTI_RANGE_P): New inline.
23692 (VN_INFO_RANGE_TYPE): Likewise.
23693 * tree-ssa-sccvn.c (set_ssa_val_to): Also record and copy
23694 SSA_NAME_ANTI_RANGE_P.
23695 (free_scc_vn): Restore SSA_NAME_ANTI_RANGE_P.
23696 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
23697 Properly query VN_INFO_RANGE_TYPE.
23699 2016-01-25 Nick Clifton <nickc@redhat.com>
23702 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.
23704 2016-01-23 Tom de Vries <tom@codesourcery.com>
23706 PR tree-optimization/69426
23707 * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
23710 2016-01-23 Jakub Jelinek <jakub@redhat.com>
23712 * tree-ssanames.c (release_free_names_and_compact_live_names): Replace
23713 "the the" with "the" in the comments.
23714 * ipa-devirt.c (build_type_inheritance_graph,
23715 update_type_inheritance_graph): Likewise.
23716 * tree.c (build_function_type_list_1): Likewise.
23717 * cfgloopmanip.c (scale_loop_profile): Likewise.
23718 * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Likewise.
23719 * gimple-ssa-split-paths.c
23720 (find_block_to_duplicate_for_splitting_paths): Likewise.
23721 * tree-sra.c (init_subtree_with_zero, clobber_subtree): Likewise.
23722 * expr.c (convert_move): Likewise.
23723 * var-tracking.c (vt_stack_adjustments): Likewise.
23724 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
23725 * tree-vrp.c (test_for_singularity): Likewise.
23727 * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
23728 directly instead of building a temporary tree.
23731 * genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
23732 remove <algorithm> include.
23734 2016-01-22 Jakub Jelinek <jakub@redhat.com>
23737 * config/i386/i386.c: Include dojump.h.
23738 (expand_small_movmem_or_setmem,
23739 expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Spelling
23741 (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
23742 if dynamic_check != -1.
23744 2016-01-21 Jeff Law <law@redhat.com>
23746 PR middle-end/69347
23747 * tree-ssa-dom.c (back_propagate_equivalences): Factored out of
23748 record_temporary_equivalences. Rewritten to avoid unnecessary calls
23749 into dominated_by_p.
23750 (cprop_into_successor_phis): Avoid unnecessary tests.
23752 2016-01-22 Richard Henderson <rth@redhat.com>
23755 * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
23756 (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
23758 2016-01-22 Michael Matz <matz@suse.de>
23760 * system.h (string, algorithm): Include only conditionally.
23761 (new): Include always under C++.
23762 * bb-reorder.c (toplevel): Define INCLUDE_ALGORITHM.
23763 * final.c (toplevel): Ditto.
23764 * ipa-chkp.c (toplevel): Define INCLUDE_STRING.
23765 * genconditions.c (write_header): Make gencondmd.c define
23767 * mem-stats.h (mem_usage::print_dash_line): Don't use std::string.
23769 * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
23770 * common/config/aarch64/aarch64-common.c (toplevel): Ditto.
23772 2016-01-22 Christian Bruel <christian.bruel@st.com>
23775 * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.
23777 2016-01-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23780 * config/arm/thumb2.md (*thumb2_ior_scc_strict_it): Convert to
23781 define_insn_and_split. Ensure operands[1] and operands[0] do not
23782 get assigned the same register.
23784 2016-01-22 Kugan Vivekanandarajah <kuganv@linaro.org>
23786 * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.
23788 2016-01-22 Christian Bruel <christian.bruel@st.com>
23790 * config/arm/arm-c.c (arm_pragma_target_parse):
23791 Remove warn_builtin_macro_redefined overwrite.
23793 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
23795 * ipa-inline.c (can_inline_edge_p): Back out overzealous check on
23796 flag_non_call_exceptions compatibility.
23798 2016-01-22 Jakub Jelinek <jakub@redhat.com>
23801 * dwarf2out.c (add_child_die_after): New function.
23802 (dwarf_qual_info_t): New type.
23803 (dwarf_qual_info): New variable.
23804 (qualified_die_p): New function.
23805 (modified_type_die): For -fdebug-types-section, ensure
23806 canonical order of qualifiers. Put qualified DIEs adjacent
23807 to the corresponding non-qualified type DIE and search there
23808 for existing qualified DIEs.
23810 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
23812 * doc/extend.texi (scalar_storage_order type attribute): Document
23813 restriction on type punning and aliasing, and remove future tense.
23815 2016-01-21 Roman Zhuykov <zhroma@ispras.ru>
23818 * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
23821 2016-01-21 Jeff Law <law@redhat.com>
23823 PR middle-end/69347
23824 * tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid
23825 useless call to record_temporary_equivalences.
23826 * tree-ssa-threadbackward.c (find_jump_threads_backwards): Just
23827 allocate 10 slots in the bb_path vector and let it grow as needed.
23828 (fsm_find_control_statement_thread_paths): Similarly for the next_path
23831 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
23833 * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
23835 * configure: Regenerate.
23837 2016-01-21 Pat Haugen <pthaugen@us.ibm.com>
23839 * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
23840 * config/rs6000/driver-rs6000.c (struct asm_names): Likewise.
23842 2016-01-21 Bernd Schmidt <bschmidt@redhat.com>
23844 PR middle-end/66178
23845 * expr.c (expand_expr_real_2) [PLUS_EXPR, MINUS_EXPR]: Don't
23846 drop EXPAND_INITIALIZER.
23847 * rtl.h (contains_symbolic_reference_p): Declare.
23848 * rtlanal.c (contains_symbolic_reference_p): New function.
23849 * simplify-rtx.c (simplify_binary_operation_1): Don't turn
23850 a subtraction into a NOT if symbolic constants are involved.
23852 2016-01-21 Anton Blanchard <anton@samba.org>
23853 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
23856 * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
23858 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
23861 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
23863 * config/microblaze/microblaze.c
23864 (get_branch_target): New.
23865 (insert_wic_for_ilb_runout): New.
23867 (microblaze_machine_dependent_reorg): New.
23868 (TARGET_MACHINE_DEPENDENT_REORG): Define macro.
23869 * config/microblaze/microblaze.md
23870 (UNSPEC_IPREFETCH): Define.
23871 (iprefetch): New pattern
23872 * config/microblaze/microblaze.opt
23873 (mxl-prefetch): New flag.
23875 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
23877 * config/microblaze/microblaze.h
23878 (FIXED_REGISTERS): Update in macro.
23879 (CALL_USED_REGISTERS): Update in macro.
23881 2016-01-21 Yuri Rumyantsev <ysrumyan@gmail.com>
23883 PR rtl-optimization/68920
23884 * ifcvt.c (cond_move_process_if_block): Limit number of conditional
23887 2016-01-21 Vladimir Makarov <vmakarov@redhat.com>
23889 PR rtl-optimization/68990
23890 * lra-coalesce.c (lra_coalesce): Invalidate value for the result
23891 pseudo instead of inheritance ones.
23893 2016-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
23894 Nick Clifton <nickc@redhat.com>
23898 * config/mips/mips.c (mips_compute_frame_info): Initialise
23899 args_size and hard_frame_pointer_offset fields of the frame
23900 structure before calling mips_global_pointer.
23902 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
23904 * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
23906 * configure: Regenerate.
23908 2016-01-21 Richard Biener <rguenther@suse.de>
23910 * graphite-optimize-isl.c (get_schedule_map): Fix typo.
23912 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
23914 * config/s390/s390.c (s390_asm_declare_function_size): Add code
23915 to actually emit the .size directive.
23917 2016-01-21 Stefan Sørensen <stefan.sorensen@spectralink.com>
23918 Jakub Jelinek <jakub@redhat.com>
23922 * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
23923 args array size by one to avoid buffer overflow.
23925 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
23927 * config/s390/s390.md (pool_section_start): Use switch_to_section
23928 to select proper read-only data section instead of hardcoding
23930 (pool_section_end): Use switch_to_section to match the above.
23932 2016-01-21 Richard Biener <rguenther@suse.de>
23934 PR tree-optimization/69378
23935 * tree-ssa-sccvn.c (dominated_by_p_w_unex): New function.
23936 (set_ssa_val_to): Use it for dominance checks taking into
23937 account not executable edges.
23939 2016-01-21 Jakub Jelinek <jakub@redhat.com>
23942 * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
23943 for bitsize instead of GET_MODE_PRECISION (mode).
23945 2016-01-20 Martin Sebor <msebor@redhat.com>
23948 * extend.texi (__sync Builtins): Clarify the semantics of
23949 __sync_fetch_and_OP built-ins on pointers.
23950 (__atomic Builtins): Same.
23952 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
23953 Sebastian Pop <s.pop@samsung.com>
23955 * graphite-isl-ast-to-gimple.c (enum phi_node_kind): New.
23956 (class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool.
23957 (is_valid_rename): Same.
23958 (translate_isl_ast_to_gimple::get_rename): Same.
23959 (translate_isl_ast_to_gimple::rename_all_uses): Same.
23960 (translate_isl_ast_to_gimple::rename_uses): Same.
23961 (get_new_name): Check for close_phi nodes.
23962 (copy_loop_phi_args): Use phi_node_kind.
23963 (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
23964 (translate_isl_ast_to_gimple::copy_cond_phi_args): Same.
23966 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
23967 Sebastian Pop <s.pop@samsung.com>
23969 Revert commit r229783.
23970 * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
23971 Remove use of parameter_rename_map.
23972 (copy_def): Remove.
23973 (copy_internal_parameters): Remove.
23974 (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
23975 * sese.c (new_sese_info): Do not initialize parameter_rename_map.
23976 (free_sese_info): Do not free parameter_rename_map.
23977 (set_rename): Do not use parameter_rename_map.
23978 (rename_uses): Update call to set_rename.
23979 (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
23980 * sese.h (parameter_rename_map_t): Remove.
23981 (struct sese_info_t): Remove field parameter_rename_map.
23983 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
23984 Sebastian Pop <s.pop@samsung.com>
23986 * graphite-isl-ast-to-gimple.c: Fix comment.
23987 * graphite-scop-detection.c (defined_in_loop_p): New.
23988 (canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
23989 names defined in loop.
23991 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
23992 Sebastian Pop <s.pop@samsung.com>
23994 * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
23995 Discard unstructured if-then-else regions.
23997 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
23998 Sebastian Pop <s.pop@samsung.com>
24000 * graphite-sese-to-poly.c (set_scop_parameter_dim): Remove.
24001 (cleanup_loop_iter_dom): Remove.
24002 (build_loop_iteration_domains): Remove.
24003 (build_scop_context): Remove.
24004 (build_scop_iteration_domain): Remove.
24005 (add_loop_constraints): New.
24006 (build_iteration_domains): New.
24007 (build_poly_scop): Call build_iteration_domains.
24009 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
24010 Sebastian Pop <s.pop@samsung.com>
24012 * graphite-scop-detection.c
24013 (scop_detection::harmful_loop_in_region): Free dom and loops.
24014 (scop_detection::loop_body_is_valid_scop): Free bbs.
24016 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
24017 Sebastian Pop <s.pop@samsung.com>
24019 * graphite-scop-detection.c (record_loop_in_sese): New.
24020 (gather_bbs::before_dom_children): Call record_loop_in_sese.
24021 (build_scops): Remove call to build_sese_loop_nests.
24022 * sese.c (sese_record_loop): Remove.
24023 (build_sese_loop_nests): Remove.
24024 (new_sese_info): Remove region->loops.
24025 (free_sese_info): Same.
24026 * sese.h (sese_contains_loop): Same.
24027 (build_sese_loop_nests): Remove.
24028 (sese_contains_loop): Remove.
24030 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
24031 Sebastian Pop <s.pop@samsung.com>
24033 * graphite-scop-detection.c (loop_is_valid_scop): Renamed
24034 loop_is_valid_in_scop.
24035 (scop_detection::harmful_stmt_in_region): Renamed
24036 harmful_loop_in_region.
24037 Call loop_is_valid_in_scop.
24039 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
24040 Sebastian Pop <s.pop@samsung.com>
24042 * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
24045 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
24046 Sebastian Pop <s.pop@samsung.com>
24048 * graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION.
24049 * graphite.h (struct poly_bb): Remove field is_reduction.
24050 (PBB_IS_REDUCTION): Remove.
24052 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
24053 Sebastian Pop <s.pop@samsung.com>
24055 * graphite-dependences.c (constrain_domain): Add call to isl_*_coalesce.
24056 (add_pdr_constraints): Same.
24057 (scop_get_reads): Same.
24058 (scop_get_must_writes): Same.
24059 (scop_get_may_writes): Same.
24060 (scop_get_original_schedule): Same.
24061 (extend_schedule): Same.
24062 (apply_schedule_on_deps): Same.
24063 (carries_deps): Same.
24064 (compute_deps): Same.
24065 (scop_get_dependences): Same.
24066 * graphite-isl-ast-to-gimple.c
24067 (translate_isl_ast_to_gimple::generate_isl_schedule): Same.
24068 * graphite-optimize-isl.c (get_schedule_for_band): Same.
24069 (get_schedule_for_band_list): Same.
24070 (get_schedule_map): Same.
24071 (apply_schedule_map_to_scop): Same.
24072 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
24073 (build_loop_iteration_domains): Same.
24074 (add_condition_to_pbb): Same.
24075 (add_param_constraints): Same.
24076 (pdr_add_memory_accesses): Same.
24077 (pdr_add_data_dimensions): Same.
24079 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
24081 * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
24084 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
24086 * common.opt (feliminate-dwarf2-dups): Replace references to
24087 "DWARF 2" with just "DWARF".
24088 * config/ia64/ia64.opt (mdwarf2-asm): Likewise.
24089 * doc/extend.texi: Likewise.
24090 * doc/cpp.texi: Likewise.
24091 * doc/invoke.texi: Likewise.
24092 (Option Summary): Add -gdwarf to list of Debugging Options.
24093 (Debugging Options): Document -gdwarf.
24094 * doc/contrib.texi: Spell "DWARF" like that.
24096 2016-01-21 Jakub Jelinek <jakub@redhat.com>
24098 * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
24099 warning. Fix up formatting.
24101 PR middle-end/67653
24102 * gimplify.c (gimplify_asm_expr): Warn if it is too late to
24103 attempt to mark memory input operand addressable and
24104 call prepare_gimple_addressable in that case. Don't adjust
24105 input_location for diagnostics, use error_at instead.
24107 2016-01-20 Peter Bergner <bergner@vnet.ibm.com>
24109 * config/rs6000/ppc-auxv.h: New file.
24110 * config/rs6000/rs6000-builtin.def (cpu_init): Add new builtin.
24111 (cpu_is): Likewise.
24112 (cpu_supports): Likewise.
24113 * config/rs6000/rs6000.c: include "ppc-auxv.h".
24114 (cpu_is_info): New variable.
24115 (cpu_supports_info): Likewise.
24116 (tcb_verification_symbol): Likewise.
24117 (cpu_builtin_p): Likewise.
24118 (cpu_expand_builtin): New function.
24119 (rs6000_expand_ternop_builtin): Add support for CPU builtin functions.
24120 (rs6000_init_builtins): Likewise.
24121 (rs6000_elf_file_end): Emit HWCAP in TCB verification symbol.
24122 * config/rs6000/rs6000.h (TLS_REGNUM): New define.
24123 * configure.ac (gcc_cv_libc_provides_hwcap_in_tcb): New test.
24124 * configure: Regenerate.
24125 * config.in: Likewise.
24126 * doc/extend.texi (PowerPC Built-in Functions): Document
24127 __builtin_cpu_init, __builtin_cpu_is and __builtin_cpu_supports.
24129 2016-01-20 David Edelsohn <dje.gcc@gmail.com>
24132 * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
24134 * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
24137 2016-01-20 Richard Henderson <rth@redhat.com>
24143 * tree.c (tm_define_builtin): New.
24144 (find_tm_vector_type): New.
24145 (build_tm_vector_builtins): New.
24146 (build_common_builtin_nodes): Call it.
24148 2016-01-20 Christophe Lyon <christophe.lyon@linaro.org>
24150 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
24151 (arm_fp_ok): Likewise.
24152 (arm_fp): Likewise.
24153 (arm_crypto): Likewise.
24155 2016-01-20 Ilya Enkovich <enkovich.gnu@gmail.com>
24156 Richard Biener <rguenther@suse.de>
24158 PR tree-optimization/69328
24159 * tree-vect-stmts.c (vect_is_simple_cond): Check compared
24160 vectors have same number of elements.
24161 (vectorizable_condition): Fix masked version recognition.
24163 2016-01-20 Richard Biener <rguenther@suse.de>
24165 PR tree-optimization/69345
24166 * tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function.
24167 (VN_INFO_PTR_INFO): Likewise.
24168 * tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to
24169 info when it is equal between non-dominating SSA names.
24170 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
24171 Make sure to look at original SSA infos.
24173 2016-01-20 Jeff Law <law@redhat.com>
24176 * config/m68k/predicates.md (pow2_m1_operand): New predicate
24178 (reg_or_pow2_m1_operand): Call pow2_m1_operand.
24179 (pc_or_label_operand): New predicate.
24180 * config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU
24181 tests for small integers that are 2^n - 1.
24183 2016-01-20 Jonathan Wakely <jwakely@redhat.com>
24185 * doc/invoke.texi (Options Summary): Add '.' after @xref.
24187 2016-01-19 Jeff Law <law@redhat.com>
24189 PR middle-end/69347
24190 * tree-ssa-threadbackwards.c
24191 (fsm_find_control_statement_thread_paths): Do not try to lookup
24192 FSM paths for SSA_NAMEs appearing in abnormal PHIs.
24194 2016-01-20 Kugan Vivekanandarajah <kuganv@linaro.org>
24196 * doc/lto.texi: Remove text that says only Gold has linker plugin
24199 2016-01-19 Eric Botcazou <ebotcazou@adacore.com>
24201 * dwarf2out.c (need_endianity_attribute_p): New inline predicate.
24202 (base_type_die): Add REVERSE parameter and attach DW_AT_endianity to
24203 the DIE accordingly.
24204 (modified_type_die): Add REVERSE parameter and pass it recursively,
24205 as well as to base_type_die. Adjust presence check accordingly.
24206 (base_type_for_mode): Adjust call to modified_type_die.
24207 (add_type_attribute): Add REVERSE parameter and pass it to
24209 (generic_parameter_die): Adjust call to add_type_attribute.
24210 (add_scalar_info): Likewise.
24211 (add_subscript_info): Likewise.
24212 (gen_array_type_die): Likewise.
24213 (gen_descr_array_type_die): Likewise.
24214 (gen_entry_point_die): Likewise.
24215 (gen_enumeration_type_die): Likewise.
24216 (gen_formal_parameter_die): Likewise.
24217 (gen_subprogram_die): Likewise.
24218 (gen_variable_die ): Likewise.
24219 (gen_const_die): Likewise.
24220 (gen_field_die): Likewise.
24221 (gen_pointer_type_die): Likewise.
24222 (gen_reference_type_die): Likewise.
24223 (gen_ptr_to_mbr_type_die): Likewise.
24224 (gen_inheritance_die): Likewise.
24225 (gen_subroutine_type_die): Likewise.
24226 (gen_typedef_die): Likewise.
24227 (force_type_die): Adjust call to modified_type_die.
24229 2016-01-19 Sandra Loosemore <sandra@codesourcery.com>
24231 * doc/standards.texi: Copy-editing for grammar, markup, and sentence
24232 flow throughout the file. Fix broken link to Objective-C 2.0
24234 * doc/invoke.texi: More copy-editing; fix numerous typos and spelling
24237 2016-01-19 Wilco Dijkstra <wdijkstr@arm.com>
24239 * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.
24241 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
24244 * ipa-devirt.c (is_cxa_pure_virtual_p): New function.
24245 (maybe_record_node): Record cxa_pure_virtual as the only possible
24246 target if there are not ohter candidates.
24247 (possible_polymorphic_call_target_p): Accept cxa_pure_virtual.
24249 2016-01-19 Richard Biener <rguenther@suse.de>
24251 * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
24252 (get_memory_order): Likewise.
24254 2016-01-19 Kirill Yukhin <kirill.yukhin@intel.com>
24256 * tree-vect-stmts.c (vectorizable_store): Check
24259 2016-01-19 David Malcolm <dmalcolm@redhat.com>
24262 * gcc.c (driver::decode_argv): Add call to
24263 init_opts_obstack before init_options_struct.
24264 * opts.c (init_opts_obstack): Remove idempotency.
24265 (init_options_struct): Replace call to init_opts_obstack
24266 with a gcc_assert to verify that it has already been called.
24267 * toplev.c (toplev::main): Add call to init_opts_obstack before
24268 calls to init_options_struct.
24269 (toplev::finalize): Move cleanup of opts_obstack next to
24270 cleanup of save_decoded_options, clearing the latter, and
24271 save_decoded_options_count.
24273 2016-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24276 * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
24277 attribute to unconditional. Remove %? from output template.
24279 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
24280 Jiong Wang <jiong.wang@arm.com>
24282 * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
24283 generated from different expand order.
24285 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
24287 * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
24288 Add support for CCMP costing.
24290 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
24292 * ccmp.c (ccmp_candidate_p): Remove integer-only restriction.
24293 * config/aarch64/aarch64.md (fccmp<mode>): New pattern.
24294 (fccmpe<mode>): Likewise.
24295 (fcmp): Rename to fcmp and globalize pattern.
24297 * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
24298 (aarch64_gen_ccmp_next): Add FP support.
24300 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
24302 * target.def (gen_ccmp_first): Update documentation.
24303 (gen_ccmp_next): Likewise.
24304 * doc/tm.texi (gen_ccmp_first): Update documentation.
24305 (gen_ccmp_next): Likewise.
24306 * ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of
24307 expand_ccmp_expr_1. Improve comments.
24308 * config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp.
24309 (ccmp_ior<mode>): Remove pattern.
24310 (cmp<mode>): Remove expand.
24311 (cmp): Globalize pattern.
24312 (cstorecc4): Use cc_register.
24313 (mov<mode>cc): Remove ccmp_cc_register check.
24314 * config/aarch64/aarch64.c (aarch64_get_condition_code_1):
24315 Simplify after removal of CC_DNE/* modes.
24316 (aarch64_ccmp_mode_to_code): Remove.
24317 (aarch64_print_operand): Remove 'K' case. Merge 'm' and 'M' cases.
24318 In 'k' case use integer as condition.
24319 (aarch64_nzcv_codes): Remove inverted cases.
24320 (aarch64_code_to_ccmode): Remove.
24321 (aarch64_gen_ccmp_first): Use cmp pattern directly. Return the correct
24322 comparison with CC register to be used in folowing CCMP/branch/CSEL.
24323 (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP
24324 pattern. Return the comparison with CC register. Invert conditions
24325 when bitcode is OR.
24326 * config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes.
24327 * config/aarch64/predicates.md (ccmp_cc_register): Remove.
24329 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
24331 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
24332 instrumented_version.
24334 2016-01-19 Richard Biener <rguenther@suse.de>
24336 PR tree-optimization/69336
24337 * tree-ssa-scopedtables.c (avail_expr_hash): Handle all
24338 handled components with get_ref_base_and_extent.
24339 (equal_mem_array_ref_p): Adjust.
24341 2016-01-19 Jakub Jelinek <jakub@redhat.com>
24344 * shrink-wrap.c: Include valtrack.h.
24345 (move_insn_for_shrink_wrap): Add DEBUG argument. If
24346 MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs
24347 in between insn and where it will be moved to. Call
24348 dead_debug_insert_temp.
24349 (prepare_shrink_wrap): Adjust caller. Call dead_debug_local_init
24350 first and dead_debug_local_finish at the end.
24351 For uses and defs bitmap, handle all regs in between REGNO and
24352 END_REGNO, not just the first one.
24354 2016-01-19 Richard Biener <rguenther@suse.de>
24356 PR tree-optimization/69352
24357 * tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1.
24358 (equal_mem_array_ref_p): Constrain size and max size properly.
24359 Compare the reverse flag.
24361 2016-01-19 Bernd Schmidt <bschmidt@redhat.com>
24363 * ira.c (ira): Update regstat data if we deleted insns.
24365 2016-01-19 Jakub Jelinek <jakub@redhat.com>
24367 PR rtl-optimization/68955
24368 PR rtl-optimization/64557
24369 * dse.c (record_store, check_mem_read_rtx): Don't call get_addr
24370 here. Fix up formatting.
24371 * alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.
24373 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
24376 * cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple
24377 assume that the node has body.
24378 * cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p
24381 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
24383 * lto-streamer-out.c (lto_output): Do not stream instrumentation
24386 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
24388 * symtab.c (symtab_node::asm_name): Do not call printable name directly.
24389 (symtab_node::name): Report name as unnamed if DECL_NAME is not set.
24391 2016-01-19 Martin Jambor <mjambor@suse.cz>
24392 Martin Liska <mliska@suse.cz>
24393 Michael Matz <matz@suse.de>
24395 * Makefile.in (OBJS): Add new source files.
24396 (GTFILES): Add hsa.c.
24397 * common.opt (disable_hsa): New variable.
24398 (-Whsa): New warning.
24399 * config.in (ENABLE_HSA): New.
24400 * configure.ac: Treat hsa differently from other accelerators.
24401 (OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
24402 $enable_offloading.
24403 (ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
24404 * doc/install.texi (Configuration): Document --with-hsa-runtime,
24405 --with-hsa-runtime-include, --with-hsa-runtime-lib and
24406 --with-hsa-kmt-lib.
24407 * doc/invoke.texi (-Whsa): Document.
24408 (hsa-gen-debug-stores): Likewise.
24409 * lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
24410 to invoke offload compiler for hsa acclerator.
24411 * opts.c (common_handle_option): Determine whether HSA offloading
24412 should be performed.
24413 * params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
24414 * builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
24415 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
24416 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
24417 * gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
24418 * gimple-pretty-print.c (dump_gimple_omp_for): Also handle
24419 GF_OMP_FOR_KIND_GRID_LOOP.
24420 (dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
24421 (pp_gimple_stmt_1): Likewise.
24422 * gimple-walk.c (walk_gimple_stmt): Likewise.
24423 * gimple.c (gimple_build_omp_grid_body): New function.
24424 (gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
24425 * gimple.def (GIMPLE_OMP_GRID_BODY): New.
24426 * gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
24427 GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
24428 GF_OMP_TEAMS_GRID_PHONY.
24429 (gimple_statement_omp_single_layout): Updated comments.
24430 (gimple_build_omp_grid_body): New function.
24431 (gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
24432 (gimple_omp_for_grid_phony): New function.
24433 (gimple_omp_for_set_grid_phony): Likewise.
24434 (gimple_omp_parallel_grid_phony): Likewise.
24435 (gimple_omp_parallel_set_grid_phony): Likewise.
24436 (gimple_omp_teams_grid_phony): Likewise.
24437 (gimple_omp_teams_set_grid_phony): Likewise.
24438 (gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
24439 * omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
24440 (BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
24441 (BUILT_IN_GOMP_TARGET): Updated type.
24442 * omp-low.c: Include symbol-summary.h, hsa.h and params.h.
24443 (adjust_for_condition): New function.
24444 (get_omp_for_step_from_incr): Likewise.
24445 (extract_omp_for_data): Moved parts to adjust_for_condition and
24446 get_omp_for_step_from_incr.
24447 (build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
24448 (fixup_child_record_type): Bail out if receiver_decl is NULL.
24449 (scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
24450 (scan_omp_parallel): Do not create child functions for phony
24452 (check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
24453 (scan_omp_1_op): Checking assert we are not remapping to
24454 ERROR_MARK. Also also handle GIMPLE_OMP_GRID_BODY.
24455 (parallel_needs_hsa_kernel_p): New function.
24456 (expand_parallel_call): Register apprpriate parallel child
24457 functions as HSA kernels.
24458 (grid_launch_attributes_trees): New type.
24459 (grid_attr_trees): New variable.
24460 (grid_create_kernel_launch_attr_types): New function.
24461 (grid_insert_store_range_dim): Likewise.
24462 (grid_get_kernel_launch_attributes): Likewise.
24463 (get_target_argument_identifier_1): Likewise.
24464 (get_target_argument_identifier): Likewise.
24465 (get_target_argument_value): Likewise.
24466 (push_target_argument_according_to_value): Likewise.
24467 (get_target_arguments): Likewise.
24468 (expand_omp_target): Call get_target_arguments instead of looking
24469 up for teams and thread limit.
24470 (grid_expand_omp_for_loop): New function.
24471 (grid_arg_decl_map): New type.
24472 (grid_remap_kernel_arg_accesses): New function.
24473 (grid_expand_target_kernel_body): New function.
24474 (expand_omp): Call it.
24475 (lower_omp_for): Do not emit phony constructs.
24476 (lower_omp_taskreg): Do not emit phony constructs but create for them
24477 a temporary variable receiver_decl.
24478 (lower_omp_taskreg): Do not emit phony constructs.
24479 (lower_omp_teams): Likewise.
24480 (lower_omp_grid_body): New function.
24481 (lower_omp_1): Call it.
24482 (grid_reg_assignment_to_local_var_p): New function.
24483 (grid_seq_only_contains_local_assignments): Likewise.
24484 (grid_find_single_omp_among_assignments_1): Likewise.
24485 (grid_find_single_omp_among_assignments): Likewise.
24486 (grid_find_ungridifiable_statement): Likewise.
24487 (grid_target_follows_gridifiable_pattern): Likewise.
24488 (grid_remap_prebody_decls): Likewise.
24489 (grid_copy_leading_local_assignments): Likewise.
24490 (grid_process_kernel_body_copy): Likewise.
24491 (grid_attempt_target_gridification): Likewise.
24492 (grid_gridify_all_targets_stmt): Likewise.
24493 (grid_gridify_all_targets): Likewise.
24494 (execute_lower_omp): Call grid_gridify_all_targets.
24495 (make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
24496 * tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
24497 (tree_omp_clause): Added union field dimension.
24498 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
24499 * tree.c (omp_clause_num_ops): Added number of arguments of
24500 OMP_CLAUSE__GRIDDIM_.
24501 (omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
24502 (walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
24503 * tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
24504 (OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
24505 (OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
24506 (OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
24507 * passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
24508 * tree-pass.h (make_pass_gen_hsail): Declare.
24509 (make_pass_ipa_hsa): Likewise.
24510 * ipa-hsa.c: New file.
24511 * lto-section-in.c (lto_section_name): Add hsa section name.
24512 * lto-streamer.h (lto_section_type): Add hsa section.
24513 * timevar.def (TV_IPA_HSA): New.
24514 * hsa-brig-format.h: New file.
24515 * hsa-brig.c: New file.
24516 * hsa-dump.c: Likewise.
24517 * hsa-gen.c: Likewise.
24520 * toplev.c (compile_file): Call hsa_output_brig.
24521 * hsa-regalloc.c: New file.
24523 2016-01-18 Jeff Law <law@redhat.com>
24525 PR tree-optimization/69320
24526 * tree-ssa-dom.c (record_edge_info): For comparisons against a boolean
24527 ranged object, do nothing if the RHS constant is not [0..1].
24528 (optimize_stmt): Comparing a boolean ranged object against a
24529 constant outside [0..1] results in a compile-time constant.
24531 * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
24534 2016-01-18 Sandra Loosemore <sandra@codesourcery.com>
24536 * doc/invoke.texi (Invoking GCC): Add new section to menu.
24537 (Option Summary): Update to reflect new section and moved options.
24538 (C++ Dialect Options): Move -fstats to new section.
24539 (Debugging Options): Move all dump, statistics, and other GCC
24540 developer options to new section. Rewrite section introduction
24541 and re-order remaining options to put the more basic ones first.
24542 (Optimization Options): Move -fira-verbose and -flto-report* to
24544 (Developer Options): New section incorporating moved options.
24545 * doc/cppopts.texi (-dM): Update cross-reference.
24547 2016-01-18 Richard Henderson <rth@redhat.com>
24550 * config/aarch64/aarch64.md (add<GPI>3): Move long immediate
24551 operands to pseudo only if CSE is expected. Split long immediate
24552 operands only after reload, and for the stack pointer.
24553 (*add<GPI>3_pluslong): Remove.
24554 (*addsi3_aarch64, *adddi3_aarch64): Merge into...
24555 (*add<GPI>3_aarch64): ... here. Add r/rk/Upl alternative.
24556 (*addsi3_aarch64_uxtw): Add r/rk/Upl alternative.
24557 (*add<GPI>3 peepholes): New.
24558 (*add<GPI>3 splitters): New.
24559 * config/aarch64/constraints.md (Upl): New.
24560 * config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New.
24562 2016-01-18 Richard Biener <rguenther@suse.de>
24564 PR tree-optimization/69297
24565 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
24567 (vect_bb_vectorization_profitable_p): Clear visited flag again.
24569 2016-01-18 Yuri Rumyantsev <ysrumyan@gmail.com>
24571 PR middle-end/68542
24572 * fold-const.c (fold_binary_op_with_conditional_arg): Bail out for case
24573 of mixind vector and scalar types.
24574 (fold_relational_const): Add handling of vector
24575 comparison with boolean result.
24576 * tree-cfg.c (verify_gimple_comparison): Add argument CODE, allow
24577 comparison of vector operands with boolean result for EQ/NE only.
24578 (verify_gimple_assign_binary): Adjust call for verify_gimple_comparison.
24579 (verify_gimple_cond): Likewise.
24580 * tree-vrp.c (extract_code_and_val_from_cond_with_ops): Modify check on
24583 2016-01-18 Joseph Myers <joseph@codesourcery.com>
24585 * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
24588 2016-01-18 Richard Biener <rguenther@suse.de>
24590 PR middle-end/69308
24591 * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.
24593 2016-01-18 Tom de Vries <tom@codesourcery.com>
24595 * passes.def: Add pass_parallelize_loops to pass_oacc_kernels.
24597 2016-01-18 Tom de Vries <tom@codesourcery.com>
24599 * omp-low.c (set_oacc_fn_attrib): Make extern.
24600 * omp-low.h (set_oacc_fn_attrib): Declare.
24601 * tree-parloops.c (struct reduction_info): Add reduc_addr field.
24602 (create_call_for_reduction_1): Handle case that reduc_addr is non-NULL.
24603 (create_parallel_loop, gen_parallel_loop, try_create_reduction_list):
24604 Add and handle function parameter oacc_kernels_p.
24605 (find_reduc_addr, get_omp_data_i_param): New function.
24606 (ref_conflicts_with_region, oacc_entry_exit_ok_1)
24607 (oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function.
24608 (parallelize_loops): Add and handle function parameter oacc_kernels_p.
24609 Calculate dominance info. Skip loops that are not in a kernels region
24610 in oacc_kernels_p mode. Skip inner loops of parallelized loops.
24611 (pass_parallelize_loops::execute): Call parallelize_loops with
24612 oacc_kernels_p argument.
24613 (pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param):
24614 New member function.
24615 (pass_parallelize_loops::bool oacc_kernels_p): New member var.
24616 * passes.def: Add argument to pass_parallelize_loops instantation.
24618 2016-01-18 Tom de Vries <tom@codesourcery.com>
24620 * tree-parloops.c (pass_parallelize_loops::execute): Allow
24621 pass_parallelize_loops to be run outside the loop pipeline.
24623 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
24625 * tree-scalar-evolution.c (follow_copies_to_constant): New.
24626 (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
24628 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
24631 * tree-ssa-scopedtables.c (avail_expr_hash): Hash MEM_REF and ARRAY_REF
24632 using get_ref_base_and_extent.
24633 (equal_mem_array_ref_p): New.
24634 (hashable_expr_equal_p): Add call to previous.
24636 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
24639 * tree-sra.c (disqualified_constants, constant_decl_p): New.
24640 (sra_initialize): Allocate disqualified_constants.
24641 (sra_deinitialize): Free disqualified_constants.
24642 (disqualify_candidate): Update disqualified_constants when appropriate.
24643 (create_access): Scan for constant-pool entries as we go along.
24644 (scalarizable_type_p): Add check against type_contains_placeholder_p.
24645 (maybe_add_sra_candidate): Allow constant-pool entries.
24646 (load_assign_lhs_subreplacements): Bind debug for constant pool vars.
24647 (initialize_constant_pool_replacements): New.
24648 (sra_modify_assign): Avoid mangling assignments created by previous,
24649 and don't generate writes into constant pool.
24650 (sra_modify_function_body): Call initialize_constant_pool_replacements.
24652 2016-01-18 Ilya Enkovich <enkovich.gnu@gmail.com>
24654 * config/i386/i386.c (scalar_to_vector_candidate_p): Support
24655 andnot instruction.
24656 (scalar_chain::convert_op): Likewise.
24657 * config/i386/i386.md (*andndi3_doubleword): New.
24659 2016-01-18 Richard Biener <rguenther@suse.de>
24661 PR tree-optimization/69170
24662 * tree-vect-slp.c (vect_build_slp_tree): Verify we are not
24663 building a vector from scalar results of a pattern stmt.
24665 2016-01-18 Jakub Jelinek <jakub@redhat.com>
24667 * haifa-sched.c (autopref_multipass_init): Work around
24668 -Wmaybe-uninitialized warning.
24670 2016-01-18 Thomas Preud'homme <thomas.preudhomme@arm.com>
24672 * config/arm/arm.c (thumb1_reorg): Check that the comparison is
24673 against the constant 0.
24675 2016-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
24677 PR tree-optimization/68799
24678 * gimple-ssa-strength-reduction.c (create_phi_basis): Directly
24679 look up phi candidates in the statement-candidate map.
24680 (phi_add_costs): Likewise.
24681 (record_phi_increments): Likewise.
24682 (phi_incr_cost): Likewise.
24683 (ncd_with_phi): Likewise.
24684 (all_phi_incrs_profitable): Likewise.
24686 2016-01-17 Jakub Jelinek <jakub@redhat.com>
24688 * omp-low.c (mark_loops_in_oacc_kernels_region): Work around
24689 -Wmaybe-uninitialized warning.
24691 2016-01-16 Sandra Loosemore <sandra@codesourcery.com>
24693 * doc/invoke.texi (Invoking GCC): Add new section to menu.
24694 (Option Summary): Update to reflect new section and moved options.
24695 (C++ Dialect Options): Move -fvtable-verify and related options.
24696 (Debugging Options): Move Sanitizer, Pointer Bounds Checker,
24697 and profiling-related options.
24698 (Optimization Options): Move profile generation options and
24699 -fstack-protector and related options.
24700 (Instrumentation Options): New section incorporating moved options.
24701 (Code Generation Options): Move -finstrument-functions and
24702 related options, -fstack-check, -fstack-limit*, and -fbounds-check.
24704 2016-01-16 Tom de Vries <tom@codesourcery.com>
24706 * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.
24708 2016-01-16 Tom de Vries <tom@codesourcery.com>
24710 * omp-low.c (expand_omp_atomic_fetch_op): Release defs of update stmt.
24712 2016-01-16 Richard Sandiford <richard.sandiford@arm.com>
24714 * hash-table.h (hash_table::empty): Turn into an inline wrapper
24715 that checks whether the table is already empty. Rename the
24716 original implementation to...
24717 (hash_table::empty_slot): ...this new private function.
24719 2016-01-15 David Malcolm <dmalcolm@redhat.com>
24721 PR diagnostic/68899
24722 * diagnostic-show-locus.c (layout::print_source_line): Move x
24723 offset of line until after call to
24724 get_line_width_without_trailing_whitespace.
24726 2016-01-15 Jeff Law <law@redhat.com>
24728 PR tree-optimization/69270
24729 * tree-ssanames.c (ssa_name_has_boolean_range): Moved here from
24730 tree-ssa-dom.c. Improve test for [0..1] ranve from VRP.
24731 * tree-ssa-dom.c (ssa_name_has_boolean_range): Remove.
24732 * tree-ssanames.h (ssa_name_has_boolean_range): Prototype.
24733 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
24734 ssa_name_has_boolean_range and constant_boolean_node.
24736 2016-01-15 Vladimir Makarov <vmakarov@redhat.com>
24738 PR rtl-optimization/69030
24739 * lra-spills.c (remove_pseudos): Check nrefs and make the function
24741 (spill_pseudos): Delete debug insn for dead pseudo.
24742 (lra_spill): Initiate spill_hard_reg and slots memory separately.
24744 2016-01-15 Jiong Wang <jiong.wang@arm.com>
24746 * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
24748 (TYPES_UNOPUS): Likewise.
24749 * config/aarch64/aarch64-simd-builtins.def (lbtruncuv2sf): Correct
24750 builtin type, from UNOP to UNOPUS.
24751 (lbtruncuv4sf): Likewise.
24752 (lbtruncuv2df): Likewise.
24753 (lrounduv2sf): Likewise.
24754 (lrounduv4sf): Likewise.
24755 (lrounduv2df): Likewise.
24756 (lroundusf): Likewise.
24757 (lroundusf): Likewise.
24758 (lceiluv2sf): Likewise.
24759 (lceiluv4sf): Likewise.
24760 (lceiluv2df): Likewise.
24761 (lceilusf): Likewise.
24762 (lceiludf): Likewise.
24763 (lflooruv2sf): Likewise.
24764 (lflooruv4sf): Likewise.
24765 (lflooruv2df): Likewise.
24766 (lfloorusf): Likewise.
24767 (lfloorudf): Likewise.
24768 (lfrintnuv2sf): Likewise.
24769 (lfrintnuv4sf): Likewise.
24770 (lfrintnuv2df): Likewise.
24771 (lfrintnusf): Likewise.
24772 (lfrintnudf): Likewise.
24773 * config/aarch64/arm_neon.h (vcvt_u32_f32): Remove unncessary type
24775 (vcvtq_u32_f32): Likewise.
24776 (vcvtq_u64_f64): Likewise.
24777 (vcvta_u32_f32): Likewise.
24778 (vcvtaq_u32_f32): Likewise.
24779 (vcvtaq_u64_f64): Likewise.
24780 (vcvtm_u32_f32): Likewise.
24781 (vcvtmq_u32_f32): Likewise.
24782 (vcvtmq_u64_f64): Likewise.
24783 (vcvtn_u32_f32): Likwise.
24784 (vcvtnq_u32_f32): Likewise.
24785 (vcvtnq_u64_f64): Likewise.
24786 (vcvtp_u32_f32): Likewise.
24787 (vcvtpq_u32_f32): Likewise.
24788 (vcvtpq_u64_f64): Likewise.
24789 (vcvtmd_u64_f64): Likewise.
24790 (vcvtms_u32_f32): Likewise.
24791 (vcvtad_u64_f64): Likewise.
24792 (vcvtas_u32_f32): Likewise.
24793 (vcvtnd_u64_f64): Likewise.
24794 (vcvtns_u32_f32): Likewise.
24795 (vcvtpd_u64_f64): Likewise.
24796 (vcvtps_u32_f32): Likewise.
24798 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24800 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
24801 CSEL of zero_extended registers.
24803 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24805 * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
24806 Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
24808 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24810 * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
24811 false when argument string is not found in the attributes table
24814 2016-01-15 David Edelsohn <dje.gcc@gmail.com>
24817 * config/rs6000/rs6000.c (rs6000_emit_msub): Delete.
24818 (rs6000_emit_swsqrt): Convert to Goldschmidt's Algorithm
24819 * config/rs6000/rs6000.md (sqrt<mode>2): Limit swsqrt to high
24820 precision estimate.
24822 2016-01-15 Richard Biener <rguenther@suse.de>
24824 PR tree-optimization/66856
24825 * tree-vect-loop.c (vect_transform_loop): Free SLP instances here.
24826 * tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count.
24827 (vect_create_new_slp_node): Increment stmt reference count.
24828 (vect_get_and_check_slp_defs): Make sure stmts are nor already in
24829 an SLP tree before swapping operands.
24830 (vect_build_slp_tree): Likewise.
24831 (destroy_bb_vec_info): Free stmt info after SLP instances.
24832 * tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count.
24833 * tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field.
24834 (STMT_VINFO_NUM_SLP_USES): New macro.
24836 2016-01-15 Richard Biener <rguenther@suse.de>
24839 * dwarf2out.c (add_linkage_name_raw): New function split out from ...
24840 (add_linkage_name): ... here.
24841 (gen_typedef_die): Use add_linkage_name_raw instead of
24842 add_linkage_attr to delay DECL_ASSEMBLER_NAME computation
24845 2016-01-15 Cesar Philippidis <cesar@codesourcery.com>
24847 * gimplify.c (oacc_default_clause): Decode reference and pointer
24848 types for both kernels and parallel regions.
24850 2016-01-15 Richard Sandiford <richard.sandiford@arm.com>
24852 PR middle-end/69246
24853 * calls.c (emit_call_1): Force n_popped to zero for sibcalls.
24855 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
24857 * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
24858 (convert_scalars_to_vector): Likewise.
24860 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
24862 * doc/extend.texi (Type Traits): Fix grammar.
24864 2016-01-15 Martin Jambor <mjambor@suse.cz>
24866 * tree-inline.c (remap_decl): Use existing dclarations if
24867 remapping a type and prevent_decl_creation_for_types.
24868 (replace_locals_stmt): Do an initial remapping of non-VLA typed
24869 decls first. Do real remapping with
24870 prevent_decl_creation_for_types set.
24871 * tree-inline.h (copy_body_data): New field
24872 prevent_decl_creation_for_types, moved remap_var_for_cilk to avoid
24875 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
24877 * config/s390/s390.opt (mmvcle): More verbose help text.
24879 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
24881 * config/s390/s390.opt: Add period to -mzvector option text.
24883 2016-01-15 Richard Biener <rguenther@suse.de>
24885 PR tree-optimization/68961
24886 * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
24887 of invariants in stores again.
24889 2016-01-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
24891 * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.
24893 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
24895 * config/i386/i386.c (ix86_expand_branch): Don't split
24896 DI mode xor instruction to SI mode.
24898 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
24901 * ipa-icf.c (sem_function::merge): Virtual functions may become
24902 reachable even if they address is not taken and there are no
24905 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
24907 * lto-streamer-out.c (subtract_estimated_size): New function.
24908 (get_symbol_initial_value): Use it.
24910 2016-01-15 Christian Bruel <christian.bruel@st.com>
24913 * config/arm/arm-builtins.c (ARM_BUILTIN_CRYPTO_BASE): New enum tag.
24914 (arm_init_neon_builtins_internal): Rename arm_init_neon_builtins,
24915 (arm_init_crypto_builtins_internal): Rename arm_init_crypto_builtins.
24916 use add_builtin_function_ext_scope instead of add_builtin_function.
24917 (neon_set_p, neon_crypto_set_p): Remove.
24918 (arm_init_builtins): Always call arm_init_neon_builtins and
24919 arm_init_crypto_builtins.
24920 (arm_expand_builtin): Check that builtins are allowed for the arch.
24921 * config/arm/arm-protos.h (arm_init_neon_builtins): Remove prototype.
24922 * config/arm/arm.c (arm_valid_target_attribute_tree): Remove
24923 arm_init_neon_builtins call.
24925 2016-01-15 Richard Biener <rguenther@suse.de>
24927 PR tree-optimization/69117
24928 * tree-ssa-sccvn.h (struct vn_ssa_aux): Add info member.
24929 * tree-ssa-sccvn.c (set_ssa_val_to): Save and adjust SSA name info
24930 of the leader conservatively.
24931 (free_scc_vn): Restore original SSA name infos.
24933 2016-01-14 Jeff Law <law@redhat.com>
24935 PR tree-optimization/69270
24936 * tree-ssa-dom.c (ssa_name_has_boolean_range): If the type has a
24937 single bit of precision, verify it's also unsigned.
24938 (record_edge_info): Use constant_boolean_node rather than fold_convert
24939 to convert boolean_true/boolean_false to the right type.
24941 2016-01-14 Richard Henderson <rth@redhat.com>
24944 * loop-doloop.c (record_reg_sets): New.
24945 (doloop_optimize): Reject the transform if the sequence
24946 clobbers registers live at the end of the loop block.
24947 (doloop_optimize_loops): Enable df_live if needed.
24949 2016-01-14 Michael Meissner <meissner@linux.vnet.ibm.com>
24951 * config/rs6000/rs6000-builtin.def: Revert 2016-01-13 change.
24952 * config/rs6000/rs6000.c: Likewise.
24953 * config/rs6000/rs6000.h: Likewise.
24954 * config/rs6000/rs6000.md: Likewise.
24955 * doc/extend.texi: Likewsie.
24957 2016-01-14 Jeff Law <law@redhat.com>
24959 * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
24962 2016-01-14 Richard Henderson <rth@redhat.com>
24966 * trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size.
24967 * tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p
24968 instead of builtin_decl_declared_p to test for declaration.
24970 2016-01-14 Nicklas Bo Jensen <nbjensen@gmail.com>
24972 * doc/loop.texi (Loop Analysis and Representation): Document
24973 loop_depth function.
24975 2016-01-14 Tom de Vries <tom@codesourcery.com>
24977 PR tree-optimization/68773
24978 * omp-low.c (expand_omp_target): Don't set force_output.
24979 * varpool.c (varpool_node::get_create): Same.
24980 * lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and
24981 offload_funcs with force_output.
24983 2016-01-14 Jakub Jelinek <jakub@redhat.com>
24986 * lra-eliminations.c (move_plus_up): Don't change anything if either
24987 the outer or inner subreg mode is not MODE_INT.
24988 * dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is
24989 integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards.
24991 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
24993 * doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m},
24994 reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m},
24995 reduc_uplus_@var{m}): Remove.
24996 * expr.c (expand_expr_real_2): Remove expansion path for
24997 reduc_[us](min|max|plus) optabs.
24998 * optabs-tree.c (scalar_reduc_to_vector): Remove.
24999 * optabs-tree.h (scalar_reduc_to_vector): Remove.
25000 * optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab,
25001 reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove.
25002 * tree-vect-loop.c (vectorizable_reduction): Remove test for
25003 reduc_[us](min|max|plus) optabs.
25005 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
25007 * config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove.
25008 (reduc_plus_scal_v2sf): New.
25009 (reduc_smax_v2sf): Rename to...
25010 (reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract.
25011 (reduc_smin_v2sf): Rename to...
25012 (reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract.
25014 2016-01-14 Jan Hubicka <hubicka@ucw.cz>
25016 * alias.c (compare_base_symbol_refs): New function.
25017 (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
25020 2016-01-14 Jakub Jelinek <jakub@redhat.com>
25022 PR middle-end/68146
25023 PR tree-optimization/69155
25024 * tree-complex.c: Include cfganal.h.
25025 (phis_to_revisit): New variable.
25026 (extract_component): Add phiarg_p argument. Assert that returned
25027 SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true.
25028 (update_phi_components): Partly rewrite to use loop over real/imag
25029 components instead of code duplication. If extract_component returns
25030 SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or
25031 create_tmp_reg into the PHI node instead, and mention the phi triplet
25032 in phis_to_revisit.
25033 (tree_lower_complex): Walk bbs in rpo order. Adjust phis recorded
25034 in phis_to_revisit at the end.
25036 2016-01-14 Richard Biener <rguenther@suse.de>
25038 PR tree-optimization/68060
25039 * tree-vect-loop.c (vect_is_simple_reduction): Check the
25040 outer loop reduction is only used in the inner loop before
25041 detecting a double reduction.
25043 2016-01-14 Jakub Jelinek <jakub@redhat.com>
25046 * combine.c (expand_field_assignment): Punt if compute_mode is
25047 unsupported scalar mode.
25049 2016-01-14 Richard Biener <rguenther@suse.de>
25051 PR tree-optimization/66856
25052 * tree-vect-slp.c (vect_build_slp_tree): Refactor to build
25053 SLP node only if it built successfully.
25054 (vect_analyze_slp_instance): Adjust.
25056 2016-01-14 Jeff Law <law@redhat.com>
25058 PR tree-optimization/69270
25059 * tree-ssa-dom.c (ssa_name_has_boolean_range): New function.
25060 (record_edge_info): Use it. Convert boolean_{true,false}_node
25061 to the type of op0.
25063 2016-01-13 Jan Hubicka <hubicka@ucw.cz>
25066 * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
25067 use block_ultimate_origin
25068 (noncall-stmt_may_be_vtbl_ptr_store): Likewise.
25070 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
25072 * doc/invoke.texi (Submodel Options): Rename section to
25073 "Machine-Dependent Options" to better reflect its content.
25074 Rewrite introductory text to remove archaic CPU names.
25077 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
25079 * doc/invoke.texi (Code Gen Options): Move section up in file,
25080 before target-specific options. Update menu and option summary
25081 to reflect the new section ordering.
25083 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
25085 * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
25086 (C++ Dialect Options): Add cross-reference to -std option.
25087 * doc/standards.texi (C++ Language): Document C++14 support.
25089 2016-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
25091 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
25092 for pack/unpack functions for __ibm128.
25093 (PACK_IF): Likewise.
25094 (UNPACK_IF): Likewise.
25096 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
25097 support for __ibm128 pack/unpack functions.
25098 (rs6000_invalid_builtin): Likewise.
25099 (rs6000_init_builtins): Likewise.
25100 (rs6000_opt_masks): Likewise.
25102 * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
25103 (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
25105 (RS6000_BTM_COMMON): Likewise.
25107 * config/rs6000/rs6000.md (f128_vsx): New mode attribute.
25108 (unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
25109 disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
25110 128-bit floating point. Add support for the double values to be
25111 in Altivec registers for TF/IF packing and unpacking, but restrict
25112 TD packing sub-fields to be FPR registers. Don't allow overlapped
25113 register support for packing. Allow pack inputs to be memory
25114 locations. Don't build generator functions for unpack<mode>_dm
25115 and unpack<mode>_nodm.
25116 (unpack<mode>_dm): Likewise.
25117 (unpack<mode>_nodm): Likewise.
25118 (pack<mode>): Likewise.
25120 * config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
25121 built-in functions to pack/unpack explicit __ibm128 values.
25122 (__builtin_unpack_ibm128): Likewise.
25124 * doc/extend.texi (PowerPC Built-in Functions): Document
25125 __builtin_pack_ibm128 and __builtin_unpack_ibm128.
25127 2016-01-13 Bernd Schmidt <bschmidt@redhat.com>
25130 * c-common.c (check_function_nonnull): Remove unnecessary declaration.
25131 Add new arg loc and pass it down as context.
25132 (check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
25133 to the location to use for the warning.
25134 (check_function_arguments): New arg loc. All callers changed. Pass
25135 it to check_function_nonnull.
25136 * c-common.h (check_function_arguments): Adjust declaration.
25138 2016-01-13 Jakub Jelinek <jakub@redhat.com>
25140 PR tree-optimization/69156
25141 * gimple.c (validate_type): Removed.
25142 (gimple_builtin_call_types_compatible_p): Use
25143 useless_type_conversion_p instead of validate_type.
25144 * value-prof.c (gimple_stringop_fixed_value): Fold
25145 icall_size to correct type.
25147 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
25149 * doc/extend.texi (__atomic Builtins): Clarify compare_exchange
25152 2016-01-13 Richard Henderson <rth@redhat.com>
25155 * target.def (builtin_tm_load, builtin_tm_store): Remove.
25156 * config/i386/i386.c (ix86_builtin_tm_load): Remove.
25157 (ix86_builtin_tm_store): Remove.
25158 (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
25159 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
25160 * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
25161 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
25162 * doc/tm.texi: Rebuild.
25164 * gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New.
25165 (BUILT_IN_TM_MEMCPY_RTWN): New.
25166 * trans-mem.c (tm_log_emit_stmt): Rearrange code for better
25167 fallback from vector to integer helpers.
25168 (build_tm_load): Handle vector types directly, instead of
25170 (build_tm_store): Likewise.
25171 (expand_assign_tm): Prepare for register types not handled by
25172 the above. Copy them to memory and use memcpy.
25173 * tree.c (tm_define_builtin): New.
25174 (find_tm_vector_type): New.
25175 (build_tm_vector_builtins): New.
25176 (build_common_builtin_nodes): Call it.
25178 2016-01-13 Uros Bizjak <ubizjak@gmail.com>
25180 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
25181 TARGET_SSE_MATH without TARGET_SSE2. Rewrite.
25183 2016-01-13 Tom de Vries <tom@codesourcery.com>
25185 PR tree-optimization/69169
25186 * tree-ssa-structalias.c (create_variable_info_for_1): Add and handle
25187 handled_struct_type param.
25188 (create_variable_info_for, intra_create_variable_infos): Call
25189 create_variable_info_for_1 with extra arg.
25191 2016-01-13 Yvan Roux <yvan.roux@linaro.org>
25193 * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
25194 and "armv8.1-a+crc" entries.
25196 2016-01-13 Alexander Fomin <alexander.fomin@intel.com>
25199 * config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
25200 Change first operand predicate from register_or_constm1_operand
25201 to register_operand.
25202 (define_expand "avx512pf_gatherpf<mode>df"): Likewise.
25203 (define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
25204 (define_expand "avx512pf_scatterpf<mode>df"): Likewise.
25205 (define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
25206 (define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
25207 (define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
25208 (define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
25209 * config/i386/i386.c (ix86_expand_builtin): Remove first operand
25210 comparison with constm1_rtx from vec_prefetch_gen part.
25212 2016-01-13 Richard Biener <rguenther@suse.de>
25214 PR tree-optimization/69013
25215 * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
25216 Exchange assert for a test.
25218 2016-01-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
25221 * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.
25223 2016-01-13 Richard Biener <rguenther@suse.de>
25225 PR tree-optimization/69242
25226 * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
25227 assert with a check.
25229 2016-01-13 Richard Biener <rguenther@suse.de>
25231 PR tree-optimization/69186
25232 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
25233 Properly guard vect_update_misalignment_for_peel call.
25235 2016-01-12 Jeff Law <law@redhat.com>
25237 PR tree-optimization/pr67755
25238 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
25239 "need_profile_correction".
25240 (thread_block_1): Initialize new field to false by default. If we
25241 have multiple thread paths through a common joiner to different
25242 final targets, then set new field to true.
25243 (compute_path_counts): Only do count adjustment when it's really
25246 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
25248 * doc/invoke.texi (Spec Files): Move section down in file, past
25249 all command-line option descriptions.
25251 2016-01-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25253 PR middle-end/54809
25254 * doc/gty.texi: Remove documentation of mark_hook.
25255 * gengtype.c (struct write_types_data): Remove code to support
25256 mark_hook attribute.
25257 (walk_type): Likewise.
25258 (write_func_for_structure): Likewise.
25260 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
25262 * doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to
25263 Directory Options, and -specs= to Overall Options.
25264 (Overall Options): Adjust similarly. Reorder to group related
25265 options together. Make -specs= cross-reference the spec file details.
25266 (Directory Options): Adjust similarly.
25268 2016-01-12 Jeff Law <law@redhat.com>
25270 * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
25272 2016-01-12 Olivier Hainque <hainque@adacore.com>
25274 * gcc.c (spec_undefvar_allowed): New global.
25275 (process_command): Set to true when running for --version or --help,
25277 (getenv_spec_function): When the variable is not defined, use the
25278 variable name as the variable value if we're allowed not to issue
25281 2016-01-12 Bin Cheng <bin.cheng@arm.com>
25283 PR tree-optimization/68911
25284 * tree-vrp.c (adjust_range_with_scev): Check overflow in range
25285 information computed for expression "init + nit * step".
25287 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
25289 * doc/invoke.texi (Invoking GCC): Copy-edit. Incorporate information
25290 about name of GCC executable. Remove deleted node from menu.
25291 (Directory Options) <-B>: Remove cross-reference to deleted node.
25292 (Target Options): Delete section.
25294 2016-01-12 Christian Bruel <christian.bruel@st.com>
25297 * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
25298 for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.
25300 2016-01-12 Jakub Jelinek <jakub@redhat.com>
25303 * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
25304 aligned_mem is properly set for AVX512-VL floating point masked
25308 * ifcvt.c (cond_exec_process_if_block): When removing the last
25309 insn from then_bb, remove also any possible barriers that follow it.
25311 2016-01-12 H.J. Lu <hongjiu.lu@intel.com>
25315 * config/i386/iamcu.h (SIZE_TYPE): New macro.
25316 (PTRDIFF_TYPE): Likewise.
25317 (WCHAR_TYPE): Likewise.
25318 (WCHAR_TYPE_SIZE): Likewise.
25319 (STDINT_LONG32): Likewise.
25321 2016-01-12 Richard Biener <rguenther@suse.de>
25323 PR tree-optimization/69053
25324 * tree-vect-loop.c (get_initial_def_for_reduction): Properly
25325 convert initial value for cond reductions.
25327 2016-01-12 Richard Biener <rguenther@suse.de>
25329 PR tree-optimization/69007
25330 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
25331 widen_sum after dot_prod and sad.
25333 2016-01-12 Richard Biener <rguenther@suse.de>
25335 PR tree-optimization/69168
25336 * tree-vect-loop.c (vect_analyze_loop_2): Reset both main and
25337 pattern stmt SLP type.
25338 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may
25339 end up unused so cope with that case.
25341 2016-01-12 Richard Biener <rguenther@suse.de>
25343 PR tree-optimization/69157
25344 * tree-vect-stmts.c (vectorizable_mask_load_store): Check
25345 stmts def type only during analyze phase.
25346 (vectorizable_call): Likewise.
25347 (vectorizable_simd_clone_call): Likewise.
25348 (vectorizable_conversion): Likewise.
25349 (vectorizable_assignment): Likewise.
25350 (vectorizable_shift): Likewise.
25351 (vectorizable_operation): Likewise.
25352 (vectorizable_store): Likewise.
25353 (vectorizable_load): Likewise.
25355 2016-01-12 Richard Biener <rguenther@suse.de>
25357 PR tree-optimization/69174
25358 * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
25360 (vectorizable_load): Properly compute the number of loads needed
25361 for permuted strided SLP loads and do not spuriously assign
25362 to SLP_TREE_VEC_STMTS.
25364 2016-01-12 Andris Pavenis <andris.pavenis@iki.fi>
25366 * config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2
25367 (TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive
25368 (MD_EXEC_PREFIX): Remove.
25369 (MD_STARTFILE_PREFIX) Removee.
25370 (FILE_NAME_ABSOLUTE_P): Remove.
25371 (CPP_SPEC): Do not read macros from sys/version.h.
25372 (LINK_COMMAND_SPEC): Remove.
25373 (LOCAL_INCLUDE_DIR): Remove.
25374 (TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section
25375 (TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix.
25376 (POST_LINK_SPEC): Define to invoke stubify after linker
25377 (LIBSTDCXX): Remove define
25378 (DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map.
25379 (DEFAULT_PCC_STRUCT_RETURN): Define to 1.
25380 (SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210.
25381 (SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message.
25382 (SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info.
25383 (IX86_MAYBE_NO_LIBGCC_TFMODE): Remove.
25384 (i386_djgpp_asm_named_section): Add propotype of new procedure
25386 * config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define.
25387 (MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h).
25388 (STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX
25389 in config/i386/djgpp.h).
25390 (STANDARD_STARTFILE_PREFIX_2): Define identical to
25391 STANDARD_STARTFILE_PREFIX_1.
25392 (LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h).
25393 (GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal
25394 installation errors.
25395 (MAX_OFILE_ALIGNMENT): Define to 128.
25396 (HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h.
25398 * config/i386/djgpp.c: New file. Add implementation of
25399 i386_djgpp_asm_named_section.
25401 * config/i386/djgpp.opt: Remove obsolete option -mbnu210.
25403 * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
25404 Add rule for building djgpp.o.
25406 2016-01-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
25408 * config/rs6000/rs6000.c (v2df_reduction_p): New function.
25409 (rtx_is_swappable_p): Reductions are swappable.
25410 (insn_is_swappable_p): V2DF reductions are swappable.
25412 2016-01-11 John David Anglin <danglin@gcc.gnu.org>
25414 * config/pa/pa.c (pa_emit_move_sequence): Handle floating point
25415 reloads for other unsupported memory operands.
25417 2016-01-12 Kugan Vivekanandarajah <kuganv@linaro.org>
25418 Jim Wilson <jim.wilson@linaro.org>
25421 * config/arm/arm-builtins.c (arm_expand_neon_args): Call
25422 copy_to_mode_reg instead of force_reg.
25424 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
25427 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
25428 TARGET_80387 is true.
25430 2016-01-11 Jakub Jelinek <jakub@redhat.com>
25433 * lra-eliminations.c (move_plus_up): Only move plus up
25434 if subreg of the constant can be simplified into constant
25435 and use the simplified subreg of the constant instead of
25436 the original constant.
25438 * fold-const.c (fold_convertible_p): Don't return true
25439 for conversion of VECTOR_TYPE to same sized integral type.
25440 (fold_convert_loc): Fix up formatting. Fold conversion of
25441 VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR
25442 instead of NOP_EXPR.
25444 PR tree-optimization/69214
25445 * tree-vrp.c (simplify_cond_using_ranges): Don't propagate
25446 innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
25449 PR tree-optimization/69207
25450 * tree-vect-slp.c (vect_get_constant_vectors): For
25451 VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
25452 fold_convertible_p to vector_type's element type, and always
25453 use VCE for non-VECTOR_BOOLEAN_TYPE_P.
25455 2016-01-11 Richard Biener <rguenther@suse.de>
25457 PR tree-optimization/69173
25458 * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only
25459 fixup the cycle if all stmts are in a pattern.
25461 2016-01-11 Uros Bizjak <ubizjak@gmail.com>
25463 PR middle-end/68999
25464 * alias.c (base_alias_check): Move check for addresses with
25465 alignment ANDs before the call for compare_base_decls.
25466 (memrefs_conflict_p): Return -1 for different decls
25467 that went through alignment adjustments.
25469 2016-01-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25471 PR rtl-optimization/68796
25472 * config/aarch64/aarch64.md (*and<mode>_compare0): New pattern.
25473 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle HImode
25474 and QImode comparisons against zero with CC_NZmode.
25475 * config/aarch64/iterators.md (short_mask): New mode_attr.
25477 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
25479 * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
25480 (<avx512>_store<mode>_mask): Likewise.
25482 2016-01-11 Bernd Schmidt <bschmidt@redhat.com>
25483 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25485 PR rtl-optimization/68841
25486 * ifcvt.c (struct noce_if_info): Add orig_x field.
25487 (bbs_ok_for_cmove_arith): Add to_rename parameter.
25488 Don't record conflicts on to_rename if it's present.
25489 Allow memory destinations in sets.
25490 (noce_try_cmove_arith): Call bbs_ok_for_cmove_arith even on simple
25491 blocks, passing orig_x to the checks.
25492 (noce_process_if_block): Set if_info->orig_x appropriately.
25494 2016-01-11 Tom de Vries <tom@codesourcery.com>
25496 PR tree-optimization/69069
25497 * tree-parloops.c (create_parallel_loop): Add missing phi args.
25499 2016-01-11 Yuri Rumyantsev <ysrumyan@gmail.com>
25501 PR rtl-optimization/68920
25502 * config/i386/i386.c (ix86_option_override_internal): Restrict number
25503 of conditional moves for RTL if-conversion to 1 for
25504 TARGET_ONE_IF_CONV_INSN.
25505 * config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros.
25506 * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros.
25507 * params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new
25508 parameter to restirct number of conditional moves for
25510 * doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
25511 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
25514 2016-01-11 Alexandre Oliva <aoliva@redhat.com>
25517 * var-tracking.c (drop_overlapping_mem_locs): Operate on all
25518 onepart vars. Fix typo in comment. Fix reversed condition in
25520 (dataflow_set_remove_mem_locs): Operate on all onepart vars.
25523 * var-tracking.c (dump_onepart_variable_differences): New.
25524 (dataflow_set_different): If a detailed dump is requested,
25525 delay early returns and dump differences between onepart
25526 variables present before and after, and added variables.
25528 2016-01-11 Ilya Enkovich <enkovich.gnu@gmail.com>
25531 * expr.c (expand_expr_real_1): For boolean vector constants
25532 with a scalar mode use const_scalar_mask_from_tree.
25533 (const_scalar_mask_from_tree): New.
25534 * optabs.c (expand_vec_cond_mask_expr): Use mask mode
25535 assigned to a mask type to handle constants.
25537 2016-01-11 Martin Jambor <mjambor@suse.cz>
25540 * ipa-cp.c (estimate_local_effects): Do not clone for removal of
25541 useless parameters if we cannot change function signature.
25543 2016-01-11 Martin Jambor <mjambor@suse.cz>
25546 * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
25549 2016-01-11 Tom de Vries <tom@codesourcery.com>
25551 PR tree-optimization/69109
25552 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
25555 2016-01-11 Tom de Vries <tom@codesourcery.com>
25557 PR tree-optimization/69108
25558 * tree-parloops.c (gather_scalar_reductions): Handle case that outer phi
25559 res is not used in a phi.
25561 2016-01-11 Yury Gribov <y.gribov@samsung.com>
25564 * common.opt (frandom-seed): Fix parameter name.
25565 * doc/invoke.texi (frandom-seed): Ditto and describe parameter.
25567 2016-01-11 Tom de Vries <tom@codesourcery.com>
25569 PR tree-optimization/69058
25570 * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
25573 2016-01-11 Andrew Burgess <andrew.burgess@embecosm.com>
25575 * config/arc/arc.opt (mdiv-rem): Add period to the end.
25576 (mcode-density): Likewise.
25578 2016-01-10 Tom de Vries <tom@codesourcery.com>
25580 PR tree-optimization/69062
25581 * tree-parloops.c (loop_has_phi_with_address_arg): New function.
25582 (parallelize_loops): Don't paralelize loop that has phi with address
25585 2016-01-10 Tom de Vries <tom@codesourcery.com>
25587 PR tree-optimization/69039
25588 * tree-parloops.c (try_create_reduction_list): Only allow single exit
25591 2016-01-09 John David Anglin <danglin@gcc.gnu.org>
25593 PR middle-end/68743
25594 * match.pd: Require target has function_c99_misc before doing
25595 truncl(extend(x)) and trunc(extend(x)) -> extend(truncf(x)), etc.
25597 2016-01-09 Gerald Pfeifer <gerald@pfeifer.com>
25599 * configure.ac (isl_options_set_schedule_serialize_sccs): Also
25601 * configure: Regenerate.
25603 2016-01-09 Jakub Jelinek <jakub@redhat.com>
25605 PR middle-end/50865
25606 PR tree-optimization/69097
25607 * fold-const.h (expr_not_equal_to): New prototype.
25608 * fold-const.c: Include stringpool.h and tree-ssanames.h.
25609 (expr_not_equal_to): New function.
25610 * match.pd (X % -Y is the same as X % Y): Don't optimize
25611 unless X is known not to be equal to minimum or Y is known
25612 not to be equal to -1.
25613 * tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument.
25614 fold TRUNC_MOD_EXPR if the second argument is not a power of two.
25615 (simplify_stmt_using_ranges): Adjust caller.
25616 (vrp_finalize): Call set_value_range on SSA_NAMEs before calling
25617 substitute_and_fold.
25619 2016-01-09 Jan Hubicka <hubicka@ucw.cz>
25621 * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
25624 2016-01-08 Jakub Jelinek <jakub@redhat.com>
25626 PR tree-optimization/69167
25627 * gimple-fold.c (replace_stmt_with_simplification): Also punt if
25628 new SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs appear in operands of
25630 * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
25632 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
25633 Richard Biener <rguenther@suse.de>
25635 PR tree-optimization/68707
25636 * tree-vect-slp.c (vect_analyze_slp_instance): Cancel permuted SLP
25637 instances that can be handled via vect_load_lanes.
25639 2016-01-08 Uros Bizjak <ubizjak@gmail.com>
25641 * symtab.c (symtab_node::equal_address_to): Return -1 instead of 2
25642 if we can't determine address equivalence.
25643 * alias.c (compare_base_decl): Update for changed return value of
25644 symtab_node::equal_address_to.
25646 2016-01-08 Jason Merrill <jason@redhat.com>
25650 * function.c (assign_temp): Guard against TREE_ADDRESSABLE types here.
25651 * expr.c (store_field): Not here.
25652 * tree-cfgcleanup.c (fixup_noreturn_call): Don't clear LHS of a
25653 call with TREE_ADDRESSABLE type.
25654 * tree-cfg.c (verify_gimple_call): Adjust.
25656 2016-01-08 Olivier Hainque <hainque@adacore.com>
25658 * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
25661 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
25663 * gcc.target/rs6000/paired.md (reduc_smax_v2sf): Rename to...
25664 (reduc_smax_scal_v2sf): ...here, make result SFmode, extract element.
25665 (reduc_smin_v2sf): Rename to...
25666 (reduc_smin_scal_v2sf): ...here, make result SFmode, extract element.
25667 (reduc_splus_v2sf): Rename to...
25668 (reduc_plus_scal_v2sf): ...here, make result SFmode, extract element.
25670 2016-01-08 Jakub Jelinek <jakub@redhat.com>
25672 PR tree-optimization/69162
25673 * gimplify.c (gimplify_va_arg_expr): Encode original type of
25674 valist argument in another argument.
25675 (gimplify_modify_expr): Adjust for the above change. Cleanup.
25676 * tree-stdarg.c (expand_ifn_va_arg_1): Use new 3rd argument
25677 to determine the va_list type, build a MEM_REF instead of
25678 build_fold_indirect_ref.
25680 PR tree-optimization/69172
25681 * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
25684 2016-01-08 Thomas Preud'homme <thomas.preudhomme@arm.com>
25686 PR tree-optimization/67781
25687 * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
25688 and cmpnop in two steps: first the ones not accessed in original
25689 gimple expression in a endian independent way and then the ones not
25690 accessed in the final result in an endian-specific way.
25692 2016-01-08 Jakub Jelinek <jakub@redhat.com>
25694 PR tree-optimization/69083
25695 * tree-vect-slp.c (vect_get_constant_vectors): For
25696 VECTOR_BOOLEAN_TYPE_P assert op is fold_convertible_p to vector_type's
25697 element type. If op is fold_convertible_p to vector_type's element
25698 type, use NOP_EXPR instead of VCE.
25700 2016-01-08 Segher Boessenkool <segher@kernel.crashing.org>
25702 PR rtl-optimization/67778
25703 PR rtl-optimization/68634
25704 PR rtl-optimization/68909
25705 * shrink-wrap.c (try_shrink_wrapping): Add comment. Don't pop
25706 block from the stack until done with it. Remove a superfluous
25707 bitmap set. Remove a superfluous bitmap test.
25709 2016-01-07 Martin Sebor <msebor@redhat.com>
25712 * doc/extend.texi (__atomic Builtins, __sync Builtins): Document
25713 constraint on the type of arguments.
25715 2016-01-07 Andreas Tobler <andreast@gcc.gnu.org>
25717 * config/arm/freebsd.h: Rename SUBTARGET_OVERRIDE_OPTIONS to
25718 SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. Adjust to check
25719 unaligned_access on the gcc_options set.
25720 * config/arm/arm.c (arm_option_override_internal): Use
25721 SUBTARGET_OVERRIDE_INTERNAL_OPTIONS.
25723 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
25726 * config/i386/i386.c (ix86_frame_pointer_required): Enable
25727 frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
25729 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
25732 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
25735 * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
25736 depending on frame_pointer_needed before remaining integer and SSE
25737 registers are saved.
25739 2016-01-07 Sandra Loosemore <sandra@codesourcery.com>
25742 * doc/extend.texi (Nvidia PDX Function Attributes): New section.
25744 2016-01-07 H.J. Lu <hongjiu.lu@intel.com>
25747 * config/i386/sse.md (<sse>_sqrt<mode>2<mask_name><round_name>):
25748 Use the "xBm" constraint.
25749 (float<sseintvecmodelower><mode>2<mask_name><round_name):
25751 (sse_cvtsi2ss<round_name>): Use round_nimm_scalar_predicate.
25752 (sse_cvtsi2ssq<round_name>): Likewise.
25753 (sse_cvtss2si<round_name>): Likewise.
25754 (sse_cvtss2siq<round_name>): Likewise.
25755 (sse2_cvtsi2sdq<round_name>): Likewise.
25756 (sse2_cvtsd2si<round_name>): Likewise.
25757 (sse2_cvtsd2siq<round_name>): Likewise.
25758 * config/i386/subst.md (round_nimm_scalar_predicate): New
25761 2015-12-15 Bernd Schmidt <bschmidt@redhat.com>
25763 PR middle-end/67639
25764 * varasm.c (make_decl_rtl): Mark invalid register vars as
25767 PR rtl-optimization/66206
25768 * bt-load.c (find_btr_use): Change first arg to be a pointer to an rtx.
25769 All callers changed.
25771 2016-01-07 Jakub Jelinek <jakub@redhat.com>
25773 PR tree-optimization/69141
25774 * tree-ssa-pre.c: Include langhooks.h.
25775 (eliminate_dom_walker::before_dom_children): Use
25776 lang_hooks.decl_printable_name instead of
25777 cgraph_node::get ()->name ().
25779 PR middle-end/68960
25780 * gimple-expr.c (copy_var_decl): If var has DECL_USER_ALIGN set, copy
25781 it and DECL_ALIGN too.
25783 2016-01-06 Robert Suchanek <robert.suchanek@imgtec.com>
25785 * config/mips/mips-ftypes.def: Sort to lexicographical order.
25787 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
25790 * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
25791 depending on frame_pointer_needed before remaining integer and SSE
25792 registers are saved.
25794 2015-01-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
25796 * config/rs6000/vsx.md (*p9_vecload_<mode>): Replace VSX_M
25797 mode iterator with VSX_M2.
25798 (*p9_vecstore_<mode>): Likewise.
25799 (*vsx_le_permute_<mode>): Restrict to !TARGET_P9_VECTOR.
25800 (*vsx_le_perm_load_<mode> for VSX_LE_128): Likewise.
25801 (*vsx_le_perm_store_<mode> for VSX_LE_128): Likewise.
25802 (define_split for VSX_LE128 stores): Likewise.
25803 (define_peephole2 for TImode LE swaps): Likewise.
25804 (define_split for VSX_LE128 post-reload stores): Likewise.
25806 2016-01-06 Marek Polacek <polacek@redhat.com>
25809 * convert.c (convert_to_integer_1): Adjust call to
25810 ubsan_instrument_float_cast. Use NULL_TREE instead of NULL.
25811 * ubsan.c (ubsan_instrument_float_cast): Drop the ARG parameter. Use
25812 EXPR instead of ARG.
25813 * ubsan.h (ubsan_instrument_float_cast): Adjust declaration.
25815 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
25818 * doc/extend.texi (RL78 Variable Attributes): New section.
25820 2016-01-05 Marek Polacek <polacek@redhat.com>
25823 * builtins.c (get_memmodel): Use expansion point location rather than
25824 the input location. Call warning_at rather than warning.
25825 (expand_builtin_atomic_compare_exchange): Likewise.
25826 (expand_builtin_atomic_load): Likewise.
25827 (expand_builtin_atomic_store): Likewise.
25828 (expand_builtin_atomic_clear): Likewise.
25830 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
25833 * config/i386/i386.c (ix86_expand_vector_logical_operator):
25834 Replace nonimmediate_operand with vector_operand.
25835 * config/i386/predicates.md (vector_operand): New predicate.
25836 (general_vector_operand): Replace nonimmediate_operand with
25838 * config/i386/sse.md: Replace nonimmediate_operand with
25839 vector_operand and m constraint with Bm constraint on SSE
25840 patterns with 16-byte memory operand.
25841 * config/i386/subst.md (round_nimm_predicate): Replace
25842 nonimmediate_operand with vector_operand.
25843 (round_saeonly_nimm_predicate): Likewise.
25844 (round_saeonly_nimm_scalar_predicate): New.
25846 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
25849 * config/i386/constraints.md (Bm): New constraint.
25850 * config/i386/predicates.md (vector_memory_operand): New
25852 * config/i386/sse.md: Replace xm with xBm in plusminus and
25853 any_logic patterns.
25855 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
25858 * doc/extend.texi (V850 Function Attributes): New section.
25859 (V850 Variable Attributes): New section.
25861 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
25864 * doc/extend.texi (MicroBlaze Function Attributes): Document
25865 interrupt_handler and fast_interrupt attributes.
25867 2016-01-05 Sergei Trofimovich <siarheit@google.com>
25870 * config/ia64/ia64.c (ia64_expand_load_address): Use gprel64
25871 for local symbolic operands.
25872 * config/ia64/predicates.md (local_symbolic_operand64): New
25875 2016-01-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25877 PR rtl-optimization/68651
25878 * combine.c (combine_simplify_rtx): Canonicalize x + x into
25881 2016-01-05 Nathan Sidwell <nathan@acm.org>
25883 * alias.c (compare_base_decls): Use symtab_node::get.
25885 2016-01-05 Nick Clifton <nickc@redhat.com>
25888 * ira-costs.c (copy_cost): Initialise the t_icode field of the
25889 secondary_reload_info structure.
25892 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
25893 decls if weak support is available.
25895 2016-01-04 Martin Sebor <msebor@redhat.com>
25897 * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.
25899 2016-01-04 Michael Meissner <meissner@linux.vnet.ibm.com>
25901 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
25902 OPTION_MASK_P9_DFORM.
25904 * config/rs6000/constraints.md (wo constraint): New constraint for
25907 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
25909 (rs6000_init_hard_regno_mode_ok): Likewise.
25911 * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
25914 * config/rs6000/altivec.md (altivec_vperm_<mode>): Clean up vperm
25915 expanders not to have constraints. Add support for ISA 3.0 xxperm
25916 instruction. Add support for fusing xxlor with xxperm.
25917 (altivec_vperm_<mode>_internal): Likewise.
25918 (altivec_vperm_v8hiv16qi): Likewise.
25919 (altivec_vperm_<mode>v16q): Likewise.
25920 (altivec_vperm_<mode>_uns): Likewise.
25921 (vperm_v8hiv4si): Likewise.
25922 (vperm_v16qiv8hi): Likewise.
25924 * doc/md.texi (RS/6000 constraints): Document wo constraint.
25926 2016-01-04 Jakub Jelinek <jakub@redhat.com>
25928 Update copyright years.
25930 * gcc.c (process_command): Update copyright notice dates.
25931 * gcov-dump.c (print_version): Ditto.
25932 * gcov.c (print_version): Ditto.
25933 * gcov-tool.c (print_version): Ditto.
25934 * gengtype.c (create_file): Ditto.
25935 * doc/cpp.texi: Bump @copying's copyright year.
25936 * doc/cppinternals.texi: Ditto.
25937 * doc/gcc.texi: Ditto.
25938 * doc/gccint.texi: Ditto.
25939 * doc/gcov.texi: Ditto.
25940 * doc/install.texi: Ditto.
25941 * doc/invoke.texi: Ditto.
25943 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
25945 * config/arm/arm.c (aapcs_vfp_allocate_return_reg): Treat all integer
25946 modes larger than TImode as TImode if NEON is not enabled.
25948 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
25951 * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
25952 mode for %f0-%f31 only if TARGET_FPU.
25954 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
25957 * config/sparc/sparc.c (scan_record_type): Take into account subfields
25958 to compute the PACKED_P predicate.
25959 (function_arg_record_value): Minor tweaks.
25961 2016-01-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
25963 * doc/install.texi (--with-multilib-list): Describe the meaning of the
25964 option for arm*-*-* targets.
25966 2016-01-03 Sandra Loosemore <sandra@codesourcery.com>
25968 * doc/extend.texi (Common Function Attributes): Move docs for
25969 MSP430-specific attributes to....
25970 (MSP430 Function Attributes): ...here. Delete the redundant
25971 entries and copy-edit the remaining text.
25972 (MSP430 Variable Attributes): Use uniform format for index
25973 entries and add a cross-reference to the corresponding function
25976 2016-01-03 Vladimír Čunát <vcunat@gmail.com>
25978 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix
25980 (x86 Options): Likewise.
25982 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
25986 * extend.texi (Common Function Attributes) <no_stack_limit>: New.
25987 * invoke.texi (Code Gen Options) <-fno-stack-limit>: Add pointer
25988 to corresponding attribute.
25990 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
25992 * doc/extend.texi (Common Function Attributes) <noplt>: Move
25993 to correct alphabetization of table. Copy-edit and correct
25995 <stack_protect>: Likewise.
25996 <target_clones>: Likewise.
25998 * doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>:
25999 Correct punctuation.
26000 (Code Gen Options) <-fno-plt>: Copy-edit.
26002 2016-01-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
26005 * config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of
26006 SI values. Explicitly convert SI to DI and vice-versa.
26008 2016-01-01 Jakub Jelinek <jakub@redhat.com>
26010 PR tree-optimization/69070
26011 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Only test
26012 REAL_VALUE_ISSIGNALING_NAN on arg0 if arg0 is a REAL_CST.
26015 * ubsan.c (ubsan_instrument_float_cast): Call
26016 initialize_sanitizer_builtins.
26019 * ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).
26021 Copyright (C) 2016 Free Software Foundation, Inc.
26023 Copying and distribution of this file, with or without modification,
26024 are permitted in any medium without royalty provided the copyright
26025 notice and this notice are preserved.