re PR tree-optimization/77937 (ICE: in replace_one_candidate, at gimple-ssa-strength...
[gcc.git] / gcc / ChangeLog
1 2016-10-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2
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.
7
8 2016-10-12 Eric Botcazou <ebotcazou@adacore.com>
9
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.
13
14 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
15
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.
36
37 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
38
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.
46 (SW): New function.
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.
57
58 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
59
60 * regrename.c (build_def_use): Invalidate chains that have a
61 REG_CFA_RESTORE on some instruction.
62
63 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
64
65 * dce.c (delete_unmarked_insns): Don't delete instructions with
66 a REG_CFA_RESTORE note.
67
68 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
69
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.
79
80 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
81
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.
85
86 2016-10-12 David Malcolm <dmalcolm@redhat.com>
87
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.
98
99 2016-10-12 David Malcolm <dmalcolm@redhat.com>
100
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.
105
106 2016-10-12 Richard Biener <rguenther@suse.de>
107
108 PR debug/77947
109 * cgraphunit.c (analyze_functions): Preserve cgraph nodes
110 function context.
111
112 2016-10-12 Thomas Schwinge <thomas@codesourcery.com>
113
114 * lto-streamer.c: Fix LTO_STREAMER_DEBUG build.
115
116 * dwarf2out.c (dwarf2_lineno_debug_hooks): Use
117 dwarf2out_assembly_start.
118
119 * Makefile.in (SELFTEST_FLAGS): Add -nostdinc.
120
121 * Makefile.in (SELFTEST_FLAGS): New variable.
122 (s-selftest, selftest-gdb, selftest-valgrind): Use it.
123
124 * vmsdbgout.c (vmsdbg_debug_hooks): Add filename parameter to
125 early_finish hook.
126
127 2016-10-12 Georg-Johann Lay <avr@gjlay.de>
128
129 * rtl.h (struct rtx_def): Comment how RTX_FLAGS will be
130 dumped in RTL dumps.
131
132 2016-10-12 Martin Liska <mliska@suse.cz>
133
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.
139
140 2016-10-12 Nathan Sidwell <nathan@acm.org>
141
142 * diagnostic.c (diagnostc_report_diagnostic): Fix formatting.
143
144 2016-10-12 Pierre-Marie de Rodat <derodat@adacore.com>
145
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.
150
151 2016-10-12 Pierre-Marie de Rodat <derodat@adacore.com>
152
153 * dwarf2out.c (dwarf2out_early_global_decl): For nested
154 functions, call dwarf2out_decl on the parent function first.
155
156 2016-10-12 Richard Biener <rguenther@suse.de>
157
158 * match.pd ((X /[ex] A) * A -> X): Remove unnecessary constraint
159 on the conversion.
160
161 2016-10-12 Richard Biener <rguenther@suse.de>
162
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.
169
170 2016-10-12 Richard Biener <rguenther@suse.de>
171
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.
178
179 2016-10-12 Jakub Jelinek <jakub@redhat.com>
180
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.
184
185 2016-10-12 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
186
187 PR target/77934
188 * config/rs6000/vmx.md (vsx_concat_<mode>): The mtvsrdd instruction
189 needs a base register for arg 1.
190
191 2016-10-12 Jakub Jelinek <jakub@redhat.com>
192
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.
201
202 2016-10-11 Eric Botcazou <ebotcazou@adacore.com>
203
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.
228
229 2016-10-11 Jeff Law <law@redhat.com>
230
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.
234
235 2016-10-11 David Malcolm <dmalcolm@redhat.com>
236
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.
246
247 2016-10-11 Uros Bizjak <ubizjak@gmail.com>
248
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
255 passes here.
256 * config.gcc (alpha*-*-*) Add alpha/t-alpha to tmake_file.
257
258 2016-10-11 Michael Meissner <meissner@linux.vnet.ibm.com>
259
260 PR target/77924
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.
264
265 2016-10-11 Richard Biener <rguenther@suse.de>
266
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.
273
274 2016-10-11 Richard Biener <rguenther@suse.de>
275
276 PR debug/77931
277 * gimple-low.c (lower_gimple_bind): Handle arbitrary common
278 sub-chains of BLOCK_VARS and gimple_bind_vars.
279
280 2016-10-11 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
281
282 * config/i386/znver1.md : Fix imov/imovx load type reservations.
283
284 2016-10-11 Eric Botcazou <ebotcazou@adacore.com>
285
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...
291 (CCNZ): ...this.
292 (CCX_NOOV): Rename into...
293 (CCXNZ): ...this.
294 (CCC): New.
295 (CCXC): Likewise.
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
312 for Niagara-7.
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.
380
381 2016-10-11 Eric Botcazou <ebotcazou@adacore.com>
382
383 * config/visium/visium-modes.def (CC_NOOV): Rename into...
384 (CCNZ): ...this.
385 (CC_BTST): Rename into...
386 (CCC): ...this.
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.
403 (btst): Adjust.
404 (cmp<mode>_sne): Likewise.
405 (cbranch<mode>4): Use ordered_comparison_operator.
406 (cbranch<mode>4_insn): Likewise.
407 (cbranchsi4_btst_insn): Adjust.
408
409 2016-10-11 Tom de Vries <tom@codesourcery.com>
410
411 PR middle-end/77558
412 * builtins.c (std_canonical_va_list_type): Remove RECORD_TYPE
413 special-casing.
414
415 2016-10-11 Eric Botcazou <ebotcazou@adacore.com>
416
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.
421
422 2016-10-11 Georg-Johann Lay <avr@gjlay.de>
423
424 New avr-passes.def to register AVR specific passes.
425
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.
434
435 2016-10-11 Robert Suchanek <robert.suchanek@imgtec.com>
436
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
441 flags.
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.
448
449 2016-10-11 Richard Biener <rguenther@suse.de>
450
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.
454
455 2016-10-11 Marek Polacek <polacek@redhat.com>
456
457 * Makefile.in (C_COMMON_OBJS): Add c-family/c-warn.o.
458
459 2016-10-11 Kugan Vivekanandarajah <kuganv@linaro.org>
460
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.
464
465 2016-10-10 Joseph Myers <joseph@codesourcery.com>
466
467 PR target/77586
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.
474
475 2016-10-11 Kugan Vivekanandarajah <kuganv@linaro.org>
476
477 * tree-vrp.c (vrp_intersect_ranges_1): Allocate bitmap before
478 copying.
479
480 2016-10-10 Andreas Tobler <andreast@gcc.gnu.org>
481
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.
486
487 2016-10-10 Jeff Law <law@redhat.com>
488
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.
492
493 2016-10-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
494
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.
502
503 2016-10-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
504
505 * config/s390/s390.h: Wrap more macros args in brackets and fix
506
507 2016-10-10 Georg-Johann Lay <avr@gjlay.de>
508
509 * config/avr/gen-avr-mmcu-texi.c (string.h): Include.
510
511 2016-10-10 Andreas Schwab <schwab@suse.de>
512
513 PR target/77738
514 * config/ia64/ia64.md ("doloop_end"): Reject if mode of loop
515 pseudo is not DImode.
516
517 2016-10-10 Claudiu Zissulescu <claziss@synopsys.com>
518
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.
524
525 2016-10-09 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
526
527 * config/rs6000/rs6000.h (TARGET_EFFICIENT_OVERLAPPING_UNALIGNED):
528 Add macro to say we can efficiently handle overlapping unaligned
529 loads.
530 * config/rs6000/rs6000.c (expand_block_compare): Avoid generating
531 poor code for processors older than p8.
532
533 2016-10-09 Eric Botcazou <ebotcazou@adacore.com>
534
535 * gen-pass-instances.awk: Remove GNUism.
536
537 2016-10-09 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
538
539 * ipa-prop.c (ipcp_transform_function): Set fields m_vr and bits to
540 NULL of (*ipcp_transformations)][node->uid].
541
542 2016-10-09 John David Anglin <danglin@gcc.gnu.org>
543
544 * config/pa/pa.h (BIGGEST_ALIGNMENT): Adjust comment.
545 (MALLOC_ABI_ALIGNMENT): Define.
546
547 2016-10-09 Jakub Jelinek <jakub@redhat.com>
548
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):
559 Likewise.
560 * gimple-fold.c (can_refer_decl_in_current_unit_p,
561 canonicalize_constructor_val, gimple_get_virt_method_for_vtable):
562 Likewise.
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):
593 Likewise.
594 * ipa-split.c (test_nonssa_use, consider_split, mark_nonssa_use):
595 Likewise.
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):
602 Likewise.
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):
611 Likewise.
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):
627 Likewise.
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):
638 Likewise.
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):
646 Likewise.
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):
674 Likewise.
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.
694
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
699 comparison.
700
701 2016-10-09 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
702
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
724 propagation summary.
725 (read_ipcp_transformation_info): Remove reading of alignment
726 propagation summary.
727 (ipcp_update_alignments): Remove.
728 (ipcp_update_bits): Adjust to set alignment for parameters of pointer
729 type.
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.
738
739 2016-10-08 Eric Botcazou <ebotcazou@adacore.com>
740
741 * config/sparc/sparc.h (FIXED_REGISTERS): Add %icc.
742
743 * config/visium/visium.c (visium_expand_int_cstore): Revert latest
744 change.
745 (visium_expand_fp_cstore): Likewise.
746
747 2016-10-08 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
748
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.
754
755 2016-10-08 Jakub Jelinek <jakub@redhat.com>
756
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
765 false.
766 (pass_stv::gate): Depending on timode_p member require TARGET_64BIT
767 or !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.
771
772 * doc/invoke.texi: Document accepting Else, fallthrough.
773
774 * doc/invoke.texi (-Wimplicit-fallthrough): Document FALLTHRU comment
775 style changes.
776
777 * doc/invoke.texi (-Wimplicit-fallthrough): Document the accepted
778 FALLTHRU comment styles.
779
780 2016-10-07 Andrew Pinski <apinski@cavium.com>
781
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):
785 Likewise.
786 * config/aarch64/aarch64-option-extensions.def (AARCH64_OPT_EXTENSION):
787 Likewise.
788 * config/aarch64/aarch64-tuning-flags.def (AARCH64_EXTRA_TUNING_OPTION):
789 Likewise.
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):
793 Likewise.
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.
806
807 2016-10-06 Michael Meissner <meissner@linux.vnet.ibm.com>
808
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
828 keyword.
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
845 on VSX systems.
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.
880
881 2016-10-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
882
883 * simplify-rtx.c (simplify_immed_subreg): Zero-initialize tmp array
884 before merging in bytes to pass down to real_from_target.
885
886 2016-10-07 Richard Biener <rguenther@suse.de>
887
888 * tree-ssa-propagate.c (replace_phi_args_in): Remove no longer
889 required hack.
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
895 ccp_fold_stmt.
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.
905
906 2016-10-07 Marek Polacek <polacek@redhat.com>
907
908 * gimplify.c (should_warn_for_implicit_fallthrough): Check for
909 FALLTHROUGH_LABEL_P here...
910 (warn_implicit_fallthrough_r): ...not here.
911
912 2016-10-07 Bernd Schmidt <bschmidt@redhat.com>
913
914 PR tree-optimization/77880
915 * expr.c (by_pieces_ninsns): Use unsigned HOST_WIDE_INT where
916 necessary.
917
918 2016-10-07 Marek Polacek <polacek@redhat.com>
919
920 PR c++/77803
921 * gimplify.c (last_stmt_in_scope): Add check for FALLTHROUGH ().
922
923 2016-10-07 Richard Biener <rguenther@suse.de>
924
925 * bitmap.h: Document constraints on bitmap modification while
926 iterating over it.
927
928 2016-10-07 Richard Biener <rguenther@suse.de>
929
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.
939
940 2016-10-07 Jakub Jelinek <jakub@redhat.com>
941
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.
948
949 2016-10-07 Martin Liska <mliska@suse.cz>
950
951 * coverage.c (build_gcov_exit_decl): Fix priority what
952 should be really 99.
953
954 2016-10-07 Richard Biener <rguenther@suse.de>
955
956 * gimple-low.c (lower_gimple_bind): Clear DECL_CHAIN of
957 vars in gimple_bind_vars but not in BLOCK_VARS.
958
959 2016-10-07 Richard Biener <rguenther@suse.de>
960
961 PR tree-optimization/77879
962 * tree-ssa-structalias.c (handle_const_call): Properly handle
963 NRV return slots.
964 (handle_pure_call): Likewise.
965
966 2016-10-06 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
967
968 * config/rs6000/rs6000.c (rs6000_elf_asm_out_constructor)
969 (rs6000_elf_asm_out_destructor): increase size of buf to avoid
970 possible overflow.
971
972 2016-10-06 Andrew Pinski <apinski@cavium.com>
973
974 * config/aarch64/aarch64-cores.def: Add a comment before each
975 set of cores.
976
977 2016-10-06 Kugan Vivekanandarajah <kuganv@linaro.org>
978
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.
982
983 2016-10-06 Kugan Vivekanandarajah <kuganv@linaro.org>
984
985 * tree-vrp.c (evrp_dom_walker::before_dom_children): Handle
986 POINTER_TYPE_P.
987
988 2016-10-05 Jeff Law <law@redhat.com>
989
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.
993
994 2016-10-06 Uros Bizjak <ubizjak@gmail.com>
995
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.
1000
1001 2016-10-06 Jan Hubicka <hubicka@ucw.cz>
1002
1003 * postreload.c (reload_cse_simplify): Skip also USE when detecting
1004 noop move.
1005
1006 2016-10-06 Richard Biener <rguenther@suse.de>
1007
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
1011 which is not safe.
1012
1013 2016-10-06 James Clarke <jrtc27@jrtc27.com>
1014 Eric Botcazou <ebotcazou@adacore.com>
1015
1016 PR target/77759
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.
1020
1021 2016-10-06 Richard Biener <rguenther@suse.de>
1022
1023 PR tree-optimization/77839
1024 * tree-ssa-sccvn.c (set_ssa_val_to): Forbid value -> constant value
1025 lattice transition.
1026
1027 2016-10-06 Martin Liska <mliska@suse.cz>
1028
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
1032 profiling code.
1033
1034 2016-10-06 Martin Liska <mliska@suse.cz>
1035
1036 PR bootstrap/77788
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.
1043
1044 2016-10-05 Andrew Senkevich <andrew.senkevich@intel.com>
1045
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
1053 detection.
1054 * config/i386/i386-c.c (ix86_target_macros_internal): Deleted define
1055 __PCOMMIT__.
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.
1067
1068 2016-10-05 Uros Bizjak <ubizjak@gmail.com>
1069
1070 PR target/77874
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.
1075
1076 2016-10-05 Jakub Jelinek <jakub@redhat.com>
1077
1078 PR sanitizer/66343
1079 * ubsan.c (ubsan_create_data): Call initialize_sanitizer_builtins here.
1080 (ubsan_instrument_float_cast): And not here.
1081
1082 PR sanitizer/66343
1083 * ubsan.c (ubsan_ids): New GTY(()) array.
1084 (ubsan_type_descriptor, ubsan_create_data): Use ubsan_ids
1085 instead of static local counters.
1086
1087 2016-10-05 Martin Sebor <msebor@redhat.com>
1088
1089 PR bootstrap/77819
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.
1097
1098 2016-10-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1099
1100 * fold-const.c (native_encode_real): Fix logic for selecting offset
1101 to write to when BYTES_BIG_ENDIAN.
1102
1103 2016-10-05 Wilco Dijkstra <wdijkstr@arm.com>
1104
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.
1111
1112 2016-10-05 Richard Biener <rguenther@suse.de>
1113
1114 PR middle-end/77863
1115 * genmatch.c (capture_info::walk_c_expr): Diagnose unknown
1116 capture ids in c-exprs.
1117
1118 2016-10-05 Richard Biener <rguenther@suse.de>
1119
1120 PR middle-end/77826
1121 * genmatch.c (dt_operand::gen_match_op): Amend operand_equal_p
1122 with types_match for GIMPLE code gen to handle type mismatched
1123 constants properly.
1124 (dt_operand::gen): Adjust.
1125 * match.pd ((X /[ex] A) * A -> X): Properly handle converted
1126 and constant A.
1127
1128 2016-10-05 Richard Biener <rguenther@suse.de>
1129
1130 * match.pd (copysign(x, CST) -> [-]abs (x)): New pattern.
1131
1132 2016-10-05 Richard Biener <rguenther@suse.de>
1133
1134 PR middle-end/77842
1135 * genmatch.c (parser::parse_c_expr): Handle premature EOF.
1136
1137 2016-10-05 Pierre-Marie de Rodat <derodat@adacore.com>
1138
1139 * dwarf2out.c (dwarf2out_imported_module_or_decl): Move DWARF
1140 version check to protect only DW_TAG_imported_module generation.
1141
1142 2016-10-05 Richard Biener <rguenther@suse.de>
1143
1144 PR middle-end/55152
1145 * match.pd (min(a,-a) -> -abs(a)): New pattern.
1146
1147 2016-10-04 Ian Lance Taylor <iant@golang.org>
1148
1149 * explow.c (allocate_dynamic_stack_space): Call
1150 do_pending_stack_adjust before handling flag_split_stack.
1151
1152 2016-10-04 David Malcolm <dmalcolm@redhat.com>
1153
1154 * genattrtab.c (make_internal_attr): Supply dummy column number to
1155 file_location ctor.
1156 (main): Likewise.
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
1167 file_location ctor.
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.
1173
1174 2016-10-04 Jakub Jelinek <jakub@redhat.com>
1175
1176 * doc/extend.texi (Java Exceptions): Remove.
1177 (java_interface): Remove.
1178
1179 2016-10-04 Doug Gilmore <doug.gilmore@imgtec.com>
1180
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.
1184
1185 2016-10-04 Uros Bizjak <ubizjak@gmail.com>
1186
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.
1191
1192 2016-10-04 Richard Biener <rguenther@suse.de>
1193
1194 PR tree-optimization/77399
1195 * tree-ssa-forwprop.c (simplify_vector_constructor): Properly
1196 verify the target can convert.
1197
1198 2016-10-04 Richard Biener <rguenther@suse.de>
1199
1200 PR middle-end/77833
1201 * explow.c (plus_constant): Verify the mode of the constant
1202 pool offset before calling plus_constant.
1203
1204 2016-10-04 Richard Biener <rguenther@suse.de>
1205
1206 PR middle-end/77407
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.
1210
1211 2016-10-04 Jakub Jelinek <jakub@redhat.com>
1212
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.
1226
1227 2016-10-03 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1228
1229 * ipa-cp.c (propagate_bits_accross_jump_function): Introduce space
1230 between "because" and "param" in dump message in call to fprintf.
1231
1232 2016-10-03 Jeff Law <law@redhat.com>
1233
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.
1243
1244 2016-10-03 Uros Bizjak <ubizjak@gmail.com>
1245
1246 * configure.ac (strict_warn): Merge -Wmissing-format-attribute and
1247 -Woverloaded-virtual checks for warning options.
1248 * configure: Regenerate.
1249
1250 2016-10-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
1251
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.
1259
1260 2016-10-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1261
1262 Revert
1263 2016-09-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1264
1265 * ifcvt.c (noce_try_avoid_const_materialization): New function.
1266 (noce_process_if_block): Use it.
1267
1268 2016-10-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
1269
1270 * doc/invoke.texi: Update -Wint-in-bool-context.
1271
1272 2016-10-02 Jakub Jelinek <jakub@redhat.com>
1273
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.
1279
1280 2016-10-01 Richard Biener <rguenther@suse.de>
1281
1282 PR middle-end/77798
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.
1287
1288 2016-10-01 Jakub Jelinek <jakub@redhat.com>
1289
1290 * config/i386/sse.md (<mask_codefor><code><mode>): Add FALLTHRU
1291 comments. Simplify asserts, remove unnecessary conditions.
1292 Formatting fixes.
1293 (*<code><mode>3): Likewise.
1294
1295 2016-09-30 Jakub Jelinek <jakub@redhat.com>
1296
1297 * doc/invoke.texi (-Wregister): Document.
1298
1299 2016-09-30 Bernd Edlinger <bernd.edlinger@hotmail.de>
1300
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.
1306
1307 2016-09-30 Prasad Ghangal <prasad.ghangal@gmail.com>
1308
1309 PR other/31566
1310 * gcc.c (process_command): For @filename handling, output
1311 the correct name if the file does not exist.
1312
1313 2016-09-30 Marek Polacek <polacek@redhat.com>
1314
1315 * config/aarch64/aarch64-simd.md: Adjust fall through comments.
1316 * config/alpha/predicates.md: Likewise.
1317
1318 2016-09-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1319
1320 * ifcvt.c (noce_try_avoid_const_materialization): New function.
1321 (noce_process_if_block): Use it.
1322
1323 2016-09-30 Martin Liska <mliska@suse.cz>
1324
1325 * doc/invoke.texi: Document asan-use-after-return that
1326 it's disabled by default in runtime.
1327
1328 2016-09-30 Richard Biener <rguenther@suse.de>
1329
1330 * tree-vrp.c (intersect_ranges): If we failed to handle
1331 the intersection choose a constant singleton range if available.
1332
1333 2016-09-30 Richard Biener <rguenther@suse.de>
1334
1335 PR tree-optimization/77399
1336 * tree-ssa-forwprop.c (simplify_vector_constructor): Handle
1337 float <-> int conversions.
1338
1339 2016-09-30 Alan Modra <amodra@gmail.com>
1340
1341 * config/rs6000/rs6000.c (rs6000_opt_vars): Revert last change.
1342
1343 2016-09-29 Uros Bizjak <ubizjak@gmail.com>
1344
1345 * config/i386/driver-i386.c (host_detect_local_cpu): Check maximum
1346 ext_level before calling CPUID with 0x80000008.
1347 Simplify xgetbv checks.
1348
1349 2016-09-29 David Malcolm <dmalcolm@redhat.com>
1350
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.
1354
1355 2016-09-29 Uros Bizjak <ubizjak@gmail.com>
1356
1357 PR target/77756
1358 * config/i386/cpuid.h (__get_cpuid_count): New.
1359 (__get_cpuid): Rename __level to __leaf.
1360
1361 2016-09-29 Marek Polacek <polacek@redhat.com>
1362
1363 * genattrtab.c (write_attr_case): Also emit FALLTHRU marker.
1364
1365 2016-09-29 Bernd Schmidt <bschmidt@redhat.com>
1366
1367 * builtins.c (expand_builtin_memcmp): don't swap args unless
1368 result is only being compared with zero.
1369
1370 2016-09-29 Marek Polacek <polacek@redhat.com>
1371
1372 * dwarf2out.c (loc_descriptor): Add fall through comment.
1373 (add_const_value_attribute): Likewise.
1374
1375 2016-09-29 Matthew Wahab <matthew.wahab@arm.com>
1376
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
1380 with "v6t2".
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.
1386
1387 2016-09-29 Martin Liska <mliska@suse.cz>
1388
1389 * doc/extend.texi: Remove limitation of Objective C for
1390 __attribute__((constructor)) and __attribute__((destructor)).
1391
1392 2016-09-29 Richard Biener <rguenther@suse.de>
1393
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.
1397
1398 2016-09-29 Richard Biener <rguenther@suse.de>
1399
1400 PR middle-end/77407
1401 * match.pd: Add X / abs (X) -> X < 0 ? -1 : 1 and
1402 X / -X -> -1 simplifications.
1403
1404 2016-09-29 Richard Biener <rguenther@suse.de>
1405
1406 PR middle-end/55152
1407 * match.pd: Add max(a,-a) -> abs(a) pattern.
1408 * tree-ssa-phiopt.c (minmax_replacement): Disable for
1409 HONOR_SIGNED_ZEROS types.
1410
1411 2016-09-29 James Greenhalgh <james.greenhalgh@arm.com>
1412
1413 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Remove.
1414 * system.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Poison.
1415
1416 2016-09-29 Richard Biener <rguenther@suse.de>
1417
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.
1423
1424 2016-09-29 Richard Biener <rguenther@suse.de>
1425
1426 * tree-vect-stmts.c (vectorizable_load): Avoid emitting vector
1427 constructors with vector elements.
1428
1429 2016-09-29 Richard Biener <rguenther@suse.de>
1430
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.
1434
1435 2016-09-29 Alan Modra <amodra@gmail.com>
1436
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.
1454
1455 2016-09-28 Jakub Jelinek <jakub@redhat.com>
1456
1457 * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Use x > 0 instead
1458 of 0 < x.
1459 (format_floating, format_string, format_directive,
1460 get_destination_size, pass_sprintf_length::handle_gimple_call):
1461 Likewise.
1462
1463 2016-09-28 Jakub Jelinek <jakub@redhat.com>
1464
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.
1471
1472 2016-09-28 Wilco Dijkstra <wdijkstr@arm.com>
1473
1474 * gimple-fold.c (gimple_fold_builtin): After failing to fold
1475 strchr, also try the generic folding.
1476
1477 2016-09-28 Martin Sebor <msebor@redhat.com>
1478
1479 PR c/77762
1480 * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call):
1481 Fix typos.
1482
1483 2016-09-28 Martin Sebor <msebor@redhat.com>
1484
1485 PR middle-end/77683
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.
1490
1491 2016-09-28 Martin Sebor <msebor@redhat.com>
1492
1493 PR bootstrap/77753
1494 * varasm.c (assemble_addr_to_section): Increase local buffer size.
1495
1496 2016-09-27 Richard Biener <rguenther@suse.de>
1497
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
1503 the cu_die_list.
1504
1505 2016-09-28 Richard Biener <rguenther@suse.de>
1506
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
1519 handling ...
1520 (dwarf2out_early_finish): ... here.
1521
1522 2016-09-29 Claudiu Zissulescu <claziss@synopsys.com>
1523
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.
1531
1532 2016-09-29 Claudiu Zissulescu <claziss@synopsys.com>
1533
1534 * config/arc/arc.md (*rotrsi3_cnt1): New pattern.
1535 (*ashlsi2_cnt1, *lshrsi3_cnt1, *ashrsi3_cnt1): Likewise.
1536
1537 2016-09-28 Nathan Sidwell <nathan@acm.org>
1538
1539 * gimple-pretty-print.c (dump_gimple_call_args): Simplify "' "
1540 printing.
1541
1542 2016-09-28 Wilco Dijkstra <wdijkstr@arm.com>
1543
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.
1548
1549 2016-09-27 Robin Dapp <rdapp@linux.vnet.ibm.com>
1550
1551 PR tree-optimization/77724
1552 * tree-vect-loop-manip.c (create_intersect_range_checks_index):
1553 Add tree_fits_shwi_p check.
1554
1555 2016-09-27 Jakub Jelinek <jakub@redhat.com>
1556
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.
1573
1574 2016-09-27 Nathan Sidwell <nathan@codesourcery.com>
1575
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.
1582
1583 2016-09-27 Maciej W. Rozycki <macro@imgtec.com>
1584
1585 * config/mips/constraints.md (d): Fix documentation.
1586 * doc/md.texi (Machine Constraints): Update accordingly.
1587
1588 2016-09-27 Richard Biener <rguenther@suse.de>
1589
1590 * dwarf2out.c (dwarf2out_init): Move text_section_line_info,
1591 cur_line_info_table initialization ...
1592 (dwarf2out_assembly_start): ... here.
1593
1594 2016-09-27 Matthew Wahab <matthew.wahab@arm.com>
1595
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.
1605
1606 2016-09-27 David Edelsohn <dje.gcc@gmail.com>
1607
1608 * config/rs6000/rs6000.c (rs6000_output_symbol): Don't modify
1609 VAR_DECL string.
1610
1611 2016-09-27 Marek Polacek <polacek@redhat.com>
1612
1613 * config/ia64/ia64.c (ia64_print_operand): Adjust fall through
1614 comment.
1615
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.
1620
1621 2016-09-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1622
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.
1631
1632 2016-09-27 Martin Liska <mliska@suse.cz>
1633
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.
1638
1639 2016-09-27 Richard Biener <rguenther@suse.de>
1640
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.
1647
1648 2016-09-27 Oleg Endo <olegendo@gcc.gnu.org>
1649
1650 PR target/51244
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.
1653
1654 2016-09-27 Martin Liska <mliska@suse.cz>
1655
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
1661 destructor.
1662 * doc/gcov.texi: Document when __gcov_exit function is called.
1663
1664 2016-09-27 Marek Polacek <polacek@redhat.com>
1665
1666 PR bootstrap/77751
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.
1670
1671 2016-09-27 Martin Liska <mliska@suse.cz>
1672
1673 PR bootstrap/77749
1674 * gcov-counter.def: Remove GCOV_COUNTER_V_DELTA.
1675
1676 2016-09-27 Jakub Jelinek <jakub@redhat.com>
1677
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.
1683
1684 2016-09-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
1685
1686 PR rlt-optimization/77714
1687 * lra-eliminations.c (eliminate_regs_in_insn): Avoid alias on
1688 REG_EQUAL note.
1689
1690 2016-09-27 Kugan Vivekanandarajah <kuganv@linaro.org>
1691
1692 PR ipa/77677
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.
1698
1699 2016-09-27 Segher Boessenkool <segher@kernel.crashing.org>
1700
1701 * config/rs6000/rs6000.md (movcc_internal1): Disparage using CTR or LR.
1702
1703 2016-09-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1704
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.
1709
1710 2016-09-26 Kugan Vivekanandarajah <kuganv@linaro.org>
1711
1712 PR middle-end/77719
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.
1715
1716 2016-09-26 Thomas Preud'homme <thomas.preudhomme@arm.com>
1717
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.
1724 * tsan.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.
1739
1740 2016-09-26 David Malcolm <dmalcolm@redhat.com>
1741
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.
1746
1747 2016-09-26 Liu Hao <lh_mouse@126.com>
1748
1749 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Fix typo.
1750
1751 2016-09-26 Marek Polacek <polacek@redhat.com>
1752
1753 * system.h: Use __has_attribute to check whether the fallthrough
1754 attribute is supported.
1755
1756 2016-09-26 Marek Polacek <polacek@redhat.com>
1757
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.
1777
1778 2016-09-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1779 Alexander Monakov <amonakov@ispras.ru>
1780
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.
1785
1786 2016-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1787
1788 * config/s390/s390.c (s390_rtx_costs): Add /* fallthrough */.
1789 (s390_sched_score): Likewise.
1790
1791 2016-09-26 Martin Liska <mliska@suse.cz>
1792
1793 * doc/gcov.texi: Update program output of gcov tool.
1794
1795 2016-09-26 Martin Liska <mliska@suse.cz>
1796
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.
1805
1806 2016-09-26 Martin Liska <mliska@suse.cz>
1807
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
1813 consistent.
1814 * opts.c (finish_options): Do a generic loop over options
1815 that can be recovered.
1816 (parse_sanitizer_options): Exclude SANITIZE_UNREACHABLE and
1817 SANITIZE_RETURN.
1818 (common_handle_option): Likewise.
1819 * opts.h: Declare can_recover to sanitizer_opts_s.
1820
1821 2016-09-26 Andre Vieira <andre.simoesdiasvieira@arm.com>
1822
1823 * target.def(elf_flags_numeric): Change documentation to present tense.
1824 * doc/tm.texi: Regenerate.
1825
1826 2016-09-26 Marek Polacek <polacek@redhat.com>
1827
1828 PR c/7652
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.
1849
1850 2016-09-26 Marek Polacek <polacek@redhat.com>
1851
1852 PR c/7652
1853 * common.opt (Wimplicit-fallthrough): New option.
1854 * doc/extend.texi: Document statement attributes and the fallthrough
1855 attribute.
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.
1881
1882 2016-09-26 Richard Biener <rguenther@suse.de>
1883
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
1894 to ...
1895 (dwarf2out_assembly_start): ... here.
1896 (dwarf2out_finish): Call init_sections_and_labels before DWARF
1897 output starts.
1898
1899 2016-09-26 Richard Biener <rguenther@suse.de>
1900
1901 PR debug/77692
1902 * cgraphunit.c (analyze_functions): Before early removing
1903 global vars calls the late_global_decl debug handler mark
1904 the variable as readonly.
1905
1906 2016-09-25 Oleg Endo <olegendo@gcc.gnu.org>
1907
1908 PR target/51244
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
1914 operand.
1915
1916 2016-09-24 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
1917
1918 * config/rs6000/rs6000.c (expand_block_compare, do_load_for_compare):
1919 Change TARGET_LITTLE_ENDIAN to !BYTES_BIG_ENDIAN.
1920
1921 2016-09-24 David Edelsohn <dje.gcc@gmail.com>
1922
1923 * configure.ac (gcc_cv_as_aix_dwloc): Fix typo in assembly fragment.
1924 * configure: Regenerate.
1925
1926 2016-09-24 Marek Polacek <polacek@redhat.com>
1927
1928 PR c/77490
1929 * doc/invoke.texi: Document -Wbool-operation.
1930
1931 2016-09-23 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
1932
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.
1949
1950 2016-09-23 Jakub Jelinek <jakub@redhat.com>
1951
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.
1981
1982 * vec.h (vNULL): Extend comment to say = vNULL initialization
1983 isn't needed for static vars.
1984
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.
1993
1994 * vec.h (vnull::operator vec): Add constexpr keyword for
1995 C++11 and later.
1996
1997 2016-09-23 Doug Gilmore <doug.gilmore@imgtec.com>
1998
1999 PR tree-optimization/77654
2000 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Add call
2001 to duplicate_ssa_name_ptr_info.
2002
2003 2016-09-23 David Malcolm <dmalcolm@redhat.com>
2004
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.
2022
2023 2016-09-23 Richard Biener <rguenther@suse.de>
2024
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.
2030
2031 2016-09-23 Richard Biener <rguenther@suse.de>
2032
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.
2036
2037 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
2038
2039 * config/arm/arm_neon.h (vabd_f16): New.
2040 (vabdq_f16): New.
2041 (vabs_f16): New.
2042 (vabsq_f16): New.
2043 (vadd_f16): New.
2044 (vaddq_f16): New.
2045 (vcage_f16): New.
2046 (vcageq_f16): New.
2047 (vcagt_f16): New.
2048 (vcagtq_f16): New.
2049 (vcale_f16): New.
2050 (vcaleq_f16): New.
2051 (vcalt_f16): New.
2052 (vcaltq_f16): New.
2053 (vceq_f16): New.
2054 (vceqq_f16): New.
2055 (vceqz_f16): New.
2056 (vceqzq_f16): New.
2057 (vcge_f16): New.
2058 (vcgeq_f16): New.
2059 (vcgez_f16): New.
2060 (vcgezq_f16): New.
2061 (vcgt_f16): New.
2062 (vcgtq_f16): New.
2063 (vcgtz_f16): New.
2064 (vcgtzq_f16): New.
2065 (vcle_f16): New.
2066 (vcleq_f16): New.
2067 (vclez_f16): New.
2068 (vclezq_f16): New.
2069 (vclt_f16): New.
2070 (vcltq_f16): New.
2071 (vcltz_f16): New.
2072 (vcltzq_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.
2105 (vfma_f16): New.
2106 (vfmaq_f16): New.
2107 (vfms_f16): New.
2108 (vfmsq_f16): New.
2109 (vmax_f16): New.
2110 (vmaxq_f16): New.
2111 (vmaxnm_f16): New.
2112 (vmaxnmq_f16): New.
2113 (vmin_f16): New.
2114 (vminq_f16): New.
2115 (vminnm_f16): New.
2116 (vminnmq_f16): New.
2117 (vmul_f16): New.
2118 (vmul_lane_f16): New.
2119 (vmul_n_f16): New.
2120 (vmulq_f16): New.
2121 (vmulq_lane_f16): New.
2122 (vmulq_n_f16): New.
2123 (vneg_f16): New.
2124 (vnegq_f16): New.
2125 (vpadd_f16): New.
2126 (vpmax_f16): New.
2127 (vpmin_f16): New.
2128 (vrecpe_f16): New.
2129 (vrecpeq_f16): New.
2130 (vrnd_f16): New.
2131 (vrndq_f16): New.
2132 (vrnda_f16): New.
2133 (vrndaq_f16): New.
2134 (vrndm_f16): New.
2135 (vrndmq_f16): New.
2136 (vrndn_f16): New.
2137 (vrndnq_f16): New.
2138 (vrndp_f16): New.
2139 (vrndpq_f16): New.
2140 (vrndx_f16): New.
2141 (vrndxq_f16): New.
2142 (vrsqrte_f16): New.
2143 (vrsqrteq_f16): New.
2144 (vrecps_f16): New.
2145 (vrecpsq_f16): New.
2146 (vrsqrts_f16): New.
2147 (vrsqrtsq_f16): New.
2148 (vsub_f16): New.
2149 (vsubq_f16): New.
2150
2151 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
2152
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".
2156
2157 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
2158
2159 * config/arm/arm_neon_builtins.def (vadd): New (v8hf, v4hf
2160 variants).
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).
2219
2220 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
2221
2222 * config/arm/arm-builtins.c (hf_UP): New.
2223 (si_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
2231 long line.
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.
2235
2236 2016-09-23 Kugan Vivekanandarajah <kuganv@linaro.org>
2237
2238 PR ipa/77677
2239 * ipa-cp.c (propagate_vr_accross_jump_function): Drop TREE_OVERFLOW
2240 from constant while creating value range.
2241
2242 2016-09-23 Renlin Li <renlin.li@arm.com>
2243
2244 * ira.c (ira): Move ira_use_lra_p initialization code to ...
2245 (ira_init_once): Here.
2246
2247 2016-09-23 Uros Bizjak <ubizjak@gmail.com>
2248 Jakub Jelinek <jakub@redhat.com>
2249
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.
2256
2257 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
2258
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.
2266
2267 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
2268
2269 * config/arm/iterators.md (VCVTHI): New.
2270 (NEON_VCMP): Add UNSPEC_VCLT and UNSPEC_VCLE. Fix a long line.
2271 (NEON_VAGLTE): New.
2272 (VFM_LANE_AS): New.
2273 (VH_CVTTO): New.
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.
2280 (VH_elem_ch): New.
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.
2285 (float_sup): New.
2286 (float_SUP): New.
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.
2332
2333 2016-09-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
2334
2335 * config/s390/s390.md ("*extzv<mode>_zEC12", "*extzv<mode>_z10")
2336 ("*extzv<mode><clobbercc_or_nocc>"):
2337 Correct a typo in a comment.
2338 Merged patterns.
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>"):
2356 New patterns.
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
2360 on zEC12.
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
2364 duplication.
2365
2366 2016-09-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
2367
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
2378 interface.
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.
2390
2391 2016-09-23 Bin Cheng <bin.cheng@arm.com>
2392
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.
2396
2397 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
2398
2399 * config/arm/iterators.md (Code iterators): Fix some white-space
2400 in the comments.
2401 (GLTE): New.
2402 (ABSNEG): New
2403 (FCVT): Moved from vfp.md.
2404 (VCVT_HF_US_N): New.
2405 (VCVT_SI_US_N): New.
2406 (VCVT_HF_US): New.
2407 (VCVTH_US): New.
2408 (FP16_RND): New.
2409 (absneg_str): 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.
2416 (vcvth_op): New.
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.
2435 (UNSPEC_VRND): 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.
2443 (neon_vabshf): New.
2444 (neon_v<fp16_rnd_str>hf): New.
2445 (neon_vrndihf): New.
2446 (addhf3): New.
2447 (subhf3): New.
2448 (divhf3): New.
2449 (mulhf3): 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.
2456 (fmahf4): New.
2457 (neon_vfmahf): New.
2458 (fmsubhf4_fp16): New.
2459 (neon_vfmshf): New.
2460 (*fnmsubhf4): New.
2461 (*fnmaddhf4): 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.
2474
2475 2016-09-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
2476
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.
2482
2483 2016-09-23 Jakub Jelinek <jakub@redhat.com>
2484
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.
2490
2491 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
2492 Jiong Wang <jiong.wang@arm.com>
2493
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.
2501 (cstorehf4): New.
2502 (movsicc): Fix some white-space.
2503 (movhfcc): New.
2504 (movsfcc): Fix some white-space.
2505 (*cmovhf): New.
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.
2516
2517 2016-09-23 Martin Liska <mliska@suse.cz>
2518
2519 * config/s390/vx-builtins.md: Replace 'adress' with 'address'.
2520
2521 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
2522
2523 * config/arm/arm.c (arm_evpc_neon_vuzp): Add support for V8HF and
2524 V4HF modes.
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.
2529 (vbslq_f16): New.
2530 (vdup_n_f16): New.
2531 (vdupq_n_f16): New.
2532 (vdup_lane_f16): New.
2533 (vdupq_lane_f16): New.
2534 (vext_f16): New.
2535 (vextq_f16): New.
2536 (vmov_n_f16): New.
2537 (vmovq_n_f16): New.
2538 (vrev64_f16): New.
2539 (vrev64q_f16): New.
2540 (vtrn_f16): New.
2541 (vtrnq_f16): New.
2542 (vuzp_f16): New.
2543 (vuzpq_f16): New.
2544 (vzip_f16): New.
2545 (vzipq_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.
2551 (VH): 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.
2564
2565 2016-09-23 Jiong Wang <jiong.wang@arm.com>
2566 Matthew Wahab <matthew.wahab@arm.com>
2567
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.
2574
2575 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
2576
2577 * config/arm/arm-c.c (arm_cpu_builtins): Define
2578 "__ARM_FEATURE_FP16_SCALAR_ARITHMETIC" and
2579 "__ARM_FEATURE_FP16_VECTOR_ARITHMETIC".
2580
2581 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
2582
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,
2588 arm_v8_2a_neon.
2589
2590 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
2591
2592 * doc/sourcebuild.texi (ARM-specific attributes): Add entries for
2593 arm_fp16_alternative_ok and arm_fp16_none_ok.
2594
2595 2016-09-23 Martin Liska <mliska@suse.cz>
2596
2597 * ipa-icf.c (sem_variable::merge): Replace adress with address.
2598
2599 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
2600
2601 * config/arm/arm-arches.def ("armv8.1-a"): Add FL_CRC32.
2602 ("armv8.2-a"): New.
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
2619 and armv8.2-a+fp16.
2620 * doc/invoke.texi (ARM Options): Add "-march=armv8.1-a",
2621 "-march=armv8.2-a" and "-march=armv8.2-a+fp16".
2622
2623 2016-09-23 Martin Liska <mliska@suse.cz>
2624
2625 * doc/extend.texi: Remove fused-madd from i386 target options.
2626
2627 2016-09-23 Martin Liska <mliska@suse.cz>
2628
2629 * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
2630 Handle movbe.
2631
2632 2016-09-23 Martin Liska <mliska@suse.cz>
2633
2634 * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
2635 Handle crc32.
2636
2637 2016-09-23 Martin Liska <mliska@suse.cz>
2638
2639 PR target/71652
2640 * config/i386/i386.c (ix86_option_override_internal): Change
2641 signature and return false when there's an error related to
2642 arch string.
2643 (release_options_strings): New function.
2644 (ix86_valid_target_attribute_tree): Call the function.
2645
2646 2016-09-23 Jakub Jelinek <jakub@redhat.com>
2647
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.
2659
2660 2016-09-23 Richard Biener <rguenther@suse.de>
2661
2662 * hooks.h (hook_uint_uintp_false): Declare.
2663
2664 2016-09-22 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
2665
2666 * config/avr/avr.c (avr_rtx_costs_1): Handle DImode MULT.
2667 (avr_address_cost): Replace 61 with MAX_LD_OFFSET(mode).
2668
2669 2016-09-22 Martin Sebor <msebor@redhat.com>
2670
2671 PR target/77676
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
2676 modifier.
2677 (format_floating): Use target_int_max().
2678 (get_string_length): Same.
2679 (format_string): Avoid setting the bounded flag for strings
2680 of unknown length.
2681 (try_substitute_return_value): Avoid setting range info when
2682 the result isn't bounded.
2683 * varasm.c (assemble_name): Increase buffer size.
2684
2685 2016-09-22 Andre Vieira <andre.simoesdiasvieira@arm.com>
2686 Terry Guo <terry.guo@arm.com>
2687
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
2702 for -mpure-code.
2703 * gcc/doc/texi (TARGET_ASM_ELF_FLAGS_NUMERIC): New.
2704 * gcc/doc/texi.in (TARGET_ASM_ELF_FLAGS_NUMERIC): Likewise.
2705
2706 2016-09-22 Jan Hubicka <hubicka@ucw.cz>
2707
2708 * regcprop.c (copyprop_hardreg_forward_1): Remove noop moves.
2709
2710 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2711
2712 * emit-rtl.c (next_cc0_user): Make argument type rtx_insn *.
2713 * rtl.h: Adjust prototype.
2714
2715 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2716
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.
2733
2734 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2735
2736 * config/cris/cris.c (cris_asm_output_case_end): Change argument
2737 type to rtx_insn *.
2738 * emit-rtl.c (next_nonnote_nondebug_insn): Likewise.
2739 (prev_nonnote_nondebug_insn): Likewise.
2740 * config/cris/cris-protos.h: Adjust prototype.
2741 * rtl.h: Likewise.
2742 * jump.c (rtx_renumbered_equal_p): Adjust.
2743
2744 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2745
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.
2750
2751 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2752
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.
2758
2759 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2760
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.
2777
2778 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2779
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.
2807
2808 2016-09-22 Martin Liska <mliska@suse.cz>
2809
2810 PR ipa/77653
2811 * ipa-icf.c (sem_variable::merge): Yield merge operation if
2812 alias address matters, not necessarily address of original.
2813
2814 2016-09-22 Richard Biener <rguenther@suse.de>
2815
2816 PR middle-end/77697
2817 * gimple-fold.c (fold_array_ctor_reference): Turn asserts into
2818 fold fails.
2819
2820 2016-09-22 Richard Biener <rguenther@suse.de>
2821
2822 PR middle-end/77677
2823 * gimple-match-head.c (gimple_resimplify1): Drop TREE_OVERFLOW
2824 from constant folding results.
2825 (gimple_resimplify2): Likewise.
2826 (gimple_resimplify3): Likewise.
2827
2828 2016-09-22 Richard Biener <rguenther@suse.de>
2829
2830 PR middle-end/77678
2831 * expr.c (expand_expr_real_1): Guard array access against negative
2832 offset.
2833
2834 2016-09-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2835
2836 * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN instead
2837 of MPFR_RNDN.
2838 (format_floating): Likewise.
2839
2840 2016-09-22 Jakub Jelinek <jakub@redhat.com>
2841
2842 PR fortran/77665
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_*.
2846
2847 2016-09-21 Michael Meissner <meissner@linux.vnet.ibm.com>
2848
2849 PR target/77670
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.
2857
2858 2016-09-21 David Malcolm <dmalcolm@redhat.com>
2859
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
2875 rtx_reader *.
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
2897 rtx_reader_ptr.
2898 (read_braced_string): Use get_lineno accessor of rtx_reader_ptr.
2899 (read_string): Use get_filename and get_lineno accessors of
2900 rtx_reader_ptr.
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.
2919 (in_fname): Delete.
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.
2931
2932 2016-09-21 Jason Merrill <jason@redhat.com>
2933
2934 * input.h (from_macro_definition_at): New.
2935
2936 2016-09-21 Segher Boessenkool <segher@kernel.crashing.org>
2937
2938 * doc/rtl.texi (JUMP_LABEL): Document RETURN and SIMPLE_RETURN values.
2939
2940 2016-09-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
2941
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.
2946
2947 2016-09-21 Marek Polacek <polacek@redhat.com>
2948
2949 * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
2950 Add falls through comment.
2951
2952 2016-09-21 Richard Biener <rguenther@suse.de>
2953
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.
2959
2960 2016-09-21 Georg-Johann Lay <avr@gjlay.de>
2961
2962 PR target/77326
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.
2965
2966 2016-09-21 Richard Biener <rguenther@suse.de>
2967
2968 PR tree-optimization/77648
2969 * tree-ssa-structalias.c (process_constraint): Handle all DEREF
2970 with complex RHS.
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
2976 pointers as well.
2977 (handle_pure_call): Likewise.
2978
2979 2016-09-21 Richard Biener <rguenther@suse.de>
2980 Jakub Jelinek <jakub@redhat.com>
2981
2982 PR tree-optimization/77621
2983 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Split
2984 group at non-vectorizable stmts.
2985
2986 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org>
2987
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.
2992
2993 2016-09-20 Martin Sebor <msebor@redhat.com>
2994
2995 PR middle-end/49905
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
3002 options.
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.
3019
3020 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org>
3021
3022 * tree-vrp.c (get_value_range): Teach PARM_DECL to use ipa-vrp results.
3023
3024 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org>
3025
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.
3056 * ipa.c: Likewise.
3057 * opts.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.
3063
3064 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org>
3065
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.
3086
3087 2016-09-20 Uros Bizjak <ubizjak@gmail.com>
3088
3089 * config/i386/i386.md (mult->ashift peephole2s): Use pow2p_hwi
3090 instead of exact_log2.
3091
3092 2016-09-20 Uros Bizjak <ubizjak@gmail.com>
3093
3094 PR target/77621
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.
3099
3100 2016-09-20 Gerald Pfeifer <gerald@pfeifer.com>
3101
3102 * doc/invoke.texi (Warning Options): Simplify language.
3103 (Optimize Options): Complete sentence.
3104
3105 2016-09-20 David Edelsohn <dje.gcc@gmail.com>
3106
3107 * dbxout.c (xcoff_debug_hooks): Add filename parameter to
3108 early_finish hook.
3109
3110 2016-09-20 Michael Meissner <meissner@linux.vnet.ibm.com>
3111
3112 PR target/71395
3113 * config/rs6000/rs6000.c (rs6000_expand_vector_init): For V4SF
3114 inits on power8 and above, use the VMRGEW instruction instead of a
3115 permute.
3116
3117 * config/rs6000/altivec.md (UNSPEC_VMRGEW_DIRECT): New unspec.
3118 (p8_vmrgew_v4sf_direct): New VMRGEW insn for V4SF floating
3119 initialization.
3120
3121 2016-09-20 Tamar Christina <tamar.christina@arm.com>
3122
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.
3127
3128 2016-09-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
3129
3130 * config/var/vax.h (ELIMINABLE_REGS): Define.
3131 (INITIAL_ELIMINATION_OFFSET): Define.
3132
3133 2016-09-20 Jakub Jelinek <jakub@redhat.com>
3134
3135 PR middle-end/77624
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.
3138
3139 2016-09-20 Richard Biener <rguenther@suse.de>
3140
3141 PR tree-optimization/77646
3142 * tree-ssa-sccvn.c (visit_reference_op_call): Always value-number
3143 a VDEF.
3144
3145 2016-09-20 Tamar Christina <tamar.christina@arm.com>
3146
3147 * config/aarch64/arm_neon.h: Add gnu_inline and artificial
3148 attributes to all inlined functions and make them extern.
3149
3150 2016-09-20 Richard Biener <rguenther@suse.de>
3151
3152 * debug.h (gcc_debug_hooks): Add filename parameter to early_finish
3153 hook.
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
3159 path annotation ...
3160 (dwarf2out_early_finish): ... here. Remove in_lto_p special-casing.
3161 * cgraphunit.c (symbol_table::finalize_compilation_unit): Adjust.
3162
3163 2016-09-19 Bernd Edlinger <bernd.edlinger@hotmail.de>
3164
3165 PR c++/77434
3166 * doc/invoke.texi: Document -Wint-in-bool-context.
3167
3168 PR middle-end/77421
3169 * dwarf2out.c (output_loc_operands): Fix an assertion.
3170
3171 2016-09-19 Joseph Myers <joseph@codesourcery.com>
3172
3173 * ginclude/float.h [__STDC_WANT_IEC_60559_BFP_EXT__]
3174 (CR_DECIMAL_DIG): New macro.
3175
3176 2016-09-19 Joseph Myers <joseph@codesourcery.com>
3177
3178 * ginclude/stddef.h (max_align_t) [__i386__]: Add __float128
3179 element.
3180
3181 2016-09-19 Vladimir Makarov <vmakarov@redhat.com>
3182
3183 PR rtl-optimization/77416
3184 * lra-remat.c (operand_to_remat): Process hard coded insn
3185 registers.
3186
3187 2016-09-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3188
3189 * simplify-rtx.c (simplify_relational_operation_1): Add transformation
3190 (GTU (PLUS a C) (C - 1)) --> (LTU a -C).
3191
3192 2016-09-19 Segher Boessenkool <segher@kernel.crashing.org>
3193
3194 * target.def (lra_p): Wordsmithing.
3195 * doc/tm.texi: Regenerate.
3196
3197 2016-09-19 Jakub Jelinek <jakub@redhat.com>
3198 Jan Hubicka <jh@suse.cz>
3199
3200 PR target/77587
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.
3204
3205 2016-09-19 Richard Biener <rguenther@suse.de>
3206
3207 * dwarf2out.c (early_dwarf_finished): New global.
3208 (set_early_dwarf::set_early_dwarf): Assert early_dwarf_finished
3209 is false.
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.
3215
3216 2016-09-19 Richard Biener <rguenther@suse.de>
3217
3218 PR middle-end/77605
3219 * tree-data-ref.c (analyze_subscript_affine_affine): Use the
3220 proper niter to bound the loops.
3221
3222 2016-09-19 Richard Biener <rguenther@suse.de>
3223
3224 PR tree-optimization/77514
3225 * tree-ssa-pre.c (create_expression_by_pieces): Optimize
3226 search for folded stmt.
3227
3228 2016-09-17 Jan Hubicka <hubicka@ucw.cz>
3229
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.
3238
3239 2016-09-17 Andreas Schwab <schwab@suse.de>
3240
3241 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add cast.
3242 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Likewise.
3243
3244 2016-09-16 Eric Botcazou <ebotcazou@adacore.com>
3245
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.
3249
3250 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
3251
3252 * doc/extend.texi (Integer Overflow Builtins): Fix type of out
3253 parameters for functions taking long long arguments.
3254
3255 2016-09-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3256
3257 PR target/77613
3258 * config/rs6000/rs6000.c (rtx_is_swappable_p): Add support for
3259 splat with truncate.
3260
3261 2016-09-16 Jason Merrill <jason@redhat.com>
3262
3263 * hwint.h (least_bit_hwi, pow2_or_zerop, pow2p_hwi, ctz_or_zero):
3264 New.
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
3270 least_bit_hwi.
3271 * calls.c (compute_argument_addresses, store_one_arg): Use
3272 least_bit_hwi.
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):
3281 Use least_bit_hwi.
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):
3291 Use least_bit_hwi.
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
3311 least_bit_hwi.
3312 * tsan.c (instrument_expr): Use least_bit_hwi.
3313 * var-tracking.c (negative_power_of_two_p): Use pow2_or_zerop.
3314
3315 2016-09-16 Andreas Schwab <schwab@suse.de>
3316
3317 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Use parameter
3318 OFFSET, not offset.
3319 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Likewise.
3320
3321 2016-09-16 Jakub Jelinek <jakub@redhat.com>
3322
3323 PR target/77526
3324 * combine.c (rest_of_handle_combine): If any edges have been purged,
3325 free dominators if available.
3326
3327 2016-09-16 Jakub Jelinek <jakub@redhat.com>
3328 Eric Botcazou <ebotcazou@adacore.com>
3329
3330 PR middle-end/77594
3331 * internal-fn.c (expand_arith_overflow) <case MINUS_EXPR>: Don't fall
3332 through into expand_addsub_overflow after expand_neg_overflow.
3333
3334 2016-09-15 David Malcolm <dmalcolm@redhat.com>
3335
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.
3340
3341 2016-09-15 Bin Cheng <bin.cheng@arm.com>
3342
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
3346 transform stage.
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
3350 field.
3351
3352 2016-09-15 Richard Biener <rguenther@suse.de>
3353
3354 PR middle-end/77544
3355 * fold-const.c (split_tree): Do not split constant ~X.
3356
3357 2016-09-15 Jakub Jelinek <jakub@redhat.com>
3358
3359 PR rtl-optimization/77425
3360 * sched-int.h (sd_iterator_cond): Don't update it_ptr->linkp if list
3361 is NULL.
3362
3363 PR middle-end/77475
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
3367 spellcheck hint.
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
3373 possible.
3374
3375 2016-09-15 Richard Biener <rguenther@suse.de>
3376
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
3385 offset argument.
3386 (darwin_asm_output_dwarf_offset): Likewise.
3387 * config/darwin.c (darwin_asm_output_dwarf_delta): Add offset
3388 argument.
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.
3392
3393 2016-09-15 Chung-Lin Tang <cltang@codesourcery.com>
3394
3395 PR fortran/72743
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.
3399
3400 2016-09-15 Richard Biener <rguenther@suse.de>
3401
3402 PR tree-optimization/77514
3403 * tree-ssa-pre.c (create_expression_by_pieces): Handle garbage
3404 only forced_stmts sequence.
3405
3406 2016-09-15 Kugan Vivekanandarajah <kuganv@linaro.org>
3407
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.
3431
3432 2016-09-14 Matthew Fortune <matthew.fortune@imgtec.com>
3433
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.
3438
3439 2016-09-14 Pat Haugen <pthaugen@us.ibm.com>
3440
3441 * loop-unroll.c (unroll_loop_runtime_iterations): Set probability
3442 of succ edge.
3443
3444 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
3445
3446 * target.def (lra_p): Change commentary (for the manual) for the
3447 new default.
3448 * doc/tm.texi: Regenerate.
3449
3450 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
3451
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.
3456
3457 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
3458
3459 * targhooks.c (default_lra_p): Return true instead of false.
3460
3461 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
3462
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.
3500
3501 2016-09-14 Jakub Jelinek <jakub@redhat.com>
3502
3503 PR sanitizer/68260
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.
3510
3511 2016-09-14 Bernd Edlinger <bernd.edlinger@hotmail.de>
3512 Martin Liska <mliska@suse.cz>
3513
3514 PR middle-end/77574
3515 * predict.c (force_edge_cold): Add braces to a condition.
3516
3517 2016-09-13 Bernd Edlinger <bernd.edlinger@hotmail.de>
3518
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.
3526
3527 2016-09-13 Joe Seymour <joe.s@somniumtech.com>
3528
3529 PR target/70713
3530 * config/msp430/msp430.c (msp430_start_function): Emit an error
3531 if a function is both weak and specifies an interrupt number.
3532
3533 2016-09-13 Jakub Jelinek <jakub@redhat.com>
3534
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.
3538 Formatting fix.
3539
3540 2016-09-13 Tamar Christina <tamar.christina@arm.com>
3541
3542 * config/aarch64/aarch64-builtins.c
3543 (aarch64_init_simd_builtins): Fix builtin type signature printing.
3544
3545 2016-09-13 Uros Bizjak <ubizjak@gmail.com>
3546
3547 * config/alpha/alpha.c (alpha_pass_by_reference): Pass un-named
3548 SFmode and SCmode arguments by reference.
3549
3550 2016-09-13 David Malcolm <dmalcolm@redhat.com>
3551
3552 * diagnostic-show-locus.c (selftest::test_one_liner_fixit_insert):
3553 Rename to...
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):
3566 Likewise.
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
3573 function.
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.
3584
3585 2016-09-13 Pat Haugen <pthaugen@us.ibm.com>
3586
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.
3591
3592 2016-09-13 Maciej W. Rozycki <macro@imgtec.com>
3593
3594 * optabs.c (prepare_cmp_insn): Update documentation comment.
3595
3596 2016-09-13 Jakub Jelinek <jakub@redhat.com>
3597 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3598
3599 PR middle-end/77475
3600 * opts.h (candidates_list_and_hint): Declare.
3601 * opts-common.c (candidates_list_and_hint): New function.
3602 (cmdline_handle_error): Use it.
3603
3604 2016-09-12 David Malcolm <dmalcolm@redhat.com>
3605
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.
3610
3611 2016-09-12 Andrew Pinski <apinski@cavium.com>
3612
3613 * config/aarch64/aarch64-tuning-flags.def (SLOW_UNALIGNED_LDPW):
3614 New tuning option.
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.
3621
3622 2016-09-12 Orlando Arias <oarias@knights.ucf.edu>
3623
3624 PR target/77570
3625 * config/msp430/msp430.md (delay_cycles_32x): Fix pushm/popm.
3626
3627 2016-09-12 Marek Polacek <polacek@redhat.com>
3628
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.
3634
3635 2016-09-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3636
3637 PR middle-end/77426
3638 * expmed.c (synth_mult): Delete duplicate mode check.
3639
3640 2016-09-10 Tom de Vries <tom@codesourcery.com>
3641
3642 PR C/71602
3643 * builtins.c (std_canonical_va_list_type): Strictly return non-null for
3644 va_list type only.
3645 * config/i386/i386.c (ix86_canonical_va_list_type): Same.
3646 * gimplify.c (gimplify_va_arg_expr): Handle &va_list.
3647
3648 2016-09-09 Peter Bergner <bergner@vnet.ibm.com>
3649
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().
3656
3657 2016-09-09 Martin Sebor <msebor@redhat.com>
3658
3659 PR c/77520
3660 PR c/77521
3661 * pretty-print.c (pp_quoted_string): New function.
3662 (pp_format): Call it for %c and %s directives.
3663
3664 2016-09-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
3665
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
3672 ELIMINABLE_REGS.
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.
3696
3697 2016-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com>
3698
3699 PR target/77267
3700 * config.in: Regenerate.
3701 * config/i386/linux-common.h (MPX_LD_AS_NEEDED_GUARD_PUSH):
3702 New macro.
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".
3711
3712 2016-09-09 Bernd Edlinger <bernd.edlinger@hotmail.de>
3713
3714 * doc/cpp.texi (__*_WIDTH__): Small wording fixes.
3715
3716 2016-09-09 Joseph Myers <joseph@codesourcery.com>
3717
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__):
3725 Document.
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.
3729
3730 2016-09-08 Jakub Jelinek <jakub@redhat.com>
3731
3732 PR fortran/77516
3733 * omp-low.c (lower_rec_simd_input_clauses): Use max_vf for non-positive
3734 OMP_CLAUSE_SAFELEN_EXPR.
3735
3736 2016-09-07 David Malcolm <dmalcolm@redhat.com>
3737
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.
3754
3755 2016-09-07 Eric Gallager <egall@gwmail.gwu.edu>
3756
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.
3761
3762 2016-09-07 Wilco Dijkstra <wdijkstr@arm.com>
3763
3764 * config/aarch64/aarch64.c (aarch64_legitimize_address):
3765 Avoid use of base_offset if offset already in range.
3766
3767 2016-09-07 Kaz Kojima <kkojima@gcc.gnu.org>
3768
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.
3778
3779 2016-09-06 Jakub Jelinek <jakub@redhat.com>
3780
3781 PR target/69255
3782 * config/i386/i386.c (ix86_expand_builtin): For builtin with
3783 unsupported or unknown ISA, use expand_call.
3784
3785 2016-09-06 Martin Liska <mliska@suse.cz>
3786
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.
3791
3792 2016-09-06 Richard Biener <rguenther@suse.de>
3793
3794 PR tree-optimization/77479
3795 * tree-vrp.c (update_value_range): Extend overflow handling to
3796 VARYING.
3797
3798 2016-09-05 Jakub Jelinek <jakub@redhat.com>
3799
3800 PR target/77476
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.
3807
3808 2016-09-05 Gerald Pfeifer <gerald@pfeifer.com>
3809
3810 * doc/invoke.texi (SPU Options): nops -> NOPs.
3811 (x86 Options): Ditto.
3812
3813 2016-09-05 Jakub Jelinek <jakub@redhat.com>
3814
3815 PR middle-end/77475
3816 * toplev.c (process_options): Temporarily set input_location
3817 to UNKNOWN_LOCATION around targetm.target_option.override () call.
3818
3819 2016-09-05 Uros Bizjak <ubizjak@gmail.com>
3820
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.
3824
3825 2016-09-05 Marek Polacek <polacek@redhat.com>
3826
3827 PR c/77423
3828 * doc/invoke.texi: Update -Wlogical-not-parentheses documentation.
3829
3830 2016-09-05 Jakub Jelinek <jakub@redhat.com>
3831
3832 PR other/77421
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.
3836
3837 PR rtl-optimization/77425
3838 * ipa-devirt.c (get_odr_type): Set val->id unconditionally.
3839
3840 2016-09-03 Kirill Yukhin <kirill.yukhin@intel.com>
3841
3842 * ubsan.c (ubsan_use_new_style_p): Fix check for empty string.
3843
3844 2016-09-02 David Malcolm <dmalcolm@redhat.com>
3845
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.
3862
3863 2016-09-02 Jakub Jelinek <jakub@redhat.com>
3864
3865 PR c/65467
3866 * gimplify.c (gimplify_adjust_omp_clauses_1): Diagnose implicit
3867 map and firstprivate clauses on target construct for _Atomic
3868 qualified decls.
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
3872 decls.
3873 * omp-simd-clone.c (simd_clone_clauses_extract): Warn and give up for
3874 _Atomic qualified arguments not mentioned in uniform clause.
3875
3876 2016-09-02 David Malcolm <dmalcolm@redhat.com>
3877
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
3889 true.
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.
3898
3899 2016-09-02 Jakub Jelinek <jakub@redhat.com>
3900 Richard Biener <rguenth@suse.de>
3901
3902 PR tree-optimization/77444
3903 * tree-ssa-loop-ivopts.c (cand_value_at): For pointers use sizetype
3904 as steptype, remove redundant initialization.
3905
3906 2016-09-02 Jakub Jelinek <jakub@redhat.com>
3907
3908 PR sanitizer/77396
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.
3916
3917 2016-09-02 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3918
3919 * cfg.c (free_original_copy_tables): Replace second assignment of
3920 bb_copy = NULL by bb_original = NULL.
3921
3922 2016-09-02 Jakub Jelinek <jakub@redhat.com>
3923
3924 PR other/77421
3925 * config/i386/i386.c (ix86_expanded_args_builtin): Remove redundant
3926 assignment added in r216794.
3927
3928 2016-09-02 David Malcolm <dmalcolm@redhat.com>
3929
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.
3941
3942 2016-09-02 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3943
3944 * ipa-cp.c (ipcp_store_bits_results): Change option name from
3945 -fipa-cp-bit to -fipa-bit-cp.
3946
3947 2016-09-01 Martin Sebor <msebor@redhat.com>
3948
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.
3963
3964 2016-09-01 Martin Sebor <msebor@redhat.com>
3965
3966 * genmatch.c (parser::parse_expr): Increase buffer size to guarantee
3967 it fits the output of the formatted function regardless of its
3968 arguments.
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.
3973
3974 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
3975
3976 * config/rs6000/altivec.md: Use VSCR_REGNO instead of 110 throughout.
3977
3978 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
3979
3980 * config/rs6000/altivec.md: Use VRSAVE_REGNO instead of 109 throughout.
3981
3982 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
3983
3984 * config/rs6000/altivec.md: Use CR6_REGNO instead of 74 throughout.
3985 * config/rs6000/vector.md: Ditto.
3986 * config/rs6000/vsx.md: Ditto.
3987
3988 2016-09-01 Eric Botcazou <ebotcazou@adacore.com>
3989
3990 * ipa-inline-analysis.c (param_change_prob): Get to the base object
3991 first in all cases.
3992
3993 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
3994
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.
4004 Fix whitespace.
4005
4006 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
4007
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.
4023
4024 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
4025
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.
4030
4031 2016-09-01 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4032 Michael Meissner <meissner@linux.vnet.ibm.com>
4033
4034 PR target/72827
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.
4039
4040 2016-09-01 Richard Biener <rguenther@suse.de>
4041
4042 PR middle-end/77436
4043 * tree-chrec.c (tree_fold_binomial): Use widest_int, properly
4044 check whether the result fits the desired result type.
4045
4046 2016-09-01 Nathan Sidwell <nathan@acm.org>
4047
4048 * config/nvptx/nvptx.md (cbranch<mode>4): Op 2 can be const.
4049
4050 2016-09-01 Wilco Dijkstra <wdijkstr@arm.com>
4051
4052 * config/aarch64/aarch64.c (aarch64_legitimize_address_displacement):
4053 New function.
4054 (TARGET_LEGITIMIZE_ADDRESS_DISPLACEMENT): Define.
4055
4056 2016-09-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4057
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.
4061
4062 2016-09-01 Eric Botcazou <ebotcazou@adacore.com>
4063
4064 * config/i386/i386.c (ix86_option_override_internal): Also disable the
4065 STV pass if -mstackrealign is enabled.
4066
4067 2016-08-31 Ilya Verbin <iverbin@gmail.com>
4068
4069 * config/i386/driver-i386.c (host_detect_local_cpu): Fix detection of
4070 AVX512IFMA.
4071
4072 2016-08-31 David Malcolm <dmalcolm@redhat.com>
4073
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
4087 for a fix-it hint.
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
4098 function.
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.
4102
4103 2016-08-31 Marc Glisse <marc.glisse@inria.fr>
4104
4105 PR tree-optimization/73714
4106 * match.pd (a * (1 << b)): Revert change from 2016-05-23.
4107
4108 2016-08-31 David Malcolm <dmalcolm@redhat.com>
4109
4110 * selftest.c: Move "namespace selftest {" to top of file,
4111 removing explicit "selftest::" qualifiers throughout.
4112
4113 2016-08-31 Marc Glisse <marc.glisse@inria.fr>
4114
4115 * config/i386/avx512fintrin.h (__m512_u, __m512i_u, __m512d_u):
4116 New types.
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):
4121 New types.
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.
4131
4132 2016-08-31 Eric Botcazou <ebotcazou@adacore.com>
4133
4134 * config/arm/arm.c (thumb1_size_rtx_costs) <SET>: Add missing guard.
4135
4136 2016-08-30 David Malcolm <dmalcolm@redhat.com>
4137
4138 * diagnostic-show-locus.c (colorizer::begin_state): Support more
4139 than 3 ranges per diagnostic by alternating between color 1 and
4140 color 2.
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.
4153
4154 2016-08-30 David Malcolm <dmalcolm@redhat.com>
4155
4156 * selftest.c (selftest::named_temp_file::named_temp_file): New
4157 ctor.
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.
4164
4165 2016-08-30 Segher Boessenkool <segher@kernel.crashing.org>
4166
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
4175 obsolete comment.
4176 (return_internal_<mode>): Delete.
4177
4178 2016-08-30 Tamar Christina <tamar.christina@arm.com>
4179
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.
4191
4192 2016-08-30 David Malcolm <dmalcolm@redhat.com>
4193
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
4204 a const char *.
4205
4206 2016-08-30 Szabolcs Nagy <szabolcs.nagy@arm.com>
4207
4208 * config/linux.c (linux_libc_has_function): Return true on musl.
4209
4210 2016-08-30 Szabolcs Nagy <szabolcs.nagy@arm.com>
4211
4212 * config.gcc (*-*-*musl*): Disable gnu-indirect-function.
4213
4214 2016-08-30 Eric Botcazou <ebotcazou@adacore.com>
4215
4216 * postreload-gcse.c (bb_has_well_behaved_predecessors): Tweak criterion
4217 used for abnormal egdes.
4218
4219 2016-08-30 Jakub Jelinek <jakub@redhat.com>
4220
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.
4226
4227 PR debug/77363
4228 * dwarf2out.c (modified_type_die): Use lookup_type_die (type)
4229 instead of lookup_type_die (type_main_variant (type)) even for array
4230 types.
4231
4232 PR middle-end/77377
4233 * simplify-rtx.c (avoid_constant_pool_reference): For out of bounds
4234 constant pool reference return x instead of c.
4235
4236 2016-08-29 Segher Boessenkool <segher@kernel.crashing.org>
4237
4238 * config/rs6000/rs6000.h (CALL_REALLY_USED_REGISTERS): Do not
4239 include MQ.
4240
4241 2016-08-29 David Malcolm <dmalcolm@redhat.com>
4242
4243 * input.c
4244 (selftest::test_make_location_nonpure_range_endpoints): Fix
4245 header comment.
4246
4247 2016-08-29 David Malcolm <dmalcolm@redhat.com>
4248
4249 * diagnostic-show-locus.c
4250 (selftest::test_one_liner_fixit_validation_adhoc_locations): New
4251 function.
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.
4256
4257 2016-08-29 Uros Bizjak <ubizjak@gmail.com>
4258
4259 PR target/77403
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.
4263
4264 2016-08-29 David Malcolm <dmalcolm@redhat.com>
4265
4266 * selftest.h (selftest::fail): Add ATTRIBUTE_NORETURN.
4267 (selftest::fail_formatted): Likewise.
4268
4269 2016-08-29 David Malcolm <dmalcolm@redhat.com>
4270
4271 * input.c (make_location): Call get_start and get_finish
4272 on the endpoints to avoid storing packed ranges or ad-hoc
4273 ranges in them.
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.
4277
4278 2016-08-29 Tom de Vries <tom@codesourcery.com>
4279
4280 PR c/77398
4281 * gimplify.c (gimplify_va_arg_expr): Replace first argument type error
4282 with assert.
4283
4284 2016-08-29 Eric Botcazou <ebotcazou@adacore.com>
4285
4286 * Makefile.in (gcov-iov.h): Add dummy recipe.
4287
4288 2016-08-29 Nathan Sidwell <nathan@acm.org>
4289
4290 * config/nvptx/nvptx.c: #include tree-vrp.h.
4291
4292 2016-08-28 Eric Botcazou <ebotcazou@adacore.com>
4293
4294 PR target/77324
4295 * config/sparc/sparc.c (sparc_legitimate_address_p): Accept special
4296 HIGH+LO construct during reload.
4297
4298 2016-08-28 Tom de Vries <tom@codesourcery.com>
4299
4300 PR lto/70955
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'
4305 attributes.
4306
4307 2016-08-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4308
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.
4314
4315 2016-08-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4316
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.
4326
4327 2016-08-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4328
4329 * haifa-sched.c (fix_recovery_deps): Make ready_list a vector.
4330
4331 2016-08-27 Patrick Palka <ppalka@gcc.gnu.org>
4332
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.
4339
4340 2016-08-27 Gerald Pfeifer <gerald@pfeifer.com>
4341
4342 * doc/extend.texi (SPU Built-in Functions): Remove stale
4343 references to material formerly at IBM and Sony.
4344
4345 2016-08-26 David Edelsohn <dje.gcc@gmail.com>
4346
4347 PR target/77349
4348 * config/rs6000/xcoff.h (DWARF_OFFSET_SIZE): Define as PTR_SIZE.
4349
4350 2016-08-26 David Malcolm <dmalcolm@redhat.com>
4351
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.
4357
4358 2016-08-26 David Malcolm <dmalcolm@redhat.com>
4359
4360 * diagnostic-color.c (color_dict): Add "fixit-insert" and
4361 "fixit-delete".
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.
4384
4385 2016-08-26 Max Filippov <jcmvbkbc@gmail.com>
4386
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.
4391
4392 2016-08-26 Nathan Sidwell <nathan@acm.org>
4393
4394 * ipa-inline-analysis.c (inline_write_summary): Remove unnecessary
4395 assignment inside if condition.
4396
4397 2016-08-26 Richard Biener <rguenther@suse.de>
4398
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.
4403
4404 2016-08-26 Joseph Myers <joseph@codesourcery.com>
4405
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):
4411 Likewise.
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.
4417
4418 2016-08-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4419
4420 PR target/70473
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.
4427
4428 2016-08-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4429
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.
4432
4433 2016-08-26 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
4434 Martin Jambhor <mjambor@suse.cz>
4435
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,
4446 int.
4447 (bit_value_binop): Change call from bit_value_binop_1 to
4448 bit_value_binop.
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
4452 to ccp_finalize.
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
4470 PARM_DECL.
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
4477 function.
4478 (ipa_set_jf_unknown): Set ipa_bits::known to false.
4479 (ipa_compute_jump_functions_for_edge): Compute jump function for bits
4480 propagation.
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
4485 summary for ltrans.
4486 (read_ipcp_transfomration_info): Add support for reading streamed
4487 ipa_bits.
4488 (ipcp_update_bits): New function.
4489 (ipcp_transform_function): Call ipcp_update_bits.
4490
4491 2016-08-25 Szabolcs Nagy <szabolcs.nagy@arm.com>
4492
4493 * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Update.
4494 (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Update.
4495
4496 2016-08-25 David Edelsohn <dje.gcc@gmail.com>
4497
4498 * multiple_target.c (pass_data_dispatcher_calls): Fix typo.
4499
4500 2016-08-25 Richard Biener <rguenther@suse.de>
4501
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.
4506
4507 2016-08-24 Michael Collison <michael.collison@linaro.org>
4508 Michael Collison <michael.collison@arm.com>
4509
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.
4529
4530 2016-08-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
4531
4532 Revert
4533 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
4534
4535 * explow.c (get_dynamic_stack_size): Take known alignment of stack
4536 pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
4537 needed.
4538
4539 2016-08-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
4540
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.
4547
4548 2016-08-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
4549
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
4555
4556 2016-08-24 Sebastian Huber <sebastian.huber@embedded-brains.de>
4557
4558 * config/arm/t-rtems: Add vfp multilib.
4559
4560 2016-08-23 Ian Lance Taylor <iant@golang.org>
4561
4562 * config/s390/s390.c (s390_asm_file_start): Call
4563 default_file_start.
4564
4565 2016-08-23 Michael Meissner <meissner@linux.vnet.ibm.com>
4566
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
4584 initialization.
4585 (rtx_is_swappable_p): V4SImode vector initialization insn is not
4586 swappable.
4587 * config/rs6000/rs6000-protos.h (rs6000_split_v4si_init): Add
4588 declaration.
4589 * config/rs6000/vsx.md (VSX_SPLAT_I): New mode iterators and
4590 attributes to initialize V8HImode and V16QImode vectors with the
4591 same element.
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'
4607 register classes.
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
4611 element.
4612 * config/rs6000/rs6000.h (TARGET_DIRECT_MOVE_64BIT): Disallow
4613 optimization if -maltivec=be.
4614
4615 2016-08-23 Christophe Lyon <christophe.lyon@linaro.org>
4616
4617 * config/arm/arm.md (arm_movqi_insn): Swap predicable_short_it
4618 attribute for alternatives 3 and 4.
4619
4620 2016-08-23 David Malcolm <dmalcolm@redhat.com>
4621
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.
4626
4627 2016-08-23 Richard Biener <rguenther@suse.de>
4628
4629 PR tree-optimization/77286
4630 * tree-vect-loop.c (vect_analyze_loop_form_1): Do not modify
4631 the CFG here.
4632 (vect_transform_loop): Split exit edges of loop and scalar
4633 loop if required and at the appropriate time.
4634
4635 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
4636
4637 * explow.c (get_dynamic_stack_size): Take known alignment of stack
4638 pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
4639 needed.
4640 Correct a typo in a comment.
4641
4642 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
4643
4644 * config/s390/s390.md ("*andc_split"): New splitter for and with
4645 complement.
4646
4647 2016-08-23 Richard Biener <rguenther@suse.de>
4648
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.
4653
4654 2016-08-23 Richard Biener <rguenther@suse.de>
4655
4656 PR middle-end/77305
4657 * statistics.c (statistics_counter_event): Robustify against
4658 NULL current_pass.
4659
4660 2016-08-23 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
4661
4662 * config/i386/i386.c (processor_alias_table): Enable PTA_PRFCHW
4663 for targets amdfam10 and barcelona.
4664
4665 2016-08-22 Uros Bizjak <ubizjak@gmail.com>
4666
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.
4671
4672 2016-08-22 Joseph Myers <joseph@codesourcery.com>
4673
4674 PR middle-end/77269
4675 * builtins.c (fold_builtin_classify): Use builtin_decl_explicit
4676 (BUILT_IN_SIGNBIT) to expand __builtin_isinf_sign.
4677
4678 2016-08-22 Patrick Palka <ppalka@gcc.gnu.org>
4679
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().
4687
4688 2016-08-22 Joseph Myers <joseph@codesourcery.com>
4689
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
4712 and copysign.
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
4716 functions.
4717 * fold-const-call.c (fold_const_call): Use CASE_FLT_FN_FLOATN_NX
4718 for nan and nans.
4719
4720 2016-08-22 Gerald Pfeifer <gerald@pfeifer.com>
4721
4722 * doc/install.texi (Binaries): www.opencsw.org now uses https.
4723
4724 2016-08-22 Richard Biener <rguenther@suse.de>
4725
4726 * tree-ssa-forwprop.c (pass_forwprop::execute): Use RPO order.
4727
4728 2016-08-21 Uros Bizjak <ubizjak@gmail.com>
4729
4730 PR target/77270
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.
4734
4735 2016-08-20 Kugan Vivekanandarajah <kuganv@linaro.org>
4736
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.
4744
4745 2016-08-20 Kugan Vivekanandarajah <kuganv@linaro.org>
4746
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.
4756 * ssa.h: 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.
4762
4763 2016-08-20 Kugan Vivekanandarajah <kuganv@linaro.org>
4764
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).
4771
4772 2016-08-19 David Malcolm <dmalcolm@redhat.com>
4773
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
4782 function.
4783 (selftest::test_one_liner_fixit_replace_equal_secondary_range):
4784 New function.
4785 (selftest::test_diagnostic_show_locus_one_liner): Call the new
4786 functions.
4787 * diagnostic.c (print_parseable_fixits): Remove case
4788 fixit_hint::REMOVE.
4789
4790 2016-08-19 Uros Bizjak <ubizjak@gmail.com>
4791
4792 PR target/77270
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.
4800
4801 2016-08-19 Joseph Myers <joseph@codesourcery.com>
4802
4803 PR c/32187
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
4813 tree_index values.
4814 (NUM_FLOATN_TYPES, NUM_FLOATNX_TYPES, NUM_FLOATN_NX_TYPES): New
4815 macros.
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
4829 types.
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
4839 18661-3.
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
4851 field.
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
4860 float128_type_node.
4861 (rs6000_floatn_mode): New function.
4862
4863 2016-08-19 Jakub Jelinek <jakub@redhat.com>
4864
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.
4910
4911 * config/i386/fxsrintrin.h (_fxsave): Remove return keyword in inlines
4912 returning void.
4913 (_fxrstor, _fxsave64, _fxrstor64): Likewise.
4914 * config/i386/xsaveintrin.h (_xsave, _xrstor, _xsave64, _xrstor64):
4915 Likewise.
4916 * config/i386/xsaveoptintrin.h (_xsaveopt, _xsaveopt64): Likewise.
4917 * config/i386/pkuintrin.h (_wrpkru): Likewise. Add space after
4918 function name.
4919 (_rdpkru_u32): Add space after function name.
4920
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.
4924
4925 2016-08-19 Matthew Wahab <matthew.wahab@arm.com>
4926
4927 PR target/77281
4928 * config/arm/arm.c (neon_valid_immediate): Delete declaration.
4929 Use const_vec_duplicate to check for duplicated elements.
4930
4931 2016-08-19 Richard Biener <rguenther@suse.de>
4932
4933 PR tree-optimization/77290
4934 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
4935 Fix flag_tree_parallelize_loops check.
4936
4937 2016-08-19 Richard Biener <rguenther@suse.de>
4938
4939 * match.pd (x | 0 -> x): Add.
4940
4941 2016-08-19 Richard Biener <rguenther@suse.de>
4942
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.
4946
4947 2016-08-18 David Malcolm <dmalcolm@redhat.com>
4948
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.
4953
4954 2016-08-18 David Malcolm <dmalcolm@redhat.com>
4955
4956 * diagnostic-show-locus.c (colorizer::colorizer): Replace diagnostic
4957 param with diagnostic_kind.
4958 (class colorizer): Similarly replace field m_diagnostic with
4959 m_diagnostic_kind.
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
4969 function.
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
4973 function.
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
4978 functions.
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.
4986
4987 2016-08-18 David Malcolm <dmalcolm@redhat.com>
4988
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
4995 saved_line_table.
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
4999 m_old_line_table.
5000 (selftest::test_accessing_ordinary_linemaps): Update for above
5001 renaming.
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
5006 here into...
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.
5013
5014 2015-08-18 H.J. Lu <hongjiu.lu@intel.com>
5015
5016 PR target/72839
5017 * config/i386/i386.c (lakemont_cost): Set MOVE_RATIO to 17.
5018
5019 2016-08-18 Chung-Lin Tang <cltang@codesourcery.com>
5020
5021 PR middle-end/70895
5022 * gimplify.c (omp_add_variable): Adjust/add variable mapping on
5023 enclosing parallel construct for reduction variables on OpenACC loop
5024 directives.
5025
5026 2016-08-18 Pierre-Marie de Rodat <derodat@adacore.com>
5027
5028 * dwarf2out.c (copy_dwarf_procedure): Remove obsolete comment.
5029 (new_dwarf_proc_die): Emit DW_TAG_dwarf_procedure DIEs even for
5030 -gdwarf-3.
5031 (function_to_dwarf_procedure): Update comment.
5032
5033 2016-08-18 David Malcolm <dmalcolm@redhat.com>
5034
5035 * input.c (diagnostics_file_cache_forcibly_evict_file): New
5036 function.
5037 * input.h (diagnostics_file_cache_forcibly_evict_file): New
5038 declaration.
5039 * selftest.c (selftest::temp_source_file::~temp_source_file):
5040 Evict m_filename from the diagnostic file cache.
5041
5042 2016-08-18 Richard Biener <rguenther@suse.de>
5043
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
5054 SSA update.
5055
5056 2016-08-18 Richard Biener <rguenther@suse.de>
5057
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.
5062
5063 2016-08-18 Tamar Christina <tamar.christina@arm.com>
5064 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5065
5066 * varasm.c (default_use_anchors_for_symbol_p): Reject too large decls.
5067
5068 2016-08-18 Richard Biener <rguenther@suse.de>
5069
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.
5079
5080 2016-08-18 Jakub Jelinek <jakub@redhat.com>
5081
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.
5089
5090 2016-08-17 David Malcolm <dmalcolm@redhat.com>
5091
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
5099 actual_num_ranges.
5100
5101 2016-08-18 Alan Modra <amodra@gmail.com>
5102
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.
5107
5108 2015-08-17 Alan Hayward <alan.hayward@arm.com>
5109
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.
5113
5114 2016-08-17 Jakub Jelinek <jakub@redhat.com>
5115
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.
5121
5122 PR middle-end/77259
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.
5128
5129 2016-08-17 Chung-Lin Tang <cltang@codesourcery.com>
5130
5131 * omp-low.c (lower_oacc_reductions): Adjust variable lookup to use
5132 maybe_lookup_decl, to handle nested acc loop directives.
5133
5134 2016-08-17 Richard Biener <rguenther@suse.de>
5135
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
5147 on the backedge.
5148
5149 2016-08-17 Thomas Preud'homme <thomas.preudhomme@arm.com>
5150
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.
5154
5155 2016-08-17 Stanislaw Halik <sthalik@misaki.pl>
5156
5157 PR target/66488
5158 * config/i386/xm-mingw32.h (HOST_BITS_PER_PTR): Define if __x86_64__.
5159
5160 2016-08-17 Richard Biener <rguenther@suse.de>
5161
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.
5173
5174 2016-08-17 Richard Biener <rguenther@suse.de>
5175
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.
5183
5184 2016-08-17 Martin Liska <mliska@suse.cz>
5185
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
5191 comparison.
5192
5193 2016-08-16 Jakub Jelinek <jakub@redhat.com>
5194
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.
5209
5210 2016-08-16 Uros Bizjak <ubizjak@gmail.com>
5211
5212 * config/i386/i386.md (*ashl<mode>3_mask): Rewrite define_insn
5213 pattern as define_insn_and_split. Split insn before reload to
5214 ashl<mode>3_1.
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.
5219
5220 2016-08-16 David Malcolm <dmalcolm@redhat.com>
5221
5222 PR c/72857
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
5226 location_t *.
5227 (get_source_range_for_char): New function.
5228 (get_num_source_ranges_for_substring): Update comment to reflect
5229 above renaming.
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
5234 to...
5235 (get_source_location_for_substring): ...this, and adding param
5236 "caret_idx", and converting output param from source_range * to
5237 location_t *.
5238
5239 2016-08-16 David Malcolm <dmalcolm@redhat.com>
5240
5241 * input.c (class selftest::temp_source_file): Move to
5242 selftest.h.
5243 (selftest::temp_source_file::temp_source_file): Move to
5244 selftest.c.
5245 (selftest::temp_source_file::~temp_source_file): Likewise.
5246 * selftest.c (selftest::temp_source_file::temp_source_file): Move
5247 here from input.c.
5248 (selftest::temp_source_file::~temp_source_file): Likewise.
5249 * selftest.h (class selftest::temp_source_file): Move here from
5250 input.c
5251
5252 2016-08-16 Jakub Jelinek <jakub@redhat.com>
5253
5254 PR target/71910
5255 * tree-cfg.c (execute_fixup_cfg): Add node variable, use it. Before
5256 inlining, add cgraph edge for the added __builtin_unreachable call.
5257
5258 PR middle-end/67485
5259 * expmed.c (expand_mult_const): Change val_so_far's type to UHWI,
5260 only cast it to SHWI for the final comparison.
5261
5262 2016-08-16 Martin Liska <mliska@suse.cz>
5263
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
5270 filename.
5271
5272 2016-08-16 Bin Cheng <bin.cheng@arm.com>
5273
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.
5279
5280 2016-08-16 Eric Botcazou <ebotcazou@adacore.com>
5281
5282 * doc/install.texi (*-*-solaris2*): Adjust latest change.
5283
5284 2016-08-16 Richard Biener <rguenther@suse.de>
5285
5286 PR tree-optimization/76783
5287 * tree-ssa-propagate.c (ssa_prop_init): Use RPO order. Clear
5288 BB visited flags at start.
5289
5290 2016-08-16 Bin Cheng <bin.cheng@arm.com>
5291
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.
5296
5297 2016-08-15 Uros Bizjak <ubizjak@gmail.com>
5298
5299 PR target/72867
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>):
5307 New insn pattern.
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
5313 flag_signed_zeros.
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.
5321
5322 2016-08-15 Segher Boessenkool <segher@kernel.crashing.org>
5323
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.
5327
5328 2016-08-15 Martin Liska <mliska@suse.cz>
5329
5330 PR driver/72765
5331 * gcc.c (do_spec_1): Call save_string with the right size.
5332 (save_string): Do an assert about string we copy.
5333
5334 2016-08-15 Richard Biener <rguenther@suse.de>
5335
5336 * ree.c (rest_of_handle_ree): Remove redundant timevar push/pop.
5337 * config/i386/i386.c (pass_data_insert_vzeroupper): Account to
5338 TV_MACH_DEP.
5339 (pass_data_stv): Likewise.
5340
5341 2016-08-15 Richard Biener <rguenther@suse.de>
5342
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.
5346
5347 2016-08-15 Jakub Jelinek <jakub@redhat.com>
5348
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.
5360
5361 PR debug/71906
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
5366 to string length.
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):
5371 New functions.
5372 (resolve_addr): Adjust DW_AT_string_length if it is DW_OP_call4.
5373
5374 2016-08-15 Eric Botcazou <ebotcazou@adacore.com>
5375
5376 * doc/install.texi (*-*-solaris2*): Fix version number and document
5377 requirement on GNU make for building libjava with the Solaris linker.
5378
5379 2016-08-15 Martin Liska <mliska@suse.cz>
5380 Jakub Jelinek <jakub@redhat.com>
5381
5382 PR tree-optimization/72824
5383 * tree-loop-distribution.c (const_with_all_bytes_same)
5384 <case VECTOR_CST>: Fix a typo.
5385
5386 2016-08-14 Uros Bizjak <ubizjak@gmail.com>
5387
5388 PR target/76342
5389 * config/i386/avx512fintrin.h (_mm512_undefined_epi32):
5390 Renamed from _mm512_undefined_si512.
5391 (_mm_undefined_si512): New definition.
5392
5393 2016-08-13 Richard Biener <rguenther@suse.de>
5394
5395 * tree-ssa-forwprop.c (pass_forwprop::execute): Propagate
5396 into PHIs and update the lattice for its def.
5397
5398 2016-08-12 Jakub Jelinek <jakub@redhat.com>
5399
5400 PR c/71512
5401 * ubsan.c (instrument_si_overflow): Pass true instead of false
5402 to gsi_replace.
5403 (pass_ubsan::execute): Call gimple_purge_dead_eh_edges at the end
5404 of bbs. Return TODO_cleanup_cfg if any returned true.
5405
5406 2016-08-12 Michael Meissner <meissner@linux.vnet.ibm.com>
5407
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
5411 vecperm.
5412
5413 2016-08-12 Bernd Edlinger <bernd.edlinger@hotmail.de>
5414
5415 PR tree-optimization/71083
5416 * tree-predcom.c (ref_at_iteration): Use a COMPONENT_REF for the
5417 bitfield access when possible.
5418
5419 2016-08-12 Patrick Palka <ppalka@gcc.gnu.org>
5420
5421 PR middle-end/71654
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
5424 signed type.
5425
5426 2016-08-12 Jakub Jelinek <jakub@redhat.com>
5427
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.
5431
5432 2016-08-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5433
5434 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
5435 Correct costs for vec_construct.
5436
5437 2016-08-12 Bin Cheng <bin.cheng@arm.com>
5438
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.
5444
5445 2016-08-12 Richard Biener <rguenther@suse.de>
5446
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.
5452
5453 2016-08-12 Martin Liska <mliska@suse.cz>
5454 Adam Fineman <afineman@afineman.com>
5455
5456 * gcov.c (process_file): Create .gcov file when .gcda
5457 file is missing.
5458
5459 2016-08-12 Marek Polacek <polacek@redhat.com>
5460
5461 PR c/7652
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
5472 FALLTHRU.
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
5492 comment.
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
5517 through comment.
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
5522 comment.
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.
5553
5554 2016-08-12 Marek Polacek <polacek@redhat.com>
5555
5556 PR c/7652
5557 * tree-complex.c (expand_complex_division): Add missing break.
5558
5559 2016-08-12 Richard Biener <rguenther@suse.de>
5560
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.
5577
5578 2016-08-12 Richard Biener <rguenther@suse.de>
5579
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):
5587 New globals.
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.
5599
5600 2016-08-12 Richard Biener <rguenther@suse.de>
5601
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.
5605
5606 2016-08-12 Alexandre Oliva <aoliva@redhat.com>
5607
5608 PR debug/63240
5609 * langhooks-def.h
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.
5620
5621 PR debug/55641
5622 * dwarf2out.c (decl_quals): Don't map TREE_READONLY to
5623 TYPE_QUAL_CONST in reference-typed decls.
5624
5625 PR debug/49366
5626 * dwarf2out.c (loc_list_from_tree_1): Expand some CONSTRUCTORs
5627 in DW_OP_pieces, just enough to handle pointers to member
5628 functions.
5629 (gen_remaining_tmpl_value_param_die_attribute): Use a location
5630 expression on DWARFv5 if a constant value doesn't work.
5631
5632 2016-08-11 David Malcolm <dmalcolm@redhat.com>
5633
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.
5638
5639 2016-08-11 Richard Biener <rguenther@suse.de>
5640 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5641
5642 PR rtl-optimization/72855
5643 * df-core.c (df_verify): Turn off DF_VERIFY_SCHEDULED at end.
5644
5645 2016-08-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5646
5647 PR target/72863
5648 * vsx.md (vsx_load_<mode>): For P8LE, emit swaps at expand time.
5649 (vsx_store_<mode>): Likewise.
5650
5651 2015-08-11 H.J. Lu <hongjiu.lu@intel.com>
5652
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.
5656
5657 2015-08-11 H.J. Lu <hongjiu.lu@intel.com>
5658
5659 * config/i386/i386.h (MOVE_MAX_PIECES): Use TImode in 64-bit
5660 mode if unaligned SSE load and store are optimal.
5661
5662 2016-08-11 Bernd Edlinger <bernd.edlinger@hotmail.de>
5663
5664 PR tree-optimization/71083
5665 * tree-predcom.c (ref_at_iteration): Correctly align the
5666 reference type.
5667
5668 2016-08-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5669
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.
5677 Fix comment.
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.
5688
5689 2016-08-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5690
5691 * config/s390/s390-builtins.def: Mark last operand of s390_vlvg*
5692
5693 2016-08-11 Bin Cheng <bin.cheng@arm.com>
5694
5695 * config/aarch64/aarch64-simd.md (vcond<mode><mode>): Delete
5696 unused declaration.
5697 (vcond<v_cmp_mixed><mode>): Ditto.
5698 (vcondu<mode><mode>, vcondu<mode><v_cmp_mixed>): Ditto.
5699
5700 2016-08-11 Bin Cheng <bin.cheng@arm.com>
5701
5702 * config/aarch64/aarch64-simd.md (vec_cmp<mode><v_cmp_result>): Init
5703 variable explicitly, also assert on it before use.
5704
5705 2016-08-11 Richard Biener <rguenther@suse.de>
5706
5707 PR tree-optimization/72772
5708 * cfgloopmanip.c (create_preheader): Use split_edge if there
5709 is a single loop entry, avoiding degenerate PHIs.
5710
5711 2016-08-11 Richard Biener <rguenther@suse.de>
5712
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.
5717
5718 2016-08-11 Alan Modra <amodra@gmail.com>
5719
5720 PR target/71680
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.
5725
5726 2016-08-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
5727
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
5759 operation.
5760 (VSESDP): Add overload support for scalar extract signature
5761 operation.
5762 (VSTDCN): Add overload support for scalar test negative
5763 operation.
5764 (VSTDCNDP): Add overload support for scalar test negative
5765 operation.
5766 (VSTDCNSP): Add overload support for scalar test negative
5767 operation.
5768 (VSIEDP): Add overload support for scalar insert exponent
5769 operation.
5770 (VSTDC): Add overload support for scalar test data class
5771 operation.
5772 (VSTDCDP): Add overload support for scalar test data class
5773 operation.
5774 (VSTDCSP): Add overload support for scalar test data class
5775 opreation.
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.
5785 (VEESP): Likewise.
5786 (VESDP): Add vector extract significand support.
5787 (VESSP): Likewise.
5788 (VIEDP): Add vector insert exponent support.
5789 (VIESP): Likewise.
5790 (VTDCDP): Add vector test data class support.
5791 (VTDCSP): Likewise.
5792 (VES): Add overload support for vector extract significand operation.
5793 (VESDP): Likewise.
5794 (VESSP): Likewise
5795 (VEE): Add overload support for vector extract exponent operation.
5796 (VEEDP): Likewise.
5797 (VEESP): Likewise.
5798 (VTDC): Add overload support for vector test data class operation.
5799 (VTDCDP): Likewise.
5800 (VTDCSP): Likewise.
5801 (VIE): Add overload support for vector insert exponent operation.
5802 (VIEDP): Likewise.
5803 (VIESP): Likewise.
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):
5812 New prototype.
5813 * config/rs6000/rs6000.c (rs6000_overloaded_builtin_name): New
5814 function.
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
5840 operation.
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.
5852
5853 2016-08-10 bin cheng <bin.cheng@arm.com>
5854
5855 * doc/sourcebuild.texi (@item vect_cond_mixed): New item.
5856
5857 2016-08-10 Alan Lawrence <alan.lawrence@arm.com>
5858 Renlin Li <renlin.li@arm.com>
5859 Bin Cheng <bin.cheng@arm.com>
5860
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.
5873
5874 2016-08-10 Alan Lawrence <alan.lawrence@arm.com>
5875 Renlin Li <renlin.li@arm.com>
5876 Bin Cheng <bin.cheng@arm.com>
5877
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.
5882
5883 2016-08-10 Yuri Rumyantsev <ysrumyan@gmail.com>
5884
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
5893 non-zero SAFELEN.
5894 (ref_indep_loop_p_2): Delete function.
5895 (can_sm_ref_p): Pass LOOP as additional argument to
5896 ref_indep_loop_p.
5897
5898 2016-08-10 Michael Meissner <meissner@linux.vnet.ibm.com>
5899
5900 PR target/72853
5901 * config/rs6000/rs6000.c (mem_operand_ds_form): Add check for op
5902 being an offsettable address.
5903
5904 2016-08-10 Martin Liska <mliska@suse.cz>
5905
5906 PR gcov-profile/58306
5907 * tree-profile.c (gimple_init_edge_profiler): Create conditionally
5908 atomic variants of profile update functions.
5909
5910 2016-08-10 Martin Liska <mliska@suse.cz>
5911
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.
5922
5923 2016-08-10 David Malcolm <dmalcolm@redhat.com>
5924
5925 * toplev.c (finalize): Set aux_info_file, asm_out_file, and
5926 stack_usage_file to NULL after fclose calls.
5927
5928 2016-08-10 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
5929
5930 PR target/71873
5931 * reload.c (push_reload): Compute subreg_in_class for
5932 subregs of constants and plus expressions. Remove special
5933 handling of SYMBOL_REFs.
5934
5935 2016-08-10 Alan Modra <amodra@gmail.com>
5936
5937 PR target/71680
5938 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Return
5939 SImode for TARGET_E500_DOUBLE when given SImode.
5940
5941 2016-08-09 David Wohlferd <dw@LimeGreenSocks.com>
5942
5943 * config/i3836/avx512fintrin.h (_mm512_cvtsepi64_epi32): Remove
5944 unused variable __O.
5945
5946 2016-08-09 Martin Liska <mliska@suse.cz>
5947
5948 * doc/gcov.texi: Change _gcov_dump to __gcov_dump and
5949 _gcov_reset to __gcov_reset.
5950 * doc/gcov-tool.texi: Fix typo.
5951
5952 2016-08-09 Martin Liska <mliska@suse.cz>
5953
5954 * value-prof.c (gimple_divmod_values_to_profile): Do not
5955 instrument MOD histogram if a value is not a SSA name.
5956
5957 2016-08-09 Martin Liska <mliska@suse.cz>
5958
5959 * value-prof.c (dump_histogram_value): Swap pow2 and non-pow2
5960 values.
5961
5962 2016-08-09 Renlin Li <renlin.li@arm.com>
5963
5964 PR middle-end/64971
5965 * calls.c (prepare_call_address): Convert funexp to Pmode when
5966 necessary.
5967 * config/aarch64/aarch64.md (sibcall): Remove fix for PR 64971.
5968 (sibcall_value): Likewise.
5969
5970 2016-08-09 Marek Polacek <polacek@redhat.com>
5971
5972 PR c/7652
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.
5977
5978 2016-08-09 Martin Jambor <mjambor@suse.cz>
5979
5980 PR ipa/71981
5981 * ipa-polymorphic-call.c (get_dynamic_type): Bail out gracefully
5982 if instance is a MEM_REF.
5983
5984 2016-08-09 Uros Bizjak <ubizjak@gmail.com>
5985
5986 PR target/72843
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.
5993
5994 2016-08-09 Bin Cheng <bin.cheng@arm.com>
5995
5996 PR tree-optimization/72772
5997 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
5998 for expanded base.
5999
6000 2016-08-09 Bin Cheng <bin.cheng@arm.com>
6001
6002 PR tree-optimization/72772
6003 * tree-ssa-loop-niter.h (simplify_using_initial_conditions): Delete
6004 parameter STOP.
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
6009 STOP.
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.
6013
6014 2016-08-09 Matthew Fortune <matthew.fortune@imgtec.com>
6015
6016 PR c/65345
6017 * config/mips/mips.c (mips_atomic_assign_expand_fenv):
6018 Use create_tmp_var_raw instead of create_tmp_var.
6019
6020 2016-08-09 Richard Biener <rguenther@suse.de>
6021
6022 * tree-ssa-threadbackward.c (profitable_jump_thread_path):
6023 Treat same SSA names related.
6024
6025 2016-08-09 Jakub Jelinek <jakub@redhat.com>
6026
6027 PR tree-optimization/72824
6028 * tree-loop-distribution.c (const_with_all_bytes_same): Verify
6029 real_zerop is not negative.
6030
6031 2016-08-09 Richard Biener <rguenther@suse.de>
6032
6033 PR tree-optimization/71802
6034 * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Make sure to catch
6035 all merge opportunities with the predecessor.
6036
6037 2016-08-09 Richard Biener <rguenther@suse.de>
6038
6039 PR ipa/68273
6040 * ipa-prop.c (ipa_modify_formal_parameters): Build
6041 parameter types with natural alignment also for the
6042 over-aligned case.
6043
6044 2016-08-08 Andi Kleen <ak@linux.intel.com>
6045
6046 * tree-vrp.c (get_single_symbol): Always initialize inv and neg.
6047
6048 2016-08-08 David Malcolm <dmalcolm@redhat.com>
6049
6050 PR c/64955
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.
6057
6058 2016-08-08 David Malcolm <dmalcolm@redhat.com>
6059
6060 PR bootstrap/72844
6061 * input.c: Ensure that HAVE_ICONV is defined.
6062
6063 2016-08-08 Jakub Jelinek <jakub@redhat.com>
6064
6065 PR middle-end/72781
6066 * omp-low.c (lower_lastprivate_clauses): Set TREE_NO_WARNING on the
6067 private vars for lastprivate and for linear iterator.
6068
6069 PR middle-end/68762
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.
6075
6076 2016-07-29 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
6077
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,
6082
6083 2016-08-08 Jakub Jelinek <jakub@redhat.com>
6084
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.
6088
6089 2016-08-08 Alan Modra <amodra@gmail.com>
6090
6091 PR target/72771
6092 * config/rs6000/rs6000.c (toc_relative_expr_p): Allow (lo_sum (high))
6093 toc refs created during reload. Update function comment.
6094
6095 2016-08-08 Alan Modra <amodra@gmail.com>
6096
6097 PR target/72802
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.
6101
6102 2016-08-08 Alan Modra <amodra@gmail.com>
6103
6104 PR target/72802
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.
6112
6113 2016-08-07 Jan Hubicka <hubicka@ucw.cz>
6114
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.
6120
6121 2016-08-07 Jakub Jelinek <jakub@redhat.com>
6122
6123 PR c/72816
6124 * stor-layout.c (layout_decl): Fix up formatting.
6125 (relayout_decl): Allow DECL to be FIELD_DECL.
6126
6127 2016-08-07 Alan Modra <amodra@gmail.com>
6128
6129 * config/rs6000/rs6000.md (fix_trunc<mode>si2): Fix mode of reg.
6130
6131 2016-08-07 Kugan Vivekanandarajah <kuganv@linaro.org>
6132
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
6138 data-stream-in.c.
6139 (input_cfg): Call renamed function.
6140 * lto-streamer-out.c (streamer_write_wi): Renamed and moved to
6141 data-stream-out.c.
6142 (output_cfg): Call renamed function.
6143 * data-streamer.h: Add declarations.
6144
6145 2016-08-08 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6146
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.
6151
6152 2016-08-06 Jakub Jelinek <jakub@redhat.com>
6153
6154 * gcov.c (handle_cycle): Use INTTYPE_MAXIMUM (int64_t) instead of
6155 INT64_MAX.
6156
6157 2016-08-06 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6158
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.
6161
6162 2016-08-05 Patrick Palka <ppalka@gcc.gnu.org>
6163
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
6172 CASE_LABEL_EXPR.
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
6176 will be taken.
6177
6178 2016-08-05 Vladimir Makarov <vmakarov@redhat.com>
6179
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.
6184
6185 2016-08-05 David Malcolm <dmalcolm@redhat.com>
6186
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
6225 function.
6226 (selftest::test_lexer_string_locations_concatenation_2): New
6227 function.
6228 (selftest::test_lexer_string_locations_concatenation_3): New
6229 function.
6230 (selftest::test_lexer_string_locations_macro): New function.
6231 (selftest::test_lexer_string_locations_stringified_macro_argument):
6232 New function.
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.
6242
6243 2016-08-05 Patrick Palka <ppalka@gcc.gnu.org>
6244
6245 PR tree-optimization/72810
6246 * tree-vrp.c (simplify_switch_using_ranges): Avoid changing
6247 the type of the case labels when truncating.
6248
6249 2016-08-05 James Greenhalgh <james.greenhalgh@arm.com>
6250
6251 PR Target/72819
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
6260 HFmode.
6261 (aapcs_vfp_sub_candidate): Likewise.
6262
6263 2016-08-05 Martin Liska <mliska@suse.cz>
6264 Joshua Cranmer <Pidgeot18@gmail.com>
6265
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.
6273
6274 2016-08-05 Martin Liska <mliska@suse.cz>
6275
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.
6282
6283 2016-08-05 Richard Biener <rguenther@suse.de>
6284
6285 * tree-ssa-threadupdate.c (thread_block_1): Remove unnecessary
6286 restriction on threading to a loop header.
6287
6288 2016-08-05 Richard Biener <rguenther@suse.de>
6289
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.
6293
6294 2016-08-05 Kugan Vivekanandarajah <kuganv@linaro.org>
6295
6296 * tree-vrp.c (extract_range_basic): Check cfun->after_inlining
6297 before folding call to __builtin_constant_p with parameters to false.
6298
6299 2016-08-05 Alan Modra <amodra@gmail.com>
6300
6301 * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Delete
6302 code accidentally committed 2016-05-02 providing class when given
6303 NO_REGS.
6304
6305 2016-08-04 Patrick Palka <ppalka@gcc.gnu.org>
6306
6307 * tree-vrp.c (simplify_switch_using_ranges): Try to truncate
6308 the case label ranges that partially overlap with OP's value
6309 range.
6310
6311 2016-08-04 Uros Bizjak <ubizjak@gmail.com>
6312
6313 PR target/72805
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.
6319
6320 2016-08-04 David Malcolm <dmalcolm@redhat.com>
6321
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.
6327
6328 2016-08-04 Patrick Palka <ppalka@gcc.gnu.org>
6329
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.
6333
6334 2016-08-04 Andrew Pinski <apinski@cavium.com>
6335
6336 * config/aarch64/aarch64.c (thunderx_vector_cost): New variable.
6337 (thunderx_tunings): Use thunderx_vector_cost instead of
6338 generic_vector_cost.
6339
6340 2016-08-04 Martin Liska <mliska@suse.cz>
6341
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.
6357
6358 2016-08-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
6359
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.
6364
6365 PR rtl-optimization/70903
6366 * cse.c (cse_insn): If DEST is a paradoxical SUBREG, don't record DEST.
6367
6368 2016-08-04 Kugan Vivekanandarajah <kuganv@linaro.org>
6369
6370 * tree-inline.c (remap_ssa_name): Check for POINTER_TYPE_P before
6371 accessing SSA_NAME_PTR_INFO.
6372
6373 2016-08-04 Georg-Johann Lay <avr@gjlay.de>
6374
6375 PR 70677
6376 * common/config/avr/avr-common.c (avr_option_optimization_table)
6377 [OPT_LEVELS_ALL]: Turn off -fcaller-saves.
6378
6379 2016-08-04 Georg-Johann Lay <avr@gjlay.de>
6380
6381 PR 55181
6382 * config/avr/avr.md: New pattern to work around do_store_flag
6383 generating shift instructions for bit extractions.
6384
6385 2016-08-04 Kugan Vivekanandarajah <kuganv@linaro.org>
6386
6387 * tree-vrp.c (set_value_range): Use vrp_equiv_obstack with
6388 BITMAP_ALLOC.
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.
6393
6394 2016-08-03 Peter Bergner <bergner@vnet.ibm.com>
6395
6396 * config/rs6000/rs6000.c (rs6000_option_override_internal): Make LRA
6397 the default for the rs6000 port.
6398
6399 2016-08-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
6400
6401 PR middle-end/71876
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.
6406
6407 2016-08-03 Vladimir Makarov <vmakarov@redhat.com>
6408
6409 PR middle-end/72778
6410 * lra-spills.c (regno_in_use_p): Check bb and regno modification.
6411 Don't stop on regular insns.
6412
6413 2016-08-03 Nathan Sidwell <nathan@codesourcery.com>
6414
6415 * config/nvptx/nvptx.c (nvptx_declare_function_name): Round frame
6416 size to DImode boundary.
6417 (nvptx_propagate): Likewise.
6418
6419 2016-08-03 Alan Modra <amodra@gmail.com>
6420
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.
6425
6426 2016-08-03 Alan Modra <amodra@gmail.com>
6427
6428 * config/rs6000/rs6000.c (rs6000_rtx_costs): Make unaligned mem
6429 cost more.
6430
6431 2016-08-03 Alan Modra <amodra@gmail.com>
6432
6433 * config/rs6000/rs6000.md (fix_trunc<mode>si2): Force source operand
6434 to a reg. Localize vars.
6435
6436 2016-08-03 Alan Modra <amodra@gmail.com>
6437
6438 * config/rs6000/rs6000.opt: Remove negatives from help strings
6439 and comments.
6440
6441 2016-08-03 Alan Modra <amodra@gmail.com>
6442
6443 * config/rs6000/rs6000.c (rs6000_secondary_reload_direct_move):
6444 Delete duplicated code.
6445
6446 2016-08-02 Vladimir Makarov <vmakarov@redhat.com>
6447
6448 PR middle-end/72778
6449 * lra-spills.c (regno_in_use_p): New.
6450 (lra_final_code_change): Use it.
6451
6452 2016-08-02 Vladimir Makarov <vmakarov@redhat.com>
6453
6454 PR rtl-optimization/69847
6455 * lra-int.h (struct lra-reg): Use restore_rtx instead of
6456 restore_regno.
6457 (lra_rtx_hash): New.
6458 * lra.c (initialize_lra_reg_info_element): Use restore_rtx instead
6459 of restore_regno.
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
6465 of restore_regno.
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
6479 inheritance.
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.
6486
6487 2016-02-08 James Greenhalgh <james.greenhalgh@arm.com>
6488
6489 * config/aarch64/arm_neon.h (vminnm_f64): Add back missing 'f' from
6490 __builtin_aarch64_fmindf.
6491
6492 2016-08-02 Bin Cheng <bin.cheng@arm.com>
6493
6494 PR tree-optimization/34114
6495 * tree-ssa-loop-niter.c (number_of_iterations_ne): Prove no-overflow
6496 information for more control IVs.
6497
6498 2016-08-02 Bin Cheng <bin.cheng@arm.com>
6499
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.
6503
6504 2016-08-02 Tamar Christina <tamar.christina@arm.com>
6505
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.
6523
6524 2016-08-01 Michael Meissner <meissner@linux.vnet.ibm.com>
6525
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
6546 2.07 systems.
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.
6557
6558 2016-08-01 Georg-Johann Lay <avr@gjlay.de>
6559
6560 PR target/71948
6561 * config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_PM): Use a value that
6562 does not overlap with other symbol flags.
6563
6564 2016-08-01 Wilco Dijkstra <wdijkstr@arm.com>
6565
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.
6580
6581 2015-08-01 H.J. Lu <hongjiu.lu@intel.com>
6582
6583 PR target/72748
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.
6587
6588 2015-08-01 Alan Hayward <alan.hayward@arm.com>
6589
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
6593
6594 2016-08-01 Georg-Johann Lay <avr@gjlay.de>
6595
6596 PR target/72767
6597 * config/avr/avr.md (length) [branch]: Correct insn length
6598 attribute for forward branches.
6599
6600 2016-08-01 Georg-Johann Lay <avr@gjlay.de>
6601
6602 * doc/extend.texi (AVR Built-in Functions): Document
6603 __builtin_avr_nops.
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.
6607
6608 2016-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6609
6610 * config/aarch64/aarch64.c (aarch64_classify_address): Use DImode when
6611 performing aarch64_offset_7bit_signed_scaled_p check for TImode LDP/STP
6612 addresses.
6613
6614 2016-08-01 Virendra Pathak <virendra.pathak@broadcom.com>
6615
6616 * config/aarch64/aarch64.c (vulcan_tunings): Update
6617 vulcan L1 cache_line_size.
6618
6619 2016-07-30 Michael Meissner <meissner@linux.vnet.ibm.com>
6620
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
6628 location.
6629 (rtx_is_swappable_p): VLSO insns (UNSPEC_VSX_VSLOW) are not
6630 swappable.
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
6638 store instruction.
6639 (vsx_extract_<mode>_var): Add support for extracting a variable
6640 element number from memory.
6641
6642 2016-07-29 Georg-Johann Lay <avr@gjlay.de>
6643
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.
6646
6647 2016-07-29 Bin Cheng <bin.cheng@arm.com>
6648
6649 PR tree-optimization/57558
6650 * tree-vect-loop-manip.c (vect_create_cond_for_niters_checks): New
6651 function.
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.
6670
6671 2016-07-29 Bin Cheng <bin.cheng@arm.com>
6672
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
6676 functions.
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
6682 constraints.
6683
6684 2016-07-29 Marek Polacek <polacek@redhat.com>
6685
6686 PR c/7652
6687 * config/i386/i386.c (ix86_expand_args_builtin): Add break.
6688 (ix86_expand_round_builtin): Likewise.
6689
6690 2016-07-29 Segher Boessenkool <segher@kernel.crashing.org>
6691 Georg-Johann Lay <avr@gjlay.de>
6692
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.
6696
6697 2016-07-29 Marek Polacek <polacek@redhat.com>
6698
6699 PR c/7652
6700 * config/rs6000/rs6000.c (altivec_expand_ld_builtin): Add break.
6701 (altivec_expand_st_builtin): Likewise.
6702
6703 2016-07-29 Georg-Johann Lay <avr@gjlay.de>
6704
6705 * config/avr/avr.md (addqi3) [cc]: Revert glitch in insn attribute
6706 introduced in r238381.
6707
6708 2016-07-29 Kugan Vivekanandarajah <kuganv@linaro.org>
6709
6710 PR middle-end/68217
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].
6713
6714 2016-07-28 Michael Meissner <meissner@linux.vnet.ibm.com>
6715
6716 * config/rs6000/rs6000-protos.h (rs6000_split_vec_extract_var):
6717 New declaration.
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):
6722 Likewise.
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
6726 swappable.
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
6732 instruction.
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
6737 vectors.
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.
6743
6744 2016-07-28 Kristina Martsenko <kristina.martsenko@arm.com>
6745 2016-07-28 Wilco Dijkstra <wdijkstr@arm.com>
6746
6747 * config/aarch64/aarch64.md
6748 (zero_extend<SHORT:mode><GPI:mode>2_aarch64): Change output
6749 statement and type.
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
6755 uxtb/uxth.
6756
6757 2016-07-28 Kristina Martsenko <kristina.martsenko@arm.com>
6758
6759 * config/aarch64/aarch64.c (aarch64_rtx_costs): Fix cost of zero extend.
6760
6761 2016-07-28 Wilco Dijkstra <wdijkstr@arm.com>
6762
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.
6768
6769 2016-07-28 Yuri Rumyantsev <ysrumyan@gmail.com>
6770
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.
6777
6778 2016-07-28 Ilya Enkovich <ilya.enkovich@intel.com>
6779
6780 PR middle-end/72657
6781 PR target/72683
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.
6785
6786 2016-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6787
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):
6802 * Likewise.
6803 * config/mips/mips.c (mips_adjust_cost): Likewise.
6804 * config/mn10300/mn10300.c (mn10300_adjust_sched_cost):
6805 * Likewise.
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):
6816 * Likewise.
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.
6821
6822 2016-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6823
6824 * haifa-sched.c (add_to_speculative_block): Make twins a vector.
6825
6826 2016-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6827
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.
6836
6837 2016-07-28 Martin Liska <mliska@suse.cz>
6838
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
6843 attribute.
6844
6845 2016-07-28 Martin Liska <mliska@suse.cz>
6846
6847 PR rtl-optimization/70944
6848 * combine.c (make_compound_operation):
6849 Do not allow make_compound_operation for vector mode
6850
6851 2016-07-28 Kugan Vivekanandarajah <kuganv@linaro.org>
6852
6853 PR middle-end/71994
6854 * tree-ssa-reassoc.c (maybe_optimize_range_tests): Check tcc_comparison
6855 before calling get_ops.
6856
6857 2016-07-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
6858
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.
6865
6866 2016-07-27 Michael Meissner <meissner@linux.vnet.ibm.com>
6867
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):
6872 Likewise.
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.
6878
6879 2016-07-27 David Malcolm <dmalcolm@redhat.com>
6880
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
6885 get_range_from_loc.
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.
6894
6895 2016-07-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6896
6897 PR middle-end/71078
6898 * match.pd (x / abs(x) -> copysign(1.0, x)): New pattern.
6899
6900 2016-07-27 David Malcolm <dmalcolm@redhat.com>
6901
6902 * system.h (STATIC_ASSERT): Use static_assert if building
6903 with C++11 onwards.
6904
6905 2016-07-27 Richard Biener <rguenther@suse.de>
6906
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.
6910
6911 2016-07-27 Richard Biener <rguenther@suse.de>
6912
6913 * predict.c (set_even_probabilities): Make nedges unsigned.
6914
6915 2016-07-27 Martin Liska <mliska@suse.cz>
6916
6917 * predict.c (set_even_probabilities): Handle unlikely edges.
6918 (combine_predictions_for_bb): Likewise.
6919
6920 2016-07-26 Michael Meissner <meissner@linux.vnet.ibm.com>
6921
6922 PR target/71869
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.
6928
6929 2016-07-26 Patrick Palka <ppalka@gcc.gnu.org>
6930
6931 * tree-vrp.c (dump_asserts_for): Print loc->expr instead of
6932 name.
6933 (extract_code_and_val_from_cond_with_ops): Verify that name is
6934 either cond_op0 or cond_op1.
6935
6936 2016-07-26 Patrick Palka <ppalka@gcc.gnu.org>
6937
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.
6950
6951 2016-07-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6952
6953 * gimple-ssa-strength-reduction.c (slsr_process_phi): Remove dead
6954 and unnecessary call to gimple_bb.
6955
6956 2016-07-26 Richard Biener <rguenther@suse.de>
6957
6958 PR rtl-optimization/71984
6959 * simplify-rtx.c (simplify_subreg): Use GET_MODE_SIZE and prepare
6960 for VOIDmode.
6961
6962 2016-07-26 Richard Biener <rguenther@suse.de>
6963
6964 PR middle-end/72517
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.
6968
6969 2016-07-26 Richard Biener <rguenther@suse.de>
6970 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6971
6972 PR middle-end/70920
6973 * match.pd ((intptr)x eq/ne CST to x eq/ne (typeof x) CST): New
6974 pattern.
6975
6976 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6977
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.
6987
6988 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6989
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.
6995
6996 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6997
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.
7014
7015 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7016
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):
7068 * Likewise.
7069 (try_peel_loop): Likewise.
7070 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop):
7071 * Likewise.
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.
7077
7078 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7079
7080 * sbitmap.h (auto_sbitmap): New class.
7081
7082 2016-07-26 Alan Modra <amodra@gmail.com>
7083
7084 PR target/72103
7085 * config/rs6000/rs6000.c (rs6000_secondary_reload): Initialize
7086 sri->t_icode.
7087
7088 2016-07-25 David Malcolm <dmalcolm@redhat.com>
7089
7090 * input.c (selftest::temp_source_file::temp_source_file): Fix
7091 missing "%s" in fprintf.
7092
7093 2016-07-25 John David Anglin <danglin@gcc.gnu.org>
7094
7095 PR middle-end/71732
7096 * cselib.c (cselib_process_insn): Invalidate argument slots for
7097 const/pure calls.
7098
7099 2016-07-25 Jiong Wang <jiong.wang@arm.com>
7100
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.
7104
7105 2016-07-25 Jiong Wang <jiong.wang@arm.com>
7106
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.
7110
7111 2016-07-25 Jiong Wang <jiong.wang@arm.com>
7112
7113 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
7114 * config/aarch64/aarch64.md (<FCVT_F2FIXED:fcvt_fixed_insn>hf<mode>3):
7115 New.
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,
7142 vrsqrtsh_f16): New.
7143
7144 2016-07-25 Jiong Wang <jiong.wang@arm.com>
7145
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
7150 mode.
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):
7164 Support HF mode.
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,
7178 vsqrth_f16): New.
7179
7180 2016-07-25 Jiong Wang <jiong.wang@arm.com>
7181
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>):
7186 Use VHSDF.
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.
7192
7193 2016-07-25 Jiong Wang <jiong.wang@arm.com>
7194
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.
7209
7210 2016-07-25 Jiong Wang <jiong.wang@arm.com>
7211
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
7214 modes.
7215 * config/aarch64/arm_neon.h (vfma_f16, vfmaq_f16, vfms_f16,
7216 vfmsq_f16): New.
7217
7218 2016-07-25 Jiong Wang <jiong.wang@arm.com>
7219
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
7240 HF, V4HF and V8HF.
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.
7255
7256 2016-07-25 Jiong Wang <jiong.wang@arm.com>
7257
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
7274 HF, V4HF and V8HF.
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.
7277 (stype): New.
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.
7294
7295 2016-07-25 Jiong Wang <jiong.wang@arm.com>
7296
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
7303 and V8HFmode.
7304 * config/aarch64/arm_neon.h (__INTERLEAVE_LIST): Support float16x4_t,
7305 float16x8_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):
7313 New.
7314 (vmov_n_f16): Reimplement using vdup_n_f16.
7315 (vmovq_n_f16): Reimplement using vdupq_n_f16..
7316
7317 2016-07-25 Jiong Wang <jiong.wang@arm.com>
7318
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.
7325
7326 2016-07-25 Jiong Wang <jiong.wang@arm.com>
7327
7328 * config/aarch64/aarch64.c (aarch64_add_constant): Optimize instruction
7329 sequences.
7330
7331 2016-07-25 Jiong Wang <jiong.wang@arm.com>
7332
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.
7337
7338 2016-07-25 Alexander Monakov <amonakov@ispras.ru>
7339
7340 Revert
7341 2016-07-20 Alexander Monakov <amonakov@ispras.ru>
7342
7343 * config/nvptx/nvptx.c (nvptx_option_override): Do not set
7344 flag_toplevel_reorder.
7345
7346 2016-07-25 Richard Biener <rguenther@suse.de>
7347
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
7363 assert.
7364 (streamer_write_builtin): Remove.
7365
7366 2016-07-25 Martin Liska <mliska@suse.cz>
7367
7368 * lto-cgraph.c (input_symtab): Don't call get_working_sets
7369 if flag_auto_profile is set to true.
7370
7371 2016-07-25 Martin Liska <mliska@suse.cz>
7372
7373 PR gcov-profile/71868
7374 * cfgloopanal.c (expected_loop_iterations_unbounded): When we
7375 have a function with multiple latches, count them all.
7376
7377 2016-07-25 Martin Liska <mliska@suse.cz>
7378
7379 * tree-ssa-loop-niter.c (loop_only_exit_p): Release body array.
7380
7381 2016-07-25 Martin Liska <mliska@suse.cz>
7382
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.
7386
7387 2016-07-25 Martin Liska <mliska@suse.cz>
7388
7389 PR gcov-profile/64874
7390 * gcov-io.h: Update command about file format.
7391 * gcov-iov.c (main): Adapt the numbering scheme.
7392
7393 2016-07-24 Kugan Vivekanandarajah <kuganv@linaro.org>
7394
7395 PR middle-end/66726
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.
7400
7401 2016-07-22 Michael Meissner <meissner@linux.vnet.ibm.com>
7402
7403 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
7404 Reformat two multi-line strings.
7405
7406 2016-07-22 Martin Sebor <msebor@redhat.com>
7407
7408 * doc/extend.texi (Compound Literals): Add '@' missed in last commit.
7409
7410 2016-07-22 Martin Sebor <msebor@redhat.com>
7411
7412 PR c/71560
7413 * doc/extend.texi (Compound Literals): Correct and clarify.
7414 (Cast to Union): Same.
7415
7416 2016-07-22 Kelvin Nilsen <kelvin@gcc.gnu.org>
7417
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
7433 undocumented flags.
7434 (IBM RS/6000 and PowerPC Options): Likewise.
7435 * doc/md.texi (Constraints for Particuliar Machines): Remove all
7436 mention of newly undocumented flags.
7437
7438 2016-07-22 Evgeny Stupachenko <evstupac@gmail.com>
7439
7440 * ipa-cp.c (determine_versionability): Do not create constprop clones,
7441 when target_clones attribute is set.
7442
7443 2016-07-22 Bin Cheng <bin.cheng@arm.com>
7444
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
7448 related code.
7449 * tree-ssa-loop-niter.c (finite_loop_p): Ditto.
7450 * config/bfin/bfin.c (bfin_can_use_doloop_p): Ditto.
7451
7452 2016-07-22 Bin Cheng <bin.cheng@arm.com>
7453
7454 * tree-ssa-loop-niter.h (number_of_iterations_exit_assumptions): New
7455 Parameter.
7456 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): New
7457 Parameter.
7458 (number_of_iterations_exit): Warn missed loop optimization for
7459 possible infinite loops.
7460
7461 2016-07-22 Segher Boessenkool <segher@kernel.crashing.org>
7462
7463 PR target/71216
7464 * config/rs6000/rs6000.c (rs6000_file_start): Fix condition for
7465 when to emit a ".machine" pseudo-op.
7466
7467 2016-07-22 Martin Liska <mliska@suse.cz>
7468
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.
7474
7475 2016-07-22 Georg-Johann Lay <avr@gjlay.de>
7476
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.
7483
7484 2016-07-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
7485
7486 PR middle-end/71876
7487 * builtin-attrs.def (ATTR_RT_NOTHROW_LEAF_LIST): New return twice
7488 attribute.
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.
7492
7493 2016-07-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
7494
7495 PR middle-end/71876
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.
7503
7504 2016-07-21 David Malcolm <dmalcolm@redhat.com>
7505
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.
7509
7510 2016-07-21 Jakub Jelinek <jakub@redhat.com>
7511
7512 PR sanitizer/71953
7513 * asan.c (asan_dynamic_init_call): Call asan_init_shadow_ptr_types
7514 before builtin_decl_implicit.
7515
7516 2016-07-21 James Greenhalgh <james.greenhalgh@arm.com>
7517
7518 * optabs.c (emit_condiitonal_move): Short circuit for identical
7519 sources.
7520
7521 2016-07-21 James Greenhalgh <james.greenhalgh@arm.com>
7522
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
7532 overwriting it.
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.
7537
7538 2016-07-21 James Greenhalgh <james.greenhalgh@arm.com>
7539
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.
7548
7549 2016-07-21 Richard Biener <rguenther@suse.de>
7550
7551 PR tree-optimization/71947
7552 * tree-vrp.c (extract_range_from_assert): Singleton symbolic
7553 ranges have useful limit_vr information.
7554
7555 2016-07-21 Richard Biener <rguenther@suse.de>
7556
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.
7565
7566 2016-07-21 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
7567
7568 * tree-ssa-strlen.c (strlen_dom_walker::before_dom_children): Fix typo
7569 in comment.
7570
7571 2016-07-21 Georg-Johann Lay <avr@gjlay.de>
7572
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.
7582
7583 2016-07-21 Bin Cheng <bin.cheng@arm.com>
7584
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.
7594
7595 2016-07-21 Bin Cheng <bin.cheng@arm.com>
7596
7597 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up
7598 by removing computation of may_be_zero.
7599
7600 2016-07-21 Jakub Jelinek <jakub@redhat.com>
7601
7602 * tree-object-size.c (unknown): Use HOST_WIDE_INT_M1U instead of -1.
7603
7604 2016-07-21 Andrew Sutton <andrew.n.sutton@gmail.com>
7605
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.
7611
7612 2016-07-20 Uros Bizjak <ubizjak@gmail.com>
7613
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.
7620
7621 2016-07-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7622
7623 * config/s390/s390.c (s390_encode_section_info): Remove mode size
7624 check.
7625
7626 2016-07-20 Uros Bizjak <ubizjak@gmail.com>
7627
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.
7632 * dse.c: Ditto.
7633 * dwarf2asm.c:Ditto.
7634 * expmed.c: Ditto.
7635 * genmodes.c: Ditto.
7636 * match.pd: 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.
7642 * tree.c: Ditto.
7643
7644 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
7645
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.
7653
7654 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
7655
7656 Implement attribute progmem on reduced Tiny cores by adding
7657 flash offset 0x4000 to respective symbols.
7658
7659 PR target/71948
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__.
7673
7674 2016-07-20 Patrick Palka <ppalka@gcc.gnu.org>
7675
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.
7682
7683 2016-07-20 David Malcolm <dmalcolm@redhat.com>
7684
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.
7696
7697 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
7698
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
7701 define...
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
7707 address spaces.
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.
7711
7712 2016-07-20 Alexander Monakov <amonakov@ispras.ru>
7713
7714 * config/nvptx/nvptx.c (nvptx_option_override): Do not set
7715 flag_toplevel_reorder.
7716
7717 2016-07-20 David Malcolm <dmalcolm@redhat.com>
7718
7719 * gcc-rich-location.c
7720 (gcc_rich_location::add_fixit_misspelled_id): New overload, taking
7721 a const char *.
7722 * gcc-rich-location.h
7723 (gcc_rich_location::add_fixit_misspelled_id): Likewise.
7724
7725 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
7726
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.
7736
7737 2016-07-20 Martin Liska <mliska@suse.cz>
7738
7739 PR middle-end/71898
7740 * graphite-isl-ast-to-gimple.c (later_of_the_two):
7741 Properly handly PHI stmts.
7742
7743 2016-07-20 Bin Cheng <bin.cheng@arm.com>
7744
7745 PR tree-optimization/71503
7746 PR tree-optimization/71683
7747 * tree-if-conv.c (gen_phi_arg_condition): Record true predicate
7748 and break.
7749
7750 2016-07-20 Martin Liska <mliska@suse.cz>
7751
7752 * doc/invoke.texi (-fipa-ra): Document when the option is
7753 disabled. Fix a typo.
7754
7755 2016-07-20 Martin Liska <mliska@suse.cz>
7756
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.
7764
7765 2016-07-20 Martin Liska <mliska@suse.cz>
7766
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.
7775
7776 2016-07-19 Jakub Jelinek <jakub@redhat.com>
7777
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.
7781
7782 2016-07-19 Aldy Hernandez <aldyh@redhat.com>
7783
7784 PR debug/71855
7785 * dwarf2out.c (gen_subprogram_die): Only call
7786 gen_unspecified_parameters_die while dumping early dwarf.
7787
7788 2016-07-19 Jakub Jelinek <jakub@redhat.com>
7789
7790 PR middle-end/71874
7791 * gimple-fold.c (fold_builtin_memory_op): Use
7792 get_addr_base_and_unit_offset instead of get_ref_base_and_extent.
7793
7794 2016-07-19 Uros Bizjak <ubizjak@gmail.com>
7795
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.
7800 * combine.c: Ditto.
7801 * cse.c: Ditto.
7802 * dojump.c: Ditto.
7803 * double-int.c: Ditto.
7804 * dse.c: Ditto.
7805 * dwarf2out.c: Ditto.
7806 * expmed.c: Ditto.
7807 * expr.c: Ditto.
7808 * fold-const.c: Ditto.
7809 * function.c: Ditto.
7810 * fwprop.c: Ditto.
7811 * genmodes.c: Ditto.
7812 * hwint.c: Ditto.
7813 * hwint.h: Ditto.
7814 * ifcvt.c: Ditto.
7815 * loop-doloop.c: Ditto.
7816 * loop-invariant.c: Ditto.
7817 * loop-iv.c: Ditto.
7818 * match.pd: Ditto.
7819 * optabs.c: Ditto.
7820 * real.c: Ditto.
7821 * reload.c: Ditto.
7822 * rtlanal.c: Ditto.
7823 * simplify-rtx.c: Ditto.
7824 * stor-layout.c: Ditto.
7825 * toplev.c: Ditto.
7826 * tree-ssa-loop-ivopts.c: Ditto.
7827 * tree-vect-generic.c: Ditto.
7828 * tree-vect-patterns.c: Ditto.
7829 * tree.c: Ditto.
7830 * tree.h: Ditto.
7831 * ubsan.c: Ditto.
7832 * varasm.c: Ditto.
7833 * wide-int-print.cc: Ditto.
7834 * wide-int.cc: Ditto.
7835 * wide-int.h: Ditto.
7836
7837 2016-07-19 David Malcolm <dmalcolm@redhat.com>
7838
7839 * selftest.c (selftest::assert_streq): Handle NULL values of
7840 val_actual and val_expected.
7841
7842 2016-07-19 Martin Jambor <mjambor@suse.cz>
7843
7844 PR fortran/71688
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.
7847
7848 2016-07-19 Richard Biener <rguenther@suse.de>
7849
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
7853 tcc_constant bases.
7854
7855 2016-07-19 David Malcolm <dmalcolm@redhat.com>
7856
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.
7859
7860 2016-07-19 Richard Biener <rguenther@suse.de>
7861
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.
7871
7872 2016-07-19 Richard Biener <rguenther@suse.de>
7873
7874 PR tree-optimization/71908
7875 * tree-ssa-structalias.c (get_constraint_for_component_ref): Handle
7876 symbolic constants in a more reliable way.
7877
7878 2016-07-19 Ilya Enkovich <ilya.enkovich@intel.com>
7879
7880 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Update
7881 comment.
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.
7885
7886 2016-07-19 Richard Biener <rguenther@suse.de>
7887
7888 PR lto/71907
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.
7893
7894 2016-07-18 Michael Meissner <meissner@linux.vnet.ibm.com>
7895
7896 PR target/71493
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.
7900
7901 2016-07-18 Yuri Rumyantsev <ysrumyan@gmail.com>
7902
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
7909 ref_indep_loop_p_2.
7910
7911 2016-07-18 Dominik Vogt <vogt@linux.vnet.ibm.com>
7912
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.
7923
7924 2016-07-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7925
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
7928 found.
7929
7930 2016-07-18 Richard Biener <rguenther@suse.de>
7931
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.
7936
7937 2016-07-16 John David Anglin <danglin@gcc.gnu.org>
7938
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.
7949
7950 2016-07-15 Georg-Johann Lay <avr@gjlay.de>
7951
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.
7962
7963 2016-07-15 Cesar Philippidis <cesar@codesourcery.com>
7964
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.
7968
7969 2016-07-15 Richard Biener <rguenther@suse.de>
7970
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.
7974
7975 2016-07-15 Richard Biener <rguenther@suse.de>
7976
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.
7981
7982 2016-07-15 Virendra Pathak <virendra.pathak@broadcom.com>
7983 Julian Brown <julian@codesourcery.com>
7984
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.
7994
7995 2016-07-15 Alexander Monakov <amonakov@ispras.ru>
7996
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.
8003
8004 2016-07-15 Richard Biener <rguenther@suse.de>
8005
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.
8012
8013 2016-07-15 Bin Cheng <bin.cheng@arm.com>
8014
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
8020 function.
8021 (number_of_iterations_exit): Rewrite using above function.
8022 * tree-ssa-loop-niter.h (number_of_iterations_exit_assumptions): New
8023 Decl.
8024
8025 2016-07-15 Richard Biener <rguenther@suse.de>
8026
8027 * config/i386/i386.c (ix86_builtin_vectorization_cost): Adjust
8028 vec_construct cost.
8029
8030 2016-07-14 Jakub Jelinek <jakub@redhat.com>
8031
8032 PR tree-optimization/71872
8033 * tree-data-ref.c (get_references_in_stmt): Ignore references
8034 with is_gimple_constant get_base_address.
8035
8036 2016-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
8037
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.
8044
8045 2016-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
8046
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.
8052
8053 2016-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8054
8055 PR target/65951
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.
8065
8066 2016-07-14 Alan Modra <amodra@gmail.com>
8067
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.
8071
8072 2016-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8073
8074 * expmed.c (mult_variant, choose_mult_variant): Move declaration to...
8075 * expmed.h: ... Here.
8076
8077 2016-07-14 Jan Hubicka <hubicka@ucw.cz>
8078
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.
8084
8085 2016-07-14 Richard Biener <rguenther@suse.de>
8086
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.
8098
8099 2016-07-14 Alan Modra <amodra@gmail.com>
8100
8101 PR target/71733
8102 * config/rs6000/rs6000.c (rs6000_option_override_internal): Deal
8103 with p9_vector override before power9-dform override.
8104
8105 2016-07-13 Andi Kleen <ak@linux.intel.com>
8106
8107 * value-prof.c (gimple_value_profile_transformations): Don't run
8108 when auto_profile is on.
8109
8110 2016-07-13 Andi Kleen <ak@linux.intel.com>
8111
8112 * auto-profile.c (update_inlined_ind_target,
8113 afdo_indirect_call): Print information to dump file.
8114
8115 2016-07-13 Andrew Burgess <andrew.burgess@embecosm.com>
8116
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.
8121
8122 2016-07-13 Bin Cheng <bin.cheng@arm.com>
8123
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.
8131
8132 2016-07-13 Richard Biener <rguenther@suse.de>
8133
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
8137 for left zero.
8138 (value_replacement): Pass in argument position to absorbing_element_p.
8139
8140 2016-07-13 Ilya Enkovich <ilya.enkovich@intel.com>
8141
8142 PR ipa/71633
8143 * ipa-inline-transform.c (inline_call): Support
8144 instrumented thunks.
8145
8146 2016-07-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
8147
8148 * config/arm/arm.h (TARGET_HAVE_CBZ): Define.
8149 (TARGET_IDIV): Set for all Thumb targets provided they have hardware
8150 divide feature.
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
8156 target.
8157
8158 2016-07-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
8159
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
8166 UINTVAL.
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
8172 available.
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
8187 effective target.
8188
8189 2016-07-13 Richard Biener <rguenther@suse.de>
8190
8191 PR middle-end/71104
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.
8195
8196 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8197
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.
8203
8204 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8205
8206 * cfgexpand.c (expand_used_vars): Make the type of a local
8207 variable auto_vec.
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):
8216 Likewise.
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.
8222
8223 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8224
8225 * tree-ssa-sccvn.c (sccvn_dom_walker::~sccvn_dom_walker): remove.
8226 (sccvn_dom_walker): make cond_stack an auto_vec.
8227
8228 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8229
8230 * ree.c (struct ext_state): Make type of members auto_vec.
8231 (find_and_remove_re): Adjust.
8232
8233 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8234
8235 * cfgexpand.c (struct stack_vars_data): Make type of fields
8236 auto_vec.
8237 (expand_used_vars): Adjust.
8238
8239 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8240
8241 * ipa.c (record_cdtor_fn): Adjust.
8242 (build_cdtor_fns): Likewise.
8243 (ipa_cdtor_merge): Make static_ctors and static_dtors local
8244 variables.
8245
8246 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8247
8248 * genextract.c (struct accum_extract): Add constructor and make
8249 members auto_vec.
8250 (gen_insn): Adjust.
8251
8252 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8253
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.
8261
8262 2016-07-13 Uros Bizjak <ubizjak@gmail.com>
8263
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.
8267
8268 2016-07-12 Uros Bizjak <ubizjak@gmail.com>
8269
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.
8274
8275 2016-07-12 Michael Meissner <meissner@linux.vnet.ibm.com>
8276
8277 PR target/71805
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.
8286
8287 2016-07-12 Nathan Sidwell <nathan@acm.org>
8288
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.
8293
8294 2016-07-12 Martin Liska <mliska@suse.cz>
8295
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.
8300
8301 2016-07-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8302
8303 PR middle-end/71700
8304 * expr.c (store_constructor): Mask sign-extended bits when widening
8305 sub-word constructor element at the start of a word.
8306
8307 2016-07-12 Martin Liska <mliska@suse.cz>
8308
8309 * Makefile.in: Append rule for params-options.h.
8310 * params-options.h: New file.
8311
8312 2016-07-12 Martin Liska <mliska@suse.cz>
8313
8314 * ira-build.c (mark_loops_for_removal): Properly iterate
8315 loops.
8316
8317 2016-07-12 Steven Bosscher <steven@gcc.gnu.org>
8318 Richard Biener <rguenther@suse.de>
8319
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.
8334 (insert): Adjust.
8335 (pass_pre::gate): Enable also if -fcode-hoisting is enabled.
8336 (pass_pre::execute): Register hoist_insert stats.
8337
8338 2016-07-12 Jakub Jelinek <jakub@redhat.com>
8339
8340 PR middle-end/71716
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.
8344
8345 2016-07-12 Richard Biener <rguenther@suse.de>
8346
8347 PR rtl-optimization/68961
8348 * fwprop.c (propagate_rtx): Allow SUBREGs of VEC_CONCAT and CONCAT
8349 to simplify to a non-constant.
8350
8351 2016-07-11 Jakub Jelinek <jakub@redhat.com>
8352
8353 PR middle-end/71758
8354 * omp-low.c (expand_omp_target): Gimplify device.
8355
8356 PR tree-optimization/71823
8357 * tree-vect-stmts.c (vectorizable_operation): Use vect_get_vec_defs
8358 to get vec_oprnds2 from op2.
8359
8360 2016-07-11 Uros Bizjak <ubizjak@gmail.com>
8361
8362 * config/i386/predicates.md (x86_64_immediate_operand) <case CONST>:
8363 Hoist common subexpressions.
8364 (x86_64_zext_immediate_operand) <case CONST>: Ditto.
8365
8366 2016-07-11 Pat Haugen <pthaugen@us.ibm.com>
8367
8368 PR target/71800
8369 * config/rs6000/rs6000.md (stfiwx): Change constraint to 'wu' to
8370 prevent generation of 'stxsiwx' on pre Power8 hardware.
8371
8372 2016-07-11 David Malcolm <dmalcolm@redhat.com>
8373
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.
8401
8402 2016-07-11 H.J. Lu <hongjiu.lu@intel.com>
8403
8404 PR target/71801
8405 * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
8406 Don't convert TImode in debug insn.
8407
8408 2016-07-11 Bernd Edlinger <bernd.edlinger@hotmail.de>
8409
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
8426 TYPE_ALIGN_OK.
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
8456 TYPE_ALIGN_OK.
8457
8458 2016-07-11 David Malcolm <dmalcolm@redhat.com>
8459
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
8466 vectors.
8467 (selftest::test_diamond): Likewise.
8468
8469 2016-07-11 Richard Biener <rguenther@suse.de>
8470
8471 PR tree-optimization/71816
8472 * tree-ssa-pre.c (compute_avail): Adjust alignment of ref rather
8473 than replacing all of its operands.
8474
8475 2016-07-11 Alan Modra <amodra@gmail.com>
8476
8477 * config/rs6000/rs6000.md (UNSPEC_DOLOOP): New unspec.
8478 (ctr<mode>): Add unspec.
8479 (ctr<mode>_internal*): Likewise.
8480
8481 2016-07-08 James Bowman <james.bowman@ftdichip.com>
8482
8483 * config/ft32/ft32.c (ft32_elf_encode_section_info): New function.
8484 * config/ft32/ft32.h (ASM_OUTPUT_SYMBOL_REF): New function.
8485
8486 2016-07-08 Vladimir Makarov <vmakarov@redhat.com>
8487
8488 PR rtl-optimization/71621
8489 * lra-constraints.c (process_alt_operands): Check combination of
8490 reg class and mode.
8491
8492 2016-07-08 Jason Merrill <jason@redhat.com>
8493 Richard Biener <rguenther@suse.de>
8494
8495 P0145: Refining Expression Order for C++.
8496 * gimplify.c (initial_rhs_predicate_for): New.
8497 (gimplfy_modify_expr): Gimplify RHS before LHS.
8498
8499 2016-07-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8500
8501 PR target/71297
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 ().
8506
8507 2016-07-08 Jiong Wang <jiong.wang@arm.com>
8508
8509 * config/aarch64/aarch64-simd-builtins.def (smax): Remove float
8510 variants.
8511 (smin): Likewise.
8512 (fmax): New entry.
8513 (fmin): Likewise.
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.
8521
8522 2016-07-08 Michael Meissner <meissner@linux.vnet.ibm.com>
8523
8524 PR target/71806
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.
8535
8536 2016-07-08 Alan Hayward <alan.hayward@arm.com>
8537
8538 PR tree-optimization/71667
8539 * tree-vect-loop.c (vectorizable_live_operation): ignore DEBUG stmts
8540
8541 2016-07-08 Martin Liska <mliska@suse.cz>
8542
8543 PR middle-end/71606
8544 * fold-const.c (fold_convertible_p): As COMPLEX_TYPE
8545 folding produces SAVE_EXPRs, thus return false for the type.
8546
8547 2016-07-07 Martin Liska <mliska@suse.cz>
8548
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.
8553
8554 2016-07-07 Jan Hubicka <jh@suse.cz>
8555
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.
8559
8560 2016-07-07 Ilya Enkovich <ilya.enkovich@intel.com>
8561
8562 PR ipa/71624
8563 * ipa-inline-analysis.c (compute_inline_parameters): Set
8564 local.can_change_signature to false for intrumentation
8565 thunk callees.
8566
8567 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
8568
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
8575 availability.
8576 (addsi splitter): Use TARGET_THUMB && TARGET_HAVE_MOVT rather than
8577 TARGET_THUMB2.
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.
8582
8583 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
8584
8585 * config/arm/arm-protos.h: Reindent FL_FOR_* macro definitions.
8586
8587 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
8588
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
8603 ARMv8-M Baseline.
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.
8609
8610 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
8611
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.
8617
8618 2016-07-07 Richard Biener <rguenther@suse.de>
8619
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.
8627
8628 2016-07-06 Segher Boessenkool <segher@kernel.crashing.org>
8629
8630 PR target/70098
8631 PR target/71763
8632 * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
8633 *ctr<mode>_internal5, *ctr<mode>_internal6): Add *wi to the output
8634 constraint.
8635
8636 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8637
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.
8642
8643 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8644
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.
8651
8652 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8653
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.
8659
8660 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8661
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.
8671
8672 2016-07-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8673
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.
8676
8677 2016-07-06 Yuri Rumyantsev <ysrumyan@gmail.com>
8678
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.
8682
8683 2016-07-06 Wilco Dijkstra <wdijkstr@arm.com>
8684
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.
8692
8693 2016-07-06 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
8694
8695 PR target/50739
8696 * config/avr/avr.c (avr_asm_select_section): Strip off
8697 SECTION_DECLARED from flags when calling get_section.
8698
8699 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
8700
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
8706 step is negative.
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.
8713
8714 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
8715
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.
8733
8734 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
8735
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.
8742
8743 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
8744
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.
8756
8757 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
8758
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.
8763
8764 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
8765
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.
8770
8771 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
8772
8773 * tree-vect-stmts.c (vectorizable_load): Remove unnecessary
8774 peeling-for-gaps condition.
8775
8776 2016-07-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8777
8778 * config/s390/s390.c (s390_expand_vec_init): Force initializer
8779 element to register if it doesn't match general_operand.
8780
8781 2016-07-05 Michael Meissner <meissner@linux.vnet.ibm.com>
8782 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8783
8784 * config/rs6000/rs6000-protos.h (rs6000_split_signbit): New
8785 prototype.
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.
8795
8796 2016-07-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8797
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
8801 move.
8802
8803 2016-07-05 Jan Hubicka <jh@suse.cz>
8804
8805 * tree-scalar-evolution.c (iv_can_overflow_p): New function.
8806 (simple_iv): Use it.
8807
8808 2016-07-05 Jan Hubicka <jh@suse.cz>
8809
8810 * tree-ssa-loop-niter.c (nowrap_type_p): Use ANY_INTEGRAL_TYPE_P.
8811
8812 2016-07-05 Jiong Wang <jiong.wang@arm.com>
8813
8814 * lra-constraints.c (process_alt_operands): Don't add spilling cost for
8815 "offmemok".
8816
8817 2016-07-05 Jan Hubicka <jh@suse.cz>
8818
8819 * tree-scalar-evoluiton.c (simple_iv): Use nowrap_type to check if
8820 IV can overflow.
8821
8822 2016-07-05 Richard Biener <rguenther@suse.de>
8823
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.
8828
8829 2016-07-05 Richard Biener <rguenther@suse.de>
8830
8831 * tree-loop-distribution.c (distribute_loop): Fix issue with
8832 the cost model loop.
8833
8834 2016-07-05 Christophe Lyon <christophe.lyon@linaro.org>
8835
8836 * config/arm/neon-testgen.ml: Delete.
8837 * config/arm/neon.ml: Delete.
8838
8839 2016-07-04 Jakub Jelinek <jakub@redhat.com>
8840
8841 PR c++/71739
8842 * tree.c (attribute_value_equal): Use get_attribute_name instead of
8843 directly using TREE_PURPOSE.
8844
8845 2016-07-04 Jiong Wang <jiong.wang@arm.com>
8846
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.
8853
8854 2016-07-04 Dominik Vogt <vogt@linux.vnet.ibm.com>
8855
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.
8860
8861 2016-07-04 Dominik Vogt <vogt@linux.vnet.ibm.com>
8862 Jeff Law <law@redhat.com>
8863
8864 * explow.c (allocate_dynamic_stack_space): Simplify knowing that
8865 MUST_ALIGN was always true and extra_align ist always BITS_PER_UNIT.
8866
8867 2016-07-04 Yuri Rumyantsev <ysrumyan@gmail.com>
8868
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.
8875
8876 2016-07-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8877
8878 PR target/63874
8879 * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix
8880 typo in comment. Only force to memory if it is a weak
8881 external reference.
8882
8883 2016-07-04 Matthew Wahab <matthew.wahab@arm.com>
8884 Jiong Wang <jiong.wang@arm.com>
8885
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".
8900
8901 2016-07-04 Jan Beulich <jbeulich@suse.com>
8902
8903 * gcc.c (default_compilers["@c-header"]): Conditionalize "-o".
8904
8905 2016-07-01 Michael Meissner <meissner@linux.vnet.ibm.com>
8906
8907 PR target/71720
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.
8911
8912 2016-07-01 Jan Beulich <jbeulich@suse.com>
8913
8914 * varasm.c (get_variable_section): Validate initializer in
8915 named .bss-like sections.
8916
8917 2016-07-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
8918
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.
8922
8923 2016-07-01 Peter Bergner <bergner@vnet.ibm.com>
8924
8925 PR target/71698
8926 * config/rs6000/rs6000.c (rs6000_secondary_reload_simple_move):
8927 Disallow TDmode values.
8928
8929 2016-07-01 Alan Modra <amodra@gmail.com>
8930
8931 PR rtl-optimization/71709
8932 * ira-lives.c (find_call_crossed_cheap_reg): Exit loop on arg reg
8933 being set, not referenced.
8934
8935 2016-07-01 Yuri Rumyantsev <ysrumyan@gmail.com>
8936
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.
8940
8941 2016-07-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8942
8943 * config/arm/arm.c (thumb_reload_in_hi): Delete.
8944 * config/arm/arm-protos.h (thumb_reload_in_hi): Delete prototype.
8945
8946 2016-07-01 Eric Botcazou <ebotcazou@adacore.com>
8947
8948 * config/arm/arm.c (arm_function_ok_for_sibcall): Add another check
8949 for NULL decl.
8950
8951 2016-06-30 Michael Meissner <meissner@linux.vnet.ibm.com>
8952
8953 PR target/71677
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
8958 instructions.
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.
8966
8967 2016-06-30 Jakub Jelinek <jakub@redhat.com>
8968
8969 PR tree-optimization/71707
8970 * tree-ssa-strlen.c (get_stridx_plus_constant): Handle already present
8971 strinfo even for ADDR_EXPR ptr.
8972
8973 2016-06-30 Kelvin Nilsen <kelvin@gcc.gnu.org>
8974
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
9021 of this mask.
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
9024 non-zero.
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
9043 functions.
9044
9045 2016-06-30 Wilco Dijkstra <wdijkstr@arm.com>
9046
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.
9053
9054 2016-06-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9055 James Greenhalgh <james.greenhalgh@arm.com>
9056
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):
9070 New intrinsics.
9071
9072 2016-06-30 James Greenhalgh <james.greenhalgh@arm.com>
9073 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9074
9075 * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>):
9076 New define_insn.
9077 (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise.
9078
9079 2016-06-30 David Malcolm <dmalcolm@redhat.com>
9080
9081 PR driver/71651
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
9086 RejectNegative.
9087 * opts.h (add_misspelling_candidates): Add "option" param.
9088
9089 2016-06-30 Jakub Jelinek <jakub@redhat.com>
9090
9091 PR middle-end/71693
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.
9096
9097 2016-06-29 David Malcolm <dmalcolm@redhat.com>
9098
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 *>):
9106 ...here.
9107
9108 2016-06-29 Michael Meissner <meissner@linux.vnet.ibm.com>
9109
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
9114 under ISA 3.0.
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.
9128
9129 2016-06-29 Jim Wilson <jim.wilson@linaro.org>
9130
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.
9137
9138 2016-06-29 Wilco Dijkstra <wdijkstr@arm.com>
9139
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.
9146
9147 2016-06-29 Matthew Wahab <matthew.wahab@arm.com>
9148
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.
9153
9154 2016-06-29 Ilya Enkovich <ilya.enkovich@intel.com>
9155
9156 PR tree-optimization/71655
9157 * tree-vect-stmts.c (vectorizable_comparison): Swap definition
9158 types when swapping operands.
9159
9160 2016-06-29 Martin Liska <mliska@suse.cz>
9161
9162 PR middle-end/71585
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.
9166
9167 2016-06-29 Yuri Rumyantsev <ysrumyan@gmail.com>
9168
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.
9174
9175 2016-06-29 Jakub Jelinek <jakub@redhat.com>
9176
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
9188 get_addr_stridx.
9189
9190 2016-06-29 Richard Biener <rguenther@suse.de>
9191
9192 PR rtl-optimization/68961
9193 * simplify-rtx.c (simplify_subreg): Handle VEC_CONCAT like CONCAT.
9194
9195 2016-06-29 Richard Biener <rguenther@suse.de>
9196
9197 PR middle-end/71002
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.
9201
9202 2016-07-29 Richard Biener <rguenther@suse.de>
9203
9204 * match.pd ((T)(T2)x -> (T)x): Remove restriction on final
9205 precision not matching mode precision.
9206
9207 2016-06-28 John David Anglin <danglin@gcc.gnu.org>
9208
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.
9215
9216 2016-06-28 Jakub Jelinek <jakub@redhat.com>
9217
9218 PR middle-end/71626
9219 * config/i386/i386.c (ix86_expand_vector_move): For SUBREG of
9220 a constant, force its SUBREG_REG into memory or register instead
9221 of whole op1.
9222
9223 2016-06-28 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
9224
9225 PR target/58655
9226 * config/avr/avr.opt (-mfract-convert-truncate): Update description.
9227 * doc/invoke.texi (AVR Options): Document it.
9228
9229 2016-06-28 Walter Lee <walt@tilera.com>
9230
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.
9235
9236 2016-06-28 Wilco Dijkstra <wdijkstr@arm.com>
9237
9238 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adjust bitnumbering
9239 for big-endian BIT_FIELD_REF.
9240
9241 2016-06-28 Pat Haugen <pthaugen@us.ibm.com>
9242
9243 * config/rs6000/rs6000.md ('type' attribute): Add htmsimple/dfp types.
9244 ('size' attribute): Add '128'.
9245 Include power9.md.
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
9262 htmsimple.
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
9282 reordering.
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
9290 variables.
9291
9292 2016-06-28 Richard Biener <rguenther@suse.de>
9293
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.
9300
9301 2016-06-28 Jakub Jelinek <jakub@redhat.com>
9302
9303 * Makefile.in: Don't cat ../stage_current if it does not exist.
9304
9305 * doc/extend.texi (__builtin_add_overflow_p): Clarify behavior when
9306 last argument is a bit-field.
9307
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.
9312
9313 PR middle-end/66867
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
9319 last argument.
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.
9332
9333 2016-06-27 Segher Boessenkool <segher@kernel.crashing.org>
9334
9335 PR target/71670
9336 * config/rs6000/rs6000.md (ashdi3_extswsli_dot): Use
9337 gen_ashdi3_extswsli_dot2 instead of gen_ashdi3_extswsli_dot.
9338
9339 2016-06-27 Pat Haugen <pthaugen@us.ibm.com>
9340
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
9363 type to veclogical.
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,
9382 vecmove.
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,
9390 veccmpfx.
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
9406 fpsimple.
9407 * config/rs6000/rs6000.c (rs6000_adjust_cost): Add TYPE_FPSIMPLE.
9408
9409 2016-06-27 Peter Bergner <bergner@vnet.ibm.com>
9410
9411 PR target/71656
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
9418 support.
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.
9428
9429 2016-06-26 Uros Bizjak <ubizjak@gmail.com>
9430
9431 PR target/70902
9432 PR target/71453
9433 PR target/71555
9434 PR target/71596
9435 PR target/71657
9436 * config/i386/i386.c (ix86_spill_class): Disable condition to
9437 always return NO_REGS.
9438
9439 2016-06-26 Jan Hubicka <hubicka@ucw.cz>
9440
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.
9449
9450 2016-06-26 John David Anglin <danglin@gcc.gnu.org>
9451
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.
9457
9458 2016-06-25 Jakub Jelinek <jakub@redhat.com>
9459
9460 PR tree-optimization/71643
9461 * tree-ssa-tail-merge.c (find_clusters_1): Ignore basic blocks with
9462 EH preds.
9463
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.
9466
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.
9473
9474 2016-06-24 Jan Hubicka <hubicka@ucw.cz>
9475
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.
9480
9481 2016-06-24 Jan Hubicka <hubicka@ucw.cz>
9482
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
9486 predictor.
9487 * predict.def (PRED_RECURSIVE_CALL): New.
9488
9489 2016-06-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9490
9491 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): New #define.
9492 (BU_FLOAT128_1): Likewise.
9493 (FABSQ): 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.
9519
9520 2016-06-24 Jakub Jelinek <jakub@redhat.com>
9521
9522 * cfgloop.c (flow_loop_dump): Cast nit to uint64_t and print it using
9523 PRIu64 instead of lu.
9524
9525 2016-06-24 Eric Botcazou <ebotcazou@adacore.com>
9526
9527 PR debug/71642
9528 * tree-inline.c (remap_decl): When fixing up DECL_ORIGINAL_TYPE, just
9529 copy the type name.
9530
9531 2016-06-24 Jakub Jelinek <jakub@redhat.com>
9532
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.
9537
9538 2016-06-24 H.J. Lu <hongjiu.lu@intel.com>
9539
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
9554 is 1.
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.
9559
9560 2016-06-24 Martin Liska <mliska@suse.cz>
9561
9562 * cfgloop.c (flow_loop_dump): Dump average number of loop iterations.
9563 * cfgloop.h: Change 'struct loop' to 'const struct loop' for a
9564 few functions.
9565 * cfgloopanal.c (expected_loop_iterations_unbounded): Set a new
9566 argument to true if the expected number of iterations is
9567 loop-based.
9568
9569 2016-06-24 Uros Bizjak <ubizjak@gmail.com>
9570
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.
9577
9578 2016-06-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9579
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.
9583
9584 2016-06-24 Jakub Jelinek <jakub@redhat.com>
9585
9586 * internal-fn.c (expand_arith_set_overflow): New function.
9587 (expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow):
9588 Use it.
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.
9597
9598 2016-06-23 Michael Meissner <meissner@linux.vnet.ibm.com>
9599 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9600
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.
9610
9611 2016-06-23 Jocelyn Mayer <l_indien@magic.fr>
9612
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.
9617
9618 2016-06-23 H.J. Lu <hongjiu.lu@intel.com>
9619
9620 PR target/66232
9621 PR target/67400
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,
9630 defined to 0.
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.
9645
9646 2016-06-23 Eric Botcazou <ebotcazou@adacore.com>
9647
9648 * tree-inline.c (remap_decl): Preserve DECL_ORIGINAL_TYPE invariant.
9649
9650 2016-06-23 Andi Kleen <ak@linux.intel.com>
9651
9652 * Makefile.in: Regenerate.
9653 * doc/install.texi: Document autoprofiledbootstrap.
9654
9655 2016-06-23 Andi Kleen <ak@linux.intel.com>
9656
9657 * config/i386/gcc-auto-profile: New file.
9658
9659 2016-06-23 Martin Liska <mliska@suse.cz>
9660
9661 PR middle-end/71619
9662 * predict.c (predict_loops): Revert the hunk that was removed
9663 in r237103.
9664
9665 2016-06-23 Jakub Sejdak <jakub.sejdak@phoesys.com>
9666
9667 * config.gcc: Add support for arm*-*-phoenix* targets.
9668 * config/arm/t-phoenix: New.
9669 * config/phoenix.h: New.
9670
9671 2016-06-23 Uros Bizjak <ubizjak@gmail.com>
9672 H.J. Lu <hongjiu.lu@intel.com>
9673
9674 PR target/67400
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.
9688
9689 2016-06-22 Uros Bizjak <ubizjak@gmail.com>
9690
9691 * config/i386/i386.c (ix86_expand_move): Simplify SYMBOL_REF handling.
9692
9693 2016-06-22 David Malcolm <dmalcolm@redhat.com>
9694
9695 PR c/70339
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.
9703
9704 2016-06-22 Nick Clifton <nickc@redhat.com>
9705
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.
9717
9718 2016-06-22 David Malcolm <dmalcolm@redhat.com>
9719
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.
9743
9744 2016-06-22 Ilya Enkovich <ilya.enkovich@intel.com>
9745
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.
9751
9752 2016-06-22 Andreas Schwab <schwab@suse.de>
9753
9754 * config/aarch64/aarch64-protos.h (aarch64_elf_asm_named_section):
9755 Remove declaration.
9756
9757 2016-06-22 Eric Botcazou <ebotcazou@adacore.com>
9758
9759 * function.c (assign_parm_setup_reg): Prevent sharing in another case.
9760
9761 2016-06-22 Bernd Edlinger <bernd.edlinger@hotmail.de>
9762
9763 * config/i386/i386.c (print_reg): Emit an error message on attempt to
9764 print FLAGS_REG.
9765
9766 2016-06-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9767
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.
9780
9781 2016-06-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9782
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
9790 -mcpu and -mtune.
9791
9792 2016-06-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9793
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.
9800
9801 2016-06-21 Andrew Burgess <andrew.burgess@embecosm.com>
9802
9803 * bb-reorder.c (pass_partition_blocks::gate): Update comment.
9804
9805 2016-06-21 John David Anglin <danglin@gcc.gnu.org>
9806
9807 * gcov-tool.c (profile_rewrite): Use int64_t instead of long long.
9808 (do_rewrite): likewise.
9809
9810 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9811
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.
9836
9837 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9838
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.
9843
9844 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9845
9846 * config.gcc: Remove m32r-rtems support.
9847 * config/m32r/rtems.h: Remove.
9848
9849 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9850
9851 * config.gcc: Remove h8300-rtems support.
9852 * config/h8300/rtems.h: Remove.
9853 * config/h8300/t-rtems: Remove.
9854
9855 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9856
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.
9862
9863 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9864
9865 * config.gcc: Remove support for openbsd 2 and 3.
9866 * config/openbsd-oldgas.h: Remove.
9867
9868 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9869
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.
9877
9878 2016-06-21 Kelvin Nilsen <kelvin@gcc.gnu.org>
9879
9880 * config/rs6000/rs6000.h: Add conditional preprocessing directives
9881 to disable Power9-specific compiler features if HAVE_AS_POWER9 is
9882 not defined.
9883
9884 2016-06-21 Eric Botcazou <ebotcazou@adacore.com>
9885
9886 * tree.c (verify_type_variant): Skip TYPE_SIZE and TYPE_SIZE_UNIT if
9887 they are both PLACEHOLDER_EXPRs.
9888
9889 2016-06-21 Michael Meissner <meissner@linux.vnet.ibm.com>
9890
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.
9894
9895 2016-06-21 Martin Liska <mliska@suse.cz>
9896
9897 * predict.c (force_edge_cold): Replace imposisble with
9898 impossible.
9899
9900 2016-06-21 Ilya Verbin <ilya.verbin@intel.com>
9901
9902 * config/i386/i386.c (ix86_emit_swsqrtsf): Emit vrsqrt28ps.
9903 * config/i386/sse.md (define_expand "rsqrtv16sf2"): New.
9904
9905 2016-06-21 Ilya Verbin <ilya.verbin@intel.com>
9906
9907 * config/i386/i386.c (ix86_emit_swdivsf): Emit vrcp28ps.
9908
9909 2016-06-21 H.J. Lu <hongjiu.lu@intel.com>
9910 Ilya Enkovich <ilya.enkovich@intel.com>
9911
9912 PR target/71549
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.
9918
9919 2016-06-21 Virendra Pathak <virendra.pathak@broadcom.com>
9920
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.
9924
9925 2016-06-21 Eric Botcazou <ebotcazou@adacore.com>
9926
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.
9930
9931 2016-06-21 Georg-Johann Lay <avr@gjlay.de>
9932
9933 PR target/30417
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:...}.
9937
9938 2016-06-21 Georg-Johann Lay <avr@gjlay.de>
9939
9940 PR target/71103
9941 * config/avr/avr.md (movqi): Only handle loading subreg:qi of
9942 constant addresses if can_create_pseudo_p.
9943
9944 2016-06-21 Jakub Jelinek <jakub@redhat.com>
9945
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
9949 it.
9950
9951 2016-06-20 Jakub Jelinek <jakub@redhat.com>
9952
9953 PR middle-end/71581
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,
9958 punt.
9959
9960 PR rtl-optimization/71591
9961 * toplev.c (toplev::run_self_tests): If no_backend, complain and
9962 don't run any tests.
9963
9964 2016-06-20 Hans-Peter Nilsson <hp@axis.com>
9965
9966 PR target/71571
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".
9970
9971 2016-06-20 Jakub Jelinek <jakub@redhat.com>
9972
9973 PR target/71559
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.
9977
9978 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com>
9979
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.
9991
9992 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
9993
9994 * config/arm/aarch-cost-tables.h (cortexa53_extra_costs): Make FP
9995 costs relative to the cost of a register move.
9996
9997 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
9998
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.
10007
10008 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
10009
10010 * config/aarch64/aarch64.md
10011 (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3): Add attributes to
10012 iterators.
10013 (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>3): Likewise. Correct
10014 attributes.
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
10023 rather than BINOP.
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.
10027
10028 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
10029
10030 * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): Make FP
10031 costs relative to the cost of a register move.
10032
10033 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com>
10034
10035 * config/aarch64/aarch64.c (aarch64_modes_tieable_p):
10036 Allow scalar/single vector modes to be tieable.
10037
10038 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com>
10039
10040 * config/arm/cortex-a57.md (cortex_a57_fp_cpys): Add fcsel.
10041
10042 2016-06-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10043
10044 * params.def (PARAM_ALIGN_LOOP_ITERATIONS): Use "alignment" instead of
10045 "alignement".
10046 * tree.h (TYPE_ALIGN): Likewise.
10047
10048 2016-06-20 Georg-Johann Lay <avr@gjlay.de>
10049
10050 PR target/71103
10051 * config/avr/avr.md (movqi): Handle loading subreg:qi (const).
10052
10053 2016-06-20 Georg-Johann Lay <avr@gjlay.de>
10054
10055 * config/avr/avr.c (avr_print_operand): Fix "format not a string
10056 literal" build warnings.
10057 (avr_print_operand_address): Dito.
10058
10059 2016-06-19 David Edelsohn <dje.gcc@gmail.com>
10060
10061 PR target/71375
10062 * config/rs6000/aix51.h (TARGET_EXTRA_BUILTINS): Define as 0.
10063 * config/rs6000/aix43.h (TARGET_EXTRA_BUILTINS): Same.
10064
10065 2016-06-18 John David Anglin <danglin@gcc.gnu.org>
10066
10067 * config/pa/pa.h (TARGET_LONG_PIC_PCREL_CALL): Remove.
10068
10069 2016-06-18 Eric Botcazou <ebotcazou@adacore.com>
10070
10071 PR bootstrap/71435
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.
10075
10076 2016-06-17 DJ Delorie <dj@redhat.com>
10077
10078 PR target/71338
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.
10084
10085 2016-06-17 Martin Liska <mliska@suse.cz>
10086
10087 * tree-ssa-reassoc.c (transform_add_to_multiply): Use auto_vec.
10088
10089 2016-06-17 Martin Liska <mliska@suse.cz>
10090
10091 * predict.def: PRED_LOOP_EXIT from 92 to 85.
10092
10093 2016-06-17 James Greenhalgh <james.greenhalgh@arm.com>
10094
10095 * config/arm/arm_neon.h (vadd_f32): replace __FAST_MATH with
10096 __FAST_MATH__.
10097 (vaddq_f32): Likewise.
10098 (vmul_f32): Likewise.
10099 (vmulq_f32): Likewise.
10100 (vsub_f32): Likewise.
10101 (vsubq_f32): Likewise.
10102
10103 2016-06-17 Bin Cheng <bin.cheng@arm.com>
10104
10105 PR tree-optimization/71347
10106 * tree-ssa-loop-ivopts.c (determine_group_iv_cost_address): Compute
10107 cost for all uses in group.
10108
10109 2016-06-17 Bin Cheng <bin.cheng@arm.com>
10110
10111 * tree-vect-loop.c (vect_create_epilog_for_reduction): Only
10112 insert gimple seq if it's not empty.
10113
10114 2016-06-17 Bin Cheng <bin.cheng@arm.com>
10115
10116 * tree-vectorizer.h (struct dr_with_seg_len): Remove class
10117 member OFFSET.
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.
10125
10126 2016-06-17 Szabolcs Nagy <szabolcs.nagy@arm.com>
10127
10128 * config/aarch64/geniterators.sh: Handle parenthesised conditions.
10129
10130 2016-06-16 John David Anglin <danglin@gcc.gnu.org>
10131
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.
10138
10139 2016-06-16 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
10140
10141 * doc/invoke.texi (x86 Options): Fix -mno-fp-ret-in-387 typo.
10142
10143 2016-06-16 Martin Liska <mliska@suse.cz>
10144
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.
10150
10151 2016-06-16 Jakub Jelinek <jakub@redhat.com>
10152
10153 * gimplify.c (gimplify_scan_omp_clauses): Handle COMPONENT_REFs
10154 with base of reference to struct.
10155
10156 2016-06-16 Uros Bizjak <ubizjak@gmail.com>
10157
10158 * doc/invoke.texi (x86 Options): Document -m80387 and -mhard-float.
10159
10160 2016-06-16 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
10161
10162 PR target/71151
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.
10169
10170 2016-06-16 Jocelyn Mayer <l_indien@magic.fr>
10171
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.
10180
10181 2016-06-16 Martin Liska <mliska@suse.cz>
10182
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.
10186
10187 2016-06-16 Martin Liska <mliska@suse.cz>
10188
10189 * predict.def: Add 'Fortran' to display text of all
10190 PRED_FORTRAN_* predictors.
10191
10192 2016-06-16 Uros Bizjak <ubizjak@gmail.com>
10193
10194 PR target/71242
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.
10202
10203 2016-06-16 Nick Clifton <nickc@redhat.com>
10204
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.
10211
10212 2016-06-16 Jan Hubicka <hubicka@ucw.cz>
10213
10214 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Fix estimation
10215 of comparsions in the last iteration.
10216
10217 2016-06-16 Claudiu Zissulescu <claziss@synopsys.com>
10218 Joern Rennecke <joern.rennecke@embecosm.com>
10219
10220 * config/arc/arc.c (arc_print_operand_address): Handle pc-relative
10221 addresses.
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
10226 GOTOFFPC.
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.
10232
10233 2016-06-16 Martin Liska <mliska@suse.cz>
10234
10235 * predict.def: Define a new predictor.
10236
10237 2016-06-16 Claudiu Zissulescu <claziss@synopsys.com>
10238
10239 * config/arc/arc.opt (mtp-regno): Update text.
10240
10241 2016-06-16 Renlin Li <renlin.li@arm.com>
10242
10243 * config/aarch64/aarch64.c (aarch64_legitimize_address): Fix a typo.
10244
10245 2016-06-16 Jakub Jelinek <jakub@redhat.com>
10246
10247 PR target/71554
10248 * config/i386/i386.md (setcc + movzbl peephole2): Use reg_set_p.
10249 (setcc + and peephole2): Likewise.
10250
10251 PR rtl-optimization/71532
10252 * cse.c (cse_insn): For const/pure calls, invalidate argument passing
10253 memory slots.
10254
10255 2016-06-15 Michael Meissner <meissner@linux.vnet.ibm.com>
10256
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
10263 value.
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
10271 comments.
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
10275 registers.
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
10290 alternative.
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
10299 read.
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
10308 wB constraint.
10309
10310 2016-06-15 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
10311
10312 PR target/67353
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.
10319
10320 2016-06-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10321
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.
10325
10326 2016-06-15 Ilya Enkovich <ilya.enkovich@intel.com>
10327
10328 PR middle-end/71529
10329 * ipa-chkp.c (chkp_build_instrumented_fndecl): Fix
10330 DECL_CONTEXT for copied arguments.
10331
10332 2016-06-15 Alan Hayward <alan.hayward@arm.com>
10333
10334 PR tree-optimization/71483
10335 * tree-vect-loop.c (vectorizable_live_operation): Pick correct index
10336 for slp
10337
10338 2016-06-15 Martin Liska <mliska@suse.cz>
10339
10340 * predict.c (tree_predict_by_opcode): Call predict_edge_def
10341 instead of predict_edge w/o a probability.
10342
10343 2016-06-15 Alan Hayward <alan.hayward@arm.com>
10344
10345 PR tree-optimization/71439
10346 * tree-vect-loop.c (vect_analyze_loop_operations): Additional check for
10347 live PHIs.
10348
10349 2016-06-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10350
10351 * ifcvt.c (bb_ok_for_noce_multiple_sets): Allow simple lowpart
10352 register subregs in SET_SRC.
10353
10354 2016-06-15 Richard Biener <rguenther@suse.de>
10355
10356 * tree-vect-stmts.c (vectorizable_store): Remove strided grouped
10357 store restrictions.
10358
10359 2016-06-15 Richard Biener <rguenther@suse.de>
10360
10361 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Do
10362 not consider dependences between accesses that belong to the
10363 same group.
10364 (vect_analyze_data_ref_dependences): Do not analyze read-read
10365 or self-dependences.
10366
10367 2016-06-14 David Malcolm <dmalcolm@redhat.com>
10368
10369 * spellcheck-tree.c: Include spellcheck-tree.h rather than
10370 spellcheck.h.
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
10375 struct.
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.
10383
10384 2016-06-14 David Malcolm <dmalcolm@redhat.com>
10385
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.
10398
10399 2016-06-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10400
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.
10405
10406 2016-06-14 David Malcolm <dmalcolm@redhat.com>
10407
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.
10412
10413 2016-06-14 Andreas Tobler <andreast@gcc.gnu.org>
10414
10415 * config/arm/freebsd.h: Only enable unaligned access for armv6 on
10416 FreeBSD 11 and above.
10417
10418 2016-06-14 Uros Bizjak <ubizjak@gmail.com>
10419
10420 * config/i386/i386.md (signbittf2): Emit sse_movmskps for TARGET_SSE.
10421
10422 2016-06-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10423
10424 * expmed.h: Close parenthesis in "at your option" in copyright
10425 boilerplate.
10426 * lower-subreg.h: Likewise.
10427
10428 2016-06-14 Richard Biener <rguenther@suse.de>
10429
10430 PR middle-end/71526
10431 * genmatch.c (expr::gen_transform): Use in_type for comparisons
10432 if available.
10433
10434 2015-06-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10435
10436 * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
10437 New function.
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):
10441 New prototype.
10442 * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Replace
10443 matching condition with aarch64_mask_and_shift_for_ubfiz_p.
10444
10445 2016-06-14 Richard Biener <rguenther@suse.de>
10446
10447 PR tree-optimization/71522
10448 * tree-ssa.c (non_rewritable_lvalue_p): Do not rewrite non-float
10449 copying into float copying.
10450
10451 2016-06-14 Jakub Jelinek <jakub@redhat.com>
10452
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.
10456
10457 2016-06-14 Richard Biener <rguenther@suse.de>
10458
10459 PR middle-end/71310
10460 PR bootstrap/71510
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.
10465
10466 2016-06-14 Richard Biener <rguenther@suse.de>
10467
10468 PR tree-optimization/71521
10469 * tree-vrp.c (extract_range_from_binary_expr_1): Guard
10470 division int_const_binop against zero divisor.
10471
10472 2016-06-13 Uros Bizjak <ubizjak@gmail.com>
10473
10474 * config/i386/i386.md (signbittf2): New expander.
10475 * config/i386/sse.md (ptesttf2): New insn pattern.
10476
10477 2016-06-13 David Malcolm <dmalcolm@redhat.com>
10478
10479 PR bootstrap/71481
10480 * input.c (selftest::test_reading_source_line): Avoid reading from
10481 __FILE__ by creating a tempfile with known content and reading
10482 from that instead.
10483
10484 2016-06-13 David Malcolm <dmalcolm@redhat.com>
10485
10486 * pretty-print.c (assert_pp_format_colored): Skip the test if
10487 GCC_COLORS is set.
10488 (test_pp_format): Remove comment about GCC_COLORS.
10489
10490 2016-06-13 David Malcolm <dmalcolm@redhat.com>
10491
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
10508 file and line.
10509 * selftest.h (selftest::location): New struct.
10510 (SELFTEST_LOCATION): New macro.
10511 (selftest::pass): Accept a const location & rather than file
10512 and line.
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.
10523
10524 2016-06-13 David Malcolm <dmalcolm@redhat.com>
10525
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.
10531
10532 2016-06-13 Jeff Law <law@redhat.com>
10533
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.
10541
10542 2016-06-13 Evandro Menezes <e.menezes@samsung.com>
10543 Wilco Dijkstra <Wilco.Dijkstra@arm.com>
10544
10545 [AArch64] Emit division using the Newton series
10546
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.
10559
10560 2016-06-13 Evandro Menezes <e.menezes@samsung.com>
10561 Wilco Dijkstra <wilco.dijkstra@arm.com>
10562
10563 [AArch64] Emit square root using the Newton series
10564
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.
10583
10584 2016-06-13 Evandro Menezes <e.menezes@samsung.com>
10585
10586 [AArch64] Add more choices for the reciprocal square root approximation
10587
10588 Allow a target to prefer such operation depending on the operation mode.
10589
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
10610 "tune_params".
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.
10614
10615 2016-06-13 Kelvin Nilsen <kelvin@gcc.gnu.org>
10616
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.
10620
10621 2016-06-13 Kelvin Nilsen <kelvin@gcc.gnu.org>
10622
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
10626 byte.
10627 (vec_absdh): New macro for vector absolute difference unsigned
10628 half-word.
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
10634 definition.
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.
10645
10646 2016-06-13 Eric Botcazou <ebotcazou@adacore.com>
10647
10648 * tree-ssa-sccvn.c (vn_reference_lookup_3): Use a uniform test and
10649 update shared_lookup_references only once after changing operands.
10650
10651 2016-06-13 Thomas Schwinge <thomas@codesourcery.com>
10652
10653 PR middle-end/71373
10654 * tree-nested.c (convert_nonlocal_omp_clauses)
10655 (convert_local_omp_clauses): Document missing OMP_CLAUSE_*.
10656
10657 * tree-cfg.c (edge_to_cases_cleanup): Fix CASE_CHAIN typo.
10658 * tree.def (CASE_LABEL_EXPR): Likewise.
10659
10660 2016-06-13 Bernd Edlinger <bernd.edlinger@hotmail.de>
10661
10662 PR bootstrap/71481
10663 * input.c (test_builtins): Fix an assertion.
10664
10665 2016-06-13 Uros Bizjak <ubizjak@gmail.com>
10666
10667 * config/i386/i386.md (paritydi2): Use ix86_expand_setcc.
10668 (paritysi2): Ditto.
10669 (isinfxf2): Ditto.
10670 (isinf<mode>2): Ditto.
10671
10672 2016-06-13 Uros Bizjak <ubizjak@gmail.com>
10673
10674 * ggc-tests.c (test_finalization): Only test need_finalization_p
10675 for GCC_VERSION >= 4003.
10676
10677 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10678
10679 * config/s390/vecintrin.h: Fix file description in comment.
10680
10681 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10682
10683 * config/s390/s390-builtin-types.def: Change builtin type naming
10684 scheme to match builtin-types.def.
10685
10686 2016-06-13 Marc Glisse <marc.glisse@inria.fr>
10687
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.
10692
10693 2016-06-13 Alan Hayward <alan.hayward@arm.com>
10694
10695 PR tree-optimization/71416
10696 * tree-vect-loop.c (vectorizable_live_operation): Let worklist have
10697 multiple entries
10698
10699 2016-06-13 Martin Liska <mliska@suse.cz>
10700
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.
10705
10706 2016-06-13 Richard Biener <rguenther@suse.de>
10707
10708 PR tree-optimization/71505
10709 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Make
10710 assert match comment.
10711
10712 2016-06-13 Marek Polacek <polacek@redhat.com>
10713
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.
10718
10719 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10720
10721 PR target/71379
10722 * config/s390/s390.c (s390_expand_builtin): Increase MAX_ARGS by
10723 one.
10724
10725 2016-06-13 Richard Biener <rguenther@suse.de>
10726
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.
10730
10731 2016-06-13 Martin Liska <mliska@suse.cz>
10732
10733 PR sanitizer/71458
10734 * toplev.c (process_options): Do not enable -fcheck-pointer-bounds
10735 w/ -fsanitize=bounds.
10736
10737 2016-06-12 Uros Bizjak <ubizjak@gmail.com>
10738
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.
10743
10744 2016-06-12 Uros Bizjak <ubizjak@gmail.com>
10745
10746 PR target/71241
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
10755 builtin functions.
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.
10759
10760 2016-06-11 Jiong Wang <jiong.wang@arm.com>
10761
10762 PR target/71061
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"
10768 attribute.
10769 (*pop_multiple_with_writeback_and_return): Likewise.
10770 (*pop_multiple_with_return): Likewise.
10771
10772 2016-06-11 Segher Boessenkool <segher@kernel.crashing.org>
10773
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.
10778
10779 2016-06-11 Kugan Vivekanandarajah <kuganv@linaro.org>
10780
10781 PR middle-end/71478
10782 * tree-ssa-reassoc.c (reassociate_bb): Remove (-1) from ops list for
10783 vector integer type.
10784
10785 2016-06-10 Jakub Jelinek <jakub@redhat.com>
10786
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.
10790
10791 2016-06-10 Martin Sebor <msebor@redhat.com>
10792
10793 PR c/71392
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
10797 them.
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.
10806
10807 2016-06-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
10808
10809 * config/arm/arm.h (pool_vector_label,
10810 return_used_this_function): Remove.
10811
10812 2016-06-10 Jeff Law <law@redhat.com>
10813
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.
10822
10823 2016-06-10 Jan Hubicka <hubicka@ucw.cz>
10824
10825 * predict.c (predict_loops): Remove PRED_LOOP_BRANCH.
10826 * predict.def (PRED_LOOP_BRANCH): Remove.
10827
10828 2016-06-10 David Malcolm <dmalcolm@redhat.com>
10829
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.
10836
10837 2016-06-10 Alexander Monakov <amonakov@ispras.ru>
10838
10839 * match.pd (-1 / B < A): Use :c to avoid pattern duplication.
10840
10841 2016-06-10 Maxim Ostapenko <m.ostapenko@samsung.com>
10842
10843 PR sanitizer/71480
10844 * varasm.c (place_block_symbol): Adjust alignment for asan protected
10845 STRING_CSTs even if TREE_CONSTANT_POOL_ADDRESS_P.
10846
10847 2016-06-10 Jan Hubicka <hubicka@ucw.cz>
10848
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.
10853
10854 2016-06-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
10855
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.
10860
10861 2016-06-10 Richard Biener <rguenther@suse.de>
10862
10863 * targhooks.c (default_builtin_vectorization_cost): Adjust
10864 vec_construct cost.
10865
10866 2016-06-10 Richard Biener <rguenther@suse.de>
10867
10868 * gimple-fold.c (gimple_fold_builtin_memory_op): Make sure
10869 to fold the RHS to a constant if possible.
10870
10871 2016-06-10 Thomas Schwinge <thomas@codesourcery.com>
10872
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.
10878
10879 * gimplify.c (gimplify_adjust_omp_clauses): Discard
10880 OMP_CLAUSE_TILE.
10881 * omp-low.c (scan_sharing_clauses): Don't expect OMP_CLAUSE_TILE.
10882
10883 * omp-low.c (scan_sharing_clauses): Don't expect
10884 OMP_CLAUSE__CACHE_.
10885
10886 2016-06-10 Alan Hayward <alan.hayward@arm.com>
10887
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.
10892
10893 2016-06-10 Richard Biener <rguenther@suse.de>
10894
10895 PR middle-end/71477
10896 * cfgloop.c (alloc_loop): Initialize nb_iterations_likely_upper_bound.
10897
10898 2016-06-09 Eric Botcazou <ebotcazou@adacore.com>
10899
10900 * df-problems.c (df_note_bb_compute): Guard use of DF_INSN_INFO_GET.
10901
10902 2016-06-09 Vladimir Makarov <vmakarov@redhat.com>
10903 Jiong Wang <jiong.wang@arm.com>
10904
10905 PR rtl-optimization/70751
10906 * lra-constraints.c (process_alt_operands): Recognize Non-pseudo
10907 spilled into memory.
10908
10909 2016-06-09 Jonathan Yong <10walls@gmail.com>
10910
10911 Revert:
10912 2015-09-21 Jonathan Yong <10walls@gmail.com>
10913
10914 * config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search
10915 sysroot/usr/lib/32api for additional win32 libraries,
10916 fixes failing Cygwin bootstrapping.
10917
10918 2016-06-09 Marcin Baczyński <marbacz@gmail.com>
10919
10920 * diagnostic.h (diagnostic_line_cutoff, diagnostic_flush_buffer):
10921 Delete.
10922
10923 2016-06-09 David Malcolm <dmalcolm@redhat.com>
10924
10925 PR bootstrap/71471
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.
10929
10930 2016-06-09 Maciej W. Rozycki <macro@imgtec.com>
10931
10932 * config/mips/mips.c (mips_output_jump): Fix formatting.
10933
10934 2016-06-09 Richard Biener <rguenther@suse.de>
10935
10936 PR tree-optimization/71462
10937 * tree-ssa-loop-manip.c (find_uses_to_rename): Guard against
10938 removed blocks.
10939
10940 2016-06-09 Martin Liska <mliska@suse.cz>
10941
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.
10950
10951 2016-06-09 Martin Liska <mliska@suse.cz>
10952
10953 * predict.c (filter_predictions): New function.
10954 (remove_predictions_associated_with_edge): Use the filter
10955 function.
10956 (equal_edge_p): New function.
10957
10958 2016-06-09 Stefan Bruens <stefan.bruens@rwth-aachen.de>
10959
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.
10964
10965 2016-06-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10966
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.
10984
10985 2016-06-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10986
10987 * config/arm/cortex-a57.md (cortex_a57_alu):
10988 Handle csel type.
10989
10990 2016-06-08 Martin Sebor <msebor@redhat.com>
10991 Jakub Jelinek <jakub@redhat.com>
10992
10993 PR c++/70507
10994 PR c/68120
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.
11003
11004 2016-06-08 Jose E. Marchesi <jose.marchesi@oracle.com>
11005
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).
11008
11009 2016-06-08 Alan Lawrence <alan.lawrence@arm.com>
11010
11011 * config/aarch64/aarch64.c (aarch64_function_arg_alignment):
11012 Rewrite, looking one level down for records and arrays.
11013
11014 2016-06-08 David Malcolm <dmalcolm@redhat.com>
11015
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.
11026
11027 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
11028
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.
11033
11034 2016-06-08 Richard Biener <rguenther@suse.de>
11035
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.
11039
11040 2016-06-08 Richard Biener <rguenther@suse.de>
11041
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.
11046
11047 2016-06-08 Jakub Jelinek <jakub@redhat.com>
11048 Richard Biener <rguenther@suse.de>
11049
11050 PR c++/71448
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.
11054
11055 2016-06-08 Richard Sandiford <richard.sandiford@arm.com>
11056
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.
11062
11063 2016-06-08 Bernd Schmidt <bschmidt@redhat.com>
11064
11065 PR debug/71432
11066 PR ada/71413
11067 * tree-ssa-strlen.c (handle_builtin_memcmp): Ignore debug insns.
11068
11069 2016-06-08 Jiong Wang <jiong.wang@arm.com>
11070
11071 * config/aarch64/aarch64-builtins.def (faddp): New builtins for modes in
11072 VDQF.
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
11078 builtin.
11079 (vpadds_f32): Likewise.
11080 (vpaddq_f32): Likewise.
11081 (vpaddq_f64): Likewise.
11082
11083 2016-06-08 Jiong Wang <jiong.wang@arm.com>
11084
11085 * config/aarch64/aarch64-builtins.def (fabd): New builtins for modes
11086 VALLF.
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.
11091 Use builtin.
11092 (vabdd_f64): Likewise.
11093 (vabd_f32): Likewise.
11094 (vabd_f64): Likewise.
11095 (vabdq_f32): Likewise.
11096 (vabdq_f64): Likewise.
11097
11098 2016-06-08 Jiong Wang <jiong.wang@arm.com>
11099
11100 * config/aarch64/aarch64-builtins.def (rsqrts): New builtins for modes
11101 VALLF.
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
11106 builtin.
11107 (vrsqrtsd_f64): Likewise.
11108 (vrsqrts_f32): Likewise.
11109 (vrsqrts_f64): Likewise.
11110 (vrsqrtsq_f32): Likewise.
11111 (vrsqrtsq_f64): Likewise.
11112
11113 2016-06-08 Jiong Wang <jiong.wang@arm.com>
11114
11115 * config/aarch64/aarch64-builtins.def (rsqrte): New builtins for modes
11116 VALLF.
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
11121 builtin.
11122 (vrsqrted_f64): Likewise.
11123 (vrsqrte_f32): Likewise.
11124 (vrsqrte_f64): Likewise.
11125 (vrsqrteq_f32): Likewise.
11126 (vrsqrteq_f64): Likewise.
11127
11128 2016-06-08 Jiong Wang <jiong.wang@arm.com>
11129
11130 * config/aarch64/aarch64-builtins.def (scvtf): Register vector modes.
11131 (ucvtf): Likewise.
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.
11138 Use builtin.
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.
11154
11155 2016-06-08 Jiong Wang <jiong.wang@arm.com>
11156
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.
11163 (ucvtf): Likewise.
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.
11175 Use builtin.
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
11184 mapping.
11185 (FCVT_TARGET): Likewise.
11186 (FCVT_FIXED2F): New iterator.
11187 (FCVT_F2FIXED): Likewise.
11188 (fcvt_fixed_insn): New define_int_attr.
11189
11190 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
11191
11192 * predict.c (pass_strip_predict_hints::execute): Cleanup CFG if
11193 some statements was removed.
11194
11195 2016-06-08 Alan Hayward <alan.hayward@arm.com>
11196
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.
11218
11219 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
11220
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.
11241
11242 2016-06-07 Bill Seurer <seurer@linux.vnet.ibm.com>
11243
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.
11253
11254 2016-06-07 Peter Bergner <bergner@vnet.ibm.com>
11255
11256 * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mhtm and
11257 -mno-htm.
11258
11259 2016-06-07 David Malcolm <dmalcolm@redhat.com>
11260
11261 * spellcheck.c (selftest::test_find_closest_string): New function.
11262 (spellcheck_c_tests): Call the above.
11263
11264 2016-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11265
11266 * simplify-rtx.c (simplify_cond_clz_ctz): Delete 'mode' local variable.
11267
11268 2016-06-07 Jakub Jelinek <jakub@redhat.com>
11269
11270 * config/i386/sse.md (avx_vec_concat<mode>): Add v=v,vm and
11271 Yv=Yv,C alternatives.
11272
11273 2016-06-07 Richard Biener <rguenther@suse.de>
11274
11275 PR c/61564
11276 * common.opt (ffast-math): Make Optimization.
11277
11278 2016-06-07 Simon Dardis <simon.dardis@imgtec.com>
11279 Prachi Godbole <prachi.godbole@imgtec.com>
11280
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.
11284
11285 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
11286
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;
11292 fix formatting.
11293
11294 2016-06-07 Paolo Carlini <paolo.carlini@oracle.com>
11295
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):
11301 Use the above.
11302
11303 2016-06-07 Richard Biener <rguenther@suse.de>
11304
11305 PR tree-optimization/71428
11306 * tree-ssa-math-opts.c (perform_symbolic_merge): Properly distinguish
11307 BIT_FIELD_REF op vs. load.
11308
11309 2016-06-07 Richard Biener <rguenther@suse.de>
11310
11311 PR middle-end/71423
11312 * match.pd ((X | ~Y) -> Y <= X): Properly invert the comparison
11313 for signed ops.
11314
11315 2016-06-06 John David Anglin <danglin@gcc.gnu.org>
11316
11317 * config/pa/pa.md (call): Generate indirect long calls to non-local
11318 functions on TARGET_64BIT.
11319 (call_value): Likewise.
11320
11321 2016-06-06 John David Anglin <danglin@gcc.gnu.org>
11322
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.
11326
11327 2016-06-07 Kugan Vivekanandarajah <kuganv@linaro.org>
11328
11329 PR middle-end/71408
11330 * tree-ssa-reassoc.c (zero_one_operation): Fix NEGATE_EXPR operand for
11331 propagate_op_to_single_use.
11332
11333 2016-06-07 Kugan Vivekanandarajah <kuganv@linaro.org>
11334
11335 PR middle-end/71281
11336 * tree-ssa-reassoc.c (reassociate_bb): Set uid for negate stmt.
11337
11338 2016-06-07 Uros Bizjak <ubizjak@gmail.com>
11339
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.
11358 (rep_mov): Ditto.
11359 (strset_singleop): Ditto.
11360 (rep_stos): Ditto.
11361 (cmpstrnqi_nz_1): Ditto.
11362 (cmpstrnqi_1): Ditto.
11363 (strlenqi_1): Ditto.
11364
11365 2016-06-06 Jakub Jelinek <jakub@redhat.com>
11366
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.
11371
11372 2016-06-06 David Malcolm <dmalcolm@redhat.com>
11373
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
11478 template.
11479 (selftest::wide_int_cc_tests): New function.
11480
11481 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11482
11483 PR middle-end/37780
11484 * ifcvt.c (noce_try_ifelse_collapse): New function.
11485 Declare prototype.
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.
11490
11491 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11492
11493 PR middle-end/37780
11494 * config/aarch64/aarch64.md (ctz<mode>2): Convert to
11495 define_insn_and_split.
11496
11497 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11498
11499 PR middle-end/37780
11500 * config/arm/arm.md (ctzsi2): Convert to define_insn_and_split.
11501
11502 2016-06-06 Bernd Edlinger <bernd.edlinger@hotmail.de>
11503
11504 PR c/24414
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.
11520
11521 2016-06-06 Jose E. Marchesi <jose.marchesi@oracle.com>
11522
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
11538 implemented ones.
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
11570 VIS4 4.0.
11571 * config/sparc/driver-sparc.c (cpu_names): Add SPARC-M7 and
11572 UltraSparc M7.
11573 * config/sparc/sparc.opt (sparc_processor_type): New value
11574 niagara7.
11575 * config/sparc/visintrin.h (__attribute__): Prototypes for the
11576 VIS4 builtins.
11577 * doc/invoke.texi (SPARC Options): Document -mcpu=niagara7 and
11578 -mvis4.
11579 * doc/extend.texi (SPARC VIS Built-in Functions): Document the
11580 VIS4 builtins.
11581
11582 2016-06-06 Jonathan Wakely <jwakely@redhat.com>
11583
11584 * doc/sourcebuild.texi (Directives): Remove extra closing braces.
11585
11586 2016-06-06 Richard Biener <rguenther@suse.de>
11587
11588 PR tree-optimization/71398
11589 * tree-ssa-loop-ivcanon.c (unloop_loops): First unloop, then
11590 remove edges.
11591
11592 2016-06-05 James Bowman <james.bowman@ftdichip.com>
11593
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.
11599
11600 2016-06-06 Uros Bizjak <ubizjak@gmail.com>
11601
11602 PR target/71389
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.
11606
11607 2016-06-05 John David Anglin <danglin@gcc.gnu.org>
11608
11609 * expr.c (move_by_pieces_d::generate): Mark mode parameter with
11610 ATTRIBUTE_UNUSED.
11611
11612 2016-06-05 Jan Hubicka <hubicka@ucw.cz>
11613
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.
11620
11621 2016-06-05 Jan Hubicka <hubicka@ucw.cz>
11622
11623 * cfg.c (check_bb_profile): Do not report mismatched profiles when
11624 only edges out of BB are EH edges.
11625
11626 2016-06-04 Martin Sebor <msebor@redhat.com>
11627 Marcin Baczyński <marbacz@gmail.com>
11628
11629 PR c/48116
11630 * doc/invoke.texi (-Wreturn-type): Mention not warning on return with
11631 a void expression in a void function.
11632
11633 2016-06-03 Jan Hubicka <hubicka@ucw.cz>
11634
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.
11640
11641 2016-06-04 Jakub Jelinek <jakub@redhat.com>
11642
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.
11647
11648 2016-06-04 Oleg Endo <olegendo@gcc.gnu.org>
11649
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.
11653
11654 2016-06-04 Oleg Endo <olegendo@gcc.gnu.org>
11655
11656 * config/sh/sh.c (sh_print_operand_address): Don't use hardcoded 'r0'
11657 for reg+reg addressing mode.
11658
11659 2016-06-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11660
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.
11664
11665 2016-06-03 Jan Hubicka <hubicka@ucw.cz>
11666
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.
11671
11672 2016-06-03 Joseph Myers <joseph@codesourcery.com>
11673
11674 PR target/71276
11675 PR target/71277
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.
11702
11703 2016-06-03 H.J. Lu <hongjiu.lu@intel.com>
11704 Julia Koval <julia.koval@intel.com>
11705
11706 PR target/66960
11707 PR target/67630
11708 PR target/67634
11709 PR target/67841
11710 PR target/68037
11711 PR target/68618
11712 PR target/68661
11713 PR target/69575
11714 PR target/69596
11715 PR target/69734
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
11729 handler.
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
11735 interrupt handler.
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
11757 attributes.
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
11761 avoid DRAP.
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.
11769
11770 2016-06-03 Bernd Schmidt <bschmidt@redhat.com>
11771
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
11776 and use it.
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
11790 functions for it.
11791 (class op_by_pieces_d): New.
11792 (op_by_pieces_d::op_by_pieces_d, op_by_pieces_d::run): New member
11793 functions for it.
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
11802 functions.
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
11817 COMPARE_BY_PIECES.
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.
11826
11827 2016-06-03 Alan Hayward <alan.hayward@arm.com>
11828
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
11833
11834 2016-06-03 Alan Hayward <alan.hayward@arm.com>
11835
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.
11847
11848 2016-06-03 Alan Hayward <alan.hayward@arm.com>
11849
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.
11853
11854 2016-06-03 Segher Boessenkool <segher@kernel.crashing.org>
11855
11856 * config/rs6000/rs6000.md (define_peepholes for two mfcr's): Delete.
11857
11858 2016-06-03 Alan Hayward <alan.hayward@arm.com>
11859
11860 * tree-vect-stmts.c (vectorizable_call) Remove GOMP_SIMD_LANE code.
11861
11862 2016-06-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11863
11864 * config/arm/thumb1.md (*thumb1_mulsi3): Fix typos in comment.
11865
11866 2016-06-03 Jakub Jelinek <jakub@redhat.com>
11867
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.
11873
11874 2016-06-02 Jeff Law <law@redhat.com>
11875
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.
11879
11880 2016-06-02 David Malcolm <dmalcolm@redhat.com>
11881
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".
11886
11887 2016-06-02 Martin Liska <mliska@suse.cz>
11888
11889 * predict.def: Fix typo in PRED_FORTRAN_FAIL_IO display name.
11890
11891 2016-06-02 H.J. Lu <hongjiu.lu@intel.com>
11892 Julia Koval <julia.koval@intel.com>
11893
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.
11899
11900 2016-06-02 Martin Liska <mliska@suse.cz>
11901
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.
11905
11906 2016-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11907
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.
11911
11912 2016-06-02 Jakub Jelinek <jakub@redhat.com>
11913
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.
11916
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.
11920
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.
11925
11926 2016-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11927
11928 PR target/70830
11929 * config/arm/arm.c (arm_output_multireg_pop): Guard "pop" on update.
11930
11931 2016-06-02 Segher Boessenkool <segher@kernel.crashing.org>
11932
11933 * config/rs6000/dfp.md (trunctddd2): Correct the "length" attribute.
11934
11935 2016-06-01 David Malcolm <dmalcolm@redhat.com>
11936
11937 * config/rl78/rl78.c (rl78_expand_prologue): Convert local
11938 from int to unsigned.
11939
11940 2016-05-31 Michael Meissner <meissner@linux.vnet.ibm.com>
11941
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.
11948
11949 2016-05-31 Michael Meissner <meissner@linux.vnet.ibm.com>
11950
11951 PR target/71186
11952 * config/rs6000/vsx.md (xxspltib_<mode>_nosplit): Add alternatives
11953 for loading up all 0's or all 1's.
11954
11955 2016-06-01 Thomas Preud'homme <thomas.preudhomme@arm.com>
11956
11957 * doc/sourcebuild.texi (arm_acq_rel): Document new effective target.
11958
11959 2016-06-01 Eduard Sanou <dhole@openmailbox.org>
11960
11961 * doc/cppenv.texi: Note that the `%s` in `date` is a non-standard
11962 extension.
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.
11966
11967 2016-06-01 Eric Botcazou <ebotcazou@adacore.com>
11968
11969 * tree-vect-loop.c (vect_determine_vectorization_factor): Also compute
11970 the factor for live Phi nodes.
11971
11972 2016-06-01 Jan Hubicka <hubicka@ucw.cz>
11973
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.
11978
11979 2016-06-01 Jakub Jelinek <jakub@redhat.com>
11980
11981 PR middle-end/71371
11982 * gimplify.c (gimplify_omp_for): Temporarily clear gimplify_omp_ctxp
11983 around creation of the temporary.
11984
11985 2016-06-01 Richard Biener <rguenther@suse.de>
11986
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.
11995
11996 2016-06-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
11997
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.
12002 (vslv): New insn.
12003 (vsrv): New insn.
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
12009 new builtin.
12010 * doc/extend.texi: Document the new vec_vslv and vec_srv built-in
12011 functions.
12012
12013 2016-06-01 Uros Bizjak <ubizjak@gmail.com>
12014 Jocelyn Mayer <l_indien@magic.fr>
12015
12016 PR target/67310
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.
12023
12024 2016-06-01 Nathan Sidwell <nathan@acm.org>
12025
12026 * config/nvptx/nvptx.c (nvptx_assemble_undefined_decl): Reject
12027 undefined weak.
12028
12029 2016-06-01 Richard Biener <rguenther@suse.de>
12030
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.
12049
12050 2016-06-01 Jan Hubicka <hubicka@ucw.cz>
12051
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.
12056
12057 2016-06-01 Thomas Schwinge <thomas@codesourcery.com>
12058
12059 * tree-core.h (enum omp_clause_code): Remove
12060 OMP_CLAUSE_DEVICE_RESIDENT. Adjust all users.
12061
12062 2016-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12063
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.
12068
12069 2016-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12070
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.
12075
12076 2016-06-01 Eric Botcazou <ebotcazou@adacore.com>
12077
12078 * tree-vect-loop.c (vect_determine_vectorization_factor): Also take
12079 into account live statements for mask producers.
12080
12081 2016-06-01 Richard Biener <rguenther@suse.de>
12082
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.
12086
12087 2016-06-01 Richard Biener <rguenther@suse.de>
12088
12089 * match.pd ((A & B) - (A & ~B) -> B - (A ^ B)): Add missing :c.
12090 (relational patterns): Use :c to avoid pattern duplications.
12091
12092 2016-06-01 Richard Biener <rguenther@suse.de>
12093
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
12098 operands.
12099 (lower_commutative): Adjust.
12100 (dt_simplify::gen): Do not pass artificial operators to gen
12101 functions.
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.
12106
12107 2016-06-01 Patrick Palka <ppalka@gcc.gnu.org>
12108
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.
12113
12114 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
12115
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
12119 PRED_LOOP_EXIT.
12120
12121 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
12122
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
12126 loop peeling.
12127
12128 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
12129
12130 * config/sh/sh.h (ASM_OUTPUT_SYMBOL_REF): Remove macro and use the
12131 default implementation.
12132
12133 2016-05-31 Nathan Sidwell <nathan@acm.org>
12134
12135 * dwarf2out.c (cur_line_info_table): Add GTY marker.
12136
12137 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
12138
12139 * config/sh/constraints.md (b): Remove constraint.
12140 * config/sh/predicates.md (arith_reg_operand): Remove
12141 TARGET_REGISTER_P.
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.
12155
12156 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
12157
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.
12164
12165 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
12166
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.
12171
12172 2016-05-31 Marek Polacek <polacek@redhat.com>
12173
12174 * gimplify.c (gimplify_switch_expr): Also handle GIMPLE_TRY.
12175
12176 2016-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12177
12178 * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Use
12179 aarch64_fusion_enabled_p to check for fusion capabilities.
12180
12181 2016-05-31 Richard Biener <rguenther@suse.de>
12182
12183 PR tree-optimization/71352
12184 * tree-ssa-reassoc.c (zero_one_operation): Handle op equal to
12185 minus one and a negate.
12186
12187 2016-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12188
12189 * config/aarch64/aarch64.c (aarch64_simd_attr_length_move): Delete.
12190 * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
12191 Delete prototype.
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
12195 directly.
12196 (*aarch64_be_movoi): Likewise.
12197 (*aarch64_be_movci): Likewise.
12198 (*aarch64_be_movxi): Likewise.
12199
12200 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
12201
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.
12205
12206 2016-05-31 Wladimir J. van der Laan <laanwj@gmail.com>
12207
12208 * config/aarch64/arm_neon.h (vdupb_laneq_s8): Remove spurious
12209 attribute __unused__.
12210
12211 2016-05-31 Thomas Preud'homme <thomas.preudhomme@arm.com>
12212
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.
12219
12220 2016-05-31 Kirill Yukhin <kirill.yukhin@intel.com>
12221
12222 PR target/71346
12223 * config/i386/sse.md (define_insn_and_split "*vec_extractv4sf_0"): Use
12224 `Yv' for scalar operand.
12225
12226 2016-05-31 Tom de Vries <tom@codesourcery.com>
12227
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.
12231
12232 2016-05-30 Andreas Tobler <andreast@gcc.gnu.org>
12233
12234 * config.gcc: Move hard float support for arm*hf*-*-freebsd* into
12235 armv6*-*-freebsd* for FreeBSD 11. Eliminate the arm*hf*-*-freebsd*
12236 target.
12237
12238 2016-05-30 Jose E. Marchesi <jose.marchesi@oracle.com>
12239
12240 * config.gcc (sparc*-*-*): Support cpu_32, cpu_64, tune_32 and
12241 tune_64.
12242 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
12243 support on SPARC.
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.
12247
12248 2016-05-30 Uros Bizjak <ubizjak@gmail.com>
12249
12250 * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
12251
12252 2016-05-30 Andi Kleen <ak@linux.intel.com>
12253
12254 * auto-profile.c (read_profile): Replace asserts with errors
12255 when file does not exist.
12256 * gcov-io.c (gcov_read_words): Dito.
12257
12258 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
12259
12260 * tree-cfg.c (print_loop): Print likely upper bounds.
12261
12262 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
12263
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.
12270
12271 2016-05-30 Martin Liska <mliska@suse.cz>
12272
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.
12276
12277 2016-05-30 Alexander Monakov <amonakov@ispras.ru>
12278 Marc Glisse <marc.glisse@inria.fr>
12279
12280 PR tree-optimization/71289
12281 * match.pd (-1 / B < A, A > -1 / B): New transformations.
12282
12283 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
12284
12285 * tree-vect-loop.c (vect_transform_loop): Update likely bounds.
12286
12287 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
12288
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.
12292
12293 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
12294
12295 * tree-ssa-reassoc.ci (swap_ops_for_binary_stmt): Fix typo from commit
12296 r236875. Corrected oe3 to oe2 as obvious.
12297
12298 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
12299
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.
12306
12307 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
12308
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.
12312
12313 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
12314
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
12318 updating.
12319 (canonicalize_loop_induction_variables): Fix formating.
12320
12321 2016-05-30 Eric Botcazou <ebotcazou@adacore.com>
12322
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.
12326
12327 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
12328
12329 * tree-vect-loop.c (vect_analyze_loop_2): Use
12330 likely_max_stmt_executions_int.
12331
12332 2016-05-30 Tom de Vries <tom@codesourcery.com>
12333
12334 PR tree-optimization/69067
12335 * graphite-isl-ast-to-gimple.c (get_def_bb_for_const): Remove assert.
12336
12337 2016-05-29 Uros Bizjak <ubizjak@gmail.com>
12338
12339 PR target/71245
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.
12343
12344 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
12345
12346 * predict.c (maybe_hot_frequency_p): Avoid division.
12347
12348 2016-05-28 Gerald Pfeifer <gerald@pfeifer.com>
12349
12350 * doc/install.texi: Use https for shop.fsf.org.
12351
12352 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
12353
12354 * tree-ssa-loop-ivopts.c (estimated_stmt_executions_int): Use
12355 likely_max_stmt_executions_int.
12356
12357 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
12358
12359 * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
12360 likely_max_stmt_executions_int.
12361
12362 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
12363
12364 * profile.c (compute_branch_probabilities): Do not report hitrates
12365 here.
12366 (branch_prob): Report hitrates here.
12367 * predict.c (gimple_predict_edge): Do not assert profile status;
12368 fix formatting issues.
12369
12370 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
12371
12372 * predict.c (edge_predicted_by_p): New function.
12373 (predict_paths_for_bb): Do not put multiple predictions of the same type
12374 on one edge.
12375
12376 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
12377
12378 * tree-ssa-loop-niter.c (number_of_iterations_exit): Revert accidental
12379 commit.
12380
12381 2016-05-28 Alan Modra <amodra@gmail.com>
12382
12383 * dominance.c (verify_dominators): Don't segfault on NULL imm_bb.
12384
12385 2016-05-28 Alan Modra <amodra@gmail.com>
12386
12387 PR rtl-optimization/71275
12388 * ira.c (ira): Free dominance info.
12389
12390 2016-05-27 Gerald Pfeifer <gerald@pfeifer.com>
12391
12392 * doc/sourcebuild.texi: New address for upstream Go repository.
12393
12394 2016-05-27 Thomas Preud'homme <thomas.preudhomme@arm.com>
12395
12396 * config/arm/arm.h (TARGET_ARM_V6M): Remove.
12397 (TARGET_ARM_V7M): Likewise.
12398
12399 2016-05-26 Jeff Law <law@redhat.com>
12400
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
12406 handled elsewhere.
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.
12411
12412 2016-05-27 Eric Botcazou <ebotcazou@adacore.com>
12413
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.
12431
12432 2016-05-27 Ulrich Weigand <uweigand@de.ibm.com>
12433
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.
12437
12438 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12439
12440 * config/aarch64/aarch64.c (aarch64_fusion_enabled_p): New function.
12441 * config/aarch64/aarch64-protos.h (aarch64_fusion_enabled_p): Declare
12442 prototype.
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.
12445
12446 2016-05-27 Jiong Wang <jiong.wang@arm.com>
12447
12448 PR target/63596
12449 * config/aarch64/aarch64.c (aarch64_expand_builtin_va_start): Honor
12450 tree-stdarg analysis results.
12451 (aarch64_setup_incoming_varargs): Likewise.
12452
12453 2016-05-27 Jiong Wang <jiong.wang@arm.com>
12454
12455 * config/aarch64/aarch64.c (aarch64_build_builtin_va_list): Initialize
12456 va_list_gpr_counter_field and va_list_fpr_counter_field.
12457
12458 2016-05-27 Wilco Dijkstra <wdijkstr@arm.com>
12459
12460 PR67609
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.
12466
12467 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
12468
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):
12475 Declare.
12476 * cfgloopmanip.c (copy_loop_info): Copy likely upper bounds.
12477 * loop-unroll.c (unroll_loop_constant_iterations): Update likely
12478 upper bound.
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
12484 bounds.
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.
12493
12494 2016-05-27 Marek Polacek <polacek@redhat.com>
12495
12496 PR middle-end/71308
12497 * gimple-fold.c (gimple_fold_call): Check that LHS is not null.
12498
12499 2016-05-27 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
12500
12501 * config/s390/s390.md (2x risbg splitters): Use
12502 reg_overlap_mentioned_p instead of rtx_equal_p.
12503
12504 2016-05-27 Dominik Vogt <vogt@linux.vnet.ibm.com>
12505
12506 * combine.c (make_compound_operation): Take known zero bits into
12507 account when checking for possible zero_extend.
12508
12509 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12510
12511 * config/aarch64/aarch64.md (ashl<mode>3, SHORT modes):
12512 Use const_int_operand for operand 2 predicate. Simplify expand code
12513 as a result.
12514
12515 2016-05-27 Ilya Enkovich <ilya.enkovich@intel.com>
12516
12517 PR middle-end/71279
12518 * fold-const.c (fold_ternary_loc): Don't fold VEC_COND_EXPR
12519 into comparison.
12520
12521 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12522
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
12527 and CC_SESWPmode.
12528 (aarch64_rtx_costs): Likewise.
12529
12530 2016-05-26 Michael Meissner <meissner@linux.vnet.ibm.com>
12531
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
12538 available.
12539 * config/rs6000/rs6000.md (SFDF2): New iterator to allow doing
12540 conditional moves where the comparison type is different from move
12541 type.
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
12571 longer used.
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.
12578
12579 2016-05-27 Alan Modra <amodra@gmail.com>
12580
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.
12584
12585 2016-05-26 Uros Bizjak <ubizjak@gmail.com>
12586
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.
12627
12628 2016-05-26 Martin Liska <mliska@suse.cz>
12629
12630 * tree-ssa-loop-ivopts.c (comp_cost::infinite_cost_p): New
12631 function.
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.
12672
12673 2016-05-26 Richard Sandiford <richard.sandiford@arm.com>
12674
12675 * tree-ssa-loop-ivopts.c (loop_body_includes_call): Don't assume
12676 that internal functions will clobber all caller-saved registers.
12677
12678 2016-05-26 Wilco Dijkstra <wdijkstr@arm.com>
12679
12680 * config/aarch64/aarch64.c (aarch64_case_values_threshold):
12681 Return a better case_values_threshold when optimizing.
12682
12683 2016-05-26 Wilco Dijkstra <wdijkstr@arm.com>
12684
12685 * config/aarch64/aarch64-simd.md (aarch64_combinez):
12686 Add ? to integer variant.
12687 (aarch64_combinez_be): Likewise.
12688
12689 2016-05-26 Jakub Jelinek <jakub@redhat.com>
12690
12691 * config/i386/sse.md (*vcvtps2ph_store<mask_name>): Use v constraint
12692 instead of x constraint.
12693 (vcvtps2ph256<mask_name>): Likewise.
12694
12695 * config/i386/sse.md (*ssse3_palignr<mode>_perm): Add avx512bw
12696 alternative. Formatting fix.
12697
12698 * config/i386/sse.md
12699 (<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Rename
12700 to ...
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.
12706
12707 2016-05-25 Jeff Law <law@redhat.com>
12708
12709 PR tree-optimization/71272
12710 * tree-ssa-threadbackward.c (convert_and_register_jump_thread_path):
12711 Update comments. Add test for empty path.
12712
12713 2016-05-25 Bill Seurer <seurer@linux.vnet.ibm.com>
12714
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.
12722
12723 2016-05-25 Eric Botcazou <ebotcazou@adacore.com>
12724
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.
12728
12729 2016-05-25 Uros Bizjak <ubizjak@gmail.com>
12730
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.
12736
12737 2016-05-25 Uros Bizjak <ubizjak@gmail.com>
12738 H.J. Lu <hongjiu.lu@intel.com>
12739
12740 PR target/70738
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.
12752
12753 2016-05-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12754
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
12758 operations.
12759
12760 2016-05-25 Ilya Verbin <ilya.verbin@intel.com>
12761
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>):
12784 Rename to ...
12785 (avx512f_fix_notruncv16sfv16si<mask_name><round_name>): ... this.
12786 (<mask_codefor>avx512f_cvtpd2dq512<mask_name><round_name>): Rename
12787 to ...
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.
12794
12795 2016-05-25 Nick Clifton <nickc@redhat.com>
12796
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.
12803
12804 2016-05-25 Richard Biener <rguenther@suse.de>
12805
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.
12810
12811 2016-05-25 Martin Liska <mliska@suse.cz>
12812
12813 * ipa-inline.c (edge_badness): Use 'w/' instead of 'w'.
12814
12815 2016-05-25 Richard Biener <rguenther@suse.de>
12816
12817 PR tree-optimization/71264
12818 * tree-vect-stmts.c (vect_init_vector): Properly deal with
12819 vector type val.
12820
12821 2016-05-25 Martin Liska <mliska@suse.cz>
12822
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.
12826
12827 2016-05-25 Richard Biener <rguenther@suse.de>
12828
12829 * timevar.def (TV_TREE_LOOP_IFCVT): Add.
12830 * tree-if-conv.c (pass_data_if_conversion): Use it.
12831
12832 2016-05-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
12833
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.
12837
12838 2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
12839
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.
12845
12846 2016-05-24 Cesar Philippidis <cesar@codesourcery.com>
12847
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.
12853
12854 2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
12855
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
12859 zeros.
12860 (p9v_parity<mode>2): Likewise.
12861 * config/rs6000/vector.md (VEC_IP): New mode iterator for vector
12862 parity.
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
12866 power9 built-ins.
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.
12878 (VCTZH): Likewise.
12879 (VCTZW): Likewise.
12880 (VCTZD): Likewise.
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
12903 functions.
12904
12905 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
12906
12907 * tree-ssa-reassoc.c (sort_by_operand_rank): Skip checking gimple_bb
12908 when there is stmt_to_insert.
12909
12910 2016-05-24 Martin Sebor <msebor@redhat.com>
12911
12912 PR c++/71147
12913 * tree.h (complete_or_array_type_p): New inline function.
12914
12915 2016-05-24 Jakub Jelinek <jakub@redhat.com>
12916
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.
12920
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.
12925
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
12941 alternatives.
12942
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.
12949
12950 2016-05-24 Jeff Law <law@redhat.com>
12951
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.
12956
12957 2016-05-24 Marek Polacek <polacek@redhat.com>
12958
12959 PR c/71249
12960 * gimplify.c (gimplify_switch_expr): Look into the innermost lexical
12961 scope.
12962
12963 2016-05-24 Jakub Jelinek <jakub@redhat.com>
12964
12965 PR c++/71257
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.
12971
12972 2016-05-24 Richard Biener <rguenther@suse.de>
12973
12974 PR tree-optimization/71240
12975 * tree-ssa-math-opts.c (init_symbolic_number): Verify the source
12976 has integral type.
12977
12978 2016-05-24 Richard Biener <rguenther@suse.de>
12979
12980 PR tree-optimization/71230
12981 * tree-ssa-reassoc.c (zero_one_operation): Handle negate special ops.
12982
12983 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
12984
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
12997 hybrid SLP.
12998 (vectorizable_comparison): Make static. Remove redundant
12999 PURE_SLP_STMT check.
13000 (vect_transform_stmt): Assert that we always have an slp_node
13001 if PURE_SLP_STMT.
13002
13003 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13004
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.
13010
13011 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13012
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
13018 UINTVAL.
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.
13033
13034 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13035
13036 * config/arm/arm.md (andsi3): Replace cast of 1 to HOST_WIDE_INT
13037 with HOST_WIDE_INT_1.
13038 (insv): Likewise.
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
13043 HOST_WIDE_INT_1.
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
13048 HOST_WIDE_INT_1.
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.
13053
13054 2016-05-24 Marek Polacek <polacek@redhat.com>
13055
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.
13063
13064 2016-05-24 Richard Biener <rguenther@suse.de>
13065
13066 PR tree-optimization/71253
13067 * cfganal.h (control_dependences): Make robust against edge
13068 and BB removal.
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
13081 get_edge_src.
13082 (perform_tree_ssa_dce): Adjust.
13083 * tree-loop-distribution.c (create_edge_for_control_dependence): Use
13084 get_edge_src.
13085 (pass_loop_distribution::execute): Adjust. Do loop destroying
13086 conditional on changed.
13087
13088 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13089
13090 PR target/69857
13091 * config/arm/arm.c (gen_operands_ldrd_strd): Remove bogus early
13092 return. Reindent transformation comment and mention the ARM state
13093 behavior.
13094
13095 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
13096
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.
13100
13101 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
13102
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
13106 for load_lanes.
13107
13108 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
13109
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
13113 variable.
13114
13115 2016-05-24 Richard Biener <rguenther@suse.de>
13116
13117 PR middle-end/70434
13118 PR c/69504
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.
13123
13124 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
13125
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
13132 to ops vector.
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.
13138
13139 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
13140
13141 PR target/71201
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.
13148
13149 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
13150 Kelvin Nilsen <kelvin@gcc.gnu.org>
13151
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
13157 ISA 3.0.
13158
13159 2016-05-23 Uros Bizjak <ubizjak@gmail.com>
13160
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)
13171 with TARGET_SSE2.
13172 (*movdf_internal): Use IS_STACK_MODE macro.
13173 (*movsf_internal): Ditto.
13174
13175 2016-05-23 Marc Glisse <marc.glisse@inria.fr>
13176
13177 * match.pd (a * (1 << b), ~x & ~y, ~X ^ ~Y, (X ^ Y) ^ Y, ~ (-A),
13178 ~ (A - 1), ~(~X >> Y), ~(~X >>r Y)): Relax constraints.
13179
13180 2016-05-23 Jeff Law <law@redhat.com>
13181
13182 * tree-ssa-threadbackward.c (profitable_jump_thread_path): New function
13183 extracted from ...
13184 (fsm_find_control_statement_thread_paths): Call it.
13185
13186 2016-05-23 Martin Jambor <mjambor@suse.cz>
13187
13188 PR ipa/71234
13189 * ipa-cp.c (ipa_get_indirect_edge_target_1): Only check value of
13190 from_global_constant if t is not NULL.
13191
13192 2016-05-23 Marek Polacek <polacek@redhat.com>
13193
13194 PR c/49859
13195 * common.opt (Wswitch-unreachable): New option.
13196 * doc/invoke.texi: Document -Wswitch-unreachable.
13197 * gimplify.c (gimplify_switch_expr): Implement the -Wswitch-unreachable
13198 warning.
13199
13200 2016-05-23 Bin Cheng <bin.cheng@arm.com>
13201
13202 * tree-ssa-address.c (copy_ref_info): Check NULL TMR_STEP when
13203 TMR_INDEX is non-NULL.
13204
13205 2016-05-23 Richard Biener <rguenther@suse.de>
13206
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.
13210
13211 2016-05-23 Martin Jambor <mjambor@suse.cz>
13212
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.
13215
13216 2016-05-23 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
13217
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
13221 vector boundary.
13222
13223 2016-05-23 Christophe Lyon <christophe.lyon@linaro.org>
13224
13225 * config/arm/arm_neon.h (vtst_p16, vtstq_p16): New.
13226
13227 2016-05-22 Jakub Jelinek <jakub@redhat.com>
13228
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
13232 of 64x2.
13233
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.
13237
13238 * config/i386/sse.md (i128vldq): New mode iterator.
13239 (avx2_vbroadcasti128_<mode>, avx_vbroadcastf128_<mode>): Add
13240 avx512dq and avx512vl alternatives.
13241
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.
13249
13250 2016-05-22 Kugan Vivekanandarajah <kuganv@linaro.org>
13251
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.
13256
13257 2016-05-21 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
13258
13259 * config/avr/avr.c (avr_expand_prologue): Add INCOMING_FRAME_SP_OFFSET
13260 to computed stack_usage.
13261
13262 2016-05-21 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
13263
13264 PR target/71103
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.
13267
13268 2016-05-21 Jan Hubicka <hubicka@ucw.cz>
13269
13270 * tree.c (array_at_struct_end_p): Look through MEM_REF.
13271
13272 2016-05-21 Kugan Vivekanandarajah <kuganv@linaro.org>
13273
13274 PR middle-end/71179
13275 * tree-ssa-reassoc.c (transform_add_to_multiply): Disallow float
13276 VECTOR type.
13277
13278 2016-05-20 Eric Botcazou <ebotcazou@adacore.com>
13279
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.
13283
13284 2016-05-20 Jeff Law <law@redhat.com>
13285
13286 * bitmap.c (bitmap_find_bit): Remove useless test.
13287
13288 2016-05-20 Segher Boessenkool <segher@kernel.crashing.org>
13289
13290 * function.c (thread_prologue_and_epilogue_insns): Commit the
13291 insertion of the epilogue.
13292
13293 2016-05-20 Martin Jambor <mjambor@suse.cz>
13294
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.
13300
13301 2016-05-20 Eric Botcazou <ebotcazou@adacore.com>
13302
13303 * config/arm/arm.c (arm_expand_prologue): Set the stack usage to 0
13304 for naked functions.
13305 (thumb1_expand_prologue): Likewise.
13306
13307 2016-05-20 Nathan Sidwell <nathan@acm.org>
13308
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.
13312
13313 2016-05-20 David Malcolm <dmalcolm@redhat.com>
13314
13315 * calls.c (can_implement_as_sibling_call_p): Mark param
13316 reg_parm_stack_space with ATTRIBUTE_UNUSED.
13317
13318 2016-05-20 Uros Bizjak <ubizjak@gmail.com>
13319
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
13323 constants.
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.
13327
13328 2016-05-20 Cesar Philippidis <cesar@codesourcery.com>
13329
13330 * config/nvptx/nvptx.md (sincossf3): New pattern.
13331
13332 2016-05-20 David Malcolm <dmalcolm@redhat.com>
13333
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.
13357
13358 2016-05-20 David Malcolm <dmalcolm@redhat.com>
13359
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.
13364
13365 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
13366
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.
13372
13373 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
13374
13375 * loop-doloop.c (doloop_optimize): Use get_estimated_loop_iterations_int
13376 and get_max_loop_iterations_int.
13377
13378 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
13379
13380 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can not produce
13381 realistic upper bounds here.
13382
13383 2016-05-20 Jakub Jelinek <jakub@redhat.com>
13384
13385 PR c++/71210
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.
13390
13391 2016-05-20 Marc Glisse <marc.glisse@inria.fr>
13392
13393 PR tree-optimization/71079
13394 PR tree-optimization/71206
13395 * match.pd ((X ^ Y) ^ (X ^ Z)): Convert the arguments.
13396
13397 2016-05-20 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
13398
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.
13405
13406 2016-05-20 Richard Guenther <rguenther@suse.de>
13407
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.
13424
13425 2016-05-20 Richard Biener <rguenther@suse.de>
13426
13427 PR tree-optimization/71185
13428 * tree-ssa-loop-prefetch.c (gather_memory_references): Drop
13429 register operations.
13430
13431 2016-05-20 Richard Biener <rguenther@suse.de>
13432
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
13440 loop versioning.
13441
13442 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org>
13443
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.
13453
13454 2016-05-19 Sandra Loosemore <sandra@codesourcery.com>
13455
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.
13461
13462 2016-05-19 Ryan Burn <contact@rnburn.com>
13463
13464 * Makefile.in (GTFILES): Add cilk.h and cilk-common.c.
13465 * gengtype.c (open_base_files): Add cilk.h to ifiles.
13466
13467 2016-05-19 Uros Bizjak <ubizjak@gmail.com>
13468
13469 * sched-deps.c (sched_analyze_2) <case TRAP_IF>: Also
13470 force pending loads from memory.
13471
13472 2016-05-19 Kelvin Nilsen <kelvin@gcc.gnu.org>
13473
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
13493 configuration.
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
13497 functions.
13498 (builtin_function_type): Remove fatal_error assertion that is no
13499 longer valid.
13500 (rs6000_common_init_builtins): Add support for no-operand built-in
13501 functions.
13502 * config/rs6000/rs6000.h (RS6000_BTM_MODULO): New macro
13503 definition.
13504 (RS6000_BTM_PURE): Enhance comment to clarify intent of this flag
13505 definition.
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
13509 functions.
13510
13511 2016-05-19 Jan Hubicka <hubicka@ucw.cz>
13512
13513 * tree-vect-loop.c (vect_analyze_loop_2): Use also
13514 max_loop_iterations_int.
13515
13516 2016-05-19 Marek Polacek <polacek@redhat.com>
13517
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.
13521
13522 2016-05-19 Martin Liska <mliska@suse.cz>
13523
13524 * tree-vect-stmts.c (vectorizable_simd_clone_call): Utilize
13525 auto_vec instead of vec.
13526
13527 2016-05-19 Martin Liska <mliska@suse.cz>
13528
13529 * tree-parloops.c (oacc_entry_exit_ok): Release a vector.
13530
13531 2016-05-19 Martin Liska <mliska@suse.cz>
13532
13533 * tree-if-conv.c (ifcvt_repair_bool_pattern): Utilize auto_vecs.
13534
13535 2016-05-19 Martin Liska <mliska@suse.cz>
13536
13537 * ipa-pure-const.c (set_function_state): Remove an existing
13538 funct_state.
13539 (remove_node_data): Do not free it as it's released
13540 in set_function_state.
13541
13542 2016-05-19 Martin Liska <mliska@suse.cz>
13543
13544 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Release
13545 bitmap.
13546
13547 2016-05-19 Martin Liska <mliska@suse.cz>
13548
13549 * omp-simd-clone.c (simd_clone_adjust): Release vector.
13550
13551 2016-05-19 Martin Liska <mliska@suse.cz>
13552
13553 * tree-ssa-reassoc.c (eliminate_duplicate_pair): Truncate
13554 an auto_vec instead of re-creating it.
13555
13556 2016-05-19 Martin Liska <mliska@suse.cz>
13557
13558 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Use
13559 auto_vec instead of vec.
13560
13561 2016-05-19 Martin Liska <mliska@suse.cz>
13562
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.
13567
13568 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13569
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.
13572
13573 2016-05-19 Ilya Enkovich <ilya.enkovich@intel.com>
13574
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.
13580
13581 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13582
13583 PR target/71056
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.
13587
13588 2016-05-19 Maxim Ostapenko <m.ostapenko@samsung.com>
13589
13590 PR sanitizer/64354
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.
13594
13595 2016-05-19 Bin Cheng <bin.cheng@arm.com>
13596
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.
13600
13601 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org>
13602
13603 * function.c (thread_prologue_and_epilogue_insn): Move the
13604 "goto epilogue_done" one block later.
13605
13606 2016-05-19 Richard Biener <rguenther@suse.de>
13607
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.
13611
13612 2016-05-18 David Malcolm <dmalcolm@redhat.com>
13613
13614 PR driver/69265
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.
13620
13621 2016-05-18 Jakub Jelinek <jakub@redhat.com>
13622
13623 PR c++/71100
13624 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Don't drop
13625 lhs if it has TREE_ADDRESSABLE type.
13626
13627 2016-05-18 Uros Bizjak <ubizjak@gmail.com>
13628
13629 PR target/71145
13630 * config/alpha/alpha.md (trap): Add (use (reg:DI 29)).
13631 (*exception_receiver_1): Return "#" for TARGET_EXPLICIT_RELOCS.
13632
13633 2016-05-18 Martin Jambor <mjambor@suse.cz>
13634
13635 PR ipa/69708
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.
13640
13641 2016-05-18 Martin Jambor <mjambor@suse.cz>
13642
13643 PR ipa/69708
13644 * ipa-prop.c (parm_preserved_before_stmt_p): Return true for loads
13645 from TREE_READONLY parameters.
13646
13647 2016-05-18 Martin Jambor <mjambor@suse.cz>
13648
13649 PR ipa/69708
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
13654 appropriate.
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
13659 if present.
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
13669 appropriate.
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.
13674
13675 2016-05-18 Jiong Wang <jiong.wang@arm.com>
13676
13677 PR rtl-optimization/71150
13678 * lra-constraint (process_addr_reg): Guard "in_class_p" with REG_P
13679 check.
13680
13681 2016-05-18 Michael Meissner <meissner@linux.vnet.ibm.com>
13682
13683 PR target/70915
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
13695 1's set.
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
13704 operations.
13705 (rs6000_legitimize_reload_address): Likewise.
13706 (rs6000_output_move_128bit): Use output_vec_const_move to emit
13707 constants.
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
13749 declaration.
13750 * doc/md.texi (PowerPC constraints): Document the wE, wM, and wS
13751 constraints. Add trailing period to wL documentation.
13752
13753 2016-05-18 Richard Sandiford <richard.sandiford@arm.com>
13754
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
13762 and return void.
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.
13770
13771 2016-05-18 Martin Jambor <mjambor@suse.cz>
13772
13773 PR ipa/70646
13774 * ipa-prop.c (determine_locally_known_aggregate_parts): Bail out early
13775 if parameter PARAM_IPA_MAX_AGG_ITEMS is zero.
13776
13777 2016-05-18 Martin Jambor <mjambor@suse.cz>
13778
13779 PR ipa/70646
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.
13796
13797 2016-05-18 Richard Biener <rguenther@suse.de>
13798
13799 * tree-ssa-loop-im.c (determine_max_movement): Properly add
13800 condition cost to PHI cost instead of total_cost.
13801
13802 2016-05-18 Martin Liska <mliska@suse.cz>
13803
13804 PR fortran/70856
13805 * ipa-icf.c (sem_variable::merge): Set DECL_PT_UID for
13806 merged variables.
13807
13808 2016-05-18 Richard Biener <rguenther@suse.de>
13809
13810 * lto-streamer.h (LTO_major_version): Bump to 6.
13811
13812 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org>
13813
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.
13817
13818 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org>
13819
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.
13823
13824 2016-05-18 Bin Cheng <bin.cheng@arm.com>
13825
13826 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check invariant
13827 expression pointer, not pointer to the pointer.
13828
13829 2016-05-18 Jakub Jelinek <jakub@redhat.com>
13830
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.
13835
13836 * config/i386/sse.md (<ssse3_avx2>_palignr<mode>): Use
13837 constraint x instead of v in second alternative, add avx512bw
13838 alternative.
13839
13840 * config/i386/sse.md (<ssse3_avx2>_pshufb<mode>3<mask_name>): Use
13841 constraint x instead of v in second alternative, add avx512bw
13842 alternative.
13843
13844 * config/i386/sse.md (*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>): Use
13845 constraint x instead of v in second alternative, add avx512bw
13846 alternative.
13847
13848 * config/i386/sse.md (avx2_pmaddubsw256, ssse3_pmaddubsw128): Add
13849 avx512bw alternative.
13850
13851 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
13852
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.
13860
13861 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
13862
13863 * config/i386/sse.md (define_insn "*vec_concatv2sf_sse4_1"): Use 'Yv'
13864 constraint fot SF mode.
13865
13866 2016-05-18 Petr Murzin <petr.murzin@intel.com>
13867 Kirill Yukhin <kirill.yukhin@intel.com>
13868
13869 * config/i386/sse.md (define_insn "srcp14<mode>"): Use proper operand
13870 modifiers.
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>"):
13877 Ditto.
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.
13882
13883 2016-05-18 Richard Biener <rguenther@suse.de>
13884
13885 PR tree-optimization/71168
13886 * tree-loop-distribution.c (distribute_loop): Move *destroy_p
13887 initialization earlier.
13888
13889 2016-05-18 James Greenhalgh <james.greenhalgh@arm.com>
13890
13891 * config/aarch64/aarch64-simd.md
13892 (aarch64_reduc_plus_internal<mode>): Rename to...
13893 (reduc_plus_scal): ...This, and remove previous implementation.
13894
13895 2016-05-18 Richard Biener <rguenther@suse.de>
13896
13897 * passes.def: Put late dse and cd_dce in canonical order.
13898
13899 2016-05-17 Jan Hubicka <hubicka@ucw.cz>
13900
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
13905 up call stmt id.
13906 (lto_output_node): Inline thunks don't need body in every
13907 partition.
13908 * lto-streamer-in.c: Do not fixup thunk clones.
13909 * cgraphclones.c (cgraph_node::create_edge_including_clone): Skip
13910 thunks.
13911 * tree-inline.c (copy_bb): Be prepared for target node to be new after
13912 folding suceeds.
13913
13914 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org>
13915
13916 PR middle-end/63586
13917 * tree-ssa-reassoc.c (transform_add_to_multiply): New.
13918 (reassociate_bb): Call transform_add_to_multiply.
13919
13920 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org>
13921
13922 * config/aarch64/aarch64.c (all_extensions): Removed unused
13923 static variable.
13924
13925 2016-05-17 Nathan Sidwell <nathan@acm.org>
13926
13927 * config/nvptx/nvptx.c (nvptx_function_arg_boundary): New.
13928 (TARGET_FUNCTION_ARG_BOUNDARY): Override.
13929
13930 2016-05-17 Mikhail Maltsev <maltsevm@gmail.com>
13931
13932 PR tree-optimization/54579
13933 PR middle-end/55299
13934 * match.pd (~(~X >> Y), ~(~X >>r Y), ~(~X <<r Y)): New patterns.
13935
13936 2016-05-17 Marek Polacek <polacek@redhat.com>
13937
13938 PR ipa/71146
13939 * tree-inline.c (expand_call_inline): Call
13940 maybe_remove_unused_call_args.
13941
13942 2016-05-17 Jim Wilson <jim.wilson@linaro.org>
13943
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.
13947
13948 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
13949
13950 * match.pd (X & C): New transformation.
13951
13952 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
13953
13954 * match.pd (~X & Y): New transformation.
13955
13956 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
13957
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.
13962
13963 2016-05-17 Jiong Wang <jiong.wang@arm.com>
13964
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.
13980
13981 2016-05-17 Jiong Wang <jiong.wang@arm.com>
13982
13983 * config/aarch64/aarch64-simd.md (vmul_n_f32): Remove inline assembly.
13984 Use builtin.
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.
13995
13996 2016-05-17 Jiong Wang <jiong.wang@arm.com>
13997
13998 * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_to_128df): Extend
13999 to all supported modes. Rename to "*aarch64_mul3_elt_from_dup".
14000
14001 2016-05-17 Jiong Wang <jiong.wang@arm.com>
14002
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.
14012
14013 2016-05-17 Gerald Pfeifer <gerald@pfeifer.com>
14014
14015 * wide-int.h: Change fixed_wide_int_storage from class to struct.
14016
14017 2016-05-17 Richard Biener <rguenther@suse.de>
14018
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.
14028
14029 2016-05-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14030
14031 PR target/70809
14032 * config/aarch64/aarch64-simd.md (aarch64_vmls<mode>): Delete.
14033
14034 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
14035
14036 * config/aarch64/aarch64-elf.h (ASM_OUTPUT_DEF): Delete.
14037
14038 2016-05-17 Ilya Enkovich <ilya.enkovich@intel.com>
14039
14040 PR target/71114
14041 * config/i386/i386.c (dimode_scalar_chain::convert_op): Fix
14042 insertion point for instructions generated by validize_mem.
14043
14044 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
14045
14046 * config/aarch64/aarch64.c (SHIFT_COUNT_TRUNCATED): Wrap definition
14047 in brackets.
14048
14049 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
14050
14051 * config/aarch64/aarch64.c
14052 (aarch64_output_simd_mov_immediate): Make "buf_size" a variable
14053 rather than a macro.
14054
14055 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
14056
14057 * doc/invoke.texi (AArch64 Options): Various updates.
14058
14059 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
14060
14061 * ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig
14062 into instrumentation thunks.
14063 * cif-code.def (CIF_CHKP): New.
14064
14065 2016-05-16 Uros Bizjak <ubizjak@gmail.com>
14066
14067 * config/i386/xopintrin.h: Correct "unsinged" typo in the comments.
14068
14069 2016-05-16 Martin Jambor <mjambor@suse.cz>
14070
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.
14073
14074 2016-05-16 Marek Polacek <polacek@redhat.com>
14075
14076 * gimple.c (maybe_remove_unused_call_args): Fix typos in the
14077 commentary.
14078
14079 2016-05-16 Martin Jambor <mjambor@suse.cz>
14080
14081 PR hsa/70857
14082 * omp-low.c (grid_expand_target_grid_body): Copy RESULT_DECL of
14083 the outlined kernel function.
14084
14085 2016-05-16 Robert Suchanek <robert.suchanek@imgtec.com>
14086
14087 * config/mips/mips.h (ISA_HAS_LSA): Enable for -mmsa.
14088 (ISA_HAS_DLSA): Ditto.
14089
14090 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com>
14091
14092 * config/mips/m5100.md (m51_int_load): Update the latency to 2.
14093
14094 2016-05-16 Nathan Sidwell <nathan@acm.org>
14095
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.
14101
14102 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
14103
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.
14112
14113 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com>
14114
14115 * config/mips/mips-cpus.def (p5600): Add multi-line brackets.
14116
14117 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
14118
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.
14129
14130 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
14131
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.
14139
14140 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
14141
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
14144 calls from thunk.
14145 * ipa-inline-transform.c (inline_call): When inlining into thunk produce
14146 gimple body.
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.
14150
14151 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
14152
14153 * tree-inline.c (expand_call_inline): recurse after inlining thunk.
14154
14155 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
14156
14157 * tree.c (free_lang_data_in_decl): Also set target/optimization flags
14158 for thunks.
14159
14160 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
14161
14162 * ipa-inline.c (report_inline_failed_reason): Look into thunks, too
14163 (inline_small_functions): Do not look for function symbol when
14164 resetting caches.
14165
14166 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
14167
14168 * lto-cgraph.c (compute_ltrans_boundary, output_symtab): Fix handling
14169 of inline thunks
14170
14171 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
14172 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
14173 Jiong Wang <jiong.wang@arm.com>
14174
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
14179 declaration.
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
14190 condition.
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.
14196
14197 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
14198
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):
14203 Remove.
14204
14205 2016-05-16 Eric Botcazou <ebotcazou@adacore.com>
14206
14207 * configure.ac: Add ACX_NONCANONICAL_HOST.
14208 * configure: Regenerate.
14209 * Makefile.in: Set host_noncanonical.
14210
14211 2016-05-14 Uros Bizjak <ubizjak@gmail.com>
14212
14213 PR target/71097
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.
14220
14221 2016-05-13 Segher Boessenkool <segher@kernel.crashing.org>
14222
14223 PR rtl-optimization/67483
14224 * combine.c (make_compound_operation): Don't call extract_left_shift
14225 with negative shift amounts.
14226
14227 2016-05-13 Jakub Jelinek <jakub@redhat.com>
14228
14229 PR bootstrap/71071
14230 * fold-const.c (fold_checksum_tree): Allow modification
14231 of TYPE_ALIAS_SET during folding.
14232
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.
14236
14237 2016-05-13 H.J. Lu <hongjiu.lu@intel.com>
14238
14239 * tree-ssa-loop-ivopts.c (create_new_ivs): Cast to
14240 unsigned HOST_WIDE_INT with HOST_WIDE_INT_PRINT_UNSIGNED in
14241 printf format.
14242
14243 2016-05-13 Nathan Sidwell <nathan@acm.org>
14244
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.
14252
14253 * config/nvptx/nvptx.c (write_fn_proto): Handle
14254 BUILT_IN_ATOMIC_COMPARE_EXCHANGE_n oddity.
14255
14256 2016-05-13 Martin Liska <mliska@suse.cz>
14257
14258 * tree-ssa-loop-ivopts.c (create_new_ivs): Use HOST_WIDE_INT_PRINT_DEC
14259 and PRIu64 in printf format.
14260
14261 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14262
14263 * tree-ssa-loop-ivanon.c (try_unroll_loop_completely): Typo fix in
14264 comment.
14265
14266 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14267
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.
14271
14272 2016-05-13 Richard Biener <rguenther@suse.de>
14273
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.
14278
14279 2016-05-13 Martin Liska <mliska@suse.cz>
14280
14281 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
14282 Initialize a variable with default value.
14283
14284 2016-05-13 Martin Liska <mliska@suse.cz>
14285
14286 * doc/invoke.texi: Enhance explanation of error recovery
14287 of sanitizers.
14288
14289 2016-05-13 Martin Liska <mliska@suse.cz>
14290
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
14316 inv_expr.
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
14324 inv_expr.
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
14330 invariants.
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.
14342
14343 2016-05-13 Ilya Enkovich <ilya.enkovich@intel.com>
14344
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.
14349
14350 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
14351
14352 PR target/53440
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.
14357
14358 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
14359
14360 * config/aarch64/aarch64.c (TARGET_OMIT_STRUCT_RETURN_REG): Set
14361 to true.
14362
14363 2016-05-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14364
14365 PR target/71080
14366 * config/i386/i386.c (ix86_in_large_data_p): Guard against NULL exp.
14367
14368 2016-05-13 Eric Botcazou <ebotcazou@adacore.com>
14369
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
14423 obsolete builtins.
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.
14427
14428 2016-05-12 Uros Bizjak <ubizjak@gmail.com>
14429
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.
14433
14434 2016-05-12 Jiong Wang <jiong.wang@arm.com>
14435
14436 PR rtl-optimization/70904
14437 * lra-constraint.c (process_addr_reg): Relax the restriction on subreg
14438 reload for wide mode.
14439
14440 2016-05-12 Marek Polacek <polacek@redhat.com>
14441
14442 PR c/70756
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.
14450
14451 2016-05-12 Richard Biener <rguenther@suse.de>
14452
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
14456 hashes.
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
14459 phi-translation.
14460
14461 2016-05-12 Richard Biener <rguenther@suse.de>
14462
14463 PR tree-optimization/71062
14464 * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
14465 field.
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.
14473
14474 2016-05-12 Martin Liska <mliska@suse.cz>
14475
14476 * doc/invoke.texi: Explain connection between
14477 -fsanitize-recover=address and ASAN_OPTIONS="halt_on_error=1".
14478
14479 2016-05-12 Ilya Enkovich <ilya.enkovich@intel.com>
14480
14481 PR tree-optimization/71006
14482 * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
14483 consider COND_EXPR as a mask producer.
14484
14485 2016-05-12 Marek Polacek <polacek@redhat.com>
14486
14487 PR driver/71063
14488 * opts.c (common_handle_option): Detect missing argument for --help^.
14489
14490 2016-05-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14491
14492 PR target/70830
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.
14498
14499 2016-05-12 Jakub Jelinek <jakub@redhat.com>
14500
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.
14511
14512 * config/i386/sse.md (sse2_loadld): Use v instead of x
14513 constraint in alternatives 0,1,4.
14514
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.
14518
14519 PR target/71019
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.
14526
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
14529 of vex prefix.
14530
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.
14544
14545 2016-05-12 Richard Biener <rguenther@suse.de>
14546
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
14550 type.
14551
14552 2016-05-12 Richard Biener <rguenther@suse.de>
14553
14554 PR tree-optimization/70986
14555 * cfganal.c: Include cfgloop.h.
14556 (dfs_find_deadend): Prefer to take edges exiting loops.
14557
14558 2016-05-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14559
14560 * gcc.target/powerpc/pr70963.c: Require at least power8 at both
14561 compile and run time.
14562
14563 2016-05-11 Mikhail Maltsev <maltsevm@gmail.com>
14564
14565 PR c/43651
14566 * doc/invoke.texi (Wduplicate-decl-specifier): Document new option.
14567
14568 2016-05-11 Uros Bizjak <ubizjak@gmail.com>
14569
14570 * config/i386/i386.c (legitimize_pic_address): Use
14571 copy_to_suggested_reg instead of gen_movsi.
14572
14573 2016-05-11 Michael Meissner <meissner@linux.vnet.ibm.com>
14574
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
14579 d-form support.
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
14591 128-bit types.
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
14601 enabling LRA.
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
14614 -mdebug=addr.
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>
14633 was not selected.
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
14639 instructions.
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.
14653
14654 2016-05-11 Alexander Monakov <amonakov@ispras.ru>
14655
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.
14668
14669 2016-05-11 Richard Biener <rguenther@suse.de>
14670
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
14674 off bits.
14675
14676 2016-05-11 Richard Biener <rguenther@suse.de>
14677
14678 PR debug/71057
14679 * dwarf2out.c (retry_incomplete_types): Set early_dwarf.
14680 (dwarf2out_finish): Move retry_incomplete_types call ...
14681 (dwarf2out_early_finish): ... here.
14682
14683 2016-05-11 Richard Biener <rguenther@suse.de>
14684
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.
14695
14696 2016-05-11 Ilya Enkovich <ilya.enkovich@intel.com>
14697
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
14702 redundant code.
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.
14709
14710 2016-05-11 Alan Modra <amodra@gmail.com>
14711
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.
14718
14719 2016-05-10 Segher Boessenkool <segher@kernel.crashing.org>
14720
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.
14725
14726 2016-05-10 Marc Glisse <marc.glisse@inria.fr>
14727
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.
14732
14733 2016-05-10 David Malcolm <dmalcolm@redhat.com>
14734
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.
14745
14746 2016-05-10 James Norris <jnorris@codesourcery.com>
14747
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.
14753
14754 2016-05-10 Uros Bizjak <ubizjak@gmail.com>
14755
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.
14759
14760 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
14761
14762 PR target/70799
14763 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Allow
14764 integer constants.
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.
14769
14770 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com>
14771
14772 * dwarf2out.c (resolve_args_picking_1): Consider DW_OP_neg as an
14773 unary operation, not a binary one.
14774
14775 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
14776
14777 PR middle-end/70877
14778 * tree-chkp.c (chkp_add_bounds_to_call_stmt): Handle
14779 calls with type casted fndecl.
14780
14781 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
14782
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.
14787
14788 2016-05-10 Jakub Jelinek <jakub@redhat.com>
14789
14790 PR target/70927
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
14794 accordingly.
14795
14796 2016-05-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14797
14798 PR target/70963
14799 * config/rs6000/vsx.md (vsx_xvcvdpsxds_scale): Generate correct
14800 code for a zero scale factor.
14801 (vsx_xvcvdpuxds_scale): Likewise.
14802
14803 2016-05-10 David Malcolm <dmalcolm@redhat.com>
14804
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
14809 "show_ruler_p".
14810
14811 2016-05-10 Richard Biener <rguenther@suse.de>
14812
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.
14818
14819 2016-05-10 Oleg Endo <olegendo@gcc.gnu.org>
14820
14821 * config/rx/rx-protos.h (is_interrupt_func, is_fast_interrupt_func):
14822 Forward declare.
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
14826 non-inline.
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.
14838
14839 2016-05-10 Martin Liska <mliska@suse.cz>
14840
14841 * tree-inline.c (remap_dependence_clique): Do not remap
14842 debugging statements.
14843
14844 2016-05-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
14845
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.
14851
14852 2016-05-10 Richard Biener <rguenther@suse.de>
14853
14854 PR tree-optimization/70497
14855 PR tree-optimization/28367
14856 * tree-ssa-sccvn.c (vn_nary_build_or_lookup): New function
14857 split out from ...
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
14863 correctly.
14864
14865 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com>
14866
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.
14873
14874 2016-05-10 Alan Modra <amodra@gmail.com>
14875
14876 PR target/70947
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.
14881
14882 2016-05-09 Jakub Jelinek <jakub@redhat.com>
14883
14884 * config/i386/i386.md (set_got, set_got_labelled, lwp_llwpcb,
14885 lwp_lwpval<mode>3, lwp_lwpins<mode>3): Remove constraints from
14886 expanders.
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.
14890
14891 2016-05-04 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
14892
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.
14896
14897 2016-05-09 Uros Bizjak <ubizjak@gmail.com>
14898
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
14906 for AND masking.
14907
14908 2016-05-09 Richard Sandiford <richard.sandiford@arm.com>
14909
14910 * cfgexpand.c (expand_debug_expr): Fix address offset for negative
14911 bitpos.
14912
14913 2016-05-09 Richard Sandiford <richard.sandiford@arm.com>
14914
14915 * tree-affine.c (wide_int_constant_multiple_p): Add missing
14916 pointer dereference.
14917
14918 2016-05-09 Richard Biener <rguenther@suse.de>
14919
14920 PR tree-optimization/70985
14921 * match.pd (BIT_FIELD_REF -> (type)): Disable on GIMPLE when
14922 op0 isn't a gimple register.
14923
14924 2016-05-09 Prachi Godbole <prachi.godbole@imgtec.com>
14925
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.
14951
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>
14957
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
14962 builtins.
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
14995 MSA.
14996 (mips_valid_offset_p): Limit offset to 10-bit for MSA loads and
14997 stores.
14998 (mips_valid_lo_sum_p): Forbid loadings symbols via %lo(base) for
14999 MSA.
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
15024 FPRs.
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
15030 instruction.
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,
15187 move_v builtins.
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
15194 array.
15195 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
15196 hook.
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
15260 specified.
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
15284 for "qword_mode".
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
15293 specified.
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
15322 section.
15323 * doc/invoke.texi (-mmsa): Document new option.
15324
15325 2016-05-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15326
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.
15334
15335 2016-05-09 Kaushik Phatak <kaushik.phatak@kpit.com>
15336
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.
15350
15351 2016-05-09 Bin Cheng <bin.cheng@arm.com>
15352
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.
15359
15360 2016-05-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15361
15362 * config/arm/arm.md (probe_stack): Add modes to set source
15363 and destination.
15364
15365 2016-05-09 Bernd Schmidt <bschmidt@redhat.com>
15366
15367 * regrename.c (base_reg_class_for_rename): New static function.
15368 (scan_rtx_address, scan_rtx): Use it instead of base_reg_class.
15369
15370 2016-05-08 Jan Hubicka <hubicka@ucw.cz>
15371
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
15376 thunks.
15377 * ipa-inline-analyssi.c (compute_inline_parameters): Thunks are
15378 inlinable.
15379 * tree-inline.c (expand_call_inline): Expand thunks inline.
15380
15381 2016-05-08 Uros Bizjak <ubizjak@gmail.com>
15382
15383 PR target/70998
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.
15391
15392 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
15393
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
15396 users.
15397
15398 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
15399
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
15402 the file.
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.
15427
15428 2016-05-07 Jim Wilson <jim.wilson@linaro.org>
15429
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.
15437
15438 2016-05-07 Uros Bizjak <ubizjak@gmail.com>
15439
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.
15452
15453 2016-05-07 Tom de Vries <tom@codesourcery.com>
15454
15455 PR tree-optimization/70956
15456 * graphite-scop-detection.c (build_cross_bb_scalars_def): Handle NULL
15457 def.
15458
15459 2016-05-07 Oleg Endo <olegendo@gcc.gnu.org>
15460
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.
15465
15466 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
15467
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.
15476
15477 2016-05-06 Jakub Jelinek <jakub@redhat.com>
15478
15479 * genmddump.c (main): Convert argv from char ** to const char **.
15480
15481 2016-05-06 David Malcolm <dmalcolm@redhat.com>
15482
15483 * coretypes.h (OVERRIDE): New macro.
15484 (FINAL): New macro.
15485
15486 2016-05-06 Eric Botcazou <ebotcazou@adacore.com>
15487
15488 * tree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case,
15489 allow coalescing if the types are compatible.
15490
15491 2016-05-06 David Malcolm <dmalcolm@redhat.com>
15492
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.
15510
15511 2016-05-06 David Malcolm <dmalcolm@redhat.com>
15512
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.
15517 (main): 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.
15539
15540 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
15541
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.
15547
15548 2016-05-06 Martin Liska <mliska@suse.cz>
15549
15550 * tree-if-conv.c (ifcvt_split_critical_edges): Use auto_vec
15551 instead of vec as the vector is local to the function.
15552
15553 2016-05-06 Jakub Jelinek <jakub@redhat.com>
15554
15555 * config/i386/sse.md (*<code>v8hi3, *<code>v16qi3): Add
15556 avx512bw alternative.
15557
15558 * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>): Move
15559 before the ashr<mode>3 pattern.
15560
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.
15564
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
15569 in prefix.
15570
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.
15574
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.
15580
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.
15585
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.
15589
15590 * config/i386/sse.md (*avx_cvtpd2dq256_2, *avx_cvtps2pd256_2): Use
15591 v constraint instead of x.
15592
15593 2016-05-06 Nathan Sidwell <nathan@codesourcery.com>
15594
15595 * gimple.c (gimple_call_same_target_p): Unique functions are eq.
15596 * tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
15597 equality first.
15598
15599 2016-05-06 Richard Biener <rguenther@suse.de>
15600
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.
15604
15605 2016-05-06 Yuri Rumyantsev <ysrumyan@gmail.com>
15606
15607 PR debug/70935
15608 * tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
15609 loop latch destination.
15610
15611 2016-05-06 Martin Liska <mliska@suse.cz>
15612
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.
15617
15618 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
15619
15620 * config/sh/sh.opt (madjust-unroll, minvalid-symbols, msoft-atomic,
15621 mspace): Remove deprecated options.
15622 * doc/invoke.texi (SH options): Remove -mspace.
15623
15624 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
15625
15626 * config/sh/sh.md (ic_invalidate_line_sh4a): Fix insn length.
15627
15628 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
15629
15630 * config/sh/sh.md (*cmpeqsi_t): Remove combine insn pattern and similar
15631 corresponding combine split pattern.
15632
15633 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
15634
15635 PR target/58219
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
15639 alternatives.
15640 (movsi_ie): Allow for any FPU. Adjust length attribute for
15641 alternatives.
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.
15647
15648 2016-05-06 Richard Biener <rguenther@suse.de>
15649
15650 PR tree-optimization/70960
15651 * tree-if-conv.c (ifcvt_walk_pattern_tree): Handle non-SSA ops.
15652
15653 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
15654
15655 PR target/52933
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.
15658
15659 2016-05-06 Marek Polacek <polacek@redhat.com>
15660
15661 PR sanitizer/70875
15662 * ubsan.c (get_ubsan_type_info_for_type): Remove assert.
15663
15664 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
15665
15666 PR target/54089
15667 * config/sh/sh.md (*rotcr): Add another variant.
15668
15669 2016-05-06 Richard Biener <rguenther@suse.de>
15670
15671 PR middle-end/70931
15672 * dwarf2out.c (native_encode_initializer): Skip zero-sized fields.
15673
15674 2016-05-06 Richard Biener <rguenther@suse.de>
15675
15676 PR middle-end/70941
15677 * fold-const.c (split_tree): Always convert to the original type
15678 before negating.
15679
15680 2016-05-06 Richard Biener <rguenther@suse.de>
15681
15682 * fwprop.c (fwprop): Remove duplicate cleanup_cfg call.
15683 (fwprop_addr): Likewise.
15684
15685 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
15686
15687 PR target/70873
15688 * config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p):
15689 New prototype.
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.
15696
15697 2016-05-05 Uros Bizjak <ubizjak@gmail.com>
15698
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.
15705
15706 2016-05-05 Jakub Jelinek <jakub@redhat.com>
15707
15708 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use
15709 v constraint instead of x.
15710
15711 2016-05-05 Alan Modra <amodra@gmail.com>
15712
15713 PR target/68662
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):
15729 Likewise.
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):
15737 Don't define.
15738
15739 2016-05-05 Alan Modra <amodra@gmail.com>
15740
15741 * config/rs6000/rs6000.c (rs6000_frame_related): Rewrite.
15742
15743 2016-05-05 Alan Modra <amodra@gmail.com>
15744
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
15747 a save of lr.
15748
15749 2016-05-04 Uros Bizjak <ubizjak@gmail.com>
15750
15751 PR target/70873
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):
15757 Ditto.
15758 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2):
15759 Ditto. Emit the pattern using RTX.
15760
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):
15765 Ditto.
15766 (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use
15767 sse_reg_operand as operand 0 predicate.
15768
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):
15773 Ditto.
15774
15775 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
15776
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.
15791
15792 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
15793
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.
15797
15798 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
15799
15800 * cfgcleanup.c (try_simplify_condjump): Don't try to simplify a
15801 branch to a return.
15802
15803 2016-05-04 Jakub Jelinek <jakub@redhat.com>
15804
15805 PR c++/70906
15806 PR c++/70933
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.
15813
15814 2016-05-04 Eric Botcazou <ebotcazou@adacore.com>
15815
15816 * tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
15817 comment.
15818 (compute_samebase_partition_bases): Fix typo.
15819
15820 2016-05-04 Jakub Jelinek <jakub@redhat.com>
15821
15822 * config/i386/sse.md (vec_interleave_highv8sf,
15823 vec_interleave_lowv8sf, vec_interleave_highv4df,
15824 vec_interleave_lowv4df): Remove constraints from expanders.
15825
15826 * config/i386/sse.md (sse2_movq128): Use v constraint instead of x.
15827
15828 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
15829
15830 * tree-inline.c (expand_call_inline): Fix path dealing with
15831 making lhs of call statement undefined.
15832
15833 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
15834
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
15843 with aliases.
15844 (pass_local_pure_const::execute): Update.
15845
15846 2016-05-04 Marek Polacek <polacek@redhat.com>
15847
15848 * doc/invoke.texi: Document -Wdangling-else.
15849
15850 2016-05-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
15851
15852 * config.gcc: Error out when conflicting multilib is detected. Do not
15853 loop over multilibs since no combination is legal.
15854
15855 2016-05-04 Alan Modra <amodra@gmail.com>
15856
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):
15860 Align .toc.
15861
15862 2016-05-04 Matthew Fortune <matthew.fortune@imgtec.com>
15863
15864 * config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
15865 Clean up p5600 comments.
15866
15867 2016-05-04 Richard Biener <rguenther@suse.de>
15868
15869 * match.pd: Add BIT_FIELD_REF canonicalizations and vector
15870 constructor simplifications.
15871 * fold-const.c (fold_ternary_loc): Remove duplicate functionality here.
15872
15873 2016-05-04 Oleg Endo <olegendo@gcc.gnu.org>
15874
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):
15879 Always enable.
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.
15883
15884 2016-05-04 Marc Glisse <marc.glisse@inria.fr>
15885
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.
15889
15890 2016-05-04 Alan Modra <amodra@gmail.com>
15891
15892 * combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.
15893
15894 2016-05-04 Alan Modra <amodra@gmail.com>
15895
15896 PR target/70866
15897 * config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
15898 when cr2,3,4 are all fixed regs.
15899
15900 2016-05-04 Bernd Schmidt <bschmidt@redhat.com>
15901
15902 PR rtl-optimization/57193
15903 * opts.c (default_options_table): Revert OPT_frename_registers change.
15904 * doc/invoke.texi (-frename-registers, -O2): Likewise.
15905
15906 2016-05-03 Martin Sebor <msebor@redhat.com>
15907
15908 PR c++/66561
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.
15914
15915 PR c++/66561
15916 * doc/extend.texi (Other Builtins): Update __builtin_FILE,
15917 __builtin_FUNCTION, and __builtin_LINE to reflect they yield
15918 constants.
15919
15920 PR c++/66639
15921 * doc/extend.texi (Function Names as Strings): Update __func__,
15922 __FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
15923 constants.
15924
15925 2016-05-03 Jakub Jelinek <jakub@redhat.com>
15926 Richard Biener <rguenther@suse.de>
15927
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.
15932
15933 2016-05-03 Jan Hubicka <hubicka@ucw.cz>
15934
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.
15950
15951 2016-05-03 Uros Bizjak <ubizjak@gmail.com>
15952
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.
15962
15963 2016-05-03 Marek Polacek <polacek@redhat.com>
15964
15965 PR c/70859
15966 * input.c (expansion_point_location): New function.
15967 * input.h (expansion_point_location): Declare.
15968
15969 2016-05-03 Pierre-Marie de Rodat <derodat@adacore.com>
15970
15971 * dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
15972 occurence with frame_offset_ ones.
15973
15974 2016-05-03 Alan Modra <amodra@gmail.com>
15975
15976 PR rtl-optimization/70890
15977 * ira.c (combine_and_move_insns): When moving def_insn, remove
15978 equivs on use_insn.
15979
15980 2016-05-03 Dominik Vogt <vogt@linux.vnet.ibm.com>
15981
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.
15986
15987 2016-05-03 Alan Modra <amodra@gmail.com>
15988
15989 * config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
15990 for SAVE_MULTIPLE/STORE_MULTIPLE.
15991
15992 2016-05-03 Jakub Jelinek <jakub@redhat.com>
15993
15994 * config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
15995 *truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead of x.
15996
15997 2016-05-03 Richard Biener <rguenther@suse.de>
15998
15999 * gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
16000 default true.
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
16050 SSA form.
16051 * trans-mem.c (diagnose_tm_1): Handle SSA name function.
16052
16053 2016-05-03 Jakub Jelinek <jakub@redhat.com>
16054 Uros Bizjak <ubizjak@gmail.com>
16055
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>.
16066
16067 2016-05-03 Jakub Jelinek <jakub@redhat.com>
16068
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.
16073
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.
16077
16078 PR target/49244
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.
16101
16102 2016-05-03 Richard Sandiford <richard.sandiford@arm.com>
16103
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.
16107
16108 2016-05-03 Bernd Schmidt <bschmidt@redhat.com>
16109
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
16116 of fixed_reg_set.
16117 * df-scan.c (df_insn_refs_collect): Asms may reference global regs.
16118
16119 2016-05-03 Bin Cheng <bin.cheng@arm.com>
16120
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
16132 if needed.
16133 (tree_if_conversion): handle simd pragma marked loop using new
16134 local variable aggressive_if_conv. check any_complicated_phi.
16135
16136 2016-05-03 Bin Cheng <bin.cheng@arm.com>
16137
16138 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
16139 before using it.
16140
16141 2016-05-03 Bin Cheng <bin.cheng@arm.com>
16142
16143 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
16144 cbase.
16145
16146 2016-05-03 Oleg Endo <olegendo@gcc.gnu.org>
16147
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.
16155
16156 2016-05-02 Michael Meissner <meissner@linux.vnet.ibm.com>
16157
16158 * machmode.h (mode_complex): Add support to give the complex mode
16159 for a given 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
16166 the given type.
16167 (blank_mode): Likewise.
16168 (make_complex_modes): Remember the complex mode created in the
16169 base type.
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.
16187
16188 2016-05-02 Jakub Jelinek <jakub@redhat.com>
16189
16190 PR target/49244
16191 * gimple.c (gimple_builtin_call_types_compatible_p): Allow
16192 char/short arguments promoted to int because of promote_prototypes.
16193
16194 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
16195
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.
16208
16209 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
16210
16211 * omp-low.c (lower_oacc_head_tail): Assert there is at least one
16212 marker.
16213 (oacc_loop_process): Check mask for loop termination.
16214
16215 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
16216
16217 * cif-code.def (CIF_THUNK): Add.
16218 * ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
16219 accidental change.
16220
16221 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
16222
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.
16235
16236 2016-05-02 Jakub Jelinek <jakub@redhat.com>
16237
16238 PR rtl-optimization/70467
16239 * cse.c (cse_insn): Handle no-op MEM moves after folding.
16240
16241 PR rtl-optimization/70467
16242 * ipa-pure-const.c (check_call): Handle internal calls even in
16243 ipa mode like in local mode.
16244
16245 2016-05-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
16246
16247 * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.
16248
16249 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
16250
16251 * match.pd (X u< X, X u> X): New transformations.
16252
16253 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
16254
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.
16264
16265 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
16266
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.
16272
16273 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
16274
16275 * config/arc/arc.md (mulsidi3): Change operand 0 predicate to
16276 register_operand.
16277 (umulsidi3): Likewise.
16278 (indirect_jump): Fix jump instruction assembly patterns.
16279
16280 2016-05-02 Thomas Schwinge <thomas@codesourcery.com>
16281
16282 PR target/70860
16283 * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
16284 (nvptx_function_value): Assert non-NULL cfun.
16285
16286 2016-05-02 Eric Botcazou <ebotcazou@adacore.com>
16287
16288 PR rtl-optimization/70886
16289 * sched-deps.c (estimate_dep_weak): Canonicalize cselib values.
16290
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.
16295
16296 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
16297
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.
16308
16309 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
16310
16311 * tree.c (cst_and_fits_in_hwi): Simplify.
16312
16313 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
16314
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.
16319
16320 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
16321
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::
16328 shifts.
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.
16341
16342 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
16343
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.
16365
16366 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
16367
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.
16372
16373 2016-05-02 Martin Liska <mliska@suse.cz>
16374
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.
16379
16380 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
16381
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
16395 constraints.
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.
16399
16400 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
16401
16402 * config/sh/sh.md (*negnegt, *movtt): Remove.
16403
16404 2016-05-02 Marek Polacek <polacek@redhat.com>
16405 Tom de Vries <tom@codesourcery.com>
16406
16407 PR tree-optimization/70700
16408 * tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids
16409 bigger than FIRST_REF_NODE.
16410
16411 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
16412
16413 PR target/52898
16414 * config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4,
16415 TARGET_CMPEQDI_T.
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.
16423
16424 2016-05-01 Uros Bizjak <ubizjak@gmail.com>
16425
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.
16432
16433 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
16434
16435 * config/sh/sh.md (push, pop, ic_invalidate_line, cstoresi4, cstoredi4,
16436 cstoresf4, cstoredf4, fix_truncsfsi2): Remove constraints.
16437
16438 2016-05-01 Eric Botcazou <ebotcazou@adacore.com>
16439
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.
16443
16444 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
16445
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.
16453
16454 2016-05-01 Yoshinori Sato <ysato@users.sourceforge.jp>
16455
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.
16460
16461 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
16462
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.
16474 (xorsi3): Delete.
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.
16478 (mov_nop): Delete.
16479
16480 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
16481
16482 * config/sh/t-sh: Remove SH5 support.
16483 * config.gcc: Likewise.
16484 * configure: Likewise.
16485
16486 2016-04-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16487
16488 * config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus.
16489
16490 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
16491
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,
16498 movdi): Likewise.
16499
16500 2016-04-30 Alan Modra <amodra@gmail.com>
16501
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
16508 saving.
16509 (fixed_regs_p): Delete.
16510
16511 2016-04-30 Alan Modra <amodra@gmail.com>
16512
16513 * config/rs6000/rs6000.c (SAVRES_MULTIPLE): Replace with..
16514 (SAVE_STRATEGY, REST_STRATEGY): ..this. Renumber and sort enum.
16515 Update all uses.
16516
16517 2016-04-30 Alan Modra <amodra@gmail.com>
16518
16519 PR target/69645
16520 * config/rs6000/rs6000.c (fixed_reg_p): New function.
16521 (fixed_regs_p): Rename from global_regs_p. Call fixed_reg_p.
16522 Update all uses.
16523
16524 2016-04-30 Alan Modra <amodra@gmail.com>
16525
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.
16529
16530 2016-04-30 Alan Modra <amodra@gmail.com>
16531
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.
16541
16542 2016-04-30 Alan Modra <amodra@gmail.com>
16543
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.
16549 Formatting fixes.
16550 (regstat_compute_ri): Adjust for above. Don't set
16551 REG_LIVE_LENGTH.
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.
16556
16557 2016-04-30 Alan Modra <amodra@gmail.com>
16558
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.
16563
16564 2016-04-30 Alan Modra <amodra@gmail.com>
16565
16566 * ira.c (combine_and_move_insns): Rather than scanning insns,
16567 use DF infrastucture to find use and def insns.
16568
16569 2016-04-30 Alan Modra <amodra@gmail.com>
16570
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.
16577
16578 2016-04-30 Alan Modra <amodra@gmail.com>
16579
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.
16584
16585 2016-04-30 Alan Modra <amodra@gmail.com>
16586
16587 * ira.c (add_store_equivs, combine_and_move_insns): New functions,
16588 split out from..
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..
16592 (ira): ..here.
16593
16594 2016-04-30 Alan Modra <amodra@gmail.com>
16595
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.
16602
16603 2016-04-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16604
16605 * config/rs6000/altivec.h: Change definitions of vec_xl and
16606 vec_xst.
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.
16619 (XL): New.
16620 (XST): 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
16630 and vec_xst.
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
16648 grammar.
16649
16650 2016-04-29 Patrick Palka <ppalka@gcc.gnu.org>
16651
16652 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Split
16653 out into ...
16654 (simplify_control_stmt_condition_1): ... here. Recurse into
16655 BIT_AND_EXPRs and BIT_IOR_EXPRs.
16656
16657 2016-04-29 David Edelsohn <dje.gcc@gmail.com>
16658
16659 PR target/69810
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.
16666
16667 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
16668
16669 * config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK.
16670 (probe_stack): New expander.
16671 (probe_stack_<mode>): New insn pattern.
16672
16673 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
16674
16675 * config/i386/i386.md
16676 (operations with memory inputs setting flags peephole2):
16677 Remove uneeded REG_P checks. Cleanup pattern generation.
16678
16679 2016-04-29 Ilya Enkovich <ilya.enkovich@intel.com>
16680
16681 * tree-vect-loop.c (vect_transform_loop): Fix
16682 nb_iterations_upper_bound computation for vectorized loop.
16683
16684 2016-04-29 Marek Polacek <polacek@redhat.com>
16685 Jakub Jelinek <jakub@redhat.com>
16686
16687 PR sanitizer/70342
16688 * fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
16689 TARGET_EXPR_SLOT as a base.
16690
16691 2016-04-29 Andrew Burgess <andrew.burgess@embecosm.com>
16692
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.
16702
16703 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
16704
16705 * config/i386/predicates.md (constm1_operand): Fix comparison.
16706
16707 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
16708
16709 * testsuite/gcc.target/arc/ieee_eq.c: New test.
16710
16711 2016-04-29 Oleg Endo <olegendo@gcc.gnu.org>
16712
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.
16724
16725 2016-04-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
16726
16727 * config/s390/s390.c (s390_rtx_costs): Update documentation.
16728
16729 2016-04-29 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16730
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.
16735
16736 2016-04-29 Ulrich Weigand <uweigand@de.ibm.com>
16737
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.
16750
16751 2016-04-29 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
16752
16753 PR target/60040
16754 * reload1.c (reload): Call finish_spills before
16755 restarting reload loop. Skip select_reload_regs
16756 if update_eliminables_and_spill returns true.
16757
16758 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
16759
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
16766 predicate.
16767 (arc_short_operand): Likewise.
16768 * testsuite/gcc.target/arc/umulsihi3_z.c: New file.
16769
16770 2016-04-29 Richard Biener <rguenther@suse.de>
16771
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.
16779
16780 2016-04-29 Richard Biener <rguenther@suse.de>
16781
16782 * stor-layout.c (layout_type): Do not build a pointer-to-element
16783 type for arrays.
16784
16785 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
16786
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
16791 predicates.
16792
16793 2016-04-29 Jakub Jelinek <jakub@redhat.com>
16794
16795 PR middle-end/70843
16796 * fold-const.c (operand_equal_p): Don't verify hash value equality
16797 if arg0 == arg1.
16798 * tree.c (inchash::add_expr): Handle STATEMENT_LIST. Ignore BLOCK
16799 and OMP_CLAUSE.
16800
16801 2016-04-28 Jakub Jelinek <jakub@redhat.com>
16802
16803 PR target/70858
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.
16809
16810 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
16811
16812 * config/rs6000/rs6000.c (compute_save_world_info): Rename info_ptr
16813 to info. Don't initialize separate fields to 0. Clean up
16814 formatting a bit.
16815
16816 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
16817
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.
16822
16823 (probe_stack): Remove expander.
16824
16825 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
16826 Andrew Burgess <andrew.burgess@embecosm.com>
16827
16828 * config/arc/arc.c (arc_print_operand): Print integer 'H' / 'L'
16829 operands as 32-bits.
16830
16831 2016-04-28 Jason Merrill <jason@redhat.com>
16832
16833 * gdbinit.in: Skip line-map.h.
16834
16835 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
16836 Andrew Burgess <andrew.burgess@embecosm.com>
16837
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
16842 as 0.
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
16846 alternatives.
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.
16876
16877 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
16878
16879 * cfganal.c (bitmap_intersection_of_succs): Delete assert checking
16880 dst->popcount.
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.
16910
16911 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
16912 Andrew Burgess <andrew.burgess@embecosm.com>
16913
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
16923 r/Uex alternative.
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.
16938
16939 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
16940
16941 * config/rs6000/rs6000.c (machine_function): Rename
16942 insn_chain_scanned_p to spe_insn_chain_scanned_p.
16943 (rs6000_stack_info): Adjust.
16944
16945 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
16946 Andrew Burgess <andrew.burgess@embecosm.com>
16947
16948 * config/arc/constraints.md (Usd): Convert to define_constraint.
16949 (Us<): Likewise.
16950 (Us>): Likewise.
16951
16952 2016-04-28 Jakub Jelinek <jakub@redhat.com>
16953
16954 PR target/70821
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.
16958
16959 2016-04-28 Segher Boesssenkool <segher@kernel.crashing.org>
16960
16961 * tracer.c (bb_seen): Make static.
16962
16963 2016-04-28 Andrew Burgess <andrew.burgess@embecosm.com>
16964
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=.
16972
16973 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
16974
16975 PR target/70668
16976 * config/nds32/nds32.md (casesi): Don't access the operands array
16977 out of bounds.
16978
16979 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
16980
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.
16984
16985 2016-04-28 Markus Trippelsdorf <markus@trippelsdorf.de>
16986
16987 * doc/extend.texi (Common Function Attributes) [optimize]:
16988 Discourage use of the optimize attribute.
16989
16990 2016-04-28 Bill Seurer <seurer@linux.vnet.ibm.com>
16991
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.
17000
17001 2016-04-28 Jakub Jelinek <jakub@redhat.com>
17002
17003 * config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
17004 * config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise.
17005
17006 2016-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17007
17008 PR testsuite/70595
17009 * doc/sourcebuild.texi (Effective-Target Keywords, Other
17010 attributes): Document cilkplus_runtime.
17011
17012 2016-04-28 Martin Jambor <mjambor@suse.cz>
17013
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.
17017
17018 2016-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17019
17020 * internal-fn.c (expand_arith_overflow): Convert preprocessor check
17021 for WORD_REGISTER_OPERATIONS to runtime check.
17022
17023 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
17024
17025 * config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.
17026
17027 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
17028
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.
17034
17035 2016-04-28 Richard Biener <rguenther@suse.de>
17036
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).
17042
17043 2015-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17044
17045 * config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
17046 and explain why in a comment.
17047
17048 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
17049
17050 * config/arc/arc.md (cpu_facility): Add fpx variant.
17051 (subdf3): Prohibit use reverse sub when assist operations option
17052 is enabled.
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.
17056
17057 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
17058
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
17065 converted pattern.
17066
17067 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
17068 Joern Rennecke <joern.rennecke@embecosm.com>
17069
17070 * config/arc/arc-protos.h (arc_legitimize_pic_address): Remove
17071 declaration.
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
17078 unspecs.
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):
17097 Define.
17098 [DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC):
17099 Likewise.
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.
17104 (EH_USES): Define.
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.
17108 (R10_REG): Define.
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.
17117
17118 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
17119
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.
17137
17138 2016-04-28 Eduard Sanou <dhole@openmailbox.org>
17139 Matthias Klose <doko@debian.org>
17140
17141 * doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable.
17142
17143 2016-04-28 Richard Biener <rguenther@suse.de>
17144
17145 PR middle-end/70777
17146 * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
17147 canonicalization.
17148
17149 2016-04-28 Oleg Endo <olegendo@gcc.gnu.org>
17150
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.
17171
17172 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
17173
17174 * config/i386/i386.md (sign_extend to memory peephole2s): Use
17175 general_reg_operand instead of register_operand predicate.
17176
17177 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
17178
17179 * params.def (MIN_PARTITION_SIZE): Set default value to 10000.
17180
17181 2016-04-27 Marc Glisse <marc.glisse@inria.fr>
17182
17183 * match.pd (A - B > A, A + B < A): New transformations.
17184
17185 2016-04-27 Patrick Palka <ppalka@gcc.gnu.org>
17186
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.
17191
17192 2016-04-27 Jeff Law <law@redhat.com>
17193
17194 * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.
17195
17196 2016-04-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17197
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
17213 changes.
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
17232 expansions.
17233 (vector_altivec_store_<mode>): Likewise.
17234
17235 2016-04-26 Evandro Menezes <e.menezes@samsung.com>
17236
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.
17246
17247 2016-04-27 David Malcolm <dmalcolm@redhat.com>
17248
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.
17252
17253 2016-04-27 David Malcolm <dmalcolm@redhat.com>
17254
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
17267 const.
17268 (struct dataflow): Likewise for field "problem".
17269 (df_add_problem): Make param const.
17270
17271 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
17272
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
17275 for TARGET_MMX.
17276
17277 2016-04-27 David Malcolm <dmalcolm@redhat.com>
17278
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
17281 #define to...
17282 (enum df_problem_id): ...this new enum.
17283 (struct df_problem): Convert field "id" from "int" to
17284 enum df_problem_id.
17285
17286 2016-04-27 David Malcolm <dmalcolm@redhat.com>
17287
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.
17291
17292 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
17293
17294 * config/i386/i386.md
17295 (lea arith with mem operand + setcc peephole2): Set operator mode.
17296
17297 2016-04-27 H.J. Lu <hongjiu.lu@intel.com>
17298
17299 PR target/70155
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
17350 pass.
17351
17352 2016-04-27 Pierre-Marie de Rodat <derodat@adacore.com>
17353
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.
17361
17362 2016-04-27 Martin Liska <mliska@suse.cz>
17363
17364 * tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
17365 (free_loop_data): Release vuses of groups.
17366
17367 2016-04-27 Bin Cheng <bin.cheng@arm.com>
17368
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
17373 to ...
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.
17389 Update all uses.
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,
17397 base and step.
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.
17435
17436 2016-04-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17437
17438 * rtlanal.c (nonzero_bits1): Convert preprocessor check
17439 for WORD_REGISTER_OPERATIONS to runtime check.
17440
17441 2016-04-27 Richard Biener <rguenther@suse.de>
17442
17443 PR ipa/70760
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.
17449
17450 2016-04-27 Jakub Jelinek <jakub@redhat.com>
17451
17452 PR sanitizer/70683
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
17457 args is the same.
17458
17459 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
17460
17461 * doc/invoke.texi (-frename-registers): Also enabled at -Os.
17462
17463 2016-04-27 Nick Clifton <nickc@redhat.com>
17464
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.
17468
17469 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
17470
17471 * params.def (MAX_PARTITION_SIZE): New param.
17472 * doc/invoke.texi: Document lto-max-partition.
17473
17474 2016-04-27 Richard Biener <rguenther@suse.de>
17475
17476 PR ipa/70785
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.
17483
17484 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
17485
17486 * doc/invoke.texi (Warning Options): Add -Wmemset-elt-size.
17487 (-Wmemset-elt-size): New item.
17488
17489 2016-04-27 Eric Botcazou <ebotcazou@adacore.com>
17490
17491 PR ada/70759
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.
17496
17497 2016-04-27 Jakub Jelinek <jakub@redhat.com>
17498
17499 PR sanitizer/70683
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.
17513
17514 2016-04-27 Sebastian Huber <sebastian.huber@embedded-brains.de>
17515
17516 * config/rtems.h (LIB_SPEC): Add -latomic.
17517
17518 2016-04-27 Joel Sherrill <joel@rtems.org>
17519
17520 * config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
17521 xilink.ld and flags not relevant to RTEMS.
17522
17523 2016-04-26 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
17524
17525 * toplev.c (backend_init_target): Avoid calling init_reload when using
17526 LRA.
17527
17528 2016-04-26 Jakub Jelinek <jakub@redhat.com>
17529
17530 * reorg.c (try_merge_delay_insns): Declare i and j inside the
17531 for loops rather than one for the whole function.
17532
17533 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
17534
17535 * match.pd (X + CST CMP X): New transformation.
17536
17537 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
17538
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.
17543
17544 2016-04-26 Bernd Schmidt <bschmidt@redhat.com>
17545
17546 * config/i386/i386.md (operation on memory peephole): Duplicate an
17547 existing peephole and adapt it to match lea rather than an operation
17548 that clobbers CC.
17549
17550 PR rtl-optimization/57193
17551 * opts.c (default_options_table): Add OPT_frename_registers at -O2
17552 and above.
17553 * doc/invoke.texi (-frename-registers, -O2): Update documentation.
17554
17555 2016-04-26 Bin Cheng <bin.cheng@arm.com>
17556
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.
17563
17564 2016-04-26 Bin Cheng <bin.cheng@arm.com>
17565
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
17572 PHIs.
17573 (tree_if_conversion): Mark and update virtual SSA.
17574
17575 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17576
17577 PR target/61821
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
17584 renaming.
17585 * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_COMMON): Rename to ...
17586 (ASM_OUTPUT_ALIGNED_DECL_COMMON): ... this.
17587 Pass new decl arg.
17588 * config/i386/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
17589 [!USE_GAS] (LARGECOMM_SECTION_ASM_OP): Define.
17590
17591 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17592
17593 PR target/59407
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
17598 data/bss sections.
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
17602 SECTION_MACH_DEP.
17603 * doc/tm.texi.in (Sections, MACH_DEP_SECTION_ASM_FLAG): Describe.
17604 * doc/tm.texi: Regenerate.
17605
17606 2016-04-26 Jakub Jelinek <jakub@redhat.com>
17607
17608 PR bootstrap/70704
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
17612 of 1.
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.
17618
17619 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
17620
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.
17625
17626 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
17627
17628 * config/i386/predicates.md (const0_operand): Do not match
17629 const_wide_int code.
17630 (const1_operand): Ditto.
17631
17632 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
17633
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.
17643
17644 2016-04-25 Jason Merrill <jason@redhat.com>
17645
17646 * gdbinit.in: Skip is-a.h.
17647
17648 * attribs.c (register_scoped_attributes): Fix logic.
17649 * attribs.h: Declare register_scoped_attributes.
17650
17651 2016-04-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17652
17653 * config/rs6000/rs6000-builtin.def: Correct pasto error for
17654 stxvd2x and stxvw4x built-in functions.
17655
17656 2016-04-25 DJ Delorie <dj@redhat.com>
17657
17658 * config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
17659 (ashrhi3): Likewise.
17660 (lshrhi3): Likewise.
17661
17662 2016-04-25 Richard Biener <rguenther@suse.de>
17663
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.
17669
17670 2016-04-25 Michael Collison <michael.collison@linaro.org>
17671
17672 * ChangeLog(2016-04-25): Fix ChangeLog formatting.
17673
17674 2016-04-25 Michael Collison <michael.collison@linaro.org>
17675
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
17689 for new function.
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.
17695
17696 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
17697
17698 * config/i386/i386.md (*lea<mode>_general_4): Use const_0_to_3_operand
17699 predicate for operand 2.
17700
17701 2016-04-24 Uros Bizjak <ubizjak@gmail.com>
17702 H.J. Lu <hongjiu.lu@intel.com>
17703
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.
17729 (C): Ditto.
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.
17734
17735 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
17736
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.
17747
17748 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
17749
17750 * reorg.c (try_merge_delay_insns): Make merged_insns a vector.
17751
17752 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
17753
17754 * vec.h (vec_safe_contains): New function.
17755 (vec::contains): Likewise.
17756 (vec::begin): Likewise.
17757 (vec::end): Likewise.
17758
17759 2016-04-23 Jakub Jelinek <jakub@redhat.com>
17760
17761 PR sanitizer/70712
17762 * cfgexpand.c (expand_stack_vars): Fix typo.
17763
17764 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
17765
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.
17776
17777 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
17778
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.
17788
17789 2016-04-22 Richard Biener <rguenther@suse.de>
17790
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.
17795
17796 2016-04-22 Richard Biener <rguenther@suse.de>
17797
17798 PR tree-optimization/70740
17799 * tree-ssa-phiprop.c (propagate_with_phi): Handle inserted
17800 VDEF.
17801
17802 2016-04-21 H.J. Lu <hongjiu.lu@intel.com>
17803
17804 PR target/70750
17805 * config/i386/predicates.md (call_insn_operand): Replace
17806 sibcall_memory_operand with memory_operand.
17807
17808 2016-04-21 Patrick Palka <ppalka@gcc.gnu.org>
17809
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().
17815
17816 2016-04-21 Kirill Yukhin <kirill.yukhin@intel.com>
17817
17818 PR target/70728
17819 * config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
17820 Extract AVX-512BW constraint from AVX.
17821
17822 2016-04-21 Richard Biener <rguenther@suse.de>
17823
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.
17828
17829 2016-04-21 Richard Biener <rguenther@suse.de>
17830
17831 PR middle-end/70747
17832 * fold-const.c (fold_comparison): Return properly typed
17833 constant boolean.
17834
17835 2016-04-21 Bin Cheng <bin.cheng@arm.com>
17836
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.
17840
17841 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
17842
17843 * match.pd (min(-x, -y), max(-x, -y), min(~x, ~y), max(~x, ~y)):
17844 New transformations.
17845
17846 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
17847
17848 * match.pd (min(int_max, x), max(int_min, x)): New transformations.
17849
17850 2016-04-20 Jan Hubicka <jh@suse.cz>
17851
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.
17857
17858 2016-04-20 Jan Hubicka <jh@suse.cz>
17859
17860 PR ipa/70018
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
17867 def.
17868 (propagate_nothrow): Be safe WRT interposition.
17869 * cgraph.h (set_nothrow_flag): Update prototype.
17870
17871 2016-04-18 Jan Hubicka <jh@suse.cz>
17872
17873 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
17874 max_loop_iterations_int.
17875 (tree_unswitch_outer_loop): Likewise.
17876
17877 2016-04-20 Bin Cheng <bin.cheng@arm.com>
17878
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
17884 predecessors.
17885
17886 2016-04-20 Bin Cheng <bin.cheng@arm.com>
17887
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
17905 innermost_DR_map.
17906
17907 2016-04-20 Uros Bizjak <ubizjak@gmail.com>
17908
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.
17919
17920 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
17921
17922 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
17923 Short-cut unaligned load and store cases. Handle all integer
17924 vector modes.
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.
17928
17929 2016-04-20 Andrew Pinski <apinski@cavium.com>
17930 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17931
17932 PR target/64971
17933 * config/aarch64/aarch64.md (sibcall): Force call
17934 address to be DImode for ILP32.
17935 (sibcall_value): Likewise.
17936
17937 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
17938
17939 * doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.
17940
17941 2016-04-20 Richard Biener <rguenther@suse.de>
17942
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.
17948
17949 2016-04-20 Marek Polacek <polacek@redhat.com>
17950
17951 * tree-if-conv.c (is_false_predicate): For NULL_TREE return false
17952 rather than true.
17953
17954 2016-04-20 Ilya Enkovich <ilya.enkovich@intel.com>
17955
17956 * config/i386/sse.md (vec_unpacks_lo_hi): Always
17957 use kmovw to support AVX512F target.
17958
17959 2016-04-20 Bin Cheng <bin.cheng@arm.com>
17960
17961 * tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
17962
17963 2016-04-20 Marek Polacek <polacek@redhat.com>
17964
17965 PR tree-optimization/70725
17966 * tree-if-conv.c (is_false_predicate): New function.
17967 (predicate_mem_writes): Use it.
17968
17969 2016-04-20 Richard Biener <rguenther@suse.de>
17970
17971 PR tree-optimization/70726
17972 * tree-vect-stmts.c (vectorizable_shift): Do not use scalar
17973 shift amounts from a pattern stmt operand.
17974
17975 2016-04-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17976
17977 PR target/70674
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.
17985
17986 2016-04-19 Jakub Jelinek <jakub@redhat.com>
17987
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.
17991
17992 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
17993
17994 * config/i386/i386.c (ix86_legitimate_combined_insn): Remove
17995 alignment check.
17996 * config/i386/i386.md (ssememalign): Removed.
17997 * config/i386/sse.md: Remove ssememalign attribute from patterns.
17998
17999 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
18000
18001 PR target/69201
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
18148 use UNSPEC_STOREU.
18149 (ix86_emit_restore_sse_regs_using_mov): Don't use UNSPEC_LOADU.
18150 (ix86_avx256_split_vector_move_misalign): Don't use unaligned
18151 load nor store.
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.
18176
18177 2016-04-19 Richard Biener <rguenther@suse.de>
18178
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.
18183
18184 2016-04-19 Uros Bizjak <ubizjak@gmail.com>
18185
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.
18200
18201 2016-04-19 Richard Biener <rguenther@suse.de>
18202
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
18209 tail merging.
18210 (pass_fre::execute): Restore SSA info.
18211
18212 2016-04-19 Richard Biener <rguenther@suse.de>
18213
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
18220 adjustment.
18221
18222 2016-04-18 Vladimir Makarov <vmakarov@redhat.com>
18223
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.
18229
18230 2016-04-18 Michael Matz <matz@suse.de>
18231
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.
18238
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
18259 SET_DECL_ALIGN.
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.
18279
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.
18285
18286 2016-04-18 H.J. Lu <hongjiu.lu@intel.com>
18287
18288 PR target/70708
18289 * config/i386/sse.md (sse2_loadlpd): Accept load from "xm" and
18290 replace %vmovsd with "%vmovq".
18291 (vec_concatv2df): Likewise.
18292
18293 2016-04-18 Uros Bizjak <ubizjak@gmail.com>
18294
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.
18307
18308 2016-04-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18309
18310 * doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
18311 gld requirements.
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
18317 systems and bugs.
18318 (Specific, sparc64-*-solaris2*): Remove reference to bootstrap
18319 with cc.
18320
18321 2016-04-17 Jan Hubicka <jh@suse.cz>
18322
18323 * tree-ssa-loop-ivopts.c (avg_loop_niter): Use also
18324 max_loop_iterations_int.
18325
18326 2016-04-18 Richard Biener <rguenther@suse.de>
18327
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.
18333
18334 2016-04-18 Matthew Wahab <matthew.wahab@arm.com>
18335
18336 PR target/70711
18337 * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc,
18338 armv8.1-a and armv8.1-a+crc.
18339
18340 2016-04-18 Richard Biener <rguenther@suse.de>
18341
18342 PR tree-optimization/70701
18343 * tree-ssa-sccvn.c (vn_reference_lookup_3): Resolve fully constant
18344 references after translating through a memcpy.
18345
18346 2016-04-18 Richard Biener <rguenther@suse.de>
18347
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.
18354
18355 2016-04-18 Richard Biener <rguenther@suse.de>
18356
18357 PR middle-end/37870
18358 * expmed.c (extract_bit_field_1): Remove broken case
18359 using a wider MODE_INT mode.
18360
18361 2016-04-18 Segher Boessenkool <segher@kernel.crashing.org>
18362
18363 * has-brig.c (lendian16): Don't try to use __builtin_bswap16
18364 unless compiling with at least GCC-4.8.
18365
18366 2016-04-17 Jan Hubicka <jh@suse.cz>
18367
18368 PR bootstrap/70706
18369 * graphite.c (graphite_finalize): Update call to
18370 tree_estimate_probability.
18371 * predict.h (tree_estimate_probability): Update prototype.
18372
18373 2016-04-17 Jan Hubicka <jh@suse.cz>
18374
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.
18381
18382 2016-04-17 Jan Hubicka <jh@suse.cz>
18383
18384 PR ipa/70018
18385 * cgraph.h (cgraph_node::set_const_flag,
18386 cgraph_node::set_pure_flag): Update prototype to return bool;
18387 update comment.
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
18401 declared const.
18402 (cgraph_node::set_pure_flag): Update.
18403 (cgraph_node::set_nothrow_flag): Handle correctly clearning the flag.
18404
18405 2016-04-17 Tom de Vries <tom@codesourcery.com>
18406
18407 PR other/70433
18408 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Escape
18409 backslash in label.
18410
18411 2016-04-17 Tom de Vries <tom@codesourcery.com>
18412
18413 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Classify chars
18414 '{}<> ' as escape-for-record.
18415
18416 2016-04-17 Tom de Vries <tom@codesourcery.com>
18417
18418 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Simplify loop
18419 structure.
18420
18421 2016-04-17 Tom de Vries <tom@codesourcery.com>
18422
18423 PR other/70185
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.
18431
18432 2016-04-17 Tom de Vries <tom@codesourcery.com>
18433
18434 PR tree-optimization/70256
18435 * tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap)
18436 (debug_varmap): New function.
18437
18438 2016-04-17 Tom de Vries <tom@codesourcery.com>
18439
18440 PR other/70183
18441 * passes.c (pass_manager::register_pass): Propagate pflags.
18442
18443 2016-04-17 Tom de Vries <tom@codesourcery.com>
18444
18445 PR other/68875
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.
18451
18452 2016-04-15 Jan Hubicka <jh@suse.cz>
18453
18454 PR ipa/70018
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
18459 to current def.
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.
18465
18466 2016-04-15 Jan Hubicka <jh@suse.cz>
18467
18468 PR ipa/70018
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.
18485
18486 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
18487
18488 PR target/70662
18489 * config/i386/sse.md(define_insn "<avx512>_vec_dup<mode><mask_name>"):
18490 Fix mode size check.
18491
18492 2016-04-15 Jakub Jelinek <jakub@redhat.com>
18493
18494 * BASE-VER: Set to 7.0.0.
18495
18496 2016-04-15 Alexander Monakov <amonakov@ispras.ru>
18497
18498 * config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.
18499
18500 2016-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18501
18502 * doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T
18503 architecture revisions.
18504
18505 2016-04-15 Bernd Schmidt <bschmidt@redhat.com>
18506
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 ().
18511
18512 2016-04-15 Jakub Jelinek <jakub@redhat.com>
18513
18514 PR c++/70675
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.
18518
18519 2016-04-15 Thomas Schwinge <thomas@codesourcery.com>
18520
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.
18535
18536 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
18537
18538 PR target/70662
18539 * config/i386/sse.md: Use proper memory operand modifiers.
18540
18541
18542 2016-04-15 Richard Biener <rguenther@suse.de>
18543 Alan Modra <amodra@gmail.com>
18544
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
18548 scheme then.
18549
18550 2016-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
18551
18552 PR target/70669
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.
18556
18557 2016-04-14 Jakub Jelinek <jakub@redhat.com>
18558
18559 PR c++/70594
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.
18570
18571 2016-04-14 Martin Sebor <msebor@redhat.com>
18572
18573 PR c++/69517
18574 PR c++/70019
18575 PR c++/70588
18576 * doc/extend.texi (Variable Length): Revert.
18577
18578 2016-04-14 Marek Polacek <polacek@redhat.com>
18579 Jan Hubicka <hubicka@ucw.cz>
18580
18581 PR c++/70029
18582 * tree.c (verify_type): Disable the canonical type of main variant
18583 check.
18584
18585 2016-04-14 Jason Merrill <jason@redhat.com>
18586
18587 * cfgexpand.c, expr.c: Revert previous change.
18588
18589 2016-04-14 Cesar Philippidis <cesar@codesourcery.com>
18590
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.
18594
18595 2016-04-14 Richard Biener <rguenther@suse.de>
18596
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.
18601
18602 2016-04-14 Richard Biener <rguenther@suse.de>
18603
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.
18614
18615 2016-04-13 Martin Sebor <msebor@redhat.com>
18616
18617 PR c++/69517
18618 PR c++/70019
18619 PR c++/70588
18620 * doc/extend.texi (Variable Length): Document C++ specifics.
18621
18622 2016-04-13 Jakub Jelinek <jakub@redhat.com>
18623
18624 PR c++/70641
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.
18628
18629 PR c++/70594
18630 * tree-sra.c (create_access_replacement,
18631 get_replaced_param_substitute): Set DECL_NAMELESS on repl if it
18632 gets fancy name.
18633 * tree-pretty-print.c (dump_fancy_name): New function.
18634 (dump_decl_name, dump_generic_node): Use it.
18635
18636 2016-04-13 Jason Merrill <jason@redhat.com>
18637
18638 * cfgexpand.c (pass_expand::execute): Handle attribute "abi warning".
18639 * expr.c (expand_expr_real_1): Likewise.
18640
18641 2016-04-13 Ilya Enkovich <ilya.enkovich@intel.com>
18642
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.
18648
18649 2016-04-13 Jakub Jelinek <jakub@redhat.com>
18650
18651 PR debug/70628
18652 * explow.c (convert_memory_address_addr_space_1): Formatting fix.
18653
18654 PR middle-end/70633
18655 * gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
18656 gimplification turns some element into non-constant.
18657
18658 PR debug/70628
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.
18667
18668 2016-04-12 Eric Botcazou <ebotcazou@adacore.com>
18669
18670 PR target/70630
18671 * config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.
18672
18673 2016-04-12 Jakub Jelinek <jakub@redhat.com>
18674
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
18679 allowed.
18680
18681 2016-04-12 Michael Meissner <meissner@linux.vnet.ibm.com>
18682
18683 PR target/70640
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 ...).
18690
18691 2016-04-12 Jakub Jelinek <jakub@redhat.com>
18692
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.
18696
18697 2016-04-12 Martin Liska <mliska@suse.cz>
18698
18699 Revert
18700 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
18701
18702 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
18703 estimates here.
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.
18709
18710 2016-04-12 Tom de Vries <tom@codesourcery.com>
18711
18712 PR tree-optimization/68756
18713 * graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr
18714 instead of new_name.
18715
18716 2016-04-12 Jakub Jelinek <jakub@redhat.com>
18717
18718 PR tree-optimization/70602
18719 * tree-sra.c (generate_subtree_copies): Don't write anything into
18720 constant pool decls.
18721
18722 * omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
18723 regardless whether there are depend clauses or not.
18724
18725 2016-04-11 Michael Meissner <meissner@linux.vnet.ibm.com>
18726
18727 PR target/70381
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.
18731
18732 * doc/extend.texi (Additional Floating Types): Document PowerPC
18733 __float128 restrictions.
18734
18735 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
18736
18737 PR target/70133
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
18748 flags.
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.
18753
18754 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
18755
18756 PR target/70133
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,
18764 rework.
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
18770 to here.
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
18782 flags.
18783
18784 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
18785
18786 * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
18787 AARCH64_FL_CRC.
18788
18789 2016-04-09 Tom de Vries <tom@codesourcery.com>
18790
18791 PR tree-optimization/68953
18792 * graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from
18793 first to last subscript.
18794
18795 2016-04-09 Jakub Jelinek <jakub@redhat.com>
18796
18797 PR tree-optimization/70586
18798 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false
18799 for any calls.
18800
18801 2016-04-08 Cesar Philippidis <cesar@codesourcery.com>
18802
18803 PR lto/70289
18804 PR ipa/70348
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
18811 that are private.
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
18818 reductions.
18819 * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro.
18820
18821 2016-04-08 Jakub Jelinek <jakub@redhat.com>
18822
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.
18827
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.
18833
18834 2016-04-08 Thomas Schwinge <thomas@codesourcery.com>
18835
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.
18843
18844 2016-04-08 Maxim Ostapenko <m.ostapenko@samsung.com>
18845
18846 PR sanitizer/70541
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.
18850
18851 2016-04-08 Tom de Vries <tom@codesourcery.com>
18852
18853 * omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc
18854 implicit firstprivate clause.
18855
18856 2016-04-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18857
18858 PR target/70566
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.
18863
18864 2016-04-08 Alan Modra <amodra@gmail.com>
18865
18866 PR target/70117
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
18871 limit.
18872
18873 2016-04-07 Jakub Jelinek <jakub@redhat.com>
18874
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.
18882
18883 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
18884
18885 PR c/70436
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.
18894
18895 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
18896
18897 PR c/70436
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.
18902
18903 2016-04-06 Vladimir Makarov <vmakarov@redhat.com>
18904
18905 PR rtl-optimization/70398
18906 * lra-constraints.c (process_address_1): Check zero scale and code
18907 for reloading with zero scale.
18908
18909 2016-04-06 Uros Bizjak <ubizjak@gmail.com>
18910
18911 * config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
18912 (ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.
18913
18914 2016-04-06 Jakub Jelinek <jakub@redhat.com>
18915
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
18920 up to 128.
18921
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.
18931
18932 2016-04-05 John David Anglin <danglin@gcc.gnu.org>
18933
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.
18937
18938 2016-04-05 Jakub Jelinek <jakub@redhat.com>
18939
18940 PR c++/70336
18941 * match.pd (nested int casts): Limit to GIMPLE.
18942
18943 2016-04-05 Jan Hubicka <hubicka@ucw.cz>
18944
18945 PR ipa/66223
18946 * ipa-devirt.c (maybe_record_node): Fix comment; use
18947 SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.
18948
18949 2016-04-05 Jakub Jelinek <jakub@redhat.com>
18950
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.
18954
18955 2016-04-05 Marc Glisse <marc.glisse@inria.fr>
18956 Jakub Jelinek <jakub@redhat.com>
18957
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.
18961
18962 2016-04-05 Zdenek Sojka <zsojka@seznam.cz>
18963
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.
18967
18968 2016-04-05 Uros Bizjak <ubizjak@gmail.com>
18969
18970 PR target/70510
18971 * config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.
18972
18973 2016-04-05 Richard Biener <rguenther@suse.de>
18974
18975 PR tree-optimization/70526
18976 * tree-sra.c (build_ref_for_offset): Use prev_base to
18977 extract the alias pointer type.
18978
18979 2016-04-05 Richard Biener <rguenther@suse.de>
18980
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.
19004
19005 2016-04-05 Jakub Jelinek <jakub@redhat.com>
19006
19007 PR target/70525
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.
19012
19013 2016-04-05 Richard Biener <rguenther@suse.de>
19014
19015 PR middle-end/70499
19016 * gimplify-me.c (gimple_regimplify_operands): Do not rewrite
19017 non-register type temporaries into SSA.
19018
19019 2016-04-04 Jan Hubicka <hubicka@ucw.cz>
19020
19021 PR ipa/66223
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.
19025
19026 2016-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
19027 Jakub Jelinek <jakub@redhat.com>
19028
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
19032 prototype.
19033 * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
19034 Likewise.
19035
19036 2016-04-04 Richard Biener <rguenther@suse.de>
19037
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.
19043
19044 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
19045
19046 PR ipa/68881
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.
19051
19052 2016-04-04 Martin Liska <mliska@suse.cz>
19053
19054 PR hsa/70402
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.
19060
19061 2016-04-03 Oleg Endo <olegendo@gcc.gnu.org>
19062
19063 PR target/70416
19064 PR target/67391
19065 * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
19066 set, but not for SP_REG operands.
19067
19068 2016-04-02 Martin Sebor <msebor@redhat.com>
19069
19070 PR c++/67376
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.
19075
19076 2016-03-31 Evandro Menezes <e.menezes@samsung.com>
19077
19078 Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
19079 the "Y" constraint (scalar FP 0.0 immediate).
19080
19081 * config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
19082 Add the "const_double" to the list of operand constraints.
19083
19084 2016-04-01 Jakub Jelinek <jakub@redhat.com>
19085
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
19089 for the high word.
19090
19091 2016-04-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19092
19093 PR target/70404
19094 * config/s390/s390.c (s390_expand_insv): Check for everything
19095 constant instead of just VOIDmode stuff.
19096
19097 2016-04-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
19098
19099 PR target/70496
19100 * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB.
19101
19102 2016-04-01 Nathan Sidwell <nathan@acm.org>
19103
19104 * tree.def (TRY_CATCH_EXPR): Correct documentation.
19105
19106 2016-03-31 Vladimir Makarov <vmakarov@redhat.com>
19107
19108 PR rtl-optimization/70461
19109 * ira-color.c (allocno_copy_cost_saving): Use allocno class if it
19110 is necessary.
19111
19112 2016-03-31 Martin Liska <mliska@suse.cz>
19113
19114 PR hsa/70399
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.
19125
19126 2016-03-31 Martin Liska <mliska@suse.cz>
19127
19128 PR hsa/70391
19129 * hsa-gen.c (hsa_function_representation::update_dominance): New
19130 function.
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.
19149
19150 2016-03-31 Martin Liska <mliska@suse.cz>
19151
19152 PR hsa/70391
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.
19171
19172 2016-03-31 Bin Cheng <bin.cheng@arm.com>
19173
19174 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
19175 scratch field for goto case.
19176
19177 2016-03-31 James Greenhalgh <james.greenhalgh@arm.com>
19178
19179 * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.
19180
19181 2016-03-31 Ilya Enkovich <enkovich.gnu@gmail.com>
19182
19183 PR target/70442
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.
19187
19188 2016-03-31 Nathan Sidwell <nathan@acm.org>
19189
19190 PR c++/70393
19191 * varasm.c (output_constructor_regular_field): Flush bitfield earlier.
19192 Assert we don't want to move backwards.
19193
19194 2016-03-31 Kirill Yukhin <kirill.yukhin@intel.com>
19195
19196 PR target/70453
19197 * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
19198
19199 2016-03-31 Jakub Jelinek <jakub@redhat.com>
19200
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.
19206
19207 2016-03-31 Martin Liska <mliska@suse.cz>
19208
19209 * passes.c (execute_one_pass): Do not call
19210 todo_after for a discarded function.
19211
19212 2016-03-31 Bin Cheng <bin.cheng@arm.com>
19213
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.
19219
19220 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
19221
19222 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
19223 estimates here.
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.
19229
19230 2016-03-30 Richard Biener <rguenther@suse.de>
19231
19232 PR middle-end/70450
19233 * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage.
19234
19235 2016-03-30 Jakub Jelinek <jakub@redhat.com>
19236
19237 PR target/70421
19238 * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
19239 in gen_blendm expander.
19240
19241 2016-03-30 Nick Clifton <nickc@redhat.com>
19242
19243 PR target/62254
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.
19246
19247 2016-03-30 H.J. Lu <hongjiu.lu@intel.com>
19248
19249 PR target/70439
19250 * config/i386/i386.c (ix86_expand_epilogue): Properly check
19251 conflict between DRAP register and __builtin_eh_return.
19252
19253 2016-03-30 Michael Matz <matz@suse.de>
19254 Richard Biener <rguenther@suse.de>
19255
19256 PR ipa/12392
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.
19265
19266 2016-03-30 Mike Stump <mrs@gcc.gnu.org>
19267
19268 PR target/63890
19269 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
19270 and TARGET_MACHO.
19271
19272 2016-03-30 Patrick Palka <ppalka@gcc.gnu.org>
19273
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).
19277
19278 2016-03-29 Jeff Law <law@redhat.com>
19279
19280 * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment.
19281
19282 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
19283
19284 * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
19285 to HOST_WIDE_INT.
19286
19287 2016-03-29 Thomas Schwinge <thomas@codesourcery.com>
19288
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.
19292
19293 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
19294
19295 PR ipa/70283
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.
19303
19304 2016-03-29 Jakub Jelinek <jakub@redhat.com>
19305
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.
19310
19311 PR c++/70353
19312 * tree-inline.c (remap_decls): Don't add_local_decl if cfun is null.
19313
19314 PR tree-optimization/70405
19315 * ssa-iterators.h (num_imm_uses): Add missing braces.
19316
19317 2016-03-29 Vladimir Makarov <vmakarov@redhat.com>
19318
19319 PR rtl-optimization/68695
19320 * ira-color.c (allocno_copy_cost_saving): New.
19321 (improve_allocation): Use it.
19322
19323 2016-03-29 Richard Henderson <rth@redhat.com>
19324
19325 PR middle-end/70355
19326 * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.
19327
19328 2016-03-29 Richard Biener <rguenther@suse.de>
19329
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.
19336
19337 2016-03-28 James Bowman <james.bowman@ftdichip.com>
19338
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.
19342
19343 2016-03-28 Kirill Yukhin <kirill.yukhin@intel.com>
19344
19345 PR target/70406
19346 * config/i386/i386.md (define_split, andn): Fix modes.
19347
19348 2016-03-26 Richard Biener <rguenther@suse.de>
19349 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
19350
19351 PR ipa/70366
19352 * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
19353 instead of
19354 TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
19355 as 2nd argument to cl_optimization_restore().
19356
19357 2016-03-25 Richard Henderson <rth@redhat.com>
19358
19359 PR target/70120
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.
19363
19364 2016-03-25 Alan Modra <amodra@gmail.com>
19365
19366 PR target/70052
19367 * config/rs6000/constraints.md (j): Simplify.
19368 * config/rs6000/predicates.md (easy_fp_constant): Exclude
19369 decimal float 0.D.
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.
19375
19376 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
19377
19378 * tree-ssa-propagate.c: Enhance docs for
19379 SSA_PROP_NOT_INTERESTING.
19380
19381 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
19382
19383 * doc/extend.texi: Fix typo in documentation to pure attribute.
19384
19385 2016-03-24 John David Anglin <danglin@gcc.gnu.org>
19386
19387 PR target/70319
19388 * config/pa/pa.md (bswapdi2): Use a scratch register.
19389
19390 2016-03-24 Richard Henderson <rth@redhat.com>
19391
19392 PR middle-end/69845
19393 * fold-const.c (extract_muldiv_1): Correct test for multiplication
19394 overflow.
19395
19396 2016-03-24 Uros Bizjak <ubizjak@gmail.com>
19397
19398 * config/i386/i386.md (*anddi3_doubleword): Generate AND insn
19399 using ix86_expand_binary_operator instead of gen_andsi3.
19400
19401 2016-03-24 Richard Biener <rguenther@suse.de>
19402
19403 PR tree-optimization/70396
19404 * tree-vect-stmts.c (vectorizable_comparison): Use
19405 get_vectype_for_scalar_type.
19406
19407 2016-03-24 Richard Biener <rguenther@suse.de>
19408
19409 PR middle-end/70370
19410 * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
19411 with register bases.
19412
19413 2016-03-24 Richard Biener <rguenther@suse.de>
19414
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.
19418
19419 2016-03-23 Michael Meissner <meissner@linux.vnet.ibm.com>
19420
19421 PR target/70381
19422 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
19423 -mfloat128 here.
19424
19425 2016-03-23 Marek Polacek <polacek@redhat.com>
19426
19427 PR c++/69884
19428 * doc/invoke.texi: Document -Wignored-attributes.
19429
19430 2016-03-23 Bin Cheng <bin.cheng@arm.com>
19431
19432 PR tree-optimization/69042
19433 * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
19434 parameter from 30 to 40.
19435
19436 2016-03-23 Bin Cheng <bin.cheng@arm.com>
19437
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.
19441
19442 2016-03-23 Richard Biener <rguenther@suse.de>
19443
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.
19448
19449 2016-03-23 Jeff Law <law@redhat.com>
19450
19451 PR tree-optimization/64058
19452 * tree-ssa-coalesce.c (struct coalesce_pair): Add new field
19453 CONFLICT_COUNT.
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
19465 bitmap_count_bits.
19466 (bitmap_count_bits): Use bitmap_count_bits_in_word.
19467 * bitmap.h (bitmap_count_unique_bits): Declare it.
19468
19469 2016-03-23 Ilya Enkovich <enkovich.gnu@gmail.com>
19470
19471 PR target/69917
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.
19475
19476 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19477
19478 * config/arm/arm1020e.md (1020call_op): Reduce reservation
19479 duration.
19480 (v10_fdivs): Likewise.
19481 (v10_fdivd): Likewise.
19482
19483 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19484
19485 PR driver/70132
19486 * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
19487 to not call fclose twice on file.
19488
19489 2016-03-23 Jakub Jelinek <jakub@redhat.com>
19490
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.
19495
19496 PR target/70321
19497 * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
19498 Optimize TARGET_STV splitters, if high or low word of last argument
19499 is 0 or -1.
19500
19501 2016-03-22 Jeff Law <law@redhat.com>
19502
19503 PR target/70232
19504 tree-ssa-threadbackward.c
19505 (fsm_find_control_statement_thread_paths): Correctly distinguish
19506 between old style jump threads vs FSM jump threads.
19507
19508 2016-03-22 Ilya Enkovich <enkovich.gnu@gmail.com>
19509
19510 PR target/70302
19511 * config/i386/i386.c (scalar_chain::convert_op): Support
19512 uninitialized register usage case.
19513
19514 2016-03-22 Richard Biener <rguenther@suse.de>
19515
19516 PR middle-end/70251
19517 * genmatch.c (gen_transform): Adjust last parameter to a three-state
19518 int...
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.
19527
19528 2016-03-22 Anthony Green <green@moxielogic.com>
19529
19530 * config/moxie/moxiebox.h (CC1_SPEC): Define. Fix endianness
19531 issue for moxiebox targets.
19532 (CC1PLUS_SPEC): Ditto.
19533
19534 2016-03-22 Richard Biener <rguenther@suse.de>
19535
19536 PR middle-end/70333
19537 * fold-const.c (extract_muldiv_1): Properly perform multiplication
19538 in the wide type.
19539
19540 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
19541
19542 * config/i386/i386.c (def_builtin): Remove duplicated functionality.
19543
19544 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
19545
19546 PR target/70325
19547 * config/i386/i386.c (def_builtin): Handle
19548 OPTION_MASK_ISA_AVX512VL to be and-ed with other
19549 bits.
19550 (const struct builtin_description bdesc_special_args[]):
19551 Remove duplicate ISA bits.
19552
19553 2016-03-22 Jakub Jelinek <jakub@redhat.com>
19554
19555 PR target/70329
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.
19559
19560 PR target/70300
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.
19565
19566 PR c++/70295
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).
19570
19571 2016-03-21 Jakub Jelinek <jakub@redhat.com>
19572
19573 PR middle-end/70326
19574 * lra.c (restore_scratches): Ignore deleted insns.
19575
19576 2016-03-21 Marc Glisse <marc.glisse@inria.fr>
19577 Jakub Jelinek <jakub@redhat.com>
19578
19579 PR tree-optimization/70317
19580 * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
19581 to HONOR_NANS.
19582
19583 2016-03-21 Uros Bizjak <ubizjak@gmail.com>
19584
19585 PR target/70327
19586 * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
19587 of ix86_expand_move.
19588 (movoi): Ditto.
19589 (movti): Use general_operand for operand 1 predicate.
19590
19591 2016-03-21 Martin Liska <mliska@suse.cz>
19592
19593 * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
19594 insns.
19595 (dump_hsa_symbol): Dump BRIG offset of hsa_symbols.
19596
19597 2016-03-21 Martin Liska <mliska@suse.cz>
19598
19599 PR ipa/70306
19600 * ipa-icf.c (sem_function::parse): Skip static
19601 constructors and destructors.
19602
19603 2016-03-21 Jakub Jelinek <jakub@redhat.com>
19604
19605 PR target/70296
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.
19610
19611 2016-03-21 Thomas Schwinge <thomas@codesourcery.com>
19612 Alexander Monakov <amonakov@ispras.ru>
19613
19614 * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
19615 for the stabs debug format.
19616
19617 2016-03-21 Richard Biener <rguenther@suse.de>
19618
19619 PR tree-optimization/70310
19620 * tree-vect-generic.c (expand_vector_condition): Fold the built
19621 condition.
19622
19623 2016-03-21 Kirill Yukhin <kirill.yukhin@intel.com>
19624
19625 PR target/70293
19626 * config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2):
19627 Block third alternative for AVX-512VL target,
19628
19629 2016-03-21 Martin Liska <mliska@suse.cz>
19630
19631 PR hsa/70234
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.
19637
19638 2016-03-21 Richard Biener <rguenther@suse.de>
19639
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.
19644
19645 2016-03-21 Andrey Belevantsev <abel@ispras.ru>
19646
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.
19650
19651 2016-03-18 Jeff Law <law@redhat.com>
19652
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.
19659
19660 2016-03-16 David Wohlferd <dw@LimeGreenSocks.com>
19661 Bernd Schmidt <bschmidt@redhat.com>
19662
19663 * doc/extend.texi: Document more potential problems with basic asms.
19664
19665 2016-03-18 Bernd Schmidt <bschmidt@redhat.com>
19666
19667 PR rtl-optimization/70278
19668 * lra-constraints.c (split_reg): Handle the case where biggest_mode is
19669 VOIDmode.
19670
19671 2016-03-18 Jason Merrill <jason@redhat.com>
19672
19673 * calls.c (load_register_parameters): Fix zero size sibcall logic.
19674
19675 2016-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
19676
19677 * config/i386/sse.md: Use vpbroadcastq for broadcasting DF
19678 values to 128b regs.
19679
19680 2016-03-18 Ilya Enkovich <enkovich.gnu@gmail.com>
19681
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.
19686
19687 2016-03-18 Tom de Vries <tom@codesourcery.com>
19688
19689 PR ipa/70269
19690 * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.
19691
19692 2016-03-18 Jakub Jelinek <jakub@redhat.com>
19693
19694 * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
19695 instead of replace_rtx for DEBUG_INSNs.
19696
19697 2016-03-18 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
19698
19699 * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
19700 load type reservations.
19701
19702 2016-03-17 John David Anglin <danglin@gcc.gnu.org>
19703
19704 PR target/70188
19705 * config/pa/constraints.md: Revert 2015-02-13 change. Use
19706 define_constraint for "Q" and "T" constraints.
19707
19708 2016-03-17 Evandro Menezes <e.menezes@samsung.com>
19709
19710 Tweak the pipeline model for Exynos M1
19711
19712 * config/aarch64/aarch64.c (exynosm1_tunings): Enable weak prefetching
19713 model.
19714
19715 2016-03-17 David Malcolm <dmalcolm@redhat.com>
19716
19717 PR c/70264
19718 * diagnostic-show-locus.c (compatible_locations_p): Handle the case
19719 where one or both locations aren't within a line_map.
19720
19721 2016-03-17 H.J. Lu <hongjiu.lu@intel.com>
19722
19723 PR driver/70192
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
19726 if it is -1.
19727
19728 2016-03-17 Joern Rennecke <joern.rennecke@embecosm.com>
19729
19730 * config/i386/i386.md (*movv4qicc_insn+1..36): Pass
19731 true as ALL_REGS argument to replace_rtx.
19732
19733 2016-03-17 Richard Biener <rguenther@suse.de>
19734
19735 PR debug/70271
19736 * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
19737 last.
19738
19739 2016-03-17 Jakub Jelinek <jakub@redhat.com>
19740
19741 PR target/70245
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
19745 equality.
19746 * config/i386/i386.md (mov + arithmetics with load peephole): Pass
19747 true as ALL_REGS argument to replace_rtx.
19748
19749 2016-03-17 Ilya Enkovich <enkovich.gnu@gmail.com>
19750
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.
19754
19755 2016-03-17 Nick Clifton <nickc@redhat.com>
19756
19757 PR target/70162
19758 * config/rx/rx.c (rx_print_integer): Print negative constants in
19759 decimal.
19760
19761 2016-03-17 Jakub Jelinek <jakub@redhat.com>
19762
19763 PR target/70261
19764 * rtlanal.c (replace_rtx): Revert 2016-03-16 change.
19765
19766 2016-03-16 Richard Henderson <rth@redhat.com>
19767 Richard Biener <rguenth@suse.de>
19768
19769 PR middle-end/70240
19770 PR middle-end/68215
19771 PR tree-opt/68714
19772 * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
19773 first operand as is_gimple_condexpr.
19774
19775 PR middle-end/70240
19776 PR middle-end/68215
19777 Revert r231575
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.
19788
19789 2016-03-16 Richard Henderson <rth@redhat.com>
19790
19791 PR target/70048
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.
19796
19797 2016-03-16 Jakub Jelinek <jakub@redhat.com>
19798 Richard Biener <rguenth@suse.de>
19799
19800 PR target/70245
19801 * rtlanal.c (replace_rtx): For REG, if from is a REG,
19802 return to even if only REGNO is equal, and assert
19803 mode is the same.
19804
19805 2016-03-11 Jeff Law <law@redhat.com>
19806
19807 PR rtl-optimization/70224
19808 * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
19809
19810 2016-03-16 Richard Henderson <rth@redhat.com>
19811
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.
19825
19826 2016-03-16 Marek Polacek <polacek@redhat.com>
19827
19828 PR c/70093
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.
19833
19834 2016-03-16 Bin Cheng <bin.cheng@arm.com>
19835
19836 * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
19837 reporting malformed loop nest.
19838
19839 2016-03-16 Tom de Vries <tom@codesourcery.com>
19840
19841 PR lto/70187
19842 * ipa-devirt.c (possible_polymorphic_call_targets): Move
19843 nodes.length () == 1 test to before first nodes[0] access.
19844
19845 2016-03-16 Tom de Vries <tom@codesourcery.com>
19846
19847 PR tree-optimization/68715
19848 * graphite-scop-detection.c (scop_detection::merge_sese): Add missing
19849 single_pred_p test.
19850
19851 2016-03-16 Tom de Vries <tom@codesourcery.com>
19852
19853 PR tree-optimization/68809
19854 * graphite-scop-detection.c (same_close_phi_node): Test if result types
19855 are the same.
19856
19857 2016-03-16 Carlos O'Donell <carlos@redhat.com>
19858 Sandra Loosemore <sandra@codesourcery.com>
19859
19860 * doc/extend.texi (Common Function Attributes): Describe ifunc impact
19861 on leaf attribute. Mention ELF interposition problems.
19862
19863 2016-03-16 Alan Modra <amodra@gmail.com>
19864
19865 PR rtl-optimization/69195
19866 PR rtl-optimization/47992
19867 * ira.c (indirect_jump_optimize): Ignore artificial defs.
19868 Add comments.
19869
19870 2016-03-15 Eric Botcazou <ebotcazou@adacore.com>
19871
19872 PR bootstrap/69513
19873 * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.
19874
19875 2016-03-15 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
19876
19877 * config/avr/avr.md (rotl<mode>3): Set mode for operand 2.
19878
19879 2016-03-15 Jakub Jelinek <jakub@redhat.com>
19880
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.
19885
19886 PR middle-end/70239
19887 * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
19888 of safe_grow.
19889
19890 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
19891
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.
19895
19896 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
19897
19898 PR target/66660
19899 * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
19900 to non-speculative when propagating trap bits.
19901
19902 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
19903
19904 PR rtl-optimization/63384
19905 * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
19906 DEBUG_INSN_P insns.
19907
19908 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
19909
19910 PR target/64411
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.
19919
19920 2016-03-15 Tom de Vries <tom@codesourcery.com>
19921
19922 PR ipa/70161
19923 * cgraph.c (cgraph_node::get_body): Save, reset and restore
19924 dump_file_name.
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
19928 transform.
19929
19930 2016-03-15 Segher Boessenkool <segher@kernel.crashing.org>
19931
19932 * genrecog.c (match_pattern_2): If pred is NULL don't call
19933 safe_predicate_mode on it.
19934
19935 2016-03-14 Jakub Jelinek <jakub@redhat.com>
19936
19937 PR middle-end/70219
19938 * lra-constraints.c (delete_move_and_clobber): Change assertion
19939 to also allow dregno == 0.
19940
19941 2016-03-14 Richard Henderson <rth@redhat.com>
19942
19943 PR tree-opt/68714
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
19948 on vectors.
19949
19950 2016-03-14 Bernd Schmidt <bschmidt@redhat.com>
19951
19952 PR target/70083
19953 * lra-lives.c (process_bb_lives): Also update biggest mode for hard
19954 regs.
19955 (lra_create_live_ranges_1): initialize hard register biggest_mode to
19956 VOIDmode.
19957 * lra-constraints.c (split_reg): For hard regs, try to find the
19958 biggest single-register mode used in the function.
19959
19960 2016-03-14 Richard Biener <rguenther@suse.de>
19961
19962 PR tree-optimization/56365
19963 * tree-ssa-phiopt.c (minmax_replacement): Handle alternate
19964 constants to compare against.
19965
19966 2016-03-14 Segher Boessenkool <segher@kernel.crashing.org>
19967
19968 PR target/70098
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.
19973
19974 2016-03-14 Tom de Vries <tom@codesourcery.com>
19975
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.
19979
19980 2016-03-13 Eric Botcazou <ebotcazou@adacore.com>
19981
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.
19991
19992 2016-03-12 Andrey Belevantsev <abel@ispras.ru>
19993
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.
19997
19998 2016-03-12 Vladimir Makarov <vmakarov@redhat.com>
19999
20000 PR target/69614
20001 * lra-constraints.c (delete_move_and_clobber): New.
20002 (remove_inheritance_pseudos): Use it.
20003
20004 2016-03-12 Eric Botcazou <ebotcazou@adacore.com>
20005
20006 PR ada/70017
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.
20011
20012 2016-03-11 Michael Meissner <meissner@linux.vnet.ibm.com>
20013
20014 PR target/70131
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.
20018
20019 2016-03-11 Bernd Schmidt <bschmidt@redhat.com>
20020
20021 PR target/70123
20022 * lra-remat.c (operand_to_remat): Disallow hard regs in the value t
20023 be rematerialized.
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.
20027
20028 2016-03-11 Jeff Law <law@redhat.com>
20029
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.
20034
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
20039 discovered.
20040 (compare_pairs): No longer sort on the elements in each pair.
20041 Instead break ties with the index of the coalesce pair.
20042
20043 2016-03-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20044
20045 PR target/70002
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):
20051 New function.
20052 (aarch64_set_current_function): Rewrite using the above.
20053
20054 2016-03-11 Jakub Jelinek <jakub@redhat.com>
20055
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):
20063 Adjust callers.
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.
20067
20068 2016-03-11 Alan Lawrence <alan.lawrence@arm.com>
20069
20070 PR tree-optimization/70013
20071 * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
20072 for constant-pool entries.
20073
20074 2016-03-11 Jakub Jelinek <jakub@redhat.com>
20075
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.
20079
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
20083 for unknown codes.
20084
20085 2016-03-11 Ilya Enkovich <enkovich.gnu@gmail.com>
20086 Jakub Jelinek <jakub@redhat.com>
20087
20088 PR target/70160
20089 * config/i386/i386.c (scalar_chain::convert_reg): Skip uses
20090 of uninitialized values.
20091
20092 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20093
20094 * config/s390/s390.md ("trunctddd2"): Turn former define_insn into
20095 define_expand.
20096 ("*trunctddd2"): New pattern definition.
20097 ("trunctdsd2"): Set prep_for_short_prec rounding mode for the
20098 TD->DD truncation.
20099
20100 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20101
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
20108 numbers.
20109
20110 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20111
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
20126 file.
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
20132 nonmemory_operand.
20133
20134 2016-03-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
20135
20136 PR target/70168
20137 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
20138 Handle overlapping retval and newval.
20139
20140 2016-03-10 Nick Clifton <nickc@redhat.com>
20141
20142 PR target/7044
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.
20148
20149 2016-03-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20150
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.
20154
20155 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
20156
20157 PR lto/69589
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.
20166
20167 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
20168
20169 PR ipa/69630
20170 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
20171 on cxa_pure_virtual.
20172
20173 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
20174
20175 PR lto/69589
20176 * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
20177
20178 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
20179
20180 PR lto/69589
20181 * tree.c (need_assembler_name_p): Only record main variant type names.
20182
20183 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
20184
20185 PR target/70113.
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
20195 843419 is on.
20196 (aarch64_attributes): Handle fix-cortex-a53-843419.
20197 (aarch64_can_inline_p): Likewise.
20198 * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.
20199
20200 2016-03-10 Alan Lawrence <alan.lawrence@arm.com>
20201 Jakub Jelinek <jakub@redhat.com>
20202
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.
20209
20210 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
20211
20212 * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
20213 aarch64-fusion-pairs.def and aarch64-tuning-flags.def
20214
20215 2016-03-10 Ilya Enkovich <enkovich.gnu@gmail.com>
20216
20217 * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
20218 has a proper number of elements.
20219
20220 2016-03-10 Alan Modra <amodra@gmail.com>
20221
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.
20230
20231 2016-03-10 Richard Biener <rguenther@suse.de>
20232
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.
20236
20237 2016-03-09 Jakub Jelinek <jakub@redhat.com>
20238
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.
20242
20243 PR target/70086
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.
20248
20249 PR tree-optimization/70127
20250 * fold-const.c (operand_equal_p): Revert the 2015-10-28 change.
20251
20252 2016-03-09 David Malcolm <dmalcolm@redhat.com>
20253
20254 PR c/68473
20255 PR c++/70105
20256 * diagnostic-show-locus.c (compatible_locations_p): New function.
20257 (layout::layout): Sanitize ranges using compatible_locations_p.
20258
20259 2016-03-09 David Malcolm <dmalcolm@redhat.com>
20260
20261 PR c/68473
20262 PR c++/70105
20263 * diagnostic-show-locus.c (layout_range::layout_range): Replace
20264 location_range param with three const expanded_locations * and a
20265 bool.
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.
20277
20278 2016-03-09 Richard Biener <rguenther@suse.de>
20279 Jakub Jelinek <jakub@redhat.com>
20280
20281 PR tree-optimization/70138
20282 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
20283 Also skip vect_double_reduction_def.
20284
20285 2016-03-09 Jakub Jelinek <jakub@redhat.com>
20286
20287 PR target/70049
20288 * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
20289 if the operand is "m".
20290
20291 2016-03-09 Nathan Sidwell <nathan@acm.org>
20292
20293 * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.
20294
20295 2016-03-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
20296
20297 * config/i386/i386.c (processor_target_table): Fix cost table
20298 intialization order for znver1.
20299
20300 2016-03-08 Jakub Jelinek <jakub@redhat.com>
20301
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.
20310
20311 2016-03-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20312
20313 * tree-ssa-math-opts.c: Fix typo in comment.
20314
20315 2016-03-08 Jakub Jelinek <jakub@redhat.com>
20316
20317 PR target/70110
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
20321 calls.
20322
20323 2016-03-07 Uros Bizjak <ubizjak@gmail.com>
20324
20325 PR target/70064
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.
20334
20335 2016-03-07 Martin Jambor <mjambor@suse.cz>
20336
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.
20348
20349 2016-03-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
20350
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.
20355
20356 2016-03-07 Martin Sebor <msebor@redhat.com>
20357
20358 PR rtl-optimization/19705
20359 * doc/invoke.texi (Options That Control Optimization): Clarify
20360 -fno-branch-count-reg.
20361
20362 2016-02-26 Richard Biener <rguenther@suse.de>
20363 Jeff Law <law@redhat.com>
20364
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
20368 loop.
20369 * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
20370 Move after definition of loops_state_clear.
20371
20372 2016-03-07 Bin Cheng <bin.cheng@arm.com>
20373
20374 PR rtl-optimization/69052
20375 * rtlanal.c (commutative_operand_precedence): Set higher precedence
20376 to CONST_WIDE_INT.
20377
20378 2016-03-07 Tom de Vries <tom@codesourcery.com>
20379
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.
20384
20385 2016-03-07 Richard Biener <rguenther@suse.de>
20386
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.
20390
20391 2016-03-07 Nathan Sidwell <nathan@codesourcery.com>
20392
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.
20400
20401 2016-03-07 Richard Henderson <rth@redhat.com>
20402
20403 PR rtl-opt/70061
20404 * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
20405 (insert_value_copy_on_edge): Likewise.
20406
20407 2016-03-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20408
20409 * config/arm/arm_neon.h: Show error if using with soft-float ABI.
20410
20411 2016-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20412
20413 PR target/62281
20414 * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
20415
20416 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
20417
20418 * config/i386/i386.c (znver1_cost): Fix Multiply cost.
20419
20420 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
20421
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.
20428
20429 2016-03-05 Jakub Jelinek <jakub@redhat.com>
20430
20431 PR c++/70084
20432 * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
20433 of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
20434 to the right type.
20435
20436 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
20437
20438 PR c/69973
20439 * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
20440
20441 PR rtl-optimization/69941
20442 * postreload.c (reload_combine_recognize_pattern): Ensure all uses of
20443 the reg share its mode.
20444
20445 2016-03-04 Jeff Law <law@redhat.com>
20446
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.
20451
20452 2016-03-05 Tom de Vries <tom@codesourcery.com>
20453
20454 * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
20455 construct in oacc routine. Check for oacc region in oacc routine.
20456
20457 2016-03-04 Jakub Jelinek <jakub@redhat.com>
20458
20459 PR target/70062
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.
20465
20466 PR target/70059
20467 * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
20468 <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
20469 fixes.
20470 (vec_set_hi_<mode><mask_name>): Likewise. Swap VEC_CONCAT operands.
20471
20472 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
20473
20474 PR rtl-optimization/57676
20475 * lra-assigns.c (lra_assign): Guard test for maximum iterations
20476 with flag_checking.
20477
20478 2016-03-04 Ilya Enkovich <enkovich.gnu@gmail.com>
20479
20480 * tree-vect-patterns.c (search_type_for_mask): Handle
20481 comparison of booleans.
20482
20483 2016-03-04 Jakub Jelinek <jakub@redhat.com>
20484
20485 * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
20486 Fix @xref usage.
20487
20488 PR debug/69947
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.
20492
20493 2016-03-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20494
20495 PR rtl-optimization/69904
20496 * config/arm/arm.c (arm_cannot_copy_insn_p):
20497 Return true for load-exclusive instructions.
20498
20499 2016-03-03 Jakub Jelinek <jakub@redhat.com>
20500
20501 PR target/70021
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
20505 or mix thereof.
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.
20509
20510 2016-03-03 Marek Polacek <polacek@redhat.com>
20511
20512 PR middle-end/70050
20513 * match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
20514
20515 2016-03-03 Martin Liska <mliska@suse.cz>
20516
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.
20520
20521 2016-03-03 Richard Biener <rguenther@suse.de>
20522
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
20528 helper.
20529
20530 2016-03-03 Michael Collison <michael.collison@linaro.org>
20531
20532 PR target/70014
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.
20536
20537 2016-03-02 H.J. Lu <hongjiu.lu@intel.com>
20538
20539 * doc/tm.texi: Regenerated.
20540
20541 2016-03-02 Richard Henderson <rth@redhat.com>
20542
20543 PR rtl-opt/67145
20544 * simplify-rtx.c (simplify_plus_minus): Allow reassoc without
20545 simplification when all args are positive non-fixed registers.
20546
20547 2016-03-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
20548
20549 * target.def (lra_p): Specify that new ports should use LRA.
20550
20551 2016-03-02 Jakub Jelinek <jakub@redhat.com>
20552
20553 PR libgomp/69555
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.
20559
20560 2016-03-02 Tom de Vries <tom@codesourcery.com>
20561
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.
20566
20567 2016-03-02 Bin Cheng <bin.cheng@arm.com>
20568
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.
20573
20574 2016-03-02 Alan Modra <amodra@gmail.com>
20575
20576 PR ipa/69990
20577 * ipa-icf.c (sem_variable::merge): Do not merge an alias with
20578 larger alignment.
20579
20580 2016-03-02 Jakub Jelinek <jakub@redhat.com>
20581
20582 PR target/70028
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.
20586
20587 2016-03-02 Richard Biener <rguenther@suse.de>
20588
20589 * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
20590 GENERIC expressions in GIMPLE.
20591
20592 2016-03-02 Richard Biener <rguenther@suse.de>
20593
20594 * config/i386/i386.c (type_natural_mode): Fix typo.
20595
20596 2016-03-02 Nick Clifton <nickc@redhat.com>
20597
20598 * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.
20599
20600 2016-03-02 Richard Biener <rguenther@suse.de>
20601 Uros Bizjak <ubizjak@gmail.com>
20602
20603 PR target/67278
20604 * config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
20605
20606 2016-03-02 Richard Biener <rguenther@suse.de>
20607
20608 PR middle-end/67278
20609 * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
20610
20611 2016-03-02 Marek Polacek <polacek@redhat.com>
20612
20613 PR c/67854
20614 * gimplify.c (gimplify_va_arg_expr): Use expanded location for the
20615 "is promoted to" warning.
20616
20617 2016-03-01 DJ Delorie <dj@redhat.com>
20618
20619 * config.gcc: Deprecate mep-*.
20620
20621 2016-03-01 Vladimir Makarov <vmakarov@redhat.com>
20622
20623 PR middle-end/70025
20624 * lra-constraints.c (regno_val_use_in): New.
20625 (match_reload): Use it instead of regno_use_in.
20626
20627 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
20628
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.
20632
20633 2016-03-01 Jeff Law <law@redhat.com>
20634
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.
20639
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
20645 in the last block.
20646
20647 2016-03-01 Uros Bizjak <ubizjak@gmail.com>
20648
20649 PR target/70027
20650 * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
20651 asm dialect alternatives to explicit GOTPCREL calls.
20652
20653 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
20654
20655 PR ada/70017
20656 * ira.c (do_reload): Issue warning for generic stack checking here...
20657 * reload1.c (reload): ...instead of here and streamline it.
20658
20659 2016-03-01 Nick Clifton <nickc@redhat.com>
20660
20661 * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
20662
20663 2016-03-01 Richard Biener <rguenther@suse.de>
20664
20665 PR tree-optimization/69983
20666 * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
20667 types and fall back to operand_equal_p.
20668
20669 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20670
20671 Revert
20672 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20673
20674 * config/s390/constraints.md ("jm8"): New constraint.
20675 * config/s390/predicates.md ("const_int_8bitset_operand"): New
20676 predicate.
20677 * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
20678 into ...
20679 ("*setmem_long<setmem_and>"): New pattern.
20680 ("*setmem_long_31z", "*setmem_long_and_31z"): Merge
20681 into ...
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.
20685
20686
20687 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20688
20689 Revert
20690 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20691
20692 * gensupport.c (process_substs_on_one_elem): Split loop to
20693 complete mark_operands_used_in_match_dup on all expressions in the
20694 vector first.
20695 (adjust_operands_numbers): Inline into process_substs_on_one_elem
20696 and remove function.
20697
20698 2016-03-01 Richard Biener <rguenther@suse.de>
20699
20700 PR middle-end/70022
20701 * fold-const.c (fold_indirect_ref_1): Fix range checking for
20702 vector BIT_FIELD_REF extract.
20703
20704 2016-03-01 Richard Biener <rguenther@suse.de>
20705
20706 PR tree-optimization/69994
20707 * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
20708
20709 2016-03-01 Ilya Enkovich <enkovich.gnu@gmail.com>
20710
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.
20715
20716 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20717
20718 * config/s390/s390.c (s390_decompose_address): Don't accept SImode
20719 anymore.
20720
20721 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20722
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
20729 selector.
20730 ("*vec_set<mode>_plus"): New pattern to support reg + const_int
20731 operands.
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.
20741
20742 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20743
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.
20748
20749 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20750
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.
20766
20767 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20768
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
20778 iterator.
20779
20780 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20781
20782 * config/s390/predicates.md (const_int_6bitset_operand): New
20783 predicate.
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
20787 ...
20788 ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
20789 * config/s390/subst.md: New file.
20790
20791 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20792
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
20796 attributes.
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.
20804
20805 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20806
20807 * gensupport.c (process_substs_on_one_elem): Split loop to
20808 complete mark_operands_used_in_match_dup on all expressions in the
20809 vector first.
20810 (adjust_operands_numbers): Inline into process_substs_on_one_elem
20811 and remove function.
20812
20813 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
20814
20815 PR target/69706
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.
20822
20823 2016-02-29 Jeff Law <law@redhat.com>
20824
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
20828 outside [0..1].
20829
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
20833 loop cleanups.
20834
20835 2016-02-29 Richard Biener <rguenther@suse.de>
20836
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
20841 nop conversions.
20842 (eliminate_plus_minus_pair): Use ops_equal_values_p
20843 (repropagate_negates): Do not use get_unary_op here.
20844
20845 2016-02-29 Martin Liska <mliska@suse.cz>
20846
20847 * system.h: Poison ENABLE_CHECKING macro.
20848
20849 2016-02-29 Martin Liska <mliska@suse.cz>
20850
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.
20855
20856 2016-02-19 Richard Biener <rguenther@suse.de>
20857
20858 PR tree-optimization/69980
20859 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
20860 permutation of those we need to keep.
20861
20862 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
20863
20864 PR target/69706
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
20876 in the first word.
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.
20896
20897 2016-02-29 Richard Biener <rguenther@suse.de>
20898
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
20903 defs properly.
20904
20905 2016-02-28 Eric Botcazou <ebotcazou@adacore.com>
20906
20907 * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
20908
20909 2016-02-27 Jeff Law <law@redhat.com>
20910
20911 Revert
20912 2016-02-26 Richard Biener <rguenther@suse.de>
20913 Jeff Law <law@redhat.com>
20914
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
20918 loop.
20919
20920 2016-02-27 Jakub Jelinek <jakub@redhat.com>
20921
20922 PR rtl-optimization/69896
20923 * tree-vect-generic.c (get_compute_type): Avoid single element
20924 vector types.
20925
20926 2016-02-26 Evandro Menezes <e.menezes@samsung.com>
20927
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.
20931
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.
20944
20945 2016-02-26 Jakub Jelinek <jakub@redhat.com>
20946
20947 PR target/69969
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.
20951
20952 2016-02-26 Joel Sherrill <joel@rtems.org>
20953
20954 * config.gcc: Add x86_64-*-rtems*.
20955 * config/i386/rtems-64.h: New file.
20956
20957 2016-02-26 Joel Sherrill <joel@rtems.org>
20958
20959 * config.gcc: Add aarch64-*-rtems*.
20960 * config/aarch64/rtems.h: New file.
20961
20962 2016-02-26 Segher Boessenkool <segher@kernel.crashing.org>
20963
20964 PR target/69946
20965 * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
20966 shift amount using %h. Add comment.
20967
20968 2016-02-26 Richard Biener <rguenther@suse.de>
20969 Jeff Law <law@redhat.com>
20970
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
20974 loop.
20975
20976 2016-02-26 Martin Jambor <mjambor@suse.cz>
20977
20978 PR middle-end/69920
20979 * tree-sra.c (sra_modify_assign): Do not remove loads of
20980 uninitialized aggregates to SSA_NAMEs.
20981
20982 2016-02-26 Richard Henderson <rth@redhat.com>
20983
20984 PR target/69709
20985 * config/s390/s390.md (risbg and risbgn splitters): Allocate new
20986 pseudo in case the target rtx matches the source of the left
20987 shift.
20988
20989 2016-02-26 Martin Jambor <mjambor@suse.cz>
20990
20991 PR hsa/69568
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
20995 loads.
20996 (gen_hsa_insns_for_store): Use hsa_type_packed_p.
20997 * hsa-brig.c (emit_basic_insn): Likewise.
20998
20999 2016-02-26 Martin Jambor <mjambor@suse.cz>
21000
21001 pr hsa/69674
21002 * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
21003 pointers.
21004 (gen_hsa_addr): Allow integer constants in TMR_INDEX2.
21005
21006 2016-02-26 Martin Jambor <mjambor@suse.cz>
21007
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.
21015
21016 2016-02-26 Martin Jambor <mjambor@suse.cz>
21017
21018 * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
21019 atomic operations in private segment.
21020
21021 2016-02-26 Martin Jambor <mjambor@suse.cz>
21022
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.
21027
21028 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21029
21030 PR target/69245
21031 * config/aarch64/aarch64.c (aarch64_set_current_function):
21032 Save/restore target globals when switching to
21033 target_option_default_node.
21034
21035 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21036
21037 PR target/69613
21038 * config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
21039 Return 0 if !SHIFT_COUNT_TRUNCATED.
21040
21041 2016-02-26 Jakub Jelinek <jakub@redhat.com>
21042 Eric Botcazou <ebotcazou@adacore.com>
21043
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.
21047
21048 2016-02-26 Martin Liska <mliska@suse.cz>
21049
21050 * doc/extend.texi: Mention clog10, clog10f an clog10l
21051 in Builtins section.
21052
21053 2016-02-26 Martin Liska <mliska@suse.cz>
21054
21055 * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
21056 CHECKING_P.
21057 (resolve_args_picking_1): Likewise.
21058 * dwarf2out.h (struct GTY): Likewise.
21059
21060 2016-02-26 Martin Liska <mliska@suse.cz>
21061
21062 * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
21063 with flag_checking.
21064 * hsa-regalloc.c (linear_scan_regalloc): Likewise.
21065
21066 2016-02-26 Markus Trippelsdorf <markus@trippelsdorf.de>
21067 Martin Liska <mliska@suse.cz>
21068
21069 * doc/install.texi: Mention --enable-valgrind-annotations.
21070
21071 2016-02-26 Richard Biener <rguenther@suse.de>
21072
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.
21077
21078 2016-02-25 Martin Liska <mliska@suse.cz>
21079
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.
21085
21086 2016-02-25 Richard Biener <rguenther@suse.de>
21087
21088 PR tree-optimization/48795
21089 * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
21090
21091 2016-02-25 Ilya Verbin <ilya.verbin@intel.com>
21092
21093 PR driver/68463
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.
21110
21111 2016-02-25 Jan Hubicka <hubicka@ucw.cz>
21112
21113 PR ipa/69630
21114 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
21115 on builtin_unreachable.
21116
21117 2016-02-25 Jakub Jelinek <jakub@redhat.com>
21118
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.
21124
21125 2016-02-24 Jakub Jelinek <jakub@redhat.com>
21126
21127 PR debug/69705
21128 * dwarf2out.c (gen_variable_die): Work around buggy LTO
21129 - allow NULL decl for Fortran DW_TAG_common_block variables.
21130
21131 2016-02-24 Jason Merrill <jason@redhat.com>
21132
21133 * common.opt (flifetime-dse): Add -flifetime-dse=1.
21134
21135 2016-02-24 Richard Biener <rguenther@suse.de>
21136 Jakub Jelinek <jakub@redhat.com>
21137
21138 PR middle-end/69760
21139 * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
21140 conditionally executed ops to well-defined overflow behavior.
21141
21142 2016-02-24 Jakub Jelinek <jakub@redhat.com>
21143
21144 PR middle-end/69915
21145 * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
21146 elements.
21147
21148 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21149
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
21155 callsite.
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.
21159
21160 2016-02-24 Richard Biener <rguenther@suse.de>
21161
21162 PR middle-end/68963
21163 * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
21164 bogus check.
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.
21167
21168 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21169
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.
21177
21178 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21179
21180 PR target/69875
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.
21186
21187 2016-02-24 Jakub Jelinek <jakub@redhat.com>
21188
21189 PR c/69918
21190 * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
21191 2 to 3.
21192
21193 2016-02-24 Jakub Jelinek <jakub@redhat.com>
21194 Richard Biener <rguenth@suse.de>
21195
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
21199 as a MEM.
21200
21201 2016-02-24 Richard Biener <rguenther@suse.de>
21202
21203 PR tree-optimization/69907
21204 * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
21205 end of permutations for BB vectorization.
21206
21207 2016-02-24 Christian Bruel <christian.bruel@st.com>
21208
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.
21214 Fix comments.
21215
21216 2016-02-23 David Edelsohn <dje.gcc@gmail.com>
21217
21218 PR target/69810
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.
21224
21225 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
21226
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}
21230 and AESMC pairs.
21231
21232 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
21233
21234 * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
21235 series for reciprocal square root in Exynos M1.
21236
21237 2016-02-23 Martin Sebor <msebor@redhat.com>
21238
21239 PR c/69759
21240 * doc/extend.texi (Other Builtins): Document __builtin_alloca and
21241 __builtin_alloca_with_align.
21242
21243 2016-02-23 Richard Henderson <rth@redhat.com>
21244
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.
21253
21254 2016-02-23 Richard Biener <rguenther@suse.de>
21255
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.
21260
21261 2016-02-23 Thomas Schwinge <thomas@codesourcery.com>
21262
21263 * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
21264 (parallelize_loops): In OpenACC kernels mode, set n_threads to
21265 zero.
21266 (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
21267 flag_openacc.
21268 * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
21269
21270 2016-02-23 Richard Biener <rguenther@suse.de>
21271
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.
21280
21281 2016-02-23 Jakub Jelinek <jakub@redhat.com>
21282
21283 PR c++/69902
21284 * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
21285 when inverting comparison.
21286
21287 PR c/69900
21288 * common.opt (Wunreachable-code): Add Warning flag.
21289
21290 2016-02-23 Mark Wielaard <mjw@redhat.com>
21291 Jakub Jelinek <jakub@redhat.com>
21292
21293 PR c/69911
21294 * cgraphunit.c (check_global_declaration): Check main_input_filename
21295 and DECL_SOURCE_FILE are not NULL.
21296
21297 2016-02-23 Martin Jambor <mjambor@suse.cz>
21298
21299 PR tree-optimization/69666
21300 * tree-sra.c (sra_modify_assign): Do not attempt to create
21301 default_def replacements for unscalarizable regions.
21302
21303 2016-02-20 Mark Wielaard <mjw@redhat.com>
21304
21305 PR c/28901
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.
21311
21312 2016-02-22 Jakub Jelinek <jakub@redhat.com>
21313
21314 PR target/69888
21315 * config/i386/i386.c (decide_alg): Ensure we don't recurse with
21316 identical arguments. Formatting and spelling fixes.
21317
21318 PR target/69885
21319 * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
21320 be specified.
21321
21322 PR target/69894
21323 PR target/69895
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.
21328
21329 2016-02-22 Cesar Philippidis <cesar@codesourcery.com>
21330
21331 * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
21332 and HImode registers.
21333
21334 2016-02-22 Richard Biener <rguenther@suse.de>
21335
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.
21341
21342 2016-02-22 Bin Cheng <bin.cheng@arm.com>
21343
21344 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
21345 min_profitable_estimate, rather than min_profitable_iters.
21346
21347 2016-02-22 Jakub Jelinek <jakub@redhat.com>
21348
21349 PR target/69885
21350 * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
21351 SImode for last match_operand.
21352
21353 2016-02-22 Martin Liska <mliska@suse.cz>
21354
21355 * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
21356 return bitsize - 1 as the return value.
21357
21358 2016-02-22 Oleg Endo <olegendo@gcc.gnu.org>
21359
21360 PR target/69806
21361 PR target/54089
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.
21368
21369 2016-02-22 Richard Biener <rguenther@suse.de>
21370 Tom de Vries <tom@codesourcery.com>
21371
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.
21375
21376 2016-02-22 Tom de Vries <tom@codesourcery.com>
21377
21378 * gdbhooks.py (class DumpFn): Add and instantiate, adding command
21379 dump-fn.
21380
21381 2016-02-22 Richard Biener <rguenther@suse.de>
21382
21383 PR ipa/37448
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
21391 summary.
21392
21393 2016-02-21 Markus Trippelsdorf <markus@trippelsdorf.de>
21394
21395 * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
21396 variable.
21397
21398 2016-02-19 Jakub Jelinek <jakub@redhat.com>
21399
21400 PR driver/69805
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.
21405
21406 2016-02-19 Jonathan Wakely <jwakely@redhat.com>
21407
21408 * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
21409 -Wnarrowing with -std.
21410
21411 2016-02-19 Jakub Jelinek <jakub@redhat.com>
21412
21413 PR c++/69851
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
21418 fix.
21419
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.
21424
21425 PR target/69820
21426 * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
21427 if TARGET_AVX512BW.
21428
21429 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21430
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.
21434
21435 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21436
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.
21441
21442 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21443
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.
21447
21448 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21449
21450 * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
21451
21452 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21453
21454 * config/s390/s390.c (s390_expand_vcond): Use the compare operand
21455 mode.
21456
21457 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21458
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.
21463
21464 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21465
21466 * config/s390/s390.md: Add missing output modifier for operand 1
21467 to print it as address properly.
21468
21469 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21470
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
21481 debug output.
21482 (s390_sched_init): Clear last_scheduled_unit_distance array.
21483 * config/s390/s390.md: Include 2964.md.
21484
21485 2016-02-18 Jakub Jelinek <jakub@redhat.com>
21486
21487 PR target/69671
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.
21493
21494 2016-02-18 Michael Meissner <meissner@linux.vnet.ibm.com>
21495
21496 PR target/68404
21497 * config/rs6000/predicates.md (fusion_gpr_addis): Revert
21498 2016-02-09 change.
21499
21500 * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
21501 earlyclobber from target. Use wF constraint for fused memory
21502 address.
21503 (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
21504
21505 2016-02-18 Jakub Jelinek <jakub@redhat.com>
21506 Martin Liska <mliska@suse.cz>
21507
21508 PR sanitizer/69863
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.
21514
21515 2016-02-18 Richard Biener <rguenther@suse.de>
21516
21517 PR middle-end/69553
21518 * fold-const.c (operand_equal_p): Properly compare offsets for
21519 IMAGPART_EXPR and ARRAY_REF.
21520
21521 2016-02-18 Nick Clifton <nickc@redhat.com>
21522
21523 PR target/62254
21524 PR target/69610
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
21529 it.
21530 (arm_reload_out_hi): Likewise.
21531
21532 2016-02-18 Richard Biener <rguenther@suse.de>
21533
21534 PR middle-end/69854
21535 * match.pd: Don't use fold_binary or fold_unary for folding
21536 constants.
21537
21538 2016-02-17 Jakub Jelinek <jakub@redhat.com>
21539
21540 PR c++/69850
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.
21545
21546 2016-02-17 Jonathan Wakely <jwakely@redhat.com>
21547
21548 * doc/extend.texi (C++ Attributes): Correct description of
21549 warn_unused type attribute.
21550
21551 2016-02-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
21552
21553 * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
21554 correct instruction.
21555
21556 2016-02-17 Richard Biener <rguenther@suse.de>
21557
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
21561 of successors.
21562 (bb_to_key): Use cached priority when available.
21563 (copy_bb): Initialize cached priority.
21564 (reorder_basic_blocks_software_trace_cache): Likewise.
21565
21566 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21567
21568 PR target/69161
21569 * config/aarch64/predicates.md (aarch64_comparison_operator_mode):
21570 New predicate.
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.
21581
21582 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21583
21584 PR target/69161
21585 * config/arm/predicates.md (arm_comparison_operator_mode):
21586 New predicate.
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.
21596
21597 2016-02-17 Wilco Dijkstra <wdijkstr@arm.com>
21598
21599 * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
21600 Add missing return.
21601
21602 2016-02-17 Eric Botcazou <ebotcazou@adacore.com>
21603
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.
21616
21617 2016-02-17 Nick Clifton <nickc@redhat.com>
21618
21619 * config/msp430/msp430.c (msp430_mcu_data): Sync with data from
21620 TI's devices.csv file as of March 2016.
21621
21622 2016-02-16 Kelvin Nilsen <kelvin@gcc.gnu.org>
21623
21624 PR Target/48344
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.
21631
21632 2016-02-16 Jakub Jelinek <jakub@redhat.com>
21633
21634 PR c/69835
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.
21643
21644 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
21645
21646 * config/aarch64/aarch64.c (cortexa57_tunings): Remove
21647 AARCH64_EXTRA_TUNE_RECIP_SQRT.
21648
21649 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
21650
21651 * config/aarch64/aarch64.c (use_rsqrt_p): Always use software
21652 reciprocal sqrt for -mlow-precision-recip-sqrt.
21653
21654 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
21655 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
21656
21657 * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
21658 always use lane loads to construct non-constant vectors.
21659
21660 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
21661
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.
21666
21667 2016-02-16 Jakub Jelinek <jakub@redhat.com>
21668 Richard Biener <rguenther@suse.de>
21669
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):
21674 Formatting fix.
21675
21676 2016-02-16 Jakub Jelinek <jakub@redhat.com>
21677
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.
21682
21683 2016-02-16 Richard Biener <rguenther@suse.de>
21684
21685 PR tree-optimization/69776
21686 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
21687 sets from caller.
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.
21694
21695 2016-02-16 Bernd Schmidt <bschmidt@redhat.com>
21696
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.
21700
21701 2016-02-16 Claudiu Zissulescu <claziss@synopsys.com>
21702
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
21712 instructions.
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):
21737 Renamed.
21738 (adddf3, muldf3, subdf3): Removed.
21739 * config/arc/predicates.md (proper_comparison_operator): Recognize
21740 CC_FPU* modes.
21741 * config/arc/fpu.md: New file.
21742 * doc/invoke.texi (ARC Options): Document mfpu option.
21743
21744 2016-02-16 Richard Biener <rguenther@suse.de>
21745
21746 PR rtl-optimization/69291
21747 * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
21748 noce_operand_ok check.
21749
21750 2016-02-16 Tom de Vries <tom@codesourcery.com>
21751
21752 PR lto/67709
21753 * omp-low.c (simd_clone_create): Remove call to
21754 symtab->call_cgraph_insertion_hooks.
21755
21756 2016-02-16 Jakub Jelinek <jakub@redhat.com>
21757
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
21764 up formatting.
21765
21766 2016-02-16 Richard Biener <rguenther@suse.de>
21767
21768 PR tree-optimization/69586
21769 * tree-vrp.c (register_edge_assert_for_2): Handle all integral
21770 types for conversion sources.
21771
21772 2016-02-16 Richard Biener <rguenther@suse.de>
21773
21774 PR middle-end/69801
21775 * fold-const.c (operand_equal_p): For COND_EXPR zero operand
21776 mask OEP_ADDRESS_OF.
21777
21778 2016-02-16 Alan Modra <amodra@gmail.com>
21779
21780 PR target/68973
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.
21784 (p8_mtvsrwz): New.
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
21789 changes.
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.
21794
21795 2016-02-15 Evandro Menezes <e.menezes@samsung.com>
21796
21797 Add support for the FCCMP insn types
21798
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.
21808
21809 2016-02-15 Bernd Edlinger <bernd.edlinger@hotmail.de>
21810
21811 * alias.c (get_alias_set): Fix a typo in comment.
21812
21813 2016-02-15 Richard Biener <rguenther@suse.de>
21814
21815 PR tree-optimization/69595
21816 * match.pd: Complete range test simplification to true.
21817
21818 2016-02-15 Bernd Schmidt <bschmidt@redhat.com>
21819
21820 PR rtl-optimization/69648
21821 * lra-constraints.c (update_ebb_live_info): Don't remove sets of
21822 pic_offset_table_rtx.
21823
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.
21827
21828 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
21829
21830 * config/s390/s390.c (s390_function_profiler): Add a new sequence
21831 for z900+ CPUs in 31-bit mode.
21832
21833 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
21834
21835 * common/config/s390/s390-common.c (s390_supports_split_stack):
21836 New function.
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
21844 vararg pointer.
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.
21862
21863 2016-02-15 Richard Biener <rguenther@suse.de>
21864
21865 PR tree-optimization/69783
21866 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
21867 Add trivially correct cases.
21868
21869 2016-02-15 Tom de Vries <tom@codesourcery.com>
21870
21871 PR lto/69655
21872 * lto-cgraph.c (input_offload_tables): Add and handle bool parameter
21873 do_force_output.
21874 * lto-streamer.h (input_offload_tables): Add and handle bool parameter.
21875
21876 2016-02-15 Richard Biener <rguenther@suse.de>
21877
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
21884 redundant stores.
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.
21888
21889 2016-02-14 John David Anglin <danglin@gcc.gnu.org>
21890
21891 * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.
21892
21893 2016-02-14 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
21894
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,
21904 znver1_avx256_fma,
21905 znver1_avx256_fma_load): Fix pipe usage.
21906
21907 2016-02-14 Alan Modra <amodra@gmail.com>
21908
21909 PR target/68973
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.
21913
21914 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
21915
21916 PR target/67260
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.
21920
21921 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
21922
21923 PR target/67636
21924 PR target/64345
21925 * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.
21926
21927 2016-02-12 Walter Lee <walt@tilera.com>
21928
21929 * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
21930 * config/tilegx/t-tilegx: Likewise.
21931
21932 2016-02-12 David Malcolm <dmalcolm@redhat.com>
21933
21934 PR other/69554
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"
21959 statements.
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.
21964
21965 2016-02-12 David Malcolm <dmalcolm@redhat.com>
21966
21967 PR driver/69779
21968 * gcc.c (driver::finalize): Fix cleanup of "specs".
21969
21970 2016-02-12 David Malcolm <dmalcolm@redhat.com>
21971
21972 PR driver/69265
21973 PR driver/69453
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.
21996
21997 2016-02-12 Jakub Jelinek <jakub@redhat.com>
21998
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.
22003
22004 2016-02-12 Ilya Enkovich <enkovich.gnu@gmail.com>
22005
22006 PR target/69729
22007 * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
22008 to correctly determine instrumentation thunks.
22009
22010 2016-02-12 Jakub Jelinek <jakub@redhat.com>
22011
22012 PR ipa/69241
22013 * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
22014 type by reference, force lhs on the call.
22015
22016 PR ipa/68672
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.
22023
22024 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
22025
22026 revert:
22027 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
22028
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.
22034
22035 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
22036
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.
22042
22043 2016-02-12 Jakub Jelinek <jakub@redhat.com>
22044
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.
22095
22096 2016-02-11 Segher Boessenkool <segher@kernel.crashing.org>
22097
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.
22103
22104 2016-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22105
22106 * config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
22107 New variable.
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.
22114
22115 2016-02-11 David Malcolm <dmalcolm@redhat.com>
22116
22117 PR plugins/69758
22118 * Makefile.in (PLUGIN_HEADERS): Add params.list.
22119
22120 2016-02-11 Jakub Jelinek <jakub@redhat.com>
22121
22122 PR target/65313
22123 * tree-vect-slp.c (vect_schedule_slp_instance): Avoid
22124 -Wmaybe-uninitialized warning.
22125
22126 2016-02-11 Oleg Endo <olegendo@gcc.gnu.org>
22127
22128 PR target/69713
22129 * config/sh/sh.md (casesi_worker_0): Add T_REG use.
22130
22131 2016-02-11 Richard Biener <rguenther@suse.de>
22132
22133 PR rtl-optimization/69291
22134 * ifcvt.c (noce_try_store_flag_constants): Do not allow
22135 subexpressions affected by changing the result.
22136
22137 2016-02-10 Vladimir Makarov <vmakarov@redhat.com>
22138
22139 PR target/69148
22140 * lra-constraints.c (curr_insn_transform): Find in/out operands
22141 for secondary memory moves. Update dups.
22142
22143 2016-02-10 Yuri Rumyantsev <ysrumyan@gmail.com>
22144
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
22149 statements.
22150
22151 2016-02-10 Jakub Jelinek <jakub@redhat.com>
22152 Patrick Palka <ppalka@gcc.gnu.org>
22153
22154 PR ipa/69241
22155 PR c++/69649
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.
22162
22163 2016-02-10 Bin Cheng <bin.cheng@arm.com>
22164
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.
22168
22169 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
22170
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.
22183
22184 2016-02-10 Richard Biener <rguenther@suse.de>
22185
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.
22190
22191 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
22192
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.
22197
22198 2016-02-10 Eric Botcazou <ebotcazou@adacore.com>
22199
22200 * timevar.def (TV_PHASE_DBGINFO): Delete.
22201 (TV_PHASE_CHECK_DBGINFO): Likewise.
22202 * varpool.c (varpool_node::assemble_decl): Do not change timevar.
22203
22204 2016-02-10 Richard Biener <rguenther@suse.de>
22205
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.
22209
22210 2016-02-09 Andrew Pinski <apinski@cavium.com>
22211
22212 PR tree-opt/69282
22213 * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
22214 get_vcond_mask_icode returns false.
22215
22216 2016-02-09 Michael Meissner <meissner@linux.vnet.ibm.com>
22217
22218 PR target/68404
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.
22222
22223 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
22224
22225 PR target/68532
22226 * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
22227 order.
22228 * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
22229 endian.
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.
22238
22239 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
22240
22241 PR target/68532
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
22246 endian.
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.
22255
22256 2016-02-11 Alexandre Oliva <aoliva@redhat.com>
22257
22258 PR target/69634
22259 * regstat.c (regstat_bb_compute_calls_crossed): Disregard
22260 debug insns.
22261
22262 2016-02-09 Uros Bizjak <ubizjak@gmail.com>
22263
22264 * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
22265 truncate const_int operand 1 to QImode.
22266
22267 2016-02-09 Eric Botcazou <ebotcazou@adacore.com>
22268
22269 * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
22270 corresponding to an abnormal edge.
22271
22272 2016-02-09 Tom de Vries <tom@codesourcery.com>
22273
22274 PR tree-optimization/69599
22275 * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
22276 function.
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
22279 partition.
22280
22281 2016-02-09 Richard Biener <rguenther@suse.de>
22282
22283 PR tree-optimization/69715
22284 * tree-ssa.c (execute_update_addresses_taken): Mark non-decl
22285 LHS on calls as non-rewritable.
22286
22287 2016-02-09 Tom de Vries <tom@codesourcery.com>
22288
22289 PR lto/69707
22290 * lto-wrapper.c (append_diag_options): New function.
22291 (compile_offload_image): Call append_diag_options.
22292
22293 2016-02-08 Sandra Loosemore <sandra@codesourcery.com>
22294
22295 PR other/69722
22296 * doc/extend.texi (Flag Output Operands): Correct sectioning.
22297 Minor copy-edit to fix verb tenses.
22298
22299 2016-02-08 Jakub Jelinek <jakub@redhat.com>
22300
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.
22305
22306 2016-02-08 Nicklas Bo Jensen <nbjensen@gmail.com>
22307
22308 * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
22309 outdated section.
22310
22311 2016-02-08 Jason Merrill <jason@redhat.com>
22312
22313 PR c++/69631
22314 * convert.c (convert_to_integer_1): Check dofold on truncation
22315 distribution.
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.
22321
22322 2016-02-08 Bernd Schmidt <bschmidt@redhat.com>
22323
22324 PR target/60410
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.
22333
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
22342 bitmap.
22343
22344 2016-02-08 Richard Biener <rguenther@suse.de>
22345
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.
22350
22351 2016-02-08 Richard Biener <rguenther@suse.de>
22352 Jeff Law <law@redhat.com>
22353
22354 PR target/68273
22355 * tree-ssanames.c (make_ssa_name_fn): Always use unqualified
22356 types for anonymous SSA names.
22357
22358 2016-02-08 Richard Biener <rguenther@suse.de>
22359
22360 PR rtl-optimization/69274
22361 * ira.c (ira_setup_alts): Do not change recog_data.operand order.
22362
22363 2016-02-08 Jeff Law <law@redhat.com>
22364
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.
22375
22376 2016-02-05 Jeff Law <law@redhat.com>
22377
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.
22386
22387 2016-02-05 Martin Sebor <msebor@redhat.com>
22388
22389 PR c++/69662
22390 * doc/invoke.texi: Update -Wplacement-new to take an optional
22391 argument.
22392
22393 2016-02-06 Richard Henderson <rth@redhat.com>
22394
22395 PR c/69643
22396 * tree.c (tree_nop_conversion_p): Do not strip casts into or
22397 out of non-standard address spaces.
22398
22399 2016-02-05 Jakub Jelinek <jakub@redhat.com>
22400
22401 PR rtl-optimization/69691
22402 * lra-eliminations.c (move_plus_up): Don't add the addend twice.
22403
22404 2016-02-05 Pat Haugen <pthaugen@us.ibm.com>
22405
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.
22410
22411 2016-02-05 Ilya Enkovich <enkovich.gnu@gmail.com>
22412
22413 PR target/69369
22414 Revert r232560:
22415 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
22416
22417 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
22418 instrumented_version.
22419
22420 2016-01-05 Jeremy Bennett <jeremy.bennett@embecosm.com>
22421
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.
22432
22433 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
22434
22435 * config/s390/s390.c (s390_register_info_set_ranges): Remove
22436 superfluous loops.
22437
22438 2016-02-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
22439
22440 * doc/extend.texi: S/390: Correct some typos.
22441
22442 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
22443
22444 * config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
22445
22446 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
22447
22448 PR target/69625
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
22452 its name.
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.
22465
22466 2016-02-05 Jakub Jelinek <jakub@redhat.com>
22467
22468 PR bootstrap/69677
22469 * config/i386/i386.c (convert_scalars_to_vector): Readd stack
22470 alignment fixes.
22471 (ix86_option_override_internal): Disable TARGET_STV even for
22472 -m{incoming,preferred}-stack-boundary=3.
22473
22474 2016-02-03 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
22475
22476 * config.gcc: Mark deprecated rtems targets as obsolete.
22477
22478 2016-02-04 Segher Boessenkool <segher@kernel.crashing.org>
22479
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.
22484
22485 2016-02-04 DJ Delorie <dj@redhat.com>
22486
22487 * config/msp430/msp430.c (msp430_start_function): Add function type.
22488
22489 2016-02-04 Jakub Jelinek <jakub@redhat.com>
22490
22491 PR fortran/69368
22492 * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
22493
22494 2016-02-04 Uros Bizjak <ubizjak@gmail.com>
22495
22496 PR rtl-optimization/69577
22497 Revert:
22498 2015-10-29 Richard Henderson <rth@redhat.com>
22499
22500 PR target/68124
22501 PR rtl-opt/67609
22502 * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
22503 sse check to the exact conditions of PR 67609.
22504
22505 2016-02-04 Michael Meissner <meissner@linux.vnet.ibm.com>
22506
22507 PR target/69667
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.
22513
22514 2016-02-04 David Malcolm <dmalcolm@redhat.com>
22515
22516 * config/aarch64/cortex-a57-fma-steering.c
22517 (aarch64_register_fma_steering): Remove "static" from arguments
22518 to register_pass.
22519
22520 2016-02-04 Wilco Dijkstra <wdijkstr@arm.com>
22521
22522 PR target/69619
22523 * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
22524 twice when complex.
22525
22526 2016-02-04 Mike Frysinger <vapier@gentoo.org>
22527
22528 * doc/invoke.texi: Delete -mno-fma4.
22529
22530 2016-02-04 Richard Sandiford <richard.sandiford@arm.com>
22531
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
22535 definitions.
22536
22537 2016-02-04 Alan Lawrence <alan.lawrence@arm.com>
22538
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.
22648
22649 2016-02-04 Martin Liska <mliska@suse.cz>
22650
22651 PR sanitizer/69276
22652 * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
22653 that are gimple_store_p.
22654 (maybe_instrument_call): Likewise.
22655
22656 2016-02-04 Bin Cheng <bin.cheng@arm.com>
22657
22658 * config/aarch64/aarch64.c (aarch64_legitimize_address): Force
22659 register scaling out of memory reference and comment why.
22660
22661 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22662
22663 PR target/65932
22664 PR target/67714
22665 * cse.c (cse_insn): Pass NULL to fold_rtx when initially
22666 folding the source of a SET.
22667
22668 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22669
22670 PR target/65932
22671 PR target/67714
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.
22674
22675 2016-02-04 Jim Wilson <jim.wilson@linaro.org>
22676
22677 PR target/65932
22678 PR target/67714
22679 * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
22680 HImode.
22681
22682 2016-02-04 Christian Bruel <christian.bruel@st.com>
22683
22684 * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
22685 * config/arm/arm.c (arm_set_current_function): Likewise.
22686
22687 2016-02-04 Jakub Jelinek <jakub@redhat.com>
22688 Ilya Enkovich <enkovich.gnu@gmail.com>
22689 H.J. Lu <hongjiu.lu@intel.com>
22690
22691 PR target/69454
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.
22697
22698 2016-02-04 Victoria Stepanyan <victoria.stepanyan@amd.com>
22699
22700 * config/i386/x86-tune.def: Disable default prefetching
22701 for -march=znver1.
22702
22703 2016-02-03 Michael Meissner <meissner@linux.vnet.ibm.com>
22704 Vladimir Makarov <vmakarov@redhat.com>
22705
22706 PR target/69461
22707 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
22708 in validating fused toc addresses.
22709
22710 2016-02-03 Jakub Jelinek <jakub@redhat.com>
22711
22712 PR c/69627
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.
22715
22716 PR target/69644
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.
22720
22721 2016-02-03 Vladimir Makarov <vmakarov@redhat.com>
22722 Alexandre Oliva <aoliva@redhat.com>
22723
22724 PR target/69461
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
22728 nothing.
22729
22730 2016-02-03 Kirill Yukhin <kirill.yukhin@intel.com>
22731
22732 PR target/69118
22733 * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
22734 Fix target.
22735
22736 2016-02-02 Jakub Jelinek <jakub@redhat.com>
22737
22738 * wide-int.cc (canonize_uhwi): New function.
22739 (wi::divmod_internal): Use it.
22740
22741 2016-02-02 James Norris <jnorris@codesourcery.com>
22742
22743 * gimplify.c (omp_notice_variable): Add usage check.
22744
22745 2016-02-02 Alexander Monakov <amonakov@ispras.ru>
22746
22747 * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
22748 like LE, GE, LT, GT when emitting relational operator.
22749
22750 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
22751
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):
22759 Add parameter.
22760 * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
22761 Update target hook.
22762
22763 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
22764
22765 * config/aarch64/aarch64.c
22766 (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
22767 (aarch64_ira_change_pseudo_allocno_class): New function.
22768
22769 2016-02-02 Uros Bizjak <ubizjak@gmail.com>
22770
22771 PR target/67032
22772 * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
22773
22774 2016-02-02 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
22775
22776 * config/avr/avr.c (avr_option_override): Set
22777 PARAM_ALLOW_STORE_DATA_RACES to 1.
22778
22779 2016-02-02 Richard Biener <rguenther@suse.de>
22780
22781 PR tree-optimization/69595
22782 * match.pd: Add range test simplifications to true/false.
22783
22784 2016-02-02 Thomas Schwinge <thomas@codesourcery.com>
22785
22786 * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
22787 * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
22788 instead.
22789
22790 2016-02-02 Richard Biener <rguenther@suse.de>
22791
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.
22795
22796 2016-02-02 Yuri Rumyantsev <ysrumyan@gmail.com>
22797
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.
22812
22813 2016-02-02 Alan Modra <amodra@gmail.com>
22814
22815 PR target/69548
22816 * config/rs6000/predicates.md (quad_int_reg_operand): Don't
22817 allow subregs.
22818
22819 2016-02-02 Alan Modra <amodra@gmail.com>
22820
22821 PR target/68662
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.
22829
22830 2016-02-01 Jakub Jelinek <jakub@redhat.com>
22831
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.
22837
22838 2016-02-01 Jeff Law <law@redhat.com>
22839
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.
22845
22846 2016-02-01 Jakub Jelinek <jakub@redhat.com>
22847
22848 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
22849 when count is incremented above limit, don't analyze further
22850 insns afterwards.
22851
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.
22855
22856 2016-02-01 Bin Cheng <bin.cheng@arm.com>
22857
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.
22862
22863 2016-02-01 Nathan Sidwell <nathan@codesourcery.com>
22864
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
22875 possible.
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.
22881
22882 2016-02-01 Richard Biener <rguenther@suse.de>
22883
22884 PR middle-end/69556
22885 * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
22886
22887 2016-02-01 Richard Biener <rguenther@suse.de>
22888
22889 PR tree-optimization/69574
22890 * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
22891 of asserting return chrec_dont_know.
22892
22893 2016-02-01 Martin Liska <mliska@suse.cz>
22894
22895 * mem-stats-traits.h: Add copyright header.
22896 * mem-stats.h: Likewise.
22897
22898 2016-02-01 Richard Biener <rguenther@suse.de>
22899
22900 PR tree-optimization/69579
22901 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
22902 Do not propagate through abnormal PHI results.
22903
22904 2016-02-01 Eric Botcazou <ebotcazou@adacore.com>
22905
22906 * postreload.c (reload_cse_simplify): Remove dead code.
22907
22908 2016-02-01 Jakub Jelinek <jakub@redhat.com>
22909
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.
22913
22914 2016-02-01 Richard Henderson <rth@redhat.com>
22915
22916 PR rtl-opt/69535
22917 * combine.c (make_compound_operation): When looking through a
22918 subreg, make sure to re-extend to the width of the outer mode.
22919
22920 2016-01-30 Jakub Jelinek <jakub@redhat.com>
22921
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.
22929
22930 2016-01-29 Martin Jambor <mjambor@suse.cz>
22931
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.
22943
22944 2016-01-29 Sebastian Pop <s.pop@samsung.com>
22945
22946 * doc/install.texi: Document that isl-0.16 is supported.
22947
22948 2016-01-29 Vladimir Makarov <vmakarov@redhat.com>
22949
22950 PR target/69299
22951 * config/i386/constraints.md (Bm): Describe as special memory
22952 constraint.
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
22957 static vars.
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
22976 CT_SPECIAL_MEMORY.
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.
22981
22982 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
22983
22984 PR target/69530
22985 * lra-splill.c (lra_final_code_change): Revert r229087 by
22986 removing all sub-registers.
22987
22988 2016-01-29 Steve Ellcey <sellcey@imgtec.com>
22989
22990 PR target/65604
22991 * config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
22992
22993 2016-01-29 Jakub Jelinek <jakub@redhat.com>
22994
22995 PR target/69551
22996 * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
22997 SSE1, copy target into the temporary reg first before recursing
22998 on it.
22999
23000 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
23001
23002 * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
23003 with vm.
23004
23005 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
23006
23007 * ginclude/stdarg.h: Test __cplusplus instead of
23008 __GXX_EXPERIMENTAL_CXX0X__.
23009
23010 2016-01-29 Richard Biener <rguenther@suse.de>
23011
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.
23016
23017 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
23018
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.
23022
23023 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
23024
23025 PR other/69006
23026 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
23027 trailing blank line from error message.
23028
23029 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
23030
23031 PR c++/69462
23032 * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
23033 for C++-11.
23034
23035 2016-01-29 Richard Biener <rguenther@suse.de>
23036
23037 PR middle-end/69537
23038 * match.pd: Allow all integral types when simplifying a
23039 widening or sign-changing conversion.
23040
23041 2016-01-28 Sebastian Pop <s.pop@samsung.com>
23042
23043 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
23044 back to setting codegen_error to fail codegen.
23045
23046 2016-01-28 Uros Bizjak <ubizjak@gmail.com>
23047
23048 PR target/69459
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
23054 of C constraint.
23055
23056 2016-01-28 Steve Ellcey <sellcey@imgtec.com>
23057
23058 PR target/68400
23059 * config/mips/mips.c (and_operands_ok): Add MIPS16 check.
23060
23061 2016-01-28 Jakub Jelinek <jakub@redhat.com>
23062
23063 PR middle-end/69542
23064 * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
23065 non-debug insns.
23066
23067 2016-01-28 Pat Haugen <pthaugen@us.ibm.com>
23068
23069 * config/rs6000/rs6000.c (output_cbranch): Don't statically predict
23070 branches if using guessed profile.
23071
23072 2016-01-28 H.J. Lu <hongjiu.lu@intel.com>
23073
23074 * graphite-optimize-isl.c (optimize_isl): Fix dump.
23075
23076 2016-01-28 Richard Henderson <rth@redhat.com>
23077
23078 PR target/69305
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.
23105
23106 2016-01-28 Abderrazek Zaafrani <a.zaafrani@samsung.com>
23107
23108 * graphite-optimize-isl.c (optimize_isl): Print a different debug
23109 message when isl does not return a valid schedule.
23110
23111 2016-01-28 Sebastian Pop <s.pop@samsung.com>
23112
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
23115 close by the defs.
23116
23117 2016-01-28 Sebastian Pop <s.pop@samsung.com>
23118
23119 * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
23120 codegen_error_p.
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.
23132
23133 2016-01-28 Sebastian Pop <s.pop@samsung.com>
23134
23135 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
23136 instead of setting codegen_error to fail codegen.
23137
23138 2016-01-28 Jason Merrill <jason@redhat.com>
23139
23140 * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
23141
23142 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
23143
23144 * config/aarch64/aarch64.c (aarch64_if_then_else_costs):
23145 Remove CONST_INT_P check in CCMP cost calculation.
23146
23147 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
23148
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.
23157
23158 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
23159
23160 * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
23161 immediate as %1.
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.
23167
23168 2016-01-28 Ilya Enkovich <enkovich.gnu@gmail.com>
23169
23170 * tree-vect-stmts.c (vectorizable_comparison): Add
23171 NULL check for vectype.
23172
23173 2016-01-28 Richard Biener <rguenther@suse.de>
23174
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.
23178
23179 2016-01-28 Martin Liska <mliska@suse.cz>
23180
23181 PR pch/68758
23182 * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
23183 instead of ENABLE_VALGRIND_CHECKING.
23184
23185 2016-01-27 Richard Henderson <rth@redhat.com>
23186
23187 PR rtl-opt/69447
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.
23194
23195 2016-01-27 H.J. Lu <hongjiu.lu@intel.com>
23196
23197 PR target/68986
23198 * config/i386/i386.c (ix86_update_stack_boundary): Don't
23199 change stack_alignment_needed for __tls_get_addr call.
23200
23201 2016-01-27 Segher Boessenkool <segher@kernel.crashing.org>
23202
23203 * config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
23204
23205 2016-01-27 Jeff Law <law@redhat.com>
23206
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.
23215
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.
23219
23220 2016-01-27 Jakub Jelinek <jakub@redhat.com>
23221
23222 PR lto/69254
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.
23229
23230 2016-01-27 Ian Lance Taylor <iant@google.com>
23231
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
23236 NULL.
23237
23238 2016-01-27 Uros Bizjak <ubizjak@gmail.com>
23239
23240 PR target/69512
23241 * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
23242 (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.
23243
23244 2016-01-27 Thomas Klausner <wiz@NetBSD.org>
23245
23246 PR target/68380
23247 * configure.ac: NetBSD provides SSP in its C library.
23248 * configure: Updated.
23249
23250 2016-01-27 Richard Biener <rguenther@suse.de>
23251
23252 PR tree-optimization/69166
23253 * tree-vect-loop.c (vect_is_simple_reduction): Always check
23254 reduction code for commutativity / associativity.
23255
23256 2016-01-27 Martin Jambor <mjambor@suse.cz>
23257
23258 PR tree-optimization/69355
23259 * tree-sra.c (analyze_access_subtree): Correct hole detection when
23260 total_scalarization fails.
23261
23262 2016-01-27 David Edelsohn <dje.gcc@gmail.com>
23263
23264 * config/rs6000/driver-rs6000.c (detect_processor_aix): Add
23265 power9.
23266
23267 2016-01-27 Christian Bruel <christian.bruel@st.com>
23268
23269 PR target/69245
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.
23277
23278 2016-01-27 Martin Liska <mliska@suse.cz>
23279
23280 * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
23281 reference for an HSA kernel and its host function.
23282
23283 2016-01-27 Jakub Jelinek <jakub@redhat.com>
23284
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.
23288
23289 2016-01-27 Claudiu Zissulescu <claziss@synopsys.com>
23290
23291 * config/arc/predicates.md (proper_comparison_operator): Reject
23292 constant-constant comparison.
23293
23294 2016-01-26 Tom de Vries <tom@codesourcery.com>
23295
23296 PR tree-optimization/69110
23297 * tree-data-ref.c (initialize_data_dependence_relation): Handle
23298 DR_NUM_DIMENSIONS == 0.
23299
23300 2016-01-26 Abderrazek Zaafrani <a.zaafrani@samsung.com>
23301 Sebastian Pop <s.pop@samsung.com>
23302
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.
23306
23307 2016-01-26 Jason Merrill <jason@redhat.com>
23308
23309 PR c++/68782
23310 * tree.c (recompute_constructor_flags): Split out from
23311 build_constructor.
23312 (verify_constructor_flags): New.
23313 * tree.h: Declare them.
23314
23315 2016-01-26 Iain Buclaw <ibuclaw@gdcproject.org>
23316
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.
23320
23321 2016-01-26 Jakub Jelinek <jakub@redhat.com>
23322
23323 PR target/68662
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
23328 LCTOC1.
23329 (rs6000_elf_declare_function_name): Use toc_label_name instead of
23330 constructing LCTOC1.
23331
23332 2016-01-26 Martin Sebor <msebor@redhat.com>
23333
23334 PR other/69477
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.
23338
23339 2016-01-26 Richard Henderson <rth@redhat.com>
23340
23341 PR middle-end/60908
23342 * trans-mem.c (tm_region_init): Mark entry block as visited.
23343
23344 2016-01-26 David Malcolm <dmalcolm@redhat.com>
23345
23346 PR other/69006
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
23354 before a newline.
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.
23364
23365 2016-01-26 Michael Matz <matz@suse.de>
23366
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.
23371
23372 2016-01-26 Claudiu Zissulescu <claziss@synopsys.com>
23373
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.
23380
23381 2016-01-26 Jakub Jelinek <jakub@redhat.com>
23382
23383 PR tree-optimization/69483
23384 * gimple-fold.c (canonicalize_constructor_val): Return NULL
23385 if base has error_mark_node type.
23386
23387 2016-01-26 Christophe Lyon <christophe.lyon@linaro.org>
23388
23389 PR target/68620
23390 * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
23391 * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
23392 New helper macros.
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.
23406
23407 2016-01-26 Nathan Sidwell <nathan@acm.org>
23408
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.
23422
23423 2016-01-26 Jakub Jelinek <jakub@redhat.com>
23424
23425 PR lto/69254
23426 * lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
23427 (append_compiler_options): Handle -fcilkplus.
23428 (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.
23429
23430 2016-01-26 Nick Clifton <nickc@redhat.com>
23431
23432 PR target/66655
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.
23436
23437 2016-01-26 Jakub Jelinek <jakub@redhat.com>
23438
23439 PR lto/69254
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.
23444
23445 2016-01-26 H.J. Lu <hongjiu.lu@intel.com>
23446
23447 PR target/68986
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
23451 __tls_get_addr.
23452 (ix86_finalize_stack_realign_flags): Use stack_alignment_needed
23453 if __tls_get_addr is called.
23454
23455 2016-01-26 Christian Bruel <christian.bruel@st.com>
23456
23457 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.
23458
23459 2016-01-26 Eric Botcazou <ebotcazou@adacore.com>
23460
23461 * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.
23462
23463 2016-01-26 Richard Biener <rguenther@suse.de>
23464
23465 PR middle-end/69467
23466 * match.pd: Guard X * CST CMP 0 pattern with single_use.
23467
23468 2016-01-26 Richard Biener <rguenther@suse.de>
23469
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
23473 to ...
23474 (move_computations_worker): This.
23475 (move_computations): Perform an RPO rather than a DOM walk.
23476
23477 2016-01-26 Jakub Jelinek <jakub@redhat.com>
23478
23479 PR target/69442
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.
23485
23486 2016-01-26 Roger Ferrer Ibáñez <rofirrim@gmail.com>
23487
23488 PR target/67896
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.
23492
23493 2016-01-26 Richard Sandiford <richard.sandiford@arm.com>
23494
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.
23502
23503 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
23504 Sebastian Pop <s.pop@samsung.com>
23505
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.
23550 (nested_in): New.
23551 (loop_at): New.
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.
23595
23596 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
23597 Sebastian Pop <s.pop@samsung.com>
23598
23599 * Makefile.in: Set ISLVER in site.exp.
23600
23601 2016-01-25 Jakub Jelinek <jakub@redhat.com>
23602
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.
23606
23607 2016-01-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
23608
23609 * config/mips/mips.c (mips_compute_frame_info): Skip re-computing
23610 the frame info after reload completed.
23611
23612 2016-01-25 Jeff Law <law@redhat.com>
23613
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.
23629
23630 2016-01-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
23631
23632 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): Add
23633 decl with __attribute__ ((unused)) annotation.
23634
23635 2016-01-25 Ilya Enkovich <enkovich.gnu@gmail.com>
23636
23637 PR target/69421
23638 * tree-vect-stmts.c (vectorizable_condition): Check vectype
23639 of operands is compatible with a statement vectype.
23640
23641 2016-01-25 Eric Botcazou <ebotcazou@adacore.com>
23642
23643 * doc/extend.texi (scalar_storage_order type attribute): Fix typo and
23644 improve wording for mixed storage order support.
23645
23646 2016-01-25 Bilyan Borisov <bilyan.borisov@arm.com>
23647
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.
23658
23659 2016-01-25 Claudiu Zissulescu <claziss@synopsys.com>
23660
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.
23677
23678 2016-01-25 Richard Biener <rguenther@suse.de>
23679
23680 PR lto/69393
23681 * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
23682 * tree-streamer-out.c (pack_ts_base_value_fields): Stream
23683 DECL_NAMELESS.
23684 * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
23685
23686 2016-01-25 Richard Biener <rguenther@suse.de>
23687
23688 PR tree-optimization/69376
23689 * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
23690 flag.
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.
23698
23699 2016-01-25 Nick Clifton <nickc@redhat.com>
23700
23701 PR target/66655
23702 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.
23703
23704 2016-01-23 Tom de Vries <tom@codesourcery.com>
23705
23706 PR tree-optimization/69426
23707 * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
23708 removed clobber.
23709
23710 2016-01-23 Jakub Jelinek <jakub@redhat.com>
23711
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.
23726
23727 * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
23728 directly instead of building a temporary tree.
23729
23730 PR bootstrap/69434
23731 * genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
23732 remove <algorithm> include.
23733
23734 2016-01-22 Jakub Jelinek <jakub@redhat.com>
23735
23736 PR target/69432
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
23740 fixes.
23741 (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
23742 if dynamic_check != -1.
23743
23744 2016-01-21 Jeff Law <law@redhat.com>
23745
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.
23751
23752 2016-01-22 Richard Henderson <rth@redhat.com>
23753
23754 PR target/69416
23755 * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
23756 (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
23757
23758 2016-01-22 Michael Matz <matz@suse.de>
23759
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
23766 INCLUDE_STRING.
23767 * mem-stats.h (mem_usage::print_dash_line): Don't use std::string.
23768
23769 * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
23770 * common/config/aarch64/aarch64-common.c (toplevel): Ditto.
23771
23772 2016-01-22 Christian Bruel <christian.bruel@st.com>
23773
23774 PR target/68674
23775 * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.
23776
23777 2016-01-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23778
23779 PR target/69403
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.
23783
23784 2016-01-22 Kugan Vivekanandarajah <kuganv@linaro.org>
23785
23786 * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.
23787
23788 2016-01-22 Christian Bruel <christian.bruel@st.com>
23789
23790 * config/arm/arm-c.c (arm_pragma_target_parse):
23791 Remove warn_builtin_macro_redefined overwrite.
23792
23793 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
23794
23795 * ipa-inline.c (can_inline_edge_p): Back out overzealous check on
23796 flag_non_call_exceptions compatibility.
23797
23798 2016-01-22 Jakub Jelinek <jakub@redhat.com>
23799
23800 PR debug/66668
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.
23809
23810 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
23811
23812 * doc/extend.texi (scalar_storage_order type attribute): Document
23813 restriction on type punning and aliasing, and remove future tense.
23814
23815 2016-01-21 Roman Zhuykov <zhroma@ispras.ru>
23816
23817 PR target/69252
23818 * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
23819 first stage.
23820
23821 2016-01-21 Jeff Law <law@redhat.com>
23822
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
23829 vector.
23830
23831 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
23832
23833 * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
23834 Detangle.
23835 * configure: Regenerate.
23836
23837 2016-01-21 Pat Haugen <pthaugen@us.ibm.com>
23838
23839 * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
23840 * config/rs6000/driver-rs6000.c (struct asm_names): Likewise.
23841
23842 2016-01-21 Bernd Schmidt <bschmidt@redhat.com>
23843
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.
23851
23852 2016-01-21 Anton Blanchard <anton@samba.org>
23853 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
23854
23855 PR target/63354
23856 * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
23857 #define.
23858 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
23859 function.
23860
23861 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
23862
23863 * config/microblaze/microblaze.c
23864 (get_branch_target): New.
23865 (insert_wic_for_ilb_runout): New.
23866 (insert_wic): 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.
23874
23875 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
23876
23877 * config/microblaze/microblaze.h
23878 (FIXED_REGISTERS): Update in macro.
23879 (CALL_USED_REGISTERS): Update in macro.
23880
23881 2016-01-21 Yuri Rumyantsev <ysrumyan@gmail.com>
23882
23883 PR rtl-optimization/68920
23884 * ifcvt.c (cond_move_process_if_block): Limit number of conditional
23885 moves.
23886
23887 2016-01-21 Vladimir Makarov <vmakarov@redhat.com>
23888
23889 PR rtl-optimization/68990
23890 * lra-coalesce.c (lra_coalesce): Invalidate value for the result
23891 pseudo instead of inheritance ones.
23892
23893 2016-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
23894 Nick Clifton <nickc@redhat.com>
23895
23896 PR target/69129
23897 PR target/69012
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.
23901
23902 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
23903
23904 * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
23905 label reference.
23906 * configure: Regenerate.
23907
23908 2016-01-21 Richard Biener <rguenther@suse.de>
23909
23910 * graphite-optimize-isl.c (get_schedule_map): Fix typo.
23911
23912 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
23913
23914 * config/s390/s390.c (s390_asm_declare_function_size): Add code
23915 to actually emit the .size directive.
23916
23917 2016-01-21 Stefan Sørensen <stefan.sorensen@spectralink.com>
23918 Jakub Jelinek <jakub@redhat.com>
23919
23920 PR target/69187
23921 PR target/65624
23922 * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
23923 args array size by one to avoid buffer overflow.
23924
23925 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
23926
23927 * config/s390/s390.md (pool_section_start): Use switch_to_section
23928 to select proper read-only data section instead of hardcoding
23929 .rodata.
23930 (pool_section_end): Use switch_to_section to match the above.
23931
23932 2016-01-21 Richard Biener <rguenther@suse.de>
23933
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.
23938
23939 2016-01-21 Jakub Jelinek <jakub@redhat.com>
23940
23941 PR c++/69355
23942 * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
23943 for bitsize instead of GET_MODE_PRECISION (mode).
23944
23945 2016-01-20 Martin Sebor <msebor@redhat.com>
23946
23947 PR c/52291
23948 * extend.texi (__sync Builtins): Clarify the semantics of
23949 __sync_fetch_and_OP built-ins on pointers.
23950 (__atomic Builtins): Same.
23951
23952 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
23953 Sebastian Pop <s.pop@samsung.com>
23954
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.
23965
23966 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
23967 Sebastian Pop <s.pop@samsung.com>
23968
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.
23982
23983 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
23984 Sebastian Pop <s.pop@samsung.com>
23985
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.
23990
23991 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
23992 Sebastian Pop <s.pop@samsung.com>
23993
23994 * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
23995 Discard unstructured if-then-else regions.
23996
23997 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
23998 Sebastian Pop <s.pop@samsung.com>
23999
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.
24008
24009 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
24010 Sebastian Pop <s.pop@samsung.com>
24011
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.
24015
24016 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
24017 Sebastian Pop <s.pop@samsung.com>
24018
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.
24029
24030 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
24031 Sebastian Pop <s.pop@samsung.com>
24032
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.
24038
24039 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
24040 Sebastian Pop <s.pop@samsung.com>
24041
24042 * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
24043 isl_ast_node_mark.
24044
24045 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
24046 Sebastian Pop <s.pop@samsung.com>
24047
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.
24051
24052 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
24053 Sebastian Pop <s.pop@samsung.com>
24054
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.
24078
24079 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
24080
24081 * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
24082 requirements.
24083
24084 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
24085
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.
24095
24096 2016-01-21 Jakub Jelinek <jakub@redhat.com>
24097
24098 * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
24099 warning. Fix up formatting.
24100
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.
24106
24107 2016-01-20 Peter Bergner <bergner@vnet.ibm.com>
24108
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.
24128
24129 2016-01-20 David Edelsohn <dje.gcc@gmail.com>
24130
24131 PR target/68609
24132 * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
24133 domain check.
24134 * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
24135 for V4SFmode.
24136
24137 2016-01-20 Richard Henderson <rth@redhat.com>
24138
24139 PR bootstrap/69343
24140 PR bootstrap/69339
24141 PR tree-opt/68964
24142 Revert:
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.
24147
24148 2016-01-20 Christophe Lyon <christophe.lyon@linaro.org>
24149
24150 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
24151 (arm_fp_ok): Likewise.
24152 (arm_fp): Likewise.
24153 (arm_crypto): Likewise.
24154
24155 2016-01-20 Ilya Enkovich <enkovich.gnu@gmail.com>
24156 Richard Biener <rguenther@suse.de>
24157
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.
24162
24163 2016-01-20 Richard Biener <rguenther@suse.de>
24164
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.
24172
24173 2016-01-20 Jeff Law <law@redhat.com>
24174
24175 PR target/25114
24176 * config/m68k/predicates.md (pow2_m1_operand): New predicate
24177 extracted from ...
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.
24182
24183 2016-01-20 Jonathan Wakely <jwakely@redhat.com>
24184
24185 * doc/invoke.texi (Options Summary): Add '.' after @xref.
24186
24187 2016-01-19 Jeff Law <law@redhat.com>
24188
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.
24193
24194 2016-01-20 Kugan Vivekanandarajah <kuganv@linaro.org>
24195
24196 * doc/lto.texi: Remove text that says only Gold has linker plugin
24197 support.
24198
24199 2016-01-19 Eric Botcazou <ebotcazou@adacore.com>
24200
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
24208 modified_type_die.
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.
24228
24229 2016-01-19 Sandra Loosemore <sandra@codesourcery.com>
24230
24231 * doc/standards.texi: Copy-editing for grammar, markup, and sentence
24232 flow throughout the file. Fix broken link to Objective-C 2.0
24233 documentation.
24234 * doc/invoke.texi: More copy-editing; fix numerous typos and spelling
24235 errors.
24236
24237 2016-01-19 Wilco Dijkstra <wdijkstr@arm.com>
24238
24239 * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.
24240
24241 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
24242
24243 PR ipa/66223
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.
24248
24249 2016-01-19 Richard Biener <rguenther@suse.de>
24250
24251 * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
24252 (get_memory_order): Likewise.
24253
24254 2016-01-19 Kirill Yukhin <kirill.yukhin@intel.com>
24255
24256 * tree-vect-stmts.c (vectorizable_store): Check
24257 rhs vectype.
24258
24259 2016-01-19 David Malcolm <dmalcolm@redhat.com>
24260
24261 PR jit/68446
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.
24272
24273 2016-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24274
24275 PR target/69135
24276 * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
24277 attribute to unconditional. Remove %? from output template.
24278
24279 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
24280 Jiong Wang <jiong.wang@arm.com>
24281
24282 * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
24283 generated from different expand order.
24284
24285 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
24286
24287 * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
24288 Add support for CCMP costing.
24289
24290 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
24291
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.
24296 (fcmpe): Likewise.
24297 * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
24298 (aarch64_gen_ccmp_next): Add FP support.
24299
24300 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
24301
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.
24328
24329 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
24330
24331 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
24332 instrumented_version.
24333
24334 2016-01-19 Richard Biener <rguenther@suse.de>
24335
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.
24340
24341 2016-01-19 Jakub Jelinek <jakub@redhat.com>
24342
24343 PR debug/65779
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.
24353
24354 2016-01-19 Richard Biener <rguenther@suse.de>
24355
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.
24360
24361 2016-01-19 Bernd Schmidt <bschmidt@redhat.com>
24362
24363 * ira.c (ira): Update regstat data if we deleted insns.
24364
24365 2016-01-19 Jakub Jelinek <jakub@redhat.com>
24366
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.
24372
24373 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
24374
24375 PR lto/69133
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
24379 check.
24380
24381 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
24382
24383 * lto-streamer-out.c (lto_output): Do not stream instrumentation
24384 thunks.
24385
24386 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
24387
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.
24390
24391 2016-01-19 Martin Jambor <mjambor@suse.cz>
24392 Martin Liska <mliska@suse.cz>
24393 Michael Matz <matz@suse.de>
24394
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
24451 constructs.
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.
24518 * hsa.c: Likewise.
24519 * hsa.h: Likewise.
24520 * toplev.c (compile_file): Call hsa_output_brig.
24521 * hsa-regalloc.c: New file.
24522
24523 2016-01-18 Jeff Law <law@redhat.com>
24524
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.
24530
24531 * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
24532 test.
24533
24534 2016-01-18 Sandra Loosemore <sandra@codesourcery.com>
24535
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
24543 new section.
24544 (Developer Options): New section incorporating moved options.
24545 * doc/cppopts.texi (-dM): Update cross-reference.
24546
24547 2016-01-18 Richard Henderson <rth@redhat.com>
24548
24549 PR target/69176
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.
24561
24562 2016-01-18 Richard Biener <rguenther@suse.de>
24563
24564 PR tree-optimization/69297
24565 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
24566 stmt at most once.
24567 (vect_bb_vectorization_profitable_p): Clear visited flag again.
24568
24569 2016-01-18 Yuri Rumyantsev <ysrumyan@gmail.com>
24570
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
24581 valid type of VAL.
24582
24583 2016-01-18 Joseph Myers <joseph@codesourcery.com>
24584
24585 * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
24586 !TARGET_OCTEON.
24587
24588 2016-01-18 Richard Biener <rguenther@suse.de>
24589
24590 PR middle-end/69308
24591 * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.
24592
24593 2016-01-18 Tom de Vries <tom@codesourcery.com>
24594
24595 * passes.def: Add pass_parallelize_loops to pass_oacc_kernels.
24596
24597 2016-01-18 Tom de Vries <tom@codesourcery.com>
24598
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.
24617
24618 2016-01-18 Tom de Vries <tom@codesourcery.com>
24619
24620 * tree-parloops.c (pass_parallelize_loops::execute): Allow
24621 pass_parallelize_loops to be run outside the loop pipeline.
24622
24623 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
24624
24625 * tree-scalar-evolution.c (follow_copies_to_constant): New.
24626 (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
24627
24628 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
24629
24630 PR target/63679
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.
24635
24636 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
24637
24638 PR target/63679
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.
24651
24652 2016-01-18 Ilya Enkovich <enkovich.gnu@gmail.com>
24653
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.
24658
24659 2016-01-18 Richard Biener <rguenther@suse.de>
24660
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.
24664
24665 2016-01-18 Jakub Jelinek <jakub@redhat.com>
24666
24667 * haifa-sched.c (autopref_multipass_init): Work around
24668 -Wmaybe-uninitialized warning.
24669
24670 2016-01-18 Thomas Preud'homme <thomas.preudhomme@arm.com>
24671
24672 * config/arm/arm.c (thumb1_reorg): Check that the comparison is
24673 against the constant 0.
24674
24675 2016-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
24676
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.
24685
24686 2016-01-17 Jakub Jelinek <jakub@redhat.com>
24687
24688 * omp-low.c (mark_loops_in_oacc_kernels_region): Work around
24689 -Wmaybe-uninitialized warning.
24690
24691 2016-01-16 Sandra Loosemore <sandra@codesourcery.com>
24692
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.
24703
24704 2016-01-16 Tom de Vries <tom@codesourcery.com>
24705
24706 * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.
24707
24708 2016-01-16 Tom de Vries <tom@codesourcery.com>
24709
24710 * omp-low.c (expand_omp_atomic_fetch_op): Release defs of update stmt.
24711
24712 2016-01-16 Richard Sandiford <richard.sandiford@arm.com>
24713
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.
24718
24719 2016-01-15 David Malcolm <dmalcolm@redhat.com>
24720
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.
24725
24726 2016-01-15 Jeff Law <law@redhat.com>
24727
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.
24735
24736 2016-01-15 Vladimir Makarov <vmakarov@redhat.com>
24737
24738 PR rtl-optimization/69030
24739 * lra-spills.c (remove_pseudos): Check nrefs and make the function
24740 returning bool.
24741 (spill_pseudos): Delete debug insn for dead pseudo.
24742 (lra_spill): Initiate spill_hard_reg and slots memory separately.
24743
24744 2016-01-15 Jiong Wang <jiong.wang@arm.com>
24745
24746 * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
24747 New.
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
24774 conversion.
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.
24797
24798 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24799
24800 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
24801 CSEL of zero_extended registers.
24802
24803 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24804
24805 * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
24806 Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
24807
24808 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24809
24810 * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
24811 false when argument string is not found in the attributes table
24812 at all.
24813
24814 2016-01-15 David Edelsohn <dje.gcc@gmail.com>
24815
24816 PR target/68609
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.
24821
24822 2016-01-15 Richard Biener <rguenther@suse.de>
24823
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.
24835
24836 2016-01-15 Richard Biener <rguenther@suse.de>
24837
24838 PR debug/69137
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
24843 if necessary.
24844
24845 2016-01-15 Cesar Philippidis <cesar@codesourcery.com>
24846
24847 * gimplify.c (oacc_default_clause): Decode reference and pointer
24848 types for both kernels and parallel regions.
24849
24850 2016-01-15 Richard Sandiford <richard.sandiford@arm.com>
24851
24852 PR middle-end/69246
24853 * calls.c (emit_call_1): Force n_popped to zero for sibcalls.
24854
24855 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
24856
24857 * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
24858 (convert_scalars_to_vector): Likewise.
24859
24860 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
24861
24862 * doc/extend.texi (Type Traits): Fix grammar.
24863
24864 2016-01-15 Martin Jambor <mjambor@suse.cz>
24865
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
24873 padding.
24874
24875 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
24876
24877 * config/s390/s390.opt (mmvcle): More verbose help text.
24878
24879 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
24880
24881 * config/s390/s390.opt: Add period to -mzvector option text.
24882
24883 2016-01-15 Richard Biener <rguenther@suse.de>
24884
24885 PR tree-optimization/68961
24886 * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
24887 of invariants in stores again.
24888
24889 2016-01-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
24890
24891 * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.
24892
24893 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
24894
24895 * config/i386/i386.c (ix86_expand_branch): Don't split
24896 DI mode xor instruction to SI mode.
24897
24898 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
24899
24900 PR ipa/68148
24901 * ipa-icf.c (sem_function::merge): Virtual functions may become
24902 reachable even if they address is not taken and there are no
24903 idrect calls.
24904
24905 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
24906
24907 * lto-streamer-out.c (subtract_estimated_size): New function.
24908 (get_symbol_initial_value): Use it.
24909
24910 2016-01-15 Christian Bruel <christian.bruel@st.com>
24911
24912 PR target/65837
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.
24924
24925 2016-01-15 Richard Biener <rguenther@suse.de>
24926
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.
24932
24933 2016-01-14 Jeff Law <law@redhat.com>
24934
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.
24940
24941 2016-01-14 Richard Henderson <rth@redhat.com>
24942
24943 PR rtl-opt/69014
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.
24948
24949 2016-01-14 Michael Meissner <meissner@linux.vnet.ibm.com>
24950
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.
24956
24957 2016-01-14 Jeff Law <law@redhat.com>
24958
24959 * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
24960 typo.
24961
24962 2016-01-14 Richard Henderson <rth@redhat.com>
24963
24964 PR c/69272
24965 PR tree-opt/68964
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.
24969
24970 2016-01-14 Nicklas Bo Jensen <nbjensen@gmail.com>
24971
24972 * doc/loop.texi (Loop Analysis and Representation): Document
24973 loop_depth function.
24974
24975 2016-01-14 Tom de Vries <tom@codesourcery.com>
24976
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.
24982
24983 2016-01-14 Jakub Jelinek <jakub@redhat.com>
24984
24985 PR debug/69244
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.
24990
24991 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
24992
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.
25004
25005 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
25006
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.
25013
25014 2016-01-14 Jan Hubicka <hubicka@ucw.cz>
25015
25016 * alias.c (compare_base_symbol_refs): New function.
25017 (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
25018 it.
25019
25020 2016-01-14 Jakub Jelinek <jakub@redhat.com>
25021
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.
25035
25036 2016-01-14 Richard Biener <rguenther@suse.de>
25037
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.
25042
25043 2016-01-14 Jakub Jelinek <jakub@redhat.com>
25044
25045 PR target/68269
25046 * combine.c (expand_field_assignment): Punt if compute_mode is
25047 unsupported scalar mode.
25048
25049 2016-01-14 Richard Biener <rguenther@suse.de>
25050
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.
25055
25056 2016-01-14 Jeff Law <law@redhat.com>
25057
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.
25062
25063 2016-01-13 Jan Hubicka <hubicka@ucw.cz>
25064
25065 PR ipa/66487
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.
25069
25070 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
25071
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.
25075 Update references.
25076
25077 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
25078
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.
25082
25083 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
25084
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.
25088
25089 2016-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
25090
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.
25095
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.
25101
25102 * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
25103 (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
25104 functions
25105 (RS6000_BTM_COMMON): Likewise.
25106
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.
25119
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.
25123
25124 * doc/extend.texi (PowerPC Built-in Functions): Document
25125 __builtin_pack_ibm128 and __builtin_unpack_ibm128.
25126
25127 2016-01-13 Bernd Schmidt <bschmidt@redhat.com>
25128
25129 PR c/66208
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.
25137
25138 2016-01-13 Jakub Jelinek <jakub@redhat.com>
25139
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.
25146
25147 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
25148
25149 * doc/extend.texi (__atomic Builtins): Clarify compare_exchange
25150 effects.
25151
25152 2016-01-13 Richard Henderson <rth@redhat.com>
25153
25154 PR tree-opt/68964
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.
25163
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
25169 via target hook.
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.
25177
25178 2016-01-13 Uros Bizjak <ubizjak@gmail.com>
25179
25180 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
25181 TARGET_SSE_MATH without TARGET_SSE2. Rewrite.
25182
25183 2016-01-13 Tom de Vries <tom@codesourcery.com>
25184
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.
25190
25191 2016-01-13 Yvan Roux <yvan.roux@linaro.org>
25192
25193 * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
25194 and "armv8.1-a+crc" entries.
25195
25196 2016-01-13 Alexander Fomin <alexander.fomin@intel.com>
25197
25198 PR target/69228
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.
25211
25212 2016-01-13 Richard Biener <rguenther@suse.de>
25213
25214 PR tree-optimization/69013
25215 * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
25216 Exchange assert for a test.
25217
25218 2016-01-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
25219
25220 PR target/69247
25221 * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.
25222
25223 2016-01-13 Richard Biener <rguenther@suse.de>
25224
25225 PR tree-optimization/69242
25226 * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
25227 assert with a check.
25228
25229 2016-01-13 Richard Biener <rguenther@suse.de>
25230
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.
25234
25235 2016-01-12 Jeff Law <law@redhat.com>
25236
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
25244 needed.
25245
25246 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
25247
25248 * doc/invoke.texi (Spec Files): Move section down in file, past
25249 all command-line option descriptions.
25250
25251 2016-01-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25252
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.
25259
25260 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
25261
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.
25267
25268 2016-01-12 Jeff Law <law@redhat.com>
25269
25270 * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
25271
25272 2016-01-12 Olivier Hainque <hainque@adacore.com>
25273
25274 * gcc.c (spec_undefvar_allowed): New global.
25275 (process_command): Set to true when running for --version or --help,
25276 alone or together.
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
25279 a fatal error.
25280
25281 2016-01-12 Bin Cheng <bin.cheng@arm.com>
25282
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".
25286
25287 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
25288
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.
25293
25294 2016-01-12 Christian Bruel <christian.bruel@st.com>
25295
25296 PR target/69180
25297 * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
25298 for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.
25299
25300 2016-01-12 Jakub Jelinek <jakub@redhat.com>
25301
25302 PR target/69198
25303 * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
25304 aligned_mem is properly set for AVX512-VL floating point masked
25305 stores.
25306
25307 PR target/69175
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.
25310
25311 2016-01-12 H.J. Lu <hongjiu.lu@intel.com>
25312
25313 PR target/68456
25314 PR target/69226
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.
25320
25321 2016-01-12 Richard Biener <rguenther@suse.de>
25322
25323 PR tree-optimization/69053
25324 * tree-vect-loop.c (get_initial_def_for_reduction): Properly
25325 convert initial value for cond reductions.
25326
25327 2016-01-12 Richard Biener <rguenther@suse.de>
25328
25329 PR tree-optimization/69007
25330 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
25331 widen_sum after dot_prod and sad.
25332
25333 2016-01-12 Richard Biener <rguenther@suse.de>
25334
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.
25340
25341 2016-01-12 Richard Biener <rguenther@suse.de>
25342
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.
25354
25355 2016-01-12 Richard Biener <rguenther@suse.de>
25356
25357 PR tree-optimization/69174
25358 * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
25359 space.
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.
25363
25364 2016-01-12 Andris Pavenis <andris.pavenis@iki.fi>
25365
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
25385
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.
25397
25398 * config/i386/djgpp.c: New file. Add implementation of
25399 i386_djgpp_asm_named_section.
25400
25401 * config/i386/djgpp.opt: Remove obsolete option -mbnu210.
25402
25403 * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
25404 Add rule for building djgpp.o.
25405
25406 2016-01-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
25407
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.
25411
25412 2016-01-11 John David Anglin <danglin@gcc.gnu.org>
25413
25414 * config/pa/pa.c (pa_emit_move_sequence): Handle floating point
25415 reloads for other unsupported memory operands.
25416
25417 2016-01-12 Kugan Vivekanandarajah <kuganv@linaro.org>
25418 Jim Wilson <jim.wilson@linaro.org>
25419
25420 PR target/69194
25421 * config/arm/arm-builtins.c (arm_expand_neon_args): Call
25422 copy_to_mode_reg instead of force_reg.
25423
25424 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
25425
25426 PR target/69225
25427 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
25428 TARGET_80387 is true.
25429
25430 2016-01-11 Jakub Jelinek <jakub@redhat.com>
25431
25432 PR target/69071
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.
25437
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.
25443
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.
25447 Formatting fix.
25448
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.
25454
25455 2016-01-11 Richard Biener <rguenther@suse.de>
25456
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.
25460
25461 2016-01-11 Uros Bizjak <ubizjak@gmail.com>
25462
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.
25468
25469 2016-01-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25470
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.
25476
25477 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
25478
25479 * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
25480 (<avx512>_store<mode>_mask): Likewise.
25481
25482 2016-01-11 Bernd Schmidt <bschmidt@redhat.com>
25483 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25484
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.
25493
25494 2016-01-11 Tom de Vries <tom@codesourcery.com>
25495
25496 PR tree-optimization/69069
25497 * tree-parloops.c (create_parallel_loop): Add missing phi args.
25498
25499 2016-01-11 Yuri Rumyantsev <ysrumyan@gmail.com>
25500
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
25509 RTL if-conversion.
25510 * doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
25511 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
25512 conditionl moves.
25513
25514 2016-01-11 Alexandre Oliva <aoliva@redhat.com>
25515
25516 PR bootstrap/69123
25517 * var-tracking.c (drop_overlapping_mem_locs): Operate on all
25518 onepart vars. Fix typo in comment. Fix reversed condition in
25519 unshare test.
25520 (dataflow_set_remove_mem_locs): Operate on all onepart vars.
25521
25522 PR bootstrap/69123
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.
25527
25528 2016-01-11 Ilya Enkovich <enkovich.gnu@gmail.com>
25529
25530 PR target/69010
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.
25536
25537 2016-01-11 Martin Jambor <mjambor@suse.cz>
25538
25539 PR ipa/69044
25540 * ipa-cp.c (estimate_local_effects): Do not clone for removal of
25541 useless parameters if we cannot change function signature.
25542
25543 2016-01-11 Martin Jambor <mjambor@suse.cz>
25544
25545 PR ipa/66616
25546 * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
25547 flag.
25548
25549 2016-01-11 Tom de Vries <tom@codesourcery.com>
25550
25551 PR tree-optimization/69109
25552 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
25553 latch with phi.
25554
25555 2016-01-11 Tom de Vries <tom@codesourcery.com>
25556
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.
25560
25561 2016-01-11 Yury Gribov <y.gribov@samsung.com>
25562
25563 PR 67425
25564 * common.opt (frandom-seed): Fix parameter name.
25565 * doc/invoke.texi (frandom-seed): Ditto and describe parameter.
25566
25567 2016-01-11 Tom de Vries <tom@codesourcery.com>
25568
25569 PR tree-optimization/69058
25570 * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
25571 not supported.
25572
25573 2016-01-11 Andrew Burgess <andrew.burgess@embecosm.com>
25574
25575 * config/arc/arc.opt (mdiv-rem): Add period to the end.
25576 (mcode-density): Likewise.
25577
25578 2016-01-10 Tom de Vries <tom@codesourcery.com>
25579
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
25583 arg.
25584
25585 2016-01-10 Tom de Vries <tom@codesourcery.com>
25586
25587 PR tree-optimization/69039
25588 * tree-parloops.c (try_create_reduction_list): Only allow single exit
25589 phi for reduction.
25590
25591 2016-01-09 John David Anglin <danglin@gcc.gnu.org>
25592
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.
25596
25597 2016-01-09 Gerald Pfeifer <gerald@pfeifer.com>
25598
25599 * configure.ac (isl_options_set_schedule_serialize_sccs): Also
25600 use GMPINC.
25601 * configure: Regenerate.
25602
25603 2016-01-09 Jakub Jelinek <jakub@redhat.com>
25604
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.
25618
25619 2016-01-09 Jan Hubicka <hubicka@ucw.cz>
25620
25621 * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
25622 w/o DECL_NAME.
25623
25624 2016-01-08 Jakub Jelinek <jakub@redhat.com>
25625
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
25629 ops[0] comparison.
25630 * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
25631
25632 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
25633 Richard Biener <rguenther@suse.de>
25634
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.
25638
25639 2016-01-08 Uros Bizjak <ubizjak@gmail.com>
25640
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.
25645
25646 2016-01-08 Jason Merrill <jason@redhat.com>
25647
25648 PR c++/68983
25649 PR c++/67557
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.
25655
25656 2016-01-08 Olivier Hainque <hainque@adacore.com>
25657
25658 * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
25659 libc_internal.
25660
25661 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
25662
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.
25669
25670 2016-01-08 Jakub Jelinek <jakub@redhat.com>
25671
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.
25679
25680 PR tree-optimization/69172
25681 * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
25682 gimple_build.
25683
25684 2016-01-08 Thomas Preud'homme <thomas.preudhomme@arm.com>
25685
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.
25691
25692 2016-01-08 Jakub Jelinek <jakub@redhat.com>
25693
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.
25699
25700 2016-01-08 Segher Boessenkool <segher@kernel.crashing.org>
25701
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.
25708
25709 2016-01-07 Martin Sebor <msebor@redhat.com>
25710
25711 PR c/68966
25712 * doc/extend.texi (__atomic Builtins, __sync Builtins): Document
25713 constraint on the type of arguments.
25714
25715 2016-01-07 Andreas Tobler <andreast@gcc.gnu.org>
25716
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.
25722
25723 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
25724
25725 PR target/69140
25726 * config/i386/i386.c (ix86_frame_pointer_required): Enable
25727 frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
25728
25729 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
25730
25731 Revert
25732 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
25733
25734 PR target/69140
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.
25738
25739 2016-01-07 Sandra Loosemore <sandra@codesourcery.com>
25740
25741 PR 1078
25742 * doc/extend.texi (Nvidia PDX Function Attributes): New section.
25743
25744 2016-01-07 H.J. Lu <hongjiu.lu@intel.com>
25745
25746 PR target/69171
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):
25750 Likewise.
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
25759 predicate.
25760
25761 2015-12-15 Bernd Schmidt <bschmidt@redhat.com>
25762
25763 PR middle-end/67639
25764 * varasm.c (make_decl_rtl): Mark invalid register vars as
25765 DECL_EXTERNAL.
25766
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.
25770
25771 2016-01-07 Jakub Jelinek <jakub@redhat.com>
25772
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 ().
25778
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.
25782
25783 2016-01-06 Robert Suchanek <robert.suchanek@imgtec.com>
25784
25785 * config/mips/mips-ftypes.def: Sort to lexicographical order.
25786
25787 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
25788
25789 PR target/69140
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.
25793
25794 2015-01-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
25795
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.
25805
25806 2016-01-06 Marek Polacek <polacek@redhat.com>
25807
25808 PR sanitizer/69099
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.
25814
25815 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
25816
25817 PR 1078
25818 * doc/extend.texi (RL78 Variable Attributes): New section.
25819
25820 2016-01-05 Marek Polacek <polacek@redhat.com>
25821
25822 PR c/69104
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.
25829
25830 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
25831
25832 PR target/68991
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
25837 vector_operand.
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.
25845
25846 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
25847
25848 PR target/68991
25849 * config/i386/constraints.md (Bm): New constraint.
25850 * config/i386/predicates.md (vector_memory_operand): New
25851 predicate.
25852 * config/i386/sse.md: Replace xm with xBm in plusminus and
25853 any_logic patterns.
25854
25855 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
25856
25857 PR 1078
25858 * doc/extend.texi (V850 Function Attributes): New section.
25859 (V850 Variable Attributes): New section.
25860
25861 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
25862
25863 PR 1078
25864 * doc/extend.texi (MicroBlaze Function Attributes): Document
25865 interrupt_handler and fast_interrupt attributes.
25866
25867 2016-01-05 Sergei Trofimovich <siarheit@google.com>
25868
25869 PR other/60465
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
25873 predicate.
25874
25875 2016-01-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25876
25877 PR rtl-optimization/68651
25878 * combine.c (combine_simplify_rtx): Canonicalize x + x into
25879 x << 1.
25880
25881 2016-01-05 Nathan Sidwell <nathan@acm.org>
25882
25883 * alias.c (compare_base_decls): Use symtab_node::get.
25884
25885 2016-01-05 Nick Clifton <nickc@redhat.com>
25886
25887 PR target/68770
25888 * ira-costs.c (copy_cost): Initialise the t_icode field of the
25889 secondary_reload_info structure.
25890
25891 PR target/66655
25892 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
25893 decls if weak support is available.
25894
25895 2016-01-04 Martin Sebor <msebor@redhat.com>
25896
25897 * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.
25898
25899 2016-01-04 Michael Meissner <meissner@linux.vnet.ibm.com>
25900
25901 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
25902 OPTION_MASK_P9_DFORM.
25903
25904 * config/rs6000/constraints.md (wo constraint): New constraint for
25905 ISA 3.0 (power9).
25906
25907 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
25908 for wo constraint.
25909 (rs6000_init_hard_regno_mode_ok): Likewise.
25910
25911 * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
25912 wo constraint.
25913
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.
25923
25924 * doc/md.texi (RS/6000 constraints): Document wo constraint.
25925
25926 2016-01-04 Jakub Jelinek <jakub@redhat.com>
25927
25928 Update copyright years.
25929
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.
25942
25943 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
25944
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.
25947
25948 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
25949
25950 PR target/69100
25951 * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
25952 mode for %f0-%f31 only if TARGET_FPU.
25953
25954 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
25955
25956 PR target/69072
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.
25960
25961 2016-01-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
25962
25963 * doc/install.texi (--with-multilib-list): Describe the meaning of the
25964 option for arm*-*-* targets.
25965
25966 2016-01-03 Sandra Loosemore <sandra@codesourcery.com>
25967
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
25974 attribute docs.
25975
25976 2016-01-03 Vladimír Čunát <vcunat@gmail.com>
25977
25978 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix
25979 -finite-math typo.
25980 (x86 Options): Likewise.
25981
25982 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
25983
25984 PR 1078
25985
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.
25989
25990 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
25991
25992 * doc/extend.texi (Common Function Attributes) <noplt>: Move
25993 to correct alphabetization of table. Copy-edit and correct
25994 markup.
25995 <stack_protect>: Likewise.
25996 <target_clones>: Likewise.
25997 <simd>: Likewise.
25998 * doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>:
25999 Correct punctuation.
26000 (Code Gen Options) <-fno-plt>: Copy-edit.
26001
26002 2016-01-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
26003
26004 PR target/68917
26005 * config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of
26006 SI values. Explicitly convert SI to DI and vice-versa.
26007
26008 2016-01-01 Jakub Jelinek <jakub@redhat.com>
26009
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.
26013
26014 PR sanitizer/69055
26015 * ubsan.c (ubsan_instrument_float_cast): Call
26016 initialize_sanitizer_builtins.
26017
26018 PR target/69015
26019 * ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).
26020 \f
26021 Copyright (C) 2016 Free Software Foundation, Inc.
26022
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.