]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/ChangeLog
EVRP - Push op1 value range before pushing op0 value range.
[thirdparty/gcc.git] / gcc / ChangeLog
1 2016-10-12 Richard Biener <rguenther@suse.de>
2
3 * tree-vrp.c (evrp_dom_walker::try_find_new_range): Renamed from
4 try_add_new_range and made to eturn new range.
5 (evrp_dom_walker::before_dom_children): Push op1 value range before
6 pushing op0 value range.
7
8 2016-10-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9
10 PR tree-optimization/77937
11 * gimple-ssa-strength-reduction.c (analyze_increments): Use
12 POINTER_TYPE_P on the candidate type to determine whether
13 candidates in this chain require pointer arithmetic.
14
15 2016-10-12 Eric Botcazou <ebotcazou@adacore.com>
16
17 * config/visium/visium.c (visium_gimplify_va_arg): Emit a big-endian
18 correction if the type is smaller than a word.
19 (visium_select_cc_mode): Add ... fall through ... comment.
20
21 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
22
23 * config/rs6000/rs6000.c (machine_function): Add new fields
24 gpr_is_wrapped_separately and lr_is_wrapped_separately.
25 (TARGET_SHRINK_WRAP_GET_SEPARATE_COMPONENTS,
26 TARGET_SHRINK_WRAP_COMPONENTS_FOR_BB,
27 TARGET_SHRINK_WRAP_DISQUALIFY_COMPONENTS,
28 TARGET_SHRINK_WRAP_EMIT_PROLOGUE_COMPONENTS,
29 TARGET_SHRINK_WRAP_EMIT_EPILOGUE_COMPONENTS,
30 TARGET_SHRINK_WRAP_SET_HANDLED_COMPONENTS): Define.
31 (rs6000_get_separate_components): New function.
32 (rs6000_components_for_bb): New function.
33 (rs6000_disqualify_components): New function.
34 (rs6000_emit_prologue_components): New function.
35 (rs6000_emit_epilogue_components): New function.
36 (rs6000_set_handled_components): New function.
37 (rs6000_emit_prologue): Don't emit LR save if lr_is_wrapped_separately.
38 Don't emit GPR saves if gpr_is_wrapped_separately for that register.
39 (restore_saved_lr): Don't restore LR if lr_is_wrapped_separately.
40 (rs6000_emit_epilogue): Don't emit GPR restores if
41 gpr_is_wrapped_separately for that register. Don't make a
42 REG_CFA_RESTORE note for registers we did not restore, either.
43
44 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
45
46 * function.c (thread_prologue_and_epilogue_insns): Call
47 try_shrink_wrapping_separate. Compute the prologue_seq afterwards,
48 if it has possibly changed. Compute the split_prologue_seq and
49 epilogue_seq later, too.
50 * shrink-wrap.c: #include cfgbuild.h and insn-config.h.
51 (dump_components): New function.
52 (struct sw): New struct.
53 (SW): New function.
54 (init_separate_shrink_wrap): New function.
55 (fini_separate_shrink_wrap): New function.
56 (place_prologue_for_one_component): New function.
57 (spread_components): New function.
58 (disqualify_problematic_components): New function.
59 (emit_common_heads_for_components): New function.
60 (emit_common_tails_for_components): New function.
61 (insert_prologue_epilogue_for_components): New function.
62 (try_shrink_wrapping_separate): New function.
63 * shrink-wrap.h: Declare try_shrink_wrapping_separate.
64
65 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
66
67 * regrename.c (build_def_use): Invalidate chains that have a
68 REG_CFA_RESTORE on some instruction.
69
70 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
71
72 * dce.c (delete_unmarked_insns): Don't delete instructions with
73 a REG_CFA_RESTORE note.
74
75 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
76
77 * common.opt (-fshrink-wrap-separate): New flag.
78 * doc/invoke.texi: Document it.
79 * doc/tm.texi.in (Shrink-wrapping separate components): New subsection.
80 * doc/tm.texi: Regenerate.
81 * emit-rtl.h (struct rtl_data): New field shrink_wrapped_separate.
82 * target.def (shrink_wrap): New hook vector.
83 (get_separate_components, components_for_bb, disqualify_components,
84 emit_prologue_components, emit_epilogue_components,
85 set_handled_components): New hooks.
86
87 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
88
89 * config/rs6000/rs6000.c (rs6000_return_in_memory): Warn for
90 vector return by reference only if -Wpsabi.
91 (rs6000_pass_by_reference): Similarly, for argument passing.
92
93 2016-10-12 David Malcolm <dmalcolm@redhat.com>
94
95 * function-tests.c: Include "print-rtl.h".
96 (selftest::test_expansion_to_rtl): Call print_rtx_function on the
97 function, and verify what is dumped.
98 * print-rtl-function.c (print_edge): New function.
99 (begin_any_block): New function.
100 (end_any_block): New function.
101 (can_have_basic_block_p): New function.
102 (print_rtx_function): Track the basic blocks of insns in the
103 chain, wrapping those that are within blocks within "(block)"
104 directives. Remove the "(cfg)" directive.
105
106 2016-10-12 David Malcolm <dmalcolm@redhat.com>
107
108 * selftest.c (selftest::read_file): New function.
109 (selftest::test_read_file): New function.
110 (selftest::selftest_c_tests): Call test_read_file.
111 * selftest.h (selftest::read_file): New decl.
112
113 2016-10-12 Richard Biener <rguenther@suse.de>
114
115 PR debug/77947
116 * cgraphunit.c (analyze_functions): Preserve cgraph nodes
117 function context.
118
119 2016-10-12 Thomas Schwinge <thomas@codesourcery.com>
120
121 * lto-streamer.c: Fix LTO_STREAMER_DEBUG build.
122
123 * dwarf2out.c (dwarf2_lineno_debug_hooks): Use
124 dwarf2out_assembly_start.
125
126 * Makefile.in (SELFTEST_FLAGS): Add -nostdinc.
127
128 * Makefile.in (SELFTEST_FLAGS): New variable.
129 (s-selftest, selftest-gdb, selftest-valgrind): Use it.
130
131 * vmsdbgout.c (vmsdbg_debug_hooks): Add filename parameter to
132 early_finish hook.
133
134 2016-10-12 Georg-Johann Lay <avr@gjlay.de>
135
136 * rtl.h (struct rtx_def): Comment how RTX_FLAGS will be
137 dumped in RTL dumps.
138
139 2016-10-12 Martin Liska <mliska@suse.cz>
140
141 * gimple-fold.c (create_tmp_reg_or_ssa_name): New function.
142 (gimple_fold_builtin_memory_op): Use the function.
143 (gimple_fold_builtin_strchr): Likewise.
144 (gimple_fold_builtin_strcat): Likewise.
145 (gimple_build): Likewise.
146
147 2016-10-12 Nathan Sidwell <nathan@acm.org>
148
149 * diagnostic.c (diagnostc_report_diagnostic): Fix formatting.
150
151 2016-10-12 Pierre-Marie de Rodat <derodat@adacore.com>
152
153 * dwarf2out.c (int_loc_descriptor): Generate opcodes for another
154 equivalent 32-bit constant (modulo 2**32) when that yields
155 smaller instructions.
156 (size_of_int_loc_descriptor): Update accordingly.
157
158 2016-10-12 Pierre-Marie de Rodat <derodat@adacore.com>
159
160 * dwarf2out.c (dwarf2out_early_global_decl): For nested
161 functions, call dwarf2out_decl on the parent function first.
162
163 2016-10-12 Richard Biener <rguenther@suse.de>
164
165 * match.pd ((X /[ex] A) * A -> X): Remove unnecessary constraint
166 on the conversion.
167
168 2016-10-12 Richard Biener <rguenther@suse.de>
169
170 * tree-ssa-propagate.c
171 (substitute_and_fold_dom_walker::before_dom_children): Do not
172 ignore ASSERT_EXPRs but only preserve them.
173 * tree-vrp.c (remove_range_assertions): Deal with ASSERT_EXPRs
174 that have been propagated into.
175 (vrp_finalize): Enable DCE for substitute_and_fold.
176
177 2016-10-12 Richard Biener <rguenther@suse.de>
178
179 PR tree-optimization/77920
180 * tree-vrp.c (simplify_div_or_mod_using_ranges): Simplify.
181 (simplify_min_or_max_using_ranges): Pass in gsi and use it.
182 (simplify_abs_using_ranges): Likewise.
183 (simplify_conversion_using_ranges): Likewise.
184 (simplify_stmt_using_ranges): Adjust.
185
186 2016-10-12 Jakub Jelinek <jakub@redhat.com>
187
188 PR tree-optimization/77929
189 * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Handle
190 (*ops)[ranges[i].idx]->op != ranges[i].exp case.
191
192 2016-10-12 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
193
194 PR target/77934
195 * config/rs6000/vmx.md (vsx_concat_<mode>): The mtvsrdd instruction
196 needs a base register for arg 1.
197
198 2016-10-12 Jakub Jelinek <jakub@redhat.com>
199
200 * common.opt (Wimplicit-fallthrough) Turn into alias to
201 -Wimplicit-fallthrough=3. Remove EnabledBy.
202 (Wimplicit-fallthrough=): New option.
203 * gimplify.c (warn_implicit_fallthrough_r): Use
204 OPT_Wimplicit_fallthrough_ instead of OPT_Wimplicit_fallthrough.
205 * doc/invoke.texi (-Wimplicit-fallthrough): Document as alias
206 to -Wimplicit-fallthrough=3.
207 (-Wimplicit-fallthrough=): Document.
208
209 2016-10-11 Eric Botcazou <ebotcazou@adacore.com>
210
211 * config/sparc/sparc.c (emit_scc_insn): Remove direct support for EQ
212 and GEU in DImode if TARGET_SUBXC.
213 * config/sparc/sparc.md (seqdi<W:mode>_zero): Remove TARGET_SUBXC.
214 (seqdi<W:mode>_zero_subxc): Delete.
215 (neg_seqdi<W:mode>_zero): Remove TARGET_VIS3.
216 (neg_seqdi<W:mode>_zero_vis3): Delete.
217 (plus_seqdi<W:mode>_zero): Likewise.
218 (minus_seqdi<W:mode>_zero): Likewise.
219 (plus_plus_sltu<W:mode>): Accept only register.
220 (addx<W:mode>): Likewise.
221 (plus_sltu<W:mode>_vis3): Likewise.
222 (plus_plus_sltu<W:mode>_vis3): Likewise.
223 (neg_sgeu<W:mode>_vis3): Delete.
224 (minus_sgeu<W:mode>_vis3): Likewise.
225 (addxc<W:mode>): Accept only registers.
226 (neg_sltu<W:mode>_subxc): Write %%g0 instead of 0.
227 (minus_neg_sltu<W:mode>_subxc): Accept only register.
228 (neg_plus_sltu<W:mode>_subxc): Likewise.
229 (minus_sltu<W:mode>_subxc): Write %%g0 instead of 0.
230 (minus_minus_sltu<W:mode>_subxc): Accept only register.
231 (sgeu<W:mode>_insn_subxc): Delete.
232 (plus_sgeu<W:mode>_subxc): Likewise.
233 (subxc<W:mode>): Accept only register.
234 (scc splitter): Split always GEU again.
235
236 2016-10-11 Jeff Law <law@redhat.com>
237
238 PR tree-optimization/77424
239 * tree-ssa-threadupdate.c (thread_through_all_blocks): Remove
240 dead conditionals. Assert that all e->aux fields are NULL.
241
242 2016-10-11 David Malcolm <dmalcolm@redhat.com>
243
244 * print-rtl.c (print_rtx): Rename "i" to "idx". Split out the
245 operand-printing "switch" statement into...
246 (print_rtx_operand_code_0): ...this new function, ...
247 (print_rtx_operand_code_e): ...this new function, ...
248 (print_rtx_operand_codes_E_and_V): ...this new function, ...
249 (print_rtx_operand_code_i): ...this new function, ...
250 (print_rtx_operand_code_r): ...this new function, ...
251 (print_rtx_operand_code_u): ...this new function, ...
252 (print_rtx_operand): ...and this new function.
253
254 2016-10-11 Uros Bizjak <ubizjak@gmail.com>
255
256 * config/alpha/alpha-passes.def: New file.
257 * config/alpha/t-alpha: New file.
258 * config/alpha/alpha-protos.h (gcc::context, rtl_opt_pass): Declare.
259 (make_pass_handle_trap_shadows): New prototype.
260 (make_pass_align_insns): Ditto.
261 * config/alpha/alpha.c (alpha_option_override): Don't register
262 passes here.
263 * config.gcc (alpha*-*-*) Add alpha/t-alpha to tmake_file.
264
265 2016-10-11 Michael Meissner <meissner@linux.vnet.ibm.com>
266
267 PR target/77924
268 * config/rs6000/rs6000.c (rs6000_init_builtins): Only create the
269 distinct __ibm128 IBM extended double type if long doubles are
270 128-bits and the default format for long double is IEEE 128-bit.
271
272 2016-10-11 Richard Biener <rguenther@suse.de>
273
274 * dwarf2out.c (DEBUG_STR_OFFSETS_SECTION): Remove conditional.
275 (init_sections_and_labels): Use DEBUG_DWO_STR_OFFSETS_SECTION.
276 (verify_die): New function.
277 (dwarf2out_finish): Call it.
278 (output_line_info): Handle case of -gsplit-dwarf without
279 DWARF2_ASM_LINE_DEBUG_INFO.
280
281 2016-10-11 Richard Biener <rguenther@suse.de>
282
283 PR debug/77931
284 * gimple-low.c (lower_gimple_bind): Handle arbitrary common
285 sub-chains of BLOCK_VARS and gimple_bind_vars.
286
287 2016-10-11 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
288
289 * config/i386/znver1.md : Fix imov/imovx load type reservations.
290
291 2016-10-11 Eric Botcazou <ebotcazou@adacore.com>
292
293 * config/sparc/sparc.opt (msubxc): New option.
294 * doc/invoke.texi (SPARC options): Document it and tidy up.
295 * doc/tm.texi.in (Condition Codes): Adjust SPARC example.
296 * doc/tm.texi: Regenerate.
297 * config/sparc/sparc-modes.def (CC_NOOV): Rename into...
298 (CCNZ): ...this.
299 (CCX_NOOV): Rename into...
300 (CCXNZ): ...this.
301 (CCC): New.
302 (CCXC): Likewise.
303 * config/sparc/predicates.m (fcc_register_operand): Simplify.
304 (fcc0_register_operand): Likewise.
305 (icc_register_operand): New.
306 (icc_or_fcc_register_operand): Simplify.
307 (nz_comparison_operator): New.
308 (c_comparison_operator): Likewise.
309 (noov_compare_operator): Rename into...
310 (icc_comparison_operator): ...this. Use above predicates.
311 (noov_compare64_operator): Rename into...
312 (v9_comparison_operator): ...this and tidy up.
313 (fcc_comparison_operator): New.
314 (icc_or_fcc_comparison_operator): Likewise.
315 (v9_register_compare_operator): Rename info...
316 (v9_register_comparison_operator): ...this.
317 * config/sparc/sparc.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
318 (sparc_option_override): Remove redundant VIS masks and add MASK_SUBXC
319 for Niagara-7.
320 (sparc_fixed_condition_code_regs): New function.
321 (select_cc_mode): Remove ATTRIBUTE_UNUSED. Adjust for CCNZ/CCXNZ
322 renaming and add support for CCC/CCXC.
323 (output_cbranch): Likewise.
324 (sparc_print_operand): Likewise.
325 (gen_v9_scc): Remove obsolete assertion.
326 (emit_scc_insn): Emit RTL directly for EQ and NE. Add direct support
327 for EQ in DImode if TARGET_SUBXC. Remove test on TARGET_VIS3 for GEU.
328 (output_cbcond): Remove bogus handling of CC modes.
329 (sparc_register_move_cost): Return 100 for NO_REGS.
330 * config/sparc/sparc.md (W): New mode iterator.
331 (length): Adjust for noov_compare64_operator renaming.
332 (cmpsi_sne): New instruction.
333 (cmpdi_sne): Likewise.
334 (seqdi_special): Delete.
335 (seqdi_special): Likewise.
336 (snesi<P:mode>_special): Likewise.
337 (snedi_special): Likewise.
338 (snedi_special_vis3): Likewise.
339 (snesi patterns): Use W iterator.
340 (snedi patterns): Likewise. Add TARGET_SUBXC patterns.
341 (sltu patterns): Likewise.
342 (sgeu patterns): Likewise.
343 (scc splitter): Do not split GEU in DImode if TARGET_SUBXC.
344 (normal_branch): Use icc_comparison_operator predicate.
345 (inverted_branch): Likewise.
346 (cbcond_sp32): Use comparison_operator predicate.
347 (cbcond_sp64): Likewise.
348 (normal_int_branch_sp64): Adjust for renaming
349 (inverted_int_branch_sp64): Likewise.
350 (mov<I:mode>_cc_reg_sp64): Likewise.
351 (movsf_cc_reg_sp6): Likewise.
352 (movdf_cc_reg_sp64): Likewise.
353 (movtf_cc_reg_hq_sp64): Likewise.
354 (movtf_cc_reg_sp64): Likewise.
355 (mov<I:mode>_cc_v9): Use icc_or_fcc_comparison_operator predicate.
356 (movsf_cc_v9): Likewise.
357 (movdf_cc_v9): Likewise.
358 (movtf_cc_hq_v9): Likewise.
359 (movtf_cc_v9): Likewise.
360 (adddi3): Call gen_adddi3_sp32.
361 (adddi3_insn_sp32): Rename to...
362 (adddi3_sp32): ...this. Accept only register_operand as operand #1
363 and use CCCmode for the carry.
364 (addx_extend_sp32): Use CCCmode for the carry.
365 (addx_extend_sp64): Delete.
366 (adddi3_extend_sp32): Use CCCmode for the carry.
367 (cmp_plus patterns): Use CCNZ/CCXNZ mode and add C variants.
368 (subdi3): Call gen_subdi3_sp32.
369 (subdi3_insn_sp32): Rename to...
370 (subdi3_sp32): ...this and use CCmode for the carry.
371 (subx_extend_sp32): Use CCCmode for the carry.
372 (subx_extend_sp64): Delete.
373 (subdi3_extend_sp32): Use CCmode for the carry.
374 (cmp_minus patterns): Use CCNZ/CCXNZ mode and add C variants.
375 (negdi3): Call gen_negdi3_sp32.
376 (negdi3_sp32): Use CCCmode for the carry.
377 (cmp_neg patterns): Use CCNZ/CCXNZ mode and add C variants.
378 (cmp_nz_ashift_1): Use CCNZ mode.
379 (cmp_nz_set_ashift_1): Likewise.
380 (ctrapsi4): Use comparison_operator predicate.
381 (ctrapdi4): Likewise.
382 (trapsi_insn): Use icc_comparison_operator predicate.
383 (trapdi_insn): Likewise.
384 (edge8 patterns): Use CCNZmode.
385 (edge16 patterns): Likewise.
386 (edge32 patterns): Likewise.
387
388 2016-10-11 Eric Botcazou <ebotcazou@adacore.com>
389
390 * config/visium/visium-modes.def (CC_NOOV): Rename into...
391 (CCNZ): ...this.
392 (CC_BTST): Rename into...
393 (CCC): ...this.
394 * config/visium/predicates.md (real_add_operand): New.
395 (visium_btst_operator): Rename into...
396 (visium_equality_comparison_operator): ...this.
397 (visium_noov_operator): Rename into...
398 (visium_nz_comparison_operator): ...this.
399 (visium_c_comparison_operator): New.
400 (visium_branch_operator): Adjust and deal with all CC modes.
401 * config/visium/visium.c (visium_adjust_cost): Adjust.
402 (visium_split_double_add): Use the *_set_carry patterns.
403 (visium_select_cc_mode): Add support for CCC mode and adjust.
404 (output_cbranch): Adjust and use the carry-based operators for
405 floating-point comparisons.
406 * config/visium/visium.md (flags_subst_arith): Adjust.
407 (addsi3_insn_set_carry): New instruction.
408 (subsi3_insn_set_carry): Likewise.
409 (negsi2_insn_set_carry): Likewise.
410 (btst): Adjust.
411 (cmp<mode>_sne): Likewise.
412 (cbranch<mode>4): Use ordered_comparison_operator.
413 (cbranch<mode>4_insn): Likewise.
414 (cbranchsi4_btst_insn): Adjust.
415
416 2016-10-11 Tom de Vries <tom@codesourcery.com>
417
418 PR middle-end/77558
419 * builtins.c (std_canonical_va_list_type): Remove RECORD_TYPE
420 special-casing.
421
422 2016-10-11 Eric Botcazou <ebotcazou@adacore.com>
423
424 * tree.h (build_complex_type): Add second parameter with default.
425 * tree.c (build_complex_type): Add NAMED second parameter and adjust
426 recursive call. Create a TYPE_DECL only if NAMED is true.
427 (build_common_tree_nodes): Pass true in calls to build_complex_type.
428
429 2016-10-11 Georg-Johann Lay <avr@gjlay.de>
430
431 New avr-passes.def to register AVR specific passes.
432
433 * config/avr/avr-passes.def: New file.
434 * config/avr/t-avr (PASSES_EXTRA): Add avr-passes.def.
435 * config/avr/avr-protos.h (gcc::context, rtl_opt_pass): Declare.
436 (make_avr_pass_recompute_note): New proto.
437 * config/avr/avr.c (make_avr_pass_recompute_notes): New function.
438 (avr_pass_recompute_notes): Use anonymous namespace.
439 (avr_register_passes): Remove function...
440 (avr_option_override): ...and its call.
441
442 2016-10-11 Robert Suchanek <robert.suchanek@imgtec.com>
443
444 * config/mips/mips-cpus.def: Replace PTF_AVOID_BRANCHLIKELY with
445 PTF_AVOID_BRANCHLIKELY_ALWAYS for generic architecture and with
446 PTF_AVOID_BRANCHLIKELY_SPEED for others.
447 (mips2, mips3, mips4): Add PTF_AVOID_BRANCHLIKELY_SIZE to tune
448 flags.
449 * config/mips/mips.c (mips_option_override): Enable the branch
450 likely depending on the tune flags and optimization level.
451 * config/mips/mips.h (PTF_AVOID_BRANCHLIKELY): Remove.
452 (PTF_AVOID_BRANCHLIKELY_SPEED): Define.
453 (PTF_AVOID_BRANCHLIKELY_SIZE): Likewise.
454 (PTF_AVOID_BRANCHLIKELY_ALWAYS): Likewise.
455
456 2016-10-11 Richard Biener <rguenther@suse.de>
457
458 * lto-streamer-out.c (collect_block_tree_leafs): New helper.
459 (output_function): Properly stream the whole block tree.
460 * lto-streamer-in.c (input_function): Likewise.
461
462 2016-10-11 Marek Polacek <polacek@redhat.com>
463
464 * Makefile.in (C_COMMON_OBJS): Add c-family/c-warn.o.
465
466 2016-10-11 Kugan Vivekanandarajah <kuganv@linaro.org>
467
468 * tree-vrp.c (evrp_dom_walker::try_add_new_range): New.
469 (evrp_dom_walker::before_dom_children): Infer and push new value
470 ranges for x in y < x.
471
472 2016-10-10 Joseph Myers <joseph@codesourcery.com>
473
474 PR target/77586
475 * config/ia64/ia64.c (ia64_libgcc_floating_mode_supported_p)
476 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Remove.
477 * config/ia64/elf.h (IA64_NO_LIBGCC_TFMODE): Likewise.
478 * config/ia64/freebsd.h (IA64_NO_LIBGCC_TFMODE): Likewise.
479 * config/ia64/vms.h (IA64_NO_LIBGCC_XFMODE)
480 (IA64_NO_LIBGCC_TFMODE): Likewise.
481
482 2016-10-11 Kugan Vivekanandarajah <kuganv@linaro.org>
483
484 * tree-vrp.c (vrp_intersect_ranges_1): Allocate bitmap before
485 copying.
486
487 2016-10-10 Andreas Tobler <andreast@gcc.gnu.org>
488
489 * config.gcc: Add aarch64-*-freebsd* support.
490 * config.host: Likewise.
491 * config/aarch64/aarch64-freebsd.h: New file.
492 * config/aarch64/t-aarch64-freebsd: Ditto.
493
494 2016-10-10 Jeff Law <law@redhat.com>
495
496 PR tree-optimization/71947
497 * tree-ssa-dom.c (cprop_into_stmt): Avoid replacing A with B, then
498 B with A within a single statement.
499
500 2016-10-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
501
502 PR tree-optimization/77824
503 * gimple-ssa-strength-reduction.c (stmt_cost): Explicitly return
504 zero cost for copies.
505 (find_candidates_dom_walker::before_dom_children): Replace
506 MODIFY_EXPR with SSA_NAME.
507 (replace_mult_candidate): Likewise.
508 (replace_profitable_candidates): Likewise.
509
510 2016-10-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
511
512 * config/s390/s390.h: Wrap more macros args in brackets and fix
513
514 2016-10-10 Georg-Johann Lay <avr@gjlay.de>
515
516 * config/avr/gen-avr-mmcu-texi.c (string.h): Include.
517
518 2016-10-10 Andreas Schwab <schwab@suse.de>
519
520 PR target/77738
521 * config/ia64/ia64.md ("doloop_end"): Reject if mode of loop
522 pseudo is not DImode.
523
524 2016-10-10 Claudiu Zissulescu <claziss@synopsys.com>
525
526 * common/config/arc/arc-common.c (arc_option_optimization_table):
527 Remove compact casesi option.
528 * config/arc/arc.c (arc_override_options): Use compact casesi
529 option only for pre-ARCv2 cores.
530 * doc/invoke.texi (mcompact-casesi): Update text.
531
532 2016-10-09 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
533
534 * config/rs6000/rs6000.h (TARGET_EFFICIENT_OVERLAPPING_UNALIGNED):
535 Add macro to say we can efficiently handle overlapping unaligned
536 loads.
537 * config/rs6000/rs6000.c (expand_block_compare): Avoid generating
538 poor code for processors older than p8.
539
540 2016-10-09 Eric Botcazou <ebotcazou@adacore.com>
541
542 * gen-pass-instances.awk: Remove GNUism.
543
544 2016-10-09 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
545
546 * ipa-prop.c (ipcp_transform_function): Set fields m_vr and bits to
547 NULL of (*ipcp_transformations)][node->uid].
548
549 2016-10-09 John David Anglin <danglin@gcc.gnu.org>
550
551 * config/pa/pa.h (BIGGEST_ALIGNMENT): Adjust comment.
552 (MALLOC_ABI_ALIGNMENT): Define.
553
554 2016-10-09 Jakub Jelinek <jakub@redhat.com>
555
556 * tree-ssa.c (target_for_debug_bind, verify_phi_args,
557 ssa_undefined_value_p, maybe_optimize_var): Use VAR_P and/or
558 VAR_OR_FUNCTION_DECL_P macros.
559 * tree-chkp.c (chkp_register_var_initializer, chkp_make_static_bounds,
560 chkp_get_bounds_for_decl_addr, chkp_parse_array_and_component_ref,
561 chkp_find_bounds_1): Likewise.
562 * ipa-polymorphic-call.c (decl_maybe_in_construction_p): Likewise.
563 * hsa-gen.c (get_symbol_for_decl): Likewise.
564 * cgraphunit.c (check_global_declaration, analyze_functions,
565 handle_alias_pairs, thunk_adjust, cgraph_node::expand_thunk):
566 Likewise.
567 * gimple-fold.c (can_refer_decl_in_current_unit_p,
568 canonicalize_constructor_val, gimple_get_virt_method_for_vtable):
569 Likewise.
570 * tree.c (set_decl_section_name, copy_node_stat,
571 need_assembler_name_p, free_lang_data_in_decl, find_decls_types_r,
572 merge_dllimport_decl_attributes, handle_dll_attribute,
573 decl_init_priority_insert, auto_var_in_fn_p, array_at_struct_end_p,
574 verify_type): Likewise.
575 * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior,
576 find_explicit_erroneous_behavior): Likewise.
577 * sdbout.c (sdbout_toplevel_data, sdbout_late_global_decl): Likewise.
578 * ipa.c (process_references): Likewise.
579 * tree-chkp-opt.c (chkp_get_check_result): Likewise.
580 * varasm.c (get_block_for_decl, use_blocks_for_decl_p, make_decl_rtl,
581 notice_global_symbol, assemble_variable, mark_decl_referenced,
582 build_constant_desc, output_constant_def_contents, do_assemble_alias,
583 make_decl_one_only, default_section_type_flags,
584 categorize_decl_for_section, default_encode_section_info): Likewise.
585 * trans-mem.c (requires_barrier): Likewise.
586 * gimple-expr.c (mark_addressable): Likewise.
587 * cfgexpand.c (add_scope_conflicts_1, expand_one_var,
588 expand_used_vars_for_block, clear_tree_used, stack_protect_decl_p,
589 expand_debug_expr): Likewise.
590 * tree-dump.c (dequeue_and_dump): Likewise.
591 * ubsan.c (instrument_bool_enum_load): Likewise.
592 * tree-pretty-print.c (print_declaration): Likewise.
593 * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
594 * tree-ssa-uninit.c (warn_uninitialized_vars): Likewise.
595 * asan.c (asan_protect_global, instrument_derefs): Likewise.
596 * tree-into-ssa.c (rewrite_stmt, maybe_register_def,
597 pass_build_ssa::execute): Likewise.
598 * var-tracking.c (var_debug_decl, track_expr_p): Likewise.
599 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost, split_address_cost):
600 Likewise.
601 * ipa-split.c (test_nonssa_use, consider_split, mark_nonssa_use):
602 Likewise.
603 * tree-inline.c (insert_debug_decl_map, remap_ssa_name,
604 can_be_nonlocal, remap_decls, copy_debug_stmt,
605 initialize_inlined_parameters, add_local_variables,
606 reset_debug_binding, replace_locals_op): Likewise.
607 * dse.c (can_escape): Likewise.
608 * ipa-devirt.c (compare_virtual_tables, referenced_from_vtable_p):
609 Likewise.
610 * tree-diagnostic.c (default_tree_printer): Likewise.
611 * tree-streamer-in.c (unpack_ts_decl_common_value_fields,
612 unpack_ts_decl_with_vis_value_fields,
613 lto_input_ts_decl_common_tree_pointers): Likewise.
614 * builtins.c (builtin_save_expr, fold_builtin_expect,
615 readonly_data_expr): Likewise.
616 * tree-ssa-structalias.c (new_var_info, get_constraint_for_ssa_var,
617 create_variable_info_for, set_uids_in_ptset, visit_loadstore):
618 Likewise.
619 * gimple-streamer-out.c (output_gimple_stmt): Likewise.
620 * gimplify.c (force_constant_size, gimplify_bind_expr,
621 gimplify_decl_expr, gimplify_var_or_parm_decl,
622 gimplify_compound_lval, gimplify_init_constructor,
623 gimplify_modify_expr, gimplify_asm_expr, gimplify_oacc_declare,
624 gimplify_type_sizes): Likewise.
625 * cgraphbuild.c (record_reference, record_type_list, mark_address,
626 mark_load, mark_store, pass_build_cgraph_edges::execute): Likewise.
627 * tree-ssa-live.c (mark_all_vars_used_1, remove_unused_scope_block_p,
628 remove_unused_locals): Likewise.
629 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p, ptrs_compare_unequal,
630 ref_maybe_used_by_call_p_1, call_may_clobber_ref_p_1): Likewise.
631 * function.c (instantiate_expr, instantiate_decls_1,
632 setjmp_vars_warning, add_local_decl): Likewise.
633 * alias.c (ao_ref_from_mem, get_alias_set, compare_base_symbol_refs):
634 Likewise.
635 * tree-stdarg.c (find_va_list_reference, va_list_counter_struct_op,
636 va_list_ptr_read, va_list_ptr_write, check_all_va_list_escapes,
637 optimize_va_list_gpr_fpr_size): Likewise.
638 * tree-nrv.c (pass_nrv::execute): Likewise.
639 * tsan.c (instrument_expr): Likewise.
640 * tree-ssa-dce.c (remove_dead_stmt): Likewise.
641 * vtable-verify.c (verify_bb_vtables): Likewise.
642 * tree-dfa.c (ssa_default_def, set_ssa_default_def,
643 get_ref_base_and_extent): Likewise.
644 * toplev.c (wrapup_global_declaration_1, wrapup_global_declaration_2):
645 Likewise.
646 * tree-sra.c (static bool constant_decl_p, find_var_candidates,
647 analyze_all_variable_accesses): Likewise.
648 * tree-nested.c (get_nonlocal_debug_decl,
649 convert_nonlocal_omp_clauses, note_nonlocal_vla_type,
650 note_nonlocal_block_vlas, convert_nonlocal_reference_stmt,
651 get_local_debug_decl, convert_local_omp_clauses,
652 convert_local_reference_stmt, nesting_copy_decl, remap_vla_decls):
653 Likewise.
654 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Likewise.
655 * stmt.c (decl_overlaps_hard_reg_set_p): Likewise.
656 * dbxout.c (dbxout_late_global_decl, dbxout_type_fields,
657 dbxout_symbol, dbxout_common_check): Likewise.
658 * expr.c (expand_assignment, expand_expr_real_2, expand_expr_real_1,
659 string_constant): Likewise.
660 * hsa.c (hsa_get_declaration_name): Likewise.
661 * passes.c (rest_of_decl_compilation): Likewise.
662 * tree-ssanames.c (make_ssa_name_fn): Likewise.
663 * tree-streamer-out.c (pack_ts_decl_common_value_fields,
664 pack_ts_decl_with_vis_value_fields,
665 write_ts_decl_common_tree_pointers): Likewise.
666 * stor-layout.c (place_field): Likewise.
667 * symtab.c (symtab_node::maybe_create_reference,
668 symtab_node::verify_base, symtab_node::make_decl_local,
669 symtab_node::copy_visibility_from,
670 symtab_node::can_increase_alignment_p): Likewise.
671 * dwarf2out.c (add_var_loc_to_decl, tls_mem_loc_descriptor,
672 decl_by_reference_p, reference_to_unused, rtl_for_decl_location,
673 fortran_common, add_location_or_const_value_attribute,
674 add_scalar_info, add_linkage_name, set_block_abstract_flags,
675 local_function_static, gen_variable_die, dwarf2out_late_global_decl,
676 optimize_one_addr_into_implicit_ptr,
677 optimize_location_into_implicit_ptr): Likewise.
678 * gimple-low.c (record_vars_into): Likewise.
679 * ipa-visibility.c (update_vtable_references): Likewise.
680 * tree-ssa-address.c (fixed_address_object_p, copy_ref_info):
681 Likewise.
682 * lto-streamer-out.c (tree_is_indexable, get_symbol_initial_value,
683 DFS::DFS_write_tree_body, write_symbol): Likewise.
684 * langhooks.c (lhd_warn_unused_global_decl,
685 lhd_set_decl_assembler_name): Likewise.
686 * attribs.c (decl_attributes): Likewise.
687 * except.c (output_ttype): Likewise.
688 * varpool.c (varpool_node::get_create, ctor_for_folding,
689 varpool_node::assemble_decl, varpool_node::create_alias): Likewise.
690 * fold-const.c (fold_unary_loc): Likewise.
691 * ipa-prop.c (ipa_compute_jump_functions_for_edge,
692 ipa_find_agg_cst_from_init): Likewise.
693 * omp-low.c (expand_omp_regimplify_p, expand_omp_taskreg,
694 expand_omp_target, lower_omp_regimplify_p,
695 grid_reg_assignment_to_local_var_p, grid_remap_prebody_decls,
696 find_link_var_op): Likewise.
697 * tree-chrec.c (chrec_contains_symbols): Likewise.
698 * tree-cfg.c (verify_address, verify_expr, verify_expr_location_1,
699 gimple_duplicate_bb, move_stmt_op, replace_block_vars_by_duplicates,
700 execute_fixup_cfg): Likewise.
701
702 PR tree-optimization/77901
703 * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Only optimize
704 if ranges[i].exp is SSA_NAME when looking for >= and only when
705 ranges[i].exp is NULL or SSA_NAME when looking for the other
706 comparison.
707
708 2016-10-09 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
709
710 * ipa-cp.c (ipcp_alignment_lattice): Remove.
711 (ipcp_param_lattices): Remove field alignment.
712 (print_all_lattices): Remove call to ipcp_alignment_lattice::print.
713 (set_all_contains_variable): Remove call to
714 ipcp_alignment_lattice::set_to_bottom.
715 (initialize_node_lattices): Likewise.
716 (propagate_alignment_accross_jump_function): Remove.
717 (propagate_constants_accross_call): Remove call to
718 propagate_alignment_accross_jump_function.
719 (ipcp_store_alignment_results): Remove.
720 (ipcp_driver): Remove call to ipcp_store_alignment_results.
721 (propagate_bits_accross_jump_function): Handle ancestor jump function.
722 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Remove
723 pretty-printing of alignment jump function.
724 (ipa_set_jf_unknown): Remove assignment to jfunc->alignment.known.
725 (ipa_compute_jump_functions_for_edge): Adjust ipa_bits jump function for
726 alignments and remove computing ipa_alignment jump function.
727 (ipa_node_params_t::duplicate): Remove copying of src_trans->alignments.
728 (ipa_write_jump_functions): Remove streaming for ipa_alignment.
729 (ipa_read_jump_function): Remove reading of ipa_alignment.
730 (write_ipcp_transformation_info): Remove streaming for alignment
731 propagation summary.
732 (read_ipcp_transformation_info): Remove reading of alignment
733 propagation summary.
734 (ipcp_update_alignments): Remove.
735 (ipcp_update_bits): Adjust to set alignment for parameters of pointer
736 type.
737 (ipcp_transform_function): Remove call to ipcp_update_alignments()
738 and remove assignment to (*ipcp_transformations)[node->uid].alignments.
739 * ipa-prop.h (ipa_alignment): Remove.
740 (ipa_jump_func): Remove field alignment.
741 (ipcp_transformation_summary): Remove field alignments.
742 * doc/invoke.texi: Mark fipa-cp-alignment as obsolete.
743 * opts.c (default_options_table): Remove entry for fipa-cp-alignment.
744 (enable_fdo_optimizations): Remove checking for fipa-cp-alignment.
745
746 2016-10-08 Eric Botcazou <ebotcazou@adacore.com>
747
748 * config/sparc/sparc.h (FIXED_REGISTERS): Add %icc.
749
750 * config/visium/visium.c (visium_expand_int_cstore): Revert latest
751 change.
752 (visium_expand_fp_cstore): Likewise.
753
754 2016-10-08 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
755
756 * diagnostic-core.h (warning_at_rich_loc_n): Declare.
757 * diagnostic.c (warning_at_rich_loc_n): New function.
758 (diagnostic_n_impl_richloc): Likewise.
759 (diagnostic_n_impl): Move most of the function to
760 diagnostic_n_impl_richloc and call it.
761
762 2016-10-08 Jakub Jelinek <jakub@redhat.com>
763
764 * gen-pass-instances.awk: Rewritten.
765 * Makefile.in (pass-instances.def): Depend on $(PASSES_EXTRA), pass
766 $(PASSES_EXTRA) after passes.def to the script.
767 * config/i386/t-i386 (PASSES_EXTRA): Add i386-passes.def.
768 * config/i386/i386-passes.def: New file.
769 * config/i386/i386-protos.h (make_pass_insert_vzeroupper,
770 make_pass_stv): Declare.
771 * config/i386/i386.c (pass_stv::pass_stv): Initialize timode_p to
772 false.
773 (pass_stv::gate): Depending on timode_p member require TARGET_64BIT
774 or !TARGET_64BIT.
775 (pass_stv::clone, pass_stv::set_pass_param): New methods.
776 (pass_stv::timode_p): New non-static data member.
777 (ix86_option_override): Don't register passes here.
778
779 * doc/invoke.texi: Document accepting Else, fallthrough.
780
781 * doc/invoke.texi (-Wimplicit-fallthrough): Document FALLTHRU comment
782 style changes.
783
784 * doc/invoke.texi (-Wimplicit-fallthrough): Document the accepted
785 FALLTHRU comment styles.
786
787 2016-10-07 Andrew Pinski <apinski@cavium.com>
788
789 * config/aarch64/aarch64-arches.def (AARCH64_ARCH): #undef at the end.
790 * config/aarch64/aarch64-cores.def (AARCH64_CORE): Likewise.
791 * config/aarch64/aarch64-fusion-pairs.def (AARCH64_FUSION_PAIR):
792 Likewise.
793 * config/aarch64/aarch64-option-extensions.def (AARCH64_OPT_EXTENSION):
794 Likewise.
795 * config/aarch64/aarch64-tuning-flags.def (AARCH64_EXTRA_TUNING_OPTION):
796 Likewise.
797 * config/aarch64/aarch64-opts.h (AARCH64_CORE): Don't #undef here.
798 (AARCH64_ARCH): Likewise.
799 * common/config/aarch64/aarch64-common.c (AARCH64_OPT_EXTENSION):
800 Likewise.
801 (AARCH64_CORE): Likewise.
802 (AARCH64_ARCH): Likewise.
803 * config/aarch64/aarch64-protos.h (AARCH64_FUSION_PAIR): Likewise.
804 (AARCH64_EXTRA_TUNING_OPTION): Likewise.
805 * config/aarch64/aarch64.c (AARCH64_FUION_PAIR): Likewise.
806 (AARCH64_EXTRA_TUNING_OPTION): Likewise.
807 (AARCH64_ARCH): Likewise.
808 (AARCH64_CORE): Likewise.
809 * config/aarch64/aarch64.h (AARCH64_CORE): Likewise.
810 * config/aarch64/driver-aarch64.c (AARCH64_OPT_EXTENSION): Likewise.
811 (AARCH64_CORE): Likewise.
812 (AARCH64_ARCH): Likewise.
813
814 2016-10-06 Michael Meissner <meissner@linux.vnet.ibm.com>
815
816 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Split
817 -mfloat128 into -mfloat128-type that enables the IEEE 128-bit
818 floating point type infrastructre, and -mfloat128 that enables the
819 keyword. Define __FLOAT128__ if -mfloat128, and __FLOAT128_TYPE__
820 if -mfloat128-type. Define __ibm128 to be long double by default.
821 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print whether
822 the IEEE 128-bit floating point type infrastructure should
823 automatically be enabled.
824 (rs6000_init_hard_regno_mode_ok): Switch to use -mfloat128-type
825 instead of -mfloat128 to enable KFmode.
826 (rs6000_option_override_internal): Split the option -mfloat128
827 into -mfloat128-type and -mfloat128. On Linux PowerPC 64-bit
828 systems, automatically set -mfloat128-type, but don't enable it on
829 other operating systems. Move setting the long double size and
830 IEEE quad support before the IEEE 128-bit floating point changes.
831 (rs6000_init_builtins): Do not create a unique type for __ibm128
832 if long double is IBM extended double, instead rely on __ibm128
833 being defined as 'long double'. If -mfloat128-type and not
834 -mfloat128, create the KFmode type with an undocumented __ieee128
835 keyword.
836 (rs6000_init_libfuncs): Use -mfloat128-type instead of
837 -mfloat128 for tests about the types, but keep tests for
838 -mfloat128 to enable the keyword support.
839 (rs6000_complex_function_value): Likewise.
840 (rs6000_scalar_mode_supported_p): Likewise.
841 (rs6000_floatn_mode): Likewise.
842 (rs6000_c_mode_for_suffix): Likewise.
843 (rs6000_opt_masks): Add -mfloat128-type.
844 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add support for
845 -mfloat128-type being split from -mfloat128. Add
846 -mfloat128-hardware, which was missing.
847 * config/rs6000/rs6000.opt (-mfloat128): Split -mfloat128 into
848 -mfloat128 and -mfloat128-type:
849 (-mfloat128-type): Likewise.
850 * config/rs6000/linux64.h (TARGET_FLOAT128_ENABLE_TYPE): Define so
851 that 64-bit Linux systems with enable -mfloat128-type by default
852 on VSX systems.
853 * config/rs6000/rs6000.h (TARGET_FLOAT128_ENABLE_TYPE): Likewise.
854 (FLOAT128_VECTOR_P): Switch IEEE 128-bit floating points to use
855 -mfloat128-type instead of -mfloat128.
856 (FLOAT128_2REG_P): Likewise.
857 (MASK_FLOAT128_TYPE): Likewise.
858 (ALTIVEC_ARG_MAX_RETURN): Likewise.
859 (RS6000_BTM_FLOAT128): Likewise.
860 (TARGET_FLOAT128): Poison old identifiers.
861 (OPTION_MASK_FLOAT128): Likewise.
862 (MASK_FLOAT128): Likewise.
863 * config/rs6000/rs6000.md (FP): Likewise.
864 (FLOAT128): Likewise.
865 (fix_trunc<mode>di2): Likewise.
866 (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
867 (floatdi<mode>2): Likewise.
868 (floatuns<SDI:mode><IEEE128:mode>2): Likewise.
869 (neg<mode>2, FLOAT128 iterator): Likewise.
870 (abs<mode>2, FLOAT128 iterator): Likewise.
871 (ieee_128bit_negative_zero): Likewise.
872 (ieee_128bit_vsx_neg<mode>2): Likewise.
873 (ieee_128bit_vsx_neg<mode>2_internal): Likewise.
874 (ieee_128bit_vsx_abs<mode>2): Likewise.
875 (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
876 (ieee_128bit_vsx_nabs<mode>2): Likewise.
877 (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
878 (extendiftf2): Likewise.
879 (extendifkf2): Likewise.
880 (extendtfkf2): Likewise.
881 (trunciftf2): Likewise.
882 (truncifkf2): Likewise.
883 (trunckftf2): Likewise.
884 (trunctfif2): Likewise.
885 (extendkftf2): Likewise.
886 (trunctfkf2): Likewise.
887
888 2016-10-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
889
890 * simplify-rtx.c (simplify_immed_subreg): Zero-initialize tmp array
891 before merging in bytes to pass down to real_from_target.
892
893 2016-10-07 Richard Biener <rguenther@suse.de>
894
895 * tree-ssa-propagate.c (replace_phi_args_in): Remove no longer
896 required hack.
897 (substitute_and_fold_dom_walker::before_dom_children):
898 Substitute and fold before pass specific folding to avoid
899 feeding that with SSA names that will be later released.
900 * tree-ssa-ccp.c (get_value_for_expr): Guard for new SSA names
901 introduced by folding and visited by evaluate_stmt called during
902 ccp_fold_stmt.
903 (likely_value): Likewise.
904 (evaluate_stmt): Likewise.
905 * tree-vrp.c (simplify_truth_ops_using_ranges): Fold modified stmt.
906 (simplify_div_or_mod_using_ranges): Likewise.
907 (simplify_min_or_max_using_ranges): Likewise.
908 (simplify_abs_using_ranges): Likewise.
909 (simplify_conversion_using_ranges): Likewise.
910 (simplify_float_conversion_using_ranges): Likewise.
911 (simplify_stmt_using_ranges): Likewise.
912
913 2016-10-07 Marek Polacek <polacek@redhat.com>
914
915 * gimplify.c (should_warn_for_implicit_fallthrough): Check for
916 FALLTHROUGH_LABEL_P here...
917 (warn_implicit_fallthrough_r): ...not here.
918
919 2016-10-07 Bernd Schmidt <bschmidt@redhat.com>
920
921 PR tree-optimization/77880
922 * expr.c (by_pieces_ninsns): Use unsigned HOST_WIDE_INT where
923 necessary.
924
925 2016-10-07 Marek Polacek <polacek@redhat.com>
926
927 PR c++/77803
928 * gimplify.c (last_stmt_in_scope): Add check for FALLTHROUGH ().
929
930 2016-10-07 Richard Biener <rguenther@suse.de>
931
932 * bitmap.h: Document constraints on bitmap modification while
933 iterating over it.
934
935 2016-10-07 Richard Biener <rguenther@suse.de>
936
937 * bitmap.c (bitmap_elem_to_freelist): Set indx to -1.
938 * bitmap.h (bmp_iter_set): When advancing to the next element
939 check that we didn't remove the current one.
940 (bmp_iter_and): Likewise.
941 (bmp_iter_and_compl): Likewise.
942 * tree-ssa.c (release_defs_bitset): Do not remove worklist bit
943 we currently iterate on but keep a one-level queue.
944 * sched-deps.c (remove_from_deps): Do not clear current bit
945 but keep a one-level queue.
946
947 2016-10-07 Jakub Jelinek <jakub@redhat.com>
948
949 PR tree-optimization/77664
950 * tree-ssa-reassoc.c (update_range_test): Also clear low and high
951 for the other ranges.
952 (optimize_range_tests_diff): Fix up formatting.
953 (optimize_range_tests_var_bound): New function.
954 (optimize_range_tests): Use it.
955
956 2016-10-07 Martin Liska <mliska@suse.cz>
957
958 * coverage.c (build_gcov_exit_decl): Fix priority what
959 should be really 99.
960
961 2016-10-07 Richard Biener <rguenther@suse.de>
962
963 * gimple-low.c (lower_gimple_bind): Clear DECL_CHAIN of
964 vars in gimple_bind_vars but not in BLOCK_VARS.
965
966 2016-10-07 Richard Biener <rguenther@suse.de>
967
968 PR tree-optimization/77879
969 * tree-ssa-structalias.c (handle_const_call): Properly handle
970 NRV return slots.
971 (handle_pure_call): Likewise.
972
973 2016-10-06 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
974
975 * config/rs6000/rs6000.c (rs6000_elf_asm_out_constructor)
976 (rs6000_elf_asm_out_destructor): increase size of buf to avoid
977 possible overflow.
978
979 2016-10-06 Andrew Pinski <apinski@cavium.com>
980
981 * config/aarch64/aarch64-cores.def: Add a comment before each
982 set of cores.
983
984 2016-10-06 Kugan Vivekanandarajah <kuganv@linaro.org>
985
986 PR tree-optimization/77862
987 * tree-vrp.c (add_equivalence): Use get_value_range so that
988 num_vr_values is checked before accessing vr_values.
989
990 2016-10-06 Kugan Vivekanandarajah <kuganv@linaro.org>
991
992 * tree-vrp.c (evrp_dom_walker::before_dom_children): Handle
993 POINTER_TYPE_P.
994
995 2016-10-05 Jeff Law <law@redhat.com>
996
997 PR tree-optimization/71661
998 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Handle case when
999 removal of a forwarder exposes a new natural loop.
1000
1001 2016-10-06 Uros Bizjak <ubizjak@gmail.com>
1002
1003 * config/i386/sse.md (andnot<mode>3): Add FALLTHRU comments.
1004 Introduce ssesuffix variable.
1005 (<mask_codefor><code><mode>3<mask_name>): Ditto.
1006 (*<code><mode>3): Ditto.
1007
1008 2016-10-06 Jan Hubicka <hubicka@ucw.cz>
1009
1010 * postreload.c (reload_cse_simplify): Skip also USE when detecting
1011 noop move.
1012
1013 2016-10-06 Richard Biener <rguenther@suse.de>
1014
1015 PR tree-optimization/77855
1016 * tree-ssa-pre.c (prune_clobbered_mems): Queue exprs to remove
1017 instead of removing the current item while iterating over the set
1018 which is not safe.
1019
1020 2016-10-06 James Clarke <jrtc27@jrtc27.com>
1021 Eric Botcazou <ebotcazou@adacore.com>
1022
1023 PR target/77759
1024 * config/sparc/sparc.c (classify_data_t): Remove int_regs field.
1025 (classify_registers): Don't set it
1026 (function_arg_slotno): Don't initialize and test it. Tidy up.
1027
1028 2016-10-06 Richard Biener <rguenther@suse.de>
1029
1030 PR tree-optimization/77839
1031 * tree-ssa-sccvn.c (set_ssa_val_to): Forbid value -> constant value
1032 lattice transition.
1033
1034 2016-10-06 Martin Liska <mliska@suse.cz>
1035
1036 * gcc.c: Set -fprofile-update=atomic when profiling is
1037 enabled and -pthread is set. Warn when one combines
1038 -pthread and -fprofile-update=single for an app using
1039 profiling code.
1040
1041 2016-10-06 Martin Liska <mliska@suse.cz>
1042
1043 PR bootstrap/77788
1044 * expmed.h (mul_highpart_cost_ptr): Add an gcc_assert.
1045 * gimple-ssa-strength-reduction.c (slsr_process_cast):
1046 Initialize a pointer to NULL.
1047 (slsr_process_copy): Likewise.
1048 * input.c (location_get_source_line): Likewise.
1049 * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Likewise.
1050
1051 2016-10-05 Andrew Senkevich <andrew.senkevich@intel.com>
1052
1053 * common/config/i386/i386-common.c (OPTION_MASK_ISA_PCOMMIT_UNSET,
1054 OPTION_MASK_ISA_PCOMMIT_SET): Deleted definitions.
1055 (ix86_handle_option): Deleted handle of OPT_mpcommit.
1056 * config.gcc: Deleted pcommitintrin.h
1057 * config/i386/pcommitintrin.h: Deleted file.
1058 * config/i386/cpuid.h (bit_PCOMMIT): Deleted.
1059 * config/i386/driver-i386.c (host_detect_local_cpu): Deleted pcommit
1060 detection.
1061 * config/i386/i386-c.c (ix86_target_macros_internal): Deleted define
1062 __PCOMMIT__.
1063 * config/i386/i386.c (ix86_target_string): Deleted -mpcommit.
1064 (PTA_PCOMMIT): Deleted define.
1065 (ix86_option_override_internal): Deleted handle of option.
1066 (ix86_valid_target_attribute_inner_p): Deleted pcommit.
1067 * config/i386/i386-builtin.def (IX86_BUILTIN_PCOMMIT,
1068 __builtin_ia32_pcommit): Deleted.
1069 * config/i386/i386.h (TARGET_PCOMMIT, TARGET_PCOMMIT_P): Deleted.
1070 * config/i386/i386.md (unspecv): Deleted UNSPECV_PCOMMIT.
1071 (pcommit): Deleted instruction.
1072 * config/i386/i386.opt: Mention -mpcommit deprecation.
1073 * config/i386/x86intrin.h: Deleted inclusion of pcommitintrin.h.
1074
1075 2016-10-05 Uros Bizjak <ubizjak@gmail.com>
1076
1077 PR target/77874
1078 * config/i386/sse.md (<mask_codefor><code><mode>3<mask_name>):
1079 Remove wrong assert.
1080 (<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>:
1081 Use <round_constraint> as operand 1 constraint.
1082
1083 2016-10-05 Jakub Jelinek <jakub@redhat.com>
1084
1085 PR sanitizer/66343
1086 * ubsan.c (ubsan_create_data): Call initialize_sanitizer_builtins here.
1087 (ubsan_instrument_float_cast): And not here.
1088
1089 PR sanitizer/66343
1090 * ubsan.c (ubsan_ids): New GTY(()) array.
1091 (ubsan_type_descriptor, ubsan_create_data): Use ubsan_ids
1092 instead of static local counters.
1093
1094 2016-10-05 Martin Sebor <msebor@redhat.com>
1095
1096 PR bootstrap/77819
1097 * config/linux.h (TARGET_PRINTF_POINTER_FORMAT): Define macro.
1098 * config/linux.c (gnu_libc_printf_pointer_format): Remove.
1099 * targhooks.c [DEFAULT_LIBC == LIBC_UCLIBC) && SINGLE_LIBC]
1100 (default_printf_pointer_format): Define function.
1101 * targhooks.c (linux_printf_pointer_format): Define new function.
1102 * targhooks.h (linux_printf_pointer_format): Declare.
1103 (gnu_libc_printf_pointer_format): Remove declaration.
1104
1105 2016-10-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1106
1107 * fold-const.c (native_encode_real): Fix logic for selecting offset
1108 to write to when BYTES_BIG_ENDIAN.
1109
1110 2016-10-05 Wilco Dijkstra <wdijkstr@arm.com>
1111
1112 * builtins.c (fold_builtin_strchr): Remove function.
1113 (fold_builtin_strrchr): Likewise.
1114 (fold_builtin2): Remove strchr, index, strrchr, rindex cases.
1115 * gimple-fold.c (target_char_cst_p): New function.
1116 (gimple_fold_builtin_strchr) Add more foldings.
1117 (gimple_fold_builtin): Add index, strrchr, rindex cases.
1118
1119 2016-10-05 Richard Biener <rguenther@suse.de>
1120
1121 PR middle-end/77863
1122 * genmatch.c (capture_info::walk_c_expr): Diagnose unknown
1123 capture ids in c-exprs.
1124
1125 2016-10-05 Richard Biener <rguenther@suse.de>
1126
1127 PR middle-end/77826
1128 * genmatch.c (dt_operand::gen_match_op): Amend operand_equal_p
1129 with types_match for GIMPLE code gen to handle type mismatched
1130 constants properly.
1131 (dt_operand::gen): Adjust.
1132 * match.pd ((X /[ex] A) * A -> X): Properly handle converted
1133 and constant A.
1134
1135 2016-10-05 Richard Biener <rguenther@suse.de>
1136
1137 * match.pd (copysign(x, CST) -> [-]abs (x)): New pattern.
1138
1139 2016-10-05 Richard Biener <rguenther@suse.de>
1140
1141 PR middle-end/77842
1142 * genmatch.c (parser::parse_c_expr): Handle premature EOF.
1143
1144 2016-10-05 Pierre-Marie de Rodat <derodat@adacore.com>
1145
1146 * dwarf2out.c (dwarf2out_imported_module_or_decl): Move DWARF
1147 version check to protect only DW_TAG_imported_module generation.
1148
1149 2016-10-05 Richard Biener <rguenther@suse.de>
1150
1151 PR middle-end/55152
1152 * match.pd (min(a,-a) -> -abs(a)): New pattern.
1153
1154 2016-10-04 Ian Lance Taylor <iant@golang.org>
1155
1156 * explow.c (allocate_dynamic_stack_space): Call
1157 do_pending_stack_adjust before handling flag_split_stack.
1158
1159 2016-10-04 David Malcolm <dmalcolm@redhat.com>
1160
1161 * genattrtab.c (make_internal_attr): Supply dummy column number to
1162 file_location ctor.
1163 (main): Likewise.
1164 * genoutput.c (init_insn_for_nothing): Likewise.
1165 * gensupport.c (add_define_attr): Likewise.
1166 * read-md.c (message_at_1): Print column number.
1167 (fatal_with_file_and_line): Likewise.
1168 (rtx_reader::read_char): Track column numbers.
1169 (rtx_reader::unread_char): Likewise.
1170 (rtx_reader::rtx_reader): Initialize m_read_md_colno.
1171 (rtx_reader::handle_include): Stash and restore m_read_md_colno.
1172 (rtx_reader::handle_file): Initialize m_read_md_colno.
1173 (rtx_reader::get_current_location): Supply column number to
1174 file_location ctor.
1175 * read-md.h (struct file_location): Add field "colno".
1176 (file_location::file_location): Likewise.
1177 (rtx_reader::get_colno): New accessor.
1178 (rtx_reader::m_read_md_colno): New field.
1179 (rtx_reader::m_last_line_colno): New field.
1180
1181 2016-10-04 Jakub Jelinek <jakub@redhat.com>
1182
1183 * doc/extend.texi (Java Exceptions): Remove.
1184 (java_interface): Remove.
1185
1186 2016-10-04 Doug Gilmore <doug.gilmore@imgtec.com>
1187
1188 PR tree-optimization/77808
1189 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Check base_addr
1190 and addr are different before copying points-to information.
1191
1192 2016-10-04 Uros Bizjak <ubizjak@gmail.com>
1193
1194 * config/i386/x86-tune.def (X86_TUNE_VECTORIZE_DOUBLE): Remove.
1195 * config/i386/i386.h (TARGET_VECTORIZE_DOUBLE): Remove.
1196 * config/i386/i386.c (ix86_add_stmt_cost): Use TARGET_BONNEL instead
1197 of !TARGET_VECTORIZE_DOUBLE when penalizing DFmode vector ops.
1198
1199 2016-10-04 Richard Biener <rguenther@suse.de>
1200
1201 PR tree-optimization/77399
1202 * tree-ssa-forwprop.c (simplify_vector_constructor): Properly
1203 verify the target can convert.
1204
1205 2016-10-04 Richard Biener <rguenther@suse.de>
1206
1207 PR middle-end/77833
1208 * explow.c (plus_constant): Verify the mode of the constant
1209 pool offset before calling plus_constant.
1210
1211 2016-10-04 Richard Biener <rguenther@suse.de>
1212
1213 PR middle-end/77407
1214 * match.pd (X / abs (X) -> X < 0 ? -1 : 1): Drop vector
1215 type support, mark with :C.
1216 (X / -X -> -1): Mark with :C.
1217
1218 2016-10-04 Jakub Jelinek <jakub@redhat.com>
1219
1220 * defaults.h (JCR_SECTION_NAME, TARGET_USE_JCR_SECTION): Remove.
1221 * system.h (JCR_SECTION_NAME, TARGET_USE_JCR_SECTION): Poison.
1222 * doc/tm.texi.in (TARGET_USE_JCR_SECTION): Remove.
1223 * doc/tm.texi: Regenerated.
1224 * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Remove.
1225 * config/i386/cygming.h (TARGET_USE_JCR_SECTION): Remove.
1226 * config/darwin.h (JCR_SECTION_NAME): Remove.
1227 * config/pa/pa64-hpux.h (JCR_SECTION_NAME): Remove.
1228 * config/rs6000/aix71.h (TARGET_USE_JCR_SECTION): Remove.
1229 * config/rs6000/aix51.h (TARGET_USE_JCR_SECTION): Remove.
1230 * config/rs6000/aix52.h (TARGET_USE_JCR_SECTION): Remove.
1231 * config/rs6000/aix53.h (TARGET_USE_JCR_SECTION): Remove.
1232 * config/rs6000/aix61.h (TARGET_USE_JCR_SECTION): Remove.
1233
1234 2016-10-03 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1235
1236 * ipa-cp.c (propagate_bits_accross_jump_function): Introduce space
1237 between "because" and "param" in dump message in call to fprintf.
1238
1239 2016-10-03 Jeff Law <law@redhat.com>
1240
1241 PR tree-optimization/71550
1242 PR tree-optimization/71403
1243 * tree-ssa-threadbackward.c: Include tree-vectorizer.h
1244 (profitable_jump_thread_path): Also return boolean indicating if
1245 the realized path will create an irreducible loop.
1246 Remove loop depth tests from 71403.
1247 (fsm_find_control_statement_thread_paths): Remove loop depth tests
1248 from 71403. If threading will create an irreducible loop, then
1249 throw away loop iteration and related information.
1250
1251 2016-10-03 Uros Bizjak <ubizjak@gmail.com>
1252
1253 * configure.ac (strict_warn): Merge -Wmissing-format-attribute and
1254 -Woverloaded-virtual checks for warning options.
1255 * configure: Regenerate.
1256
1257 2016-10-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
1258
1259 PR preprocessor/77699
1260 * input.c (maybe_grow): Don't allocate one byte extra headroom.
1261 (get_next_line): Return false on error.
1262 (read_next_line): Removed, use get_next_line instead.
1263 (read_line_num): Don't copy the line.
1264 (location_get_source_line): Don't use static data.
1265 (selftest::test_reading_source_line): Add more test cases.
1266
1267 2016-10-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1268
1269 Revert
1270 2016-09-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1271
1272 * ifcvt.c (noce_try_avoid_const_materialization): New function.
1273 (noce_process_if_block): Use it.
1274
1275 2016-10-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
1276
1277 * doc/invoke.texi: Update -Wint-in-bool-context.
1278
1279 2016-10-02 Jakub Jelinek <jakub@redhat.com>
1280
1281 * dwarf2out.c (output_fde, output_call_frame_info,
1282 dwarf2out_do_cfi_startproc, set_indirect_string,
1283 gen_internal_sym, output_die, output_line_info): Use
1284 MAX_ARTIFICIAL_LABEL_BYTES as char array sizes for
1285 ASM_GENERATE_INTERNAL_LABEL output.
1286
1287 2016-10-01 Richard Biener <rguenther@suse.de>
1288
1289 PR middle-end/77798
1290 * genmatch.c (get_operand_type): Add operand position arg
1291 and handle COND_EXPR comparison operand with fixed boolean_type_node.
1292 (expr::gen_transform): Adjust.
1293 (dt_simplify::gen_1): Likewise.
1294
1295 2016-10-01 Jakub Jelinek <jakub@redhat.com>
1296
1297 * config/i386/sse.md (<mask_codefor><code><mode>): Add FALLTHRU
1298 comments. Simplify asserts, remove unnecessary conditions.
1299 Formatting fixes.
1300 (*<code><mode>3): Likewise.
1301
1302 2016-09-30 Jakub Jelinek <jakub@redhat.com>
1303
1304 * doc/invoke.texi (-Wregister): Document.
1305
1306 2016-09-30 Bernd Edlinger <bernd.edlinger@hotmail.de>
1307
1308 * configure.ac: Split CHECKING_P into CHECKING_P and
1309 ENABLE_EXTRA_CHECKING.
1310 * configure: Regenerated.
1311 * config.in: Adjust commment of CHECKING_P. Add ENABLE_EXTRA_CHECKING.
1312 * common.opt (flag_checking): Use CHECKING_P and ENABLE_EXTRA_CHECKING.
1313
1314 2016-09-30 Prasad Ghangal <prasad.ghangal@gmail.com>
1315
1316 PR other/31566
1317 * gcc.c (process_command): For @filename handling, output
1318 the correct name if the file does not exist.
1319
1320 2016-09-30 Marek Polacek <polacek@redhat.com>
1321
1322 * config/aarch64/aarch64-simd.md: Adjust fall through comments.
1323 * config/alpha/predicates.md: Likewise.
1324
1325 2016-09-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1326
1327 * ifcvt.c (noce_try_avoid_const_materialization): New function.
1328 (noce_process_if_block): Use it.
1329
1330 2016-09-30 Martin Liska <mliska@suse.cz>
1331
1332 * doc/invoke.texi: Document asan-use-after-return that
1333 it's disabled by default in runtime.
1334
1335 2016-09-30 Richard Biener <rguenther@suse.de>
1336
1337 * tree-vrp.c (intersect_ranges): If we failed to handle
1338 the intersection choose a constant singleton range if available.
1339
1340 2016-09-30 Richard Biener <rguenther@suse.de>
1341
1342 PR tree-optimization/77399
1343 * tree-ssa-forwprop.c (simplify_vector_constructor): Handle
1344 float <-> int conversions.
1345
1346 2016-09-30 Alan Modra <amodra@gmail.com>
1347
1348 * config/rs6000/rs6000.c (rs6000_opt_vars): Revert last change.
1349
1350 2016-09-29 Uros Bizjak <ubizjak@gmail.com>
1351
1352 * config/i386/driver-i386.c (host_detect_local_cpu): Check maximum
1353 ext_level before calling CPUID with 0x80000008.
1354 Simplify xgetbv checks.
1355
1356 2016-09-29 David Malcolm <dmalcolm@redhat.com>
1357
1358 * Makefile.in (OBJS): Add print-rtl-function.o.
1359 * print-rtl-function.c: New file.
1360 * print-rtl.h (print_rtx_function): New decl.
1361
1362 2016-09-29 Uros Bizjak <ubizjak@gmail.com>
1363
1364 PR target/77756
1365 * config/i386/cpuid.h (__get_cpuid_count): New.
1366 (__get_cpuid): Rename __level to __leaf.
1367
1368 2016-09-29 Marek Polacek <polacek@redhat.com>
1369
1370 * genattrtab.c (write_attr_case): Also emit FALLTHRU marker.
1371
1372 2016-09-29 Bernd Schmidt <bschmidt@redhat.com>
1373
1374 * builtins.c (expand_builtin_memcmp): don't swap args unless
1375 result is only being compared with zero.
1376
1377 2016-09-29 Marek Polacek <polacek@redhat.com>
1378
1379 * dwarf2out.c (loc_descriptor): Add fall through comment.
1380 (add_const_value_attribute): Likewise.
1381
1382 2016-09-29 Matthew Wahab <matthew.wahab@arm.com>
1383
1384 * config/arm/arm.md (*arm_movsi_insn): Replace "t2" arch attribute
1385 with "v6t2". Move "arch" attribute above "pool_range".
1386 * config/arm/vfp.md (*arm_movhi_vfp): Replace "t2" arch attribute
1387 with "v6t2".
1388 (*thumb2_movhi_vfp): Likewise.
1389 (*arm_movhi_fp16): Likewise.
1390 (*thumb2_movhi_fp16): Likewise.
1391 (*arm_movsi_vfp): Remove "arch" attribute.
1392 (*thumb2_movsi_vfp): Likewise.
1393
1394 2016-09-29 Martin Liska <mliska@suse.cz>
1395
1396 * doc/extend.texi: Remove limitation of Objective C for
1397 __attribute__((constructor)) and __attribute__((destructor)).
1398
1399 2016-09-29 Richard Biener <rguenther@suse.de>
1400
1401 PR tree-optimization/77768
1402 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
1403 Handle stores to readonly memory when removing redundant stores.
1404
1405 2016-09-29 Richard Biener <rguenther@suse.de>
1406
1407 PR middle-end/77407
1408 * match.pd: Add X / abs (X) -> X < 0 ? -1 : 1 and
1409 X / -X -> -1 simplifications.
1410
1411 2016-09-29 Richard Biener <rguenther@suse.de>
1412
1413 PR middle-end/55152
1414 * match.pd: Add max(a,-a) -> abs(a) pattern.
1415 * tree-ssa-phiopt.c (minmax_replacement): Disable for
1416 HONOR_SIGNED_ZEROS types.
1417
1418 2016-09-29 James Greenhalgh <james.greenhalgh@arm.com>
1419
1420 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Remove.
1421 * system.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Poison.
1422
1423 2016-09-29 Richard Biener <rguenther@suse.de>
1424
1425 * tree-vrp.c (set_defs_to_varying): New helper avoiding
1426 writing to vr_const_varying.
1427 (vrp_initialize): Call it.
1428 (vrp_visit_stmt): Likewise.
1429 (evrp_dom_walker::before_dom_children): Likewise.
1430
1431 2016-09-29 Richard Biener <rguenther@suse.de>
1432
1433 * tree-vect-stmts.c (vectorizable_load): Avoid emitting vector
1434 constructors with vector elements.
1435
1436 2016-09-29 Richard Biener <rguenther@suse.de>
1437
1438 PR tree-optimization/77768
1439 * tree-ssa-sccvn.c (visit_reference_op_store): Properly deal
1440 with stores to a place we know has a constant value.
1441
1442 2016-09-29 Alan Modra <amodra@gmail.com>
1443
1444 * config/rs6000/sysv4.opt (mgnu-attribute): New option.
1445 * doc/invoke.texi: Document it.
1446 * config/rs6000/rs6000.c (HAVE_LD_PPC_GNU_ATTR_LONG_DOUBLE): Define.
1447 (rs6000_passes_float): Comment.
1448 (rs6000_passes_long_double): New static var.
1449 (call_ABI_of_interest): Return false unless rs6000_gnu_attr is set.
1450 (init_cumulative_args): Set up to emit fp .gnu_attribute for
1451 ELF 64-bit ABIs as well as 32-bit ELF. Correct rs6000_passes_float
1452 to include fp values returned in vectors.
1453 Set rs6000_passes_long_double.
1454 (rs6000_function_arg_advance_1): Likewise for function args.
1455 (rs6000_elf_file_end): Emit fp .gnu_attribute for ELF 64-bit ABIs,
1456 and SPE. Emit long double tag value too.
1457 (rs6000_opt_vars): Add gnu-attr.
1458 * configure.ac (HAVE_LD_PPC_GNU_ATTR_LONG_DOUBLE): New ppc32 test.
1459 * configure: Regenerate.
1460 * config.in: Regenerate.
1461
1462 2016-09-28 Jakub Jelinek <jakub@redhat.com>
1463
1464 * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Use x > 0 instead
1465 of 0 < x.
1466 (format_floating, format_string, format_directive,
1467 get_destination_size, pass_sprintf_length::handle_gimple_call):
1468 Likewise.
1469
1470 2016-09-28 Jakub Jelinek <jakub@redhat.com>
1471
1472 * gimple-ssa-sprintf.c: Fix comment formatting.
1473 (format_integer): Use is_gimple_assign.
1474 (pass_sprintf_length::handle_gimple_call): Use gimple_call_builtin_p
1475 and gimple_call_fndecl. Reorder case BUILT_IN_SPRINTF_CHK. Fix up
1476 BUILT_IN_SNPRINTF_CHK comment. Replace "to to" with "to" in comment.
1477 (pass_sprintf_length::execute): Use is_gimple_call.
1478
1479 2016-09-28 Wilco Dijkstra <wdijkstr@arm.com>
1480
1481 * gimple-fold.c (gimple_fold_builtin): After failing to fold
1482 strchr, also try the generic folding.
1483
1484 2016-09-28 Martin Sebor <msebor@redhat.com>
1485
1486 PR c/77762
1487 * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call):
1488 Fix typos.
1489
1490 2016-09-28 Martin Sebor <msebor@redhat.com>
1491
1492 PR middle-end/77683
1493 * gimple-ssa-sprintf.c (format_integer): Fail gracefully when
1494 length modifier is not expected.
1495 (format_floating): Ignore l length modifier and fail gracefuly
1496 when it isn't one of the other expected ones.
1497
1498 2016-09-28 Martin Sebor <msebor@redhat.com>
1499
1500 PR bootstrap/77753
1501 * varasm.c (assemble_addr_to_section): Increase local buffer size.
1502
1503 2016-09-27 Richard Biener <rguenther@suse.de>
1504
1505 * dwarf2out.c (cu_die_list): New global.
1506 (dwarf2out_finish): Walk cu_die_list instead of limbo DIEs. Add
1507 main_comp_unit_die to cu_die_list if we created it.
1508 Move break_out_includes ...
1509 (dwarf2out_early_finish): ... here. Push created CU DIEs onto
1510 the cu_die_list.
1511
1512 2016-09-28 Richard Biener <rguenther@suse.de>
1513
1514 * dwarf2out.c (struct die_struct): Add removed flag.
1515 (lookup_type_die): If the DIE is marked as removed, clear
1516 TYPE_SYMTAB_DIE and return NULL.
1517 (lookup_decl_die): If the DIE is marked as removed, remove it
1518 from the hash and return NULL.
1519 (mark_removed): New helper.
1520 (prune_unused_types_prune): Call it for removed DIEs.
1521 (gen_subprogram_die): Move the premark_used_types call to after
1522 DIEs for the functions scopes are generated.
1523 (process_scope_var): Do not re-create pruned types or type decls.
1524 Make sure to also re-parent type decls.
1525 (dwarf2out_finish): Move unused type pruning and debug_types
1526 handling ...
1527 (dwarf2out_early_finish): ... here.
1528
1529 2016-09-29 Claudiu Zissulescu <claziss@synopsys.com>
1530
1531 * config/arc/arc-c.c: New file.
1532 * config/arc/arc-c.def: Likewise.
1533 * config/arc/t-arc: Likewise.
1534 * config.gcc: Include arc-c.o as c and cpp object.
1535 * config/arc/arc-protos.h (arc_cpu_cpp_builtins): Add prototype.
1536 * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Use
1537 arc_cpu_cpp_builtins.
1538
1539 2016-09-29 Claudiu Zissulescu <claziss@synopsys.com>
1540
1541 * config/arc/arc.md (*rotrsi3_cnt1): New pattern.
1542 (*ashlsi2_cnt1, *lshrsi3_cnt1, *ashrsi3_cnt1): Likewise.
1543
1544 2016-09-28 Nathan Sidwell <nathan@acm.org>
1545
1546 * gimple-pretty-print.c (dump_gimple_call_args): Simplify "' "
1547 printing.
1548
1549 2016-09-28 Wilco Dijkstra <wdijkstr@arm.com>
1550
1551 PR tree-optimization/61056
1552 * gimple-fold.c (gimple_fold_builtin_strchr):
1553 New function to optimize strchr (s, 0) to strlen.
1554 (gimple_fold_builtin): Add BUILT_IN_STRCHR case.
1555
1556 2016-09-27 Robin Dapp <rdapp@linux.vnet.ibm.com>
1557
1558 PR tree-optimization/77724
1559 * tree-vect-loop-manip.c (create_intersect_range_checks_index):
1560 Add tree_fits_shwi_p check.
1561
1562 2016-09-27 Jakub Jelinek <jakub@redhat.com>
1563
1564 * auto-inc-dec.c (try_merge): Remove break after return.
1565 * cselib.c (autoinc_split): Likewise.
1566 * explow.c (promote_mode): Likewise.
1567 * fixed-value.c (fixed_arithmetic): Likewise.
1568 * hsa.c (hsa_internal_fn::get_arity): Likewise.
1569 * rtlanal.c (modified_between_p, modified_in_p): Likewise.
1570 * trans-mem.c (get_attrs_for): Likewise.
1571 * tree-if-conv.c (if_convertible_stmt_p): Likewise.
1572 * tree-vrp.c (simplify_stmt_using_ranges): Likewise.
1573 * config/aarch64/aarch64-builtins.c (aarch64_fold_builtin): Likewise.
1574 * config/aarch64/aarch64.c (aarch64_get_condition_code_1): Likewise.
1575 * config/c6x/c6x.c (c6x_get_unit_specifier): Likewise.
1576 * config/cr16/cr16.c (legitimate_pic_operand_p): Likewise.
1577 * config/cris/cris.c (cris_op_str): Likewise.
1578 * config/mn10300/mn10300.c (cc_flags_for_code): Likewise.
1579 * config/tilepro/tilepro.c (tilepro_emit_setcc_internal_di): Likewise.
1580
1581 2016-09-27 Nathan Sidwell <nathan@codesourcery.com>
1582
1583 * internal-fn.h (IFN_UNIQUE_CODES, IFN_GOACC_LOOP_CODES,
1584 IFN_GOACC_REDUCTION_CODES): New.
1585 (enum ifn_unique_kind, enum ifn_goacc_loop_kind, enum
1586 ifn_goacc_reduction_kind): Use them.
1587 * gimple-pretty-print.c (dump_gimple_call_args): Decode first arg
1588 of internal functions, when applicable.
1589
1590 2016-09-27 Maciej W. Rozycki <macro@imgtec.com>
1591
1592 * config/mips/constraints.md (d): Fix documentation.
1593 * doc/md.texi (Machine Constraints): Update accordingly.
1594
1595 2016-09-27 Richard Biener <rguenther@suse.de>
1596
1597 * dwarf2out.c (dwarf2out_init): Move text_section_line_info,
1598 cur_line_info_table initialization ...
1599 (dwarf2out_assembly_start): ... here.
1600
1601 2016-09-27 Matthew Wahab <matthew.wahab@arm.com>
1602
1603 * config/arm/arm.md (*arm_movsi_insn): Add "arch" attribute.
1604 * config/arm/vfp.md (*arm_movhi_vfp): Likewise.
1605 (*thumb2_movhi_vfp): Likewise.
1606 (*arm_movhi_fp16): Remove predication operand from VMOV.F16
1607 template. Expand predicable attribute to mark VMOV.F16 as not
1608 predicable. Add "arch" attribute.
1609 (*thumb2_movhi_fp16): Likewise.
1610 (*arm_movsi_vfp): Break a long line. Add "arch" attribute.
1611 (*thumb2_movsi_vfp): Add "arch" attribute.
1612
1613 2016-09-27 David Edelsohn <dje.gcc@gmail.com>
1614
1615 * config/rs6000/rs6000.c (rs6000_output_symbol): Don't modify
1616 VAR_DECL string.
1617
1618 2016-09-27 Marek Polacek <polacek@redhat.com>
1619
1620 * config/ia64/ia64.c (ia64_print_operand): Adjust fall through
1621 comment.
1622
1623 * config/c6x/c6x.h: Adjust fall through comment.
1624 * config/sh/sh.c (final_prescan_insn): Likewise.
1625 * config/visium/visium.c (visium_expand_int_cstore): Likewise.
1626 (visium_expand_fp_cstore): Likewise.
1627
1628 2016-09-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1629
1630 * config/arm/arm.c (const_ok_for_op): Use "Fall through" comment form
1631 expected by -Wimplicit-fallthrough.
1632 (thumb1_size_rtx_costs): Likewise.
1633 (thumb2_reorg): Likewise.
1634 (tls_mentioned_p): Add "Fall through" comment.
1635 (thumb2_reorg): Likewise.
1636 * config/arm/arm-builtins.c (arm_expand_neon_args): Use "Fall through"
1637 comment form expected by -Wimplicit-fallthrough.
1638
1639 2016-09-27 Martin Liska <mliska@suse.cz>
1640
1641 PR gcov-profile/46266
1642 * input.h (RESERVED_LOCATION_P): New macro.
1643 * profile.c (branch_prob): Use RESERVED_LOCATION_P and
1644 instread of comparison with UNKNOWN_LOCATION.
1645
1646 2016-09-27 Richard Biener <rguenther@suse.de>
1647
1648 PR tree-optimization/77745
1649 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
1650 When removing redundant stores make sure to check compatibility
1651 of the TBAA state for downstream accesses.
1652 * tree-ssa-sccvn.c (visit_reference_op_store): Likewise for when
1653 value-numbering virtual operands for store matches.
1654
1655 2016-09-27 Oleg Endo <olegendo@gcc.gnu.org>
1656
1657 PR target/51244
1658 * config/sh/sh.c (sh_rtx_costs): Fix return value of SET of movt and
1659 movrt patterns. Match them before anything else in the SET case.
1660
1661 2016-09-27 Martin Liska <mliska@suse.cz>
1662
1663 PR gcov-profile/7970
1664 PR gcov-profile/16855
1665 PR gcov-profile/44779
1666 * coverage.c (build_gcov_exit_decl): New function.
1667 (coverage_obj_init): Call the function and generate __gcov_exit
1668 destructor.
1669 * doc/gcov.texi: Document when __gcov_exit function is called.
1670
1671 2016-09-27 Marek Polacek <polacek@redhat.com>
1672
1673 PR bootstrap/77751
1674 * Makefile.in (insn-attrtab.o-warn, insn-dfatab.o-warn,
1675 insn-latencytab.o-warn, insn-output.o-warn, insn-emit.o-warn): Use
1676 -Wno-error instead of -Wno-implicit-fallthrough.
1677
1678 2016-09-27 Martin Liska <mliska@suse.cz>
1679
1680 PR bootstrap/77749
1681 * gcov-counter.def: Remove GCOV_COUNTER_V_DELTA.
1682
1683 2016-09-27 Jakub Jelinek <jakub@redhat.com>
1684
1685 * combine.c (simplify_comparison): Add canonical FALLTHROUGH comments.
1686 * config/i386/i386.c (ix86_dep_by_shift_count_body): Add FALLTHROUGH
1687 comments. Remove break after return.
1688 (ix86_fp_compare_code_to_integer, has_dispatch,
1689 ix86_simd_clone_usable): Remove break after return.
1690
1691 2016-09-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
1692
1693 PR rlt-optimization/77714
1694 * lra-eliminations.c (eliminate_regs_in_insn): Avoid alias on
1695 REG_EQUAL note.
1696
1697 2016-09-27 Kugan Vivekanandarajah <kuganv@linaro.org>
1698
1699 PR ipa/77677
1700 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Use
1701 extract_range_from_unary_expr to convert value_range.
1702 * tree-vrp.c (extract_range_from_unary_expr_1): Rename to.
1703 (extract_range_from_unary_expr): This.
1704 * tree-vrp.h (extract_range_from_unary_expr): Declare.
1705
1706 2016-09-27 Segher Boessenkool <segher@kernel.crashing.org>
1707
1708 * config/rs6000/rs6000.md (movcc_internal1): Disparage using CTR or LR.
1709
1710 2016-09-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1711
1712 * config/i386/i386.c (ix86_print_operand)
1713 [HAVE_AS_IX86_CMOV_SUN_SYNTAX]: Add gcc_fallthrough.
1714 * config/sparc/sparc.c (check_pic): Add fallthrough comment.
1715 (epilogue_renumber): Likewise.
1716
1717 2016-09-26 Kugan Vivekanandarajah <kuganv@linaro.org>
1718
1719 PR middle-end/77719
1720 * tree-ssa-reassoc.c (make_new_ssa_for_def): Use gimple_get_lhs
1721 to get lhs instead of gimple_assign_lhs as stmt can be builtins too.
1722
1723 2016-09-26 Thomas Preud'homme <thomas.preudhomme@arm.com>
1724
1725 * tree.h (memmodel_from_int, memmodel_base, is_mm_relaxed,
1726 is_mm_consume, is_mm_acquire, is_mm_release, is_mm_acq_rel,
1727 is_mm_seq_cst, is_mm_sync): Move to ...
1728 * memmodel.h: This. New file.
1729 * builtins.c: Include memmodel.h.
1730 * optabs.c: Likewise.
1731 * tsan.c: Likewise.
1732 * config/aarch64/aarch64.c: Likewise.
1733 * config/alpha/alpha.c: Likewise.
1734 * config/arm/arm.c: Likewise.
1735 * config/i386/i386.c: Likewise.
1736 * config/ia64/ia64.c: Likewise.
1737 * config/mips/mips.c: Likewise.
1738 * config/rs6000/rs6000.c: Likewise.
1739 * config/sparc/sparc.c: Likewise.
1740 * genconditions.c: Include memmodel.h in generated file.
1741 * genemit.c: Likewise.
1742 * genoutput.c: Likewise.
1743 * genpeep.c: Likewise.
1744 * genpreds.c: Likewise.
1745 * genrecog.c: Likewise.
1746
1747 2016-09-26 David Malcolm <dmalcolm@redhat.com>
1748
1749 * read-rtl.c (read_rtx_code): Rename local "i" to "idx", and use
1750 "c" instead when parsing characters. Move operand parsing into...
1751 (read_rtx_operand): ...this new function, renaming "i" to "idx",
1752 and tightening the scope of various locals.
1753
1754 2016-09-26 Liu Hao <lh_mouse@126.com>
1755
1756 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Fix typo.
1757
1758 2016-09-26 Marek Polacek <polacek@redhat.com>
1759
1760 * system.h: Use __has_attribute to check whether the fallthrough
1761 attribute is supported.
1762
1763 2016-09-26 Marek Polacek <polacek@redhat.com>
1764
1765 * ipa-inline-analysis.c (find_foldable_builtin_expect): Use
1766 gimple_call_internal_p.
1767 * ipa-split.c (find_return_bb): Likewise.
1768 (execute_split_functions): Likewise.
1769 * omp-low.c (dump_oacc_loop_part): Likewise.
1770 (oacc_loop_xform_head_tail): Likewise.
1771 * predict.c (predict_loops): Likewise.
1772 * sanopt.c (pass_sanopt::execute): Likewise.
1773 * tree-cfg.c (get_abnormal_succ_dispatcher): Likewise.
1774 * tree-parloops.c (oacc_entry_exit_ok_1): Likewise.
1775 * tree-stdarg.c (gimple_call_ifn_va_arg_p): Remove function.
1776 (expand_ifn_va_arg_1): Use gimple_call_internal_p.
1777 (expand_ifn_va_arg): Likewise.
1778 * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
1779 (optimize_mask_stores): Likewise.
1780 * tree-vect-stmts.c (vect_simd_lane_linear): Likewise.
1781 (vect_transform_stmt): Likewise.
1782 * tree-vectorizer.c (vect_loop_vectorized_call): Likewise.
1783 * tsan.c (instrument_memory_accesses): Likewise.
1784
1785 2016-09-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1786 Alexander Monakov <amonakov@ispras.ru>
1787
1788 * regrename.c (rename_chains): Check
1789 HARD_FRAME_POINTER_IS_FRAME_POINTER rather than
1790 HARD_FRAME_POINTER_REGNUM when picking unavailable registers.
1791 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
1792
1793 2016-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1794
1795 * config/s390/s390.c (s390_rtx_costs): Add /* fallthrough */.
1796 (s390_sched_score): Likewise.
1797
1798 2016-09-26 Martin Liska <mliska@suse.cz>
1799
1800 * doc/gcov.texi: Update program output of gcov tool.
1801
1802 2016-09-26 Martin Liska <mliska@suse.cz>
1803
1804 PR gcov-profile/23332
1805 * profile.c (instrument_values): Do not handle HIST_TYPE_CONST_DELTA.
1806 * tree-profile.c (gimple_gen_const_delta_profiler): Remove.
1807 * value-prof.c (dump_histogram_value): Do not handle
1808 HIST_TYPE_CONST_DELTA.
1809 (stream_in_histogram_value): Likewise.
1810 (gimple_find_values_to_profile): Likewise.
1811 * value-prof.h (enum hist_type): Likewise.
1812
1813 2016-09-26 Martin Liska <mliska@suse.cz>
1814
1815 * common.opt: Exclude SANITIZE_UNREACHABLE and SANITIZE_RETURN
1816 from default sanitize recover values.
1817 * doc/invoke.texi: Fix documentation related to -fsanitize=leak,
1818 -fsanitize=address, -fsanitize=thread and -fsanitize-recover.
1819 * flag-types.h: Replace couple of 1 << x to 1UL << x, make it
1820 consistent.
1821 * opts.c (finish_options): Do a generic loop over options
1822 that can be recovered.
1823 (parse_sanitizer_options): Exclude SANITIZE_UNREACHABLE and
1824 SANITIZE_RETURN.
1825 (common_handle_option): Likewise.
1826 * opts.h: Declare can_recover to sanitizer_opts_s.
1827
1828 2016-09-26 Andre Vieira <andre.simoesdiasvieira@arm.com>
1829
1830 * target.def(elf_flags_numeric): Change documentation to present tense.
1831 * doc/tm.texi: Regenerate.
1832
1833 2016-09-26 Marek Polacek <polacek@redhat.com>
1834
1835 PR c/7652
1836 * Makefile.in (insn-attrtab.o-warn, insn-dfatab.o-warn,
1837 insn-latencytab.o-warn, insn-output.o-warn, insn-emit.o-warn): Add
1838 -Wno-switch-fallthrough.
1839 * builtins.c (expand_builtin_int_roundingfn_2): Add gcc_fallthrough.
1840 (expand_builtin): Likewise.
1841 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass): Likewise.
1842 * convert.c (convert_to_real_1): Likewise.
1843 (convert_to_integer_1): Likewise.
1844 * final.c (output_alternate_entry_point): Likewise.
1845 * genattrtab.c (make_canonical): Likewise.
1846 (write_test_expr): Likewise.
1847 * genpreds.c (validate_exp): Likewise.
1848 * gimple-ssa-strength-reduction.c
1849 (find_candidates_dom_walker::before_dom_children): Likewise.
1850 * godump.c (go_format_type): Likewise.
1851 * reload1.c (elimination_effects): Likewise.
1852 * resource.c (mark_referenced_resources): Likewise.
1853 (mark_set_resources): Likewise.
1854 * tree-ssa-loop-ivopts.c (find_deriving_biv_for_expr): Likewise.
1855 * varasm.c (output_addressed_constants): Likewise.
1856
1857 2016-09-26 Marek Polacek <polacek@redhat.com>
1858
1859 PR c/7652
1860 * common.opt (Wimplicit-fallthrough): New option.
1861 * doc/extend.texi: Document statement attributes and the fallthrough
1862 attribute.
1863 * doc/invoke.texi: Document -Wimplicit-fallthrough.
1864 * gimple.h (gimple_call_internal_p): New function.
1865 * gimplify.c (struct gimplify_ctx): Add in_switch_expr.
1866 (struct label_entry): New struct.
1867 (find_label_entry): New function.
1868 (case_label_p): New function.
1869 (collect_fallthrough_labels): New function.
1870 (last_stmt_in_scope): New function.
1871 (should_warn_for_implicit_fallthrough): New function.
1872 (warn_implicit_fallthrough_r): New function.
1873 (maybe_warn_implicit_fallthrough): New function.
1874 (expand_FALLTHROUGH_r): New function.
1875 (expand_FALLTHROUGH): New function.
1876 (gimplify_switch_expr): Call maybe_warn_implicit_fallthrough and
1877 expand_FALLTHROUGH for the innermost GIMPLE_SWITCH.
1878 (gimplify_label_expr): New function.
1879 (gimplify_case_label_expr): Set location.
1880 (gimplify_expr): Call gimplify_label_expr.
1881 * internal-fn.c (expand_FALLTHROUGH): New function.
1882 * internal-fn.def (FALLTHROUGH): New internal function.
1883 * langhooks.c (lang_GNU_OBJC): New function.
1884 * langhooks.h (lang_GNU_OBJC): Declare.
1885 * system.h (gcc_fallthrough): Define.
1886 * tree-core.h: Add FALLTHROUGH_LABEL_P comment.
1887 * tree.h (FALLTHROUGH_LABEL_P): Define.
1888
1889 2016-09-26 Richard Biener <rguenther@suse.de>
1890
1891 * dwarf2out.c (stripattributes): Remove unused function.
1892 (DEBUG_NORM_MACINFO_SECTION): Rename to DEBUG_MACINFO_SECTION.
1893 Push dwarf_split_debug_info handling into init_sections_and_labels.
1894 (DEBUG_NORM_MACRO_SECTION): Likewise to DEBUG_MACRO_SECTION.
1895 (DEBUG_MACRO_SECTION_FLAGS): Remove.
1896 (debug_macinfo_section_name): New global.
1897 (output_macinfo): Use debug_macinfo_section_name.
1898 (init_sections_and_labels): Split out section and label generation
1899 from dwarf2out_init. Set debug_macinfo_section_name.
1900 (dwarf2out_init): Move text section label generation and emission
1901 to ...
1902 (dwarf2out_assembly_start): ... here.
1903 (dwarf2out_finish): Call init_sections_and_labels before DWARF
1904 output starts.
1905
1906 2016-09-26 Richard Biener <rguenther@suse.de>
1907
1908 PR debug/77692
1909 * cgraphunit.c (analyze_functions): Before early removing
1910 global vars calls the late_global_decl debug handler mark
1911 the variable as readonly.
1912
1913 2016-09-25 Oleg Endo <olegendo@gcc.gnu.org>
1914
1915 PR target/51244
1916 * config/sh/sh.c (sh_movt_set_dest, sh_movrt_set_dest): Add overloads.
1917 (sh_rtx_costs): Handle SET of movt and movrt patterns.
1918 * cnofig/sh/sh-protos.h (sh_movt_set_dest, sh_movrt_set_dest): Forward
1919 declare new overloads.
1920 * config/sh/sh.md (*cset_zero): Add variant that takes a treg_set_expr
1921 operand.
1922
1923 2016-09-24 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
1924
1925 * config/rs6000/rs6000.c (expand_block_compare, do_load_for_compare):
1926 Change TARGET_LITTLE_ENDIAN to !BYTES_BIG_ENDIAN.
1927
1928 2016-09-24 David Edelsohn <dje.gcc@gmail.com>
1929
1930 * configure.ac (gcc_cv_as_aix_dwloc): Fix typo in assembly fragment.
1931 * configure: Regenerate.
1932
1933 2016-09-24 Marek Polacek <polacek@redhat.com>
1934
1935 PR c/77490
1936 * doc/invoke.texi: Document -Wbool-operation.
1937
1938 2016-09-23 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
1939
1940 * config/rs6000/rs6000.md (cmpmemsi): New define_expand.
1941 * config/rs6000/rs6000.c (expand_block_compare): New function used by
1942 cmpmemsi pattern to do builtin expansion of memcmp ().
1943 (compute_current_alignment): Add helper function for
1944 expand_block_compare used to compute alignment as the compare proceeds.
1945 (select_block_compare_mode): Used by expand_block_compare to select
1946 the mode used for reading the next chunk of bytes in the compare.
1947 (do_load_for_compare): Used by expand_block_compare to emit the load
1948 insns for the compare.
1949 (rs6000_emit_dot_insn): Moved this function to avoid a forward
1950 reference from expand_block_compare ().
1951 * config/rs6000/rs6000-protos.h (expand_block_compare): Add a
1952 prototype for this function.
1953 * config/rs6000/rs6000.opt (mblock-compare-inline-limit): Add a new
1954 target option for controlling how much code inline expansion of
1955 memcmp() will be allowed to generate.
1956
1957 2016-09-23 Jakub Jelinek <jakub@redhat.com>
1958
1959 * hooks.c (hook_bool_bool_false, hook_bool_bool_gcc_optionsp_false,
1960 hook_bool_mode_false, hook_bool_mode_true,
1961 hook_bool_mode_const_rtx_false, hook_bool_mode_const_rtx_true,
1962 hook_bool_mode_rtx_false, hook_bool_mode_rtx_true,
1963 hook_bool_const_rtx_insn_const_rtx_insn_true,
1964 hook_bool_mode_uhwi_false, hook_void_FILEptr_constcharptr,
1965 hook_bool_FILEptr_rtx_false, hook_bool_gsiptr_false,
1966 hook_bool_const_tree_hwi_hwi_const_tree_false,
1967 hook_bool_const_tree_hwi_hwi_const_tree_true,
1968 default_can_output_mi_thunk_no_vcall, hook_int_uint_mode_1,
1969 hook_int_const_tree_0, hook_int_const_tree_const_tree_1,
1970 hook_int_rtx_0, hook_int_rtx_bool_0, hook_void_tree,
1971 hook_void_constcharptr, hook_void_tree_treeptr, hook_void_int_int,
1972 hook_bool_tree_false, hook_bool_const_tree_false, hook_bool_tree_true,
1973 hook_bool_const_tree_true, hook_bool_tree_tree_false,
1974 hook_bool_tree_tree_true, hook_bool_tree_bool_false,
1975 hook_bool_rtx_insn_true, hook_bool_rtx_false,
1976 hook_bool_uintp_uintp_false,
1977 hook_bool_rtx_mode_int_int_intp_bool_false, hook_rtx_rtx_null,
1978 hook_rtx_tree_int_null, hook_uint_mode_0,
1979 hook_constcharptr_const_tree_null, hook_tree_tree_int_treep_bool_null,
1980 hook_tree_tree_tree_null, hook_tree_tree_tree_tree_null,
1981 hook_constcharptr_const_rtx_insn_null,
1982 hook_constcharptr_const_tree_const_tree_null,
1983 hook_constcharptr_int_const_tree_null,
1984 hook_constcharptr_int_const_tree_const_tree_null,
1985 hook_tree_const_tree_null, hook_bool_rtx_insn_int_false,
1986 hook_void_rtx_insn_int, hook_void_gcc_optionsp): For arguments with
1987 ATTRIBUTE_UNUSED, remove parameter name as well as ATTRIBUTE_UNUSED.
1988
1989 * vec.h (vNULL): Extend comment to say = vNULL initialization
1990 isn't needed for static vars.
1991
1992 * sel-sched-ir.c (sel_global_bb_info, sel_region_bb_info,
1993 loop_nests, s_i_d, last_added_blocks): Remove unnecessary
1994 = vNULL initialization of file scope vec.
1995 * passes.c (pass_tab, enabled_pass_uid_range_tab,
1996 disabled_pass_uid_range_tab): Likewise.
1997 * haifa-sched.c (sched_luids, h_i_d): Likewise.
1998 * tree-chkp-opt.c (check_infos): Likewise.
1999 * sel-sched.c (vec_av_set, vec_temp_moveop_nops): Likewise.
2000
2001 * vec.h (vnull::operator vec): Add constexpr keyword for
2002 C++11 and later.
2003
2004 2016-09-23 Doug Gilmore <doug.gilmore@imgtec.com>
2005
2006 PR tree-optimization/77654
2007 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Add call
2008 to duplicate_ssa_name_ptr_info.
2009
2010 2016-09-23 David Malcolm <dmalcolm@redhat.com>
2011
2012 PR preprocessor/77672
2013 * input.c (selftest::test_lexer_string_locations_simple): Update
2014 test to expect location information of the terminator character
2015 at the location of the final closing quote.
2016 (selftest::test_lexer_string_locations_hex): Likewise.
2017 (selftest::test_lexer_string_locations_oct): Likewise.
2018 (selftest::test_lexer_string_locations_letter_escape_1): Likewise.
2019 (selftest::test_lexer_string_locations_letter_escape_2): Likewise.
2020 (selftest::test_lexer_string_locations_ucn4): Likewise.
2021 (selftest::test_lexer_string_locations_ucn8): Likewise.
2022 (selftest::test_lexer_string_locations_u8): Likewise.
2023 (selftest::test_lexer_string_locations_utf8_source): Likewise.
2024 (selftest::test_lexer_string_locations_concatenation_1): Likewise.
2025 (selftest::test_lexer_string_locations_concatenation_2): Likewise.
2026 (selftest::test_lexer_string_locations_concatenation_3): Likewise.
2027 (selftest::test_lexer_string_locations_macro): Likewise.
2028 (selftest::test_lexer_string_locations_long_line): Likewise.
2029
2030 2016-09-23 Richard Biener <rguenther@suse.de>
2031
2032 * tree-ssa-sccvn.c (visit_reference_op_call): Value number
2033 virtual definition to virtual use if the call devirtualizes
2034 to a const or pure function.
2035 (visit_use): Also visit calls we can devirtualize to a
2036 const or pure function.
2037
2038 2016-09-23 Richard Biener <rguenther@suse.de>
2039
2040 PR tree-optimization/77697
2041 * tree-ssa-forwprop.c (defcodefor_name): Remove bogus code,
2042 signal error if we have sth ternary or unhandled.
2043
2044 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
2045
2046 * config/arm/arm_neon.h (vabd_f16): New.
2047 (vabdq_f16): New.
2048 (vabs_f16): New.
2049 (vabsq_f16): New.
2050 (vadd_f16): New.
2051 (vaddq_f16): New.
2052 (vcage_f16): New.
2053 (vcageq_f16): New.
2054 (vcagt_f16): New.
2055 (vcagtq_f16): New.
2056 (vcale_f16): New.
2057 (vcaleq_f16): New.
2058 (vcalt_f16): New.
2059 (vcaltq_f16): New.
2060 (vceq_f16): New.
2061 (vceqq_f16): New.
2062 (vceqz_f16): New.
2063 (vceqzq_f16): New.
2064 (vcge_f16): New.
2065 (vcgeq_f16): New.
2066 (vcgez_f16): New.
2067 (vcgezq_f16): New.
2068 (vcgt_f16): New.
2069 (vcgtq_f16): New.
2070 (vcgtz_f16): New.
2071 (vcgtzq_f16): New.
2072 (vcle_f16): New.
2073 (vcleq_f16): New.
2074 (vclez_f16): New.
2075 (vclezq_f16): New.
2076 (vclt_f16): New.
2077 (vcltq_f16): New.
2078 (vcltz_f16): New.
2079 (vcltzq_f16): New.
2080 (vcvt_f16_s16): New.
2081 (vcvt_f16_u16): New.
2082 (vcvt_s16_f16): New.
2083 (vcvt_u16_f16): New.
2084 (vcvtq_f16_s16): New.
2085 (vcvtq_f16_u16): New.
2086 (vcvtq_s16_f16): New.
2087 (vcvtq_u16_f16): New.
2088 (vcvta_s16_f16): New.
2089 (vcvta_u16_f16): New.
2090 (vcvtaq_s16_f16): New.
2091 (vcvtaq_u16_f16): New.
2092 (vcvtm_s16_f16): New.
2093 (vcvtm_u16_f16): New.
2094 (vcvtmq_s16_f16): New.
2095 (vcvtmq_u16_f16): New.
2096 (vcvtn_s16_f16): New.
2097 (vcvtn_u16_f16): New.
2098 (vcvtnq_s16_f16): New.
2099 (vcvtnq_u16_f16): New.
2100 (vcvtp_s16_f16): New.
2101 (vcvtp_u16_f16): New.
2102 (vcvtpq_s16_f16): New.
2103 (vcvtpq_u16_f16): New.
2104 (vcvt_n_f16_s16): New.
2105 (vcvt_n_f16_u16): New.
2106 (vcvtq_n_f16_s16): New.
2107 (vcvtq_n_f16_u16): New.
2108 (vcvt_n_s16_f16): New.
2109 (vcvt_n_u16_f16): New.
2110 (vcvtq_n_s16_f16): New.
2111 (vcvtq_n_u16_f16): New.
2112 (vfma_f16): New.
2113 (vfmaq_f16): New.
2114 (vfms_f16): New.
2115 (vfmsq_f16): New.
2116 (vmax_f16): New.
2117 (vmaxq_f16): New.
2118 (vmaxnm_f16): New.
2119 (vmaxnmq_f16): New.
2120 (vmin_f16): New.
2121 (vminq_f16): New.
2122 (vminnm_f16): New.
2123 (vminnmq_f16): New.
2124 (vmul_f16): New.
2125 (vmul_lane_f16): New.
2126 (vmul_n_f16): New.
2127 (vmulq_f16): New.
2128 (vmulq_lane_f16): New.
2129 (vmulq_n_f16): New.
2130 (vneg_f16): New.
2131 (vnegq_f16): New.
2132 (vpadd_f16): New.
2133 (vpmax_f16): New.
2134 (vpmin_f16): New.
2135 (vrecpe_f16): New.
2136 (vrecpeq_f16): New.
2137 (vrnd_f16): New.
2138 (vrndq_f16): New.
2139 (vrnda_f16): New.
2140 (vrndaq_f16): New.
2141 (vrndm_f16): New.
2142 (vrndmq_f16): New.
2143 (vrndn_f16): New.
2144 (vrndnq_f16): New.
2145 (vrndp_f16): New.
2146 (vrndpq_f16): New.
2147 (vrndx_f16): New.
2148 (vrndxq_f16): New.
2149 (vrsqrte_f16): New.
2150 (vrsqrteq_f16): New.
2151 (vrecps_f16): New.
2152 (vrecpsq_f16): New.
2153 (vrsqrts_f16): New.
2154 (vrsqrtsq_f16): New.
2155 (vsub_f16): New.
2156 (vsubq_f16): New.
2157
2158 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
2159
2160 * config.gcc (extra_headers): Add arm_fp16.h
2161 * config/arm/arm_fp16.h: New.
2162 * config/arm/arm_neon.h: Include "arm_fp16.h".
2163
2164 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
2165
2166 * config/arm/arm_neon_builtins.def (vadd): New (v8hf, v4hf
2167 variants).
2168 (vmulf): New (v8hf, v4hf variants).
2169 (vfma): New (v8hf, v4hf variants).
2170 (vfms): New (v8hf, v4hf variants).
2171 (vsub): New (v8hf, v4hf variants).
2172 (vcage): New (v8hf, v4hf variants).
2173 (vcagt): New (v8hf, v4hf variants).
2174 (vcale): New (v8hf, v4hf variants).
2175 (vcalt): New (v8hf, v4hf variants).
2176 (vceq): New (v8hf, v4hf variants).
2177 (vcgt): New (v8hf, v4hf variants).
2178 (vcge): New (v8hf, v4hf variants).
2179 (vcle): New (v8hf, v4hf variants).
2180 (vclt): New (v8hf, v4hf variants).
2181 (vceqz): New (v8hf, v4hf variants).
2182 (vcgez): New (v8hf, v4hf variants).
2183 (vcgtz): New (v8hf, v4hf variants).
2184 (vcltz): New (v8hf, v4hf variants).
2185 (vclez): New (v8hf, v4hf variants).
2186 (vabd): New (v8hf, v4hf variants).
2187 (vmaxf): New (v8hf, v4hf variants).
2188 (vmaxnm): New (v8hf, v4hf variants).
2189 (vminf): New (v8hf, v4hf variants).
2190 (vminnm): New (v8hf, v4hf variants).
2191 (vpmaxf): New (v4hf variant).
2192 (vpminf): New (v4hf variant).
2193 (vpadd): New (v4hf variant).
2194 (vrecps): New (v8hf, v4hf variants).
2195 (vrsqrts): New (v8hf, v4hf variants).
2196 (vabs): New (v8hf, v4hf variants).
2197 (vneg): New (v8hf, v4hf variants).
2198 (vrecpe): New (v8hf, v4hf variants).
2199 (vrnd): New (v8hf, v4hf variants).
2200 (vrnda): New (v8hf, v4hf variants).
2201 (vrndm): New (v8hf, v4hf variants).
2202 (vrndn): New (v8hf, v4hf variants).
2203 (vrndp): New (v8hf, v4hf variants).
2204 (vrndx): New (v8hf, v4hf variants).
2205 (vrsqrte): New (v8hf, v4hf variants).
2206 (vmul_lane): Add v4hf and v8hf variants.
2207 (vmul_n): Add v4hf and v8hf variants.
2208 (vext): New (v8hf, v4hf variants).
2209 (vcvts): New (v8hi, v4hi variants).
2210 (vcvts): New (v8hf, v4hf variants).
2211 (vcvtu): New (v8hi, v4hi variants).
2212 (vcvtu): New (v8hf, v4hf variants).
2213 (vcvts_n): New (v8hf, v4hf variants).
2214 (vcvtu_n): New (v8hi, v4hi variants).
2215 (vcvts_n): New (v8hi, v4hi variants).
2216 (vcvtu_n): New (v8hf, v4hf variants).
2217 (vbsl): New (v8hf, v4hf variants).
2218 (vcvtas): New (v8hf, v4hf variants).
2219 (vcvtau): New (v8hf, v4hf variants).
2220 (vcvtms): New (v8hf, v4hf variants).
2221 (vcvtmu): New (v8hf, v4hf variants).
2222 (vcvtns): New (v8hf, v4hf variants).
2223 (vcvtnu): New (v8hf, v4hf variants).
2224 (vcvtps): New (v8hf, v4hf variants).
2225 (vcvtpu): New (v8hf, v4hf variants).
2226
2227 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
2228
2229 * config/arm/arm-builtins.c (hf_UP): New.
2230 (si_UP): New.
2231 (vfp_builtin_data): New. Update comment.
2232 (enum arm_builtins): Include "arm_vfp_builtins.def".
2233 (ARM_BUILTIN_VFP_PATTERN_START): New.
2234 (arm_init_vfp_builtins): New.
2235 (arm_init_builtins): Add arm_init_vfp_builtins.
2236 (arm_expand_vfp_builtin): New.
2237 (arm_expand_builtins): Update for arm_expand_vfp_builtin. Fix
2238 long line.
2239 * config/arm/arm_vfp_builtins.def: New file.
2240 * config/arm/t-arm (arm.o): Add arm_vfp_builtins.def.
2241 (arm-builtins.o): Likewise.
2242
2243 2016-09-23 Kugan Vivekanandarajah <kuganv@linaro.org>
2244
2245 PR ipa/77677
2246 * ipa-cp.c (propagate_vr_accross_jump_function): Drop TREE_OVERFLOW
2247 from constant while creating value range.
2248
2249 2016-09-23 Renlin Li <renlin.li@arm.com>
2250
2251 * ira.c (ira): Move ira_use_lra_p initialization code to ...
2252 (ira_init_once): Here.
2253
2254 2016-09-23 Uros Bizjak <ubizjak@gmail.com>
2255 Jakub Jelinek <jakub@redhat.com>
2256
2257 * hooks.h (hook_uint_uintp_false): Rename to...
2258 (hook_bool_uint_uintp_false): ... this.
2259 * hooks.c (hook_uint_uintp_false): Rename to...
2260 (hook_bool_uint_uintp_false): ... this.
2261 * target.def (elf_flags_numeric): Use hook_bool_uint_uintp_false
2262 instead of hook_uint_uintp_false.
2263
2264 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
2265
2266 * config/arm/arm-builtins.c (arm_init_neon_builtin): New.
2267 (arm_init_builtins): Move body of a loop to the standalone
2268 function arm_init_neon_builtin.
2269 (arm_expand_neon_builtin_1): New. Update comment. Function body
2270 moved from arm_neon_builtin with some white-space fixes.
2271 (arm_expand_neon_builtin): Move code into the standalone function
2272 arm_expand_neon_builtin_1.
2273
2274 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
2275
2276 * config/arm/iterators.md (VCVTHI): New.
2277 (NEON_VCMP): Add UNSPEC_VCLT and UNSPEC_VCLE. Fix a long line.
2278 (NEON_VAGLTE): New.
2279 (VFM_LANE_AS): New.
2280 (VH_CVTTO): New.
2281 (V_reg): Add HF, V4HF and V8HF. Fix white-space.
2282 (V_HALF): Add V4HF. Fix white-space.
2283 (V_if_elem): Add HF, V4HF and V8HF. Fix white-space.
2284 (V_s_elem): Likewise.
2285 (V_sz_elem): Fix white-space.
2286 (V_elem_ch): Likewise.
2287 (VH_elem_ch): New.
2288 (scalar_mul_constraint): Add V8HF and V4HF.
2289 (Is_float_mode): Fix white-space.
2290 (Is_d_reg): Add V4HF and V8HF. Fix white-space.
2291 (q): Add HF. Fix white-space.
2292 (float_sup): New.
2293 (float_SUP): New.
2294 (cmp_op_unsp): Add UNSPEC_VCALE and UNSPEC_VCALT.
2295 (neon_vfm_lane_as): New.
2296 * config/arm/neon.md (add<mode>3_fp16): New.
2297 (sub<mode>3_fp16): New.
2298 (mul<mode>3add<mode>_neon): New.
2299 (fma<VH:mode>4_intrinsic): New.
2300 (fmsub<VCVTF:mode>4_intrinsic): Fix white-space.
2301 (fmsub<VH:mode>4_intrinsic): New.
2302 (<absneg_str><mode>2): New.
2303 (neon_v<absneg_str><mode>): New.
2304 (neon_v<fp16_rnd_str><mode>): New.
2305 (neon_vrsqrte<mode>): New.
2306 (neon_vpaddv4hf): New.
2307 (neon_vadd<mode>): New.
2308 (neon_vsub<mode>): New.
2309 (neon_vmulf<mode>): New.
2310 (neon_vfma<VH:mode>): New.
2311 (neon_vfms<VH:mode>): New.
2312 (neon_vc<cmp_op><mode>): New.
2313 (neon_vc<cmp_op><mode>_fp16insn): New
2314 (neon_vc<cmp_op_unsp><mode>_fp16insn_unspec): New.
2315 (neon_vca<cmp_op><mode>): New.
2316 (neon_vca<cmp_op><mode>_fp16insn): New.
2317 (neon_vca<cmp_op_unsp><mode>_fp16insn_unspec): New.
2318 (neon_vc<cmp_op>z<mode>): New.
2319 (neon_vabd<mode>): New.
2320 (neon_v<maxmin>f<mode>): New.
2321 (neon_vp<maxmin>fv4hf: New.
2322 (neon_<fmaxmin_op><mode>): New.
2323 (neon_vrecps<mode>): New.
2324 (neon_vrsqrts<mode>): New.
2325 (neon_vrecpe<mode>): New (VH variant).
2326 (neon_vdup_lane<mode>_internal): New.
2327 (neon_vdup_lane<mode>): New.
2328 (neon_vcvt<sup><mode>): New (VCVTHI variant).
2329 (neon_vcvt<sup><mode>): New (VH variant).
2330 (neon_vcvt<sup>_n<mode>): New (VH variant).
2331 (neon_vcvt<sup>_n<mode>): New (VCVTHI variant).
2332 (neon_vcvt<vcvth_op><sup><mode>): New.
2333 (neon_vmul_lane<mode>): New.
2334 (neon_vmul_n<mode>): New.
2335 * config/arm/unspecs.md (UNSPEC_VCALE): New
2336 (UNSPEC_VCALT): New.
2337 (UNSPEC_VFMA_LANE): New.
2338 (UNSPECS_VFMS_LANE): New.
2339
2340 2016-09-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
2341
2342 * config/s390/s390.md ("*extzv<mode>_zEC12", "*extzv<mode>_z10")
2343 ("*extzv<mode><clobbercc_or_nocc>"):
2344 Correct a typo in a comment.
2345 Merged patterns.
2346 ("*insv<mode>_zEC12", "*insv<mode>_z10")
2347 ("*insv<mode><clobbercc_or_nocc>"): Ditto.
2348 ("*insv<mode>_zEC12_appendbitsleft")
2349 ("*insv<mode><clobbercc_or_nocc>_appendbitsleft")
2350 ("*insv<mode>_z10_appendbitsleft"): Ditto.
2351 ("*insv<mode>_zEC12_noshift", "*insv<mode>_z10_noshift")
2352 ("*insv<mode><clobbercc_or_nocc>_noshift"): Ditto.
2353 Provide pattern with operands switched.
2354 ("*pre_z10_extv<mode>"):
2355 Use new subst patterns.
2356 ("*extzvdi<clobbercc_or_nocc>_lshiftrt", "*<risbg_n>_ior_and_sr_ze")
2357 ("*extvsidi<clobbercc_or_nocc>", "*<risbg_n>_and_subregdi_rotr")
2358 ("*<risbg_n>_and_subregdi_rotl", "*<risbg_n>_di_and_rot")
2359 ("*insv_z10_noshift_cc", "*insv_z10_noshift_cconly")
2360 ("*<risbg_n>_<mode>_ior_and_lshiftrt")
2361 ("*<risbg_n>_sidi_ior_and_lshiftrt")
2362 ("*trunc_sidi_and_subreg_lshrt<clobbercc_or_nocc>"):
2363 New patterns.
2364 ("*extzv_<mode>_sll", "*extzv_<mode>_srl")
2365 ("*extzv_<mode>_srl<clobbercc_or_nocc>")
2366 ("*extzv_<mode>_sll<clobbercc_or_nocc>"): Renamed patterns, use risbgn
2367 on zEC12.
2368 ("SINT"): New mode_iterator with SI, HI, QI.
2369 * config/s390/subst.md ("clobbercc_or_nocc_subst", "z10_or_zEC12_cond")
2370 ("clobbercc_or_nocc", "risbg_n"): New constructs for risbg pattern
2371 duplication.
2372
2373 2016-09-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
2374
2375 * config/s390/predicates.md ("contiguous_bitmask_operand"): Adapt to
2376 new interface of s390_contiguous_bitmask_p.
2377 ("contiguous_bitmask_nowrap_operand"): New predicate.
2378 ("*anddi3_cc", "*anddi3_cconly", "*anddi3"): Replace NxxDq with NxxDw.
2379 * config/s390/constraints.md ("NxxDw", "NxxSq"): Adapt to new interface
2380 of s390_contiguous_bitmask_p.
2381 ("NxxDw"): Rename NxxDq constraint to NxxDw.
2382 ("NxxSw"): New constraint.
2383 * config/s390/s390.md ("*andsi3_zarch"): Enable bitmask wraparound.
2384 * config/s390/s390-protos.h (s390_contiguous_bitmask_p): Updated
2385 interface.
2386 (s390_contiguous_bitmask_nowrap_p): Export.
2387 * config/s390/s390.c (s390_contiguous_bitmask_nowrap_p): New name of
2388 former s390_contiguous_bitmask_p.
2389 (s390_contiguous_bitmask_p): Use s390_contiguous_bitmask_nowrap_p to
2390 detect contiguous bit ranges with wraparound. Change signature to
2391 return START and END position instead of POS and LENGTH.
2392 (s390_contiguous_bitmask_vector_p): Remove extra code for continous bit
2393 ranges with wraparound.
2394 (s390_extzv_shift_ok): Use s390_contiguous_bitmask_nowrap_p.
2395 (s390_contiguous_bitmask_vector_p,s390_extzv_shift_ok,print_operand):
2396 Adapt to new signature of s390_contiguous_bitmask_p.
2397
2398 2016-09-23 Bin Cheng <bin.cheng@arm.com>
2399
2400 * tree-vect-loop-manip.c (create_intersect_range_checks_index): New.
2401 (create_intersect_range_checks): New.
2402 (vect_create_cond_for_alias_checks): Call above function.
2403
2404 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
2405
2406 * config/arm/iterators.md (Code iterators): Fix some white-space
2407 in the comments.
2408 (GLTE): New.
2409 (ABSNEG): New
2410 (FCVT): Moved from vfp.md.
2411 (VCVT_HF_US_N): New.
2412 (VCVT_SI_US_N): New.
2413 (VCVT_HF_US): New.
2414 (VCVTH_US): New.
2415 (FP16_RND): New.
2416 (absneg_str): New.
2417 (FCVTI32typename): Moved from vfp.md.
2418 (sup): Add UNSPEC_VCVTA_S, UNSPEC_VCVTA_U, UNSPEC_VCVTM_S,
2419 UNSPEC_VCVTM_U, UNSPEC_VCVTN_S, UNSPEC_VCVTN_U, UNSPEC_VCVTP_S,
2420 UNSPEC_VCVTP_U, UNSPEC_VCVT_HF_S_N, UNSPEC_VCVT_HF_U_N,
2421 UNSPEC_VCVT_SI_S_N, UNSPEC_VCVT_SI_U_N, UNSPEC_VCVTH_S_N,
2422 UNSPEC_VCVTH_U_N, UNSPEC_VCVTH_S and UNSPEC_VCVTH_U.
2423 (vcvth_op): New.
2424 (fp16_rnd_str): New.
2425 (fp16_rnd_insn): New.
2426 * config/arm/unspecs.md (UNSPEC_VCVT_HF_S_N): New.
2427 (UNSPEC_VCVT_HF_U_N): New.
2428 (UNSPEC_VCVT_SI_S_N): New.
2429 (UNSPEC_VCVT_SI_U_N): New.
2430 (UNSPEC_VCVTH_S): New.
2431 (UNSPEC_VCVTH_U): New.
2432 (UNSPEC_VCVTA_S): New.
2433 (UNSPEC_VCVTA_U): New.
2434 (UNSPEC_VCVTM_S): New.
2435 (UNSPEC_VCVTM_U): New.
2436 (UNSPEC_VCVTN_S): New.
2437 (UNSPEC_VCVTN_U): New.
2438 (UNSPEC_VCVTP_S): New.
2439 (UNSPEC_VCVTP_U): New.
2440 (UNSPEC_VCVTP_S): New.
2441 (UNSPEC_VCVTP_U): New.
2442 (UNSPEC_VRND): New.
2443 (UNSPEC_VRNDA): New.
2444 (UNSPEC_VRNDI): New.
2445 (UNSPEC_VRNDM): New.
2446 (UNSPEC_VRNDN): New.
2447 (UNSPEC_VRNDP): New.
2448 (UNSPEC_VRNDX): New.
2449 * config/arm/vfp.md (<absneg_str>hf2): New.
2450 (neon_vabshf): New.
2451 (neon_v<fp16_rnd_str>hf): New.
2452 (neon_vrndihf): New.
2453 (addhf3): New.
2454 (subhf3): New.
2455 (divhf3): New.
2456 (mulhf3): New.
2457 (*mulsf3neghf_vfp): New.
2458 (*negmulhf3_vfp): New.
2459 (*mulsf3addhf_vfp): New.
2460 (*mulhf3subhf_vfp): New.
2461 (*mulhf3neghfaddhf_vfp): New.
2462 (*mulhf3neghfsubhf_vfp): New.
2463 (fmahf4): New.
2464 (neon_vfmahf): New.
2465 (fmsubhf4_fp16): New.
2466 (neon_vfmshf): New.
2467 (*fnmsubhf4): New.
2468 (*fnmaddhf4): New.
2469 (neon_vsqrthf): New.
2470 (neon_vrsqrtshf): New.
2471 (FCVT): Move to iterators.md.
2472 (FCVTI32typename): Likewise.
2473 (neon_vcvth<sup>hf): New.
2474 (neon_vcvth<sup>si): New.
2475 (neon_vcvth<sup>_nhf_unspec): New.
2476 (neon_vcvth<sup>_nhf): New.
2477 (neon_vcvth<sup>_nsi_unspec): New.
2478 (neon_vcvth<sup>_nsi): New.
2479 (neon_vcvt<vcvth_op>h<sup>si): New.
2480 (neon_<fmaxmin_op>hf): New.
2481
2482 2016-09-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
2483
2484 * config/s390/s390.md (bitoff, bitoff_plus): Neq mode attributes.
2485 ("*extzv<mode>_zEC12", "*insv<mode>_zEC12", "*insv<mode>_z10")
2486 ("*insv<mode>_zEC12_appendbitsleft")
2487 ("*insv<mode>_z10_appendbitsleft", "*r<noxa>sbg_<mode>_sll")
2488 ("*r<noxa>sbg_<mode>_srl"): Use new attributes.
2489
2490 2016-09-23 Jakub Jelinek <jakub@redhat.com>
2491
2492 * ipa-cp.c (ipcp_store_vr_results): Avoid static local var zero.
2493 * sreal.h (sreal::min, sreal::max): Avoid static local vars,
2494 construct values without normalization.
2495 * tree-ssa-sccvn.c (vn_reference_lookup_3): Don't initialize
2496 static local lhs_ops to vNULL.
2497
2498 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
2499 Jiong Wang <jiong.wang@arm.com>
2500
2501 * config/arm/arm.c (coproc_secondary_reload_class): Make HFmode
2502 available when FP16 instructions are available.
2503 (output_move_vfp): Add support for 16-bit data moves.
2504 (arm_validize_comparison): Fix some white-space. Support HFmode
2505 by conversion to SFmode.
2506 * config/arm/arm.md (truncdfhf2): Fix a comment.
2507 (extendhfdf2): Likewise.
2508 (cstorehf4): New.
2509 (movsicc): Fix some white-space.
2510 (movhfcc): New.
2511 (movsfcc): Fix some white-space.
2512 (*cmovhf): New.
2513 * config/arm/vfp.md (*arm_movhi_vfp): Disable when VFP FP16
2514 instructions are available.
2515 (*thumb2_movhi_vfp): Likewise.
2516 (*arm_movhi_fp16): New.
2517 (*thumb2_movhi_fp16): New.
2518 (*movhf_vfp_fp16): New.
2519 (*movhf_vfp_neon): Disable when VFP FP16 instructions are available.
2520 (*movhf_vfp): Likewise.
2521 (extendhfsf2): Enable when VFP FP16 instructions are available.
2522 (truncsfhf2): Enable when VFP FP16 instructions are available.
2523
2524 2016-09-23 Martin Liska <mliska@suse.cz>
2525
2526 * config/s390/vx-builtins.md: Replace 'adress' with 'address'.
2527
2528 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
2529
2530 * config/arm/arm.c (arm_evpc_neon_vuzp): Add support for V8HF and
2531 V4HF modes.
2532 (arm_evpc_neon_vtrn): Likewise.
2533 (arm_evpc_neon_vrev): Likewise.
2534 (arm_evpc_neon_vext): Likewise.
2535 * config/arm/arm_neon.h (vbsl_f16): New.
2536 (vbslq_f16): New.
2537 (vdup_n_f16): New.
2538 (vdupq_n_f16): New.
2539 (vdup_lane_f16): New.
2540 (vdupq_lane_f16): New.
2541 (vext_f16): New.
2542 (vextq_f16): New.
2543 (vmov_n_f16): New.
2544 (vmovq_n_f16): New.
2545 (vrev64_f16): New.
2546 (vrev64q_f16): New.
2547 (vtrn_f16): New.
2548 (vtrnq_f16): New.
2549 (vuzp_f16): New.
2550 (vuzpq_f16): New.
2551 (vzip_f16): New.
2552 (vzipq_f16): New.
2553 * config/arm/arm_neon_buillins.def (vdup_n): New (v8hf, v4hf variants).
2554 (vdup_lane): New (v8hf, v4hf variants).
2555 (vext): New (v8hf, v4hf variants).
2556 (vbsl): New (v8hf, v4hf variants).
2557 * config/arm/iterators.md (VDQWH): New.
2558 (VH): New.
2559 (V_double_vector_mode): Add V8HF and V4HF. Fix white-space.
2560 (Scalar_mul_8_16): Fix white-space.
2561 (Is_d_reg): Add V4HF and V8HF.
2562 * config/arm/neon.md (neon_vdup_lane<mode>_internal): New.
2563 (neon_vdup_lane<mode>): New.
2564 (neon_vtrn<mode>_internal): Replace VDQW with VDQWH.
2565 (*neon_vtrn<mode>_insn): Likewise.
2566 (neon_vzip<mode>_internal): Likewise. Also fix white-space.
2567 (*neon_vzip<mode>_insn): Likewise
2568 (neon_vuzp<mode>_internal): Likewise.
2569 (*neon_vuzp<mode>_insn): Likewise
2570 * config/arm/vec-common.md (vec_perm_const<mode>): New.
2571
2572 2016-09-23 Jiong Wang <jiong.wang@arm.com>
2573 Matthew Wahab <matthew.wahab@arm.com>
2574
2575 * config/arm/arm.c (output_move_vfp): Weaken assert to allow HImode.
2576 (arm_hard_regno_mode_ok): Allow HImode values in VFP registers.
2577 * config/arm/arm.md (*movhi_bytes): Disable when VFP registers are
2578 available. Also fix some white-space.
2579 * config/arm/vfp.md (*arm_movhi_vfp): New.
2580 (*thumb2_movhi_vfp): New.
2581
2582 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
2583
2584 * config/arm/arm-c.c (arm_cpu_builtins): Define
2585 "__ARM_FEATURE_FP16_SCALAR_ARITHMETIC" and
2586 "__ARM_FEATURE_FP16_VECTOR_ARITHMETIC".
2587
2588 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
2589
2590 * doc/sourcebuild.texi (ARM-specific attributes): Add anchor for
2591 arm_v8_1a_neon_ok. Add entries for arm_v8_2a_fp16_scalar_ok,
2592 arm_v8_2a_fp16_scalar_hw, arm_v8_2a_fp16_neon_ok and
2593 arm_v8_2a_fp16_neon_hw.
2594 (Add options): Add entries for arm_v8_1a_neon, arm_v8_2a_scalar,
2595 arm_v8_2a_neon.
2596
2597 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
2598
2599 * doc/sourcebuild.texi (ARM-specific attributes): Add entries for
2600 arm_fp16_alternative_ok and arm_fp16_none_ok.
2601
2602 2016-09-23 Martin Liska <mliska@suse.cz>
2603
2604 * ipa-icf.c (sem_variable::merge): Replace adress with address.
2605
2606 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
2607
2608 * config/arm/arm-arches.def ("armv8.1-a"): Add FL_CRC32.
2609 ("armv8.2-a"): New.
2610 ("armv8.2-a+fp16"): New.
2611 * config/arm/arm-protos.h (FL2_ARCH8_2): New.
2612 (FL2_FP16INST): New.
2613 (FL2_FOR_ARCH8_2A): New.
2614 * config/arm/arm-tables.opt: Regenerate.
2615 * config/arm/arm.c (arm_arch8_2): New.
2616 (arm_fp16_inst): New.
2617 (arm_option_override): Set arm_arch8_2 and arm_fp16_inst. Check
2618 for incompatible fp16-format settings.
2619 * config/arm/arm.h (TARGET_VFP_FP16INST): New.
2620 (TARGET_NEON_FP16INST): New.
2621 (arm_arch8_2): Declare.
2622 (arm_fp16_inst): Declare.
2623 * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for
2624 march=armv8.2-a and march=armv8.2-a+fp16.
2625 * config/arm/t-aprofile (Arch Matches): Add entries for armv8.2-a
2626 and armv8.2-a+fp16.
2627 * doc/invoke.texi (ARM Options): Add "-march=armv8.1-a",
2628 "-march=armv8.2-a" and "-march=armv8.2-a+fp16".
2629
2630 2016-09-23 Martin Liska <mliska@suse.cz>
2631
2632 * doc/extend.texi: Remove fused-madd from i386 target options.
2633
2634 2016-09-23 Martin Liska <mliska@suse.cz>
2635
2636 * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
2637 Handle movbe.
2638
2639 2016-09-23 Martin Liska <mliska@suse.cz>
2640
2641 * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
2642 Handle crc32.
2643
2644 2016-09-23 Martin Liska <mliska@suse.cz>
2645
2646 PR target/71652
2647 * config/i386/i386.c (ix86_option_override_internal): Change
2648 signature and return false when there's an error related to
2649 arch string.
2650 (release_options_strings): New function.
2651 (ix86_valid_target_attribute_tree): Call the function.
2652
2653 2016-09-23 Jakub Jelinek <jakub@redhat.com>
2654
2655 * hsa-gen.c (hsa_op_immed::hsa_op_immed Use CONSTRUCTOR_NELTS (...)
2656 instead of vec_safe_length (CONSTRUCTOR_ELTS (...)).
2657 (gen_hsa_ctor_assignment): Likewise.
2658 * print-tree.c (print_node): Likewise.
2659 * tree-dump.c (dequeue_and_dump): Likewise.
2660 * tree-sra.c (sra_modify_constructor_assign): Likewise.
2661 * expr.c (store_constructor): Likewise.
2662 * fold-const.c (operand_equal_p): Likewise.
2663 * tree-pretty-print.c (dump_generic_node): Likewise.
2664 * hsa-brig.c (hsa_op_immed::emit_to_buffer): Likewise.
2665 * ipa-icf-gimple.c (func_checker::compare_operand): Likewise.
2666
2667 2016-09-23 Richard Biener <rguenther@suse.de>
2668
2669 * hooks.h (hook_uint_uintp_false): Declare.
2670
2671 2016-09-22 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
2672
2673 * config/avr/avr.c (avr_rtx_costs_1): Handle DImode MULT.
2674 (avr_address_cost): Replace 61 with MAX_LD_OFFSET(mode).
2675
2676 2016-09-22 Martin Sebor <msebor@redhat.com>
2677
2678 PR target/77676
2679 * gimple-ssa-sprintf.c (target_int_min, target_int_max): Use
2680 HOST_BITS_PER_WIDE_INT, make a static local variable auto.
2681 (target_int_min): Correct computation.
2682 (format_integer): Use long long as the argument for the ll length
2683 modifier.
2684 (format_floating): Use target_int_max().
2685 (get_string_length): Same.
2686 (format_string): Avoid setting the bounded flag for strings
2687 of unknown length.
2688 (try_substitute_return_value): Avoid setting range info when
2689 the result isn't bounded.
2690 * varasm.c (assemble_name): Increase buffer size.
2691
2692 2016-09-22 Andre Vieira <andre.simoesdiasvieira@arm.com>
2693 Terry Guo <terry.guo@arm.com>
2694
2695 * target.def (elf_flags_numeric): New target hook.
2696 * targhooks.h (default_asm_elf_flags_numeric): New.
2697 * varasm.c (default_asm_elf_flags_numeric): New.
2698 (default_elf_asm_named_section): Use new target hook.
2699 * config/arm/arm.opt (mpure-code): New.
2700 * config/arm/arm.h (SECTION_ARM_PURECODE): New.
2701 * config/arm/arm.c (arm_asm_init_sections): Add section
2702 attribute to default text section if -mpure-code.
2703 (arm_option_check_internal): Diagnose use of option with
2704 non supported targets and/or options.
2705 (arm_asm_elf_flags_numeric): New.
2706 (arm_function_section): New.
2707 (arm_elf_section_type_flags): New.
2708 * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Disable
2709 for -mpure-code.
2710 * gcc/doc/texi (TARGET_ASM_ELF_FLAGS_NUMERIC): New.
2711 * gcc/doc/texi.in (TARGET_ASM_ELF_FLAGS_NUMERIC): Likewise.
2712
2713 2016-09-22 Jan Hubicka <hubicka@ucw.cz>
2714
2715 * regcprop.c (copyprop_hardreg_forward_1): Remove noop moves.
2716
2717 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2718
2719 * emit-rtl.c (next_cc0_user): Make argument type rtx_insn *.
2720 * rtl.h: Adjust prototype.
2721
2722 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2723
2724 * emit-rtl.c (next_active_insn): Change argument type to rtx_insn *.
2725 (prev_active_insn): Likewise.
2726 (active_insn_p): Likewise.
2727 * rtl.h: Adjust prototypes.
2728 * cfgcleanup.c (merge_blocks_move_successor_nojumps): Adjust.
2729 * config/arc/arc.md: Likewise.
2730 * config/pa/pa.c (branch_to_delay_slot_p): Likewise.
2731 (branch_needs_nop_p): Likewise.
2732 (use_skip_p): Likewise.
2733 * config/sh/sh.c (gen_block_redirect): Likewise.
2734 (split_branches): Likewise.
2735 * reorg.c (optimize_skip): Likewise.
2736 (fill_simple_delay_slots): Likewise.
2737 (fill_slots_from_thread): Likewise.
2738 (relax_delay_slots): Likewise.
2739 * resource.c (mark_target_live_regs): Likewise.
2740
2741 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2742
2743 * config/cris/cris.c (cris_asm_output_case_end): Change argument
2744 type to rtx_insn *.
2745 * emit-rtl.c (next_nonnote_nondebug_insn): Likewise.
2746 (prev_nonnote_nondebug_insn): Likewise.
2747 * config/cris/cris-protos.h: Adjust prototype.
2748 * rtl.h: Likewise.
2749 * jump.c (rtx_renumbered_equal_p): Adjust.
2750
2751 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2752
2753 * emit-rtl.c (prev_real_insn): Change argument type to rtx_insn *.
2754 * rtl.h: Adjust prototype.
2755 * config/sh/sh.md: Adjust.
2756 * dwarf2out.c (add_var_loc_to_decl): Likewise.
2757
2758 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2759
2760 * emit-rtl.c (next_nondebug_insn): Change argument type to rtx_insn *.
2761 (prev_nondebug_insn): Likewise.
2762 * loop-doloop.c (doloop_condition_get): Likewise.
2763 * rtl.h: Adjust prototype.
2764 * cfgloop.h: Likewise.
2765
2766 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2767
2768 * emit-rtl.c (next_nonnote_insn): Change argument type to rtx_insn *.
2769 (prev_nonnote_insn): Likewise.
2770 * jump.c (reversed_comparison_code_parts): Likewise.
2771 (reversed_comparison): Likewise.
2772 * rtl.h: Adjust prototypes.
2773 * config/arc/arc.md: Adjust.
2774 * cse.c (find_comparison_args): Likewise.
2775 * reorg.c (redundant_insn): Change return type to rtx_insn *.
2776 (fix_reg_dead_note): Change argument type to rtx_insn *.
2777 (delete_prior_computation): Likewise.
2778 (delete_computation): Likewise.
2779 (fill_slots_from_thread): Adjust.
2780 (relax_delay_slots): Likewise.
2781 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
2782 (simplify_relational_operation_1): Likewise.
2783 (simplify_ternary_operation): Likewise.
2784
2785 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2786
2787 * config/arc/arc-protos.h (arc_label_align): Change type of
2788 variables from rtx to rtx_insn *.
2789 * config/arc/arc.c (arc_label_align): Likewise.
2790 * config/arm/arm.c (any_sibcall_could_use_r3): Likewise.
2791 * config/bfin/bfin.c (workaround_speculation): Likewise.
2792 * config/c6x/c6x.c (find_next_cycle_insn): Likewise.
2793 (find_last_same_clock): Likewise.
2794 (reorg_split_calls): Likewise.
2795 * config/cris/cris-protos.h (cris_cc0_user_requires_cmp): Likewise.
2796 * config/cris/cris.c (cris_cc0_user_requires_cmp): Likewise.
2797 * config/h8300/h8300-protos.h (same_cmp_preceding_p): Likewise.
2798 (same_cmp_following_p): Likewise.
2799 * config/h8300/h8300.c (same_cmp_preceding_p): Likewise.
2800 (same_cmp_following_p): Likwise.
2801 * config/m32r/m32r.c (m32r_expand_epilogue): Likewise.
2802 * config/nds32/nds32-protos.h (nds32_target_alignment): Likewise.
2803 * config/nds32/nds32.c (nds32_target_alignment): Likewise.
2804 * config/rl78/rl78.c (rl78_alloc_physical_registers_op2): Likewise.
2805 (rl78_alloc_physical_registers_cmp): Likewise.
2806 (rl78_alloc_physical_registers_umul): Likewise.
2807 (rl78_calculate_death_notes): Likewise.
2808 * config/s390/s390-protos.h (s390_label_align): Likewise.
2809 * config/s390/s390.c (s390_label_align): Likewise.
2810 * config/sh/sh.c (barrier_align): Likewise.
2811 * config/sparc/sparc-protos.h (emit_cbcond_nop): Likewise.
2812 * config/sparc/sparc.c (sparc_asm_function_epilogue): Likewise.
2813 (emit_cbcond_nop): Likewise.
2814
2815 2016-09-22 Martin Liska <mliska@suse.cz>
2816
2817 PR ipa/77653
2818 * ipa-icf.c (sem_variable::merge): Yield merge operation if
2819 alias address matters, not necessarily address of original.
2820
2821 2016-09-22 Richard Biener <rguenther@suse.de>
2822
2823 PR middle-end/77697
2824 * gimple-fold.c (fold_array_ctor_reference): Turn asserts into
2825 fold fails.
2826
2827 2016-09-22 Richard Biener <rguenther@suse.de>
2828
2829 PR middle-end/77677
2830 * gimple-match-head.c (gimple_resimplify1): Drop TREE_OVERFLOW
2831 from constant folding results.
2832 (gimple_resimplify2): Likewise.
2833 (gimple_resimplify3): Likewise.
2834
2835 2016-09-22 Richard Biener <rguenther@suse.de>
2836
2837 PR middle-end/77678
2838 * expr.c (expand_expr_real_1): Guard array access against negative
2839 offset.
2840
2841 2016-09-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2842
2843 * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN instead
2844 of MPFR_RNDN.
2845 (format_floating): Likewise.
2846
2847 2016-09-22 Jakub Jelinek <jakub@redhat.com>
2848
2849 PR fortran/77665
2850 * tree-inline.c (remap_gimple_stmt): Set has_simduid_loops
2851 for all IFN_GOMP_SIMD_* internal fns, not just for
2852 IFN_GOMP_SIMD_ORDERED_*.
2853
2854 2016-09-21 Michael Meissner <meissner@linux.vnet.ibm.com>
2855
2856 PR target/77670
2857 * config/rs6000/predicates.md (invert_fpmask_comparison_operator):
2858 New predicate that matches the ISA 3.0 XSCMP{EQ,GT,GE}DP
2859 instructions when you want to invert the test.
2860 * config/rs6000/rs6000.md (fpmask<mode>): Use the arguments in the
2861 correct order for XXSEL.
2862 (mov<SFDF:mode><SFDF2:mode>cc_invert_p9): Define the inverted test
2863 for using XSCMP{EQ,GT,GE}DP.
2864
2865 2016-09-21 David Malcolm <dmalcolm@redhat.com>
2866
2867 * genconstants.c (main): Introduce noop_reader and convert call
2868 to read_md_files to a method call.
2869 * genenums.c (main): Likewise.
2870 * genmddeps.c (main): Likewise.
2871 * genpreds.c (write_tm_constrs_h): Replace use of "in_fname" with
2872 rtx_reader_ptr->get_top_level_filename ().
2873 (write_tm_preds_h): Likewise.
2874 (write_insn_preds_c): Likewise.
2875 * gensupport.c (class gen_reader): New subclass of rtx_reader.
2876 (rtx_handle_directive): Convert to...
2877 (gen_reader::handle_unknown_directive): ...this.
2878 (init_rtx_reader_args_cb): Convert return type from bool to
2879 rtx_reader *. Create a gen_reader instance, using it for the
2880 call to read_md_files. Return it if no errors occur.
2881 (init_rtx_reader_args): Convert return type from bool to
2882 rtx_reader *.
2883 * gensupport.h (init_rtx_reader_args_cb): Likewise.
2884 (init_rtx_reader_args_cb): Likewise.
2885 * read-md.c (struct file_name_list): Move to class rtx_reader.
2886 (read_md_file): Delete in favor of rtx_reader::m_read_md_file.
2887 (read_md_filename): Delete in favor of
2888 rtx_reader::m_read_md_filename.
2889 (read_md_lineno): Delete in favor of rtx_reader::m_read_md_lineno.
2890 (in_fname): Delete in favor of rtx_reader::m_toplevel_fname.
2891 (base_dir): Delete in favor of rtx_reader::m_base_dir.
2892 (first_dir_md_include): Delete in favor of
2893 rtx_reader::m_first_dir_md_include.
2894 (last_dir_md_include_ptr): Delete in favor of
2895 rtx_reader::m_last_dir_md_include_ptr.
2896 (max_include_len): Delete.
2897 (rtx_reader_ptr): New.
2898 (fatal_with_file_and_line): Use get_filename and get_lineno
2899 accessors of rtx_reader_ptr.
2900 (require_char_ws): Likewise.
2901 (rtx_reader::read_char): New method, based on ::read_char.
2902 (rtx_reader::unread_char): New method, based on ::unread_char.
2903 (read_escape): Use get_filename and get_lineno accessors of
2904 rtx_reader_ptr.
2905 (read_braced_string): Use get_lineno accessor of rtx_reader_ptr.
2906 (read_string): Use get_filename and get_lineno accessors of
2907 rtx_reader_ptr.
2908 (rtx_reader::rtx_reader): New ctor.
2909 (rtx_reader::~rtx_reader): New dtor.
2910 (handle_include): Convert from a function to...
2911 (rtx_reader::handle_include): ...this method, converting
2912 handle_directive from a callback to a virtual function.
2913 (handle_file): Likewise, converting to...
2914 (rtx_reader::handle_file): ...this method.
2915 (handle_toplevel_file): Likewise, converting to...
2916 (rtx_reader::handle_toplevel_file): ...this method.
2917 (rtx_reader::get_current_location): New method.
2918 (parse_include): Convert from a function to...
2919 (rtx_reader::add_include_path): ...this method, dropping redundant
2920 update to unused max_include_len.
2921 (read_md_files): Convert from a function to...
2922 (rtx_reader::read_md_files): ...this method, converting
2923 handle_directive from a callback to a virtual function.
2924 (noop_reader::handle_unknown_directive): New method.
2925 * read-md.h (directive_handler_t): Delete this typedef.
2926 (in_fname): Delete.
2927 (read_md_file): Delete.
2928 (read_md_lineno): Delete.
2929 (read_md_filename): Delete.
2930 (class rtx_reader): New class.
2931 (rtx_reader_ptr): New decl.
2932 (class noop_reader): New subclass of rtx_reader.
2933 (read_char): Reimplement in terms of rtx_reader::read_char.
2934 (unread_char): Reimplement in terms of rtx_reader::unread_char.
2935 (read_md_files): Delete.
2936 * read-rtl.c (read_rtx_code): Update for deletion of globals
2937 read_md_filename and read_md_lineno.
2938
2939 2016-09-21 Jason Merrill <jason@redhat.com>
2940
2941 * input.h (from_macro_definition_at): New.
2942
2943 2016-09-21 Segher Boessenkool <segher@kernel.crashing.org>
2944
2945 * doc/rtl.texi (JUMP_LABEL): Document RETURN and SIMPLE_RETURN values.
2946
2947 2016-09-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
2948
2949 PR tree-optimization/77550
2950 * tree-vect-stmts.c (create_array_ref): Change parameters.
2951 (get_group_alias_ptr_type): New function.
2952 (vectorizable_store, vectorizable_load): Use get_group_alias_ptr_type.
2953
2954 2016-09-21 Marek Polacek <polacek@redhat.com>
2955
2956 * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
2957 Add falls through comment.
2958
2959 2016-09-21 Richard Biener <rguenther@suse.de>
2960
2961 * dwarf2out.c (remove_child_with_prev): Clear child->die_sib.
2962 (replace_child): Likewise.
2963 (remove_child_TAG): Adjust.
2964 (move_marked_base_types): Likewise.
2965 (prune_unused_types_prune): Clear die_sib of removed children.
2966
2967 2016-09-21 Georg-Johann Lay <avr@gjlay.de>
2968
2969 PR target/77326
2970 * config/avr/avr.c (avr_notice_update_cc) [CC_NONE]: If insn
2971 touches some regs mentioned in cc_status, do CC_STATUS_INIT.
2972
2973 2016-09-21 Richard Biener <rguenther@suse.de>
2974
2975 PR tree-optimization/77648
2976 * tree-ssa-structalias.c (process_constraint): Handle all DEREF
2977 with complex RHS.
2978 (make_transitive_closure_constraints): Adjust comment.
2979 (make_any_offset_constraints): New function.
2980 (handle_rhs_call): Make sure to first expand a pointer to all
2981 subfields before transitively closing it.
2982 (handle_const_call): Likewise. Properly expand returned
2983 pointers as well.
2984 (handle_pure_call): Likewise.
2985
2986 2016-09-21 Richard Biener <rguenther@suse.de>
2987 Jakub Jelinek <jakub@redhat.com>
2988
2989 PR tree-optimization/77621
2990 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Split
2991 group at non-vectorizable stmts.
2992
2993 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org>
2994
2995 PR tree-optimization/72835
2996 * tree-ssa-reassoc.c (make_new_ssa_for_def): New.
2997 (make_new_ssa_for_all_defs): Likewise.
2998 (zero_one_operation): Replace all SSA_NAMEs defined in the chain.
2999
3000 2016-09-20 Martin Sebor <msebor@redhat.com>
3001
3002 PR middle-end/49905
3003 * Makefile.in (OBJS): Add gimple-ssa-sprintf.o.
3004 * config/linux.h (TARGET_PRINTF_POINTER_FORMAT): Redefine.
3005 * config/linux.c (gnu_libc_printf_pointer_format): New function.
3006 * config/sol2.h (TARGET_PRINTF_POINTER_FORMAT): Same.
3007 * config/sol2.c (solaris_printf_pointer_format): New function.
3008 * doc/invoke.texi (-Wformat-length, -fprintf-return-value): New
3009 options.
3010 * doc/tm.texi.in (TARGET_PRINTF_POINTER_FORMAT): Document.
3011 * doc/tm.texi: Regenerate.
3012 * gimple-fold.h (get_range_strlen): New function.
3013 (get_maxval_strlen): Declare existing function.
3014 * gimple-fold.c (get_range_strlen): Add arguments and compute both
3015 maximum and minimum.
3016 (get_range_strlen): Define overload.
3017 (get_maxval_strlen): Adjust.
3018 * gimple-ssa-sprintf.c: New file and pass.
3019 * passes.def (pass_sprintf_length): Add new pass.
3020 * targhooks.h (default_printf_pointer_format): Declare new function.
3021 (gnu_libc_printf_pointer_format): Same.
3022 (solaris_libc_printf_pointer_format): Same.
3023 * targhooks.c (default_printf_pointer_format): Define new function.
3024 * tree-pass.h (make_pass_sprintf_length): Declare new function.
3025 * print-tree.c: Increase buffer size.
3026
3027 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org>
3028
3029 * tree-vrp.c (get_value_range): Teach PARM_DECL to use ipa-vrp results.
3030
3031 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org>
3032
3033 * common.opt: New option -fipa-vrp.
3034 * ipa-cp.c (ipa_get_vr_lat): New.
3035 (ipcp_vr_lattice::print): Likewise.
3036 (print_all_lattices): Call ipcp_vr_lattice::print.
3037 (ipcp_vr_lattice::meet_with): New.
3038 (ipcp_vr_lattice::meet_with_1): Likewise.
3039 (ipcp_vr_lattice::top_p): Likewise.
3040 (ipcp_vr_lattice::bottom_p): Likewsie.
3041 (ipcp_vr_lattice::set_to_bottom): Likewise.
3042 (set_all_contains_variable): Call VR set_to_bottom.
3043 (initialize_node_lattices): Init VR lattices.
3044 (propagate_vr_accross_jump_function): New.
3045 (propagate_constants_accross_call): Call
3046 propagate_vr_accross_jump_function.
3047 (ipcp_store_vr_results): New.
3048 (ipcp_driver): Handle VR.
3049 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Handle VR.
3050 (ipa_set_jf_unknown): Likewise.
3051 (ipa_compute_jump_functions_for_edge): Likewise.
3052 (ipa_node_params_t::duplicate): Likewise.
3053 (ipa_write_jump_function): Likewise.
3054 (ipa_read_jump_function): Likewise.
3055 (write_ipcp_transformation_info): Likewise.
3056 (read_ipcp_transformation_info): Likewise.
3057 (ipcp_update_vr): New.
3058 (ipcp_transform_function): Handle VR.
3059 * ipa-prop.h (struct ipa_vr): New.
3060 * cgraph.c: Include tree-vrp.h.
3061 * cgraphunit.c: Likewise.
3062 * ipa-utils.c: Likewise.
3063 * ipa.c: Likewise.
3064 * opts.c: Likewise.
3065 * toplev.c: Likewise.
3066 * ipa-devirt.c: Likewise.
3067 * ipa-inline-transform.c: Likewise.
3068 * ipa-inline.c: Likewise.
3069 * ipa-profile.c: Likewise.
3070
3071 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org>
3072
3073 * doc/invoke.texi: Document -fdump-tree-evrp.
3074 * passes.def: Define new pass_early_vrp.
3075 * timevar.def: Define new TV_TREE_EARLY_VRP.
3076 * tree-pass.h (make_pass_early_vrp): New.
3077 * tree-ssa-propagate.c: Make replace_uses_in non static.
3078 * tree-ssa-propagate.h: Export replace_uses_in.
3079 * tree-vrp.c (extract_range_for_var_from_comparison_expr): New.
3080 (extract_range_from_assert): Factor out
3081 extract_range_for_var_from_comparison_expr.
3082 (vrp_initialize_lattice): New.
3083 (vrp_initialize): Factor out vrp_initialize_lattice.
3084 (vrp_valueize): Fix it to reject complex value ranges.
3085 (vrp_free_lattice): New.
3086 (evrp_dom_walker::before_dom_children): Likewise.
3087 (evrp_dom_walker::after_dom_children): Likewise.
3088 (evrp_dom_walker::push_value_range): Likewise.
3089 (evrp_dom_walker::pop_value_range): Likewise.
3090 (execute_early_vrp): Likewise.
3091 (execute_vrp): Call vrp_initialize_lattice and vrp_free_lattice.
3092 (make_pass_early_vrp): New.
3093
3094 2016-09-20 Uros Bizjak <ubizjak@gmail.com>
3095
3096 * config/i386/i386.md (mult->ashift peephole2s): Use pow2p_hwi
3097 instead of exact_log2.
3098
3099 2016-09-20 Uros Bizjak <ubizjak@gmail.com>
3100
3101 PR target/77621
3102 * config/i386/i386.c (ix86_preferred_simd_mode) <case DFmode>:
3103 Don't return word_mode for !TARGET_VECTORIZE_DOUBLE.
3104 (ix86_add_stmt_cost): Penalize DFmode vector operations
3105 for !TARGET_VECTORIZE_DOUBLE.
3106
3107 2016-09-20 Gerald Pfeifer <gerald@pfeifer.com>
3108
3109 * doc/invoke.texi (Warning Options): Simplify language.
3110 (Optimize Options): Complete sentence.
3111
3112 2016-09-20 David Edelsohn <dje.gcc@gmail.com>
3113
3114 * dbxout.c (xcoff_debug_hooks): Add filename parameter to
3115 early_finish hook.
3116
3117 2016-09-20 Michael Meissner <meissner@linux.vnet.ibm.com>
3118
3119 PR target/71395
3120 * config/rs6000/rs6000.c (rs6000_expand_vector_init): For V4SF
3121 inits on power8 and above, use the VMRGEW instruction instead of a
3122 permute.
3123
3124 * config/rs6000/altivec.md (UNSPEC_VMRGEW_DIRECT): New unspec.
3125 (p8_vmrgew_v4sf_direct): New VMRGEW insn for V4SF floating
3126 initialization.
3127
3128 2016-09-20 Tamar Christina <tamar.christina@arm.com>
3129
3130 * config/aarch64/arm_neon.h
3131 (vst2_s64, vst2_u64, vst2_f64, vst2_s8): Add missing attributes.
3132 (vst3_s64, vst3_u64, vst3_f64, vst3_s8): Likewise.
3133 (vst4_s64, vst4_u64, vst4_f64, vst4_s8): Likewise.
3134
3135 2016-09-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
3136
3137 * config/var/vax.h (ELIMINABLE_REGS): Define.
3138 (INITIAL_ELIMINATION_OFFSET): Define.
3139
3140 2016-09-20 Jakub Jelinek <jakub@redhat.com>
3141
3142 PR middle-end/77624
3143 * builtins.c (fold_builtin_atomic_always_lock_free): Only look through
3144 cast to void * if the cast is from some other pointer type.
3145
3146 2016-09-20 Richard Biener <rguenther@suse.de>
3147
3148 PR tree-optimization/77646
3149 * tree-ssa-sccvn.c (visit_reference_op_call): Always value-number
3150 a VDEF.
3151
3152 2016-09-20 Tamar Christina <tamar.christina@arm.com>
3153
3154 * config/aarch64/arm_neon.h: Add gnu_inline and artificial
3155 attributes to all inlined functions and make them extern.
3156
3157 2016-09-20 Richard Biener <rguenther@suse.de>
3158
3159 * debug.h (gcc_debug_hooks): Add filename parameter to early_finish
3160 hook.
3161 * debug.c (do_nothing_debug_hooks): Adjust.
3162 * dbxout.c (dbx_debug_hooks): Likewise.
3163 * sdbout.c (sdb_debug_hooks): Likewise.
3164 * dwarf2out.c (dwarf2_lineno_debug_hooks): Likewise.
3165 (dwarf2out_finish): Move producer, filename and
3166 path annotation ...
3167 (dwarf2out_early_finish): ... here. Remove in_lto_p special-casing.
3168 * cgraphunit.c (symbol_table::finalize_compilation_unit): Adjust.
3169
3170 2016-09-19 Bernd Edlinger <bernd.edlinger@hotmail.de>
3171
3172 PR c++/77434
3173 * doc/invoke.texi: Document -Wint-in-bool-context.
3174
3175 PR middle-end/77421
3176 * dwarf2out.c (output_loc_operands): Fix an assertion.
3177
3178 2016-09-19 Joseph Myers <joseph@codesourcery.com>
3179
3180 * ginclude/float.h [__STDC_WANT_IEC_60559_BFP_EXT__]
3181 (CR_DECIMAL_DIG): New macro.
3182
3183 2016-09-19 Joseph Myers <joseph@codesourcery.com>
3184
3185 * ginclude/stddef.h (max_align_t) [__i386__]: Add __float128
3186 element.
3187
3188 2016-09-19 Vladimir Makarov <vmakarov@redhat.com>
3189
3190 PR rtl-optimization/77416
3191 * lra-remat.c (operand_to_remat): Process hard coded insn
3192 registers.
3193
3194 2016-09-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3195
3196 * simplify-rtx.c (simplify_relational_operation_1): Add transformation
3197 (GTU (PLUS a C) (C - 1)) --> (LTU a -C).
3198
3199 2016-09-19 Segher Boessenkool <segher@kernel.crashing.org>
3200
3201 * target.def (lra_p): Wordsmithing.
3202 * doc/tm.texi: Regenerate.
3203
3204 2016-09-19 Jakub Jelinek <jakub@redhat.com>
3205 Jan Hubicka <jh@suse.cz>
3206
3207 PR target/77587
3208 * cgraph.c (cgraph_node::rtl_info): Pass &avail to
3209 ultimate_alias_target call, return NULL if avail < AVAIL_AVAILABLE.
3210 Call ultimate_alias_target just once, not up to 4 times.
3211
3212 2016-09-19 Richard Biener <rguenther@suse.de>
3213
3214 * dwarf2out.c (early_dwarf_finished): New global.
3215 (set_early_dwarf::set_early_dwarf): Assert early_dwarf_finished
3216 is false.
3217 (dwarf2out_early_finish): Set early_dwarf_finished at the end,
3218 if called from LTO exit early.
3219 (dwarf2out_late_global_decl): When being during the early
3220 debug phase do not add locations but only const value attributes.
3221 Adjust the way we generate early DIEs for LTO.
3222
3223 2016-09-19 Richard Biener <rguenther@suse.de>
3224
3225 PR middle-end/77605
3226 * tree-data-ref.c (analyze_subscript_affine_affine): Use the
3227 proper niter to bound the loops.
3228
3229 2016-09-19 Richard Biener <rguenther@suse.de>
3230
3231 PR tree-optimization/77514
3232 * tree-ssa-pre.c (create_expression_by_pieces): Optimize
3233 search for folded stmt.
3234
3235 2016-09-17 Jan Hubicka <hubicka@ucw.cz>
3236
3237 * passes.def (pass_early_thread_jumps): Schedule after forwprop.
3238 * tree-pass.h (make_pass_early_thread_jumps): Declare.
3239 * tree-ssa-threadbackward.c (fsm_find_thread_path,
3240 fsm_find_thread_path, profitable_jump_thread_path,
3241 fsm_find_control_statement_thread_paths,
3242 find_jump_threads_backwards): Add speed_p parameter.
3243 (pass_data_early_thread_jumps): New pass.
3244 (make_pass_early_thread_jumps): New function.
3245
3246 2016-09-17 Andreas Schwab <schwab@suse.de>
3247
3248 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add cast.
3249 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Likewise.
3250
3251 2016-09-16 Eric Botcazou <ebotcazou@adacore.com>
3252
3253 * recog.c (rest_of_handle_split_after_reload): Delete.
3254 (pass_split_after_reload::gate): New method.
3255 (pass_split_after_reload::execute): Call split_all_insns directly.
3256
3257 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
3258
3259 * doc/extend.texi (Integer Overflow Builtins): Fix type of out
3260 parameters for functions taking long long arguments.
3261
3262 2016-09-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3263
3264 PR target/77613
3265 * config/rs6000/rs6000.c (rtx_is_swappable_p): Add support for
3266 splat with truncate.
3267
3268 2016-09-16 Jason Merrill <jason@redhat.com>
3269
3270 * hwint.h (least_bit_hwi, pow2_or_zerop, pow2p_hwi, ctz_or_zero):
3271 New.
3272 * hwint.c (exact_log2): Use pow2p_hwi.
3273 (ctz_hwi, ffs_hwi): Use least_bit_hwi.
3274 * alias.c (memrefs_conflict_p): Use pow2_or_zerop.
3275 * builtins.c (get_object_alignment_2, get_object_alignment)
3276 (get_pointer_alignment, fold_builtin_atomic_always_lock_free): Use
3277 least_bit_hwi.
3278 * calls.c (compute_argument_addresses, store_one_arg): Use
3279 least_bit_hwi.
3280 * cfgexpand.c (expand_one_stack_var_at): Use least_bit_hwi.
3281 * combine.c (force_to_mode): Use least_bit_hwi.
3282 (contains_muldiv, find_split_point, combine_simplify_rtx)
3283 (simplify_if_then_else, simplify_set, force_to_mode)
3284 (if_then_else_cond, simplify_and_const_int_1)
3285 (simplify_compare_const): Use pow2p_hwi.
3286 * cse.c (fold_rtx): Use pow2p_hwi.
3287 * emit-rtl.c (set_mem_attributes_minus_bitpos, adjust_address_1):
3288 Use least_bit_hwi.
3289 * expmed.c (synth_mult, expand_divmod): Use ctz_or_zero, ctz_hwi.
3290 (init_expmed_one_conv): Use pow2p_hwi.
3291 * expr.c (is_aligning_offset): Use pow2p_hwi.
3292 * fold-const.c (round_up_loc, round_down_loc): Use pow2_or_zerop.
3293 (fold_binary_loc): Use pow2p_hwi.
3294 * function.c (assign_parm_find_stack_rtl): Use least_bit_hwi.
3295 * gimple-fold.c (gimple_fold_builtin_memory_op): Use pow2p_hwi.
3296 * gimple-ssa-strength-reduction.c (replace_ref): Use least_bit_hwi.
3297 * hsa-gen.c (gen_hsa_addr_with_align, hsa_bitmemref_alignment):
3298 Use least_bit_hwi.
3299 * ifcvt.c (noce_try_store_flag_constants): Use pow2p_hwi.
3300 * ipa-cp.c (ipcp_alignment_lattice::meet_with_1): Use least_bit_hwi.
3301 * ipa-prop.c (ipa_modify_call_arguments): Use least_bit_hwi.
3302 * omp-low.c (oacc_loop_fixed_partitions)
3303 (oacc_loop_auto_partitions): Use least_bit_hwi.
3304 * rtlanal.c (nonzero_bits1): Use ctz_or_zero.
3305 * stor-layout.c (place_field): Use least_bit_hwi.
3306 * tree-pretty-print.c (dump_generic_node): Use pow2p_hwi.
3307 * tree-sra.c (build_ref_for_offset): Use least_bit_hwi.
3308 * tree-ssa-ccp.c (ccp_finalize): Use least_bit_hwi.
3309 * tree-ssa-math-opts.c (bswap_replace): Use least_bit_hwi.
3310 * tree-ssa-strlen.c (handle_builtin_memcmp): Use pow2p_hwi.
3311 * tree-vect-data-refs.c (vect_analyze_group_access_1)
3312 (vect_grouped_store_supported, vect_grouped_load_supported)
3313 (vect_permute_load_chain, vect_shift_permute_load_chain)
3314 (vect_transform_grouped_load): Use pow2p_hwi.
3315 * tree-vect-generic.c (expand_vector_divmod): Use ctz_or_zero.
3316 * tree-vect-patterns.c (vect_recog_divmod_pattern): Use ctz_or_zero.
3317 * tree-vect-stmts.c (vectorizable_mask_load_store): Use
3318 least_bit_hwi.
3319 * tsan.c (instrument_expr): Use least_bit_hwi.
3320 * var-tracking.c (negative_power_of_two_p): Use pow2_or_zerop.
3321
3322 2016-09-16 Andreas Schwab <schwab@suse.de>
3323
3324 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Use parameter
3325 OFFSET, not offset.
3326 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Likewise.
3327
3328 2016-09-16 Jakub Jelinek <jakub@redhat.com>
3329
3330 PR target/77526
3331 * combine.c (rest_of_handle_combine): If any edges have been purged,
3332 free dominators if available.
3333
3334 2016-09-16 Jakub Jelinek <jakub@redhat.com>
3335 Eric Botcazou <ebotcazou@adacore.com>
3336
3337 PR middle-end/77594
3338 * internal-fn.c (expand_arith_overflow) <case MINUS_EXPR>: Don't fall
3339 through into expand_addsub_overflow after expand_neg_overflow.
3340
3341 2016-09-15 David Malcolm <dmalcolm@redhat.com>
3342
3343 * diagnostic-show-locus.c
3344 (selftest::test_fixit_insert_containing_newline): New function.
3345 (selftest::test_fixit_replace_containing_newline): New function.
3346 (selftest::diagnostic_show_locus_c_tests): Call the above.
3347
3348 2016-09-15 Bin Cheng <bin.cheng@arm.com>
3349
3350 PR tree-optimization/77503
3351 * tree-vect-loop.c (vectorizable_reduction): Record reduction
3352 code for CONST_COND_REDUCTION at analysis stage and use it at
3353 transform stage.
3354 * tree-vectorizer.h (struct _stmt_vec_info): New field.
3355 (STMT_VINFO_VEC_CONST_COND_REDUC_CODE): New macro.
3356 * tree-vect-stmts.c (new_stmt_vec_info): Initialize above new
3357 field.
3358
3359 2016-09-15 Richard Biener <rguenther@suse.de>
3360
3361 PR middle-end/77544
3362 * fold-const.c (split_tree): Do not split constant ~X.
3363
3364 2016-09-15 Jakub Jelinek <jakub@redhat.com>
3365
3366 PR rtl-optimization/77425
3367 * sched-int.h (sd_iterator_cond): Don't update it_ptr->linkp if list
3368 is NULL.
3369
3370 PR middle-end/77475
3371 * config/i386/i386.c (ix86_parse_stringop_strategy_string): Simplify,
3372 use %qs instead of %s where desirable, use argument instead of arg in
3373 the diagnostic wording, add list of supported strategies and
3374 spellcheck hint.
3375 (ix86_option_override_internal): Emit target("m...") instead of
3376 option("m...") in the diagnostic. Use %qs instead of %s in invalid
3377 -march/-mtune option diagnostic. Add list of supported arches/tunings
3378 and spellcheck hint. Remove prefix, suffix and sw variables, use
3379 main_args_p ? "..." : "..." in diagnostics to make translation
3380 possible.
3381
3382 2016-09-15 Richard Biener <rguenther@suse.de>
3383
3384 * dwarf2asm.h (dw2_asm_output_offset): Add overload with
3385 extra offset argument.
3386 * dwarf2asm.c (dw2_asm_output_offset): Implement that.
3387 * doc/tm.texi.in (ASM_OUTPUT_DWARF_OFFSET): Adjust documentation
3388 to reflect new offset parameter.
3389 * doc/tm.texi: Regenerate.
3390 * config/darwin.h (ASM_OUTPUT_DWARF_OFFSET): Adjust.
3391 * config/darwin-protos.h (darwin_asm_output_dwarf_delta): Add
3392 offset argument.
3393 (darwin_asm_output_dwarf_offset): Likewise.
3394 * config/darwin.c (darwin_asm_output_dwarf_delta): Add offset
3395 argument.
3396 (darwin_asm_output_dwarf_offset): Pass offset argument through.
3397 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Adjust.
3398 * config/i386/cygmin.h (ASM_OUTPUT_DWARF_OFFSET): Likewise.
3399
3400 2016-09-15 Chung-Lin Tang <cltang@codesourcery.com>
3401
3402 PR fortran/72743
3403 * ipa-icf.c (set_alias_uids): New function.
3404 (sem_variable::merge): Use set_alias_uids to set DECL_PT_UID of
3405 all the merged variable's referring aliases.
3406
3407 2016-09-15 Richard Biener <rguenther@suse.de>
3408
3409 PR tree-optimization/77514
3410 * tree-ssa-pre.c (create_expression_by_pieces): Handle garbage
3411 only forced_stmts sequence.
3412
3413 2016-09-15 Kugan Vivekanandarajah <kuganv@linaro.org>
3414
3415 * tree-ssanames.h (FOR_EACH_SSA_NAME): New.
3416 * cfgexpand.c (update_alias_info_with_stack_vars): Use
3417 FOR_EACH_SSA_NAME to iterate over SSA variables.
3418 (pass_expand::execute): Likewise.
3419 * omp-simd-clone.c (ipa_simd_modify_function_body): Likewise.
3420 * tree-cfg.c (dump_function_to_file): Likewise.
3421 * tree-into-ssa.c (pass_build_ssa::execute): Likewise.
3422 (update_ssa): Likewise.
3423 * tree-ssa-alias.c (dump_alias_info): Likewise.
3424 * tree-ssa-ccp.c (ccp_finalize): Likewise.
3425 * tree-ssa-coalesce.c (build_ssa_conflict_graph): Likewise.
3426 (create_outofssa_var_map): Likewise.
3427 (coalesce_ssa_name): Likewise.
3428 * tree-ssa-operands.c (dump_immediate_uses): Likewise.
3429 * tree-ssa-pre.c (compute_avail): Likewise.
3430 * tree-ssa-sccvn.c (init_scc_vn): Likewise.
3431 (scc_vn_restore_ssa_info): Likewise.
3432 (free_scc_vn): Likwise.
3433 (run_scc_vn): Likewise.
3434 * tree-ssa-structalias.c (compute_points_to_sets): Likewise.
3435 * tree-ssa-ter.c (new_temp_expr_table): Likewise.
3436 * tree-ssa-copy.c (fini_copy_prop): Likewise.
3437 * tree-ssa.c (verify_ssa): Likewise.
3438
3439 2016-09-14 Matthew Fortune <matthew.fortune@imgtec.com>
3440
3441 * config.gcc (mips*-mti-elf*, mips*-mti-linux*): Set mips32r2
3442 and mips64r2 as default 32-bit and 64-bit architectures.
3443 (mips*-img-elf*, mips*-img-linux*): Set mips32r6 and mips64r6
3444 as default 32-bit and 64-bit architectures.
3445
3446 2016-09-14 Pat Haugen <pthaugen@us.ibm.com>
3447
3448 * loop-unroll.c (unroll_loop_runtime_iterations): Set probability
3449 of succ edge.
3450
3451 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
3452
3453 * target.def (lra_p): Change commentary (for the manual) for the
3454 new default.
3455 * doc/tm.texi: Regenerate.
3456
3457 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
3458
3459 * config/aarch64/aarch64.c (TARGET_LRA_P): Delete macro.
3460 * config/arm/arm.c (TARGET_LRA_P): Delete macro.
3461 * config/i386/i386.c (TARGET_LRA_P): Delete macro.
3462 * config/nds32/nds32.c (TARGET_LRA_P): Delete macro.
3463
3464 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
3465
3466 * targhooks.c (default_lra_p): Return true instead of false.
3467
3468 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
3469
3470 * config/alpha/alpha.c (TARGET_LRA_P): New macro, defined to
3471 hook_bool_void_false.
3472 * config/avr/avr.c: Ditto.
3473 * config/bfin/bfin.c: Ditto.
3474 * config/c6x/c6x.c: Ditto.
3475 * config/cr16/cr16.c: Ditto.
3476 * config/cris/cris.c: Ditto.
3477 * config/epiphany/epiphany.c: Ditto.
3478 * config/fr30/fr30.c: Ditto.
3479 * config/frv/frv.c: Ditto.
3480 * config/h8300/h8300.c: Ditto.
3481 * config/ia64/ia64.c: Ditto.
3482 * config/iq2000/iq2000.c: Ditto.
3483 * config/lm32/lm32.c: Ditto.
3484 * config/m32c/m32c.c: Ditto.
3485 * config/m32r/m32r.c: Ditto.
3486 * config/m68k/m68k.c: Ditto.
3487 * config/mcore/mcore.c: Ditto.
3488 * config/microblaze/microblaze.c: Ditto.
3489 * config/mmix/mmix.c: Ditto.
3490 * config/mn10300/mn10300.c: Ditto.
3491 * config/moxie/moxie.c: Ditto.
3492 * config/msp430/msp430.c: Ditto.
3493 * config/nios2/nios2.c: Ditto.
3494 * config/nvptx/nvptx.c: Ditto.
3495 * config/pa/pa.c: Ditto.
3496 * config/pdp11/pdp11.c: Ditto.
3497 * config/rl78/rl78.c: Ditto.
3498 * config/sparc/sparc.c: Ditto.
3499 * config/spu/spu.c: Ditto.
3500 * config/stormy16/stormy16.c: Ditto.
3501 * config/tilegx/tilegx.c: Ditto.
3502 * config/tilepro/tilepro.c: Ditto.
3503 * config/v850/v850.c: Ditto.
3504 * config/vax/vax.c: Ditto.
3505 * config/visium/visium.c: Ditto.
3506 * config/xtensa/xtensa.c: Ditto.
3507
3508 2016-09-14 Jakub Jelinek <jakub@redhat.com>
3509
3510 PR sanitizer/68260
3511 * tsan.c: Include target.h.
3512 (enum tsan_atomic_action): Add bool_clear and bool_test_and_set.
3513 (BOOL_CLEAR, BOOL_TEST_AND_SET): Define.
3514 (tsan_atomic_table): Add BUILT_IN_ATOMIC_CLEAR and
3515 BUILT_IN_ATOMIC_TEST_AND_SET entries.
3516 (instrument_builtin_call): Handle bool_clear and bool_test_and_set.
3517
3518 2016-09-14 Bernd Edlinger <bernd.edlinger@hotmail.de>
3519 Martin Liska <mliska@suse.cz>
3520
3521 PR middle-end/77574
3522 * predict.c (force_edge_cold): Add braces to a condition.
3523
3524 2016-09-13 Bernd Edlinger <bernd.edlinger@hotmail.de>
3525
3526 PR rtl-optimization/77289
3527 * lra-constraints.c (get_final_hard_regno): Removed.
3528 (get_hard_regno): Add new parameter final_p.
3529 (get_reg_class): Directly call lra_get_elimination_hard_regno.
3530 (operands_match_p): Adjust call to get_hard_regno.
3531 (uses_hard_regs_p): Likewise.
3532 (process_alt_operands): Likewise.
3533
3534 2016-09-13 Joe Seymour <joe.s@somniumtech.com>
3535
3536 PR target/70713
3537 * config/msp430/msp430.c (msp430_start_function): Emit an error
3538 if a function is both weak and specifies an interrupt number.
3539
3540 2016-09-13 Jakub Jelinek <jakub@redhat.com>
3541
3542 PR tree-optimization/77454
3543 * tree-ssa-dom.c (optimize_stmt): Set modified flag on stmt after
3544 changing GIMPLE_COND. Move update_stmt_if_modified call after this.
3545 Formatting fix.
3546
3547 2016-09-13 Tamar Christina <tamar.christina@arm.com>
3548
3549 * config/aarch64/aarch64-builtins.c
3550 (aarch64_init_simd_builtins): Fix builtin type signature printing.
3551
3552 2016-09-13 Uros Bizjak <ubizjak@gmail.com>
3553
3554 * config/alpha/alpha.c (alpha_pass_by_reference): Pass un-named
3555 SFmode and SCmode arguments by reference.
3556
3557 2016-09-13 David Malcolm <dmalcolm@redhat.com>
3558
3559 * diagnostic-show-locus.c (selftest::test_one_liner_fixit_insert):
3560 Rename to...
3561 (selftest::test_one_liner_fixit_insert_before): ...this, and update
3562 for renaming of add_fixit_insert to add_fixit_insert_before.
3563 (selftest::test_one_liner_fixit_insert_after): New function.
3564 (selftest::test_one_liner_fixit_validation_adhoc_locations):
3565 Update for renaming of add_fixit_insert to add_fixit_insert_before.
3566 (selftest::test_one_liner_many_fixits): Likewise.
3567 (selftest::test_diagnostic_show_locus_one_liner): Update for
3568 renaming, call new test function.
3569 (selftest::test_diagnostic_show_locus_fixit_lines): Update for
3570 renaming of add_fixit_insert to add_fixit_insert_before.
3571 (selftest::test_fixit_consolidation): Likewise.
3572 * diagnostic.c (selftest::test_print_parseable_fixits_insert):
3573 Likewise.
3574 * edit-context.c (selftest::test_applying_fixits_insert): Rename to...
3575 (selftest::test_applying_fixits_insert_before): ...this.
3576 (selftest::test_applying_fixits_insert): Update for renaming of
3577 add_fixit_insert to add_fixit_insert_before.
3578 (selftest::test_applying_fixits_insert_after): New function.
3579 (selftest::test_applying_fixits_insert_after_at_line_end): New
3580 function.
3581 (selftest::test_applying_fixits_insert_after_failure): New function.
3582 (selftest::test_applying_fixits_multiple): Update for renaming of
3583 add_fixit_insert to add_fixit_insert_before.
3584 (selftest::change_line): Likewise.
3585 (selftest::test_applying_fixits_unreadable_file): Likewise.
3586 (selftest::test_applying_fixits_line_out_of_range): Likewise.
3587 (selftest::test_applying_fixits_column_validation): Likewise.
3588 (selftest::test_applying_fixits_column_validation): Likewise.
3589 (selftest::edit_context_c_tests): Update for renamed test function;
3590 call new test functions.
3591
3592 2016-09-13 Pat Haugen <pthaugen@us.ibm.com>
3593
3594 PR tree-optimization/77536
3595 PR rtl-optimization/68212
3596 * config/rs6000/rs6000.md (div->recip splitter): Remove
3597 optimize_insn_for_speed_p condition.
3598
3599 2016-09-13 Maciej W. Rozycki <macro@imgtec.com>
3600
3601 * optabs.c (prepare_cmp_insn): Update documentation comment.
3602
3603 2016-09-13 Jakub Jelinek <jakub@redhat.com>
3604 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3605
3606 PR middle-end/77475
3607 * opts.h (candidates_list_and_hint): Declare.
3608 * opts-common.c (candidates_list_and_hint): New function.
3609 (cmdline_handle_error): Use it.
3610
3611 2016-09-12 David Malcolm <dmalcolm@redhat.com>
3612
3613 * edit-context.c (edited_line::get_len): New accessor.
3614 (edited_file::print_diff): Split out hunk-printing into...
3615 (edited_file::print_diff_hunk): New method.
3616 (edited_file::print_diff_line): New method.
3617
3618 2016-09-12 Andrew Pinski <apinski@cavium.com>
3619
3620 * config/aarch64/aarch64-tuning-flags.def (SLOW_UNALIGNED_LDPW):
3621 New tuning option.
3622 * config/aarch64/aarch64.c (thunderx_tunings): Enable
3623 AARCH64_EXTRA_TUNE_SLOW_UNALIGNED_LDPW.
3624 (aarch64_operands_ok_for_ldpstp): Return false if
3625 AARCH64_EXTRA_TUNE_SLOW_UNALIGNED_LDPW and the mode
3626 was SImode and the alignment is less than 8 byte.
3627 (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
3628
3629 2016-09-12 Orlando Arias <oarias@knights.ucf.edu>
3630
3631 PR target/77570
3632 * config/msp430/msp430.md (delay_cycles_32x): Fix pushm/popm.
3633
3634 2016-09-12 Marek Polacek <polacek@redhat.com>
3635
3636 * doc/extend.texi: Use lowercase "boolean".
3637 * doc/invoke.texi: Likewise.
3638 * doc/md.texi: Likewise.
3639 * target.def: Likewise.
3640 * doc/tm.texi: Regenerated.
3641
3642 2016-09-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3643
3644 PR middle-end/77426
3645 * expmed.c (synth_mult): Delete duplicate mode check.
3646
3647 2016-09-10 Tom de Vries <tom@codesourcery.com>
3648
3649 PR C/71602
3650 * builtins.c (std_canonical_va_list_type): Strictly return non-null for
3651 va_list type only.
3652 * config/i386/i386.c (ix86_canonical_va_list_type): Same.
3653 * gimplify.c (gimplify_va_arg_expr): Handle &va_list.
3654
3655 2016-09-09 Peter Bergner <bergner@vnet.ibm.com>
3656
3657 PR rtl-optimization/77289
3658 * lra-constraints.c (get_final_hard_regno): Add support for non hard
3659 register numbers. Remove support for subregs.
3660 (get_hard_regno): Use SUBREG_P. Don't call get_final_hard_regno().
3661 (get_reg_class): Delete removed get_final_hard_regno() argument.
3662 (uses_hard_regs_p): Call get_final_hard_regno().
3663
3664 2016-09-09 Martin Sebor <msebor@redhat.com>
3665
3666 PR c/77520
3667 PR c/77521
3668 * pretty-print.c (pp_quoted_string): New function.
3669 (pp_format): Call it for %c and %s directives.
3670
3671 2016-09-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
3672
3673 * doc/tm.texi.in (INITIAL_FRAME_POINTER_OFFSET): Remove.
3674 (ELIMINABLE_REGS, TARGET_CAN_ELIMINATE,
3675 INITIAL_ELIMINATION_OFFSET) : Update documentation.
3676 * target.def (frame_pointer_required, can_eliminate): Likewise.
3677 * doc/tm.texi: Regenerated.
3678 * builtins.c (expand_builtin_setjmp_receiver): Remove #ifdef
3679 ELIMINABLE_REGS.
3680 * df-scan.c (df_hard_reg_init): Likewise.
3681 * ira.c (ira_setup_eliminable_regset): Likewise.
3682 * lra-eliminations.c (reg_eliminate_1, (update_reg_eliminate,
3683 init_elim_table): Likewise.
3684 * reload1.c (reg_eliminate_1, verify_initial_elim_offsets,
3685 set_initial_elim_offsets, update_eliminables,
3686 init_elim_table): Likewise.
3687 * rtlanal.c (get_initial_register_offset): Likewise.
3688 * config/ft32/ft32.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
3689 * config/m32r/m32r.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
3690 * config/moxie/moxie.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
3691 * config/vax/vax.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
3692 * config/fr30/fr30.h: Fix comment.
3693 * config/frv/frv.c: Likewise.
3694 * config/frv/frv.h: Likewise.
3695 * config/ft32/ft32.h: Likewise.
3696 * config/visium/visium.h: Likewise.
3697 * config/pa/pa64-linux.h: Likewise.
3698 * config/v850/v850.h: Likewise.
3699 * config/cris/cris.c: Likewise.
3700 * config/ia64/ia64.h: Likewise.
3701 * config/moxie/moxie.h: Likewise.
3702 * config/m32r/m32r.h: Likewise.
3703
3704 2016-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com>
3705
3706 PR target/77267
3707 * config.in: Regenerate.
3708 * config/i386/linux-common.h (MPX_LD_AS_NEEDED_GUARD_PUSH):
3709 New macro.
3710 (MPX_LD_AS_NEEDED_GUARD_PUSH): Ditto.
3711 (LIBMPXWRAPPERS_SPEC): Remove "--no-whole-archive" from
3712 static-libmpxwrappers case.
3713 (LIBMPX_SPEC): Add guards with MPX_LD_AS_NEEDED_GUARD_PUSH and
3714 MPX_LD_AS_NEEDED_GUARD_POP.
3715 * configure: Regenerate.
3716 * configure.ac (HAVE_LD_PUSHPOPSTATE_SUPPORT): New variable.
3717 defined if linker support "--push-state"/"--pop-state".
3718
3719 2016-09-09 Bernd Edlinger <bernd.edlinger@hotmail.de>
3720
3721 * doc/cpp.texi (__*_WIDTH__): Small wording fixes.
3722
3723 2016-09-09 Joseph Myers <joseph@codesourcery.com>
3724
3725 * doc/cpp.texi (__SCHAR_WIDTH__, __SHRT_WIDTH__, __INT_WIDTH__)
3726 (__LONG_WIDTH__, __LONG_LONG_WIDTH__, __PTRDIFF_WIDTH__)
3727 (__SIG_ATOMIC_WIDTH__, __SIZE_WIDTH__, __WCHAR_WIDTH__)
3728 (__WINT_WIDTH__, __INT_LEAST8_WIDTH__, __INT_LEAST16_WIDTH__)
3729 (__INT_LEAST32_WIDTH__, __INT_LEAST64_WIDTH__)
3730 (__INT_FAST8_WIDTH__, __INT_FAST16_WIDTH__, __INT_FAST32_WIDTH__)
3731 (__INT_FAST64_WIDTH__, __INTPTR_WIDTH__, __INTMAX_WIDTH__):
3732 Document.
3733 * ginclude/stdint-gcc.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Define
3734 width macros from TS 18661-1.
3735 * glimits.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Likewise.
3736
3737 2016-09-08 Jakub Jelinek <jakub@redhat.com>
3738
3739 PR fortran/77516
3740 * omp-low.c (lower_rec_simd_input_clauses): Use max_vf for non-positive
3741 OMP_CLAUSE_SAFELEN_EXPR.
3742
3743 2016-09-07 David Malcolm <dmalcolm@redhat.com>
3744
3745 * Makefile.in (OBJS): Add substring-locations.o.
3746 * langhooks-def.h (class substring_loc): New forward decl.
3747 (lhd_get_substring_location): New decl.
3748 (LANG_HOOKS_GET_SUBSTRING_LOCATION): New macro.
3749 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_GET_SUBSTRING_LOCATION.
3750 * langhooks.c (lhd_get_substring_location): New function.
3751 * langhooks.h (class substring_loc): New forward decl.
3752 (struct lang_hooks): Add field get_substring_location.
3753 * substring-locations.c: New file, taking definition of
3754 format_warning_va and format_warning_at_substring from
3755 c-family/c-format.c, making them non-static.
3756 * substring-locations.h (class substring_loc): Move class here
3757 from c-family/c-common.h. Add and rewrite comments.
3758 (format_warning_va): New decl.
3759 (format_warning_at_substring): New decl.
3760 (get_source_location_for_substring): Add comment.
3761
3762 2016-09-07 Eric Gallager <egall@gwmail.gwu.edu>
3763
3764 * config/i386/i386.c: Add 'U' suffix to processor feature bits
3765 to avoid -Wnarrowing warning.
3766 * config/i386/x86-tune.def: Likewise for DEF_TUNE selector bitmasks.
3767 * opts.c: Likewise for SANITIZER_OPT bitmasks.
3768
3769 2016-09-07 Wilco Dijkstra <wdijkstr@arm.com>
3770
3771 * config/aarch64/aarch64.c (aarch64_legitimize_address):
3772 Avoid use of base_offset if offset already in range.
3773
3774 2016-09-07 Kaz Kojima <kkojima@gcc.gnu.org>
3775
3776 * config/sh/sh-protos.h (struct sh_atomic_model,
3777 selected_atomic_model, TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
3778 TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
3779 TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Move to...
3780 * config/sh/sh.h (struct sh_atomic_model,
3781 selected_atomic_model, TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
3782 TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
3783 TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): ...here.
3784 Guard with __cplusplus.
3785
3786 2016-09-06 Jakub Jelinek <jakub@redhat.com>
3787
3788 PR target/69255
3789 * config/i386/i386.c (ix86_expand_builtin): For builtin with
3790 unsupported or unknown ISA, use expand_call.
3791
3792 2016-09-06 Martin Liska <mliska@suse.cz>
3793
3794 PR gcov-profile/77378
3795 PR gcov-profile/77466
3796 * tree-profile.c (tree_profiling): Detect whether target can use
3797 -fprofile-update=atomic.
3798
3799 2016-09-06 Richard Biener <rguenther@suse.de>
3800
3801 PR tree-optimization/77479
3802 * tree-vrp.c (update_value_range): Extend overflow handling to
3803 VARYING.
3804
3805 2016-09-05 Jakub Jelinek <jakub@redhat.com>
3806
3807 PR target/77476
3808 * config/i386/i386.md (isa): Add x64_avx512bw.
3809 (*zero_extendsidi2): For alternative 11 use x64_avx512bw isa.
3810 (kmov_isa): New mode attr.
3811 (zero_extend<mode>di2): Use <kmov_isa> isa for the last alternative.
3812 (*zero_extend<mode>si2): Likewise.
3813 (*zero_extendqihi2): Use avx512dq isa for the last alternative.
3814
3815 2016-09-05 Gerald Pfeifer <gerald@pfeifer.com>
3816
3817 * doc/invoke.texi (SPU Options): nops -> NOPs.
3818 (x86 Options): Ditto.
3819
3820 2016-09-05 Jakub Jelinek <jakub@redhat.com>
3821
3822 PR middle-end/77475
3823 * toplev.c (process_options): Temporarily set input_location
3824 to UNKNOWN_LOCATION around targetm.target_option.override () call.
3825
3826 2016-09-05 Uros Bizjak <ubizjak@gmail.com>
3827
3828 PR rtl-optimization/77452
3829 * explow.c (plus_constant) <case MEM>: Extract scalar constant from
3830 inner-mode reference to a CONST_VECTOR constant in the constant pool.
3831
3832 2016-09-05 Marek Polacek <polacek@redhat.com>
3833
3834 PR c/77423
3835 * doc/invoke.texi: Update -Wlogical-not-parentheses documentation.
3836
3837 2016-09-05 Jakub Jelinek <jakub@redhat.com>
3838
3839 PR other/77421
3840 * gensupport.c (alter_output_for_subst_insn): Remove redundant
3841 *insn_out == '*' test. Don't copy unnecessary to yet another
3842 memory buffer, and don't leak it.
3843
3844 PR rtl-optimization/77425
3845 * ipa-devirt.c (get_odr_type): Set val->id unconditionally.
3846
3847 2016-09-03 Kirill Yukhin <kirill.yukhin@intel.com>
3848
3849 * ubsan.c (ubsan_use_new_style_p): Fix check for empty string.
3850
3851 2016-09-02 David Malcolm <dmalcolm@redhat.com>
3852
3853 * common.opt (fdiagnostics-generate-patch): New option.
3854 * diagnostic.c: Include "edit-context.h".
3855 (diagnostic_initialize): Initialize context->edit_context_ptr.
3856 (diagnostic_finish): Delete context->edit_context_ptr.
3857 (diagnostic_report_diagnostic): Add fix-it hints from the
3858 diagnostic to context->edit_context_ptr, if any.
3859 * diagnostic.h (class edit_context): Add forward decl.
3860 (struct diagnostic_context): Add field "edit_context_ptr".
3861 * doc/invoke.texi (Diagnostic Message Formatting Options): Add
3862 -fdiagnostics-generate-patch.
3863 (-fdiagnostics-generate-patch): New item.
3864 * toplev.c: Include "edit-context.h".
3865 (process_options): Set global_dc->edit_context_ptr to a new
3866 edit_context if the options need one.
3867 (toplev::main): Handle -fdiagnostics-generate-patch by using
3868 global_dc->edit_context_ptr.
3869
3870 2016-09-02 Jakub Jelinek <jakub@redhat.com>
3871
3872 PR c/65467
3873 * gimplify.c (gimplify_adjust_omp_clauses_1): Diagnose implicit
3874 map and firstprivate clauses on target construct for _Atomic
3875 qualified decls.
3876 (gimplify_adjust_omp_clauses): Diagnose explicit firstprivate clauses
3877 on target construct for _Atomic qualified decls.
3878 * omp-low.c (use_pointer_for_field): Return true for _Atomic qualified
3879 decls.
3880 * omp-simd-clone.c (simd_clone_clauses_extract): Warn and give up for
3881 _Atomic qualified arguments not mentioned in uniform clause.
3882
3883 2016-09-02 David Malcolm <dmalcolm@redhat.com>
3884
3885 * Makefile.in (OBJS-libcommon): Add edit-context.o.
3886 * diagnostic-color.c (color_dict): Add "diff-filename",
3887 "diff-hunk", "diff-delete", and "diff-insert".
3888 (parse_gcc_colors): Update default value of GCC_COLORS in comment
3889 to reflect above changes.
3890 * doc/invoke.texi (-fdiagnostics-color): Update description of
3891 default GCC_COLORS, and of the supported capabilities.
3892 * edit-context.c: New file.
3893 * edit-context.h: New file.
3894 * input.c (struct fcache): Add field "missing_trailing_newline".
3895 (diagnostics_file_cache_forcibly_evict_file): Initialize it to
3896 true.
3897 (add_file_to_cache_tab): Likewise.
3898 (fcache::fcache): Likewise.
3899 (get_next_line): Update c->missing_trailing_newline.
3900 (location_missing_trailing_newline): New function.
3901 * input.h (location_missing_trailing_newline): New decl.
3902 * selftest-run-tests.c (selftest::run_tests): Call
3903 edit_context_c_tests.
3904 * selftest.h (edit_context_c_tests): New decl.
3905
3906 2016-09-02 Jakub Jelinek <jakub@redhat.com>
3907 Richard Biener <rguenth@suse.de>
3908
3909 PR tree-optimization/77444
3910 * tree-ssa-loop-ivopts.c (cand_value_at): For pointers use sizetype
3911 as steptype, remove redundant initialization.
3912
3913 2016-09-02 Jakub Jelinek <jakub@redhat.com>
3914
3915 PR sanitizer/77396
3916 * sanopt.c: Include gimple-ssa.h, tree-phinodes.h and ssa-iterators.h.
3917 (sanopt_optimize_walker): Optimize away
3918 __asan_before_dynamic_init (...) followed by
3919 __asan_after_dynamic_init () without intervening memory loads/stores.
3920 * ipa-pure-const.c (special_builtin_state): Handle
3921 BUILT_IN_ASAN_BEFORE_DYNAMIC_INIT and
3922 BUILT_IN_ASAN_AFTER_DYNAMIC_INIT.
3923
3924 2016-09-02 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3925
3926 * cfg.c (free_original_copy_tables): Replace second assignment of
3927 bb_copy = NULL by bb_original = NULL.
3928
3929 2016-09-02 Jakub Jelinek <jakub@redhat.com>
3930
3931 PR other/77421
3932 * config/i386/i386.c (ix86_expanded_args_builtin): Remove redundant
3933 assignment added in r216794.
3934
3935 2016-09-02 David Malcolm <dmalcolm@redhat.com>
3936
3937 * Makefile.in (OBJS): Add typed-splay-tree.o.
3938 * selftest-run-tests.c (selftest::run_tests): Call
3939 typed_splay_tree_c_tests.
3940 * selftest.h (typed_splay_tree_c_tests): New decl.
3941 * typed-splay-tree.c: New file.
3942 * typed-splay-tree.h (typed_splay_tree::foreach_fn): New typedef.
3943 (typed_splay_tree::max): New method.
3944 (typed_splay_tree::min): New method.
3945 (typed_splay_tree::foreach): New method.
3946 (typed_splay_tree::closure): New struct.
3947 (typed_splay_tree::inner_foreach_fn): New function.
3948
3949 2016-09-02 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3950
3951 * ipa-cp.c (ipcp_store_bits_results): Change option name from
3952 -fipa-cp-bit to -fipa-bit-cp.
3953
3954 2016-09-01 Martin Sebor <msebor@redhat.com>
3955
3956 PR tree-optimization/71831
3957 * tree-object-size.h: Return bool instead of the size and add
3958 argument for the size.
3959 * tree-object-size.c (compute_object_offset): Update signature.
3960 (addr_object_size): Same.
3961 (compute_builtin_object_size): Return bool instead of the size
3962 and add argument for the size. Handle POINTER_PLUS_EXPR when
3963 optimization is disabled.
3964 (expr_object_size): Adjust.
3965 (plus_stmt_object_size): Adjust.
3966 (pass_object_sizes::execute): Adjust.
3967 * builtins.c (fold_builtin_object_size): Adjust.
3968 * doc/extend.texi (Object Size Checking): Update.
3969 * ubsan.c (instrument_object_size): Adjust.
3970
3971 2016-09-01 Martin Sebor <msebor@redhat.com>
3972
3973 * genmatch.c (parser::parse_expr): Increase buffer size to guarantee
3974 it fits the output of the formatted function regardless of its
3975 arguments.
3976 * gcc/genmodes.c (parser::parse_expr): Same.
3977 * gimplify.c (gimplify_asm_expr): Same.
3978 * passes.c (pass_manager::register_one_dump_file): Same.
3979 * print-tree.c (print_node): Same.
3980
3981 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
3982
3983 * config/rs6000/altivec.md: Use VSCR_REGNO instead of 110 throughout.
3984
3985 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
3986
3987 * config/rs6000/altivec.md: Use VRSAVE_REGNO instead of 109 throughout.
3988
3989 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
3990
3991 * config/rs6000/altivec.md: Use CR6_REGNO instead of 74 throughout.
3992 * config/rs6000/vector.md: Ditto.
3993 * config/rs6000/vsx.md: Ditto.
3994
3995 2016-09-01 Eric Botcazou <ebotcazou@adacore.com>
3996
3997 * ipa-inline-analysis.c (param_change_prob): Get to the base object
3998 first in all cases.
3999
4000 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
4001
4002 * config/rs6000/rs6000.md (*restore_gpregs_<mode>_r11,
4003 *restore_gpregs_<mode>_r12, *restore_gpregs_<mode>_r1,
4004 *return_and_restore_gpregs_<mode>_r11,
4005 *return_and_restore_gpregs_<mode>_r12,
4006 *return_and_restore_gpregs_<mode>_r1,
4007 *return_and_restore_fpregs_<mode>_r11,
4008 *return_and_restore_fpregs_<mode>_r12,
4009 *return_and_restore_fpregs_<mode>_r1): Use the hard register LR_REGNO
4010 directly instead of via the "l" constraint. Renumber operands.
4011 Fix whitespace.
4012
4013 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
4014
4015 * config/rs6000/altivec.md (*save_world, *save_vregs_<mode>_r11,
4016 save_vregs_<mode>_r12, *restore_vregs_<mode>_r11,
4017 *restore_vregs_<mode>_r12): Use LR_REGNO instead of 65.
4018 * config/rs6000/darwin.md (load_macho_picbase, load_macho_picbase_si,
4019 load_macho_picbase_di, *call_indirect_nonlocal_darwin64,
4020 *call_nonlocal_darwin64, *call_value_indirect_nonlocal_darwin64,
4021 *call_value_nonlocal_darwin64, reload_macho_picbase,
4022 reload_macho_picbase_si, reload_macho_picbase_di): Ditto.
4023 * config/rs6000/rs6000.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Ditto.
4024 * config/rs6000/rs6000.md (*save_gpregs_<mode>_r11,
4025 *save_gpregs_<mode>_r12, *save_gpregs_<mode>_r1,
4026 *save_fpregs_<mode>_r11, *save_fpregs_<mode>_r12,
4027 *save_fpregs_<mode>_r1): Ditto.
4028 * config/rs6000/spe.md (*save_gpregs_spe, *restore_gpregs_spe,
4029 *return_and_restore_gpregs_spe): Ditto.
4030
4031 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
4032
4033 * config/rs6000/rs6000.md
4034 (define_insn "*return_and_restore_fpregs_aix_<mode>_r11"): Delete
4035 the use of the link register.
4036 (define_insn "*return_and_restore_fpregs_aix_<mode>_r1"): Ditto.
4037
4038 2016-09-01 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4039 Michael Meissner <meissner@linux.vnet.ibm.com>
4040
4041 PR target/72827
4042 * config/rs6000/rs6000.c (rs6000_legitimize_address): Avoid
4043 reg+reg addressing for TImode.
4044 (rs6000_legitimate_address_p): Only allow register indirect
4045 addressing for TImode, even without TARGET_QUAD_MEMORY.
4046
4047 2016-09-01 Richard Biener <rguenther@suse.de>
4048
4049 PR middle-end/77436
4050 * tree-chrec.c (tree_fold_binomial): Use widest_int, properly
4051 check whether the result fits the desired result type.
4052
4053 2016-09-01 Nathan Sidwell <nathan@acm.org>
4054
4055 * config/nvptx/nvptx.md (cbranch<mode>4): Op 2 can be const.
4056
4057 2016-09-01 Wilco Dijkstra <wdijkstr@arm.com>
4058
4059 * config/aarch64/aarch64.c (aarch64_legitimize_address_displacement):
4060 New function.
4061 (TARGET_LEGITIMIZE_ADDRESS_DISPLACEMENT): Define.
4062
4063 2016-09-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4064
4065 * config/aarch64/aarch64.md (*ands<mode>_compare0): New pattern.
4066 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_NZmode
4067 for comparisons of integer ZERO_EXTEND against zero.
4068
4069 2016-09-01 Eric Botcazou <ebotcazou@adacore.com>
4070
4071 * config/i386/i386.c (ix86_option_override_internal): Also disable the
4072 STV pass if -mstackrealign is enabled.
4073
4074 2016-08-31 Ilya Verbin <iverbin@gmail.com>
4075
4076 * config/i386/driver-i386.c (host_detect_local_cpu): Fix detection of
4077 AVX512IFMA.
4078
4079 2016-08-31 David Malcolm <dmalcolm@redhat.com>
4080
4081 * diagnostic-show-locus.c (class layout): Add field m_fixit_hints.
4082 (layout_range::intersects_line_p): New method.
4083 (test_range_contains_point_for_single_point): Rename to...
4084 (test_layout_range_for_single_point): ...this, and add testing
4085 for layout_range::intersects_line_p.
4086 (test_range_contains_point_for_single_line): Rename to...
4087 (test_layout_range_for_single_line): ...this, and add testing
4088 for layout_range::intersects_line_p.
4089 (test_range_contains_point_for_multiple_lines): Rename to...
4090 (test_layout_range_for_multiple_lines): ...this, and add testing
4091 for layout_range::intersects_line_p.
4092 (layout::layout): Populate m_fixit_hints.
4093 (layout::get_expanded_location): Handle the case of a line-span
4094 for a fix-it hint.
4095 (layout::validate_fixit_hint_p): New method.
4096 (get_line_span_for_fixit_hint): New function.
4097 (layout::calculate_line_spans): Add spans for fixit-hints.
4098 (layout::should_print_annotation_line_p): New method.
4099 (layout::print_any_fixits): Drop param "richloc", instead using
4100 validated fixits in m_fixit_hints. Add "const" to hint pointers.
4101 (diagnostic_show_locus): Avoid printing blank annotation lines.
4102 (selftest::test_diagnostic_context::test_diagnostic_context):
4103 Initialize show_column and start_span.
4104 (selftest::test_diagnostic_context::start_span_cb): New static
4105 function.
4106 (selftest::test_diagnostic_show_locus_fixit_lines): New function.
4107 (selftest::diagnostic_show_locus_c_tests): Update for function
4108 renamings. Call test_diagnostic_show_locus_fixit_lines.
4109
4110 2016-08-31 Marc Glisse <marc.glisse@inria.fr>
4111
4112 PR tree-optimization/73714
4113 * match.pd (a * (1 << b)): Revert change from 2016-05-23.
4114
4115 2016-08-31 David Malcolm <dmalcolm@redhat.com>
4116
4117 * selftest.c: Move "namespace selftest {" to top of file,
4118 removing explicit "selftest::" qualifiers throughout.
4119
4120 2016-08-31 Marc Glisse <marc.glisse@inria.fr>
4121
4122 * config/i386/avx512fintrin.h (__m512_u, __m512i_u, __m512d_u):
4123 New types.
4124 (_mm512_loadu_pd, _mm512_storeu_pd, _mm512_loadu_ps,
4125 _mm512_storeu_ps, _mm512_loadu_si512, _mm512_storeu_si512):
4126 Replace builtin with vector extension.
4127 * config/i386/avxintrin.h (__m256_u, __m256i_u, __m256d_u):
4128 New types.
4129 (_mm256_loadu_pd, _mm256_storeu_pd, _mm256_loadu_ps,
4130 _mm256_storeu_ps, _mm256_loadu_si256, _mm256_storeu_si256):
4131 Replace builtin with vector extension.
4132 * config/i386/emmintrin.h (__m128i_u, __m128d_u): New types.
4133 (_mm_loadu_pd, _mm_storeu_pd, _mm_loadu_si128, _mm_storeu_si128):
4134 Replace builtin with vector extension.
4135 * config/i386/xmmintrin.h (__m128_u): New type.
4136 (_mm_loadu_ps, _mm_storeu_ps): Replace builtin with vector extension.
4137 (_mm_load_ps, _mm_store_ps): Simplify.
4138
4139 2016-08-31 Eric Botcazou <ebotcazou@adacore.com>
4140
4141 * config/arm/arm.c (thumb1_size_rtx_costs) <SET>: Add missing guard.
4142
4143 2016-08-30 David Malcolm <dmalcolm@redhat.com>
4144
4145 * diagnostic-show-locus.c (colorizer::begin_state): Support more
4146 than 3 ranges per diagnostic by alternating between color 1 and
4147 color 2.
4148 (layout::layout): Replace use of rich_location::MAX_RANGES
4149 with richloc->get_num_locations ().
4150 (layout::calculate_line_spans): Replace use of
4151 rich_location::MAX_RANGES with m_layout_ranges.length ().
4152 (layout::print_annotation_line): Handle arbitrary numbers of
4153 ranges in caret-printing by defaulting to '^'.
4154 (selftest::test_one_liner_many_fixits): New function.
4155 (test_diagnostic_show_locus_one_liner): Call it.
4156 * diagnostic.c (diagnostic_initialize): Update for renaming
4157 of rich_location::MAX_RANGES to
4158 rich_location::STATICALLY_ALLOCATED_RANGES.
4159 * diagnostic.h (struct diagnostic_context): Likewise.
4160
4161 2016-08-30 David Malcolm <dmalcolm@redhat.com>
4162
4163 * selftest.c (selftest::named_temp_file::named_temp_file): New
4164 ctor.
4165 (selftest::temp_source_file::~temp_source_file): Move to...
4166 (selftest::named_temp_file::~named_temp_file): ...here.
4167 (selftest::test_named_temp_file): New function.
4168 (selftest::selftest_c_tests): Call test_named_temp_file.
4169 * selftest.h (class named_temp_file): New class.
4170 (class temp_source_file): Convert to a subclass of named_temp_file.
4171
4172 2016-08-30 Segher Boessenkool <segher@kernel.crashing.org>
4173
4174 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Do not emit
4175 USEs of LR_REGNO in returns and sibcalls.
4176 (rs6000_output_mi_thunk): Similar.
4177 (rs6000_sibcall_aix): Similar.
4178 * config/rs6000/rs6000.md (sibcall, sibcall_value, sibcall_local32,
4179 sibcall_local64, sibcall_value_local32, sibcall_value_local64,
4180 sibcall_nonlocal_sysv<mode>, sibcall_value_nonlocal_sysv<mode>):
4181 Remove the USE of LR_REGNO from the patterns as well. Delete an
4182 obsolete comment.
4183 (return_internal_<mode>): Delete.
4184
4185 2016-08-30 Tamar Christina <tamar.christina@arm.com>
4186
4187 * gcc/config/aarch64/aarch64-simd.md
4188 (aarch64_ld2<mode>_dreg_le): New.
4189 (aarch64_ld2<mode>_dreg_be): New.
4190 (aarch64_ld2<mode>_dreg): Removed.
4191 (aarch64_ld3<mode>_dreg_le): New.
4192 (aarch64_ld3<mode>_dreg_be): New.
4193 (aarch64_ld3<mode>_dreg): Removed.
4194 (aarch64_ld4<mode>_dreg_le): New.
4195 (aarch64_ld4<mode>_dreg_be): New.
4196 (aarch64_ld4<mode>_dreg): Removed.
4197 (aarch64_ld<VSTRUCT:nregs><VDC:mode>): Wrapper around _le, _be.
4198
4199 2016-08-30 David Malcolm <dmalcolm@redhat.com>
4200
4201 * diagnostic-show-locus.c (test_one_liner_fixit_insert): Remove
4202 redundant location param.
4203 (test_one_liner_fixit_remove): Likewise.
4204 (test_one_liner_fixit_replace): Likewise.
4205 (test_one_liner_fixit_replace_equal_secondary_range): Likewise.
4206 * gcc-rich-location.c
4207 (gcc_rich_location::add_fixit_misspelled_id): Eliminate call to
4208 get_range_from_loc. Drop overload taking a const char *.
4209 * gcc-rich-location.h
4210 (gcc_rich_location::add_fixit_misspelled_id): Drop overload taking
4211 a const char *.
4212
4213 2016-08-30 Szabolcs Nagy <szabolcs.nagy@arm.com>
4214
4215 * config/linux.c (linux_libc_has_function): Return true on musl.
4216
4217 2016-08-30 Szabolcs Nagy <szabolcs.nagy@arm.com>
4218
4219 * config.gcc (*-*-*musl*): Disable gnu-indirect-function.
4220
4221 2016-08-30 Eric Botcazou <ebotcazou@adacore.com>
4222
4223 * postreload-gcse.c (bb_has_well_behaved_predecessors): Tweak criterion
4224 used for abnormal egdes.
4225
4226 2016-08-30 Jakub Jelinek <jakub@redhat.com>
4227
4228 PR tree-optimization/72866
4229 * tree-vect-patterns.c (search_type_for_mask): Turn into
4230 a small wrapper, move all code to ...
4231 (search_type_for_mask_1): ... this new function. Add caching
4232 and adjust recursive calls.
4233
4234 PR debug/77363
4235 * dwarf2out.c (modified_type_die): Use lookup_type_die (type)
4236 instead of lookup_type_die (type_main_variant (type)) even for array
4237 types.
4238
4239 PR middle-end/77377
4240 * simplify-rtx.c (avoid_constant_pool_reference): For out of bounds
4241 constant pool reference return x instead of c.
4242
4243 2016-08-29 Segher Boessenkool <segher@kernel.crashing.org>
4244
4245 * config/rs6000/rs6000.h (CALL_REALLY_USED_REGISTERS): Do not
4246 include MQ.
4247
4248 2016-08-29 David Malcolm <dmalcolm@redhat.com>
4249
4250 * input.c
4251 (selftest::test_make_location_nonpure_range_endpoints): Fix
4252 header comment.
4253
4254 2016-08-29 David Malcolm <dmalcolm@redhat.com>
4255
4256 * diagnostic-show-locus.c
4257 (selftest::test_one_liner_fixit_validation_adhoc_locations): New
4258 function.
4259 (selftest::test_diagnostic_show_locus_one_liner): Call it.
4260 * input.c (get_pure_location): Move to libcpp/line-map.c.
4261 * input.h (get_pure_location): Convert decl to an inline function
4262 calling implementation in libcpp.
4263
4264 2016-08-29 Uros Bizjak <ubizjak@gmail.com>
4265
4266 PR target/77403
4267 * config/i386/sse.md (vec_set_lo_<mode><mask_name>): Fix assembler
4268 template for intel asm dialect.
4269 (vec_set_hi_<mode><mask_name>): Ditto.
4270
4271 2016-08-29 David Malcolm <dmalcolm@redhat.com>
4272
4273 * selftest.h (selftest::fail): Add ATTRIBUTE_NORETURN.
4274 (selftest::fail_formatted): Likewise.
4275
4276 2016-08-29 David Malcolm <dmalcolm@redhat.com>
4277
4278 * input.c (make_location): Call get_start and get_finish
4279 on the endpoints to avoid storing packed ranges or ad-hoc
4280 ranges in them.
4281 (selftest::test_make_location_nonpure_range_endpoints): New function.
4282 (selftest::input_c_tests): Call it.
4283 * input.h (get_start): New inline function.
4284
4285 2016-08-29 Tom de Vries <tom@codesourcery.com>
4286
4287 PR c/77398
4288 * gimplify.c (gimplify_va_arg_expr): Replace first argument type error
4289 with assert.
4290
4291 2016-08-29 Eric Botcazou <ebotcazou@adacore.com>
4292
4293 * Makefile.in (gcov-iov.h): Add dummy recipe.
4294
4295 2016-08-29 Nathan Sidwell <nathan@acm.org>
4296
4297 * config/nvptx/nvptx.c: #include tree-vrp.h.
4298
4299 2016-08-28 Eric Botcazou <ebotcazou@adacore.com>
4300
4301 PR target/77324
4302 * config/sparc/sparc.c (sparc_legitimate_address_p): Accept special
4303 HIGH+LO construct during reload.
4304
4305 2016-08-28 Tom de Vries <tom@codesourcery.com>
4306
4307 PR lto/70955
4308 * config/i386/i386.c (ix86_build_builtin_va_list_64): Tag type with
4309 'sysv_abi va_list' attribute.
4310 (ix86_build_builtin_va_list): Tag type with 'ms_abi va_list' attribute.
4311 (ix86_canonical_va_list_type): Handle 'sysv_abi/ms_abi va_list'
4312 attributes.
4313
4314 2016-08-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4315
4316 * emit-rtl.h (struct rtl_data): Make stack_slot_list a vector.
4317 * emit-rtl.c (unshare_all_rtl_1): Adjust.
4318 (unshare_all_rtl_again): Likewise.
4319 * function.c (assign_stack_local_1): Likewise.
4320 (assign_stack_temp_for_type): Likewise.
4321
4322 2016-08-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4323
4324 * cfgbuild.c (make_edges): Adjust.
4325 * cfgrtl.c (can_delete_label_p): Likewise.
4326 * dwarf2cfi.c (create_trace_edges): Likewise.
4327 * except.c (sjlj_emit_dispatch_table): Likewise.
4328 * function.h (struct expr_status): make x_forced_labels a vector.
4329 * jump.c (rebuild_jump_labels_1): Adjust.
4330 * reload1.c (set_initial_label_offsets): Likewise.
4331 * stmt.c (force_label_rtx): Likewise.
4332 (expand_label): Likewise.
4333
4334 2016-08-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4335
4336 * haifa-sched.c (fix_recovery_deps): Make ready_list a vector.
4337
4338 2016-08-27 Patrick Palka <ppalka@gcc.gnu.org>
4339
4340 PR tree-optimization/71077
4341 PR tree-optimization/68542
4342 * fold-const.c (fold_relational_const): Fix folding of
4343 VECTOR_CST comparisons that have a scalar boolean result type.
4344 (selftest::test_vector_folding): New static function.
4345 (selftest::fold_const_c_tests): Call it.
4346
4347 2016-08-27 Gerald Pfeifer <gerald@pfeifer.com>
4348
4349 * doc/extend.texi (SPU Built-in Functions): Remove stale
4350 references to material formerly at IBM and Sony.
4351
4352 2016-08-26 David Edelsohn <dje.gcc@gmail.com>
4353
4354 PR target/77349
4355 * config/rs6000/xcoff.h (DWARF_OFFSET_SIZE): Define as PTR_SIZE.
4356
4357 2016-08-26 David Malcolm <dmalcolm@redhat.com>
4358
4359 * diagnostic-show-locus.c
4360 (selftest::test_fixit_consolidation): New function.
4361 (selftest::diagnostic_show_locus_c_tests): Call it.
4362 * gcc-rich-location.h (gcc_rich_location): Eliminate unused
4363 constructor based on source_range.
4364
4365 2016-08-26 David Malcolm <dmalcolm@redhat.com>
4366
4367 * diagnostic-color.c (color_dict): Add "fixit-insert" and
4368 "fixit-delete".
4369 (parse_gcc_colors): Update description of default GCC_COLORS.
4370 * diagnostic-show-locus.c (colorizer::set_fixit_hint): Delete.
4371 (colorizer::set_fixit_insert): New method.
4372 (colorizer::set_fixit_delete): New method.
4373 (colorizer::get_color_by_name): New method.
4374 (colorizer::STATE_FIXIT_INSERT): New constant.
4375 (colorizer::STATE_FIXIT_DELETE): New constant.
4376 (class colorizer): Drop "_cs" suffix from fields. Delete "_ce"
4377 fields in favor of new field "m_stop_color". Add fields
4378 "m_fixit_insert" and "m_fixit_delete".
4379 (colorizer::colorizer): Update for above changes. Replace
4380 colorize_start calls with calls to get_color_by_name.
4381 (colorizer::begin_state): Handle STATE_FIXIT_INSERT and
4382 STATE_FIXIT_DELETE. Update for field renamings.
4383 (colorizer::finish_state): Simplify by using m_stop_color,
4384 rather than multiple identical "*_ce" fields.
4385 (colorizer::get_color_by_name): New method.
4386 (layout::print_any_fixits): Print insertions and replacements
4387 using the "fixit-insert" color, and deletions using the
4388 "fixit-delete" color.
4389 * doc/invoke.texi (-fdiagnostics-color): Update description of
4390 default GCC_COLORS, and of the supported capabilities.
4391
4392 2016-08-26 Max Filippov <jcmvbkbc@gmail.com>
4393
4394 * config/xtensa/xtensa.c (xtensa_expand_prologue): Update
4395 current_function_static_stack_size variable with the static
4396 stack frame size of the current function when
4397 flag_stack_usage_info is enabled.
4398
4399 2016-08-26 Nathan Sidwell <nathan@acm.org>
4400
4401 * ipa-inline-analysis.c (inline_write_summary): Remove unnecessary
4402 assignment inside if condition.
4403
4404 2016-08-26 Richard Biener <rguenther@suse.de>
4405
4406 PR tree-optimization/69047
4407 * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle general bitfield
4408 extracts similar to what FRE does.
4409 (non_rewritable_mem_ref_base): Likewise.
4410
4411 2016-08-26 Joseph Myers <joseph@codesourcery.com>
4412
4413 * config/i386/i386.c (ix86_libgcc_floating_mode_supported_p)
4414 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Remove.
4415 * config/i386/i386elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
4416 * config/i386/lynx.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
4417 * config/i386/netbsd-elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE):
4418 Likewise.
4419 * config/i386/netbsd64.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
4420 * config/i386/nto.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
4421 * config/i386/openbsd.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
4422 * config/i386/rtemself.h (IX86_NO_LIBGCC_TFMODE): Likewise.
4423 * config/i386/vxworks.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
4424
4425 2016-08-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4426
4427 PR target/70473
4428 * config/arm/cortex-a8-neon.md (cortex_a8_vfp_muld): Reduce
4429 reservation duration to 15 cycles.
4430 (cortex_a8_vfp_macs): Likewise.
4431 (cortex_a8_vfp_macd): Likewise.
4432 (cortex_a8_vfp_divs): Likewise.
4433 (cortex_a8_vfp_divd): Likewise.
4434
4435 2016-08-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4436
4437 * config/arm/arm.c (arm_sets_movw_movt_fusible_p): New function.
4438 (aarch_macro_fusion_pair_p): Use above to avoid early return.
4439
4440 2016-08-26 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
4441 Martin Jambhor <mjambor@suse.cz>
4442
4443 * common.opt: New option -fipa-bit-cp.
4444 * doc/invoke.texi: Document -fipa-bit-cp.
4445 * opts.c (default_options_table): Add entry for -fipa-bit-cp.
4446 (enable_fdo_optimizations): Check for flag_ipa_bit_cp.
4447 * tree-ssa-ccp.h: New header file.
4448 * tree-ssa-ccp.c: Include tree-ssa-ccp.h
4449 (bit_value_binop_1): Change to bit_value_binop_1 and export it.
4450 Replace all occurences of tree parameter by two new params: signop, int.
4451 (bit_value_unop_1): Change to bit_value_unop and export it.
4452 Replace all occurences of tree parameter by two new params: signop,
4453 int.
4454 (bit_value_binop): Change call from bit_value_binop_1 to
4455 bit_value_binop.
4456 (bit_value_assume_aligned): Likewise.
4457 (bit_value_unop): Change call from bit_value_unop_1 to bit_value_unop.
4458 (do_ssa_ccp): Pass nonzero_p || flag_ipa_cp_bit instead of nonzero_p
4459 to ccp_finalize.
4460 (ccp_finalize): Skip processing if val->mask == 0.
4461 * ipa-cp.c: Include tree-ssa-ccp.h
4462 (ipcp_bits_lattice): New class.
4463 (ipcp_param_lattice (bits_lattice): New member.
4464 (print_all_lattices): Call ipcp_bits_lattice::print.
4465 (set_all_contains_variable): Call ipcp_bits_lattice::set_to_bottom.
4466 (initialize_node_lattices): Likewise.
4467 (propagate_bits_accross_jump_function): New function.
4468 (propagate_constants_accross_call): Call
4469 propagate_bits_accross_jump_function.
4470 (ipcp_propagate_stage): Store parameter types when in_lto_p is true.
4471 (ipcp_store_bits_results): New function.
4472 (ipcp_driver): Call ipcp_store_bits_results.
4473 * ipa-prop.h (ipa_bits): New struct.
4474 (ipa_jump_func): Add new member bits of type ipa_bits.
4475 (ipa_param_descriptor): Change decl to decl_or_type.
4476 (ipa_get_param): Change decl to decl_or_type and assert on
4477 PARM_DECL.
4478 (ipa_get_type): New function.
4479 (ipcp_transformation_summary): New member bits.
4480 * ipa-prop.c (ipa_get_param_decl_index_1): s/decl/decl_or_type.
4481 (ipa_populate_param_decls): Likewise.
4482 (ipa_dump_param): Likewise.
4483 (ipa_print_node_jump_functions_for_edge): Pretty-print ipa_bits jump
4484 function.
4485 (ipa_set_jf_unknown): Set ipa_bits::known to false.
4486 (ipa_compute_jump_functions_for_edge): Compute jump function for bits
4487 propagation.
4488 (ipa_node_params_t::duplicate): Copy src->bits into dst->bits.
4489 (ipa_write_jump_function): Add streaming for ipa_bits.
4490 (ipa_read_jump_function): Add support for reading streamed ipa_bits.
4491 (write_ipcp_transformation_info): Add streaming for ipa_bits
4492 summary for ltrans.
4493 (read_ipcp_transfomration_info): Add support for reading streamed
4494 ipa_bits.
4495 (ipcp_update_bits): New function.
4496 (ipcp_transform_function): Call ipcp_update_bits.
4497
4498 2016-08-25 Szabolcs Nagy <szabolcs.nagy@arm.com>
4499
4500 * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Update.
4501 (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Update.
4502
4503 2016-08-25 David Edelsohn <dje.gcc@gmail.com>
4504
4505 * multiple_target.c (pass_data_dispatcher_calls): Fix typo.
4506
4507 2016-08-25 Richard Biener <rguenther@suse.de>
4508
4509 * dwarf2out.c (gen_remaining_tmpl_value_param_die_attributes):
4510 Only add locations in late dwarf.
4511 (gen_scheduled_generic_parms_dies): Do not set early dwarf here.
4512 (dwarf2out_early_finish): But do it here.
4513
4514 2016-08-24 Michael Collison <michael.collison@linaro.org>
4515 Michael Collison <michael.collison@arm.com>
4516
4517 * config/arm/arm-modes.def: Add new condition code mode CC_V
4518 to represent the overflow bit.
4519 * config/arm/arm.c (maybe_get_arm_condition_code):
4520 Add support for CC_Vmode.
4521 (arm_gen_unlikely_cbranch): New function to generate common
4522 rtl conditional branches for overflow patterns.
4523 * config/arm/arm-protos.h: Add prototype for
4524 arm_gen_unlikely_cbranch.
4525 * config/arm/arm.md (addv<mode>4, add<mode>3_compareV,
4526 addsi3_compareV_upper): New patterns to support signed
4527 builtin overflow add operations.
4528 (uaddv<mode>4, add<mode>3_compareC, addsi3_compareV_upper):
4529 New patterns to support unsigned builtin add overflow operations.
4530 (subv<mode>4, sub<mode>3_compare1): New patterns to support signed
4531 builtin overflow subtract operations,
4532 (usubv<mode>4): New patterns to support unsigned builtin subtract
4533 overflow operations.
4534 (negvsi3, negvdi3, negdi2_compare, negsi2_carryin_compare): New patterns
4535 to support builtin overflow negate operations.
4536
4537 2016-08-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
4538
4539 Revert
4540 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
4541
4542 * explow.c (get_dynamic_stack_size): Take known alignment of stack
4543 pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
4544 needed.
4545
4546 2016-08-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
4547
4548 * doc/fragments.texi (MULTILIB_REUSE): Mention that only options in
4549 MULTILIB_OPTIONS should be used. Small wording fixes.
4550 * genmultilib: Memorize set of all option combinations in
4551 combination_space. Detect if RHS of MULTILIB_REUSE uses an option not
4552 found in MULTILIB_OPTIONS by checking if option set is listed in
4553 combination_space. Output new and existing error message to stderr.
4554
4555 2016-08-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
4556
4557 * config/arm/t-aprofile (MULTILIB_MATCHES): Add mapping for
4558 -mcpu=cortex-a7, -mfpu=neon-fp16, -mfpu=fpv5-d16 and -mfpu=fp-armv8.
4559 Fix typo in -mfpu=vfpv3-d16-fp16 mapping.
4560 (MULTILIB_REUSE): Remove reuse rules for option set including
4561 -mfpu=fp-armv8 and -mfpu=vfpv4
4562
4563 2016-08-24 Sebastian Huber <sebastian.huber@embedded-brains.de>
4564
4565 * config/arm/t-rtems: Add vfp multilib.
4566
4567 2016-08-23 Ian Lance Taylor <iant@golang.org>
4568
4569 * config/s390/s390.c (s390_asm_file_start): Call
4570 default_file_start.
4571
4572 2016-08-23 Michael Meissner <meissner@linux.vnet.ibm.com>
4573
4574 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Set
4575 initialization of all 0's to the 0 constant, instead of directly
4576 generating XOR. Add support for V4SImode vector initialization on
4577 64-bit systems with direct move, and rework the ISA 3.0 V4SImode
4578 initialization. Change variables used in V4SFmode vector
4579 intialization. For V4SFmode vector splat on ISA 3.0, make sure
4580 any memory addresses are in index form. Add support for using
4581 VSPLTH/VSPLTB to initialize vector short and vector char vectors
4582 with all of the same element.
4583 (regno_or_subregno): New helper function to return a register
4584 number for either REG or SUBREG.
4585 (rs6000_adjust_vec_address): Do not generate ADDI <reg>,R0,<num>.
4586 Use regno_or_subregno where possible.
4587 (rs6000_split_v4si_init_di_reg): New helper function to build up a
4588 DImode value from two SImode values in order to generate V4SImode
4589 vector initialization on 64-bit systems with direct move.
4590 (rs6000_split_v4si_init): Split up the insns for a V4SImode vector
4591 initialization.
4592 (rtx_is_swappable_p): V4SImode vector initialization insn is not
4593 swappable.
4594 * config/rs6000/rs6000-protos.h (rs6000_split_v4si_init): Add
4595 declaration.
4596 * config/rs6000/vsx.md (VSX_SPLAT_I): New mode iterators and
4597 attributes to initialize V8HImode and V16QImode vectors with the
4598 same element.
4599 (VSX_SPLAT_COUNT): Likewise.
4600 (VSX_SPLAT_SUFFIX): Likewise.
4601 (UNSPEC_VSX_VEC_INIT): New unspec.
4602 (vsx_concat_v2sf): Eliminate using 'preferred' register classes.
4603 Allow SFmode values to come from Altivec registers.
4604 (vsx_init_v4si): New insn/split for V4SImode vector initialization
4605 on 64-bit systems with direct move.
4606 (vsx_splat_<mode>, VSX_W iterator): Rework V4SImode and V4SFmode
4607 vector initializations, to allow V4SImode vector initializations
4608 on 64-bit systems with direct move.
4609 (vsx_splat_v4si): Likewise.
4610 (vsx_splat_v4si_di): Likewise.
4611 (vsx_splat_v4sf): Likewise.
4612 (vsx_splat_v4sf_internal): Likewise.
4613 (vsx_xxspltw_<mode>, VSX_W iterator): Eliminate using 'preferred'
4614 register classes.
4615 (vsx_xxspltw_<mode>_direct, VSX_W iterator): Likewise.
4616 (vsx_vsplt<VSX_SPLAT_SUFFIX>_di): New insns to support
4617 initializing V8HImode and V16QImode vectors with the same
4618 element.
4619 * config/rs6000/rs6000.h (TARGET_DIRECT_MOVE_64BIT): Disallow
4620 optimization if -maltivec=be.
4621
4622 2016-08-23 Christophe Lyon <christophe.lyon@linaro.org>
4623
4624 * config/arm/arm.md (arm_movqi_insn): Swap predicable_short_it
4625 attribute for alternatives 3 and 4.
4626
4627 2016-08-23 David Malcolm <dmalcolm@redhat.com>
4628
4629 * selftest.c (selftest::assert_str_contains): New function.
4630 (selftest::test_assertions): Verify ASSERT_STR_CONTAINS.
4631 * selftest.h (selftest::assert_str_contains): New decl.
4632 (ASSERT_STR_CONTAINS): New macro.
4633
4634 2016-08-23 Richard Biener <rguenther@suse.de>
4635
4636 PR tree-optimization/77286
4637 * tree-vect-loop.c (vect_analyze_loop_form_1): Do not modify
4638 the CFG here.
4639 (vect_transform_loop): Split exit edges of loop and scalar
4640 loop if required and at the appropriate time.
4641
4642 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
4643
4644 * explow.c (get_dynamic_stack_size): Take known alignment of stack
4645 pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
4646 needed.
4647 Correct a typo in a comment.
4648
4649 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
4650
4651 * config/s390/s390.md ("*andc_split"): New splitter for and with
4652 complement.
4653
4654 2016-08-23 Richard Biener <rguenther@suse.de>
4655
4656 PR tree-optimization/27336
4657 * tree-vrp.c (infer_value_range): Handle stmts that can throw
4658 by looking for a non-EH edge.
4659 (process_assert_insertions_for): Likewise.
4660
4661 2016-08-23 Richard Biener <rguenther@suse.de>
4662
4663 PR middle-end/77305
4664 * statistics.c (statistics_counter_event): Robustify against
4665 NULL current_pass.
4666
4667 2016-08-23 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
4668
4669 * config/i386/i386.c (processor_alias_table): Enable PTA_PRFCHW
4670 for targets amdfam10 and barcelona.
4671
4672 2016-08-22 Uros Bizjak <ubizjak@gmail.com>
4673
4674 * config/i386/i386.md (*zero_extendsidi2): Add (*r,*k) alternative.
4675 (zero_extend<mode>di2): Ditto.
4676 (*zero_extend<mode>si2): Ditto.
4677 (*zero_extendqihi2): Ditto.
4678
4679 2016-08-22 Joseph Myers <joseph@codesourcery.com>
4680
4681 PR middle-end/77269
4682 * builtins.c (fold_builtin_classify): Use builtin_decl_explicit
4683 (BUILT_IN_SIGNBIT) to expand __builtin_isinf_sign.
4684
4685 2016-08-22 Patrick Palka <ppalka@gcc.gnu.org>
4686
4687 * print-tree.c (print_node) [VECTOR_CST]: Coalesce the output of
4688 identical consecutive elements.
4689 [SSA_NAME]: Print the name's def stmt on its own line. When printing
4690 the node's def stmt, avoid printing an unwanted trailing newline by
4691 replacing the call to print_gimple_stmt() with its inlined body and
4692 adjusting it to not set pp_needs_newline and to call pp_flush()
4693 instead of pp_newline_and_flush().
4694
4695 2016-08-22 Joseph Myers <joseph@codesourcery.com>
4696
4697 * tree.h (CASE_FLT_FN_FLOATN_NX, float16_type_node)
4698 (float32_type_node, float64_type_node, float32x_type_node)
4699 (float128x_type_node): New macros.
4700 * builtin-types.def (BT_FLOAT16, BT_FLOAT32, BT_FLOAT64)
4701 (BT_FLOAT128, BT_FLOAT32X, BT_FLOAT64X, BT_FLOAT128X)
4702 (BT_FN_FLOAT16, BT_FN_FLOAT32, BT_FN_FLOAT64, BT_FN_FLOAT128)
4703 (BT_FN_FLOAT32X, BT_FN_FLOAT64X, BT_FN_FLOAT128X)
4704 (BT_FN_FLOAT16_FLOAT16, BT_FN_FLOAT32_FLOAT32)
4705 (BT_FN_FLOAT64_FLOAT64, BT_FN_FLOAT128_FLOAT128)
4706 (BT_FN_FLOAT32X_FLOAT32X, BT_FN_FLOAT64X_FLOAT64X)
4707 (BT_FN_FLOAT128X_FLOAT128X, BT_FN_FLOAT16_CONST_STRING)
4708 (BT_FN_FLOAT32_CONST_STRING, BT_FN_FLOAT64_CONST_STRING)
4709 (BT_FN_FLOAT128_CONST_STRING, BT_FN_FLOAT32X_CONST_STRING)
4710 (BT_FN_FLOAT64X_CONST_STRING, BT_FN_FLOAT128X_CONST_STRING)
4711 (BT_FN_FLOAT16_FLOAT16_FLOAT16, BT_FN_FLOAT32_FLOAT32_FLOAT32)
4712 (BT_FN_FLOAT64_FLOAT64_FLOAT64, BT_FN_FLOAT128_FLOAT128_FLOAT128)
4713 (BT_FN_FLOAT32X_FLOAT32X_FLOAT32X)
4714 (BT_FN_FLOAT64X_FLOAT64X_FLOAT64X)
4715 (BT_FN_FLOAT128X_FLOAT128X_FLOAT128X): New type definitions.
4716 * builtins.def (DEF_GCC_FLOATN_NX_BUILTINS): New macro.
4717 (copysign, fabs, huge_val, inf, nan, nans): Use it.
4718 * builtins.c (expand_builtin): Use CASE_FLT_FN_FLOATN_NX for fabs
4719 and copysign.
4720 (fold_builtin_0): Use CASE_FLT_FN_FLOATN_NX for inf and huge_val.
4721 (fold_builtin_1): Use CASE_FLT_FN_FLOATN_NX for fabs.
4722 * doc/extend.texi (Other Builtins): Document these built-in
4723 functions.
4724 * fold-const-call.c (fold_const_call): Use CASE_FLT_FN_FLOATN_NX
4725 for nan and nans.
4726
4727 2016-08-22 Gerald Pfeifer <gerald@pfeifer.com>
4728
4729 * doc/install.texi (Binaries): www.opencsw.org now uses https.
4730
4731 2016-08-22 Richard Biener <rguenther@suse.de>
4732
4733 * tree-ssa-forwprop.c (pass_forwprop::execute): Use RPO order.
4734
4735 2016-08-21 Uros Bizjak <ubizjak@gmail.com>
4736
4737 PR target/77270
4738 * config/i386/i386.md (prefetch): When TARGET_PRFCHW or
4739 TARGET_PREFETCHWT1 are disabled, emit 3dNOW! write prefetches for
4740 non-SSE2 athlons only, otherwise prefer SSE prefetches.
4741
4742 2016-08-20 Kugan Vivekanandarajah <kuganv@linaro.org>
4743
4744 * tree-vrp.c (vrp_visit_assignment_or_call): Changed to Return VR.
4745 (vrp_visit_cond_stmt): Just sets TAKEN_EDGE_P.
4746 (vrp_visit_switch_stmt): Likewise.
4747 (extract_range_from_stmt): Factored out from vrp_visit_stmt.
4748 (extract_range_from_phi_node): Factored out from vrp_visit_phi_stmt.
4749 (vrp_visit_stmt): Use extract_range_from_stmt.
4750 (vrp_visit_phi_node): Use extract_range_from_phi_node.
4751
4752 2016-08-20 Kugan Vivekanandarajah <kuganv@linaro.org>
4753
4754 * Makefile.in: Add tree-vrp.h to GTFILES.
4755 * gengtype.c (open_base_files): Add tree-vrp.h.
4756 * asan.c: Add tree-vrp.h which now has the definition value_range_type.
4757 * builtins.c: Likewise.
4758 * fold-const.c: Likewise.
4759 * gimple-builder.c: Likewise.
4760 * gimple-laddress.c: Likewise.
4761 * hsa-gen.c: Likewise.
4762 * internal-fn.c: Likewise.
4763 * ssa.h: Likewise.
4764 * targhooks.c: Liewise,
4765 * tree-ssa-address.c: Likewise.
4766 * tree-ssanames.h (value_range_type: Move to tree-vrp.h.
4767 * tree-vrp.c (struct value_range): Move to tree-vrp.h
4768 * tree-vrp.h: New file.
4769
4770 2016-08-20 Kugan Vivekanandarajah <kuganv@linaro.org>
4771
4772 PR tree-optimization/61839
4773 * tree-vrp.c (two_valued_val_range_p): New.
4774 (simplify_stmt_using_ranges): Convert CST BINOP VAR where VAR is
4775 two-valued to VAR == VAL1 ? (CST BINOP VAL1) : (CST BINOP VAL2).
4776 Also Convert VAR BINOP CST where VAR is two-valued to
4777 VAR == VAL1 ? (VAL1 BINOP CST) : (VAL2 BINOP CST).
4778
4779 2016-08-19 David Malcolm <dmalcolm@redhat.com>
4780
4781 * diagnostic-show-locus.c
4782 (layout::annotation_line_showed_range_p): New method.
4783 (layout::print_any_fixits): Remove case fixit_hint::REMOVE.
4784 Reimplement case fixit_hint::REPLACE to cover removals, and
4785 replacements where the range of the replacement isn't one
4786 of the ranges in the rich_location.
4787 (test_one_liner_fixit_replace): Likewise.
4788 (selftest::test_one_liner_fixit_replace_non_equal_range): New
4789 function.
4790 (selftest::test_one_liner_fixit_replace_equal_secondary_range):
4791 New function.
4792 (selftest::test_diagnostic_show_locus_one_liner): Call the new
4793 functions.
4794 * diagnostic.c (print_parseable_fixits): Remove case
4795 fixit_hint::REMOVE.
4796
4797 2016-08-19 Uros Bizjak <ubizjak@gmail.com>
4798
4799 PR target/77270
4800 * config/i386/i386.c (ix86_option_override_internal): Remove
4801 PTA_PRFCHW from entries that also have PTA_3DNOW flag.
4802 Enable SSE prefetch also for TARGET_PREFETCHWT1.
4803 Do not try to enable TARGET_PRFCHW ISA flag here.
4804 * config/i386/i386.md (prefetch): Enable also for TARGET_3DNOW.
4805 Rewrite expander function body.
4806 (*prefetch_3dnow): Enable for TARGET_3DNOW and TARGET_PREFETCHWT1.
4807
4808 2016-08-19 Joseph Myers <joseph@codesourcery.com>
4809
4810 PR c/32187
4811 * tree-core.h (TI_COMPLEX_FLOAT16_TYPE)
4812 (TI_COMPLEX_FLOATN_NX_TYPE_FIRST, TI_COMPLEX_FLOAT32_TYPE)
4813 (TI_COMPLEX_FLOAT64_TYPE, TI_COMPLEX_FLOAT128_TYPE)
4814 (TI_COMPLEX_FLOAT32X_TYPE, TI_COMPLEX_FLOAT64X_TYPE)
4815 (TI_COMPLEX_FLOAT128X_TYPE, TI_FLOAT16_TYPE, TI_FLOATN_TYPE_FIRST)
4816 (TI_FLOATN_NX_TYPE_FIRST, TI_FLOAT32_TYPE, TI_FLOAT64_TYPE)
4817 (TI_FLOAT128_TYPE, TI_FLOATN_TYPE_LAST, TI_FLOAT32X_TYPE)
4818 (TI_FLOATNX_TYPE_FIRST, TI_FLOAT64X_TYPE, TI_FLOAT128X_TYPE)
4819 (TI_FLOATNX_TYPE_LAST, TI_FLOATN_NX_TYPE_LAST): New enum
4820 tree_index values.
4821 (NUM_FLOATN_TYPES, NUM_FLOATNX_TYPES, NUM_FLOATN_NX_TYPES): New
4822 macros.
4823 (struct floatn_type_info): New structure type.
4824 (floatn_nx_types): New variable declaration.
4825 * tree.h (FLOATN_TYPE_NODE, FLOATN_NX_TYPE_NODE)
4826 (FLOATNX_TYPE_NODE, float128_type_node, float64x_type_node)
4827 (COMPLEX_FLOATN_NX_TYPE_NODE): New macros.
4828 * tree.c (floatn_nx_types): New variable.
4829 (build_common_tree_nodes): Initialize _FloatN, _FloatNx and
4830 corresponding complex types.
4831 * target.def (floatn_mode): New hook.
4832 * targhooks.c: Include "real.h".
4833 (default_floatn_mode): New function.
4834 * targhooks.h (default_floatn_mode): New prototype.
4835 * doc/extend.texi (Floating Types): Document _FloatN and _FloatNx
4836 types.
4837 * doc/sourcebuild.texi (float@var{n}, float@var{n}x): Document new
4838 effective-target and dg-add-options keywords.
4839 (float@var{n}_runtime, float@var{n}x_runtime, floatn_nx_runtime):
4840 Document new effective-target keywords.
4841 * doc/tm.texi.in (TARGET_FLOATN_MODE): New @hook.
4842 * doc/tm.texi: Regenerate.
4843 * ginclude/float.h (LDBL_DECIMAL_DIG): Define to
4844 __LDBL_DECIMAL_DIG__, not __DECIMAL_DIG__.
4845 [__STDC_WANT_IEC_60559_TYPES_EXT__]: Define macros from TS
4846 18661-3.
4847 * real.h (struct real_format): Add field ieee_bits.
4848 * real.c (ieee_single_format, mips_single_format)
4849 (motorola_single_format, spu_single_format, ieee_double_format)
4850 (mips_double_format, motorola_double_format)
4851 (ieee_extended_motorola_format, ieee_extended_intel_96_format)
4852 (ieee_extended_intel_128_format)
4853 (ieee_extended_intel_96_round_53_format, ibm_extended_format)
4854 (mips_extended_format, ieee_quad_format, mips_quad_format)
4855 (vax_f_format, vax_d_format, vax_g_format, decimal_single_format)
4856 (decimal_double_format, decimal_quad_format, ieee_half_format)
4857 (arm_half_format, real_internal_format: Initialize ieee_bits
4858 field.
4859 * config/i386/i386.c (ix86_init_builtin_types): Do not initialize
4860 float128_type_node. Set float80_type_node to float64x_type_node
4861 if appropriate and long_double_type_node not appropriate.
4862 * config/ia64/ia64.c (ia64_init_builtins): Likewise.
4863 * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format):
4864 Initialize ieee_bits field.
4865 * config/rs6000/rs6000.c (TARGET_FLOATN_MODE): New macro.
4866 (rs6000_init_builtins): Set ieee128_float_type_node to
4867 float128_type_node.
4868 (rs6000_floatn_mode): New function.
4869
4870 2016-08-19 Jakub Jelinek <jakub@redhat.com>
4871
4872 * config/i386/rdseedintrin.h (_rdseed16_step, _rdseed32_step,
4873 _rdseed64_step): Uglify argument names and/or local variable names
4874 in inline functions.
4875 * config/i386/rtmintrin.h (_xabort): Likewise.
4876 * config/i386/avx512vlintrin.h (_mm256_ternarylogic_epi64,
4877 _mm256_mask_ternarylogic_epi64, _mm256_maskz_ternarylogic_epi64,
4878 _mm256_ternarylogic_epi32, _mm256_mask_ternarylogic_epi32,
4879 _mm256_maskz_ternarylogic_epi32, _mm_ternarylogic_epi64,
4880 _mm_mask_ternarylogic_epi64, _mm_maskz_ternarylogic_epi64,
4881 _mm_ternarylogic_epi32, _mm_mask_ternarylogic_epi32,
4882 _mm_maskz_ternarylogic_epi32): Likewise.
4883 * config/i386/lwpintrin.h (__llwpcb, __lwpval32, __lwpval64,
4884 __lwpins32, __lwpins64): Likewise.
4885 * config/i386/avx2intrin.h (_mm_i32gather_pd, _mm_mask_i32gather_pd,
4886 _mm256_i32gather_pd, _mm256_mask_i32gather_pd, _mm_i64gather_pd,
4887 _mm_mask_i64gather_pd, _mm256_i64gather_pd, _mm256_mask_i64gather_pd,
4888 _mm_i32gather_ps, _mm_mask_i32gather_ps, _mm256_i32gather_ps,
4889 _mm256_mask_i32gather_ps, _mm_i64gather_ps, _mm_mask_i64gather_ps,
4890 _mm256_i64gather_ps, _mm256_mask_i64gather_ps, _mm_i32gather_epi64,
4891 _mm_mask_i32gather_epi64, _mm256_i32gather_epi64,
4892 _mm256_mask_i32gather_epi64, _mm_i64gather_epi64,
4893 _mm_mask_i64gather_epi64, _mm256_i64gather_epi64,
4894 _mm256_mask_i64gather_epi64, _mm_i32gather_epi32,
4895 _mm_mask_i32gather_epi32, _mm256_i32gather_epi32,
4896 _mm256_mask_i32gather_epi32, _mm_i64gather_epi32,
4897 _mm_mask_i64gather_epi32, _mm256_i64gather_epi32,
4898 _mm256_mask_i64gather_epi32): Likewise.
4899 * config/i386/pmm_malloc.h (_mm_malloc, _mm_free): Likewise.
4900 * config/i386/ia32intrin.h (__writeeflags): Likewise.
4901 * config/i386/pkuintrin.h (_wrpkru): Likewise.
4902 * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd,
4903 _mm512_mask_prefetch_i32gather_ps, _mm512_mask_prefetch_i64gather_pd,
4904 _mm512_mask_prefetch_i64gather_ps, _mm512_prefetch_i32scatter_pd,
4905 _mm512_prefetch_i32scatter_ps, _mm512_mask_prefetch_i32scatter_pd,
4906 _mm512_mask_prefetch_i32scatter_ps, _mm512_prefetch_i64scatter_pd,
4907 _mm512_prefetch_i64scatter_ps, _mm512_mask_prefetch_i64scatter_pd,
4908 _mm512_mask_prefetch_i64scatter_ps): Likewise.
4909 * config/i386/gmm_malloc.h (_mm_malloc, _mm_free): Likewise.
4910 * config/i386/avx512fintrin.h (_mm512_ternarylogic_epi64,
4911 _mm512_mask_ternarylogic_epi64, _mm512_maskz_ternarylogic_epi64,
4912 _mm512_ternarylogic_epi32, _mm512_mask_ternarylogic_epi32,
4913 _mm512_maskz_ternarylogic_epi32, _mm512_i32gather_ps,
4914 _mm512_mask_i32gather_ps, _mm512_i32gather_pd, _mm512_i64gather_ps,
4915 _mm512_i64gather_pd, _mm512_i32gather_epi32, _mm512_i32gather_epi64,
4916 _mm512_i64gather_epi32, _mm512_i64gather_epi64): Likewise.
4917
4918 * config/i386/fxsrintrin.h (_fxsave): Remove return keyword in inlines
4919 returning void.
4920 (_fxrstor, _fxsave64, _fxrstor64): Likewise.
4921 * config/i386/xsaveintrin.h (_xsave, _xrstor, _xsave64, _xrstor64):
4922 Likewise.
4923 * config/i386/xsaveoptintrin.h (_xsaveopt, _xsaveopt64): Likewise.
4924 * config/i386/pkuintrin.h (_wrpkru): Likewise. Add space after
4925 function name.
4926 (_rdpkru_u32): Add space after function name.
4927
4928 * config/i386/t-i386 (i386-c.o): Don't depend on
4929 i386-builtin-types.inc.
4930 (i386.o): Depend on i386-builtin-types.inc.
4931
4932 2016-08-19 Matthew Wahab <matthew.wahab@arm.com>
4933
4934 PR target/77281
4935 * config/arm/arm.c (neon_valid_immediate): Delete declaration.
4936 Use const_vec_duplicate to check for duplicated elements.
4937
4938 2016-08-19 Richard Biener <rguenther@suse.de>
4939
4940 PR tree-optimization/77290
4941 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
4942 Fix flag_tree_parallelize_loops check.
4943
4944 2016-08-19 Richard Biener <rguenther@suse.de>
4945
4946 * match.pd (x | 0 -> x): Add.
4947
4948 2016-08-19 Richard Biener <rguenther@suse.de>
4949
4950 PR tree-optimization/77286
4951 * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
4952 Deal with virtual PHIs being out-of-order.
4953
4954 2016-08-18 David Malcolm <dmalcolm@redhat.com>
4955
4956 * doc/invoke.texi (fverbose-asm): Note that source code lines
4957 are emitted, and provide an example.
4958 * final.c (asm_show_source): New function.
4959 (final_scan_insn): Call asm_show_source.
4960
4961 2016-08-18 David Malcolm <dmalcolm@redhat.com>
4962
4963 * diagnostic-show-locus.c (colorizer::colorizer): Replace diagnostic
4964 param with diagnostic_kind.
4965 (class colorizer): Similarly replace field m_diagnostic with
4966 m_diagnostic_kind.
4967 (colorizer::colorizer): Replace diagnostic
4968 param with diagnostic_kind.
4969 (colorizer::begin_state): Update for above field change.
4970 (layout::layout): Replace diagnostic param with rich_location *
4971 and diagnostic_kind.
4972 (diagnostic_show_locus): Replace diagnostic param with richloc
4973 and diagnostic_kind.
4974 (class selftest::test_diagnostic_context): New class.
4975 (selftest::test_diagnostic_show_locus_unknown_location): New
4976 function.
4977 (selftest::test_one_liner_simple_caret): New function.
4978 (selftest::test_one_liner_caret_and_range): New function.
4979 (selftest::test_one_liner_multiple_carets_and_ranges): New
4980 function.
4981 (selftest::test_one_liner_fixit_remove): New function.
4982 (selftest::test_one_liner_fixit_replace): New function.
4983 (selftest::test_diagnostic_show_locus_one_liner): New function.
4984 (selftest::diagnostic_show_locus_c_tests): Call the new test
4985 functions.
4986 * diagnostic.c (diagnostic_initialize): Initialize
4987 colorize_source_p, show_ruler_p and parseable_fixits_p.
4988 (default_diagnostic_finalizer): Update for change to
4989 diagnostic_show_locus.
4990 (diagnostic_append_note): Likewise.
4991 * diagnostic.h (diagnostic_show_locus): Replace
4992 const diagnostic_info * param with location * and diagnostic_t.
4993
4994 2016-08-18 David Malcolm <dmalcolm@redhat.com>
4995
4996 * input.c (saved_line_table): New global.
4997 (class selftest::temp_line_table): Rename to line_table_test and
4998 move declaration to selftest.h, and drop field m_old_line_table.
4999 (selftest::temp_line_table::temp_line_table): Rename ctor to...
5000 (selftest::line_table_test::line_table_test): ...this. Add a
5001 default ctor. Store current value of line_table within
5002 saved_line_table.
5003 (selftest::temp_line_table::~temp_line_table): Rename dtor to...
5004 (selftest::line_table_test::~line_table_test): ...this, and
5005 restore line_table from the saved_line_table, rather than
5006 m_old_line_table.
5007 (selftest::test_accessing_ordinary_linemaps): Update for above
5008 renaming.
5009 (selftest::test_lexer): Likewise.
5010 (struct selftest::lexer_test): Likewise.
5011 (selftest::lexer_test::lexer_test): Likewise.
5012 (selftest::input_c_tests): Move the looping over test cases from
5013 here into...
5014 (selftest::for_each_line_table_case): New function.
5015 * input.h (saved_line_table): New decl.
5016 * selftest.h (struct selftest::line_table_case): New forward decl.
5017 (class selftest::line_table_test): New class, moved here from
5018 selftest::temp_line_table in input.c, and renamed.
5019 (selftest::for_each_line_table_case): New decl.
5020
5021 2015-08-18 H.J. Lu <hongjiu.lu@intel.com>
5022
5023 PR target/72839
5024 * config/i386/i386.c (lakemont_cost): Set MOVE_RATIO to 17.
5025
5026 2016-08-18 Chung-Lin Tang <cltang@codesourcery.com>
5027
5028 PR middle-end/70895
5029 * gimplify.c (omp_add_variable): Adjust/add variable mapping on
5030 enclosing parallel construct for reduction variables on OpenACC loop
5031 directives.
5032
5033 2016-08-18 Pierre-Marie de Rodat <derodat@adacore.com>
5034
5035 * dwarf2out.c (copy_dwarf_procedure): Remove obsolete comment.
5036 (new_dwarf_proc_die): Emit DW_TAG_dwarf_procedure DIEs even for
5037 -gdwarf-3.
5038 (function_to_dwarf_procedure): Update comment.
5039
5040 2016-08-18 David Malcolm <dmalcolm@redhat.com>
5041
5042 * input.c (diagnostics_file_cache_forcibly_evict_file): New
5043 function.
5044 * input.h (diagnostics_file_cache_forcibly_evict_file): New
5045 declaration.
5046 * selftest.c (selftest::temp_source_file::~temp_source_file):
5047 Evict m_filename from the diagnostic file cache.
5048
5049 2016-08-18 Richard Biener <rguenther@suse.de>
5050
5051 * tree-pass.h (make_pass_materialize_all_clones): Declare.
5052 * ipa.c (pass_data_materialize_all_clones, pass_materialize_all_clones,
5053 make_pass_materialize_all_clones): New simple IPA pass encapsulating
5054 clone materialization.
5055 * passes.def (all_late_ipa_passes): Start with
5056 pass_materialize_all_clones.
5057 * cgraphunit.c (symbol_table::compile): Remove call to
5058 materialize_all_clones.
5059 * tree-into-ssa.c: Include statistics.h.
5060 (update_ssa): Count number of times we do incremental/rewrite
5061 SSA update.
5062
5063 2016-08-18 Richard Biener <rguenther@suse.de>
5064
5065 PR tree-optimization/77282
5066 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
5067 When doing auto-parallelizing also prevent use of PHIs that
5068 carry dependences across loop backedges.
5069
5070 2016-08-18 Tamar Christina <tamar.christina@arm.com>
5071 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5072
5073 * varasm.c (default_use_anchors_for_symbol_p): Reject too large decls.
5074
5075 2016-08-18 Richard Biener <rguenther@suse.de>
5076
5077 * ssa-iterators.h (ssa_vuse_operand): New inline.
5078 * tree-if-conv.c (ifc_temp_var): Update virtual operand.
5079 (predicate_all_scalar_phis): Use remove_phi_node to remove
5080 phi nodes predicated. Delay removing virtual PHIs.
5081 (predicate_mem_writes): Update virtual operands.
5082 (combine_blocks): Likewise. Propagate out remaining virtual PHIs.
5083 (tree_if_conversion): Do not rewrite virtual SSA form.
5084 * tree-phinodes.c (release_phi_node): Make static.
5085 * tree-phinodes.h (release_phi_node): Remove.
5086
5087 2016-08-18 Jakub Jelinek <jakub@redhat.com>
5088
5089 * config/i386/i386.c (enum ix86_builtins): Remove IX86_BUILTIN_*
5090 codes that appear in bdesc_* arrays, instead include i386-builtin.def
5091 twice to define those.
5092 (bdesc_comi, bdesc_pcmpestr, bdesc_pcmpistr, bdesc_special_args,
5093 bdesc_args, bdesc_round_args, bdesc_mpx, bdesc_mpx_const,
5094 bdesc_multi_arg): Define by including i386-builtin.def the third time.
5095 * config/i386/i386-builtin.def: New file.
5096
5097 2016-08-17 David Malcolm <dmalcolm@redhat.com>
5098
5099 * input.c (get_source_range_for_char): Rename to...
5100 (selftest::get_source_range_for_char): ...this, and move within
5101 the #if CHECKING_P guard.
5102 (get_num_source_ranges_for_substring): Rename to...
5103 (selftest::get_num_source_ranges_for_substring): ...this, move
5104 within the #if CHECKING_P guard, and make static.
5105 (selftest::assert_num_substring_ranges): Initialize
5106 actual_num_ranges.
5107
5108 2016-08-18 Alan Modra <amodra@gmail.com>
5109
5110 PR rtl-optimization/72771
5111 * reload.c (find_reloads): Don't assume that a subreg mem is OK
5112 when find_reloads_toplev returns address_reloaded==-1.
5113 (alternative_allows_const_pool_ref): Update comment.
5114
5115 2015-08-17 Alan Hayward <alan.hayward@arm.com>
5116
5117 PR tree-optimization/71752
5118 * tree-vect-loop.c (vectorizable_reduction): Keep SLP operand ordering.
5119 * tree-vect-slp.c (vect_get_slp_defs): Handle null operands.
5120
5121 2016-08-17 Jakub Jelinek <jakub@redhat.com>
5122
5123 * gimple-fold.c (gimple_fold_call): Use gimple_call_noreturn_p
5124 instead of testing ECF_NORETURN bit in gimple_call_flags.
5125 * tree-cfg.c (make_edges_bb, execute_fixup_cfg): Likewise.
5126 * predict.c (tree_bb_level_predictions): Likewise.
5127 * gimple-low.c (gimple_stmt_may_fallthru): Likewise.
5128
5129 PR middle-end/77259
5130 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): If
5131 turning a call into __builtin_unreachable-like noreturn call, adjust
5132 gimple_call_set_fntype.
5133 * tree-cfgcleanup.c (fixup_noreturn_call): Remove lhs also if
5134 gimple_call_fntype has void return type.
5135
5136 2016-08-17 Chung-Lin Tang <cltang@codesourcery.com>
5137
5138 * omp-low.c (lower_oacc_reductions): Adjust variable lookup to use
5139 maybe_lookup_decl, to handle nested acc loop directives.
5140
5141 2016-08-17 Richard Biener <rguenther@suse.de>
5142
5143 PR tree-optimization/76490
5144 * tree-vrp.c (update_value_range): Preserve overflow infinities
5145 when intersecting with ranges from get_range_info.
5146 (operand_less_p): Handle overflow infinities correctly.
5147 (value_range_constant_singleton): Use vrp_operand_equal_p
5148 to handle overflow max/min correctly.
5149 (vrp_valueize): Likewise.
5150 (union_ranges): Likewise.
5151 (intersect_ranges): Likewise.
5152 (vrp_visit_phi_node): Improve iteration limitation to only
5153 apply when we'll possibly re-visit the PHI via a changed argument
5154 on the backedge.
5155
5156 2016-08-17 Thomas Preud'homme <thomas.preudhomme@arm.com>
5157
5158 * config/arm/t-aprofile (MULTILIB_EXCEPTIONS): Rewrite into ...
5159 (MULTILIB_REQUIRED): This by specifying multilib needing to be built
5160 rather than those that should not be built.
5161
5162 2016-08-17 Stanislaw Halik <sthalik@misaki.pl>
5163
5164 PR target/66488
5165 * config/i386/xm-mingw32.h (HOST_BITS_PER_PTR): Define if __x86_64__.
5166
5167 2016-08-17 Richard Biener <rguenther@suse.de>
5168
5169 * tree-ssa.c: Include tree-cfg.h and tree-dfa.h.
5170 (verify_vssa): New function verifying virtual SSA form.
5171 (verify_ssa): Call it.
5172 * tree-ssa-loop-manip.c (slpeel_update_phi_nodes_for_guard2):
5173 Do not apply loop-closed SSA handling to virtuals.
5174 * ssa-iterators.h (op_iter_init): Handle GIMPLE_TRANSACTION.
5175 * tree-into-ssa.c (prepare_use_sites_for): Skip virtual SSA names
5176 when rewriting their symbol.
5177 (prepare_def_site_for): Likewise.
5178 * tree-chkp-opt.c (chkp_reduce_bounds_lifetime): Clear virtual
5179 operands of moved stmts.
5180
5181 2016-08-17 Richard Biener <rguenther@suse.de>
5182
5183 PR tree-optimization/23855
5184 * tree-ssa-loop-unswitch.c: Include tree-ssa-loop-manip.h.
5185 (tree_unswitch_outer_loop): Iterate find_loop_guard as long as we
5186 find guards to hoist. Do not update SSA form but rewrite virtuals
5187 into loop closed SSA.
5188 (find_loop_guard): Adjust to skip already hoisted guards. Do
5189 not mark virtuals for renaming or update SSA form.
5190
5191 2016-08-17 Martin Liska <mliska@suse.cz>
5192
5193 * coverage.c (get_gcov_type): Replace GCOV_TYPE_SIZE with
5194 a LONG_LONG_TYPE_SIZE comparison.
5195 * gcov-io.h: Remove macro definitions.
5196 * tree-profile.c (gimple_gen_edge_profiler): Replace usage
5197 of GCOV_TYPE_ATOMIC_FETCH_ADD with a LONG_LONG_TYPE_SIZE
5198 comparison.
5199
5200 2016-08-16 Jakub Jelinek <jakub@redhat.com>
5201
5202 * config/i386/i386.c (enum ix86_builtins): Reorder enumerators, so
5203 that builtins not mentioned in bdesc_* arrays come first, then
5204 the ones mentioned in bdesc_* arrays in the order they appear in
5205 the arrays in between IX86_BUILTIN__BDESC_*_FIRST and
5206 IX86_BUILTIN__BDESC_*_LAST enumerator.
5207 (bdesc_mpx): Fix up a comment typo.
5208 (bdesc_multi_arg): Remove __builtin_ia32_vpcomne[bwdq] and
5209 __builtin_ia32_vpcomneu[bwdq] builtins.
5210 (BDESC_VERIFY, BDESC_VERIFYS): Define.
5211 (ix86_init_mmx_sse_builtins, ix86_init_mpx_builtins): Verify
5212 enum ix86_builtins ordering.
5213 (ix86_expand_builtin): Use enum ix86_builtins ordering assumption
5214 for direct bdesc_* array member access instead of searching all the
5215 arrays until an fcode match is found.
5216
5217 2016-08-16 Uros Bizjak <ubizjak@gmail.com>
5218
5219 * config/i386/i386.md (*ashl<mode>3_mask): Rewrite define_insn
5220 pattern as define_insn_and_split. Split insn before reload to
5221 ashl<mode>3_1.
5222 (*<shift_insn><mode>3_mask): Ditto. Split insn before reload to
5223 <shift_insn><mode>3_1.
5224 (*<rotate_insn><mode>3_mask): Ditto. Split insn before reload to
5225 <rotate_insn><mode>3_1.
5226
5227 2016-08-16 David Malcolm <dmalcolm@redhat.com>
5228
5229 PR c/72857
5230 * input.c (get_source_range_for_substring): Rename to...
5231 (get_source_location_for_substring): ...this, adding param
5232 "caret_idx", and converting output param from source_range * to
5233 location_t *.
5234 (get_source_range_for_char): New function.
5235 (get_num_source_ranges_for_substring): Update comment to reflect
5236 above renaming.
5237 (assert_char_at_range): Update to use get_source_range_for_char
5238 rather than get_source_range_for_substring.
5239 (test_lexer_string_locations_concatenation_2): Likewise.
5240 * substring-locations.h (get_source_range_for_substring): Rename
5241 to...
5242 (get_source_location_for_substring): ...this, and adding param
5243 "caret_idx", and converting output param from source_range * to
5244 location_t *.
5245
5246 2016-08-16 David Malcolm <dmalcolm@redhat.com>
5247
5248 * input.c (class selftest::temp_source_file): Move to
5249 selftest.h.
5250 (selftest::temp_source_file::temp_source_file): Move to
5251 selftest.c.
5252 (selftest::temp_source_file::~temp_source_file): Likewise.
5253 * selftest.c (selftest::temp_source_file::temp_source_file): Move
5254 here from input.c.
5255 (selftest::temp_source_file::~temp_source_file): Likewise.
5256 * selftest.h (class selftest::temp_source_file): Move here from
5257 input.c
5258
5259 2016-08-16 Jakub Jelinek <jakub@redhat.com>
5260
5261 PR target/71910
5262 * tree-cfg.c (execute_fixup_cfg): Add node variable, use it. Before
5263 inlining, add cgraph edge for the added __builtin_unreachable call.
5264
5265 PR middle-end/67485
5266 * expmed.c (expand_mult_const): Change val_so_far's type to UHWI,
5267 only cast it to SHWI for the final comparison.
5268
5269 2016-08-16 Martin Liska <mliska@suse.cz>
5270
5271 PR gcov-profile/36412
5272 * doc/gcov.texi: Document --hash-filenames(-x).
5273 * gcov.c (print_usage): Add the option.
5274 (process_args): Process the option, sort options alphabetically.
5275 (md5sum_to_hex): New function.
5276 (make_gcov_file_name): Do the md5sum and append it to a
5277 filename.
5278
5279 2016-08-16 Bin Cheng <bin.cheng@arm.com>
5280
5281 PR tree-optimization/69848
5282 * config/aarch64/aarch64-simd.md (vcond<mode><mode>): Invert NE
5283 and swtich operands to avoid additional NOT instruction.
5284 (vcond<v_cmp_mixed><mode>): Ditto.
5285 (vcondu<mode><mode>, vcondu<mode><v_cmp_mixed>): Ditto.
5286
5287 2016-08-16 Eric Botcazou <ebotcazou@adacore.com>
5288
5289 * doc/install.texi (*-*-solaris2*): Adjust latest change.
5290
5291 2016-08-16 Richard Biener <rguenther@suse.de>
5292
5293 PR tree-optimization/76783
5294 * tree-ssa-propagate.c (ssa_prop_init): Use RPO order. Clear
5295 BB visited flags at start.
5296
5297 2016-08-16 Bin Cheng <bin.cheng@arm.com>
5298
5299 PR tree-optimization/72817
5300 PR tree-optimization/73450
5301 * tree-ssa-loop-niter.c (number_of_iterations_ne): Check
5302 multiple_of_p for adjusted IV.base.
5303
5304 2016-08-15 Uros Bizjak <ubizjak@gmail.com>
5305
5306 PR target/72867
5307 * config/i386/sse.md (<code><mode>3<mask_name><round_saeonly_name>):
5308 Emit ieee_<ieee_maxmin><mode>3<mask_name><round_saeonly_name>
5309 for !flag_finite_math_only or flag_signed_zeros.
5310 (*<code><mode>3<mask_name><round_saeonly_name>): Rename from
5311 *<code><mode>3_finite<mask_name><round_saeonly_name>. Do not
5312 depend on flag_finite_math_only.
5313 (ieee_<ieee_maxmin><mode>3<mask_name><round_saeonly_name>):
5314 New insn pattern.
5315 (*<code><mode>3<mask_name><round_saeonly_name>): Remove.
5316 (*ieee_smin<mode>3): Ditto.
5317 (*ieee_smax<mode>3): Ditto.
5318 * config/i386/mmx.md (mmx_<code>v2sf3): Emit
5319 mmx_ieee_<ieee_maxmin>v2sf3 for !flag_finite_math_only or
5320 flag_signed_zeros.
5321 (*mmx_<code>v2sf3): Rename from *mmx_<code>v2sf3_finite. Do not
5322 depend on flag_finite_math_only.
5323 (mmx_ieee_<ieee_maxmin>v2sf3): New insn pattern.
5324 (*mmx_<code>v2sf3): Remove.
5325 * config/i386/subst.md (round_saeonly_mask_arg3): New subst attribute.
5326 * config/i386/i386.c (ix86_expand_sse_fp_mimnax): Check
5327 flag_signed_zeros instead of !flag_unsafe_math_optimizations.
5328
5329 2016-08-15 Segher Boessenkool <segher@kernel.crashing.org>
5330
5331 PR rtl-optimization/73650
5332 * lra-constraints.c (simple_move_p): If the insn is multiple_sets
5333 it is not a simple move.
5334
5335 2016-08-15 Martin Liska <mliska@suse.cz>
5336
5337 PR driver/72765
5338 * gcc.c (do_spec_1): Call save_string with the right size.
5339 (save_string): Do an assert about string we copy.
5340
5341 2016-08-15 Richard Biener <rguenther@suse.de>
5342
5343 * ree.c (rest_of_handle_ree): Remove redundant timevar push/pop.
5344 * config/i386/i386.c (pass_data_insert_vzeroupper): Account to
5345 TV_MACH_DEP.
5346 (pass_data_stv): Likewise.
5347
5348 2016-08-15 Richard Biener <rguenther@suse.de>
5349
5350 PR tree-optimization/73434
5351 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Preserve
5352 TBAA info on the base when forwarding a non-invariant address.
5353
5354 2016-08-15 Jakub Jelinek <jakub@redhat.com>
5355
5356 * dwarf2out.c (struct checksum_attributes): Add
5357 at_string_length_bit_size and at_string_length_byte_size fields.
5358 (collect_checksum_attributes): Handle DW_AT_string_length_bit_size
5359 and DW_AT_string_length_byte_size.
5360 (die_checksum_ordered): Handle at_string_length_bit_size and
5361 at_string_length_byte_size.
5362 (gen_array_type_die): For dwarf_version >= 5 emit
5363 DW_AT_string_length_byte_size instead of DW_AT_byte_size.
5364 (adjust_string_types): For dwarf_version >= 5 remove
5365 DW_AT_string_length_byte_size instead of DW_AT_byte_size.
5366 (resolve_addr): Likewise.
5367
5368 PR debug/71906
5369 * dwarf2out.c (string_types): New variable.
5370 (gen_array_type_die): Change early_dwarf handling of
5371 DW_AT_string_length, create DW_OP_call4 referencing the
5372 length var temporarily. Handle parameters that are pointers
5373 to string length.
5374 (adjust_string_types): New function.
5375 (gen_subprogram_die): Temporarily set string_types to local var,
5376 call adjust_string_types if needed.
5377 (non_dwarf_expression, copy_deref_exprloc, optimize_string_length):
5378 New functions.
5379 (resolve_addr): Adjust DW_AT_string_length if it is DW_OP_call4.
5380
5381 2016-08-15 Eric Botcazou <ebotcazou@adacore.com>
5382
5383 * doc/install.texi (*-*-solaris2*): Fix version number and document
5384 requirement on GNU make for building libjava with the Solaris linker.
5385
5386 2016-08-15 Martin Liska <mliska@suse.cz>
5387 Jakub Jelinek <jakub@redhat.com>
5388
5389 PR tree-optimization/72824
5390 * tree-loop-distribution.c (const_with_all_bytes_same)
5391 <case VECTOR_CST>: Fix a typo.
5392
5393 2016-08-14 Uros Bizjak <ubizjak@gmail.com>
5394
5395 PR target/76342
5396 * config/i386/avx512fintrin.h (_mm512_undefined_epi32):
5397 Renamed from _mm512_undefined_si512.
5398 (_mm_undefined_si512): New definition.
5399
5400 2016-08-13 Richard Biener <rguenther@suse.de>
5401
5402 * tree-ssa-forwprop.c (pass_forwprop::execute): Propagate
5403 into PHIs and update the lattice for its def.
5404
5405 2016-08-12 Jakub Jelinek <jakub@redhat.com>
5406
5407 PR c/71512
5408 * ubsan.c (instrument_si_overflow): Pass true instead of false
5409 to gsi_replace.
5410 (pass_ubsan::execute): Call gimple_purge_dead_eh_edges at the end
5411 of bbs. Return TODO_cleanup_cfg if any returned true.
5412
5413 2016-08-12 Michael Meissner <meissner@linux.vnet.ibm.com>
5414
5415 * config/rs6000/vsx.md (vsx_concat_<mode>): Add support for the
5416 ISA 3.0 MTVSRDD instruction.
5417 (vsx_splat_<mode>): Change cpu type of MTVSRDD instruction to
5418 vecperm.
5419
5420 2016-08-12 Bernd Edlinger <bernd.edlinger@hotmail.de>
5421
5422 PR tree-optimization/71083
5423 * tree-predcom.c (ref_at_iteration): Use a COMPONENT_REF for the
5424 bitfield access when possible.
5425
5426 2016-08-12 Patrick Palka <ppalka@gcc.gnu.org>
5427
5428 PR middle-end/71654
5429 * match.pd ((T)A CMP (T)B -> A CMP B): Allow (T)A to be a
5430 sign-changing cast from a shorter unsigned type to a wider
5431 signed type.
5432
5433 2016-08-12 Jakub Jelinek <jakub@redhat.com>
5434
5435 * config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm,
5436 vec_extract_hi_<mode>_mask, vec_extract_lo_<mode>_mask,
5437 vec_extract_hi_<mode>_mask): Use Yk constraint instead of k.
5438
5439 2016-08-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5440
5441 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
5442 Correct costs for vec_construct.
5443
5444 2016-08-12 Bin Cheng <bin.cheng@arm.com>
5445
5446 PR tree-optimization/69848
5447 * tree-vectorizer.h (enum vect_def_type): New condition reduction
5448 type CONST_COND_REDUCTION.
5449 * tree-vect-loop.c (vectorizable_reduction): Support new condition
5450 reudction type CONST_COND_REDUCTION.
5451
5452 2016-08-12 Richard Biener <rguenther@suse.de>
5453
5454 PR tree-optimization/57326
5455 * tree-ssa-pre.c (fully_constant_expression): Handle simplification
5456 returning an SSA name.
5457 (phi_translate_1): When fully_constant_expression returns a NAME
5458 make sure we have a leader for it.
5459
5460 2016-08-12 Martin Liska <mliska@suse.cz>
5461 Adam Fineman <afineman@afineman.com>
5462
5463 * gcov.c (process_file): Create .gcov file when .gcda
5464 file is missing.
5465
5466 2016-08-12 Marek Polacek <polacek@redhat.com>
5467
5468 PR c/7652
5469 * alias.c (find_base_value): Adjust fall through comment.
5470 * cfgexpand.c (expand_debug_expr): Likewise.
5471 * combine.c (find_split_point): Likewise.
5472 (expand_compound_operation): Likewise. Add FALLTHRU.
5473 (make_compound_operation): Adjust fall through comment.
5474 (canon_reg_for_combine): Add FALLTHRU.
5475 (force_to_mode): Adjust fall through comment.
5476 (simplify_shift_const_1): Likewise.
5477 (simplify_comparison): Likewise.
5478 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Add
5479 FALLTHRU.
5480 * config/aarch64/predicates.md: Likewise.
5481 * config/i386/i386.c (function_arg_advance_32): Likewise.
5482 (ix86_gimplify_va_arg): Likewise.
5483 (print_reg): Likewise.
5484 (ix86_print_operand): Likewise.
5485 (ix86_build_const_vector): Likewise.
5486 (ix86_expand_branch): Likewise.
5487 (ix86_sched_init_global): Adjust fall through comment.
5488 (ix86_expand_args_builtin): Add FALLTHRU.
5489 (ix86_expand_builtin): Likewise.
5490 (ix86_expand_vector_init_one_var): Likewise.
5491 * config/rs6000/rs6000.c (rs6000_emit_vector_compare_inner): Likewise.
5492 (rs6000_adjust_cost): Likewise.
5493 (insn_must_be_first_in_group): Likewise.
5494 * config/rs6000/rs6000.md: Likewise. Adjust fall through comment.
5495 * dbxout.c (dbxout_symbol): Adjust fall through comment.
5496 * df-scan.c (df_uses_record): Likewise.
5497 * dojump.c (do_jump): Add FALLTHRU.
5498 * dwarf2out.c (mem_loc_descriptor): Likewise. Adjust fall through
5499 comment.
5500 (resolve_args_picking_1): Adjust fall through comment.
5501 (loc_list_from_tree_1): Likewise.
5502 * expmed.c (make_tree): Likewise.
5503 * expr.c (expand_expr_real_2): Add FALLTHRU.
5504 (expand_expr_real_1): Likewise. Adjust fall through comment.
5505 * fold-const.c (const_binop): Adjust fall through comment.
5506 (fold_truth_not_expr): Likewise.
5507 (fold_cond_expr_with_comparison): Add FALLTHRU.
5508 (fold_binary_loc): Likewise.
5509 (contains_label_1): Adjust fall through comment.
5510 (multiple_of_p): Likewise.
5511 * gcov-tool.c (process_args): Add FALLTHRU.
5512 * genattrtab.c (check_attr_test): Likewise.
5513 (write_test_expr): Likewise.
5514 * genconfig.c (walk_insn_part): Likewise.
5515 * genpreds.c (validate_exp): Adjust fall through comment.
5516 (needs_variable): Likewise.
5517 * gensupport.c (get_alternatives_number): Add FALLTHRU.
5518 (subst_dup): Likewise.
5519 * gimple-pretty-print.c (dump_gimple_assign): Likewise.
5520 * gimplify.c (gimplify_addr_expr): Adjust fall through comment.
5521 (gimplify_scan_omp_clauses): Add FALLTHRU.
5522 (goa_stabilize_expr): Likewise.
5523 * graphite-isl-ast-to-gimple.c (substitute_ssa_name): Adjust fall
5524 through comment.
5525 * hsa-gen.c (get_address_from_value): Likewise.
5526 * ipa-icf.c (sem_function::hash_stmt): Likewise.
5527 * ira.c (ira_setup_alts): Add FALLTHRU.
5528 * lra-eliminations.c (lra_eliminate_regs_1): Adjust fall through
5529 comment.
5530 * lto-streamer-out.c (lto_output_tree_ref): Add FALLTHRU.
5531 * opts.c (common_handle_option): Likewise.
5532 * read-rtl.c (read_rtx_code): Likewise.
5533 * real.c (round_for_format): Likewise.
5534 * recog.c (asm_operand_ok): Likewise.
5535 * reginfo.c (reg_scan_mark_refs): Adjust fall through comment.
5536 * reload1.c (set_label_offsets): Likewise.
5537 (eliminate_regs_1): Likewise.
5538 (reload_reg_reaches_end_p): Likewise.
5539 * rtlanal.c (commutative_operand_precedence): Add FALLTHRU.
5540 (rtx_cost): Likewise.
5541 * sched-rgn.c (is_exception_free): Likewise.
5542 * simplify-rtx.c (simplify_rtx): Adjust fall through comment.
5543 * stor-layout.c (int_mode_for_mode): Likewise.
5544 * toplev.c (print_to_asm_out_file): Likewise.
5545 (print_to_stderr): Likewise.
5546 * tree-cfg.c (gimple_verify_flow_info): Likewise.
5547 * tree-chrec.c (chrec_fold_plus_1): Add FALLTHRU.
5548 (chrec_fold_multiply): Likewise.
5549 (evolution_function_is_invariant_rec_p): Likewise.
5550 (for_each_scev_op): Likewise.
5551 * tree-data-ref.c (siv_subscript_p): Likewise.
5552 (get_references_in_stmt): Likewise.
5553 * tree.c (find_placeholder_in_expr): Adjust fall through comment.
5554 (substitute_in_expr): Likewise.
5555 (type_cache_hasher::equal): Likewise.
5556 (walk_type_fields): Likewise.
5557 * var-tracking.c (adjust_mems): Add FALLTHRU.
5558 (set_dv_changed): Adjust fall through comment.
5559 * varasm.c (default_function_section): Add FALLTHRU.
5560
5561 2016-08-12 Marek Polacek <polacek@redhat.com>
5562
5563 PR c/7652
5564 * tree-complex.c (expand_complex_division): Add missing break.
5565
5566 2016-08-12 Richard Biener <rguenther@suse.de>
5567
5568 * passes.c (execute_todo): Do not push/pop TV_TODO.
5569 (execute_one_ipa_transform_pass): Move timevar push/pop TODO execution.
5570 (execute_one_pass): Likewise.
5571 * common.opt (ftime-report-details): New switch.
5572 * doc/invoke.texi (ftime-report-details): Document.
5573 * timevar.h (timer::print_row): Adjust signature.
5574 (timer::all_zero): New static helper.
5575 (timer::child_map_t): New typedef.
5576 (timer::time_var_def): Add children field.
5577 * timevar.c (timer::named_items::print): Adjust.
5578 (timer::~timer): Free timevar recorded children.
5579 (timer::pop_internal): When -ftime-report-details record
5580 time spent in sub-timevars.
5581 (timer::print_row): Adjust.
5582 (timer::print): Print sub-timevar stats, use all_zero.
5583 * timevar.def (TV_TODO): Remove.
5584
5585 2016-08-12 Richard Biener <rguenther@suse.de>
5586
5587 PR tree-optimization/72851
5588 * tree-ssa-propagate.c: Include cfganal.h. Rewrite block and stmt
5589 worklists to use bitmaps indexed in execution order.
5590 (executable_blocks, cfg_blocks_num, cfg_blocks_tail, cfg_blocks_head,
5591 bb_in_list, interesting_ssa_edges, varying_ssa_edges): Remove.
5592 (cfg_blocks): Make a bitmap.
5593 (bb_to_cfg_order, cfg_order_to_bb, ssa_edge_worklist, uid_to_stmt):
5594 New globals.
5595 (cfg_blocks_empty_p): Adjust.
5596 (cfg_blocks_add): Likewise.
5597 (cfg_blocks_get): Likewise.
5598 (add_ssa_edge): Likewise.
5599 (add_control_edge): Likewise.
5600 (simulate_stmt): Likewise.
5601 (process_ssa_edge_worklist): Likewise.
5602 (simulate_block): Likewise.
5603 (ssa_prop_init): Compute PRE order and stmt UIDs.
5604 (ssa_prop_fini): Adjust.
5605 (ssa_propagate): Adjust.
5606
5607 2016-08-12 Richard Biener <rguenther@suse.de>
5608
5609 * tree-vrp.c (vrp_visit_phi_node): Allow a last iteration if
5610 the currently executable edges have fixed ranges. Always
5611 go through update_value_range.
5612
5613 2016-08-12 Alexandre Oliva <aoliva@redhat.com>
5614
5615 PR debug/63240
5616 * langhooks-def.h
5617 (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Const_tree-ify.
5618 (LANG_HOOKS_FUNCTION_DECL_DELETED_P): Likewise.
5619 (LANG_HOOKS_FUNCTION_DECL_DEFAULTED): Set default.
5620 (LANG_HOOKS_DECLS): Add it.
5621 * langhooks.h (struct lang_hooks_for_decls): Add
5622 function_decl_defaulted. Const_tree-ify
5623 function_decl_explicit_p and function_decl_deleted_p.
5624 * dwarf2out.c (gen_subprogram_die): Add DW_AT_defaulted
5625 attribute. Add DW_AT_deleted instead of DW_AT_GNU_deleted,
5626 also at strict DWARF v5.
5627
5628 PR debug/55641
5629 * dwarf2out.c (decl_quals): Don't map TREE_READONLY to
5630 TYPE_QUAL_CONST in reference-typed decls.
5631
5632 PR debug/49366
5633 * dwarf2out.c (loc_list_from_tree_1): Expand some CONSTRUCTORs
5634 in DW_OP_pieces, just enough to handle pointers to member
5635 functions.
5636 (gen_remaining_tmpl_value_param_die_attribute): Use a location
5637 expression on DWARFv5 if a constant value doesn't work.
5638
5639 2016-08-11 David Malcolm <dmalcolm@redhat.com>
5640
5641 * selftest-run-tests.c (selftest::run_tests): Call selftest_c_tests.
5642 * selftest.c (selftest::test_assertions): New function.
5643 (selftest::selftest_c_tests): New function.
5644 * selftest.h (selftest::selftest_c_tests): New declaration.
5645
5646 2016-08-11 Richard Biener <rguenther@suse.de>
5647 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5648
5649 PR rtl-optimization/72855
5650 * df-core.c (df_verify): Turn off DF_VERIFY_SCHEDULED at end.
5651
5652 2016-08-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5653
5654 PR target/72863
5655 * vsx.md (vsx_load_<mode>): For P8LE, emit swaps at expand time.
5656 (vsx_store_<mode>): Likewise.
5657
5658 2015-08-11 H.J. Lu <hongjiu.lu@intel.com>
5659
5660 * config/i386/i386.c (timode_scalar_to_vector_candidate_p): Allow
5661 TImode CONST_WIDE_INT store.
5662 (timode_scalar_chain::convert_insn): Handle CONST_WIDE_INT store.
5663
5664 2015-08-11 H.J. Lu <hongjiu.lu@intel.com>
5665
5666 * config/i386/i386.h (MOVE_MAX_PIECES): Use TImode in 64-bit
5667 mode if unaligned SSE load and store are optimal.
5668
5669 2016-08-11 Bernd Edlinger <bernd.edlinger@hotmail.de>
5670
5671 PR tree-optimization/71083
5672 * tree-predcom.c (ref_at_iteration): Correctly align the
5673 reference type.
5674
5675 2016-08-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5676
5677 * config/s390/s390-builtin-types.def: Add INT128 types.
5678 * config/s390/s390-builtins.def: Add INT128 variants for the add
5679 sub low-level builtins dealing with TImode.
5680 * config/s390/s390.c (s390_expand_builtin): Allow mode conversions
5681 via subreg when expanding a builtin.
5682 * config/s390/s390.md: Remove UNSPEC_VEC_ADDC_U128,
5683 UNSPEC_VEC_SUB_U128, and UNSPEC_VEC_SUBC_U128 constants.
5684 Fix comment.
5685 * config/s390/vecintrin.h: Adjust builtin names accordingly.
5686 * config/s390/vx-builtins.md ("vec_add_u128"): Remove expander.
5687 ("vec_addc<mode>", "vec_addc_u128"): Merge to
5688 "vacc<bhfgq>_<mode>".
5689 ("vec_adde_u128"): Rename to "vacq". Change mode to TImode.
5690 ("vec_addec_u128"): Rename to "vacccq". Change mode to TImode.
5691 ("vec_subc<mode>", "vec_subc_u128"): Merge to
5692 "vscbi<bhfgq>_<mode>".
5693 ("vec_sube_u128"): Rename to "vsbiq". Change mode to TImode.
5694 ("vec_subec_u128"): Rename to "vsbcbiq". Change mode to TImode.
5695
5696 2016-08-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5697
5698 * config/s390/s390-builtins.def: Mark last operand of s390_vlvg*
5699
5700 2016-08-11 Bin Cheng <bin.cheng@arm.com>
5701
5702 * config/aarch64/aarch64-simd.md (vcond<mode><mode>): Delete
5703 unused declaration.
5704 (vcond<v_cmp_mixed><mode>): Ditto.
5705 (vcondu<mode><mode>, vcondu<mode><v_cmp_mixed>): Ditto.
5706
5707 2016-08-11 Bin Cheng <bin.cheng@arm.com>
5708
5709 * config/aarch64/aarch64-simd.md (vec_cmp<mode><v_cmp_result>): Init
5710 variable explicitly, also assert on it before use.
5711
5712 2016-08-11 Richard Biener <rguenther@suse.de>
5713
5714 PR tree-optimization/72772
5715 * cfgloopmanip.c (create_preheader): Use split_edge if there
5716 is a single loop entry, avoiding degenerate PHIs.
5717
5718 2016-08-11 Richard Biener <rguenther@suse.de>
5719
5720 * tree-ssa-threadbackward.c (pass_data_thread_jumps): Remove
5721 unconditional TODO_cleanup_cfg.
5722 (pass_thread_jumps::execute): Initialize loops, perform a CFG
5723 cleanup only if we threaded a jump.
5724
5725 2016-08-11 Alan Modra <amodra@gmail.com>
5726
5727 PR target/71680
5728 * lra-constraints.c (simplify_operand_subreg): Allow subreg
5729 mode for mem when SLOW_UNALIGNED_ACCESS if inner mode is also
5730 slow. Emit two reloads for slow mem case, first loading in
5731 fast innermode, then converting to required mode.
5732
5733 2016-08-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
5734
5735 * config/rs6000/altivec.h (vec_extract_exp): New macro.
5736 (vec_extract_sig): New macro.
5737 (vec_insert_exp): New macro.
5738 (vec_test_data_class): New macro.
5739 (scalar_extract_exp): New macro.
5740 (scalar_extract_sig): New macro.
5741 (scalar_insert_exp): New macro.
5742 (scalar_test_data_class): New macro.
5743 (scalar_test_neg): New macro.
5744 (scalar_cmp_exp_gt): New macro.
5745 (scalar_cmp_exp_lt): New macro.
5746 (scalar_cmp_exp_eq): New macro.
5747 (scalar_cmp_exp_unordered): New macro.
5748 * config/rs6000/predicates.md (u7bit_cint_operand): New predicate
5749 to enforce constraint that operand is a 7-bit unsigned literal.
5750 * config/rs6000/rs6000-builtin.def (BU_P9V_64BIT_VSX_1): New macro
5751 for power9 built-ins.
5752 (BU_P9V_VSX_2): Likewise.
5753 (BU_P9V_64BIT_VSX_2): Likewise.
5754 (VSEEDP): Add scalar extract exponent support.
5755 (VSEESP): Add scalar extract signature support.
5756 (VSTDCNDP): Add scalar test negative support.
5757 (VSTDCNSP): Likewise.
5758 (VSIEDP): Add scalar insert exponent support.
5759 (VSCEDPGT): Add scalar compare exponent greater than support.
5760 (VSCEDPLT): Add scalar compare exponent less than support.
5761 (VSCEDPEQ): Add scalar compare exponent test-for-equality support.
5762 (VSCEDPUO): Add scalar compare exponent test-for-unordered support.
5763 (VSTDCDP): Add scalar test data class support.
5764 (VSTDCSP): Likewise.
5765 (VSEEDP): Add overload support for scalar extract exponent
5766 operation.
5767 (VSESDP): Add overload support for scalar extract signature
5768 operation.
5769 (VSTDCN): Add overload support for scalar test negative
5770 operation.
5771 (VSTDCNDP): Add overload support for scalar test negative
5772 operation.
5773 (VSTDCNSP): Add overload support for scalar test negative
5774 operation.
5775 (VSIEDP): Add overload support for scalar insert exponent
5776 operation.
5777 (VSTDC): Add overload support for scalar test data class
5778 operation.
5779 (VSTDCDP): Add overload support for scalar test data class
5780 operation.
5781 (VSTDCSP): Add overload support for scalar test data class
5782 opreation.
5783 (VSCEDPGT): Add overload support for scalar compare exponent
5784 greater than operation.
5785 (VSCEDPLT): Add overload support for scalar compare exponent
5786 less than operation.
5787 (VSCEDPEQ): Add overload support for scalar compare exponent
5788 test-for-equality operation.
5789 (VSCEDPUO): Add overload support for scalar compare exponent
5790 test-for-unordered operation.
5791 (VEEDP): Add vector extract exponent support.
5792 (VEESP): Likewise.
5793 (VESDP): Add vector extract significand support.
5794 (VESSP): Likewise.
5795 (VIEDP): Add vector insert exponent support.
5796 (VIESP): Likewise.
5797 (VTDCDP): Add vector test data class support.
5798 (VTDCSP): Likewise.
5799 (VES): Add overload support for vector extract significand operation.
5800 (VESDP): Likewise.
5801 (VESSP): Likewise
5802 (VEE): Add overload support for vector extract exponent operation.
5803 (VEEDP): Likewise.
5804 (VEESP): Likewise.
5805 (VTDC): Add overload support for vector test data class operation.
5806 (VTDCDP): Likewise.
5807 (VTDCSP): Likewise.
5808 (VIE): Add overload support for vector insert exponent operation.
5809 (VIEDP): Likewise.
5810 (VIESP): Likewise.
5811 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
5812 overloaded binary floating point functions.
5813 (altivec_resolve_overloaded_builtin): Improve error messages to
5814 distinguish between functions not supported in the current
5815 compiler configuration and functions that were invoked with an
5816 invalid parameter combination, and include the built-in function
5817 name in both error messages.
5818 * config/rs6000/rs6000-protos.h (rs6000_overloaded_builtin_name):
5819 New prototype.
5820 * config/rs6000/rs6000.c (rs6000_overloaded_builtin_name): New
5821 function.
5822 (rs6000_expand_binop_builtin): Add check to enforce that argument
5823 2 of the test data class operations is a 7-bit unsigned literal.
5824 (rs6000_invalid_builtin): Add code to issue an error message if a
5825 built-in function that requires the power9_vector and -m32
5826 command-line options is compiled without these options.
5827 * config/rs6000/vsx.md (UNSPEC_VSX_SXEXPDP): New value.
5828 (UNSPEC_VSX_SXSIGDP): New value.
5829 (UNSPEC_VSX_SXSIGPDP): New value.
5830 (UNSPEC_VSX_SIEXPDP): New value.
5831 (UNSPEC_VSX_SCMPEXPDP): New value.
5832 (UNSPEC_VSX_STSTDC): New value.
5833 (UNSPEC_VSX_VXEXP): New value.
5834 (UNSPEC_VSX_VXSIG): New value.
5835 (UNSPEC_VSX_VIEXP): New value.
5836 (UNSPEC_VSX_VTSTDC): New value.
5837 (xsxexpdp): New insn for scalar extract exponent.
5838 (xsxsigdp): New insn for scalar extract significand.
5839 (xsiexpdp): New insn for scalar insert exponent.
5840 (xscmpexpdp_<code>): New expansion for scalar compare exponents.
5841 (*xscmpexpdp): New insn for scalar compare exponents.
5842 (xststdc<Fvsx): New expansion for both single- and
5843 double-precision scalar test data class operations.
5844 (xststdcneg<Fvsx>): New expansion for both single- and
5845 double-precision scalar test for negative value operations.
5846 (*xststdc<Fvsx>): New insn for scalar test data class
5847 operation.
5848 (xvxexp<VSs>): New insn for single- and double-precision
5849 vector extract exponent operation.
5850 (xvxsig<VSs>): New insn for single- and double-precision
5851 vector extract significand operation.
5852 (xviexp<VSs>): New insn for single- and double-precision
5853 vector insert exponent operation.
5854 (xvtstdc<VSs>): New insn for single- and double-precision
5855 vector test data class operation.
5856 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
5857 built-in functions to represent the Power9 binary floating-point
5858 support instructions.
5859
5860 2016-08-10 bin cheng <bin.cheng@arm.com>
5861
5862 * doc/sourcebuild.texi (@item vect_cond_mixed): New item.
5863
5864 2016-08-10 Alan Lawrence <alan.lawrence@arm.com>
5865 Renlin Li <renlin.li@arm.com>
5866 Bin Cheng <bin.cheng@arm.com>
5867
5868 * config/aarch64/iterators.md (V_cmp_mixed, v_cmp_mixed): New.
5869 * config/aarch64/aarch64-simd.md (<su><maxmin>v2di3): Call
5870 gen_vcondv2div2di instead of gen_aarch64_vcond_internalv2div2di.
5871 (aarch64_vcond_internal<mode><mode>): Delete pattern.
5872 (aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): Ditto.
5873 (vcond<v_cmp_result><mode>): Ditto.
5874 (vcond<mode><mode>): Re-implement using vec_cmp and vcond_mask.
5875 (vcondu<mode><mode>): Ditto.
5876 (vcond<v_cmp_mixed><mode>): New pattern.
5877 (vcondu<mode><v_cmp_mixed>): New pattern.
5878 (aarch64_cmtst<mode>): Revise comment using aarch64_vcond instead
5879 of aarch64_vcond_internal.
5880
5881 2016-08-10 Alan Lawrence <alan.lawrence@arm.com>
5882 Renlin Li <renlin.li@arm.com>
5883 Bin Cheng <bin.cheng@arm.com>
5884
5885 * config/aarch64/aarch64-simd.md (vec_cmp<mode><mode>): New pattern.
5886 (vec_cmp<mode><v_cmp_result>): New pattern.
5887 (vec_cmpu<mode><mode>): New pattern.
5888 (vcond_mask_<mode><v_cmp_result>): New pattern.
5889
5890 2016-08-10 Yuri Rumyantsev <ysrumyan@gmail.com>
5891
5892 PR tree-optimization/71734
5893 * tree-ssa-loop-im.c (ref_indep_loop_p): Add new argument
5894 REF_LOOP, invoke ref_indep_loop_p_1.
5895 (outermost_indep_loop): Pass LOOP argumnet where REF was defined
5896 to ref_indep_loop_p.
5897 (ref_indep_loop_p_1): Fix commentary, add argument REF_LOOP,
5898 combine it with ref_indep_lopp_p_2, update SAFELEN if only REF
5899 is inside LOOP, do not cache dpendence value for loops with
5900 non-zero SAFELEN.
5901 (ref_indep_loop_p_2): Delete function.
5902 (can_sm_ref_p): Pass LOOP as additional argument to
5903 ref_indep_loop_p.
5904
5905 2016-08-10 Michael Meissner <meissner@linux.vnet.ibm.com>
5906
5907 PR target/72853
5908 * config/rs6000/rs6000.c (mem_operand_ds_form): Add check for op
5909 being an offsettable address.
5910
5911 2016-08-10 Martin Liska <mliska@suse.cz>
5912
5913 PR gcov-profile/58306
5914 * tree-profile.c (gimple_init_edge_profiler): Create conditionally
5915 atomic variants of profile update functions.
5916
5917 2016-08-10 Martin Liska <mliska@suse.cz>
5918
5919 Cherry picked (and modified) from google-4_7 branch
5920 2012-12-26 Rong Xu <xur@google.com>
5921 * common.opt (fprofile-update): Add new flag.
5922 * coretypes.h: Define enum profile_update.
5923 * doc/invoke.texi: Document -fprofile-update.
5924 * gcov-io.h: Declare GCOV_TYPE_ATOMIC_FETCH_ADD and
5925 GCOV_TYPE_ATOMIC_FETCH_ADD_FN.
5926 * tree-profile.c (gimple_init_edge_profiler): Generate
5927 also atomic profiler update.
5928 (gimple_gen_edge_profiler): Likewise.
5929
5930 2016-08-10 David Malcolm <dmalcolm@redhat.com>
5931
5932 * toplev.c (finalize): Set aux_info_file, asm_out_file, and
5933 stack_usage_file to NULL after fclose calls.
5934
5935 2016-08-10 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
5936
5937 PR target/71873
5938 * reload.c (push_reload): Compute subreg_in_class for
5939 subregs of constants and plus expressions. Remove special
5940 handling of SYMBOL_REFs.
5941
5942 2016-08-10 Alan Modra <amodra@gmail.com>
5943
5944 PR target/71680
5945 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Return
5946 SImode for TARGET_E500_DOUBLE when given SImode.
5947
5948 2016-08-09 David Wohlferd <dw@LimeGreenSocks.com>
5949
5950 * config/i3836/avx512fintrin.h (_mm512_cvtsepi64_epi32): Remove
5951 unused variable __O.
5952
5953 2016-08-09 Martin Liska <mliska@suse.cz>
5954
5955 * doc/gcov.texi: Change _gcov_dump to __gcov_dump and
5956 _gcov_reset to __gcov_reset.
5957 * doc/gcov-tool.texi: Fix typo.
5958
5959 2016-08-09 Martin Liska <mliska@suse.cz>
5960
5961 * value-prof.c (gimple_divmod_values_to_profile): Do not
5962 instrument MOD histogram if a value is not a SSA name.
5963
5964 2016-08-09 Martin Liska <mliska@suse.cz>
5965
5966 * value-prof.c (dump_histogram_value): Swap pow2 and non-pow2
5967 values.
5968
5969 2016-08-09 Renlin Li <renlin.li@arm.com>
5970
5971 PR middle-end/64971
5972 * calls.c (prepare_call_address): Convert funexp to Pmode when
5973 necessary.
5974 * config/aarch64/aarch64.md (sibcall): Remove fix for PR 64971.
5975 (sibcall_value): Likewise.
5976
5977 2016-08-09 Marek Polacek <polacek@redhat.com>
5978
5979 PR c/7652
5980 * cselib.c (cselib_expand_value_rtx_1): Add return.
5981 * gengtype.c (dbgprint_count_type_at): Likewise.
5982 * hsa-gen.c (gen_hsa_insn_for_internal_fn_call): Likewise.
5983 * reg-stack.c (get_true_reg): Restructure to avoid fallthrough warning.
5984
5985 2016-08-09 Martin Jambor <mjambor@suse.cz>
5986
5987 PR ipa/71981
5988 * ipa-polymorphic-call.c (get_dynamic_type): Bail out gracefully
5989 if instance is a MEM_REF.
5990
5991 2016-08-09 Uros Bizjak <ubizjak@gmail.com>
5992
5993 PR target/72843
5994 * config/i386/i386.md (*movtf_internal): Use
5995 lra_in_progress || reload_completed instead of !can_create_pseudo_p
5996 in the insn constraint.
5997 (*movxf_internal): Ditto.
5998 (*movdf_internal): Ditto.
5999 (*movsf_internal): Ditto.
6000
6001 2016-08-09 Bin Cheng <bin.cheng@arm.com>
6002
6003 PR tree-optimization/72772
6004 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
6005 for expanded base.
6006
6007 2016-08-09 Bin Cheng <bin.cheng@arm.com>
6008
6009 PR tree-optimization/72772
6010 * tree-ssa-loop-niter.h (simplify_using_initial_conditions): Delete
6011 parameter STOP.
6012 * tree-ssa-loop-niter.c (tree_simplify_using_condition_1): Delete
6013 parameter STOP and update calls. Move expand_simple_operations
6014 function call from here...
6015 (simplify_using_initial_conditions): ...to here. Delete parameter
6016 STOP.
6017 (tree_simplify_using_condition): Delete parameter STOP.
6018 * tree-scalar-evolution.c (simple_iv_with_niters): Update call to
6019 simplify_using_initial_conditions.
6020
6021 2016-08-09 Matthew Fortune <matthew.fortune@imgtec.com>
6022
6023 PR c/65345
6024 * config/mips/mips.c (mips_atomic_assign_expand_fenv):
6025 Use create_tmp_var_raw instead of create_tmp_var.
6026
6027 2016-08-09 Richard Biener <rguenther@suse.de>
6028
6029 * tree-ssa-threadbackward.c (profitable_jump_thread_path):
6030 Treat same SSA names related.
6031
6032 2016-08-09 Jakub Jelinek <jakub@redhat.com>
6033
6034 PR tree-optimization/72824
6035 * tree-loop-distribution.c (const_with_all_bytes_same): Verify
6036 real_zerop is not negative.
6037
6038 2016-08-09 Richard Biener <rguenther@suse.de>
6039
6040 PR tree-optimization/71802
6041 * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Make sure to catch
6042 all merge opportunities with the predecessor.
6043
6044 2016-08-09 Richard Biener <rguenther@suse.de>
6045
6046 PR ipa/68273
6047 * ipa-prop.c (ipa_modify_formal_parameters): Build
6048 parameter types with natural alignment also for the
6049 over-aligned case.
6050
6051 2016-08-08 Andi Kleen <ak@linux.intel.com>
6052
6053 * tree-vrp.c (get_single_symbol): Always initialize inv and neg.
6054
6055 2016-08-08 David Malcolm <dmalcolm@redhat.com>
6056
6057 PR c/64955
6058 * langhooks-def.h (LANG_HOOKS_RUN_LANG_SELFTESTS): New default
6059 do-nothing langhook.
6060 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_RUN_LANG_SELFTESTS.
6061 * langhooks.h (struct lang_hooks): Add run_lang_selftests.
6062 * selftest-run-tests.c: Include "tree.h" and "langhooks.h".
6063 (selftest::run_tests): Call lang_hooks.run_lang_selftests.
6064
6065 2016-08-08 David Malcolm <dmalcolm@redhat.com>
6066
6067 PR bootstrap/72844
6068 * input.c: Ensure that HAVE_ICONV is defined.
6069
6070 2016-08-08 Jakub Jelinek <jakub@redhat.com>
6071
6072 PR middle-end/72781
6073 * omp-low.c (lower_lastprivate_clauses): Set TREE_NO_WARNING on the
6074 private vars for lastprivate and for linear iterator.
6075
6076 PR middle-end/68762
6077 * omp-simd-clone.c: Include varasm.h.
6078 (simd_clone_create): Copy over DECL_COMDAT, DECL_WEAK, DECL_EXTERNAL,
6079 DECL_VISIBILITY, DECL_VISIBILITY_SPECIFIED, DECL_DLLIMPORT_P and for
6080 DECL_ONE_ONLY call make_decl_one_only. Fix up spelling in comment and
6081 update function name.
6082
6083 2016-07-29 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
6084
6085 * config/avr/driver-avr.c (specfiles_doc_url): Remove.
6086 (avr_diagnose_devicespecs_error): Remove.
6087 (avr_devicespecs_file): Remove composing absolute path for specfile
6088 and its verbose info. Remove conditions to check specs-file,
6089
6090 2016-08-08 Jakub Jelinek <jakub@redhat.com>
6091
6092 PR rtl-optimization/72821
6093 * lra-spills.c (regno_in_use_p): Don't use BLOCK_FOR_INSN on barriers,
6094 just return false for them.
6095
6096 2016-08-08 Alan Modra <amodra@gmail.com>
6097
6098 PR target/72771
6099 * config/rs6000/rs6000.c (toc_relative_expr_p): Allow (lo_sum (high))
6100 toc refs created during reload. Update function comment.
6101
6102 2016-08-08 Alan Modra <amodra@gmail.com>
6103
6104 PR target/72802
6105 * config/rs6000/rs6000.md (mov<mode>_hardfloat): Sort
6106 alternatives. Put loads first, then stores, and reg/reg moves
6107 within same class later. Delete attr length.
6108
6109 2016-08-08 Alan Modra <amodra@gmail.com>
6110
6111 PR target/72802
6112 * config/rs6000/rs6000.c (mem_operand_gpr): Remove vsx dform test.
6113 (mem_operand_ds_form): New predicate.
6114 * config/rs6000/rs6000-protos.h (mem_operand_ds_form): Declare.
6115 * config/rs6000/constraints.md (wY): Use mem_operand_df_form.
6116 * config/rs6000/predicates.md (offsettable_mem_14bit_operand): Delete.
6117 * config/rs6000/rs6000.md (f32_lm2, f32_sm2): Use wY for SF.
6118 (extendsfdf2_fpr): Replace o constraint with wY.
6119
6120 2016-08-07 Jan Hubicka <hubicka@ucw.cz>
6121
6122 * tree-ssa-threadbackward.c: Include tree-inline.h
6123 (profitable_jump_thread_path): Use estimate_num_insns to estimate
6124 size of copied block; for cold paths reduce duplication.
6125 (find_jump_threads_backwards): Remove redundant tests.
6126 (pass_thread_jumps::gate): Enable for -Os.
6127
6128 2016-08-07 Jakub Jelinek <jakub@redhat.com>
6129
6130 PR c/72816
6131 * stor-layout.c (layout_decl): Fix up formatting.
6132 (relayout_decl): Allow DECL to be FIELD_DECL.
6133
6134 2016-08-07 Alan Modra <amodra@gmail.com>
6135
6136 * config/rs6000/rs6000.md (fix_trunc<mode>si2): Fix mode of reg.
6137
6138 2016-08-07 Kugan Vivekanandarajah <kuganv@linaro.org>
6139
6140 * data-streamer-in.c (streamer_read_wide_int): New.
6141 (streamer_read_widest_int): Renamed function.
6142 * data-streamer-out.c (streamer_write_wide_int): New
6143 (streamer_write_widest_int): Renamed function.
6144 * lto-streamer-in.c (streamer_read_wi): Renamed and moved to
6145 data-stream-in.c.
6146 (input_cfg): Call renamed function.
6147 * lto-streamer-out.c (streamer_write_wi): Renamed and moved to
6148 data-stream-out.c.
6149 (output_cfg): Call renamed function.
6150 * data-streamer.h: Add declarations.
6151
6152 2016-08-08 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6153
6154 * tree-ssa-ccp.c (extend_mask): New param sgn.
6155 Remove ORing with wi::mask.
6156 (get_default_value): Adjust call to extend_mask to pass sign.
6157 (evaluate_stmt): Likewise.
6158
6159 2016-08-06 Jakub Jelinek <jakub@redhat.com>
6160
6161 * gcov.c (handle_cycle): Use INTTYPE_MAXIMUM (int64_t) instead of
6162 INT64_MAX.
6163
6164 2016-08-06 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6165
6166 * match.pd ((intptr_t) x eq/ne CST to x eq/ne (typeof x) cst): Disable
6167 transform if operand's type is pointer to function or method.
6168
6169 2016-08-05 Patrick Palka <ppalka@gcc.gnu.org>
6170
6171 PR tree-optimization/18046
6172 * tree-ssa-threadedge.c: Include cfganal.h.
6173 (simplify_control_statement_condition): If simplifying a
6174 GIMPLE_SWITCH, replace the index operand of the GIMPLE_SWITCH
6175 with the dominating ASSERT_EXPR before handing it off to VRP.
6176 Mention that a CASE_LABEL_EXPR may be returned.
6177 (thread_around_empty_blocks): Adjust to handle
6178 simplify_control_statement_condition() returning a
6179 CASE_LABEL_EXPR.
6180 (thread_through_normal_block): Likewise.
6181 * tree-vrp.c (simplify_stmt_for_jump_threading): Simplify
6182 a switch statement by trying to determine which case label
6183 will be taken.
6184
6185 2016-08-05 Vladimir Makarov <vmakarov@redhat.com>
6186
6187 PR rtl-optimization/69847
6188 * lra-constraints.c (process_invariant_for_inheritance): Save
6189 pattern instead of src.
6190 (remove_inheritance_pseudos): Use the pattern. Add assert.
6191
6192 2016-08-05 David Malcolm <dmalcolm@redhat.com>
6193
6194 * input.c (string_concat::string_concat): New constructor.
6195 (string_concat_db::string_concat_db): New constructor.
6196 (string_concat_db::record_string_concatenation): New method.
6197 (string_concat_db::get_string_concatenation): New method.
6198 (string_concat_db::get_key_loc): New method.
6199 (class auto_cpp_string_vec): New class.
6200 (get_substring_ranges_for_loc): New function.
6201 (get_source_range_for_substring): New function.
6202 (get_num_source_ranges_for_substring): New function.
6203 (class selftest::lexer_test_options): New class.
6204 (struct selftest::lexer_test): New struct.
6205 (class selftest::ebcdic_execution_charset): New class.
6206 (selftest::ebcdic_execution_charset::s_singleton): New variable.
6207 (selftest::lexer_test::lexer_test): New constructor.
6208 (selftest::lexer_test::~lexer_test): New destructor.
6209 (selftest::lexer_test::get_token): New method.
6210 (selftest::assert_char_at_range): New function.
6211 (ASSERT_CHAR_AT_RANGE): New macro.
6212 (selftest::assert_num_substring_ranges): New function.
6213 (ASSERT_NUM_SUBSTRING_RANGES): New macro.
6214 (selftest::assert_has_no_substring_ranges): New function.
6215 (ASSERT_HAS_NO_SUBSTRING_RANGES): New macro.
6216 (selftest::test_lexer_string_locations_simple): New function.
6217 (selftest::test_lexer_string_locations_ebcdic): New function.
6218 (selftest::test_lexer_string_locations_hex): New function.
6219 (selftest::test_lexer_string_locations_oct): New function.
6220 (selftest::test_lexer_string_locations_letter_escape_1): New function.
6221 (selftest::test_lexer_string_locations_letter_escape_2): New function.
6222 (selftest::test_lexer_string_locations_ucn4): New function.
6223 (selftest::test_lexer_string_locations_ucn8): New function.
6224 (selftest::uint32_from_big_endian): New function.
6225 (selftest::test_lexer_string_locations_wide_string): New function.
6226 (selftest::uint16_from_big_endian): New function.
6227 (selftest::test_lexer_string_locations_string16): New function.
6228 (selftest::test_lexer_string_locations_string32): New function.
6229 (selftest::test_lexer_string_locations_u8): New function.
6230 (selftest::test_lexer_string_locations_utf8_source): New function.
6231 (selftest::test_lexer_string_locations_concatenation_1): New
6232 function.
6233 (selftest::test_lexer_string_locations_concatenation_2): New
6234 function.
6235 (selftest::test_lexer_string_locations_concatenation_3): New
6236 function.
6237 (selftest::test_lexer_string_locations_macro): New function.
6238 (selftest::test_lexer_string_locations_stringified_macro_argument):
6239 New function.
6240 (selftest::test_lexer_string_locations_non_string): New function.
6241 (selftest::test_lexer_string_locations_long_line): New function.
6242 (selftest::test_lexer_char_constants): New function.
6243 (selftest::input_c_tests): Call the new test functions once per
6244 case within the line_table test matrix.
6245 * input.h (struct string_concat): New struct.
6246 (struct location_hash): New struct.
6247 (class string_concat_db): New class.
6248 * substring-locations.h: New header.
6249
6250 2016-08-05 Patrick Palka <ppalka@gcc.gnu.org>
6251
6252 PR tree-optimization/72810
6253 * tree-vrp.c (simplify_switch_using_ranges): Avoid changing
6254 the type of the case labels when truncating.
6255
6256 2016-08-05 James Greenhalgh <james.greenhalgh@arm.com>
6257
6258 PR Target/72819
6259 * config/aarch64/aarch64.h (aarch64_fp16_type_node): Declare.
6260 (aarch64_fp16_ptr_type_node): Likewise.
6261 * config/aarch64/aarch64-simd-builtins.c
6262 (aarch64_fp16_ptr_type_node): Define.
6263 (aarch64_init_fp16_types): New, refactored out of...
6264 (aarch64_init_builtins): ...here, update to call
6265 aarch64_init_fp16_types.
6266 * config/aarch64/aarch64.c (aarch64_gimplify_va_arg_expr): Handle
6267 HFmode.
6268 (aapcs_vfp_sub_candidate): Likewise.
6269
6270 2016-08-05 Martin Liska <mliska@suse.cz>
6271 Joshua Cranmer <Pidgeot18@gmail.com>
6272
6273 * gcov.c (line_t::has_block): New function.
6274 (enum loop_type): New enum.
6275 (handle_cycle): New function.
6276 (unblock): Likewise.
6277 (circuit): Likewise.
6278 (get_cycles_count): Likewise.
6279 (accumulate_line_counts): Use new loop detection algorithm.
6280
6281 2016-08-05 Martin Liska <mliska@suse.cz>
6282
6283 * gcov.c (output_intermediate_file): Rename
6284 function_info::line_next to next_file_fn.
6285 (process_file): Likewise.
6286 (read_graph_file): Likewise.
6287 (accumulate_line_counts): Likewise.
6288 (output_lines): Likewise.
6289
6290 2016-08-05 Richard Biener <rguenther@suse.de>
6291
6292 * tree-ssa-threadupdate.c (thread_block_1): Remove unnecessary
6293 restriction on threading to a loop header.
6294
6295 2016-08-05 Richard Biener <rguenther@suse.de>
6296
6297 * tree-cfgcleanup.c (tree_forwarder_block_p): Use bb_loop_header_p.
6298 * cfghooks.c (force_nonfallthru): If we ended up splitting a latch
6299 adjust loop info accordingly.
6300
6301 2016-08-05 Kugan Vivekanandarajah <kuganv@linaro.org>
6302
6303 * tree-vrp.c (extract_range_basic): Check cfun->after_inlining
6304 before folding call to __builtin_constant_p with parameters to false.
6305
6306 2016-08-05 Alan Modra <amodra@gmail.com>
6307
6308 * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Delete
6309 code accidentally committed 2016-05-02 providing class when given
6310 NO_REGS.
6311
6312 2016-08-04 Patrick Palka <ppalka@gcc.gnu.org>
6313
6314 * tree-vrp.c (simplify_switch_using_ranges): Try to truncate
6315 the case label ranges that partially overlap with OP's value
6316 range.
6317
6318 2016-08-04 Uros Bizjak <ubizjak@gmail.com>
6319
6320 PR target/72805
6321 * config/i386/avx512fintrin.h (_mm512_cmp_epi32_mask) [!__OPTIMIZE__]:
6322 Cast builtin function result to __mmask16 instead of __mmask8.
6323 (_mm512_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.
6324 (_mm512_mask_cmp_epi32_mask) [!__OPTIMIZE__]: Ditto.
6325 (_mm512_mask_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.
6326
6327 2016-08-04 David Malcolm <dmalcolm@redhat.com>
6328
6329 * selftest.h (ASSERT_TRUE): Reimplement in terms of...
6330 (ASSERT_TRUE_AT): New macro.
6331 (ASSERT_FALSE): Reimplement in terms of...
6332 (ASSERT_FALSE_AT): New macro.
6333 (ASSERT_STREQ_AT): Fix typo in comment.
6334
6335 2016-08-04 Patrick Palka <ppalka@gcc.gnu.org>
6336
6337 * gimple.c (preprocess_case_label_vec_for_gimple): When the case
6338 labels are exhaustive, designate the label with the widest
6339 range to be the default label.
6340
6341 2016-08-04 Andrew Pinski <apinski@cavium.com>
6342
6343 * config/aarch64/aarch64.c (thunderx_vector_cost): New variable.
6344 (thunderx_tunings): Use thunderx_vector_cost instead of
6345 generic_vector_cost.
6346
6347 2016-08-04 Martin Liska <mliska@suse.cz>
6348
6349 * gcov.c (main): Fix GNU coding style.
6350 (output_intermediate_file): Likewise.
6351 (process_file): Likewise.
6352 (generate_results): Likewise.
6353 (release_structures): Likewise.
6354 (create_file_names): Likewise.
6355 (find_source): Likewise.
6356 (read_graph_file): Likewise.
6357 (find_exception_blocks): Likewise.
6358 (canonicalize_name): Likewise.
6359 (make_gcov_file_name): Likewise.
6360 (mangle_name): Likewise.
6361 (accumulate_line_counts): Likewise.
6362 (output_branch_count): Likewise.
6363 (read_line): Likewise.
6364
6365 2016-08-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
6366
6367 PR rtl-optimization/71779
6368 * emit-rtl.c (set_reg_attrs_from_value): Only propagate REG_POINTER,
6369 if the value was sign-extended according to POINTERS_EXTEND_UNSIGNED
6370 or if it was truncated.
6371
6372 PR rtl-optimization/70903
6373 * cse.c (cse_insn): If DEST is a paradoxical SUBREG, don't record DEST.
6374
6375 2016-08-04 Kugan Vivekanandarajah <kuganv@linaro.org>
6376
6377 * tree-inline.c (remap_ssa_name): Check for POINTER_TYPE_P before
6378 accessing SSA_NAME_PTR_INFO.
6379
6380 2016-08-04 Georg-Johann Lay <avr@gjlay.de>
6381
6382 PR 70677
6383 * common/config/avr/avr-common.c (avr_option_optimization_table)
6384 [OPT_LEVELS_ALL]: Turn off -fcaller-saves.
6385
6386 2016-08-04 Georg-Johann Lay <avr@gjlay.de>
6387
6388 PR 55181
6389 * config/avr/avr.md: New pattern to work around do_store_flag
6390 generating shift instructions for bit extractions.
6391
6392 2016-08-04 Kugan Vivekanandarajah <kuganv@linaro.org>
6393
6394 * tree-vrp.c (set_value_range): Use vrp_equiv_obstack with
6395 BITMAP_ALLOC.
6396 (add_equivalence): Likewise.
6397 (get_value_range): Allocate value range with vrp_value_range_pool.
6398 (vrp_initialize): Initialize vrp_equiv_obstack for equiv allocation.
6399 (vrp_finalize): Relase vrp_equiv_obstack and vrp_value_range_pool.
6400
6401 2016-08-03 Peter Bergner <bergner@vnet.ibm.com>
6402
6403 * config/rs6000/rs6000.c (rs6000_option_override_internal): Make LRA
6404 the default for the rs6000 port.
6405
6406 2016-08-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
6407
6408 PR middle-end/71876
6409 * calls.c (special_function_p): Remove special handling of
6410 "setjmp_syscall", "qsetjmp", "longjmp", "siglongjmp" and the
6411 prefix "__x". Recognize "savectx", "vfork" and "getcontext" only
6412 without prefix. Remove potentially unsafe ECF_LEAF and ECF_NORETURN.
6413
6414 2016-08-03 Vladimir Makarov <vmakarov@redhat.com>
6415
6416 PR middle-end/72778
6417 * lra-spills.c (regno_in_use_p): Check bb and regno modification.
6418 Don't stop on regular insns.
6419
6420 2016-08-03 Nathan Sidwell <nathan@codesourcery.com>
6421
6422 * config/nvptx/nvptx.c (nvptx_declare_function_name): Round frame
6423 size to DImode boundary.
6424 (nvptx_propagate): Likewise.
6425
6426 2016-08-03 Alan Modra <amodra@gmail.com>
6427
6428 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Make scalar
6429 float access depend on TARGET_EFFICIENT_UNALIGNED_VSX.
6430 * config/rs6000/rs6000.opt (-mefficient-unaligned-vsx): Renamed
6431 from -mefficient-unaligned-vector. Note that this affects fp too.
6432
6433 2016-08-03 Alan Modra <amodra@gmail.com>
6434
6435 * config/rs6000/rs6000.c (rs6000_rtx_costs): Make unaligned mem
6436 cost more.
6437
6438 2016-08-03 Alan Modra <amodra@gmail.com>
6439
6440 * config/rs6000/rs6000.md (fix_trunc<mode>si2): Force source operand
6441 to a reg. Localize vars.
6442
6443 2016-08-03 Alan Modra <amodra@gmail.com>
6444
6445 * config/rs6000/rs6000.opt: Remove negatives from help strings
6446 and comments.
6447
6448 2016-08-03 Alan Modra <amodra@gmail.com>
6449
6450 * config/rs6000/rs6000.c (rs6000_secondary_reload_direct_move):
6451 Delete duplicated code.
6452
6453 2016-08-02 Vladimir Makarov <vmakarov@redhat.com>
6454
6455 PR middle-end/72778
6456 * lra-spills.c (regno_in_use_p): New.
6457 (lra_final_code_change): Use it.
6458
6459 2016-08-02 Vladimir Makarov <vmakarov@redhat.com>
6460
6461 PR rtl-optimization/69847
6462 * lra-int.h (struct lra-reg): Use restore_rtx instead of
6463 restore_regno.
6464 (lra_rtx_hash): New.
6465 * lra.c (initialize_lra_reg_info_element): Use restore_rtx instead
6466 of restore_regno.
6467 (lra_rtx_hash): Rename and move lra-remat.c::rtx_hash.
6468 * lra-remat.c (rtx_hash): Rename and Move to lra.c.
6469 * lra-spills.c (lra_final_code_change): Don't delete insn when the
6470 next insn is USE with the same reg as the current insn source.
6471 * lra-constraints.c (curr_insn_transform): Use restore_rtx instead
6472 of restore_regno.
6473 (lra_constraints_init): Call initiate_invariants.
6474 (lra_constraints_finish): Call finish_invariants.
6475 (struct invariant, invariant_t, invariant_ptr_t): New.
6476 (const_invariant_ptr_t, invariants, invariants_pool): New.
6477 (invariant_table, invariant_hash, invariant_eq_p): New.
6478 (insert_invariant, initiate_invariants, finish_invariants): New.
6479 (clear_invariants, invalid_invariant_regs): New.
6480 (inherit_reload_reg, split_reg, fix_bb_live_info): Use restore_rtx
6481 instead of restore_regno.
6482 (invariant_p, process_invariant_for_inheritance): New.
6483 (inherit_in_ebb): Implement invariant inheritance.
6484 (lra_inheritance): Initialize and finalize invalid_invariant_regs.
6485 (remove_inheritance_pseudos): Implement undoing invariant
6486 inheritance.
6487 (undo_optional_reloads, lra_undo_inheritance): Use restore_rtx
6488 instead of restore_regno.
6489 * lra-assigns.c (regno_live_length): New.
6490 (reload_pseudo_compare_func): Use regno_live_length.
6491 (assign_by_spills): Use restore_rtx instead of restore_regno.
6492 (lra_assign): Ditto. Initiate regno_live_length.
6493
6494 2016-02-08 James Greenhalgh <james.greenhalgh@arm.com>
6495
6496 * config/aarch64/arm_neon.h (vminnm_f64): Add back missing 'f' from
6497 __builtin_aarch64_fmindf.
6498
6499 2016-08-02 Bin Cheng <bin.cheng@arm.com>
6500
6501 PR tree-optimization/34114
6502 * tree-ssa-loop-niter.c (number_of_iterations_ne): Prove no-overflow
6503 information for more control IVs.
6504
6505 2016-08-02 Bin Cheng <bin.cheng@arm.com>
6506
6507 PR tree-optimization/34114
6508 * fold-const.c (multiple_of_p): Improve MULT_EXPR, PLUS_EXPR,
6509 PLUS_EXPR case. Handle SSA_NAME case.
6510
6511 2016-08-02 Tamar Christina <tamar.christina@arm.com>
6512
6513 * config/aarch64/aarch64-simd-builtins.def
6514 (__builtin_aarch64_fmindf): Change BUILTIN_VDQF to BUILTIN_VDQF_DF.
6515 (__builtin_aarch64_fmaxdf): Likewise.
6516 (__builtin_aarch64_smin_nandf): Likewise.
6517 (__builtin_aarch64_smax_nandf): Likewise.
6518 * config/aarch64/aarch64-simd.md (<fmaxmin><mode>3): Remove.
6519 * config/aarch64/aarch64.md (<fmaxmin><mode>3): Rename to...
6520 (<fmaxmin><mode>3): ...this.
6521 * config/aarch64/arm_neon.h (vmaxnm_f64): New.
6522 (vminnm_f64): Likewise.
6523 (vmin_f64): Likewise.
6524 (vmax_f64): Likewise.
6525 * config/aarch64/iterators.md (FMAXMIN): Merge with...
6526 (FMAXMIN_UNS): ...this.
6527 (fmaxmin): Merged with
6528 (fmaxmin_op): ...this...
6529 (maxmin_uns_op): ...in to this.
6530
6531 2016-08-01 Michael Meissner <meissner@linux.vnet.ibm.com>
6532
6533 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
6534 Add support for vec_extract on vector float, vector int, vector
6535 short, and vector char vector types.
6536 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
6537 vector float, vector int, vector short, and vector char
6538 optimizations on 64-bit ISA 2.07 systems for both constant and
6539 variable element numbers.
6540 (rs6000_split_vec_extract_var): Likewise.
6541 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): Allow SFmode to be
6542 Altivec registers on ISA 2.07 and above.
6543 (vsx_extract_v4sf): Delete alternative that hard coded element 0,
6544 which never was matched due to the split occuring before register
6545 allocation (and the code would not have worked on little endian
6546 systems if it did match). Allow extracts to go to the Altivec
6547 registers if ISA 2.07 (power8). Change from using "" around the
6548 C++ code to using {}'s.
6549 (vsx_extract_v4sf_<mode>_load): New insn to optimize vector float
6550 vec_extracts when the vector is in memory.
6551 (vsx_extract_v4sf_var): New insn to optimize vector float
6552 vec_extracts when the element number is variable on 64-bit ISA
6553 2.07 systems.
6554 (vsx_extract_<mode>, VSX_EXTRACT_I iterator): Add optimizations
6555 for 64-bit ISA 2.07 as well as ISA 3.0.
6556 (vsx_extract_<mode>_p9, VSX_EXTRACT_I iterator): Likewise.
6557 (vsx_extract_<mode>_p8, VSX_EXTRACT_I iterator): Likewise.
6558 (vsx_extract_<mode>_load, VSX_EXTRACT_I iterator): New insn to
6559 optimize vector int, vector short, and vector char vec_extracts
6560 when the vector is in memory.
6561 (vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): New insn to
6562 optimize vector int, vector short, and vector char vec_extracts
6563 when the element number is variable.
6564
6565 2016-08-01 Georg-Johann Lay <avr@gjlay.de>
6566
6567 PR target/71948
6568 * config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_PM): Use a value that
6569 does not overlap with other symbol flags.
6570
6571 2016-08-01 Wilco Dijkstra <wdijkstr@arm.com>
6572
6573 * config/aarch64/aarch64.h (aarch64_frame):
6574 Remove padding0 and hardfp_offset. Add locals_offset,
6575 initial_adjust, callee_adjust, callee_offset and final_adjust.
6576 * config/aarch64/aarch64.c (aarch64_layout_frame):
6577 Remove unused padding0 and hardfp_offset initializations.
6578 Choose frame layout and set frame variables accordingly.
6579 Use INVALID_REGNUM instead of FIRST_PSEUDO_REGISTER.
6580 (aarch64_push_regs): Use INVALID_REGNUM, not FIRST_PSEUDO_REGISTER.
6581 (aarch64_pop_regs): Likewise.
6582 (aarch64_expand_prologue): Remove all decision code, just emit
6583 prolog according to frame variables.
6584 (aarch64_expand_epilogue): Remove all decision code, just emit
6585 epilog according to frame variables.
6586 (aarch64_initial_elimination_offset): Use offset to local/arg area.
6587
6588 2015-08-01 H.J. Lu <hongjiu.lu@intel.com>
6589
6590 PR target/72748
6591 * config/i386/i386.c (timode_scalar_chain::convert_insn): Call
6592 fix_debug_reg_uses after changing source register mode to
6593 V1TImode if source register is undefined.
6594
6595 2015-08-01 Alan Hayward <alan.hayward@arm.com>
6596
6597 PR tree-optimization/71818
6598 * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Don't advance IVs
6599 with non invariant evolutions
6600
6601 2016-08-01 Georg-Johann Lay <avr@gjlay.de>
6602
6603 PR target/72767
6604 * config/avr/avr.md (length) [branch]: Correct insn length
6605 attribute for forward branches.
6606
6607 2016-08-01 Georg-Johann Lay <avr@gjlay.de>
6608
6609 * doc/extend.texi (AVR Built-in Functions): Document
6610 __builtin_avr_nops.
6611 * config/avr/builtins.def (NOPS): New.
6612 * config/avr/avr.c (avr_expand_nops): New static function.
6613 (avr_expand_builtin): Use it to handle AVR_BUILTIN_NOPS.
6614
6615 2016-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6616
6617 * config/aarch64/aarch64.c (aarch64_classify_address): Use DImode when
6618 performing aarch64_offset_7bit_signed_scaled_p check for TImode LDP/STP
6619 addresses.
6620
6621 2016-08-01 Virendra Pathak <virendra.pathak@broadcom.com>
6622
6623 * config/aarch64/aarch64.c (vulcan_tunings): Update
6624 vulcan L1 cache_line_size.
6625
6626 2016-07-30 Michael Meissner <meissner@linux.vnet.ibm.com>
6627
6628 * config/rs6000/rs6000-protos.h (rs6000_adjust_vec_address): New
6629 function that takes a vector memory address, a hard register, an
6630 element number and a temporary base register, and recreates an
6631 address that points to the appropriate element within the vector.
6632 * config/rs6000/rs6000.c (rs6000_adjust_vec_address): Likewise.
6633 (rs6000_split_vec_extract_var): Add support for the target of a
6634 vec_extract with variable element number being a scalar memory
6635 location.
6636 (rtx_is_swappable_p): VLSO insns (UNSPEC_VSX_VSLOW) are not
6637 swappable.
6638 * config/rs6000/vsx.md (vsx_extract_<mode>_load): Replace
6639 vsx_extract_<mode>_load insn with a new insn that optimizes
6640 storing either element to a memory location, using scratch
6641 registers to pick apart the vector and reconstruct the address.
6642 (vsx_extract_<P:mode>_<VSX_D:mode>_load): Likewise.
6643 (vsx_extract_<mode>_store): Rework alternatives to more correctly
6644 support Altivec registers. Add support for ISA 3.0 Altivec d-form
6645 store instruction.
6646 (vsx_extract_<mode>_var): Add support for extracting a variable
6647 element number from memory.
6648
6649 2016-07-29 Georg-Johann Lay <avr@gjlay.de>
6650
6651 * config/avr/avr.c (avr_out_compare): Use const0_rtx instead of 0
6652 when testing for compares against constants of the form 0xabab.
6653
6654 2016-07-29 Bin Cheng <bin.cheng@arm.com>
6655
6656 PR tree-optimization/57558
6657 * tree-vect-loop-manip.c (vect_create_cond_for_niters_checks): New
6658 function.
6659 (vect_loop_versioning): Support versioning with niter assumptions.
6660 * tree-vect-loop.c (tree-ssa-loop.h): Include header file.
6661 (vect_get_loop_niters): New parameter. Reimplement to support
6662 assumptions in loop niter info.
6663 (vect_analyze_loop_form_1, vect_analyze_loop_form): Ditto.
6664 (new_loop_vec_info): Init LOOP_VINFO_NITERS_ASSUMPTIONS.
6665 (vect_estimate_min_profitable_iters): Use LOOP_REQUIRES_VERSIONING.
6666 Support loop versioning for niters.
6667 * tree-vectorizer.c (tree-ssa-loop-niter.h): Include header file.
6668 (vect_free_loop_info_assumptions): New function.
6669 (vectorize_loops): Free loop niter info for loops with flag
6670 LOOP_F_ASSUMPTIONS set if vectorization failed.
6671 * tree-vectorizer.h (struct _loop_vec_info): New field
6672 num_iters_assumptions.
6673 (LOOP_VINFO_NITERS_ASSUMPTIONS): New macro.
6674 (LOOP_REQUIRES_VERSIONING_FOR_NITERS): New macro.
6675 (LOOP_REQUIRES_VERSIONING): New macro.
6676 (vect_free_loop_info_assumptions): New decl.
6677
6678 2016-07-29 Bin Cheng <bin.cheng@arm.com>
6679
6680 * cfgloop.h (struct loop): New field constraints.
6681 (LOOP_C_INFINITE, LOOP_C_FINITE): New macros.
6682 (loop_constraint_set, loop_constraint_clr, loop_constraint_set_p): New
6683 functions.
6684 * cfgloop.c (alloc_loop): Initialize new field.
6685 * cfgloopmanip.c (copy_loop_info): Copy constraints.
6686 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions):
6687 Adjust niter analysis wrto loop constraints.
6688 * doc/loop.texi (@node Number of iterations): Add description for loop
6689 constraints.
6690
6691 2016-07-29 Marek Polacek <polacek@redhat.com>
6692
6693 PR c/7652
6694 * config/i386/i386.c (ix86_expand_args_builtin): Add break.
6695 (ix86_expand_round_builtin): Likewise.
6696
6697 2016-07-29 Segher Boessenkool <segher@kernel.crashing.org>
6698 Georg-Johann Lay <avr@gjlay.de>
6699
6700 PR rtl-optimization/71976
6701 * combine.c (get_last_value): Return 0 if the argument for which
6702 the function is called has a wider mode than the recorded value.
6703
6704 2016-07-29 Marek Polacek <polacek@redhat.com>
6705
6706 PR c/7652
6707 * config/rs6000/rs6000.c (altivec_expand_ld_builtin): Add break.
6708 (altivec_expand_st_builtin): Likewise.
6709
6710 2016-07-29 Georg-Johann Lay <avr@gjlay.de>
6711
6712 * config/avr/avr.md (addqi3) [cc]: Revert glitch in insn attribute
6713 introduced in r238381.
6714
6715 2016-07-29 Kugan Vivekanandarajah <kuganv@linaro.org>
6716
6717 PR middle-end/68217
6718 * tree-vrp.c (extract_range_from_binary_expr_1): In case of signed
6719 & sign-bit-CST, generate [-INF, 0] instead of [-INF, INF].
6720
6721 2016-07-28 Michael Meissner <meissner@linux.vnet.ibm.com>
6722
6723 * config/rs6000/rs6000-protos.h (rs6000_split_vec_extract_var):
6724 New declaration.
6725 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
6726 Add support for vec_extract of vector double or vector long having
6727 a variable element number on 64-bit ISA 2.07 systems or newer.
6728 * config/rs6000/rs6000.c (rs6000_expand_vector_extract):
6729 Likewise.
6730 (rs6000_split_vec_extract_var): New function to split a
6731 vec_extract built-in function with variable element number.
6732 (rtx_is_swappable_p): Variable vec_extracts and shifts are not
6733 swappable.
6734 * config/rs6000/vsx.md (UNSPEC_VSX_VSLO): New unspec.
6735 (UNSPEC_VSX_EXTRACT): Likewise.
6736 (vsx_extract_<mode>, VSX_D iterator): Fix constraints to allow
6737 direct move instructions to be generated on 64-bit ISA 2.07
6738 systems and newer, and to take advantage of the ISA 3.0 MFVSRLD
6739 instruction.
6740 (vsx_vslo_<mode>): New insn to do VSLO on V2DFmode and V2DImode
6741 arguments for vec_extract variable element.
6742 (vsx_extract_<mode>_var, VSX_D iterator): New insn to support
6743 vec_extract with variable element on V2DFmode and V2DImode
6744 vectors.
6745 * config/rs6000/rs6000.h (TARGET_VEXTRACTUB): Remove
6746 -mupper-regs-df requirement, since it isn't needed.
6747 (TARGET_DIRECT_MOVE_64BIT): New macro to say whether we can
6748 do direct moves on 64-bit systems, which allows optimization of
6749 vec_extract on 64-bit ISA 2.07 systems and newer.
6750
6751 2016-07-28 Kristina Martsenko <kristina.martsenko@arm.com>
6752 2016-07-28 Wilco Dijkstra <wdijkstr@arm.com>
6753
6754 * config/aarch64/aarch64.md
6755 (zero_extend<SHORT:mode><GPI:mode>2_aarch64): Change output
6756 statement and type.
6757 (<optab>qihi2_aarch64): Likewise, and split into two.
6758 (extendqihi2_aarch64): New.
6759 (zero_extendqihi2_aarch64): New.
6760 * config/aarch64/iterators.md (ldrxt): Remove.
6761 * config/aarch64/aarch64.c (aarch64_rtx_costs): Change cost of
6762 uxtb/uxth.
6763
6764 2016-07-28 Kristina Martsenko <kristina.martsenko@arm.com>
6765
6766 * config/aarch64/aarch64.c (aarch64_rtx_costs): Fix cost of zero extend.
6767
6768 2016-07-28 Wilco Dijkstra <wdijkstr@arm.com>
6769
6770 * config/aarch64/aarch64.c (aarch64_pushwb_pair_reg): Rename.
6771 (aarch64_push_reg): New function to push 1 or 2 registers.
6772 (aarch64_pop_reg): New function to pop 1 or 2 registers.
6773 (aarch64_expand_prologue): Use aarch64_push_regs.
6774 (aarch64_expand_epilogue): Use aarch64_pop_regs.
6775
6776 2016-07-28 Yuri Rumyantsev <ysrumyan@gmail.com>
6777
6778 PR tree-optimization/71734
6779 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Pass value of safelen
6780 attribute instead of REF_LOOP and use it.
6781 (ref_indep_loop_p_2): Use SAFELEN argument instead of REF_LOOP and
6782 set it for Loops having non-zero safelen attribute.
6783 (ref_indep_loop_p): Pass zero as initial value for safelen.
6784
6785 2016-07-28 Ilya Enkovich <ilya.enkovich@intel.com>
6786
6787 PR middle-end/72657
6788 PR target/72683
6789 * tree-chkp.c (chkp_retbnd_call_by_val): Check for instrumentation
6790 call using chkp_gimple_call_builtin_p.
6791 (chkp_copy_bounds_for_assign): Likewise.
6792
6793 2016-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6794
6795 * config/alpha/alpha.c (alpha_adjust_cost): Adjust.
6796 * config/arm/arm-protos.h (struct tune_params): Likewise.
6797 * config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
6798 (cortex_a9_sched_adjust_cost): Likewise.
6799 (fa726te_sched_adjust_cost): Likewise.
6800 (arm_adjust_cost): Likewise.
6801 * config/bfin/bfin.c (bfin_adjust_cost): Likewise.
6802 * config/c6x/c6x.c (c6x_adjust_cost): Likewise.
6803 * config/epiphany/epiphany.c (epiphany_adjust_cost): Likewise.
6804 * config/i386/i386.c (ix86_adjust_cost): Likewise.
6805 * config/ia64/ia64.c: Likewise.
6806 * config/m68k/m68k.c: Likewise.
6807 * config/mep/mep.c (mep_adjust_cost): Likewise.
6808 * config/microblaze/microblaze.c (microblaze_adjust_cost):
6809 * Likewise.
6810 * config/mips/mips.c (mips_adjust_cost): Likewise.
6811 * config/mn10300/mn10300.c (mn10300_adjust_sched_cost):
6812 * Likewise.
6813 * config/pa/pa.c (pa_adjust_cost): Likewise.
6814 * config/rs6000/rs6000.c (rs6000_adjust_cost): Likewise.
6815 (rs6000_debug_adjust_cost): Likewise.
6816 * config/sh/sh.c (sh_adjust_cost): Likewise.
6817 * config/sparc/sparc.c (supersparc_adjust_cost): Likewise.
6818 (hypersparc_adjust_cost): Likewise.
6819 (sparc_adjust_cost): Likewise.
6820 * config/spu/spu.c (spu_sched_adjust_cost): Likewise.
6821 * config/tilegx/tilegx.c (tilegx_sched_adjust_cost): Likewise.
6822 * config/tilepro/tilepro.c (tilepro_sched_adjust_cost):
6823 * Likewise.
6824 * config/visium/visium.c (visium_adjust_cost): Likewise.
6825 * doc/tm.texi: Regenerate.
6826 * haifa-sched.c (dep_cost_1): Adjust.
6827 * target.def: Merge adjust_cost and adjust_cost_2.
6828
6829 2016-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6830
6831 * haifa-sched.c (add_to_speculative_block): Make twins a vector.
6832
6833 2016-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6834
6835 * store-motion.c (struct st_expr): Make pattern_regs a vector.
6836 (extract_mentioned_regs): Append to a vector instead of
6837 returning a rtx_expr_list.
6838 (st_expr_entry): Adjust.
6839 (free_st_expr_entry): Likewise.
6840 (store_ops_ok): Likewise.
6841 (store_killed_in_insn): Likewise.
6842 (find_moveable_store): Likewise.
6843
6844 2016-07-28 Martin Liska <mliska@suse.cz>
6845
6846 PR gcov-profile/68025
6847 * tree-profile.c (tree_profiling): Respect
6848 no_profile_instrument_function attribute.
6849 * doc/extend.texi: Document no_profile_instrument_function
6850 attribute.
6851
6852 2016-07-28 Martin Liska <mliska@suse.cz>
6853
6854 PR rtl-optimization/70944
6855 * combine.c (make_compound_operation):
6856 Do not allow make_compound_operation for vector mode
6857
6858 2016-07-28 Kugan Vivekanandarajah <kuganv@linaro.org>
6859
6860 PR middle-end/71994
6861 * tree-ssa-reassoc.c (maybe_optimize_range_tests): Check tcc_comparison
6862 before calling get_ops.
6863
6864 2016-07-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
6865
6866 * defaults.h (LOG2_BITS_PER_UNIT): Move from here...
6867 * tree.h (LOG2_BITS_PER_UNIT): ...to here.
6868 (BITS_PER_UNIT_LOG): Remove.
6869 (int_bit_position): Use LOG2_BITS_PER_UNIT instead of BITS_PER_UNIT_LOG.
6870 * expr.c (expand_assignment): Likewise.
6871 * stor-layout.c (initialize_sizetypes): Likewise.
6872
6873 2016-07-27 Michael Meissner <meissner@linux.vnet.ibm.com>
6874
6875 * config/rs6000/vector.md (vec_extract<mode>): Change the calling
6876 signature of rs6000_expand_vector_extract so that the element
6877 number is a RTX instead of a constant integer.
6878 * config/rs6000/rs6000-protos.h (rs6000_expand_vector_extract):
6879 Likewise.
6880 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Likewise.
6881 (altivec_expand_vec_ext_builtin): Likewise.
6882 * config/rs6000/altivec.md (reduc_plus_scal_<mode>): Likewise.
6883 * config/rs6000/vsx.md (vsx_extract_<mode>): Fix spelling of the
6884 MFVSRLD instruction.
6885
6886 2016-07-27 David Malcolm <dmalcolm@redhat.com>
6887
6888 * input.c (get_pure_location): Move here from tree.c.
6889 (make_location): Likewise. Add header comment.
6890 (selftest::test_accessing_ordinary_linemaps): Verify
6891 pure_location_p, make_location, get_location_from_adhoc_loc and
6892 get_range_from_loc.
6893 * input.h (get_pure_location): Move declaration here from tree.h.
6894 (get_finish): Likewise for inline function.
6895 (make_location): Likewise for declaration.
6896 * tree.c (get_pure_location): Move to input.c.
6897 (make_location): Likewise.
6898 * tree.h (get_pure_location): Move declaration to tree.h.
6899 (get_finish): Likewise for inline function.
6900 (make_location): Likewise for declaration.
6901
6902 2016-07-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6903
6904 PR middle-end/71078
6905 * match.pd (x / abs(x) -> copysign(1.0, x)): New pattern.
6906
6907 2016-07-27 David Malcolm <dmalcolm@redhat.com>
6908
6909 * system.h (STATIC_ASSERT): Use static_assert if building
6910 with C++11 onwards.
6911
6912 2016-07-27 Richard Biener <rguenther@suse.de>
6913
6914 PR tree-optimization/72517
6915 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
6916 Revert change to not compute read-read dependences.
6917
6918 2016-07-27 Richard Biener <rguenther@suse.de>
6919
6920 * predict.c (set_even_probabilities): Make nedges unsigned.
6921
6922 2016-07-27 Martin Liska <mliska@suse.cz>
6923
6924 * predict.c (set_even_probabilities): Handle unlikely edges.
6925 (combine_predictions_for_bb): Likewise.
6926
6927 2016-07-26 Michael Meissner <meissner@linux.vnet.ibm.com>
6928
6929 PR target/71869
6930 * config/rs6000/rs6000.c (rs6000_generate_compare): Rework
6931 __float128 support when we don't have hardware support, so that
6932 the IEEE built-in functions like isgreater, first call __unordkf3
6933 to make sure neither operand is a NaN, and if both operands are
6934 ordered, do the normal comparison.
6935
6936 2016-07-26 Patrick Palka <ppalka@gcc.gnu.org>
6937
6938 * tree-vrp.c (dump_asserts_for): Print loc->expr instead of
6939 name.
6940 (extract_code_and_val_from_cond_with_ops): Verify that name is
6941 either cond_op0 or cond_op1.
6942
6943 2016-07-26 Patrick Palka <ppalka@gcc.gnu.org>
6944
6945 PR tree-optimization/18046
6946 * genmodes.c (emit_mode_size_inline): Emit an assert that
6947 verifies that mode is a valid array index.
6948 (emit_mode_nuinits_inline): Likewise.
6949 (emit_mode_inner_inline): Likewise.
6950 (emit_mode_unit_size_inline): Likewise.
6951 (emit_mode_unit_precision_inline): Likewise.
6952 * tree-vrp.c: Include params.h.
6953 (find_switch_asserts): Register edge assertions for the default
6954 label which correspond to the anti-ranges of each case label.
6955 * params.def (PARAM_MAX_VRP_SWITCH_ASSERTIONS): New.
6956 * doc/invoke.texi: Document it.
6957
6958 2016-07-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6959
6960 * gimple-ssa-strength-reduction.c (slsr_process_phi): Remove dead
6961 and unnecessary call to gimple_bb.
6962
6963 2016-07-26 Richard Biener <rguenther@suse.de>
6964
6965 PR rtl-optimization/71984
6966 * simplify-rtx.c (simplify_subreg): Use GET_MODE_SIZE and prepare
6967 for VOIDmode.
6968
6969 2016-07-26 Richard Biener <rguenther@suse.de>
6970
6971 PR middle-end/72517
6972 * expmed.c (extract_bit_field_1): Constrain the vector mode
6973 with element size matching the extraction mode size when
6974 choosing a better vector mode to do the extraction from.
6975
6976 2016-07-26 Richard Biener <rguenther@suse.de>
6977 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6978
6979 PR middle-end/70920
6980 * match.pd ((intptr)x eq/ne CST to x eq/ne (typeof x) CST): New
6981 pattern.
6982
6983 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6984
6985 * tree-ssa-structalias.c (struct scc_info): Change types of
6986 members to auto_sbitmap and auto_vec.
6987 (scc_info::scc_info): New constructor.
6988 (scc_info::~scc_info): New destructor.
6989 (init_scc_info): Remove.
6990 (free_scc_info): Remove.
6991 (find_indirect_cycles): Adjust.
6992 (perform_var_substitution): Likewise.
6993 (free_var_substitution_info): Likewise.
6994
6995 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6996
6997 * tree-outof-ssa.c (struct elim_graph): Change type of members
6998 to auto_vec and auto_sbitmap.
6999 (elim_graph::elim_graph): New constructor.
7000 (delete_elim_graph): Remove.
7001 (expand_phi_nodes): Adjust.
7002
7003 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7004
7005 * tree-outof-ssa.c (struct elim_graph): Remove typedef.
7006 (new_elim_graph): Adjust.
7007 (clear_elim_graph): Likewise.
7008 (delete_elim_graph): Likewise.
7009 (elim_graph_size): Likewise.
7010 (elim_graph_add_node): Likewise.
7011 (elim_graph_add_edge): Likewise.
7012 (elim_graph_remove_succ_edge): Likewise.
7013 (eliminate_name): Likewise.
7014 (eliminate_build): Likewise.
7015 (elim_forward): Likewise.
7016 (elim_unvisited_predecessor): Likewise.
7017 (elim_backward): Likewise.
7018 (elim_create): Likewise.
7019 (eliminate_phi): Likewise.
7020 (expand_phi_nodes): Likewise.
7021
7022 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7023
7024 * bt-load.c (compute_out): Use auto_sbitmap class.
7025 (link_btr_uses): Likewise.
7026 * cfganal.c (mark_dfs_back_edges): Likewise.
7027 (post_order_compute): Likewise.
7028 (inverted_post_order_compute): Likewise.
7029 (pre_and_rev_post_order_compute_fn): Likewise.
7030 (single_pred_before_succ_order): Likewise.
7031 * cfgexpand.c (pass_expand::execute): Likewise.
7032 * cfgloop.c (verify_loop_structure): Likewise.
7033 * cfgloopmanip.c (fix_bb_placements): Likewise.
7034 (remove_path): Likewise.
7035 (update_dominators_in_loop): Likewise.
7036 * cfgrtl.c (break_superblocks): Likewise.
7037 * ddg.c (check_sccs): Likewise.
7038 (create_ddg_all_sccs): Likewise.
7039 * df-core.c (df_worklist_dataflow): Likewise.
7040 * dse.c (dse_step3): Likewise.
7041 * except.c (eh_region_outermost): Likewise.
7042 * function.c (thread_prologue_and_epilogue_insns): Likewise.
7043 * gcse.c (prune_expressions): Likewise.
7044 (prune_insertions_deletions): Likewise.
7045 * gimple-ssa-backprop.c (backprop::~backprop): Likewise.
7046 * graph.c (draw_cfg_nodes_no_loops): Likewise.
7047 * ira-lives.c (remove_some_program_points_and_update_live_ranges): Likewise.
7048 * lcm.c (compute_earliest): Likewise.
7049 (compute_farthest): Likewise.
7050 * loop-unroll.c (unroll_loop_constant_iterations): Likewise.
7051 (unroll_loop_runtime_iterations): Likewise.
7052 (unroll_loop_stupid): Likewise.
7053 * lower-subreg.c (decompose_multiword_subregs): Likewise.
7054 * lra-lives.c: Likewise.
7055 * lra.c (lra): Likewise.
7056 * modulo-sched.c (schedule_reg_moves): Likewise.
7057 (optimize_sc): Likewise.
7058 (get_sched_window): Likewise.
7059 (sms_schedule_by_order): Likewise.
7060 (check_nodes_order): Likewise.
7061 (order_nodes_of_sccs): Likewise.
7062 (order_nodes_in_scc): Likewise.
7063 * recog.c (split_all_insns): Likewise.
7064 * regcprop.c (pass_cprop_hardreg::execute): Likewise.
7065 * reload1.c (reload): Likewise.
7066 * sched-rgn.c (haifa_find_rgns): Likewise.
7067 (split_edges): Likewise.
7068 (compute_trg_info): Likewise.
7069 * sel-sched.c (init_seqno): Likewise.
7070 * store-motion.c (remove_reachable_equiv_notes): Likewise.
7071 * tree-into-ssa.c (update_ssa): Likewise.
7072 * tree-ssa-live.c (live_worklist): Likewise.
7073 * tree-ssa-loop-im.c (fill_always_executed_in): Likewise.
7074 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
7075 * Likewise.
7076 (try_peel_loop): Likewise.
7077 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop):
7078 * Likewise.
7079 * tree-ssa-pre.c (compute_antic): Likewise.
7080 * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
7081 * tree-stdarg.c (reachable_at_most_once): Likewise.
7082 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Likewise.
7083 * var-tracking.c (vt_find_locations): Likewise.
7084
7085 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7086
7087 * sbitmap.h (auto_sbitmap): New class.
7088
7089 2016-07-26 Alan Modra <amodra@gmail.com>
7090
7091 PR target/72103
7092 * config/rs6000/rs6000.c (rs6000_secondary_reload): Initialize
7093 sri->t_icode.
7094
7095 2016-07-25 David Malcolm <dmalcolm@redhat.com>
7096
7097 * input.c (selftest::temp_source_file::temp_source_file): Fix
7098 missing "%s" in fprintf.
7099
7100 2016-07-25 John David Anglin <danglin@gcc.gnu.org>
7101
7102 PR middle-end/71732
7103 * cselib.c (cselib_process_insn): Invalidate argument slots for
7104 const/pure calls.
7105
7106 2016-07-25 Jiong Wang <jiong.wang@arm.com>
7107
7108 * config/aarch64/arm_neon.h (vfmah_lane_f16, vfmah_laneq_f16,
7109 vfmsh_lane_f16, vfmsh_laneq_f16, vmulh_lane_f16, vmulh_laneq_f16,
7110 vmulxh_lane_f16, vmulxh_laneq_f16): New.
7111
7112 2016-07-25 Jiong Wang <jiong.wang@arm.com>
7113
7114 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
7115 * config/aarch64/aarch64.md (fma, fnma): Support HF.
7116 * config/aarch64/arm_fp16.h (vfmah_f16, vfmsh_f16): New.
7117
7118 2016-07-25 Jiong Wang <jiong.wang@arm.com>
7119
7120 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
7121 * config/aarch64/aarch64.md (<FCVT_F2FIXED:fcvt_fixed_insn>hf<mode>3):
7122 New.
7123 (<FCVT_FIXED2F:fcvt_fixed_insn><mode>hf3): Likewise.
7124 (add<mode>3): Likewise.
7125 (sub<mode>3): Likewise.
7126 (mul<mode>3): Likewise.
7127 (div<mode>3): Likewise.
7128 (*div<mode>3): Likewise.
7129 (<fmaxmin><mode>3): Extend to HF.
7130 * config/aarch64/aarch64-simd.md (aarch64_rsqrts<mode>): Likewise.
7131 (fabd<mode>3): Likewise.
7132 (<FCVT_F2FIXED:fcvt_fixed_insn><VHSDF_HSDF:mode>3): Likewise.
7133 (<FCVT_FIXED2F:fcvt_fixed_insn><VHSDI_HSDI:mode>3): Likewise.
7134 (aarch64_fmulx<mode>): Likewise.
7135 (aarch64_fac<optab><mode>): Likewise.
7136 (aarch64_frecps<mode>): Likewise.
7137 (<FCVT_F2FIXED:fcvt_fixed_insn>hfhi3): New.
7138 (<FCVT_FIXED2F:fcvt_fixed_insn>hihf3): Likewise.
7139 * config/aarch64/iterators.md (VHSDF_SDF): Delete.
7140 (VSDQ_HSDI): Support HI.
7141 (fcvt_target, FCVT_TARGET): Likewise.
7142 * config/aarch64/arm_fp16.h (vaddh_f16, vsubh_f16, vabdh_f16,
7143 vcageh_f16, vcagth_f16, vcaleh_f16, vcalth_f16, vceqh_f16, vcgeh_f16,
7144 vcgth_f16, vcleh_f16, vclth_f16, vcvth_n_f16_s16, vcvth_n_f16_s32,
7145 vcvth_n_f16_s64, vcvth_n_f16_u16, vcvth_n_f16_u32, vcvth_n_f16_u64,
7146 vcvth_n_s16_f16, vcvth_n_s32_f16, vcvth_n_s64_f16, vcvth_n_u16_f16,
7147 vcvth_n_u32_f16, vcvth_n_u64_f16, vdivh_f16, vmaxh_f16, vmaxnmh_f16,
7148 vminh_f16, vminnmh_f16, vmulh_f16, vmulxh_f16, vrecpsh_f16,
7149 vrsqrtsh_f16): New.
7150
7151 2016-07-25 Jiong Wang <jiong.wang@arm.com>
7152
7153 * config.gcc (aarch64*-*-*): Install arm_fp16.h.
7154 * config/aarch64/aarch64-builtins.c (hi_UP): New.
7155 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
7156 * config/aarch64/aarch64-simd.md (aarch64_frsqrte<mode>): Extend to HF
7157 mode.
7158 (aarch64_frecp<FRECP:frecp_suffix><mode>): Likewise.
7159 (aarch64_cm<optab><mode>): Likewise.
7160 * config/aarch64/aarch64.md (<frint_pattern><mode>2): Likewise.
7161 (l<fcvt_pattern><su_optab><GPF:mode><GPI:mode>2): Likewise.
7162 (fix_trunc<GPF:mode><GPI:mode>2): Likewise.
7163 (sqrt<mode>2): Likewise.
7164 (*sqrt<mode>2): Likewise.
7165 (abs<mode>2): Likewise.
7166 (<optab><mode>hf2): New pattern for HF mode.
7167 (<optab>hihf2): Likewise.
7168 * config/aarch64/arm_neon.h: Include arm_fp16.h.
7169 * config/aarch64/iterators.md (GPF_F16, GPI_F16, VHSDF_HSDF): New.
7170 (w1, w2, v, s, q, Vmtype, V_cmp_result, fcvt_iesize, FCVT_IESIZE):
7171 Support HF mode.
7172 * config/aarch64/arm_fp16.h: New file.
7173 (vabsh_f16, vceqzh_f16, vcgezh_f16, vcgtzh_f16, vclezh_f16, vcltzh_f16,
7174 vcvth_f16_s16, vcvth_f16_s32, vcvth_f16_s64, vcvth_f16_u16,
7175 vcvth_f16_u32, vcvth_f16_u64, vcvth_s16_f16, vcvth_s32_f16,
7176 vcvth_s64_f16, vcvth_u16_f16, vcvth_u32_f16, vcvth_u64_f16,
7177 vcvtah_s16_f16, vcvtah_s32_f16, vcvtah_s64_f16, vcvtah_u16_f16,
7178 vcvtah_u32_f16, vcvtah_u64_f16, vcvtmh_s16_f16, vcvtmh_s32_f16,
7179 vcvtmh_s64_f16, vcvtmh_u16_f16, vcvtmh_u32_f16, vcvtmh_u64_f16,
7180 vcvtnh_s16_f16, vcvtnh_s32_f16, vcvtnh_s64_f16, vcvtnh_u16_f16,
7181 vcvtnh_u32_f16, vcvtnh_u64_f16, vcvtph_s16_f16, vcvtph_s32_f16,
7182 vcvtph_s64_f16, vcvtph_u16_f16, vcvtph_u32_f16, vcvtph_u64_f16,
7183 vnegh_f16, vrecpeh_f16, vrecpxh_f16, vrndh_f16, vrndah_f16, vrndih_f16,
7184 vrndmh_f16, vrndnh_f16, vrndph_f16, vrndxh_f16, vrsqrteh_f16,
7185 vsqrth_f16): New.
7186
7187 2016-07-25 Jiong Wang <jiong.wang@arm.com>
7188
7189 * config/aarch64/aarch64-simd-builtins.def (reduc_smax_scal_,
7190 reduc_smin_scal_): Use VDQIF_F16.
7191 (reduc_smax_nan_scal_, reduc_smin_nan_scal_): Use VHSDF.
7192 * config/aarch64/aarch64-simd.md (reduc_<maxmin_uns>_scal_<mode>):
7193 Use VHSDF.
7194 (aarch64_reduc_<maxmin_uns>_internal<mode>): Likewise.
7195 * config/aarch64/iterators.md (VDQIF_F16): New.
7196 (vp): Support HF modes.
7197 * config/aarch64/arm_neon.h (vmaxv_f16, vmaxvq_f16, vminv_f16,
7198 vminvq_f16, vmaxnmv_f16, vmaxnmvq_f16, vminnmv_f16, vminnmvq_f16): New.
7199
7200 2016-07-25 Jiong Wang <jiong.wang@arm.com>
7201
7202 * config/aarch64/aarch64-simd.md (*aarch64_mulx_elt_to_64v2df): Rename to
7203 "*aarch64_mulx_elt_from_dup<mode>".
7204 (*aarch64_mul3_elt<mode>): Update schedule type.
7205 (*aarch64_mul3_elt_from_dup<mode>): Likewise.
7206 (*aarch64_fma4_elt_from_dup<mode>): Likewise.
7207 (*aarch64_fnma4_elt_from_dup<mode>): Likewise.
7208 * config/aarch64/iterators.md (VMUL): Supprt half precision float modes.
7209 (f, fp): Support HF modes.
7210 * config/aarch64/arm_neon.h (vfma_lane_f16, vfmaq_lane_f16,
7211 vfma_laneq_f16, vfmaq_laneq_f16, vfma_n_f16, vfmaq_n_f16, vfms_lane_f16,
7212 vfmsq_lane_f16, vfms_laneq_f16, vfmsq_laneq_f16, vfms_n_f16,
7213 vfmsq_n_f16, vmul_lane_f16, vmulq_lane_f16, vmul_laneq_f16,
7214 vmulq_laneq_f16, vmul_n_f16, vmulq_n_f16, vmulx_lane_f16,
7215 vmulxq_lane_f16, vmulx_laneq_f16, vmulxq_laneq_f16): New.
7216
7217 2016-07-25 Jiong Wang <jiong.wang@arm.com>
7218
7219 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
7220 * config/aarch64/aarch64-simd.md (fma<mode>4, fnma<mode>4): Extend to HF
7221 modes.
7222 * config/aarch64/arm_neon.h (vfma_f16, vfmaq_f16, vfms_f16,
7223 vfmsq_f16): New.
7224
7225 2016-07-25 Jiong Wang <jiong.wang@arm.com>
7226
7227 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
7228 * config/aarch64/aarch64-simd.md
7229 (aarch64_rsqrts<mode>): Extend to HF modes.
7230 (fabd<mode>3): Likewise.
7231 (<FCVT_F2FIXED:fcvt_fixed_insn><VHSDF_SDF:mode>3): Likewise.
7232 (<FCVT_FIXED2F:fcvt_fixed_insn><VHSDI_SDI:mode>3): Likewise.
7233 (aarch64_<maxmin_uns>p<mode>): Likewise.
7234 (<su><maxmin><mode>3): Likewise.
7235 (<maxmin_uns><mode>3): Likewise.
7236 (<fmaxmin><mode>3): Likewise.
7237 (aarch64_faddp<mode>): Likewise.
7238 (aarch64_fmulx<mode>): Likewise.
7239 (aarch64_frecps<mode>): Likewise.
7240 (*aarch64_fac<optab><mode>): Rename to aarch64_fac<optab><mode>.
7241 (add<mode>3): Extend to HF modes.
7242 (sub<mode>3): Likewise.
7243 (mul<mode>3): Likewise.
7244 (div<mode>3): Likewise.
7245 (*div<mode>3): Likewise.
7246 * config/aarch64/aarch64.c (aarch64_emit_approx_div): Return false for
7247 HF, V4HF and V8HF.
7248 * config/aarch64/iterators.md (VDQ_HSDI, VSDQ_HSDI): New mode iterator.
7249 * config/aarch64/arm_neon.h (vadd_f16, vaddq_f16, vabd_f16, vabdq_f16,
7250 vcage_f16, vcageq_f16, vcagt_f16, vcagtq_f16, vcale_f16, vcaleq_f16,
7251 vcalt_f16, vcaltq_f16, vceq_f16, vceqq_f16, vcge_f16, vcgeq_f16,
7252 vcgt_f16, vcgtq_f16, vcle_f16, vcleq_f16, vclt_f16, vcltq_f16,
7253 vcvt_n_f16_s16, vcvtq_n_f16_s16, vcvt_n_f16_u16, vcvtq_n_f16_u16,
7254 vcvt_n_s16_f16, vcvtq_n_s16_f16, vcvt_n_u16_f16, vcvtq_n_u16_f16,
7255 vdiv_f16, vdivq_f16, vdup_lane_f16, vdup_laneq_f16, vdupq_lane_f16,
7256 vdupq_laneq_f16, vdups_lane_f16, vdups_laneq_f16, vmax_f16, vmaxq_f16,
7257 vmaxnm_f16, vmaxnmq_f16, vmin_f16, vminq_f16, vminnm_f16, vminnmq_f16,
7258 vmul_f16, vmulq_f16, vmulx_f16, vmulxq_f16, vpadd_f16, vpaddq_f16,
7259 vpmax_f16, vpmaxq_f16, vpmaxnm_f16, vpmaxnmq_f16, vpmin_f16, vpminq_f16,
7260 vpminnm_f16, vpminnmq_f16, vrecps_f16, vrecpsq_f16, vrsqrts_f16,
7261 vrsqrtsq_f16, vsub_f16, vsubq_f16): New.
7262
7263 2016-07-25 Jiong Wang <jiong.wang@arm.com>
7264
7265 * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New.
7266 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
7267 * config/aarch64/aarch64-simd.md (aarch64_rsqrte<mode>): Extend to HF modes.
7268 (neg<mode>2): Likewise.
7269 (abs<mode>2): Likewise.
7270 (<frint_pattern><mode>2): Likewise.
7271 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): Likewise.
7272 (<optab><VDQF:mode><fcvt_target>2): Likewise.
7273 (<fix_trunc_optab><VDQF:mode><fcvt_target>2): Likewise.
7274 (ftrunc<VDQF:mode>2): Likewise.
7275 (<optab><fcvt_target><VDQF:mode>2): Likewise.
7276 (sqrt<mode>2): Likewise.
7277 (*sqrt<mode>2): Likewise.
7278 (aarch64_frecpe<mode>): Likewise.
7279 (aarch64_cm<optab><mode>): Likewise.
7280 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Return false for
7281 HF, V4HF and V8HF.
7282 * config/aarch64/iterators.md (VHSDF, VHSDF_DF, VHSDF_SDF): New.
7283 (VDQF_COND, fcvt_target, FCVT_TARGET, hcon): Extend mode attribute to HF modes.
7284 (stype): New.
7285 * config/aarch64/arm_neon.h (vdup_n_f16): New.
7286 (vdupq_n_f16): Likewise.
7287 (vld1_dup_f16): Use vdup_n_f16.
7288 (vld1q_dup_f16): Use vdupq_n_f16.
7289 (vabs_f16, vabsq_f16, vceqz_f16, vceqzq_f16, vcgez_f16, vcgezq_f16,
7290 vcgtz_f16, vcgtzq_f16, vclez_f16, vclezq_f16, vcltz_f16, vcltzq_f16,
7291 vcvt_f16_s16, vcvtq_f16_s16, vcvt_f16_u16, vcvtq_f16_u16, vcvt_s16_f16,
7292 vcvtq_s16_f16, vcvt_u16_f16, vcvtq_u16_f16, vcvta_s16_f16,
7293 vcvtaq_s16_f16, vcvta_u16_f16, vcvtaq_u16_f16, vcvtm_s16_f16,
7294 vcvtmq_s16_f16, vcvtm_u16_f16, vcvtmq_u16_f16, vcvtn_s16_f16,
7295 vcvtnq_s16_f16, vcvtn_u16_f16, vcvtnq_u16_f16, vcvtp_s16_f16,
7296 vcvtpq_s16_f16, vcvtp_u16_f16, vcvtpq_u16_f16, vneg_f16, vnegq_f16,
7297 vrecpe_f16, vrecpeq_f16, vrnd_f16, vrndq_f16, vrnda_f16, vrndaq_f16,
7298 vrndi_f16, vrndiq_f16, vrndm_f16, vrndmq_f16, vrndn_f16, vrndnq_f16,
7299 vrndp_f16, vrndpq_f16, vrndx_f16, vrndxq_f16, vrsqrte_f16, vrsqrteq_f16,
7300 vsqrt_f16, vsqrtq_f16): New.
7301
7302 2016-07-25 Jiong Wang <jiong.wang@arm.com>
7303
7304 * config/aarch64/aarch64-simd.md
7305 (aarch64_<PERMUTE:perm_insn><PERMUTE:perm_hilo><mode>): Use VALL_F16.
7306 (aarch64_ext<mode>): Likewise.
7307 (aarch64_rev<REVERSE:rev_op><mode>): Likewise.
7308 * config/aarch64/aarch64.c (aarch64_evpc_trn, aarch64_evpc_uzp,
7309 aarch64_evpc_zip, aarch64_evpc_ext, aarch64_evpc_rev): Support V4HFmode
7310 and V8HFmode.
7311 * config/aarch64/arm_neon.h (__INTERLEAVE_LIST): Support float16x4_t,
7312 float16x8_t.
7313 (__aarch64_vdup_lane_f16, __aarch64_vdup_laneq_f16,
7314 __aarch64_vdupq_lane_f16, __aarch64_vdupq_laneq_f16, vbsl_f16,
7315 vbslq_f16, vdup_n_f16, vdupq_n_f16, vdup_lane_f16, vdup_laneq_f16,
7316 vdupq_lane_f16, vdupq_laneq_f16, vduph_lane_f16, vduph_laneq_f16,
7317 vext_f16, vextq_f16, vmov_n_f16, vmovq_n_f16, vrev64_f16, vrev64q_f16,
7318 vtrn1_f16, vtrn1q_f16, vtrn2_f16, vtrn2q_f16, vtrn_f16, vtrnq_f16,
7319 vuzp1_f16, vuzp1q_f16, vuzp2_f16, vuzp2q_f16, vzip1_f16, vzip2q_f16):
7320 New.
7321 (vmov_n_f16): Reimplement using vdup_n_f16.
7322 (vmovq_n_f16): Reimplement using vdupq_n_f16..
7323
7324 2016-07-25 Jiong Wang <jiong.wang@arm.com>
7325
7326 * config/aarch64/aarch64.c (aarch64_add_constant): New parameter
7327 "frame_related_p". Generate CFA annotation when it's necessary.
7328 (aarch64_expand_prologue): Use aarch64_add_constant.
7329 (aarch64_expand_epilogue): Likewise.
7330 (aarch64_output_mi_thunk): Pass "false" when calling
7331 aarch64_add_constant.
7332
7333 2016-07-25 Jiong Wang <jiong.wang@arm.com>
7334
7335 * config/aarch64/aarch64.c (aarch64_add_constant): Optimize instruction
7336 sequences.
7337
7338 2016-07-25 Jiong Wang <jiong.wang@arm.com>
7339
7340 * config/aarch64/aarch64.c (aarch64_add_constant): New parameter "mode".
7341 Use aarch64_internal_mov_immediate instead of aarch64_build_constant.
7342 (aarch64_output_mi_thunk): Pass Pmode when calling aarch64_add_constant.
7343 (aarch64_build_constant): Delete.
7344
7345 2016-07-25 Alexander Monakov <amonakov@ispras.ru>
7346
7347 Revert
7348 2016-07-20 Alexander Monakov <amonakov@ispras.ru>
7349
7350 * config/nvptx/nvptx.c (nvptx_option_override): Do not set
7351 flag_toplevel_reorder.
7352
7353 2016-07-25 Richard Biener <rguenther@suse.de>
7354
7355 * cgraph.c (cgraph_node::verify_node): Compare against builtin
7356 by using DECL_BUILT_IN_CLASS and DECL_FUNCTION_CODE.
7357 * tree-chkp.c (chkp_gimple_call_builtin_p): Likewise.
7358 * tree-streamer.h (streamer_handle_as_builtin_p): Remove.
7359 (streamer_get_builtin_tree): Likewise.
7360 (streamer_write_builtin): Likewise.
7361 * lto-streamer.h (LTO_builtin_decl): Remove.
7362 * lto-streamer-in.c (lto_read_tree_1): Remove assert.
7363 (lto_input_scc): Remove LTO_builtin_decl handling.
7364 (lto_input_tree_1): Liekwise.
7365 * lto-streamer-out.c (lto_output_tree_1): Remove special
7366 handling of builtins.
7367 (DFS::DFS): Likewise.
7368 * tree-streamer-in.c (streamer_get_builtin_tree): Remove.
7369 * tree-streamer-out.c (pack_ts_function_decl_value_fields): Remove
7370 assert.
7371 (streamer_write_builtin): Remove.
7372
7373 2016-07-25 Martin Liska <mliska@suse.cz>
7374
7375 * lto-cgraph.c (input_symtab): Don't call get_working_sets
7376 if flag_auto_profile is set to true.
7377
7378 2016-07-25 Martin Liska <mliska@suse.cz>
7379
7380 PR gcov-profile/71868
7381 * cfgloopanal.c (expected_loop_iterations_unbounded): When we
7382 have a function with multiple latches, count them all.
7383
7384 2016-07-25 Martin Liska <mliska@suse.cz>
7385
7386 * tree-ssa-loop-niter.c (loop_only_exit_p): Release body array.
7387
7388 2016-07-25 Martin Liska <mliska@suse.cz>
7389
7390 PR tree-optimization/71987
7391 * tree-ssa-reassoc.c (maybe_optimize_range_tests): Call get_ops
7392 just for SSA_NAMEs. Fix GNU coding style.
7393
7394 2016-07-25 Martin Liska <mliska@suse.cz>
7395
7396 PR gcov-profile/64874
7397 * gcov-io.h: Update command about file format.
7398 * gcov-iov.c (main): Adapt the numbering scheme.
7399
7400 2016-07-24 Kugan Vivekanandarajah <kuganv@linaro.org>
7401
7402 PR middle-end/66726
7403 * tree-ssa-reassoc.c (optimize_vec_cond_expr): Handle tcc_compare stmt
7404 whose result is used in PHI.
7405 (final_range_test_p): Likewise.
7406 (maybe_optimize_range_tests): Likewise.
7407
7408 2016-07-22 Michael Meissner <meissner@linux.vnet.ibm.com>
7409
7410 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
7411 Reformat two multi-line strings.
7412
7413 2016-07-22 Martin Sebor <msebor@redhat.com>
7414
7415 * doc/extend.texi (Compound Literals): Add '@' missed in last commit.
7416
7417 2016-07-22 Martin Sebor <msebor@redhat.com>
7418
7419 PR c/71560
7420 * doc/extend.texi (Compound Literals): Correct and clarify.
7421 (Cast to Union): Same.
7422
7423 2016-07-22 Kelvin Nilsen <kelvin@gcc.gnu.org>
7424
7425 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
7426 comments to explain why certain error messages make mention of
7427 undocumented options.
7428 (rs6000_invalid_builtin): Change error messages to replace mention
7429 of undocumented options with mention of the -mcpu=power9 option
7430 that enables those undocumented options.
7431 * config/rs6000/rs6000.h (MASK_FLOAT128): New macro.
7432 (RS6000_BTM_FLOAT128): Use the new MASK_FLOAT128 macro in the
7433 definition of this macro to correct an existing error.
7434 * config/rs6000/rs6000.opt: Add the Undocumented qualifier to the
7435 mpower9-fusion, mpower9-vector, mpower9-dform, and mmodulo entries.
7436 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Modify
7437 descriptions of built-in functions so that they depend on
7438 -mcpu=power9 instead of on the corresponding undocumented flags.
7439 * doc/invoke.texi (Option Summary): Remove all mention of newly
7440 undocumented flags.
7441 (IBM RS/6000 and PowerPC Options): Likewise.
7442 * doc/md.texi (Constraints for Particuliar Machines): Remove all
7443 mention of newly undocumented flags.
7444
7445 2016-07-22 Evgeny Stupachenko <evstupac@gmail.com>
7446
7447 * ipa-cp.c (determine_versionability): Do not create constprop clones,
7448 when target_clones attribute is set.
7449
7450 2016-07-22 Bin Cheng <bin.cheng@arm.com>
7451
7452 * common.opt (funsafe-loop-optimizations): Mark ignore.
7453 * doc/invoke.texi (funsafe-loop-optimizations): Remove.
7454 * loop-iv.c (get_simple_loop_desc): Remove unsafe-loop-optimizations
7455 related code.
7456 * tree-ssa-loop-niter.c (finite_loop_p): Ditto.
7457 * config/bfin/bfin.c (bfin_can_use_doloop_p): Ditto.
7458
7459 2016-07-22 Bin Cheng <bin.cheng@arm.com>
7460
7461 * tree-ssa-loop-niter.h (number_of_iterations_exit_assumptions): New
7462 Parameter.
7463 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): New
7464 Parameter.
7465 (number_of_iterations_exit): Warn missed loop optimization for
7466 possible infinite loops.
7467
7468 2016-07-22 Segher Boessenkool <segher@kernel.crashing.org>
7469
7470 PR target/71216
7471 * config/rs6000/rs6000.c (rs6000_file_start): Fix condition for
7472 when to emit a ".machine" pseudo-op.
7473
7474 2016-07-22 Martin Liska <mliska@suse.cz>
7475
7476 PR gcov-profile/69028
7477 PR gcov-profile/62047
7478 * coverage.c (coverage_compute_lineno_checksum): Do not
7479 calculate checksum for fns w/o xloc.file.
7480 (coverage_compute_profile_id): Likewise.
7481
7482 2016-07-22 Georg-Johann Lay <avr@gjlay.de>
7483
7484 * config/avr/avr.c (TARGET_SECONDARY_RELOAD): Remove hook define...
7485 (avr_secondary_reload): ...and implementation.
7486 (avr_adjust_insn_length) [ADJUST_LEN_LPM]: Remove handling.
7487 * config/avr/avr.md (reload_in<mode>): Remove insns.
7488 (adjust_len) [lpm]: Remove insn attribute value.
7489 * config/avr/predicates.md (flash_operand): Remove insn predicate.
7490
7491 2016-07-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
7492
7493 PR middle-end/71876
7494 * builtin-attrs.def (ATTR_RT_NOTHROW_LEAF_LIST): New return twice
7495 attribute.
7496 * builtins.def (BUILT_IN_SETJMP): Use ATTR_RT_NOTHROW_LEAF_LIST here.
7497 * calls.c (special_function_p): Remove the special handling of the
7498 "__builtin_" prefix.
7499
7500 2016-07-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
7501
7502 PR middle-end/71876
7503 * calls.c (gimple_maybe_alloca_call_p): New function. Return true
7504 if STMT may be an alloca call.
7505 (gimple_alloca_call_p, alloca_call_p): Return only true for the
7506 builtin alloca call.
7507 * calls.h (gimple_maybe_alloca_call_p): New function.
7508 * tree-inline.c (inline_forbidden_p_stmt): Use
7509 gimple_maybe_alloca_call_p here.
7510
7511 2016-07-21 David Malcolm <dmalcolm@redhat.com>
7512
7513 * spellcheck-tree.c (best_macro_match::best_macro_match):
7514 Explictly specify the template arguments when invoking the base
7515 class constructor, to help older C++ compilers.
7516
7517 2016-07-21 Jakub Jelinek <jakub@redhat.com>
7518
7519 PR sanitizer/71953
7520 * asan.c (asan_dynamic_init_call): Call asan_init_shadow_ptr_types
7521 before builtin_decl_implicit.
7522
7523 2016-07-21 James Greenhalgh <james.greenhalgh@arm.com>
7524
7525 * optabs.c (emit_condiitonal_move): Short circuit for identical
7526 sources.
7527
7528 2016-07-21 James Greenhalgh <james.greenhalgh@arm.com>
7529
7530 * ifcvt.c (noce_if_info): New fields: speed_p, original_cost,
7531 max_seq_cost. Removed fields: then_cost, else_cost, branch_cost.
7532 (noce_conversion_profitable_p): New.
7533 (noce_try_store_flag_constants): Use it.
7534 (noce_try_addcc): Likewise.
7535 (noce_try_store_flag_mask): Likewise.
7536 (noce_try_cmove): Likewise.
7537 (noce_try_cmove_arith): Likewise.
7538 (bb_valid_for_noce_process_p): Add to the cost parameter rather than
7539 overwriting it.
7540 (noce_convert_multiple_sets): Move cost model to here, from...
7541 (bb_ok_for_noce_convert_multiple_sets) ...here.
7542 (noce_process_if_block): Update calls for above changes.
7543 (noce_find_if_block): Record new noce_if_info parameters.
7544
7545 2016-07-21 James Greenhalgh <james.greenhalgh@arm.com>
7546
7547 * target.def (max_noce_ifcvt_seq_cost): New.
7548 * doc/tm.texi.in (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Document it.
7549 * doc/tm.texi: Regenerate.
7550 * targhooks.h (default_max_noce_ifcvt_seq_cost): New.
7551 * targhooks.c (default_max_noce_ifcvt_seq_cost): New.
7552 * params.def (PARAM_MAX_RTL_IF_CONVERSION_PREDICTABLE_COST): New.
7553 (PARAM_MAX_RTL_IF_CONVERSION_UNPREDICTABLE_COST): Likewise.
7554 * doc/invoke.texi: Document new params.
7555
7556 2016-07-21 Richard Biener <rguenther@suse.de>
7557
7558 PR tree-optimization/71947
7559 * tree-vrp.c (extract_range_from_assert): Singleton symbolic
7560 ranges have useful limit_vr information.
7561
7562 2016-07-21 Richard Biener <rguenther@suse.de>
7563
7564 * function-tests.c (build_trivial_generic_function): Set
7565 BLOCK_SUPERCONTEXT of DECL_INITIAL.
7566 * omp-low.c (create_omp_child_function): Likewise.
7567 (grid_expand_target_grid_body): Likewise.
7568 * cgraphunit.c (init_lowered_empty_function): Likewise.
7569 (cgraph_node::expand_thunk): Likewise.
7570 * tree-parloops.c (create_loop_fn): Likewise.
7571 * ipa.c (cgraph_build_static_cdtor_1): Likewise.
7572
7573 2016-07-21 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
7574
7575 * tree-ssa-strlen.c (strlen_dom_walker::before_dom_children): Fix typo
7576 in comment.
7577
7578 2016-07-21 Georg-Johann Lay <avr@gjlay.de>
7579
7580 * config/avr/avr.md (any_extract, any_shiftrt): New code iterators.
7581 (*insv.extract, *insv.shiftrt, *insv.not-bit.0, *insv.not-bit.7)
7582 (*insv.xor-extract, *insv.xor1-bit.0): New insns.
7583 (adjust_len) [insv_notbit, insv_notbit_0, insv_notbit_7]: New
7584 values for insn attribute.
7585 * config/avr/avr.c (avr_out_insert_notbit): New function.
7586 (avr_adjust_insn_length): Handle ADJUST_LEN_INSV_NOTBIT,
7587 ADJUST_LEN_INSV_NOTBIT_0/_7.
7588 * config/avr/avr-protos.h (avr_out_insert_notbit): New proto.
7589
7590 2016-07-21 Bin Cheng <bin.cheng@arm.com>
7591
7592 * tree-chrec.c (convert_affine_scev): New parameter. Pass new arg.
7593 (chrec_convert_1, chrec_convert): Ditto.
7594 * tree-chrec.h (chrec_convert, convert_affine_scev): New parameter.
7595 * tree-scalar-evolution.c (interpret_rhs_expr): Pass new arg.
7596 * tree-vrp.c (adjust_range_with_scev): Ditto.
7597 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): Ditto.
7598 (scev_var_range_cant_overflow): New function.
7599 (scev_probably_wraps_p): New parameter. Call above function.
7600 * tree-ssa-loop-niter.h (scev_probably_wraps_p): New parameter.
7601
7602 2016-07-21 Bin Cheng <bin.cheng@arm.com>
7603
7604 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up
7605 by removing computation of may_be_zero.
7606
7607 2016-07-21 Jakub Jelinek <jakub@redhat.com>
7608
7609 * tree-object-size.c (unknown): Use HOST_WIDE_INT_M1U instead of -1.
7610
7611 2016-07-21 Andrew Sutton <andrew.n.sutton@gmail.com>
7612
7613 Improving concepts performance and diagnostics.
7614 * timevar.def (TV_CONSTRAINT_SAT, TV_CONSTRAINT_SUB): New time vars
7615 for constraint satisfaction and subsumption.
7616 * timevar.h (auto_timevar): New constructor that matches the push/pop
7617 pattern of usage in pt.c.
7618
7619 2016-07-20 Uros Bizjak <ubizjak@gmail.com>
7620
7621 * hwint.h (HOST_WIDE_INT_0): New define.
7622 (HOST_WIDE_INT_0U): Ditto.
7623 * double-int.c: Use HOST_WIDE_INT_0 instead of (HOST_WIDE_INT) 0.
7624 * dse.c: Use HOST_WIDE_INT_0U instead of (unsigned HOST_WIDE_INT) 0.
7625 * simplify-rtx.c: Ditto.
7626 * tree-object-size.c: Ditto.
7627
7628 2016-07-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7629
7630 * config/s390/s390.c (s390_encode_section_info): Remove mode size
7631 check.
7632
7633 2016-07-20 Uros Bizjak <ubizjak@gmail.com>
7634
7635 * cse.c: Use HOST_WIDE_INT_M1 instead of ~(HOST_WIDE_INT) 0.
7636 * combine.c: Use HOST_WIDE_INT_M1U instead of
7637 ~(unsigned HOST_WIDE_INT) 0.
7638 * double-int.h: Ditto.
7639 * dse.c: Ditto.
7640 * dwarf2asm.c:Ditto.
7641 * expmed.c: Ditto.
7642 * genmodes.c: Ditto.
7643 * match.pd: Ditto.
7644 * read-rtl.c: Ditto.
7645 * tree-ssa-loop-ivopts.c: Ditto.
7646 * tree-ssa-loop-prefetch.c: Ditto.
7647 * tree-vect-generic.c: Ditto.
7648 * tree-vect-patterns.c: Ditto.
7649 * tree.c: Ditto.
7650
7651 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
7652
7653 * gcc/config/avr.c (avr_legitimize_address) [AVR_TINY]: Force
7654 constant addresses outside [0,0xc0] into a register.
7655 (avr_out_movhi_r_mr_reg_no_disp_tiny): Pass insn. And handle
7656 cases where the base address register is unused after.
7657 (avr_out_movhi_r_mr_reg_disp_tiny): Same.
7658 (avr_out_movhi_mr_r_reg_disp_tiny): Same.
7659 (avr_out_store_psi_reg_disp_tiny): Same.
7660
7661 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
7662
7663 Implement attribute progmem on reduced Tiny cores by adding
7664 flash offset 0x4000 to respective symbols.
7665
7666 PR target/71948
7667 * doc/extend.texi (AVR Variable Attributes) [progmem]: Add
7668 documentation how it works on reduced Tiny cores.
7669 (AVR Named Address Spaces): No support for reduced Tiny.
7670 * config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_PM): New macro.
7671 (avr_address_tiny_pm_p): New static function.
7672 (avr_print_operand_address) [AVR_TINY]: Add AVR_TINY_PM_OFFSET
7673 if the address is in progmem.
7674 (avr_assemble_integer): Same.
7675 (avr_encode_section_info) [AVR_TINY]: Set AVR_SYMBOL_FLAG_TINY_PM
7676 for symbol_ref in progmem.
7677 * config/avr/avr.h (AVR_TINY_PM_OFFSET): New macro.
7678 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it instead of
7679 magic 0x4000 when built-in def'ing __AVR_TINY_PM_BASE_ADDRESS__.
7680
7681 2016-07-20 Patrick Palka <ppalka@gcc.gnu.org>
7682
7683 * configure.ac (thin_archive_support): New variable. AC_SUBST it.
7684 * configure: Regenerate.
7685 * Makefile.in (THIN_ARCHIVE_SUPPORT): New variable.
7686 (USE_THIN_ARCHIVES): New variable.
7687 (libbackend.a): If USE_THIN_ARCHIVES then pass T to ar to build
7688 this archive as a thin archive.
7689
7690 2016-07-20 David Malcolm <dmalcolm@redhat.com>
7691
7692 * diagnostic-show-locus.c (diagnostic_show_locus): If this is the
7693 same location as last time, don't skip if we have fix-it hints.
7694 Clarify the skipping logic by converting it from one "if" clause
7695 to repeated "if" clauses.
7696 * spellcheck-tree.c: Include "cpplib.h".
7697 (find_closest_macro_cpp_cb): Move here from c/c-decl.c.
7698 (best_macro_match::best_macro_match): New constructor.
7699 * spellcheck-tree.h (struct edit_distance_traits<cpp_hashnode *>):
7700 Move here from c/c-decl.c.
7701 (class best_macro_match): Move here from c/c-decl.c, converting
7702 from a typedef to a subclass, gaining a ctor.
7703
7704 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
7705
7706 * config/avr/avr-protos.h (avr_addr_space_supported_p): New prototype.
7707 * config/avr/avr.c (TARGET_ADDR_SPACE_DIAGNOSE_USAGE): New hook
7708 define...
7709 (avr_addr_space_diagnose_usage): ...and implementation.
7710 (avr_addr_space_supported_p): New function.
7711 (avr_nonconst_pointer_addrspace, avr_pgm_check_var_decl): Only
7712 report bad address space usage if that space is supported.
7713 (avr_insert_attributes): Same. No more complain about unsupported
7714 address spaces.
7715 * config/avr/avr-c.c (tm_p.h): Include it.
7716 (avr_cpu_cpp_builtins): Only define addr-space related built-in
7717 macro if avr_addr_space_supported_p.
7718
7719 2016-07-20 Alexander Monakov <amonakov@ispras.ru>
7720
7721 * config/nvptx/nvptx.c (nvptx_option_override): Do not set
7722 flag_toplevel_reorder.
7723
7724 2016-07-20 David Malcolm <dmalcolm@redhat.com>
7725
7726 * gcc-rich-location.c
7727 (gcc_rich_location::add_fixit_misspelled_id): New overload, taking
7728 a const char *.
7729 * gcc-rich-location.h
7730 (gcc_rich_location::add_fixit_misspelled_id): Likewise.
7731
7732 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
7733
7734 * target.def (addr_space): Add new diagnose_usage to hook vector.
7735 * targhooks.c (default_addr_space_diagnose_usage): Add default
7736 implementation and...
7737 * targhooks.h (default_addr_space_diagnose_usage): ... its prototype.
7738 * c/c-parser.c (c_lex_one_token) [CPP_NAME]: If the token
7739 is some address space, call targetm.addr_space.diagnose_usage.
7740 * doc/tm.texi.in (Named Address Spaces): Add anchor for
7741 TARGET_ADDR_SPACE_DIAGNOSE_USAGE documentation.
7742 * doc/tm.texi: Regenerate.
7743
7744 2016-07-20 Martin Liska <mliska@suse.cz>
7745
7746 PR middle-end/71898
7747 * graphite-isl-ast-to-gimple.c (later_of_the_two):
7748 Properly handly PHI stmts.
7749
7750 2016-07-20 Bin Cheng <bin.cheng@arm.com>
7751
7752 PR tree-optimization/71503
7753 PR tree-optimization/71683
7754 * tree-if-conv.c (gen_phi_arg_condition): Record true predicate
7755 and break.
7756
7757 2016-07-20 Martin Liska <mliska@suse.cz>
7758
7759 * doc/invoke.texi (-fipa-ra): Document when the option is
7760 disabled. Fix a typo.
7761
7762 2016-07-20 Martin Liska <mliska@suse.cz>
7763
7764 * Makefile.in: Include fibonacci_heap.c
7765 * fibonacci_heap.c: New file.
7766 * fibonacci_heap.h (fibonacci_heap::insert): Use insert_node.
7767 (fibonacci_heap::union_with): Fix deletion of the second heap.
7768 * selftest-run-tests.c (selftest::run_tests): Incorporate
7769 fibonacci heap tests.
7770 * selftest.h: Declare fibonacci_heap_c_tests.
7771
7772 2016-07-20 Martin Liska <mliska@suse.cz>
7773
7774 * selftest-run-tests.c (selftest::run_tests): New function.
7775 * selftest.h (sreal_c_tests): Declare.
7776 * sreal.c (sreal_verify_basics): New function.
7777 (verify_aritmetics): Likewise.
7778 (sreal_verify_arithmetics): Likewise.
7779 (verify_shifting): Likewise.
7780 (sreal_verify_shifting): Likewise.
7781 (void sreal_c_tests): Likewise.
7782
7783 2016-07-19 Jakub Jelinek <jakub@redhat.com>
7784
7785 PR rtl-optimization/71916
7786 * cfgrtl.c (contains_no_active_insn_p): Return false also for
7787 bb which have a single succ fake edge.
7788
7789 2016-07-19 Aldy Hernandez <aldyh@redhat.com>
7790
7791 PR debug/71855
7792 * dwarf2out.c (gen_subprogram_die): Only call
7793 gen_unspecified_parameters_die while dumping early dwarf.
7794
7795 2016-07-19 Jakub Jelinek <jakub@redhat.com>
7796
7797 PR middle-end/71874
7798 * gimple-fold.c (fold_builtin_memory_op): Use
7799 get_addr_base_and_unit_offset instead of get_ref_base_and_extent.
7800
7801 2016-07-19 Uros Bizjak <ubizjak@gmail.com>
7802
7803 * builtins.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1,
7804 HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1,
7805 HOST_WIDE_INT_M1 instead of (HOST_WIDE_INT) -1 and
7806 HOST_WIDE_INT_M1U instead of (unsigned HOST_WIDE_INT) -1.
7807 * combine.c: Ditto.
7808 * cse.c: Ditto.
7809 * dojump.c: Ditto.
7810 * double-int.c: Ditto.
7811 * dse.c: Ditto.
7812 * dwarf2out.c: Ditto.
7813 * expmed.c: Ditto.
7814 * expr.c: Ditto.
7815 * fold-const.c: Ditto.
7816 * function.c: Ditto.
7817 * fwprop.c: Ditto.
7818 * genmodes.c: Ditto.
7819 * hwint.c: Ditto.
7820 * hwint.h: Ditto.
7821 * ifcvt.c: Ditto.
7822 * loop-doloop.c: Ditto.
7823 * loop-invariant.c: Ditto.
7824 * loop-iv.c: Ditto.
7825 * match.pd: Ditto.
7826 * optabs.c: Ditto.
7827 * real.c: Ditto.
7828 * reload.c: Ditto.
7829 * rtlanal.c: Ditto.
7830 * simplify-rtx.c: Ditto.
7831 * stor-layout.c: Ditto.
7832 * toplev.c: Ditto.
7833 * tree-ssa-loop-ivopts.c: Ditto.
7834 * tree-vect-generic.c: Ditto.
7835 * tree-vect-patterns.c: Ditto.
7836 * tree.c: Ditto.
7837 * tree.h: Ditto.
7838 * ubsan.c: Ditto.
7839 * varasm.c: Ditto.
7840 * wide-int-print.cc: Ditto.
7841 * wide-int.cc: Ditto.
7842 * wide-int.h: Ditto.
7843
7844 2016-07-19 David Malcolm <dmalcolm@redhat.com>
7845
7846 * selftest.c (selftest::assert_streq): Handle NULL values of
7847 val_actual and val_expected.
7848
7849 2016-07-19 Martin Jambor <mjambor@suse.cz>
7850
7851 PR fortran/71688
7852 * trans-decl.c (gfc_generate_function_code): Use cgraph_get_create_node
7853 rather than cgraph_create_node to get a call graph node.
7854
7855 2016-07-19 Richard Biener <rguenther@suse.de>
7856
7857 * gimple-fold.c (get_base_constructor): Add VIEW_CONVERT case,
7858 handle all tcc_constant bases and valueize SSA names.
7859 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Handle
7860 tcc_constant bases.
7861
7862 2016-07-19 David Malcolm <dmalcolm@redhat.com>
7863
7864 * function-tests.c (selftest::verify_three_block_rtl_cfg): Verify
7865 the flags of the exit block and bb2, not just the entry block.
7866
7867 2016-07-19 Richard Biener <rguenther@suse.de>
7868
7869 PR tree-optimization/71901
7870 * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
7871 align member, group stuff with the bitfield.
7872 (vn_ref_op_align_unit): New inline.
7873 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): For ARRAY_REFs
7874 record element alignment and operand 3 unchanged.
7875 (ao_ref_init_from_vn_reference): Adjust.
7876 (valueize_refs_1): Likewise.
7877 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
7878
7879 2016-07-19 Richard Biener <rguenther@suse.de>
7880
7881 PR tree-optimization/71908
7882 * tree-ssa-structalias.c (get_constraint_for_component_ref): Handle
7883 symbolic constants in a more reliable way.
7884
7885 2016-07-19 Ilya Enkovich <ilya.enkovich@intel.com>
7886
7887 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Update
7888 comment.
7889 (vect_update_inits_of_drs): Likewise.
7890 (vect_create_cond_for_alias_checks): Likewise.
7891 * tree-vect-loop.c (vect_get_known_peeling_cost): Likewise.
7892
7893 2016-07-19 Richard Biener <rguenther@suse.de>
7894
7895 PR lto/71907
7896 * lto-streamer-out.c (DFS::DFS_write_tree_body): For blocks
7897 with an abstract origin that is not an inlined function outer
7898 scope add a self-reference as abstract origin.
7899 * tree-streamer-out.c (write_ts_block_tree_pointers): Likewise.
7900
7901 2016-07-18 Michael Meissner <meissner@linux.vnet.ibm.com>
7902
7903 PR target/71493
7904 * config/rs6000/rs6000.c (rs6000_function_value): Fix
7905 unintentional System V.4 structure return breakage for structures
7906 with a single floating point element.
7907
7908 2016-07-18 Yuri Rumyantsev <ysrumyan@gmail.com>
7909
7910 PR tree-optimization/71734
7911 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Add REF_LOOP argument which
7912 contains REF, use it to check safelen, assume that safelen value
7913 must be greater 1, fix style.
7914 (ref_indep_loop_p_2): Add REF_LOOP argument.
7915 (ref_indep_loop_p): Pass LOOP as additional argument to
7916 ref_indep_loop_p_2.
7917
7918 2016-07-18 Dominik Vogt <vogt@linux.vnet.ibm.com>
7919
7920 * cfgexpand.c (expand_stack_vars): Implement synamic stack space
7921 allocation in the prologue.
7922 * explow.c (get_dynamic_stack_base): New function to return an address
7923 expression for the dynamic stack base.
7924 (get_dynamic_stack_size): New function to do the required dynamic stack
7925 space size calculations.
7926 (allocate_dynamic_stack_space): Use new functions.
7927 (align_dynamic_address): Move some code from
7928 allocate_dynamic_stack_space to new function.
7929 * explow.h (get_dynamic_stack_base, get_dynamic_stack_size): Export.
7930
7931 2016-07-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7932
7933 * config/s390/s390.c (s390_encode_section_info): Always set
7934 notaligned marker if mode size is 0 or no MEM_ALIGN info could be
7935 found.
7936
7937 2016-07-18 Richard Biener <rguenther@suse.de>
7938
7939 PR tree-optimization/71893
7940 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Compensate
7941 for sizetype cast added by array_ref_element_size.
7942 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
7943
7944 2016-07-16 John David Anglin <danglin@gcc.gnu.org>
7945
7946 * config/pa/pa.c (hppa_profile_hook): Allocate stack space for
7947 register parameters. Remove code to initialize argument pointer
7948 on TARGET_64BIT. Optimize call to _mcount when it can be reached
7949 using a pc-relative branch. Cleanup conditional code.
7950 * config/pa/pa.md (call_mcount): New expander.
7951 (call_mcount_nonpic): New insn.
7952 (call_mcount_pic): New insn and split.
7953 (call_mcount_pic_post_reload): New insn.
7954 (call_mcount_64bit): New insn and split.
7955 (call_mcount_64bit_post_reload): New insn.
7956
7957 2016-07-15 Georg-Johann Lay <avr@gjlay.de>
7958
7959 * config/avr/predicates.md (const_m255_to_m1_operand): New.
7960 * config/avr/constraints.md (Cn8, Ca1, Co1, Yx2): New constraints.
7961 * config/avr/avr.md (add<mode>3) <ALL1>: Fix set_vzn for +/-2.
7962 (*cmphi.zero-extend.0, *cmphi.zero-extend.1)
7963 (*usum_widenqihi3, *udiff_widenqihi3)
7964 (*addhi3_zero_extend.const): New combiner insns.
7965 (andqi3, iorqi3): Provide "l" (NO_LD_REGS) alternative if
7966 just 1 bit is affected.
7967 * config/avr/avr.c (avr_out_bitop) <QImode>: Don't access xop[3].
7968 (avr_out_compare) [EQ,NE]: Tweak comparing d-regs against -1.
7969
7970 2016-07-15 Cesar Philippidis <cesar@codesourcery.com>
7971
7972 * omp-low.c (lower_omp_target): Mark data clauses with
7973 GOMP_MAP_FORCE_{PRESENT,TO,FROM,TOFROM} as potentially having
7974 zero-length subarrays.
7975
7976 2016-07-15 Richard Biener <rguenther@suse.de>
7977
7978 PR tree-optimization/71881
7979 * tree-loop-distribution.c (destroy_loop): Remove blocks in
7980 reverse DOM order to make debug temp generation happy.
7981
7982 2016-07-15 Richard Biener <rguenther@suse.de>
7983
7984 PR tree-optimization/71887
7985 * tree-ssa-phiopt.c (absorbing_element_p): Add rhs arg and
7986 verify it is not zero for division / modulo handling.
7987 (value_replacement): Adjust.
7988
7989 2016-07-15 Virendra Pathak <virendra.pathak@broadcom.com>
7990 Julian Brown <julian@codesourcery.com>
7991
7992 * config/aarch64/aarch64-cores.def: Update vulcan COSTS.
7993 * config/aarch64/aarch64-cost-tables.h
7994 (vulcan_extra_costs): New variable.
7995 * config/aarch64/aarch64.c
7996 (vulcan_addrcost_table): Likewise.
7997 (vulcan_regmove_cost): Likewise.
7998 (vulcan_vector_cost): Likewise.
7999 (vulcan_branch_cost): Likewise.
8000 (vulcan_tunings): Likewise.
8001
8002 2016-07-15 Alexander Monakov <amonakov@ispras.ru>
8003
8004 * cgraphunit.c (cgraph_order_sort_kind): New entry ORDER_VAR_UNDEF.
8005 (output_in_order): Loop over undefined variables too. Output them
8006 via assemble_undefined_decl. Skip variables that correspond to hard
8007 registers or have value-exprs.
8008 * varpool.c (symbol_table::output_variables): Handle undefined
8009 variables together with defined ones.
8010
8011 2016-07-15 Richard Biener <rguenther@suse.de>
8012
8013 * tree-ssa-pre.c (get_representative_for): Make sure to return
8014 the value number of SSA names.
8015 (phi_translate_1): get_representative_for cannot return NULL.
8016 (do_pre_regular_insertion): Remove redundant call to
8017 fully_constant_expression.
8018 (do_pre_partial_partial_insertion): Likewise.
8019
8020 2016-07-15 Bin Cheng <bin.cheng@arm.com>
8021
8022 * tree-scalar-evolution.c (simple_iv_with_niters): New funcion.
8023 (derive_simple_iv_with_niters): New function.
8024 (simple_iv): Rewrite using simple_iv_with_niters.
8025 * tree-scalar-evolution.h (simple_iv_with_niters): New decl.
8026 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): New
8027 function.
8028 (number_of_iterations_exit): Rewrite using above function.
8029 * tree-ssa-loop-niter.h (number_of_iterations_exit_assumptions): New
8030 Decl.
8031
8032 2016-07-15 Richard Biener <rguenther@suse.de>
8033
8034 * config/i386/i386.c (ix86_builtin_vectorization_cost): Adjust
8035 vec_construct cost.
8036
8037 2016-07-14 Jakub Jelinek <jakub@redhat.com>
8038
8039 PR tree-optimization/71872
8040 * tree-data-ref.c (get_references_in_stmt): Ignore references
8041 with is_gimple_constant get_base_address.
8042
8043 2016-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
8044
8045 * config/arm/arm.h (TARGET_HAVE_LDACQ): Enable for ARMv8-M Mainline.
8046 (TARGET_HAVE_LDACQD): New macro.
8047 * config/arm/sync.md (atomic_loaddi): Use TARGET_HAVE_LDACQD rather
8048 than TARGET_HAVE_LDACQ.
8049 (arm_load_acquire_exclusivedi): Likewise.
8050 (arm_store_release_exclusivedi): Likewise.
8051
8052 2016-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
8053
8054 PR rtl-optimization/71878
8055 * lra-constraints.c (match_reload): Pass information about other
8056 output operands. Create new unique register value if matching input
8057 operand shares same register value as output operand being considered.
8058 (curr_insn_transform): Record output operands already processed.
8059
8060 2016-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8061
8062 PR target/65951
8063 PR tree-optimization/70923
8064 * tree-vect-patterns.c: Include mult-synthesis.h.
8065 (target_supports_mult_synth_alg): New function.
8066 (synth_lshift_by_additions): Likewise.
8067 (apply_binop_and_append_stmt): Likewise.
8068 (vect_synth_mult_by_constant): Likewise.
8069 (target_has_vecop_for_code): Likewise.
8070 (vect_recog_mult_pattern): Use above functions to synthesize vector
8071 multiplication by integer constants.
8072
8073 2016-07-14 Alan Modra <amodra@gmail.com>
8074
8075 * gcc/config/rs6000/altivec.md (altivec_mov<mode>): Disparage
8076 gpr alternatives. Correct '*' placement on Y,r alternative.
8077 Add '*' on operand 1 of r,r alternative.
8078
8079 2016-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8080
8081 * expmed.c (mult_variant, choose_mult_variant): Move declaration to...
8082 * expmed.h: ... Here.
8083
8084 2016-07-14 Jan Hubicka <hubicka@ucw.cz>
8085
8086 * gimple.h (stmt_can_terminate_bb_p): New function.
8087 * tree-cfg.c (need_fake_edge_p): Rename to ...
8088 (stmt_can_terminate_bb_p): ... this; return true if stmt can
8089 throw external; handle const and pure calls.
8090 * tree-ssa-loop-niter.c (loop_only_exit_p): Use it.
8091
8092 2016-07-14 Richard Biener <rguenther@suse.de>
8093
8094 PR tree-optimization/71866
8095 * tree-ssa-pre.c (get_constant_for_value_id): Remove.
8096 (do_hoist_insertion): Avoid endless recursion when we
8097 didn't insert anything because we managed to simplify
8098 things down to a constant or SSA name.
8099 (fully_constant_expression): Re-write in terms of ...
8100 * tree-ssa-sccvn.h (vn_nary_simplify): ... this. Declare.
8101 * tree-ssa-sccvn.c (vn_nary_simplify): New wrapper around
8102 vn_nary_build_or_lookup_1.
8103 (vn_nary_build_or_lookup_1): Added flag and renamed from ...
8104 (vn_nary_build_or_lookup): ... this which now wraps it.
8105
8106 2016-07-14 Alan Modra <amodra@gmail.com>
8107
8108 PR target/71733
8109 * config/rs6000/rs6000.c (rs6000_option_override_internal): Deal
8110 with p9_vector override before power9-dform override.
8111
8112 2016-07-13 Andi Kleen <ak@linux.intel.com>
8113
8114 * value-prof.c (gimple_value_profile_transformations): Don't run
8115 when auto_profile is on.
8116
8117 2016-07-13 Andi Kleen <ak@linux.intel.com>
8118
8119 * auto-profile.c (update_inlined_ind_target,
8120 afdo_indirect_call): Print information to dump file.
8121
8122 2016-07-13 Andrew Burgess <andrew.burgess@embecosm.com>
8123
8124 * genrecog.c (special_predicate_operand_p): New function.
8125 (predicate_name): Move function.
8126 (validate_pattern): Don't warn about missing mode for all
8127 define_special_predicate predicates.
8128
8129 2016-07-13 Bin Cheng <bin.cheng@arm.com>
8130
8131 * tree-vect-data-refs.c (vect_no_alias_p): New function.
8132 (vect_prune_runtime_alias_test_list): Call vect_no_alias_p to
8133 resolve alias checks which are known at compilation time.
8134 Truncate vector LOOP_VINFO_MAY_ALIAS_DDRS(loop_vinfo) if all
8135 alias checks are resolved. Move dump info for too many runtime
8136 alias checks to here...
8137 * tree-vect-loop.c (vect_analyze_loop_2): ...From here.
8138
8139 2016-07-13 Richard Biener <rguenther@suse.de>
8140
8141 PR tree-optimization/24574
8142 * tree-ssa-phiopt.c (absorbing_element_p): Pass in argument
8143 position and add shift, rotate, divison and modulo support
8144 for left zero.
8145 (value_replacement): Pass in argument position to absorbing_element_p.
8146
8147 2016-07-13 Ilya Enkovich <ilya.enkovich@intel.com>
8148
8149 PR ipa/71633
8150 * ipa-inline-transform.c (inline_call): Support
8151 instrumented thunks.
8152
8153 2016-07-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
8154
8155 * config/arm/arm.h (TARGET_HAVE_CBZ): Define.
8156 (TARGET_IDIV): Set for all Thumb targets provided they have hardware
8157 divide feature.
8158 * config/arm/arm.md (divsi3): New unpredicable alternative for ARMv8-M
8159 Baseline. Make initial alternative TARGET_32BIT only.
8160 (udivsi3): Likewise.
8161 * config/arm/thumb1.md (thumb1_cbz): New define_insn.
8162 * doc/sourcebuild.texi (arm_thumb1_cbz_ok): Document new effective
8163 target.
8164
8165 2016-07-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
8166
8167 * config/arm/arm.h (TARGET_HAVE_MOVT): Include ARMv8-M as having MOVT.
8168 * config/arm/arm.c (arm_arch_name): (const_ok_for_op): Check MOVT/MOVW
8169 availability with TARGET_HAVE_MOVT.
8170 (thumb_legitimate_constant_p): Strip the high part of a label_ref.
8171 (thumb1_rtx_costs): Also return 0 if setting a half word constant and
8172 MOVW is available and replace (unsigned HOST_WIDE_INT) INTVAL by
8173 UINTVAL.
8174 (thumb1_size_rtx_costs): Make set of half word constant also cost 1
8175 extra instruction if MOVW is available. Use a cost variable
8176 incremented by COSTS_N_INSNS (1) when the condition match rather than
8177 returning an arithmetic expression based on COSTS_N_INSNS. Make
8178 constant with bottom half word zero cost 2 instruction if MOVW is
8179 available.
8180 * config/arm/arm.md (define_attr "arch"): Add v8mb.
8181 (define_attr "arch_enabled"): Set to yes if arch value is v8mb and
8182 target is ARMv8-M Baseline.
8183 (arm_movt): New unpredicable alternative for ARMv8-M Baseline.
8184 (arm_movtas_ze): Likewise.
8185 * config/arm/thumb1.md (thumb1_movdi_insn): Add ARMv8-M Baseline only
8186 alternative for constants satisfying j constraint.
8187 (thumb1_movsi_insn): Likewise.
8188 (movsi splitter for K alternative): Tighten condition to not trigger
8189 if movt is available and j constraint is satisfied.
8190 (Pe immediate splitter): Likewise.
8191 (thumb1_movhi_insn): Add ARMv8-M Baseline only alternative for
8192 constant fitting in an halfword to use MOVW.
8193 * doc/sourcebuild.texi (arm_thumb1_movt_ok): Document new ARM
8194 effective target.
8195
8196 2016-07-13 Richard Biener <rguenther@suse.de>
8197
8198 PR middle-end/71104
8199 * gimplify.c (gimplify_modify_expr): Gimplify the RHS before
8200 gimplifying the LHS. Make sure to gimplify a returning twice
8201 call LHS without using SSA names.
8202
8203 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8204
8205 * tree-data-ref.c (find_data_references_in_stmt): Remove
8206 unnecessary call to vec::release.
8207 (graphite_find_data_references_in_stmt): Likewise.
8208 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): Likewise.
8209 * tree-vect-stmts.c (vectorizable_condition): Likewise.
8210
8211 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8212
8213 * cfgexpand.c (expand_used_vars): Make the type of a local
8214 variable auto_vec.
8215 * genmatch.c (lower_for): Likewise.
8216 * haifa-sched.c (haifa_sched_init): Likewise.
8217 (add_to_speculative_block): Likewise.
8218 (create_check_block_twin): Likewise.
8219 * predict.c (handle_missing_profiles): Likewise.
8220 * tree-data-ref.c (loop_nest_has_data_refs): Likewise.
8221 * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Likewise.
8222 * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
8223 Likewise.
8224 (maybe_lower_iteration_bound): Likewise.
8225 * tree-ssa-sccvn.c (DFS): Likewise.
8226 * tree-stdarg.c (reachable_at_most_once): Likewise.
8227 * tree-vect-stmts.c (vectorizable_conversion): Likewise.
8228 (vectorizable_store): Likewise.
8229
8230 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8231
8232 * tree-ssa-sccvn.c (sccvn_dom_walker::~sccvn_dom_walker): remove.
8233 (sccvn_dom_walker): make cond_stack an auto_vec.
8234
8235 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8236
8237 * ree.c (struct ext_state): Make type of members auto_vec.
8238 (find_and_remove_re): Adjust.
8239
8240 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8241
8242 * cfgexpand.c (struct stack_vars_data): Make type of fields
8243 auto_vec.
8244 (expand_used_vars): Adjust.
8245
8246 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8247
8248 * ipa.c (record_cdtor_fn): Adjust.
8249 (build_cdtor_fns): Likewise.
8250 (ipa_cdtor_merge): Make static_ctors and static_dtors local
8251 variables.
8252
8253 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8254
8255 * genextract.c (struct accum_extract): Add constructor and make
8256 members auto_vec.
8257 (gen_insn): Adjust.
8258
8259 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8260
8261 * tree.c (struct free_lang_data_d): Add constructor and change
8262 types of members to ones that automatically manage resources.
8263 (fld_worklist_push): Adjust.
8264 (find_decls_types): Likewise.
8265 (find_decls_types_in_eh_region): Likewise.
8266 (free_lang_data_in_cgraph): Stop manually creating and
8267 destroying members of free_lang_data_d.
8268
8269 2016-07-13 Uros Bizjak <ubizjak@gmail.com>
8270
8271 PR rtl-optimization/68961
8272 * config/i386/sse.md (movsd/movhpd to movupd peephole2s): Add new
8273 peephole variant. Use sse_reg_operand predicates.
8274
8275 2016-07-12 Uros Bizjak <ubizjak@gmail.com>
8276
8277 * config/i386/predicates.md (x86_64_immediate_operand)
8278 <case CONST_INT>: Remove unneeded truncation to DImode.
8279 <case CONST>: Ditto.
8280 (x86_64_zext_immediate_operand) <case CONST>: Ditto.
8281
8282 2016-07-12 Michael Meissner <meissner@linux.vnet.ibm.com>
8283
8284 PR target/71805
8285 * config/rs6000/altivec.md (altivec_vperm_<mode>_internal):
8286 The xxperm and xxpermr instructions require that the 2nd input
8287 operand overlap with the output operand, and not the 1st.
8288 (altivec_vperm_v8hiv16qi): Likewise.
8289 (altivec_vperm_<mode>_uns_internal): Likewise.
8290 (altivec_vpermr_<mode>_internal): Likewise.
8291 (vperm_v8hiv4si): Likewise.
8292 (vperm_v16qiv8hi): Likewise.
8293
8294 2016-07-12 Nathan Sidwell <nathan@acm.org>
8295
8296 * config/arm/arm.c (arm_option_override): Set MASK_SINGLE_PIC_BASE
8297 when -mno-pic-data-is-text-relative is in effect, by default.
8298 * doc/invoke.texi (mpic-data-is-text-relative): Document new
8299 behavior and clarify.
8300
8301 2016-07-12 Martin Liska <mliska@suse.cz>
8302
8303 * params.def: Add avg-loop niter.
8304 * tree-ssa-loop-ivopts.c (avg_loop_niter): Use the param.
8305 * cfgloopanal.c (expected_loop_iterations_unbounded): Likewise.
8306 * doc/invoke.texi: Document the new parameter.
8307
8308 2016-07-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8309
8310 PR middle-end/71700
8311 * expr.c (store_constructor): Mask sign-extended bits when widening
8312 sub-word constructor element at the start of a word.
8313
8314 2016-07-12 Martin Liska <mliska@suse.cz>
8315
8316 * Makefile.in: Append rule for params-options.h.
8317 * params-options.h: New file.
8318
8319 2016-07-12 Martin Liska <mliska@suse.cz>
8320
8321 * ira-build.c (mark_loops_for_removal): Properly iterate
8322 loops.
8323
8324 2016-07-12 Steven Bosscher <steven@gcc.gnu.org>
8325 Richard Biener <rguenther@suse.de>
8326
8327 PR tree-optimization/23286
8328 PR tree-optimization/70159
8329 * doc/invoke.texi: Document -fcode-hoisting.
8330 * common.opt (fcode-hoisting): New flag.
8331 * opts.c (default_options_table): Enable -fcode-hoisting at -O2+.
8332 * tree-ssa-pre.c (pre_stats): Add hoist_insert.
8333 (do_regular_insertion): Rename to ...
8334 (do_pre_regular_insertion): ... this and amend general comments
8335 on insertion strathegy.
8336 (do_partial_partial_insertion): Rename to ...
8337 (do_pre_partial_partial_insertion): ... this.
8338 (do_hoist_insertion): New function.
8339 (insert_aux): Take flags on whether to do PRE and/or hoist insertion
8340 and call do_hoist_insertion properly.
8341 (insert): Adjust.
8342 (pass_pre::gate): Enable also if -fcode-hoisting is enabled.
8343 (pass_pre::execute): Register hoist_insert stats.
8344
8345 2016-07-12 Jakub Jelinek <jakub@redhat.com>
8346
8347 PR middle-end/71716
8348 * gimple-fold.c (optimize_atomic_compare_exchange_p): Return false
8349 for SCALAR_FLOAT_TYPE_P type of expected var, or if TYPE_PRECISION
8350 is different from mode's bitsize. Small cleanup.
8351
8352 2016-07-12 Richard Biener <rguenther@suse.de>
8353
8354 PR rtl-optimization/68961
8355 * fwprop.c (propagate_rtx): Allow SUBREGs of VEC_CONCAT and CONCAT
8356 to simplify to a non-constant.
8357
8358 2016-07-11 Jakub Jelinek <jakub@redhat.com>
8359
8360 PR middle-end/71758
8361 * omp-low.c (expand_omp_target): Gimplify device.
8362
8363 PR tree-optimization/71823
8364 * tree-vect-stmts.c (vectorizable_operation): Use vect_get_vec_defs
8365 to get vec_oprnds2 from op2.
8366
8367 2016-07-11 Uros Bizjak <ubizjak@gmail.com>
8368
8369 * config/i386/predicates.md (x86_64_immediate_operand) <case CONST>:
8370 Hoist common subexpressions.
8371 (x86_64_zext_immediate_operand) <case CONST>: Ditto.
8372
8373 2016-07-11 Pat Haugen <pthaugen@us.ibm.com>
8374
8375 PR target/71800
8376 * config/rs6000/rs6000.md (stfiwx): Change constraint to 'wu' to
8377 prevent generation of 'stxsiwx' on pre Power8 hardware.
8378
8379 2016-07-11 David Malcolm <dmalcolm@redhat.com>
8380
8381 * input.c: Include cpplib.h.
8382 (selftest::temp_source_file): New class.
8383 (selftest::temp_source_file::temp_source_file): New ctor.
8384 (selftest::temp_source_file::~temp_source_file): New dtor.
8385 (selftest::should_have_column_data_p): New function.
8386 (selftest::test_should_have_column_data_p): New function.
8387 (selftest::temp_line_table): New class.
8388 (selftest::temp_line_table::temp_line_table): New ctor.
8389 (selftest::temp_line_table::~temp_line_table): New dtor.
8390 (selftest::test_accessing_ordinary_linemaps): Add case_ param; use
8391 it to create a temp_line_table.
8392 (selftest::assert_loceq): Only verify LOCATION_COLUMN for
8393 locations that are known to have column data.
8394 (selftest::line_table_case): New struct.
8395 (selftest::test_reading_source_line): Move tempfile handling
8396 to class temp_source_file.
8397 (ASSERT_TOKEN_AS_TEXT_EQ): New macro.
8398 (selftest::assert_token_loc_eq): New function.
8399 (ASSERT_TOKEN_LOC_EQ): New macro.
8400 (selftest::test_lexer): New function.
8401 (selftest::boundary_locations): New array.
8402 (selftest::input_c_tests): Call test_should_have_column_data_p.
8403 Loop over a test matrix of interesting values of location and
8404 default_range_bits, calling test_lexer on each case in the matrix.
8405 Move call to test_accessing_ordinary_linemaps into the matrix.
8406 * selftest.h (ASSERT_EQ): Reimplement in terms of...
8407 (ASSERT_EQ_AT): New macro.
8408
8409 2016-07-11 H.J. Lu <hongjiu.lu@intel.com>
8410
8411 PR target/71801
8412 * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
8413 Don't convert TImode in debug insn.
8414
8415 2016-07-11 Bernd Edlinger <bernd.edlinger@hotmail.de>
8416
8417 Convert TYPE_ALIGN_OK to a TYPE_LANG_FLAG.
8418 * tree-core.h (tree_base::nothrow_flag): Adjust comment.
8419 (tree_type_common::lang_flag_7): New.
8420 (tree_type_common::spare): Reduce size.
8421 * tree.h (TYPE_ALIGN_OK): Remove.
8422 (TYPE_LANG_FLAG_7): New.
8423 (get_inner_reference): Adjust header.
8424 * print-tree.c (print_node): Adjust.
8425 * expr.c (get_inner_reference): Remove parameter keep_aligning.
8426 (get_bit_range, expand_assignment, expand_expr_addr_expr_1): Adjust
8427 calls to get_inner_reference.
8428 (expand_expr_real_1): Adjust call to get_inner_reference. Remove
8429 handling of TYPE_ALIGN_OK.
8430 * builtins.c (get_object_alignment_2): Adjust call to
8431 get_inner_reference. Remove handling of VIEW_CONVERT_EXPR.
8432 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove handling of
8433 TYPE_ALIGN_OK.
8434 * asan.c (instrument_derefs): Adjust calls to get_inner_reference.
8435 * cfgexpand.c (expand_debug_expr): Likewise.
8436 * dbxout.c (dbxout_expand_expr): Likewise.
8437 * dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref,
8438 loc_list_from_tree, fortran_common): Likewise.
8439 * fold-const.c (optimize_bit_field_compare,
8440 decode_field_reference, fold_unary_loc, fold_comparison,
8441 split_address_to_core_and_offset): Likewise.
8442 * gimple-laddress.c (execute): Likewise.
8443 * gimple-ssa-strength-reduction.c (slsr_process_ref): Likewise.
8444 * gimplify.c (gimplify_scan_omp_clauses): Likewise.
8445 * hsa-gen.c (gen_hsa_addr): Likewise.
8446 * simplifx-rtx.c (delegitimize_mem_from_attrs): Likewise.
8447 * tsan.c (instrument_expr): Likewise.
8448 * ubsan.c (instrument_bool_enum_load, instrument_object_size): Likewise.
8449 * tree.c (verify_type_variant): Remove handling of TYPE_ALIGN_OK.
8450 * tree-affine.c (tree_to_aff_combination,
8451 get_inner_reference_aff): Adjust calls to get_inner_reference.
8452 * tree-data-ref.c (split_constant_offset_1,
8453 dr_analyze_innermost): Likewise.
8454 * tree-scalar-evolution.c (interpret_rhs_expr): Likewise.
8455 * tree-sra.c (ipa_sra_check_caller): Likewise.
8456 * tree-ssa-loop-ivopts.c (split_address_cost): Likewise.
8457 * tree-ssa-math-opts.c (find_bswap_or_nop_load,
8458 bswap_replace): Likewise.
8459 * tree-vect-data-refs.c (vect_check_gather,
8460 vect_analyze_data_refs): Likewise.
8461 * config/mips/mips.c (r10k_safe_mem_expr_p): Likewise.
8462 * config/pa/pa.c (pa_emit_move_sequence): Remove handling of
8463 TYPE_ALIGN_OK.
8464
8465 2016-07-11 David Malcolm <dmalcolm@redhat.com>
8466
8467 * Makefile.in (selftest-valgrind): New phony target.
8468 * function-tests.c (selftest::build_cfg): Delete pass instances
8469 created by the test.
8470 (selftest::convert_to_ssa): Likewise.
8471 (selftest::test_expansion_to_rtl): Likewise.
8472 * tree-cfg.c (selftest::test_linear_chain): Release dominator
8473 vectors.
8474 (selftest::test_diamond): Likewise.
8475
8476 2016-07-11 Richard Biener <rguenther@suse.de>
8477
8478 PR tree-optimization/71816
8479 * tree-ssa-pre.c (compute_avail): Adjust alignment of ref rather
8480 than replacing all of its operands.
8481
8482 2016-07-11 Alan Modra <amodra@gmail.com>
8483
8484 * config/rs6000/rs6000.md (UNSPEC_DOLOOP): New unspec.
8485 (ctr<mode>): Add unspec.
8486 (ctr<mode>_internal*): Likewise.
8487
8488 2016-07-08 James Bowman <james.bowman@ftdichip.com>
8489
8490 * config/ft32/ft32.c (ft32_elf_encode_section_info): New function.
8491 * config/ft32/ft32.h (ASM_OUTPUT_SYMBOL_REF): New function.
8492
8493 2016-07-08 Vladimir Makarov <vmakarov@redhat.com>
8494
8495 PR rtl-optimization/71621
8496 * lra-constraints.c (process_alt_operands): Check combination of
8497 reg class and mode.
8498
8499 2016-07-08 Jason Merrill <jason@redhat.com>
8500 Richard Biener <rguenther@suse.de>
8501
8502 P0145: Refining Expression Order for C++.
8503 * gimplify.c (initial_rhs_predicate_for): New.
8504 (gimplfy_modify_expr): Gimplify RHS before LHS.
8505
8506 2016-07-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8507
8508 PR target/71297
8509 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
8510 Allow standard error handling to take over when a wrong number
8511 of arguments is presented to __builtin_vec_ld () or
8512 __builtin_vec_st ().
8513
8514 2016-07-08 Jiong Wang <jiong.wang@arm.com>
8515
8516 * config/aarch64/aarch64-simd-builtins.def (smax): Remove float
8517 variants.
8518 (smin): Likewise.
8519 (fmax): New entry.
8520 (fmin): Likewise.
8521 * config/aarch64/arm_neon.h (vmaxnm_f32): Use
8522 __builtin_aarch64_fmaxv2sf.
8523 (vmaxnmq_f32): Likewise.
8524 (vmaxnmq_f64): Likewise.
8525 (vminnm_f32): Likewise.
8526 (vminnmq_f32): Likewise.
8527 (vminnmq_f64): Likewise.
8528
8529 2016-07-08 Michael Meissner <meissner@linux.vnet.ibm.com>
8530
8531 PR target/71806
8532 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Do not
8533 enable -mfloat128-hardware by default.
8534 (ISA_3_0_MASKS_IEEE): New macro to give all of the VSX options
8535 that IEEE 128-bit hardware support needs.
8536 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
8537 -mcpu=power9 -mfloat128, enable -mfloat128-hardware by default.
8538 Use ISA_3_0_MASKS_IEEE as the set of options that IEEE 128-bit
8539 floating point requires.
8540 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
8541 -mfloat128 and -mfloat128-hardware changes.
8542
8543 2016-07-08 Alan Hayward <alan.hayward@arm.com>
8544
8545 PR tree-optimization/71667
8546 * tree-vect-loop.c (vectorizable_live_operation): ignore DEBUG stmts
8547
8548 2016-07-08 Martin Liska <mliska@suse.cz>
8549
8550 PR middle-end/71606
8551 * fold-const.c (fold_convertible_p): As COMPLEX_TYPE
8552 folding produces SAVE_EXPRs, thus return false for the type.
8553
8554 2016-07-07 Martin Liska <mliska@suse.cz>
8555
8556 * file-find.c (remove_prefix): New function.
8557 * file-find.h (remove_prefix): Declare the function.
8558 * gcc-ar.c (main): Skip a folder of the wrapper if
8559 a wrapped binary would point to the same file.
8560
8561 2016-07-07 Jan Hubicka <jh@suse.cz>
8562
8563 * tree-scalar-evolution.c (iv_can_overflow_p): export.
8564 * tree-scalar-evolution.h (iv_can_overflow_p): Declare.
8565 * tree-ssa-loop-ivopts.c (alloc_iv): Use it.
8566
8567 2016-07-07 Ilya Enkovich <ilya.enkovich@intel.com>
8568
8569 PR ipa/71624
8570 * ipa-inline-analysis.c (compute_inline_parameters): Set
8571 local.can_change_signature to false for intrumentation
8572 thunk callees.
8573
8574 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
8575
8576 * config/arm/arm.h (TARGET_USE_MOVT): Check MOVT/MOVW availability
8577 with TARGET_HAVE_MOVT.
8578 (TARGET_HAVE_MOVT): Define.
8579 * config/arm/arm.c (const_ok_for_op): Check MOVT/MOVW
8580 availability with TARGET_HAVE_MOVT.
8581 * config/arm/arm.md (arm_movt): Use TARGET_HAVE_MOVT to check MOVT
8582 availability.
8583 (addsi splitter): Use TARGET_THUMB && TARGET_HAVE_MOVT rather than
8584 TARGET_THUMB2.
8585 (symbol_refs movsi splitter): Remove TARGET_32BIT check.
8586 (arm_movtas_ze): Use TARGET_HAVE_MOVT to check MOVT availability.
8587 * config/arm/constraints.md (define_constraint "j"): Use
8588 TARGET_HAVE_MOVT to check MOVT availability.
8589
8590 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
8591
8592 * config/arm/arm-protos.h: Reindent FL_FOR_* macro definitions.
8593
8594 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
8595
8596 * config/arm/arm-arches.def (armv8-m.base): Define new architecture.
8597 (armv8-m.main): Likewise.
8598 (armv8-m.main+dsp): Likewise.
8599 * config/arm/arm-protos.h (FL_FOR_ARCH8M_BASE): Define.
8600 (FL_FOR_ARCH8M_MAIN): Likewise.
8601 * config/arm/arm-tables.opt: Regenerate.
8602 * config/arm/bpabi.h: Add armv8-m.base, armv8-m.main and
8603 armv8-m.main+dsp to BE8_LINK_SPEC.
8604 * config/arm/arm.h (TARGET_HAVE_LDACQ): Exclude ARMv8-M.
8605 (enum base_architecture): Add BASE_ARCH_8M_BASE and BASE_ARCH_8M_MAIN.
8606 * config/arm/arm.c (arm_arch_name): Increase size to work with ARMv8-M
8607 Baseline and Mainline.
8608 (arm_option_override_internal): Also disable arm_restrict_it when
8609 !arm_arch_notm. Update comment for -munaligned-access to also cover
8610 ARMv8-M Baseline.
8611 (arm_file_start): Increase buffer size for printing architecture name.
8612 * doc/invoke.texi: Document architectures armv8-m.base, armv8-m.main
8613 and armv8-m.main+dsp.
8614 (mno-unaligned-access): Clarify that this is disabled by default for
8615 ARMv8-M Baseline architectures as well.
8616
8617 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
8618
8619 * config/arm/elf.h: Use __ARM_ARCH_ISA_THUMB and __ARM_ARCH_ISA_ARM to
8620 decide whether to prevent some libgcc routines being included for some
8621 multilibs rather than __ARM_ARCH_6M__ and add comment to indicate the
8622 link between this condition and the one in
8623 libgcc/config/arm/lib1func.S.
8624
8625 2016-07-07 Richard Biener <rguenther@suse.de>
8626
8627 * tree-ssa-pre.c: Include alias.h.
8628 (compute_avail): If we have multiple VN_REFERENCEs with the
8629 same hashtable entry adjust that to make it a valid replacement
8630 for all of them with respect to alignment and aliasing
8631 when doing insertion.
8632 * tree-ssa-sccvn.h (vn_reference_operands_for_lookup): Declare.
8633 * tree-ssa-sccvn.c (vn_reference_operands_for_lookup): New function.
8634
8635 2016-07-06 Segher Boessenkool <segher@kernel.crashing.org>
8636
8637 PR target/70098
8638 PR target/71763
8639 * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
8640 *ctr<mode>_internal5, *ctr<mode>_internal6): Add *wi to the output
8641 constraint.
8642
8643 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8644
8645 * var-tracking.c (struct adjust_mem_data): Make side_effects a vector.
8646 (adjust_mems): Adjust.
8647 (adjust_insn): Likewise.
8648 (prepare_call_arguments): Likewise.
8649
8650 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8651
8652 * gcse.c (struct ls_expr): Make stores field a vector.
8653 (ldst_entry): Adjust.
8654 (free_ldst_entry): Likewise.
8655 (print_ldst_list): Likewise.
8656 (compute_ld_motion_mems): Likewise.
8657 (update_ld_motion_stores): Likewise.
8658
8659 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8660
8661 * gcse.c (struct ls_expr): Remove loads field.
8662 (ldst_entry): Adjust.
8663 (free_ldst_entry): Likewise.
8664 (print_ldst_list): Likewise.
8665 (compute_ld_motion_mems): Likewise.
8666
8667 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8668
8669 * store-motion.c (struct st_expr): Make antic_stores a vector.
8670 (st_expr_entry): Adjust.
8671 (free_st_expr_entry): Likewise.
8672 (print_store_motion_mems): Likewise.
8673 (find_moveable_store): Likewise.
8674 (compute_store_table): Likewise.
8675 (remove_reachable_equiv_notes): Likewise.
8676 (replace_store_insn): Likewise.
8677 (build_store_vectors): Likewise.
8678
8679 2016-07-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8680
8681 * config/arm/driver-arm.c (arm_cpu_table): Add entries for cortex-a32,
8682 cortex-a35, cortex-a53, cortex-a57, cortex-a72, cortex-a73.
8683
8684 2016-07-06 Yuri Rumyantsev <ysrumyan@gmail.com>
8685
8686 PR tree-optimization/71518
8687 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust
8688 misalign also for outer loops with negative step.
8689
8690 2016-07-06 Wilco Dijkstra <wdijkstr@arm.com>
8691
8692 * config/arm/cortex-a53.md: Use final_presence_set for in-order.
8693 (cortex_a53_shift): Add mov_shift.
8694 (cortex_a53_shift_reg): Add new reservation for register shifts.
8695 (cortex_a53_alu): Remove bfm.
8696 (cortex_a53_alu_shift): Add bfm, remove mov_shift.
8697 (cortex_a53_alu_extr): Add new reservation for EXTR.
8698 (bypasses): Improve bypass modelling.
8699
8700 2016-07-06 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
8701
8702 PR target/50739
8703 * config/avr/avr.c (avr_asm_select_section): Strip off
8704 SECTION_DECLARED from flags when calling get_section.
8705
8706 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
8707
8708 * tree-vectorizer.h (vect_memory_access_type): Add
8709 VMAT_INVARIANT, VMAT_CONTIGUOUS_DOWN and VMAT_CONTIGUOUS_REVERSED.
8710 * tree-vect-stmts.c (compare_step_with_zero): New function.
8711 (perm_mask_for_reverse): Move further up file.
8712 (get_group_load_store_type): Stick to VMAT_ELEMENTWISE if the
8713 step is negative.
8714 (get_negative_load_store_type): New function.
8715 (get_load_store_type): Call it. Add an ncopies argument.
8716 (vectorizable_mask_load_store): Update call accordingly and
8717 remove tests for negative steps.
8718 (vectorizable_store, vectorizable_load): Likewise. Handle new
8719 memory_access_types.
8720
8721 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
8722
8723 * tree-vectorizer.h (vect_memory_access_type): New enum.
8724 (_stmt_vec_info): Add a memory_access_type field.
8725 (STMT_VINFO_MEMORY_ACCESS_TYPE): New macro.
8726 (vect_model_store_cost): Take an access type instead of a boolean.
8727 (vect_model_load_cost): Likewise.
8728 * tree-vect-slp.c (vect_analyze_slp_cost_1): Update calls to
8729 vect_model_store_cost and vect_model_load_cost.
8730 * tree-vect-stmts.c (vec_load_store_type): New enum.
8731 (vect_model_store_cost): Take an access type instead of a
8732 store_lanes_p boolean. Simplify tests.
8733 (vect_model_load_cost): Likewise, but for load_lanes_p.
8734 (get_group_load_store_type, get_load_store_type): New functions.
8735 (vectorizable_store): Use get_load_store_type. Record the access
8736 type in STMT_VINFO_MEMORY_ACCESS_TYPE.
8737 (vectorizable_load): Likewise.
8738 (vectorizable_mask_load_store): Likewise. Replace is_store
8739 variable with vls_type.
8740
8741 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
8742
8743 * tree-vectorizer.h (vect_grouped_load_supported): Add a
8744 single_element_p parameter.
8745 * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
8746 Check the PR65518 case here rather than in vectorizable_load.
8747 * tree-vect-loop.c (vect_analyze_loop_2): Update call accordignly.
8748 * tree-vect-stmts.c (vectorizable_load): Likewise.
8749
8750 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
8751
8752 * tree-vectorizer.h (gather_scatter_info): New structure.
8753 (vect_check_gather_scatter): Return a bool rather than a decl.
8754 Replace return-by-pointer arguments with a single
8755 gather_scatter_info *.
8756 * tree-vect-data-refs.c (vect_check_gather_scatter): Likewise.
8757 (vect_analyze_data_refs): Update call accordingly.
8758 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
8759 (vectorizable_mask_load_store): Likewise. Also record the
8760 offset dt and vectype in the gather_scatter_info.
8761 (vectorizable_store): Likewise.
8762 (vectorizable_load): Likewise.
8763
8764 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
8765
8766 * tree-vect-stmts.c (vect_model_store_cost): For non-SLP
8767 strided groups, use the cost of N scalar accesses instead
8768 of ncopies vector accesses.
8769 (vect_model_load_cost): Likewise.
8770
8771 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
8772
8773 * tree-vect-stmts.c (vect_cost_group_size): Delete.
8774 (vect_model_store_cost): Avoid calling it. Use first_stmt_p
8775 variable to indicate when once-per-group costs are being used.
8776 (vect_model_load_cost): Likewise. Fix comment and misindented code.
8777
8778 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
8779
8780 * tree-vect-stmts.c (vectorizable_load): Remove unnecessary
8781 peeling-for-gaps condition.
8782
8783 2016-07-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8784
8785 * config/s390/s390.c (s390_expand_vec_init): Force initializer
8786 element to register if it doesn't match general_operand.
8787
8788 2016-07-05 Michael Meissner <meissner@linux.vnet.ibm.com>
8789 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8790
8791 * config/rs6000/rs6000-protos.h (rs6000_split_signbit): New
8792 prototype.
8793 * config/rs6000/rs6000.c (rs6000_split_signbit): New function.
8794 * config/rs6000/rs6000.md (UNSPEC_SIGNBIT): New constant.
8795 (SIGNBIT): New mode iterator.
8796 (Fsignbit): New mode attribute.
8797 (signbit<mode>2): Change operand1 to match FLOAT128 instead of
8798 IBM128; dispatch to gen_signbit{kf,tf}2_dm for __float128
8799 when direct moves are available.
8800 (signbit<mode>2_dm): New define_insn_and_split).
8801 (signbit<mode>2_dm2): New define_insn.
8802
8803 2016-07-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8804
8805 PR rtl-optimization/71594
8806 * ifcvt.c (noce_convert_multiple_sets): Wrap new_val or old_val
8807 into subregs of appropriate mode before trying to emit a conditional
8808 move.
8809
8810 2016-07-05 Jan Hubicka <jh@suse.cz>
8811
8812 * tree-scalar-evolution.c (iv_can_overflow_p): New function.
8813 (simple_iv): Use it.
8814
8815 2016-07-05 Jan Hubicka <jh@suse.cz>
8816
8817 * tree-ssa-loop-niter.c (nowrap_type_p): Use ANY_INTEGRAL_TYPE_P.
8818
8819 2016-07-05 Jiong Wang <jiong.wang@arm.com>
8820
8821 * lra-constraints.c (process_alt_operands): Don't add spilling cost for
8822 "offmemok".
8823
8824 2016-07-05 Jan Hubicka <jh@suse.cz>
8825
8826 * tree-scalar-evoluiton.c (simple_iv): Use nowrap_type to check if
8827 IV can overflow.
8828
8829 2016-07-05 Richard Biener <rguenther@suse.de>
8830
8831 * gimple-ssa-split-paths.c (find_block_to_duplicate_for_splitting_pa):
8832 Handle empty else block.
8833 (is_feasible_trace): Likewise.
8834 (split_paths): Likewise.
8835
8836 2016-07-05 Richard Biener <rguenther@suse.de>
8837
8838 * tree-loop-distribution.c (distribute_loop): Fix issue with
8839 the cost model loop.
8840
8841 2016-07-05 Christophe Lyon <christophe.lyon@linaro.org>
8842
8843 * config/arm/neon-testgen.ml: Delete.
8844 * config/arm/neon.ml: Delete.
8845
8846 2016-07-04 Jakub Jelinek <jakub@redhat.com>
8847
8848 PR c++/71739
8849 * tree.c (attribute_value_equal): Use get_attribute_name instead of
8850 directly using TREE_PURPOSE.
8851
8852 2016-07-04 Jiong Wang <jiong.wang@arm.com>
8853
8854 * config/aarch64/aarch64.h: Rename "ARMv8.1" to "ARMv8.1-A".
8855 * config/aarch64/aarch64_neon.h: Likewise.
8856 * config/aarch64/arm_neon.h: Likewise.
8857 * config/aarch64/atomics.md: Likewise.
8858 * config/aarch64/aarch64-simd-builtins.def: Likewise.
8859 * doc/invoke.texi: Likewise.
8860
8861 2016-07-04 Dominik Vogt <vogt@linux.vnet.ibm.com>
8862
8863 * config/s390/s390.md: Add "z13" cpu_facility.
8864 ("*mov<mode>cc"): Add support for z13 instructions lochi and locghi.
8865 * config/s390/predicates.md ("loc_operand"): New predicate for "load on
8866 condition" type instructions.
8867
8868 2016-07-04 Dominik Vogt <vogt@linux.vnet.ibm.com>
8869 Jeff Law <law@redhat.com>
8870
8871 * explow.c (allocate_dynamic_stack_space): Simplify knowing that
8872 MUST_ALIGN was always true and extra_align ist always BITS_PER_UNIT.
8873
8874 2016-07-04 Yuri Rumyantsev <ysrumyan@gmail.com>
8875
8876 * config/i386/i386.c (ix86_expand_vec_perm): Add handle one-operand
8877 permutation for TARGET_AVX512F.
8878 (ix86_expand_vec_one_operand_perm_avx512): New function.
8879 (expand_vec_perm_1): Invoke introduced function.
8880 * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since
8881 it may be not valid after vectorization.
8882
8883 2016-07-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8884
8885 PR target/63874
8886 * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix
8887 typo in comment. Only force to memory if it is a weak
8888 external reference.
8889
8890 2016-07-04 Matthew Wahab <matthew.wahab@arm.com>
8891 Jiong Wang <jiong.wang@arm.com>
8892
8893 * config/aarch64/aarch64-arches.def: Add "armv8.2-a".
8894 * config/aarch64/aarch64.h (AARCH64_FL_V8_2): New.
8895 (AARCH64_FL_F16): New.
8896 (AARCH64_FL_FOR_ARCH8_2): New.
8897 (AARCH64_ISA_8_2): New.
8898 (AARCH64_ISA_F16): New.
8899 (TARGET_FP_F16INST): New.
8900 (TARGET_SIMD_F16INST): New.
8901 * config/aarch64/aarch64-option-extensions.def ("fp16"): New entry.
8902 ("fp"): Disabling "fp" also disables "fp16".
8903 * config/aarch64/aarch64-c.c (arch64_update_cpp_builtins):
8904 Conditionally define __ARM_FEATURE_FP16_SCALAR_ARITHMETIC
8905 and __ARM_FEATURE_FP16_VECTOR_ARITHMETIC.
8906 * doc/invoke.texi (AArch64 Options): Document "armv8.2-a" and "fp16".
8907
8908 2016-07-04 Jan Beulich <jbeulich@suse.com>
8909
8910 * gcc.c (default_compilers["@c-header"]): Conditionalize "-o".
8911
8912 2016-07-01 Michael Meissner <meissner@linux.vnet.ibm.com>
8913
8914 PR target/71720
8915 * config/rs6000/vsx.md (vsx_splat_v4sf_internal): When splitting
8916 the insns, use an insn form that does not adjust the offset on
8917 little endian systems.
8918
8919 2016-07-01 Jan Beulich <jbeulich@suse.com>
8920
8921 * varasm.c (get_variable_section): Validate initializer in
8922 named .bss-like sections.
8923
8924 2016-07-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
8925
8926 * config/rs6000/altivec.md (*altivec_vpermr_<mode>_internal):
8927 Exchange the order of the second and third operands in the vpermr
8928 instruction tmeplate.
8929
8930 2016-07-01 Peter Bergner <bergner@vnet.ibm.com>
8931
8932 PR target/71698
8933 * config/rs6000/rs6000.c (rs6000_secondary_reload_simple_move):
8934 Disallow TDmode values.
8935
8936 2016-07-01 Alan Modra <amodra@gmail.com>
8937
8938 PR rtl-optimization/71709
8939 * ira-lives.c (find_call_crossed_cheap_reg): Exit loop on arg reg
8940 being set, not referenced.
8941
8942 2016-07-01 Yuri Rumyantsev <ysrumyan@gmail.com>
8943
8944 PR tree-optimization/70729
8945 * tree-vectorizer.c (adjust_simduid_builtins): Nullify safelen field
8946 of loop since it can be not valid after transformation.
8947
8948 2016-07-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8949
8950 * config/arm/arm.c (thumb_reload_in_hi): Delete.
8951 * config/arm/arm-protos.h (thumb_reload_in_hi): Delete prototype.
8952
8953 2016-07-01 Eric Botcazou <ebotcazou@adacore.com>
8954
8955 * config/arm/arm.c (arm_function_ok_for_sibcall): Add another check
8956 for NULL decl.
8957
8958 2016-06-30 Michael Meissner <meissner@linux.vnet.ibm.com>
8959
8960 PR target/71677
8961 * config/rs6000/constraints.md (wY constraint): New constraint to
8962 match the requirements for the LXSD and STXSD instructions.
8963 * config/rs6000/predicates.md (offsettable_mem_14bit_operand): New
8964 predicate to match the requirements for the LXSD and STXSD
8965 instructions.
8966 * config/rs6000/rs6000.md (mov<mode>_hardfloat32, FMOVE64 case):
8967 Use constaint wY for LXSD/STXSD instructions instead of 'o' or 'Y'
8968 to make sure that the bottom 2 bits of offset are 0, the address
8969 form is offsettable, and no updating is done in the address mode.
8970 (mov<mode>_hardfloat64, FMOVE64 case): Likewise.
8971 (movdi_internal32): Likewise
8972 (movdi_internal64): Likewise.
8973
8974 2016-06-30 Jakub Jelinek <jakub@redhat.com>
8975
8976 PR tree-optimization/71707
8977 * tree-ssa-strlen.c (get_stridx_plus_constant): Handle already present
8978 strinfo even for ADDR_EXPR ptr.
8979
8980 2016-06-30 Kelvin Nilsen <kelvin@gcc.gnu.org>
8981
8982 * config/rs6000/altivec.md (darn_32): Change the condition to
8983 TARGET_P9_MISC instead of TARGET_MODULO.
8984 (darn_raw): Replace TARGET_MODULO with TARGET_P9_MISC in the
8985 condition expression.
8986 (darn): Replace TARGET_MODULO with TARGET_P9_MISC in the
8987 condition expression.
8988 * config/rs6000/dfp.md (UNSPEC_DTSTSFI): New unspec constant.
8989 (DFP_TEST): New code iterator.
8990 (dfptstsfi_<code>_mode>): New define_expand.
8991 (*dfp_sgnfcnc_<mode>): New define_insn.
8992 * config/rs6000/rs6000-builtin.def (BU_P9_MISC_0): Move this macro
8993 definition next to BU_P9_MISC_1 definition and change the MASK
8994 value to RS6000_BTM_P9_MISC.
8995 (BU_P9_MISC_1): Change the MASK value to RS6000_BTM_P9_MISC.
8996 (BU_P9_64BIT_MISC_0): Likewise.
8997 (BU_P9_DFP_MISC_0): New macro definition.
8998 (BU_P9_DFP_MISC_1): New macro definition.
8999 (BU_P9_DFP_MISC_2): New macro definition.
9000 (BU_P9_DFP_OVERLOAD_1): New macro definition.
9001 (BU_P9_DFP_OVERLOAD_2): New macro definition.
9002 (BU_P9_DFP_OVERLOAD_3): New macro definition.
9003 (TSTSFI_LT_DD): New BU_P9_DFP_MISC_2.
9004 (TSTSFI_LT_TD): Likewise.
9005 (TSTSFI_EQ_DD): Likewise.
9006 (TSTSFI_EQ_TD): Likewise.
9007 (TSTSFI_GT_DD): Likewise.
9008 (TSTSFI_GT_TD): Likewise.
9009 (TSTSFI_OV_DD): Likewise.
9010 (TSTSFI_OV_TD): Likewise.
9011 (TSTSFI_LT): New BU_P9_DFP_OVERLOAD_2.
9012 (TSTSFI_LT_DD): Likewise.
9013 (TSTSFI_LT_TD): Likewise.
9014 (TSTSFI_EQ): Likewise.
9015 (TSTSFI_EQ_DD): Likewise.
9016 (TSTSFI_EQ_TD): Likewise.
9017 (TSTSFI_GT): Likewise.
9018 (TSTSFI_GT_DD): Likewise.
9019 (TSTSFI_GT_TD): Likewise.
9020 (TSTSFI_OV): Likewise.
9021 (TSTSFI_OV_DD): Likewise.
9022 (TSTSFI_OV_TD): Likewise.
9023 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
9024 overloaded test significance functions.
9025 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
9026 OPTION_MASK_P9_MISC into the representation of this mask.
9027 (POWERPC_MASKS): Add OPTION_MASK_P9_MISC into the representation
9028 of this mask.
9029 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Set the
9030 RS6000_BTM_P9_MISC flag in the return value if TARGET_P9_MISC is
9031 non-zero.
9032 (rs6000_expand_binop_builtin): Enforce that argument 0 of the exp
9033 argument is a 6-bit unsigned literal value if the icode argument
9034 represents a DFP test significance built-in call.
9035 (rs6000_invalid_builtin): Add support for the RS6000_BTM_P9_MISC
9036 flag used independently and in combination with the
9037 RS6000_BTM_64BIT flag.
9038 (rs6000_opt_masks): Add entry for power9-misc command-line option.
9039 (rs6000_builtin_mask_names): Add entry for power9-misc
9040 command-line option.
9041 * config/rs6000/rs6000.h: Redefine TARGET_P9_MISC as 0 if
9042 HAVE_AS_POWER9 is not a defined macro. Define MASK_P9_MISC and
9043 RS6000_BTM_P9_MISC macros.
9044 * config/rs6000/rs6000.opt: Add support for the -mpower9-misc
9045 option and change the description of the -mpower9-vector option to
9046 enable only vector instructions, removing its erroneously claimed
9047 support for scalar instructions.
9048 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
9049 the ISA 3.0 digital floating point test significance built-in
9050 functions.
9051
9052 2016-06-30 Wilco Dijkstra <wdijkstr@arm.com>
9053
9054 * config/aarch64/aarch64.c (cortexa35_tunings):
9055 Enable AES fusion. Use cortexa57_branch_cost.
9056 (cortexa53_tunings): Use cortexa57_branch_cost.
9057 (cortexa72_tunings): Use cortexa57_branch_cost.
9058 Use AUTOPREFETCHER_WEAK.
9059 (cortexa73_tunings): Use cortexa57_branch_cost.
9060
9061 2016-06-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9062 James Greenhalgh <james.greenhalgh@arm.com>
9063
9064 * config/aarch64/arm_neon.h (vcopyq_lane_f32, vcopyq_lane_f64,
9065 vcopyq_lane_p8, vcopyq_lane_p16, vcopyq_lane_s8, vcopyq_lane_s16,
9066 vcopyq_lane_s32, vcopyq_lane_s64, vcopyq_lane_u8, vcopyq_lane_u16,
9067 vcopyq_lane_u32, vcopyq_lane_u64): Reimplement in C.
9068 (vcopy_lane_f32, vcopy_lane_f64, vcopy_lane_p8, vcopy_lane_p16,
9069 vcopy_lane_s8, vcopy_lane_s16, vcopy_lane_s32, vcopy_lane_s64,
9070 vcopy_lane_u8, vcopy_lane_u16, vcopy_lane_u32, vcopy_lane_u64,
9071 vcopy_laneq_f32, vcopy_laneq_f64, vcopy_laneq_p8, vcopy_laneq_p16,
9072 vcopy_laneq_s8, vcopy_laneq_s16, vcopy_laneq_s32, vcopy_laneq_s64,
9073 vcopy_laneq_u8, vcopy_laneq_u16, vcopy_laneq_u32, vcopy_laneq_u64,
9074 vcopyq_laneq_f32, vcopyq_laneq_f64, vcopyq_laneq_p8, vcopyq_laneq_p16,
9075 vcopyq_laneq_s8, vcopyq_laneq_s16, vcopyq_laneq_s32, vcopyq_laneq_s64,
9076 vcopyq_laneq_u8, vcopyq_laneq_u16, vcopyq_laneq_u32, vcopyq_laneq_u64):
9077 New intrinsics.
9078
9079 2016-06-30 James Greenhalgh <james.greenhalgh@arm.com>
9080 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9081
9082 * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>):
9083 New define_insn.
9084 (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise.
9085
9086 2016-06-30 David Malcolm <dmalcolm@redhat.com>
9087
9088 PR driver/71651
9089 * gcc.c (driver::build_option_suggestions): Pass "option" to
9090 add_misspelling_candidates.
9091 * opts-common.c (add_misspelling_candidates): Add "option" param;
9092 use it to avoid adding negated forms for options marked with
9093 RejectNegative.
9094 * opts.h (add_misspelling_candidates): Add "option" param.
9095
9096 2016-06-30 Jakub Jelinek <jakub@redhat.com>
9097
9098 PR middle-end/71693
9099 * fold-const.c (fold_binary_loc) <case RROTATE_EXPR>: Cast
9100 TREE_OPERAND (arg0, 0) and TREE_OPERAND (arg0, 1) to type
9101 first when permuting bitwise operation with rotate. Cast
9102 TREE_OPERAND (arg0, 0) to type when cancelling two rotations.
9103
9104 2016-06-29 David Malcolm <dmalcolm@redhat.com>
9105
9106 * opts.c (handle_param): Use find_param_fuzzy to offer suggestions
9107 for misspelled param names.
9108 * params.c: Include spellcheck.h.
9109 (find_param_fuzzy): New function.
9110 * params.h (find_param_fuzzy): New prototype.
9111 * spellcheck.c (struct edit_distance_traits<const char *>): Move to...
9112 * spellcheck.h (struct edit_distance_traits<const char *>):
9113 ...here.
9114
9115 2016-06-29 Michael Meissner <meissner@linux.vnet.ibm.com>
9116
9117 * config/rs6000/predicates.md (const_0_to_7_operand): New
9118 predicate, recognize 0..7.
9119 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
9120 support for doing extracts from V16QImode, V8HImode, V4SImode
9121 under ISA 3.0.
9122 * config/rs6000/vsx.md (VSX_EXTRACT_I): Mode iterator for ISA 3.0
9123 vector extract support.
9124 (VSX_EXTRACT_PREDICATE): Mode attribute to validate element number
9125 for ISA 3.0 vector extract.
9126 (VSX_EX): Constraints to use for ISA 3.0 vector extract.
9127 (vsx_extract_<mode>, VSX_EXTRACT_I): Add support for doing
9128 extracts of a constant element number from small integer vectors
9129 on 64-bit ISA 3.0 systems.
9130 (vsx_extract_<mode>_di): Likewise.
9131 * config/rs6000/rs6000.h (TARGET_VEXTRACTUB): New target macro to
9132 say when we can do ISA 3.0 vector extracts.
9133 * config/rs6000/rs6000.md (stfiwx): Allow DImode in Altivec
9134 registers, using the stxsiwx instruction.
9135
9136 2016-06-29 Jim Wilson <jim.wilson@linaro.org>
9137
9138 * config/aarch64/aarch64-cores.def (qdf24xx): Use qdf24xx tuning.
9139 * config/aarch64/aarch64.c (qdf24xx_addrcost_table,
9140 qdf24xx_regmove_cost, qdf24xx_tunings): New.
9141 * config/arm/aarch64-cost-tables.h (qdf24xx_extra_costs): New.
9142 * config/arm/arm-cores.def (qdf24xx): Use qdf24xx tuning.
9143 * config/arm/arm.c (arm_qdf24xx_tune): New.
9144
9145 2016-06-29 Wilco Dijkstra <wdijkstr@arm.com>
9146
9147 * config/aarch64/aarch64.c (cortexa53_tunings):
9148 Increase loop alignment to 8. Set function alignment to 16.
9149 (cortexa35_tunings): Likewise.
9150 (cortexa57_tunings): Increase loop alignment to 8.
9151 (cortexa72_tunings): Likewise.
9152 (cortexa73_tunings): Likewise.
9153
9154 2016-06-29 Matthew Wahab <matthew.wahab@arm.com>
9155
9156 * doc/sourcebuild.texi (Effective-Target keywords): Add entries
9157 for arm_fp16_ok and arm_fp16_hw.
9158 (Add Options): Add entries for arm_fp16, arm_fp16_ieee and
9159 arm_fp16_alternative.
9160
9161 2016-06-29 Ilya Enkovich <ilya.enkovich@intel.com>
9162
9163 PR tree-optimization/71655
9164 * tree-vect-stmts.c (vectorizable_comparison): Swap definition
9165 types when swapping operands.
9166
9167 2016-06-29 Martin Liska <mliska@suse.cz>
9168
9169 PR middle-end/71585
9170 * common.opt (flag_stack_protect): Mark the flag as optimization flag.
9171 * ipa-inline-transform.c (inline_call): Remove unnecessary call
9172 of build_optimization_node.
9173
9174 2016-06-29 Yuri Rumyantsev <ysrumyan@gmail.com>
9175
9176 PR tree-optimization/70729
9177 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Consider memory reference as
9178 independent in loops having positive safelen value.
9179 * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since
9180 it may be not valid after vectorization.
9181
9182 2016-06-29 Jakub Jelinek <jakub@redhat.com>
9183
9184 PR tree-optimization/71625
9185 * tree-ssa-strlen.c (get_addr_stridx): Add PTR argument. Assume list
9186 is sorted by ascending list->offset. If PTR is non-NULL and there is
9187 previous strinfo, call get_stridx_plus_constant.
9188 (get_stridx): Pass exp as second argument to get_addr_stridx.
9189 (addr_stridxptr): Add missing list = list->next, so that there can be
9190 more than one entries in the list. Bump limit from 16 to 32. Ensure
9191 the list is sorted by ascending list->offset.
9192 (get_stridx_plus_constant): Adjust so that it can be also called with
9193 ADDR_EXPR instead of SSA_NAME as PTR.
9194 (handle_char_store): Pass NULL_TREE as second argument to
9195 get_addr_stridx.
9196
9197 2016-06-29 Richard Biener <rguenther@suse.de>
9198
9199 PR rtl-optimization/68961
9200 * simplify-rtx.c (simplify_subreg): Handle VEC_CONCAT like CONCAT.
9201
9202 2016-06-29 Richard Biener <rguenther@suse.de>
9203
9204 PR middle-end/71002
9205 * alias.c (component_uses_parent_alias_set_from): Handle
9206 type punning through union accesses by using the union alias set.
9207 * gimple.c (gimple_get_alias_set): Remove union type punning case.
9208
9209 2016-07-29 Richard Biener <rguenther@suse.de>
9210
9211 * match.pd ((T)(T2)x -> (T)x): Remove restriction on final
9212 precision not matching mode precision.
9213
9214 2016-06-28 John David Anglin <danglin@gcc.gnu.org>
9215
9216 * config/pa/pa.md (call_symref_64bit_post_reload): Don't call
9217 pa_output_arg_descriptor.
9218 (call_val_symref_64bit_post_reload): Likewise.
9219 (call_val_powf_64bit_post_reload): Likewise.
9220 (sibcall_internal_symref_64bit): Likewise.
9221 (sibcall_value_internal_symref_64bit): Likewise.
9222
9223 2016-06-28 Jakub Jelinek <jakub@redhat.com>
9224
9225 PR middle-end/71626
9226 * config/i386/i386.c (ix86_expand_vector_move): For SUBREG of
9227 a constant, force its SUBREG_REG into memory or register instead
9228 of whole op1.
9229
9230 2016-06-28 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
9231
9232 PR target/58655
9233 * config/avr/avr.opt (-mfract-convert-truncate): Update description.
9234 * doc/invoke.texi (AVR Options): Document it.
9235
9236 2016-06-28 Walter Lee <walt@tilera.com>
9237
9238 * config/tilegx/linux.h: Do not include arch/icache.h
9239 (CLEAR_INSN_CACHE): Provide inlined definition directly.
9240 * config/tilepro/linux.h: Do not include arch/icache.h
9241 (CLEAR_INSN_CACHE): Provide inlined definition directly.
9242
9243 2016-06-28 Wilco Dijkstra <wdijkstr@arm.com>
9244
9245 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adjust bitnumbering
9246 for big-endian BIT_FIELD_REF.
9247
9248 2016-06-28 Pat Haugen <pthaugen@us.ibm.com>
9249
9250 * config/rs6000/rs6000.md ('type' attribute): Add htmsimple/dfp types.
9251 ('size' attribute): Add '128'.
9252 Include power9.md.
9253 (*mov<mode>_hardfloat32, *mov<mode>_hardfloat64, *movdi_internal32,
9254 *movdi_internal64, *movdf_update1): Set size attribute to '64'.
9255 (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3, sqrt<mode>2,
9256 copysign<mode>3, neg<mode>2_hw, abs<mode>2_hw, *nabs<mode>2_hw,
9257 *fma<mode>4_hw, *fms<mode>4_hw, *nfma<mode>4_hw, *nfms<mode>4_hw,
9258 extend<SFDF:mode><IEEE128:mode>2_hw, trunc<mode>df2_hw,
9259 *xscvqp<su>wz_<mode>, *xscvqp<su>dz_<mode>, *xscv<su>dqp_<mode>,
9260 *trunc<mode>df2_odd): Set size attribute to '128'.
9261 (*cmp<mode>_hw): Change type to veccmp and set size attribute to '128'.
9262 * config/rs6000/power6.md (power6-fp): Include dfp type.
9263 * config/rs6000/power7.md (power7-fp): Likewise.
9264 * config/rs6000/power8.md (power8-fp): Likewise.
9265 * config/rs6000/power9.md: New file.
9266 * config/rs6000/t-rs6000 (MD_INCLUDES): Add power9.md.
9267 * config/rs6000/htm.md (*tabort, *tabort<wd>c, *tabort<wd>ci,
9268 *trechkpt, *treclaim, *tsr, *ttest): Change type attribute to
9269 htmsimple.
9270 * config/rs6000/dfp.md (extendsddd2, truncddsd2, extendddtd2,
9271 trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
9272 divtd3, *cmpdd_internal1, *cmptd_internal1, floatdidd2, floatditd2,
9273 ftruncdd2, fixdddi2, ftrunctd2, fixtddi2, dfp_ddedpd_<mode>,
9274 dfp_denbcd_<mode>, dfp_dxex_<mode>, dfp_diex_<mode>, dfp_dscli_<mode>,
9275 dfp_dscri_<mode>): Change type attribute to dfp.
9276 * config/rs6000/crypto.md (crypto_vshasigma<CR_char>): Change type
9277 attribute to vecsimple.
9278 * config/rs6000/rs6000.c (power9_cost): Update costs, cache size
9279 and prefetch streams.
9280 (rs6000_option_override_internal): Remove temporary code setting
9281 tuning to power8. Don't set rs6000_sched_groups for power9.
9282 (last_scheduled_insn): Change to rtx_insn *.
9283 (divide_cnt, vec_load_pendulum): New variables.
9284 (rs6000_adjust_cost): Add Power9 to test for store->load separation.
9285 (rs6000_issue_rate): Set issue rate for Power9.
9286 (is_power9_pairable_vec_type): New.
9287 (power9_sched_reorder2): New.
9288 (rs6000_sched_reorder2): Call new function for Power9 specific
9289 reordering.
9290 (insn_must_be_first_in_group): Remove Power9.
9291 (insn_must_be_last_in_group): Likewise.
9292 (force_new_group): Likewise.
9293 (rs6000_sched_init): Fix initialization of last_scheduled_insn.
9294 Initialize divide_cnt/vec_load_pendulum.
9295 (_rs6000_sched_context, rs6000_init_sched_context,
9296 rs6000_set_sched_context): Handle context save/restore of new
9297 variables.
9298
9299 2016-06-28 Richard Biener <rguenther@suse.de>
9300
9301 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
9302 Properly handle DECL_BIT_FIELD_REPRESENTATIVE occuring as
9303 COMPONENT_REF operand.
9304 (nonoverlapping_component_refs_p): Likewise.
9305 * stor-layout.c (start_bitfield_representative): Mark
9306 DECL_BIT_FIELD_REPRESENTATIVE as DECL_NONADDRESSABLE_P.
9307
9308 2016-06-28 Jakub Jelinek <jakub@redhat.com>
9309
9310 * Makefile.in: Don't cat ../stage_current if it does not exist.
9311
9312 * doc/extend.texi (__builtin_add_overflow_p): Clarify behavior when
9313 last argument is a bit-field.
9314
9315 PR rtl-optimization/71673
9316 * internal-fn.c (expand_arith_overflow_result_store): Use
9317 OPTAB_LIB_WIDEN instead of OPTAB_DIRECT as last argument to
9318 expand_simple_binop.
9319
9320 PR middle-end/66867
9321 * builtins.c (expand_ifn_atomic_compare_exchange_into_call,
9322 expand_ifn_atomic_compare_exchange): New functions.
9323 * internal-fn.c (expand_ATOMIC_COMPARE_EXCHANGE): New function.
9324 * tree.h (build_call_expr_internal_loc): Rename to ...
9325 (build_call_expr_internal_loc_array): ... this. Fix up type of
9326 last argument.
9327 * internal-fn.def (ATOMIC_COMPARE_EXCHANGE): New internal fn.
9328 * predict.c (expr_expected_value_1): Handle IMAGPART_EXPR of
9329 ATOMIC_COMPARE_EXCHANGE result.
9330 * builtins.h (expand_ifn_atomic_compare_exchange): New prototype.
9331 * gimple-fold.h (optimize_atomic_compare_exchange_p,
9332 fold_builtin_atomic_compare_exchange): New prototypes.
9333 * gimple-fold.c (optimize_atomic_compare_exchange_p,
9334 fold_builtin_atomic_compare_exchange): New functions..
9335 * tree-ssa.c (execute_update_addresses_taken): If
9336 optimize_atomic_compare_exchange_p, ignore &var in 2nd argument
9337 of call when finding addressable vars, and if such var becomes
9338 non-addressable, call fold_builtin_atomic_compare_exchange.
9339
9340 2016-06-27 Segher Boessenkool <segher@kernel.crashing.org>
9341
9342 PR target/71670
9343 * config/rs6000/rs6000.md (ashdi3_extswsli_dot): Use
9344 gen_ashdi3_extswsli_dot2 instead of gen_ashdi3_extswsli_dot.
9345
9346 2016-06-27 Pat Haugen <pthaugen@us.ibm.com>
9347
9348 * config/rs6000/rs6000.md ('type' attribute): Add
9349 veclogical,veccmpfx,vecexts,vecmove insn types.
9350 (*abs<mode>2_fpr, *nabs<mode>2_fpr, *neg<mode>2_fpr, *extendsfdf2_fpr,
9351 copysign<mode>3_fcpsgn, trunc<mode>df2_internal1, neg<mode>2_internal,
9352 p8_fmrgow_<mode>, pack<mode>): Change type to fpsimple.
9353 (*xxsel<mode>, copysign<mode>3_hard, neg<mode>2_hw, abs<mode>2_hw,
9354 *nabs<mode>2_hw): Change type to vecmove.
9355 (*and<mode>3_internal, *bool<mode>3_internal, *boolc<mode>3_internal,
9356 *boolcc<mode>3_internal, *eqv<mode>3_internal,
9357 *one_cmpl<mode>3_internal, *ieee_128bit_vsx_neg<mode>2_internal,
9358 *ieee_128bit_vsx_abs<mode>2_internal,
9359 *ieee_128bit_vsx_nabs<mode>2_internal, extendkftf2, trunctfkf2,
9360 *ieee128_mfvsrd_64bit, *ieee128_mfvsrd_32bit, *ieee128_mtvsrd_64bit,
9361 *ieee128_mtvsrd_32bit): Change type to veclogical.
9362 (mov<mode>_hardfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
9363 *movdi_internal32, *movdi_internal64): Update insn types.
9364 * config/rs6000/vsx.md (*vsx_le_undo_permute_<mode>,
9365 vsx_extract_<mode>): Change type to veclogical.
9366 (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns): Change type to vecmove.
9367 (vsx_sign_extend_qi_<mode>, *vsx_sign_extend_hi_<mode>,
9368 *vsx_sign_extend_si_v2di): Change type to vecexts.
9369 * config/rs6000/altivec.md (*altivec_mov<mode>, *altivec_movti): Change
9370 type to veclogical.
9371 (*altivec_eq<mode>, *altivec_gt<mode>, *altivec_gtu<mode>,
9372 *altivec_vcmpequ<VI_char>_p, *altivec_vcmpgts<VI_char>_p,
9373 *altivec_vcmpgtu<VI_char>_p): Change type to veccmpfx.
9374 (*altivec_vsel<mode>, *altivec_vsel<mode>_uns): Change type to vecmove.
9375 * config/rs6000/dfp.md (*negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
9376 negtd2, *abstd2_fpr, *nabstd2_fpr): Change type to fpsimple.
9377 * config/rs6000/40x.md (ppc405-float): Add fpsimple.
9378 * config/rs6000/440.md (ppc440-fp): Add fpsimple.
9379 * config/rs6000/476.md (ppc476-fp): Add fpsimple.
9380 * config/rs6000/601.md (ppc601-fp): Add fpsimple.
9381 * config/rs6000/603.md (ppc603-fp): Add fpsimple.
9382 * config/rs6000/6xx.md (ppc604-fp): Add fpsimple.
9383 * config/rs6000/7xx.md (ppc750-fp): Add fpsimple.
9384 (ppc7400-vecsimple): Add veclogical, vecmove, veccmpfx.
9385 * config/rs6000/7450.md (ppc7450-fp): Add fpsimple.
9386 (ppc7450-vecsimple): Add veclogical, vecmove.
9387 (ppc7450-veccmp): Add veccmpfx.
9388 * config/rs6000/8540.md (ppc8540_simple_vector): Add veclogical,
9389 vecmove.
9390 (ppc8540_vector_compare): Add veccmpfx.
9391 * config/rs6000/a2.md (ppca2-fp): Add fpsimple.
9392 * config/rs6000/cell.md (cell-fp): Add fpsimple.
9393 (cell-vecsimple): Add veclogical, vecmove.
9394 (cell-veccmp): Add veccmpfx.
9395 * config/rs6000/e300c2c3.md (ppce300c3_fp): Add fpsimple.
9396 * config/rs6000/e6500.md (e6500_vecsimple): Add veclogical, vecmove,
9397 veccmpfx.
9398 * config/rs6000/mpc.md (mpccore-fp): Add fpsimple.
9399 * config/rs6000/power4.md (power4-fp): Add fpsimple.
9400 (power4-vecsimple): Add veclogical, vecmove.
9401 (power4-veccmp): Add veccmpfx.
9402 * config/rs6000/power5.md (power5-fp): Add fpsimple.
9403 * config/rs6000/power6.md (power6-fp): Add fpsimple.
9404 (power6-vecsimple): Add veclogical, vecmove.
9405 (power6-veccmp): Add veccmpfx.
9406 * config/rs6000/power7.md (power7-fp): Add fpsimple.
9407 (power7-vecsimple): Add veclogical, vecmove, veccmpfx.
9408 * config/rs6000/power8.md (power8-fp): Add fpsimple.
9409 (power8-vecsimple): Add veclogical, vecmove, veccmpfx.
9410 * config/rs6000/rs64.md (rs64a-fp): Add fpsimple.
9411 * config/rs6000/titan.md (titan_fp): Add fpsimple.
9412 * config/rs6000/xfpu.md (fp-default, fp-addsub-s, fp-addsub-d): Add
9413 fpsimple.
9414 * config/rs6000/rs6000.c (rs6000_adjust_cost): Add TYPE_FPSIMPLE.
9415
9416 2016-06-27 Peter Bergner <bergner@vnet.ibm.com>
9417
9418 PR target/71656
9419 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
9420 OPTION_MASK_P9_DFORM_VECTOR.
9421 * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
9422 disable -mpower9-dform-vector when using reload.
9423 (quad_address_p): Remove 'gpr_p' argument and all associated code.
9424 New 'strict' argument. Update all callers. Add strict addressing
9425 support.
9426 (rs6000_legitimate_offset_address_p): Remove call to
9427 virtual_stack_registers_memory_p.
9428 (rs6000_legitimize_reload_address): Add quad address support.
9429 (rs6000_legitimate_address_p): Move call to quad_address_p above
9430 call to virtual_stack_registers_memory_p. Adjust quad_address_p args
9431 to account for new strict usage.
9432 (rs6000_output_move_128bit): Adjust quad_address_p args to account
9433 for new strict usage.
9434 * config/rs6000/predicates.md (quad_memory_operand): Likewise.
9435
9436 2016-06-26 Uros Bizjak <ubizjak@gmail.com>
9437
9438 PR target/70902
9439 PR target/71453
9440 PR target/71555
9441 PR target/71596
9442 PR target/71657
9443 * config/i386/i386.c (ix86_spill_class): Disable condition to
9444 always return NO_REGS.
9445
9446 2016-06-26 Jan Hubicka <hubicka@ucw.cz>
9447
9448 * predict.c: Include gimple-pretty-print.h
9449 (predicted_by_loop_heuristics_p): Check also
9450 PRED_LOOP_EXIT_WITH_RECURSION
9451 (predict_loops): Find self recursive calls and use special purpose
9452 predictors for them; dump log about decisions.
9453 (pass_profile::execute): Dump info about #of iterations.
9454 * predict.def (PRED_LOOP_EXIT_WITH_RECURSION,
9455 (PRED_LOOP_GUARD_WITH_RECURSION): New predictors.
9456
9457 2016-06-26 John David Anglin <danglin@gcc.gnu.org>
9458
9459 * config/pa/pa.c (pa_output_indirect_call): Rework to combine
9460 output_asm_insn calls and shorten long lines. Output .CALL
9461 argument descriptor using pa_output_arg_descriptor. Add various
9462 inline $$dyncall and other optimizations.
9463 (pa_attr_length_indirect_call): Adjust ordering and lengths.
9464
9465 2016-06-25 Jakub Jelinek <jakub@redhat.com>
9466
9467 PR tree-optimization/71643
9468 * tree-ssa-tail-merge.c (find_clusters_1): Ignore basic blocks with
9469 EH preds.
9470
9471 * tree-ssa-tail-merge.c (deps_ok_for_redirect_from_bb_to_bb): Don't
9472 leak a bitmap if dep_bb is NULL.
9473
9474 PR tree-optimization/71631
9475 * tree-ssa-reassoc.c (reassociate_bb): Pass true as last argument
9476 to rewrite_expr_tree even if negate_result, move new_lhs var
9477 declaration and initialization earlier, for powi_result set afterwards
9478 new_lhs to lhs. For negate_result, use new_lhs instead of tmp
9479 if new_lhs != lhs, and don't shadow gsi var.
9480
9481 2016-06-24 Jan Hubicka <hubicka@ucw.cz>
9482
9483 * predict.c (predict_paths_leading_to, predict_paths_leading_to_edge):
9484 Add in_loop parameter.
9485 (predict_loops): Add loop guard heuristics.
9486 * predict.def (PRED_LOOP_GUARD): New heuristics.
9487
9488 2016-06-24 Jan Hubicka <hubicka@ucw.cz>
9489
9490 * predict.c: Include ipa-utils.h
9491 (tree_bb_level_prediction): Predict recursive calls.
9492 (tree_estimate_probability_bb): Skip inexpensive calls for call
9493 predictor.
9494 * predict.def (PRED_RECURSIVE_CALL): New.
9495
9496 2016-06-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9497
9498 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): New #define.
9499 (BU_FLOAT128_1): Likewise.
9500 (FABSQ): Likewise.
9501 (COPYSIGNQ): Likewise.
9502 (RS6000_BUILTIN_NANQ): Likewise.
9503 (RS6000_BUILTIN_NANSQ): Likewise.
9504 (RS6000_BUILTIN_INFQ): Likewise.
9505 (RS6000_BUILTIN_HUGE_VALQ): Likewise.
9506 * config/rs6000/rs6000.c (rs6000_fold_builtin): New prototype.
9507 (TARGET_FOLD_BUILTIN): New #define.
9508 (rs6000_builtin_mask_calculate): Add TARGET_FLOAT128 entry.
9509 (rs6000_invalid_builtin): Add handling for RS6000_BTM_FLOAT128.
9510 (rs6000_fold_builtin): New target hook implementation, handling
9511 folding of 128-bit NaNs and infinities.
9512 (rs6000_init_builtins): Initialize const_str_type_node; ensure all
9513 entries are filled in to avoid problems during bootstrap
9514 self-test; define builtins for 128-bit NaNs and infinities.
9515 (rs6000_opt_mask): Add entry for float128.
9516 * config/rs6000/rs6000.h (RS6000_BTM_FLOAT128): New #define.
9517 (RS6000_BTM_COMMON): Include RS6000_BTM_FLOAT128.
9518 (rs6000_builtin_type_index): Add RS6000_BTI_const_str.
9519 (const_str_type_node): New #define.
9520 * config/rs6000/rs6000.md (copysign<mode>3 for IEEE128): Convert
9521 to a define_expand that dispatches to either copysign<mode>3_soft
9522 or copysign<mode>3_hard.
9523 (copysign<mode>3_hard): Rename from copysign<mode>3.
9524 (copysign<mode>3_soft): New define_insn.
9525 * doc/extend.texi: Document new builtins.
9526
9527 2016-06-24 Jakub Jelinek <jakub@redhat.com>
9528
9529 * cfgloop.c (flow_loop_dump): Cast nit to uint64_t and print it using
9530 PRIu64 instead of lu.
9531
9532 2016-06-24 Eric Botcazou <ebotcazou@adacore.com>
9533
9534 PR debug/71642
9535 * tree-inline.c (remap_decl): When fixing up DECL_ORIGINAL_TYPE, just
9536 copy the type name.
9537
9538 2016-06-24 Jakub Jelinek <jakub@redhat.com>
9539
9540 PR tree-optimization/71647
9541 * omp-low.c (lower_rec_input_clauses): Convert
9542 omp_clause_aligned_alignment (c) to size_type_node for the
9543 last argument of __builtin_assume_aligned.
9544
9545 2016-06-24 H.J. Lu <hongjiu.lu@intel.com>
9546
9547 * configure.ac (calling ___tls_get_addr via GOT): New
9548 assembler/linker check.
9549 (HAVE_AS_IX86_TLS_GET_ADDR_GOT): New. Defined to 1 if 32-bit
9550 assembler and linker supports calling ___tls_get_addr via GOT.
9551 Otherise, defined to 0.
9552 * config.in: Regenerated.
9553 * configure: Likewise.
9554 * config/i386/constraints.md (Yb): New constraint.
9555 * config/i386/i386.h (reg_class): Add TLS_GOTBASE_REGS.
9556 (REG_CLASS_NAMES): Likewise.
9557 (REG_CLASS_CONTENTS): Likewise.
9558 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Replace
9559 the b constraint with the Yb constraint. Call ___tls_get_addr
9560 via GOT for GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT
9561 is 1.
9562 (*tls_local_dynamic_base_32_gnu): Likewise.
9563 (*tls_global_dynamic_64_<mode>): Call _tls_get_addr via GOT for
9564 GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT is 1.
9565 (*tls_local_dynamic_base_64_<mode>): Likewise.
9566
9567 2016-06-24 Martin Liska <mliska@suse.cz>
9568
9569 * cfgloop.c (flow_loop_dump): Dump average number of loop iterations.
9570 * cfgloop.h: Change 'struct loop' to 'const struct loop' for a
9571 few functions.
9572 * cfgloopanal.c (expected_loop_iterations_unbounded): Set a new
9573 argument to true if the expected number of iterations is
9574 loop-based.
9575
9576 2016-06-24 Uros Bizjak <ubizjak@gmail.com>
9577
9578 * configure.ac (HAVE_AS_GOTOF_IN_DATA): Use $as_ix86_gas_32_opt to
9579 assemble for 32bit target.
9580 (HAVE_AS_IX86_TLSGDPLT): Use $as_ix86_gas_32_opt to assemble
9581 and $ld_ix86_gld_32_opt to link for 32bit target.
9582 (HAVE_AS_IX86_TLSLDMPLT): Ditto.
9583 * configure: Regenerate.
9584
9585 2016-06-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9586
9587 * config/arm/arm.c (int_log2): Delete definition and prototype.
9588 (shift_op): Use exact_log2 instead of int_log2.
9589 (vfp3_const_double_for_fract_bits): Likewise.
9590
9591 2016-06-24 Jakub Jelinek <jakub@redhat.com>
9592
9593 * internal-fn.c (expand_arith_set_overflow): New function.
9594 (expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow):
9595 Use it.
9596 (expand_arith_overflow_result_store): Likewise. Handle precision
9597 smaller than mode precision.
9598 * tree-vrp.c (extract_range_basic): For imag part, handle
9599 properly signed 1-bit precision result.
9600 * doc/extend.texi (__builtin_add_overflow): Document that last
9601 argument can't be pointer to enumerated or boolean type.
9602 (__builtin_add_overflow_p): Document that last argument can't
9603 have enumerated or boolean type.
9604
9605 2016-06-23 Michael Meissner <meissner@linux.vnet.ibm.com>
9606 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9607
9608 * config/rs6000/predicates.md (splat_input_operand): Rework.
9609 Don't allow constants, since the insns that use this predicate
9610 don't support constants. Constants are handled by other insns
9611 that are created via combine. During and after register
9612 allocation, only allow indexed or indirect addresses, and not
9613 general addresses. Only allow modes supported by the hardware.
9614 * config/rs6000/rs6000.c (xxsplitb_constant_p): Update usage
9615 comment. Move check for using VSPLTIS<x> to a common location,
9616 instead of doing it in two different places.
9617
9618 2016-06-23 Jocelyn Mayer <l_indien@magic.fr>
9619
9620 * config/i386/driver-i386.c (host_detect_local_cpu): Set
9621 PROCESSOR_PENTIUMPRO for signature_CENTAUR_ebx family >= 9.
9622 <case PROCESSOR_PENTIMUMPRO>: Pass c7 or nehemiah for
9623 signature_CENTAUR_ebx.
9624
9625 2016-06-23 H.J. Lu <hongjiu.lu@intel.com>
9626
9627 PR target/66232
9628 PR target/67400
9629 * configure.ac (as_ix86_tls_ldm_opt): Renamed to ...
9630 (as_ix86_gas_32_opt): This.
9631 (ld_ix86_tls_ldm_opt): Renamed to ...
9632 (ld_ix86_gld_32_opt): This.
9633 (R_386_TLS_LDM reloc): Updated.
9634 (R_386_GOT32X reloc): New assembler/linker check.
9635 (HAVE_AS_IX86_GOT32X): New. Defined to 1 if 32-bit assembler and
9636 linker support "jmp *_start@GOT" and "cmpl $0, bar@GOT". Otherise,
9637 defined to 0.
9638 * config.in: Regenerated.
9639 * configure: Likewise.
9640 * config/i386/i386.c (ix86_force_load_from_GOT_p): Return
9641 true if HAVE_AS_IX86_GOT32X is 1 in 32-bit mode.
9642 (ix86_legitimate_address_p): Allow UNSPEC_GOT for -fno-plt
9643 if ix86_force_load_from_GOT_p returns true.
9644 (ix86_print_operand_address_as): Also support UNSPEC_GOT if
9645 ix86_force_load_from_GOT_p returns true.
9646 (ix86_expand_move): Generate UNSPEC_GOT in 32-bit mode to load
9647 the external function address via the GOT slot.
9648 (ix86_nopic_noplt_attribute_p): Check both TARGET_64BIT and
9649 HAVE_AS_IX86_GOT32X before returning false.
9650 (ix86_output_call_insn): Generate "%!jmp/call\t*%p0@GOT" in
9651 32-bit mode if ix86_nopic_noplt_attribute_p returns true.
9652
9653 2016-06-23 Eric Botcazou <ebotcazou@adacore.com>
9654
9655 * tree-inline.c (remap_decl): Preserve DECL_ORIGINAL_TYPE invariant.
9656
9657 2016-06-23 Andi Kleen <ak@linux.intel.com>
9658
9659 * Makefile.in: Regenerate.
9660 * doc/install.texi: Document autoprofiledbootstrap.
9661
9662 2016-06-23 Andi Kleen <ak@linux.intel.com>
9663
9664 * config/i386/gcc-auto-profile: New file.
9665
9666 2016-06-23 Martin Liska <mliska@suse.cz>
9667
9668 PR middle-end/71619
9669 * predict.c (predict_loops): Revert the hunk that was removed
9670 in r237103.
9671
9672 2016-06-23 Jakub Sejdak <jakub.sejdak@phoesys.com>
9673
9674 * config.gcc: Add support for arm*-*-phoenix* targets.
9675 * config/arm/t-phoenix: New.
9676 * config/phoenix.h: New.
9677
9678 2016-06-23 Uros Bizjak <ubizjak@gmail.com>
9679 H.J. Lu <hongjiu.lu@intel.com>
9680
9681 PR target/67400
9682 * config/i386/i386-protos.h (ix86_force_load_from_GOT_p): New.
9683 * config/i386/i386.c (ix86_force_load_from_GOT_p): New function.
9684 (ix86_legitimate_constant_p): Do not allow UNSPEC_GOTPCREL if
9685 ix86_force_load_from_GOT_p returns true.
9686 (ix86_legitimate_address_p): Allow UNSPEC_GOTPCREL if
9687 ix86_force_load_from_GOT_p returns true.
9688 (ix86_print_operand_address_as): Support UNSPEC_GOTPCREL if
9689 ix86_force_load_from_GOT_p returns true.
9690 (ix86_expand_move): Load the external function address via the
9691 GOT slot if ix86_force_load_from_GOT_p returns true.
9692 * config/i386/predicates.md (x86_64_immediate_operand): Return
9693 false for SYMBOL_REFs where ix86_force_load_from_GOT_p returns true.
9694 (x86_64_zext_immediate_operand): Ditto.
9695
9696 2016-06-22 Uros Bizjak <ubizjak@gmail.com>
9697
9698 * config/i386/i386.c (ix86_expand_move): Simplify SYMBOL_REF handling.
9699
9700 2016-06-22 David Malcolm <dmalcolm@redhat.com>
9701
9702 PR c/70339
9703 * diagnostic-core.h (pedwarn_at_rich_loc): New prototype.
9704 * diagnostic.c (pedwarn_at_rich_loc): New function.
9705 * spellcheck.h (best_match::best_match): Add a
9706 "best_distance_so_far" optional parameter.
9707 (best_match::set_best_so_far): New method.
9708 (best_match::get_best_distance): New accessor.
9709 (best_match::get_best_candidate_length): New accessor.
9710
9711 2016-06-22 Nick Clifton <nickc@redhat.com>
9712
9713 * dwarf2out.c (scompare_loc_descriptor): Use SCALAR_INT_MODE_P() in
9714 place of GET_MODE_CLASS() == MODE_INT, so that partial integer
9715 modes are accepted as well.
9716 (ucompare_loc_descriptor): Likewise.
9717 (minmax_loc_descriptor): Likewise.
9718 (clz_loc_descriptor): Likewise.
9719 (popcount_loc_descriptor): Likewise.
9720 (bswap_loc_descriptor): Likewise.
9721 (rotate_loc_descriptor): Likewise.
9722 (mem_loc_descriptor): Likewise.
9723 (loc_descriptor): Likewise.
9724
9725 2016-06-22 David Malcolm <dmalcolm@redhat.com>
9726
9727 * common.opt (fdiagnostics-parseable-fixits): New option.
9728 * diagnostic.c: Include "selftest.h".
9729 (print_escaped_string): New function.
9730 (print_parseable_fixits): New function.
9731 (diagnostic_report_diagnostic): Call print_parseable_fixits.
9732 (selftest::assert_print_escaped_string): New function.
9733 (ASSERT_PRINT_ESCAPED_STRING_STREQ): New macro.
9734 (selftest::test_print_escaped_string): New function.
9735 (selftest::test_print_parseable_fixits_none): New function.
9736 (selftest::test_print_parseable_fixits_insert): New function.
9737 (selftest::test_print_parseable_fixits_remove): New function.
9738 (selftest::test_print_parseable_fixits_replace): New function.
9739 (selftest::diagnostic_c_tests): New function.
9740 * diagnostic.h (struct diagnostic_context): Add field
9741 "parseable_fixits_p".
9742 * doc/invoke.texi (Diagnostic Message Formatting Options): Add
9743 -fdiagnostics-parseable-fixits.
9744 (-fdiagnostics-parseable-fixits): New option.
9745 * opts.c (common_handle_option): Handle
9746 -fdiagnostics-parseable-fixits.
9747 * selftest-run-tests.c (selftest::run_tests): Call
9748 selftest::diagnostic_c_tests.
9749 * selftest.h (selftest::diagnostic_c_tests): New prototype.
9750
9751 2016-06-22 Ilya Enkovich <ilya.enkovich@intel.com>
9752
9753 PR tree-optimization/71488
9754 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Support
9755 comparison of boolean vectors.
9756 * tree-vect-stmts.c (vectorizable_comparison): Vectorize comparison
9757 of boolean vectors using bitwise operations.
9758
9759 2016-06-22 Andreas Schwab <schwab@suse.de>
9760
9761 * config/aarch64/aarch64-protos.h (aarch64_elf_asm_named_section):
9762 Remove declaration.
9763
9764 2016-06-22 Eric Botcazou <ebotcazou@adacore.com>
9765
9766 * function.c (assign_parm_setup_reg): Prevent sharing in another case.
9767
9768 2016-06-22 Bernd Edlinger <bernd.edlinger@hotmail.de>
9769
9770 * config/i386/i386.c (print_reg): Emit an error message on attempt to
9771 print FLAGS_REG.
9772
9773 2016-06-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9774
9775 * config/arm/arm.c (arm_cortex_a73_tune): New struct.
9776 * config/arm/arm-cores.def (cortex-a73): New entry.
9777 (cortex-a73.cortex-a35): Likewise.
9778 (cortex-a73.cortex-a53): Likewise.
9779 * config/arm/arm-tables.opt: Regenerate.
9780 * config/arm/arm-tune.md: Likewise.
9781 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle mcpu=cortex-a73,
9782 mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
9783 * config/arm/t-aprofile: Handle mcpu=cortex-a73,
9784 mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
9785 * doc/invoke.texi (ARM Options): Document cortex-a73,
9786 cortex-a73.cortex-a35 and cortex-a73.cortex-a53.
9787
9788 2016-06-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9789
9790 * config/aarch64/aarch64.c (cortexa73_tunings): New struct.
9791 * config/aarch64/aarch64-cores.def (cortex-a73): New entry.
9792 (cortex-a73.cortex-a35): Likewise.
9793 (cortex-a73.cortex-a53): Likewise.
9794 * config/aarch64/aarch64-tune.md: Regenerate.
9795 * doc/invoke.texi (AArch64 Options): Document cortex-a73,
9796 cortex-a73.cortex-a35 and cortex-a73.cortex-a53 arguments to
9797 -mcpu and -mtune.
9798
9799 2016-06-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9800
9801 * configure.ac (gcc_cv_as_compress_debug): Remove
9802 --compress-debug-sections as extra as switch.
9803 Handle gas --compress-debug-sections=type.
9804 (gcc_cv_ld_compess_debug): Remove bogus ld_date check.
9805 Handle gld --compress-debug-sections=type.
9806 * configure: Regenerate.
9807
9808 2016-06-21 Andrew Burgess <andrew.burgess@embecosm.com>
9809
9810 * bb-reorder.c (pass_partition_blocks::gate): Update comment.
9811
9812 2016-06-21 John David Anglin <danglin@gcc.gnu.org>
9813
9814 * gcov-tool.c (profile_rewrite): Use int64_t instead of long long.
9815 (do_rewrite): likewise.
9816
9817 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9818
9819 * common/config/mep/mep-common.c: Remove.
9820 * config.gcc: Remove mep-* support.
9821 * config/mep/constraints.md: Remove.
9822 * config/mep/default.h: Remove.
9823 * config/mep/intrinsics.h: Remove.
9824 * config/mep/intrinsics.md: Remove.
9825 * config/mep/ivc2-template.h: Remove.
9826 * config/mep/mep-c5.cpu: Remove.
9827 * config/mep/mep-core.cpu: Remove.
9828 * config/mep/mep-default.cpu: Remove.
9829 * config/mep/mep-ext-cop.cpu: Remove.
9830 * config/mep/mep-intrin.h: Remove.
9831 * config/mep/mep-ivc2.cpu: Remove.
9832 * config/mep/mep-pragma.c: Remove.
9833 * config/mep/mep-protos.h: Remove.
9834 * config/mep/mep.c: Remove.
9835 * config/mep/mep.cpu: Remove.
9836 * config/mep/mep.h: Remove.
9837 * config/mep/mep.md: Remove.
9838 * config/mep/mep.opt: Remove.
9839 * config/mep/predicates.md: Remove.
9840 * config/mep/t-mep: Remove.
9841 * doc/install.texi: Remove mep-* documentation.
9842 * doc/md.texi: Likewise.
9843
9844 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9845
9846 * config.gcc: Remove support for avr-rtems.
9847 * config/avr/gen-avr-mmcu-specs.c: Likewise.
9848 * config/avr/rtems.h: Remove.
9849 * config/avr/t-rtems: Remove.
9850
9851 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9852
9853 * config.gcc: Remove m32r-rtems support.
9854 * config/m32r/rtems.h: Remove.
9855
9856 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9857
9858 * config.gcc: Remove h8300-rtems support.
9859 * config/h8300/rtems.h: Remove.
9860 * config/h8300/t-rtems: Remove.
9861
9862 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9863
9864 * config.gcc: Remove support for knetbsd.
9865 * configure.ac: Likewise.
9866 * config/i386/knetbsd-gnu.h: Remove. * config/i386/knetbsd-gnu64.h: Remove.
9867 * config/knetbsd-gnu.h: Remove.
9868 * configure: Regenerate.
9869
9870 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9871
9872 * config.gcc: Remove support for openbsd 2 and 3.
9873 * config/openbsd-oldgas.h: Remove.
9874
9875 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9876
9877 * config.gcc: Remove interix support.
9878 * config/i386/i386-interix.h: Remove.
9879 * config/i386/interix.opt: Remove.
9880 * config/i386/t-interix: Remove.
9881 * configure: Regenerate.
9882 * configure.ac: Remove interix support.
9883 * doc/install.texi: Remove interix documentation.
9884
9885 2016-06-21 Kelvin Nilsen <kelvin@gcc.gnu.org>
9886
9887 * config/rs6000/rs6000.h: Add conditional preprocessing directives
9888 to disable Power9-specific compiler features if HAVE_AS_POWER9 is
9889 not defined.
9890
9891 2016-06-21 Eric Botcazou <ebotcazou@adacore.com>
9892
9893 * tree.c (verify_type_variant): Skip TYPE_SIZE and TYPE_SIZE_UNIT if
9894 they are both PLACEHOLDER_EXPRs.
9895
9896 2016-06-21 Michael Meissner <meissner@linux.vnet.ibm.com>
9897
9898 * stor-layout.c (layout_type): Move setting complex MODE to
9899 layout_type, instead of setting it ahead of time by the caller.
9900 * tree.c (build_complex_type): Likewise.
9901
9902 2016-06-21 Martin Liska <mliska@suse.cz>
9903
9904 * predict.c (force_edge_cold): Replace imposisble with
9905 impossible.
9906
9907 2016-06-21 Ilya Verbin <ilya.verbin@intel.com>
9908
9909 * config/i386/i386.c (ix86_emit_swsqrtsf): Emit vrsqrt28ps.
9910 * config/i386/sse.md (define_expand "rsqrtv16sf2"): New.
9911
9912 2016-06-21 Ilya Verbin <ilya.verbin@intel.com>
9913
9914 * config/i386/i386.c (ix86_emit_swdivsf): Emit vrcp28ps.
9915
9916 2016-06-21 H.J. Lu <hongjiu.lu@intel.com>
9917 Ilya Enkovich <ilya.enkovich@intel.com>
9918
9919 PR target/71549
9920 * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
9921 New member function to convert V1TImode register to SUBREG
9922 TImode in debug insn.
9923 (timode_scalar_chain::convert_insn): Call fix_debug_reg_uses
9924 after changing register mode to V1TImode.
9925
9926 2016-06-21 Virendra Pathak <virendra.pathak@broadcom.com>
9927
9928 * config/aarch64/aarch64-cores.def (vulcan): New core.
9929 * config/aarch64/aarch64-tune.md: Regenerate.
9930 * doc/invoke.texi: Document vulcan as an available option.
9931
9932 2016-06-21 Eric Botcazou <ebotcazou@adacore.com>
9933
9934 * cse.c (canon_asm_operands): New function extracted from...
9935 (canonicalize_insn): ...here. Call it to canonicalize an ASM_OPERANDS
9936 either standalone or member of a PARALLEL.
9937
9938 2016-06-21 Georg-Johann Lay <avr@gjlay.de>
9939
9940 PR target/30417
9941 * config/avr/gen-avr-mmcu-specs.c (print_mcu):
9942 [*link_data_start]: Wrap -Tdata into %{!Tdata:...}.
9943 [*link_text_start]: Wrap -Ttext into %{!Ttext:...}.
9944
9945 2016-06-21 Georg-Johann Lay <avr@gjlay.de>
9946
9947 PR target/71103
9948 * config/avr/avr.md (movqi): Only handle loading subreg:qi of
9949 constant addresses if can_create_pseudo_p.
9950
9951 2016-06-21 Jakub Jelinek <jakub@redhat.com>
9952
9953 PR tree-optimization/71588
9954 * tree-ssa-strlen.c (valid_builtin_call): New function.
9955 (adjust_last_stmt, handle_builtin_memset, strlen_optimize_stmt): Use
9956 it.
9957
9958 2016-06-20 Jakub Jelinek <jakub@redhat.com>
9959
9960 PR middle-end/71581
9961 * tree-ssa-uninit.c (warn_uninit): If EXPR and VAR are NULL,
9962 see if T isn't anonymous SSA_NAME with COMPLEX_EXPR created
9963 for conversion of scalar user var to complex type and use the
9964 underlying SSA_NAME_VAR in that case. If EXPR is still NULL,
9965 punt.
9966
9967 PR rtl-optimization/71591
9968 * toplev.c (toplev::run_self_tests): If no_backend, complain and
9969 don't run any tests.
9970
9971 2016-06-20 Hans-Peter Nilsson <hp@axis.com>
9972
9973 PR target/71571
9974 * config/cris/cris.c (cris_asm_output_mi_thunk): Add missing "ba"
9975 delay-slot "nop" for PIC with CRIS v32. Also add missing leading
9976 space for PIC with non-v32 and the common non-PIC "jump".
9977
9978 2016-06-20 Jakub Jelinek <jakub@redhat.com>
9979
9980 PR target/71559
9981 * config/i386/i386.c (ix86_fp_cmp_code_to_pcmp_immediate): Fix up
9982 returned values and add UN*/LTGT/*ORDERED cases with values matching
9983 D operand modifier on vcmp for AVX.
9984
9985 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com>
9986
9987 * config/aarch64/aarch64.opt
9988 (mpc-relative-literal-loads): Rename internal option name.
9989 * config/aarch64/aarch64.c
9990 (aarch64_nopcrelative_literal_loads): Rename to
9991 aarch64_pcrelative_literal_loads.
9992 (aarch64_expand_mov_immediate): Likewise.
9993 (aarch64_secondary_reload): Likewise.
9994 (aarch64_can_use_per_function_literal_pools_p): Likewise.
9995 (aarch64_override_options_after_change_1): Rename and simplify logic.
9996 (aarch64_classify_symbol): Merge large model checks into switch,
9997 remove pc-relative load check.
9998
9999 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
10000
10001 * config/arm/aarch-cost-tables.h (cortexa53_extra_costs): Make FP
10002 costs relative to the cost of a register move.
10003
10004 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
10005
10006 * config/aarch64/arm_neon.h (vcvt_n_f64_s64): New.
10007 (vcvt_n_f64_u64): Likewise.
10008 (vcvt_n_s64_f64): Likewise.
10009 (vcvt_n_u64_f64): Likewise.
10010 (vcvt_f64_s64): Likewise.
10011 (vrecpe_f64): Likewise.
10012 (vcvt_f64_u64): Likewise.
10013 (vrecps_f64): Likewise.
10014
10015 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
10016
10017 * config/aarch64/aarch64.md
10018 (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3): Add attributes to
10019 iterators.
10020 (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>3): Likewise. Correct
10021 attributes.
10022 * config/aarch64/aarch64-builtins.c
10023 (aarch64_types_binop_uss_qualifiers): Delete.
10024 (TYPES_BINOP_USS): Likewise.
10025 (aarch64_types_binop_sus_qualifiers): Likewise.
10026 (TYPES_BINOP_SUS): Likewise.
10027 (aarch64_types_fcvt_from_unsigned_qualifiers): New.
10028 (TYPES_FCVTIMM_SUS): Likewise.
10029 * config/aarch64/aarch64-simd-builtins.def (scvtf): Use SHIFTIMM
10030 rather than BINOP.
10031 (ucvtf): Use FCVTIMM_SUS rather than BINOP_SUS.
10032 (fcvtzs): Use SHIFTIMM rather than BINOP.
10033 (fcvtzu): Use SHIFTIMM_USS rather than BINOP_USS.
10034
10035 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
10036
10037 * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): Make FP
10038 costs relative to the cost of a register move.
10039
10040 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com>
10041
10042 * config/aarch64/aarch64.c (aarch64_modes_tieable_p):
10043 Allow scalar/single vector modes to be tieable.
10044
10045 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com>
10046
10047 * config/arm/cortex-a57.md (cortex_a57_fp_cpys): Add fcsel.
10048
10049 2016-06-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10050
10051 * params.def (PARAM_ALIGN_LOOP_ITERATIONS): Use "alignment" instead of
10052 "alignement".
10053 * tree.h (TYPE_ALIGN): Likewise.
10054
10055 2016-06-20 Georg-Johann Lay <avr@gjlay.de>
10056
10057 PR target/71103
10058 * config/avr/avr.md (movqi): Handle loading subreg:qi (const).
10059
10060 2016-06-20 Georg-Johann Lay <avr@gjlay.de>
10061
10062 * config/avr/avr.c (avr_print_operand): Fix "format not a string
10063 literal" build warnings.
10064 (avr_print_operand_address): Dito.
10065
10066 2016-06-19 David Edelsohn <dje.gcc@gmail.com>
10067
10068 PR target/71375
10069 * config/rs6000/aix51.h (TARGET_EXTRA_BUILTINS): Define as 0.
10070 * config/rs6000/aix43.h (TARGET_EXTRA_BUILTINS): Same.
10071
10072 2016-06-18 John David Anglin <danglin@gcc.gnu.org>
10073
10074 * config/pa/pa.h (TARGET_LONG_PIC_PCREL_CALL): Remove.
10075
10076 2016-06-18 Eric Botcazou <ebotcazou@adacore.com>
10077
10078 PR bootstrap/71435
10079 * reload1.c (reload): Pass 0 to finish_spills when called because
10080 update_eliminables_and_spill returns true and remove did_spill.
10081 (finish_spills): Adjust comment and document GLOBAL parameter.
10082
10083 2016-06-17 DJ Delorie <dj@redhat.com>
10084
10085 PR target/71338
10086 * config/rl78/rl78-expand.c (umulqihi3): Enable for G10.
10087 * config/rl78/rl78-virtual.c (umulhi3_shift_virt): Likewise.
10088 (umulqihi3_virt): Likewise.
10089 * config/rl78/rl78-real.c (umulhi3_shift_real): Likewise.
10090 (umulqihi3_real): Likewise.
10091
10092 2016-06-17 Martin Liska <mliska@suse.cz>
10093
10094 * tree-ssa-reassoc.c (transform_add_to_multiply): Use auto_vec.
10095
10096 2016-06-17 Martin Liska <mliska@suse.cz>
10097
10098 * predict.def: PRED_LOOP_EXIT from 92 to 85.
10099
10100 2016-06-17 James Greenhalgh <james.greenhalgh@arm.com>
10101
10102 * config/arm/arm_neon.h (vadd_f32): replace __FAST_MATH with
10103 __FAST_MATH__.
10104 (vaddq_f32): Likewise.
10105 (vmul_f32): Likewise.
10106 (vmulq_f32): Likewise.
10107 (vsub_f32): Likewise.
10108 (vsubq_f32): Likewise.
10109
10110 2016-06-17 Bin Cheng <bin.cheng@arm.com>
10111
10112 PR tree-optimization/71347
10113 * tree-ssa-loop-ivopts.c (determine_group_iv_cost_address): Compute
10114 cost for all uses in group.
10115
10116 2016-06-17 Bin Cheng <bin.cheng@arm.com>
10117
10118 * tree-vect-loop.c (vect_create_epilog_for_reduction): Only
10119 insert gimple seq if it's not empty.
10120
10121 2016-06-17 Bin Cheng <bin.cheng@arm.com>
10122
10123 * tree-vectorizer.h (struct dr_with_seg_len): Remove class
10124 member OFFSET.
10125 * tree-vect-data-refs.c (operator ==): Handle DR_OFFSET directly,
10126 rather than OFFSET.
10127 (comp_dr_with_seg_len_pair): Ditto.
10128 (vect_prune_runtime_alias_test_list): Ditto. Also Canonicalize
10129 struct dr_with_seg_len_pair against DR_OFFSET.
10130 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Handle
10131 DR_OFFSET directly.
10132
10133 2016-06-17 Szabolcs Nagy <szabolcs.nagy@arm.com>
10134
10135 * config/aarch64/geniterators.sh: Handle parenthesised conditions.
10136
10137 2016-06-16 John David Anglin <danglin@gcc.gnu.org>
10138
10139 * config/pa/pa.c (pa_output_pic_pcrel_sequence): New.
10140 (pa_output_lbranch): Use pa_output_pic_pcrel_sequence.
10141 (pa_output_millicode_call): Likewise.
10142 (pa_output_call): Likewise.
10143 (pa_output_indirect_call): Likewise.
10144 (pa_asm_output_mi_thunk): Likewise.
10145
10146 2016-06-16 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
10147
10148 * doc/invoke.texi (x86 Options): Fix -mno-fp-ret-in-387 typo.
10149
10150 2016-06-16 Martin Liska <mliska@suse.cz>
10151
10152 * predict.c (combine_predictions_for_insn): When we find a first
10153 match predictor, we should consider just predictors with
10154 PRED_FLAG_FIRST_MATCH. Print either first match (if any) or
10155 DS theory predictor.
10156 (combine_predictions_for_bb): Likewise.
10157
10158 2016-06-16 Jakub Jelinek <jakub@redhat.com>
10159
10160 * gimplify.c (gimplify_scan_omp_clauses): Handle COMPONENT_REFs
10161 with base of reference to struct.
10162
10163 2016-06-16 Uros Bizjak <ubizjak@gmail.com>
10164
10165 * doc/invoke.texi (x86 Options): Document -m80387 and -mhard-float.
10166
10167 2016-06-16 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
10168
10169 PR target/71151
10170 * config/avr/avr.c (avr_asm_init_sections): Remove setup of
10171 progmem_swtable_section.
10172 (progmem_swtable_section): Remove.
10173 (avr_asm_function_rodata_section): Remove.
10174 (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
10175 * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION: Define to 1.
10176
10177 2016-06-16 Jocelyn Mayer <l_indien@magic.fr>
10178
10179 * config/i386/driver-i386.c (host_detect_local_cpu): Set
10180 PROCESSOR_K8 for signature_CENTAUR_ebx with has_longmode.
10181 <case PROCESSOR_K8>: Pass nano-3000, nano, eden-x2 or k8 for
10182 signature_CENTAUR_ebx.
10183 * config/i386/i386.c (ix86_option_override_internal): Add
10184 definitions for VIA c7, samuel-2, nehemiah, esther, eden-x2, eden-x4,
10185 nano, nano-1000, nano-2000, nano-3000, nano-x2 and nano-x4.
10186 * doc/invoke.texi (x86 Options): Document new VIA -march entries.
10187
10188 2016-06-16 Martin Liska <mliska@suse.cz>
10189
10190 * predict.def: Add fortran loop preheader predictor.
10191 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Properly
10192 fold IFN_BUILTIN_EXPECT with a known constant argument.
10193
10194 2016-06-16 Martin Liska <mliska@suse.cz>
10195
10196 * predict.def: Add 'Fortran' to display text of all
10197 PRED_FORTRAN_* predictors.
10198
10199 2016-06-16 Uros Bizjak <ubizjak@gmail.com>
10200
10201 PR target/71242
10202 * config/ia64/ia64.c (enum ia64_builtins) [IA64_BUILTIN_NANQ]: New.
10203 [IA64_BUILTIN_NANSQ]: Ditto.
10204 (ia64_fold_builtin): New function.
10205 (TARGET_FOLD_BUILTIN): New define.
10206 (ia64_init_builtins) Declare const_string_type node.
10207 Add __builtin_nanq and __builtin_nansq builtin functions.
10208 (ia64_expand_builtin): Handle IA64_BUILTIN_NANQ and IA64_BUILTIN_NANSQ.
10209
10210 2016-06-16 Nick Clifton <nickc@redhat.com>
10211
10212 * config/msp430/msp430-opts.h (msp430_hwmult_types): Add
10213 MSP430_HWMULT_ prefix to enum values.
10214 (msp430_regions): Add MSP430_REGION_ prefix to enum values.
10215 * config/msp430/msp430.c: Update use of enum values.
10216 * config/msp430/msp430.md: Likewise.
10217 * config/msp430/msp430.opt: Likewise.
10218
10219 2016-06-16 Jan Hubicka <hubicka@ucw.cz>
10220
10221 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Fix estimation
10222 of comparsions in the last iteration.
10223
10224 2016-06-16 Claudiu Zissulescu <claziss@synopsys.com>
10225 Joern Rennecke <joern.rennecke@embecosm.com>
10226
10227 * config/arc/arc.c (arc_print_operand_address): Handle pc-relative
10228 addresses.
10229 (arc_needs_pcl_p): Add GOTOFFPC.
10230 (arc_legitimate_pic_addr_p): Likewise.
10231 (arc_output_pic_addr_const): Likewise.
10232 (arc_legitimize_pic_address): Generate a pc-relative address using
10233 GOTOFFPC.
10234 (arc_output_libcall): Use @pcl syntax.
10235 (arc_delegitimize_address_0): Delegitimize ARC_UNSPEC_GOTOFFPC.
10236 * config/arc/arc.md ("unspec"): Add ARC_UNSPEC_GOTOFFPC.
10237 (*movsi_insn): Use @pcl syntax.
10238 (doloop_begin_i): Likewise.
10239
10240 2016-06-16 Martin Liska <mliska@suse.cz>
10241
10242 * predict.def: Define a new predictor.
10243
10244 2016-06-16 Claudiu Zissulescu <claziss@synopsys.com>
10245
10246 * config/arc/arc.opt (mtp-regno): Update text.
10247
10248 2016-06-16 Renlin Li <renlin.li@arm.com>
10249
10250 * config/aarch64/aarch64.c (aarch64_legitimize_address): Fix a typo.
10251
10252 2016-06-16 Jakub Jelinek <jakub@redhat.com>
10253
10254 PR target/71554
10255 * config/i386/i386.md (setcc + movzbl peephole2): Use reg_set_p.
10256 (setcc + and peephole2): Likewise.
10257
10258 PR rtl-optimization/71532
10259 * cse.c (cse_insn): For const/pure calls, invalidate argument passing
10260 memory slots.
10261
10262 2016-06-15 Michael Meissner <meissner@linux.vnet.ibm.com>
10263
10264 * config/rs6000/vsx.md (VSINT_84): Add DImode to enable loading
10265 DImode constants with XXSPLTIB in vector registers.
10266 (vsx_extract_<mode>, V2DImode/V2DFmode): Combine both
10267 vsx_extract_<mode>_internal{1,2} into a single insn that handles
10268 direct move (both ISA 2.07 and ISA 3.0 versions), and optimizes
10269 extraction of the element at the top of the register as a scalar
10270 value.
10271 (vsx_extract_<mode>_internal1): Likewise.
10272 (vsx_extract_<mode>_internal2): Likewise.
10273 * config/rs6000/constraints.md (wi constraint): Remove a comment
10274 about DImode not being allowed in Altivec registers.
10275 (wB constraint): New constraint for constants that can be
10276 generated in Altivec registers with VSPLTISW/VUPKHSW.
10277 * config/rs6000/predicates.md (xxspltib_constant_split): Update
10278 comments.
10279 (xxspltib_constant_nosplit): Likewise.
10280 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Add
10281 support for -mupper-regs-di to enable DImode to go into Altivec
10282 registers.
10283 (POWERPC_MASKS): Likewise.
10284 (power7 cpu): Likewise.
10285 * config/rs6000/rs6000.opt (-mupper-regs-di): Likewise.
10286 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
10287 for DImode being allowed in Altivec registers. Update wi/wj
10288 constraints. Set scalar_in_vmx_p flag.
10289 (rs6000_option_override_internal): Add checks for -mupper-regs-di.
10290 (xxspltib_constant_p): Allow CONST_INT's with VOIDmode. Don't
10291 return true if we could use VSPLTISW/VUPKHSW instead of XXSPLTIB.
10292 (rs6000_opt_masks): Add -mupper-regs-di.
10293 * config/rs6000/rs6000.md (lfiwax): Update clobbers that don't use
10294 direct move to use wi and not wj.
10295 (lfiwzx): Likewise.
10296 (floatsi<mode>2_lfiwax_mem): Combine alternatives into a single
10297 alternative.
10298 (floatunssi<mode>2_lfiwzx_mem): Likewise.
10299 (fix_trunc<mode>di2_fctidz): Change second alternative to allow
10300 any VSX register, instead of just Altivec registers, to allow
10301 either operand to be an Altivec register or both.
10302 (fixuns_trunc<mode>di2_fctiduz): Likewise.
10303 (movdi_internal32): Add support for -mupper-regs-di. Add support
10304 to load constants via XXSPLTIB or VSPLTISW. Add spacing to allow
10305 the alternatives and attributes to be lined up to be easier to
10306 read.
10307 (movdi_internal64): Likewise.
10308 (64-bit DImode splitters): Change predicates to only split loading
10309 up GPR registers. Add splits for using XXSPLTIB or VSPLTISW to
10310 load constants in ISA 3.0 or ISA 2.07 respectively.
10311 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
10312 -mupper-regs-di. Update -mupper-regs-df and -mupper-regs-sf to
10313 mention -mcpu=power9 sets these options.
10314 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document the
10315 wB constraint.
10316
10317 2016-06-15 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
10318
10319 PR target/67353
10320 * config/avr/avr.c (avr_set_current_function): Warn misspelled
10321 interrupt/ signal handler if -Wmisspelled-isr flag is enabled.
10322 * config/avr/avr.opt (Wmisspelled-isr): New warning flag. Enabled
10323 by default to warn misspelled interrupt/ signal handler.
10324 * doc/invoke.texi (AVR Options): Document it. Update description
10325 for -nodevicelib option.
10326
10327 2016-06-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10328
10329 * config/aarch64/aarch64-simd.md (aarch64_<sur>shll_n<mode>): Clean
10330 up parentheses. Use GET_MODE_UNIT_BITSIZE.
10331 (aarch64_<sur>shll2_n<mode>): Likewise.
10332
10333 2016-06-15 Ilya Enkovich <ilya.enkovich@intel.com>
10334
10335 PR middle-end/71529
10336 * ipa-chkp.c (chkp_build_instrumented_fndecl): Fix
10337 DECL_CONTEXT for copied arguments.
10338
10339 2016-06-15 Alan Hayward <alan.hayward@arm.com>
10340
10341 PR tree-optimization/71483
10342 * tree-vect-loop.c (vectorizable_live_operation): Pick correct index
10343 for slp
10344
10345 2016-06-15 Martin Liska <mliska@suse.cz>
10346
10347 * predict.c (tree_predict_by_opcode): Call predict_edge_def
10348 instead of predict_edge w/o a probability.
10349
10350 2016-06-15 Alan Hayward <alan.hayward@arm.com>
10351
10352 PR tree-optimization/71439
10353 * tree-vect-loop.c (vect_analyze_loop_operations): Additional check for
10354 live PHIs.
10355
10356 2016-06-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10357
10358 * ifcvt.c (bb_ok_for_noce_multiple_sets): Allow simple lowpart
10359 register subregs in SET_SRC.
10360
10361 2016-06-15 Richard Biener <rguenther@suse.de>
10362
10363 * tree-vect-stmts.c (vectorizable_store): Remove strided grouped
10364 store restrictions.
10365
10366 2016-06-15 Richard Biener <rguenther@suse.de>
10367
10368 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Do
10369 not consider dependences between accesses that belong to the
10370 same group.
10371 (vect_analyze_data_ref_dependences): Do not analyze read-read
10372 or self-dependences.
10373
10374 2016-06-14 David Malcolm <dmalcolm@redhat.com>
10375
10376 * spellcheck-tree.c: Include spellcheck-tree.h rather than
10377 spellcheck.h.
10378 (find_closest_identifier): Reimplement in terms of
10379 best_match<tree,tree>.
10380 * spellcheck-tree.h: New file.
10381 * spellcheck.c (struct edit_distance_traits<const char *>): New
10382 struct.
10383 (find_closest_string): Reimplement in terms of
10384 best_match<const char *, const char *>.
10385 * spellcheck.h (levenshtein_distance): Move prototype of tree-based
10386 overload to spellcheck-tree.h.
10387 (find_closest_identifier): Likewise.
10388 (struct edit_distance_traits<T>): New template.
10389 (class best_match): New class.
10390
10391 2016-06-14 David Malcolm <dmalcolm@redhat.com>
10392
10393 * selftest-run-tests.c (selftest::run_tests): Call
10394 selftest::spellcheck_tree_c_tests.
10395 * selftest.h (selftest::spellcheck_tree_c_tests): New decl.
10396 * spellcheck-tree.c: Include selftest.h and stringpool.h.
10397 (selftest::test_find_closest_identifier): New function.
10398 (selftest::spellcheck_tree_c_tests): New function.
10399 * spellcheck.c (selftest::test_find_closest_string): Verify that
10400 the order of the vec does not affect the results for this case.
10401 (selftest::test_data): New array.
10402 (selftest::test_metric_conditions): New function.
10403 (selftest::spellcheck_c_tests): Add a test of case-comparison.
10404 Call selftest::test_metric_conditions.
10405
10406 2016-06-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10407
10408 * config/rs6000/rs6000-builtin.def (commentary): Typo.
10409 (BU_P9_MISC_1): Likewise.
10410 (BU_P9_64BIT_MISC_0): Likewise.
10411 (BU_P9_MISC_0): Likewise.
10412
10413 2016-06-14 David Malcolm <dmalcolm@redhat.com>
10414
10415 * gcc-rich-location.c
10416 (gcc_rich_location::add_fixit_misspelled_id): New method.
10417 * gcc-rich-location.h
10418 (gcc_rich_location::add_fixit_misspelled_id): Add decl.
10419
10420 2016-06-14 Andreas Tobler <andreast@gcc.gnu.org>
10421
10422 * config/arm/freebsd.h: Only enable unaligned access for armv6 on
10423 FreeBSD 11 and above.
10424
10425 2016-06-14 Uros Bizjak <ubizjak@gmail.com>
10426
10427 * config/i386/i386.md (signbittf2): Emit sse_movmskps for TARGET_SSE.
10428
10429 2016-06-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10430
10431 * expmed.h: Close parenthesis in "at your option" in copyright
10432 boilerplate.
10433 * lower-subreg.h: Likewise.
10434
10435 2016-06-14 Richard Biener <rguenther@suse.de>
10436
10437 PR middle-end/71526
10438 * genmatch.c (expr::gen_transform): Use in_type for comparisons
10439 if available.
10440
10441 2015-06-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10442
10443 * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
10444 New function.
10445 (aarch64_rtx_costs): Use it. Rewrite CONST_INT_P (op1) case to handle
10446 mask+shift version.
10447 * config/aarch64/aarch64-protos.h (aarch64_mask_and_shift_for_ubfiz_p):
10448 New prototype.
10449 * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Replace
10450 matching condition with aarch64_mask_and_shift_for_ubfiz_p.
10451
10452 2016-06-14 Richard Biener <rguenther@suse.de>
10453
10454 PR tree-optimization/71522
10455 * tree-ssa.c (non_rewritable_lvalue_p): Do not rewrite non-float
10456 copying into float copying.
10457
10458 2016-06-14 Jakub Jelinek <jakub@redhat.com>
10459
10460 PR tree-optimization/71520
10461 * tree-ssa-tail-merge.c (find_duplicate): Handle labels.
10462 (replace_block_by): Move user labels from bb1 to bb2.
10463
10464 2016-06-14 Richard Biener <rguenther@suse.de>
10465
10466 PR middle-end/71310
10467 PR bootstrap/71510
10468 * expr.h (get_bit_range): Declare.
10469 * expr.c (get_bit_range): Export.
10470 * fold-const.c (optimize_bit_field_compare): Use get_bit_range and
10471 word_mode again to constrain the bitfield access.
10472
10473 2016-06-14 Richard Biener <rguenther@suse.de>
10474
10475 PR tree-optimization/71521
10476 * tree-vrp.c (extract_range_from_binary_expr_1): Guard
10477 division int_const_binop against zero divisor.
10478
10479 2016-06-13 Uros Bizjak <ubizjak@gmail.com>
10480
10481 * config/i386/i386.md (signbittf2): New expander.
10482 * config/i386/sse.md (ptesttf2): New insn pattern.
10483
10484 2016-06-13 David Malcolm <dmalcolm@redhat.com>
10485
10486 PR bootstrap/71481
10487 * input.c (selftest::test_reading_source_line): Avoid reading from
10488 __FILE__ by creating a tempfile with known content and reading
10489 from that instead.
10490
10491 2016-06-13 David Malcolm <dmalcolm@redhat.com>
10492
10493 * pretty-print.c (assert_pp_format_colored): Skip the test if
10494 GCC_COLORS is set.
10495 (test_pp_format): Remove comment about GCC_COLORS.
10496
10497 2016-06-13 David Malcolm <dmalcolm@redhat.com>
10498
10499 * input.c (test_reading_source_line): Use SELFTEST_LOCATION.
10500 * pretty-print.c (assert_pp_format_va): Add location param and use
10501 it with ASSERT_STREQ_AT.
10502 (assert_pp_format): Add location param and pass it to
10503 assert_pp_format_va.
10504 (assert_pp_format_colored): Likewise.
10505 (ASSERT_PP_FORMAT_1): New.
10506 (ASSERT_PP_FORMAT_2): New.
10507 (ASSERT_PP_FORMAT_3): New.
10508 (test_pp_format): Provide SELFTEST_LOCATION throughout, either
10509 explicitly, or implicitly via the above macros.
10510 * selftest.c (selftest::pass): Use a selftest::location rather
10511 than file and line.
10512 (selftest::fail): Likewise. Print the function name.
10513 (selftest::fail_formatted): Likewise.
10514 (selftest::assert_streq): Use a selftest::location rather than
10515 file and line.
10516 * selftest.h (selftest::location): New struct.
10517 (SELFTEST_LOCATION): New macro.
10518 (selftest::pass): Accept a const location & rather than file
10519 and line.
10520 (selftest::fail): Likewise.
10521 (selftest::fail_formatted): Likewise.
10522 (selftest::assert_streq): Likewise.
10523 (ASSERT_TRUE): Update for above changes, using SELFTEST_LOCATION.
10524 (ASSERT_FALSE): Likewise.
10525 (ASSERT_EQ): Likewise.
10526 (ASSERT_NE): Likewise.
10527 (ASSERT_STREQ): Likewise.
10528 (ASSERT_PRED1): Likewise.
10529 (ASSERT_STREQ_AT): New macro.
10530
10531 2016-06-13 David Malcolm <dmalcolm@redhat.com>
10532
10533 * selftest.c (selftest::fail_formatted): New function.
10534 (selftest::assert_streq): New function.
10535 * selftest.h (selftests::fail_formatted): New decl.
10536 (selftest::assert_streq): New decl.
10537 (ASSERT_STREQ): Reimplement in terms of selftest::assert_streq.
10538
10539 2016-06-13 Jeff Law <law@redhat.com>
10540
10541 PR tree-optimization/71403
10542 * tree-ssa-threadbackward.c
10543 (convert_and_register_jump_thread_path): No longer accept reference
10544 to path. Do not pop items off the path anymore.
10545 (fsm_find_control_statement_thread_paths): Do not allow threading
10546 to a deeper loop nest. Pop the last item off the path here rather
10547 than in convert_and_register_jump_thread_path.
10548
10549 2016-06-13 Evandro Menezes <e.menezes@samsung.com>
10550 Wilco Dijkstra <Wilco.Dijkstra@arm.com>
10551
10552 [AArch64] Emit division using the Newton series
10553
10554 * config/aarch64/aarch64-protos.h
10555 (cpu_approx_modes): Add new member "division".
10556 (aarch64_emit_approx_div): Declare new function.
10557 * config/aarch64/aarch64.c
10558 (generic_approx_modes): New member "division".
10559 (exynosm1_approx_modes): Likewise.
10560 (xgene1_approx_modes): Likewise.
10561 (aarch64_emit_approx_div): Define new function.
10562 * config/aarch64/aarch64.md ("div<mode>3"): New expansion.
10563 * config/aarch64/aarch64-simd.md ("div<mode>3"): Likewise.
10564 * config/aarch64/aarch64.opt (-mlow-precision-div): Add new option.
10565 * doc/invoke.texi (-mlow-precision-div): Describe new option.
10566
10567 2016-06-13 Evandro Menezes <e.menezes@samsung.com>
10568 Wilco Dijkstra <wilco.dijkstra@arm.com>
10569
10570 [AArch64] Emit square root using the Newton series
10571
10572 * config/aarch64/aarch64-protos.h
10573 (aarch64_emit_approx_rsqrt): Replace with new function
10574 "aarch64_emit_approx_sqrt".
10575 (cpu_approx_modes): New member "sqrt".
10576 * config/aarch64/aarch64.c
10577 (generic_approx_modes): New member "sqrt".
10578 (exynosm1_approx_modes): Likewise.
10579 (xgene1_approx_modes): Likewise.
10580 (aarch64_emit_approx_rsqrt): Replace with new function
10581 "aarch64_emit_approx_sqrt".
10582 (aarch64_override_options_after_change_1): Handle new option.
10583 * config/aarch64/aarch64-simd.md
10584 (rsqrt<mode>2): Use new function instead.
10585 (sqrt<mode>2): New expansion and insn definitions.
10586 * config/aarch64/aarch64.md: Likewise.
10587 * config/aarch64/aarch64.opt
10588 (mlow-precision-sqrt): Add new option description.
10589 * doc/invoke.texi (mlow-precision-sqrt): Likewise.
10590
10591 2016-06-13 Evandro Menezes <e.menezes@samsung.com>
10592
10593 [AArch64] Add more choices for the reciprocal square root approximation
10594
10595 Allow a target to prefer such operation depending on the operation mode.
10596
10597 * config/aarch64/aarch64-protos.h
10598 (AARCH64_APPROX_MODE): New macro.
10599 (AARCH64_APPROX_{NONE,ALL}): Likewise.
10600 (cpu_approx_modes): New structure.
10601 (tune_params): New member "approx_modes".
10602 * config/aarch64/aarch64-tuning-flags.def
10603 (AARCH64_EXTRA_TUNE_APPROX_RSQRT): Remove macro.
10604 * config/aarch64/aarch64.c
10605 (generic_approx_modes): New core "cpu_approx_modes" structure.
10606 (exynosm1_approx_modes): Likewise.
10607 (xgene1_approx_modes): Likewise.
10608 (generic_tunings): New member "approx_modes".
10609 (cortexa35_tunings): Likewise.
10610 (cortexa53_tunings): Likewise.
10611 (cortexa57_tunings): Likewise.
10612 (cortexa72_tunings): Likewise.
10613 (exynosm1_tunings): Likewise.
10614 (thunderx_tunings): Likewise.
10615 (xgene1_tunings): Likewise.
10616 (use_rsqrt_p): New argument for the mode and use new member from
10617 "tune_params".
10618 (aarch64_builtin_reciprocal): Devise mode from builtin.
10619 (aarch64_optab_supported_p): New argument for the mode.
10620 * doc/invoke.texi (-mlow-precision-recip-sqrt): Reword description.
10621
10622 2016-06-13 Kelvin Nilsen <kelvin@gcc.gnu.org>
10623
10624 * config/rs6000/rs6000.h (RS6000_BTM_COMMON): Add the
10625 RS6000_BTM_MODULO flag into the set of flags that are considered
10626 to be part of the common configuration.
10627
10628 2016-06-13 Kelvin Nilsen <kelvin@gcc.gnu.org>
10629
10630 * config/rs6000/altivec.h (vec_absd): New macro for vector absolute
10631 difference unsigned.
10632 (vec_absdb): New macro for vector absolute difference unsigned
10633 byte.
10634 (vec_absdh): New macro for vector absolute difference unsigned
10635 half-word.
10636 (vec_absdw): New macro for vector absolute difference unsigned word.
10637 * config/rs6000/altivec.md (UNSPEC_VADU): New value.
10638 (vadu<mode>3): New insn.
10639 (*p9_vadu<mode>3): New insn.
10640 * config/rs6000/rs6000-builtin.def (vadub): New built-in
10641 definition.
10642 (vaduh): New built-in definition.
10643 (vaduw): New built-in definition.
10644 (vadu): New overloaded built-in definition.
10645 (vadub): New overloaded built-in definition.
10646 (vaduh): New overloaded built-in definition.
10647 (vaduw): New overloaded built-in definition.
10648 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
10649 overloaded vector absolute difference unsigned functions.
10650 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
10651 the ISA 3.0 vector absolute difference unsigned built-in functions.
10652
10653 2016-06-13 Eric Botcazou <ebotcazou@adacore.com>
10654
10655 * tree-ssa-sccvn.c (vn_reference_lookup_3): Use a uniform test and
10656 update shared_lookup_references only once after changing operands.
10657
10658 2016-06-13 Thomas Schwinge <thomas@codesourcery.com>
10659
10660 PR middle-end/71373
10661 * tree-nested.c (convert_nonlocal_omp_clauses)
10662 (convert_local_omp_clauses): Document missing OMP_CLAUSE_*.
10663
10664 * tree-cfg.c (edge_to_cases_cleanup): Fix CASE_CHAIN typo.
10665 * tree.def (CASE_LABEL_EXPR): Likewise.
10666
10667 2016-06-13 Bernd Edlinger <bernd.edlinger@hotmail.de>
10668
10669 PR bootstrap/71481
10670 * input.c (test_builtins): Fix an assertion.
10671
10672 2016-06-13 Uros Bizjak <ubizjak@gmail.com>
10673
10674 * config/i386/i386.md (paritydi2): Use ix86_expand_setcc.
10675 (paritysi2): Ditto.
10676 (isinfxf2): Ditto.
10677 (isinf<mode>2): Ditto.
10678
10679 2016-06-13 Uros Bizjak <ubizjak@gmail.com>
10680
10681 * ggc-tests.c (test_finalization): Only test need_finalization_p
10682 for GCC_VERSION >= 4003.
10683
10684 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10685
10686 * config/s390/vecintrin.h: Fix file description in comment.
10687
10688 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10689
10690 * config/s390/s390-builtin-types.def: Change builtin type naming
10691 scheme to match builtin-types.def.
10692
10693 2016-06-13 Marc Glisse <marc.glisse@inria.fr>
10694
10695 * fold-const.c (optimize_minmax_comparison): Remove.
10696 (fold_comparison): Remove call to the above.
10697 * match.pd (MIN (X, Y) == X, MIN (X, 5) == 0, MIN (X, C1) < C2):
10698 New transformations.
10699
10700 2016-06-13 Alan Hayward <alan.hayward@arm.com>
10701
10702 PR tree-optimization/71416
10703 * tree-vect-loop.c (vectorizable_live_operation): Let worklist have
10704 multiple entries
10705
10706 2016-06-13 Martin Liska <mliska@suse.cz>
10707
10708 * predict.c (enum predictor_reason): Prefix enum with REASON_.
10709 (combine_predictions_for_insn): Likewise.
10710 (prune_predictions_for_bb): Likewise.
10711 (combine_predictions_for_bb): Likewise.
10712
10713 2016-06-13 Richard Biener <rguenther@suse.de>
10714
10715 PR tree-optimization/71505
10716 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Make
10717 assert match comment.
10718
10719 2016-06-13 Marek Polacek <polacek@redhat.com>
10720
10721 PR middle-end/71476
10722 * gimplify.c (maybe_warn_switch_unreachable): Factored out of
10723 gimplify_switch_expr.
10724 (warn_switch_unreachable_r): New function.
10725
10726 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10727
10728 PR target/71379
10729 * config/s390/s390.c (s390_expand_builtin): Increase MAX_ARGS by
10730 one.
10731
10732 2016-06-13 Richard Biener <rguenther@suse.de>
10733
10734 PR middle-end/64516
10735 * fold-const.c (fold_unary_loc): Preserve alignment when
10736 folding a VIEW_CONVERT_EXPR into a MEM_REF.
10737
10738 2016-06-13 Martin Liska <mliska@suse.cz>
10739
10740 PR sanitizer/71458
10741 * toplev.c (process_options): Do not enable -fcheck-pointer-bounds
10742 w/ -fsanitize=bounds.
10743
10744 2016-06-12 Uros Bizjak <ubizjak@gmail.com>
10745
10746 * config/i386/i386.c (ix86_init_builtins): Calculate
10747 FLOAT128_FTYPE_CONST_STRING function type only once.
10748 * doc/extend.texi (x86 Built-in Functions): Update text, __float128
10749 built-in functions are available for x86-32 and x86-64 targets.
10750
10751 2016-06-12 Uros Bizjak <ubizjak@gmail.com>
10752
10753 PR target/71241
10754 * config/i386/i386.i386-builtin-types.def (CONST_STRING):
10755 New primitive type.
10756 (FLOAT128_FTYPE_CONST_STRING): New function type.
10757 * config/i386/i386.c (enum ix86_builtins) [IX86_BUILTIN_NANQ]: New.
10758 [IX86_BUILTIN_NANSQ]: Ditto.
10759 (ix86_fold_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
10760 (ix86_init_builtin_types): Declare const_string_type_node.
10761 (ix86_init_builtins): Add __builtin_nanq and __builtin_nansq
10762 builtin functions.
10763 (ix86_expand_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
10764 * doc/extend.texi (x86 Built-in Functions): Document
10765 __builtin_nanq and __builtin_nansq.
10766
10767 2016-06-11 Jiong Wang <jiong.wang@arm.com>
10768
10769 PR target/71061
10770 * config/arm/arm-protos.h (arm_attr_length_pop_multi): New declaration.
10771 * config/arm/arm.c (arm_attr_length_pop_multi): New function to return
10772 length for pop patterns.
10773 (arm_attr_length_push_multi): Update comments.
10774 * config/arm/arm.md (*load_multiple_with_writeback): Set "length"
10775 attribute.
10776 (*pop_multiple_with_writeback_and_return): Likewise.
10777 (*pop_multiple_with_return): Likewise.
10778
10779 2016-06-11 Segher Boessenkool <segher@kernel.crashing.org>
10780
10781 PR middle-end/71310
10782 * fold-const.c (optimize_bit_field_compare): Don't try to use
10783 word_mode unconditionally for reading the bit field, look at
10784 DECL_BIT_FIELD_REPRESENTATIVE instead.
10785
10786 2016-06-11 Kugan Vivekanandarajah <kuganv@linaro.org>
10787
10788 PR middle-end/71478
10789 * tree-ssa-reassoc.c (reassociate_bb): Remove (-1) from ops list for
10790 vector integer type.
10791
10792 2016-06-10 Jakub Jelinek <jakub@redhat.com>
10793
10794 PR middle-end/71494
10795 * tree-nested.c (convert_nonlocal_reference_stmt): For GIMPLE_GOTO
10796 without LABEL_DECL, set *handled_ops_p to false instead of true.
10797
10798 2016-06-10 Martin Sebor <msebor@redhat.com>
10799
10800 PR c/71392
10801 * builtin-attrs.def (ATTR_NOTHROW_NONNULL_LEAF_LIST): New macro.
10802 (ATTR_NOTHROW_NONNULL_TYPEGENERIC_LEAF): Same.
10803 * builtins.def (BUILT_IN_SADD_OVERFLOW, BUILT_IN_SADDL_OVERFLOW): Use
10804 them.
10805 (BUILT_IN_SADDLL_OVERFLOW, BUILT_IN_SSUB_OVERFLOW): Same.
10806 (BUILT_IN_SSUBL_OVERFLOW, BUILT_IN_SSUBLL_OVERFLOW): Same.
10807 (BUILT_IN_SMUL_OVERFLOW, BUILT_IN_SMULL_OVERFLOW): Same.
10808 (BUILT_IN_SMULLL_OVERFLOW, BUILT_IN_UADD_OVERFLOW): Same.
10809 (BUILT_IN_UADDL_OVERFLOW, BUILT_IN_UADDLL_OVERFLOW): Same.
10810 (BUILT_IN_USUB_OVERFLOW, BUILT_IN_USUBL_OVERFLOW): Same.
10811 (BUILT_IN_USUBLL_OVERFLOW, BUILT_IN_UMUL_OVERFLOW): Same.
10812 (BUILT_IN_UMULL_OVERFLOW, BUILT_IN_UMULLL_OVERFLOW): Same.
10813
10814 2016-06-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
10815
10816 * config/arm/arm.h (pool_vector_label,
10817 return_used_this_function): Remove.
10818
10819 2016-06-10 Jeff Law <law@redhat.com>
10820
10821 PR tree-optimization/71335
10822 * tree-ssa-threadbackward.c (profitable_jump_thread_path): Filter out
10823 zero length paths here.
10824 (convert_and_register_jump_thread_path): Remove hacks related to
10825 duplicated blocks in the jump thread path.
10826 (fsm_find_control_statement_thread_paths): Avoid putting the same
10827 block on the thread path twice, but ensure the thread path is
10828 unchanged from the caller's point of view.
10829
10830 2016-06-10 Jan Hubicka <hubicka@ucw.cz>
10831
10832 * predict.c (predict_loops): Remove PRED_LOOP_BRANCH.
10833 * predict.def (PRED_LOOP_BRANCH): Remove.
10834
10835 2016-06-10 David Malcolm <dmalcolm@redhat.com>
10836
10837 * Makefile.in (OBJS): Add ggc-tests.o.
10838 (GTFILES): Add ggc-tests.c.
10839 * ggc-tests.c: New file.
10840 * selftest-run-tests.c (selftest::run_tests): Call
10841 selftest::ggc_tests_c_tests.
10842 * selftest.h (selftest::ggc_tests_c_tests): New prototype.
10843
10844 2016-06-10 Alexander Monakov <amonakov@ispras.ru>
10845
10846 * match.pd (-1 / B < A): Use :c to avoid pattern duplication.
10847
10848 2016-06-10 Maxim Ostapenko <m.ostapenko@samsung.com>
10849
10850 PR sanitizer/71480
10851 * varasm.c (place_block_symbol): Adjust alignment for asan protected
10852 STRING_CSTs even if TREE_CONSTANT_POOL_ADDRESS_P.
10853
10854 2016-06-10 Jan Hubicka <hubicka@ucw.cz>
10855
10856 * profile.c: Include cfgloop.h.
10857 (branch_prob): Compute estimated number of iterations.
10858 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Do not
10859 recompute estimate number of iterations from profile.
10860
10861 2016-06-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
10862
10863 PR inline-asm/68843
10864 * reg-stack.c (check_asm_stack_operands): Explicit input arguments
10865 must be grouped on top of stack. Don't force early clobber
10866 on ordinary reg outputs.
10867
10868 2016-06-10 Richard Biener <rguenther@suse.de>
10869
10870 * targhooks.c (default_builtin_vectorization_cost): Adjust
10871 vec_construct cost.
10872
10873 2016-06-10 Richard Biener <rguenther@suse.de>
10874
10875 * gimple-fold.c (gimple_fold_builtin_memory_op): Make sure
10876 to fold the RHS to a constant if possible.
10877
10878 2016-06-10 Thomas Schwinge <thomas@codesourcery.com>
10879
10880 PR middle-end/71373
10881 * tree-nested.c (convert_nonlocal_omp_clauses)
10882 (convert_local_omp_clauses): Handle OMP_CLAUSE_ASYNC,
10883 OMP_CLAUSE_WAIT, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
10884 OMP_CLAUSE__CACHE_, OMP_CLAUSE_TILE.
10885
10886 * gimplify.c (gimplify_adjust_omp_clauses): Discard
10887 OMP_CLAUSE_TILE.
10888 * omp-low.c (scan_sharing_clauses): Don't expect OMP_CLAUSE_TILE.
10889
10890 * omp-low.c (scan_sharing_clauses): Don't expect
10891 OMP_CLAUSE__CACHE_.
10892
10893 2016-06-10 Alan Hayward <alan.hayward@arm.com>
10894
10895 PR tree-optimization/71407
10896 PR tree-optimization/71416
10897 * tree-vect-loop.c (vectorizable_live_operation): Use vectype for
10898 BIT_FIELD_REF type.
10899
10900 2016-06-10 Richard Biener <rguenther@suse.de>
10901
10902 PR middle-end/71477
10903 * cfgloop.c (alloc_loop): Initialize nb_iterations_likely_upper_bound.
10904
10905 2016-06-09 Eric Botcazou <ebotcazou@adacore.com>
10906
10907 * df-problems.c (df_note_bb_compute): Guard use of DF_INSN_INFO_GET.
10908
10909 2016-06-09 Vladimir Makarov <vmakarov@redhat.com>
10910 Jiong Wang <jiong.wang@arm.com>
10911
10912 PR rtl-optimization/70751
10913 * lra-constraints.c (process_alt_operands): Recognize Non-pseudo
10914 spilled into memory.
10915
10916 2016-06-09 Jonathan Yong <10walls@gmail.com>
10917
10918 Revert:
10919 2015-09-21 Jonathan Yong <10walls@gmail.com>
10920
10921 * config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search
10922 sysroot/usr/lib/32api for additional win32 libraries,
10923 fixes failing Cygwin bootstrapping.
10924
10925 2016-06-09 Marcin Baczyński <marbacz@gmail.com>
10926
10927 * diagnostic.h (diagnostic_line_cutoff, diagnostic_flush_buffer):
10928 Delete.
10929
10930 2016-06-09 David Malcolm <dmalcolm@redhat.com>
10931
10932 PR bootstrap/71471
10933 * pretty-print.c (pp_indent): Specify that %p is printed in a
10934 host-dependent manner.
10935 (test_pp_format): Remove the test for %p.
10936
10937 2016-06-09 Maciej W. Rozycki <macro@imgtec.com>
10938
10939 * config/mips/mips.c (mips_output_jump): Fix formatting.
10940
10941 2016-06-09 Richard Biener <rguenther@suse.de>
10942
10943 PR tree-optimization/71462
10944 * tree-ssa-loop-manip.c (find_uses_to_rename): Guard against
10945 removed blocks.
10946
10947 2016-06-09 Martin Liska <mliska@suse.cz>
10948
10949 * predict.c (dump_prediction): Add new argument.
10950 (enum predictor_reason): New enum.
10951 (struct predictor_hash): New struct.
10952 (predictor_hash::hash): New function.
10953 (predictor_hash::equal): Likewise.
10954 (not_removed_prediction_p): New function.
10955 (prune_predictions_for_bb): Likewise.
10956 (combine_predictions_for_bb): Prune predictions.
10957
10958 2016-06-09 Martin Liska <mliska@suse.cz>
10959
10960 * predict.c (filter_predictions): New function.
10961 (remove_predictions_associated_with_edge): Use the filter
10962 function.
10963 (equal_edge_p): New function.
10964
10965 2016-06-09 Stefan Bruens <stefan.bruens@rwth-aachen.de>
10966
10967 * doc/invoke.texi (ARM Options): Use lexicographical ordering.
10968 Correct usage of @samp vs @option, add @samp where appropriate.
10969 Add -march={armv6k,armv6z,arm6zk}, remove -march=ep9312.
10970 Add armv6s-m and document it, as it is no official ARM name.
10971
10972 2016-06-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10973
10974 * ifcvt.c (struct noce_if_info): Add transform_name field.
10975 (noce_try_move): Set if_info->transform_name to the function name.
10976 (noce_try_ifelse_collapse): Likewise.
10977 (noce_try_store_flag): Likewise.
10978 (noce_try_inverse_constants): Likewise.
10979 (noce_try_store_flag_constants): Likewise.
10980 (noce_try_addcc): Likewise.
10981 (noce_try_store_flag_mask): Likewise.
10982 (noce_try_cmove): Likewise.
10983 (noce_try_cmove_arith): Likewise.
10984 (noce_try_minmax): Likewise.
10985 (noce_try_abs): Likewise.
10986 (noce_try_sign_mask): Likewise.
10987 (noce_try_bitop): Likewise.
10988 (noce_convert_multiple_sets): Likewise.
10989 (noce_process_if_block): Print if_info->transform_name to
10990 dump_file if transformation succeeded.
10991
10992 2016-06-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10993
10994 * config/arm/cortex-a57.md (cortex_a57_alu):
10995 Handle csel type.
10996
10997 2016-06-08 Martin Sebor <msebor@redhat.com>
10998 Jakub Jelinek <jakub@redhat.com>
10999
11000 PR c++/70507
11001 PR c/68120
11002 * builtins.def (BUILT_IN_ADD_OVERFLOW_P, BUILT_IN_SUB_OVERFLOW_P,
11003 BUILT_IN_MUL_OVERFLOW_P): New builtins.
11004 * builtins.c: Include gimple-fold.h.
11005 (fold_builtin_arith_overflow): Handle
11006 BUILT_IN_{ADD,SUB,MUL}_OVERFLOW_P.
11007 (fold_builtin_3): Likewise.
11008 * doc/extend.texi (Integer Overflow Builtins): Document
11009 __builtin_{add,sub,mul}_overflow_p.
11010
11011 2016-06-08 Jose E. Marchesi <jose.marchesi@oracle.com>
11012
11013 * config/sparc/driver-sparc.c (cpu_names): Fix the entry for the
11014 SPARC-M7 and add an entry for SPARC-S7 cpus (Sonoma).
11015
11016 2016-06-08 Alan Lawrence <alan.lawrence@arm.com>
11017
11018 * config/aarch64/aarch64.c (aarch64_function_arg_alignment):
11019 Rewrite, looking one level down for records and arrays.
11020
11021 2016-06-08 David Malcolm <dmalcolm@redhat.com>
11022
11023 * pretty-print.c: Include "selftest.h".
11024 (pp_format): Fix comment.
11025 (identifier_to_locale): Likewise.
11026 (selftest::test_basic_printing): New function.
11027 (selftest::assert_pp_format): New function.
11028 (selftest::test_pp_format): New function.
11029 (selftest::pretty_print_c_tests): New function.
11030 * selftest-run-tests.c (selftest::run_tests): Call
11031 selftest::pretty_print_c_tests.
11032 * selftest.h (pretty_print_c_tests): New declaration.
11033
11034 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
11035
11036 * invoke.texi (max-loop-headers-insns): Document.
11037 * params.def (PARAM_MAX_LOOP_HEADER_INSNS): New.
11038 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Update comment.
11039 (ch_base::copy_headers): Use PARAM_MAX_LOOP_HEADER_INSNS.
11040
11041 2016-06-08 Richard Biener <rguenther@suse.de>
11042
11043 * tree-vect-stmts.c (vectorizable_load): Remove restrictions
11044 on strided SLP loads and fall back to scalar loads in case
11045 we can't chunk them.
11046
11047 2016-06-08 Richard Biener <rguenther@suse.de>
11048
11049 PR tree-optimization/71452
11050 * tree-ssa.c (non_rewritable_lvalue_p): Make sure that the
11051 type used for the SSA rewrite has enough precision to cover
11052 the dynamic type of the location.
11053
11054 2016-06-08 Jakub Jelinek <jakub@redhat.com>
11055 Richard Biener <rguenther@suse.de>
11056
11057 PR c++/71448
11058 * fold-const.c (fold_comparison): Handle CONSTANT_CLASS_P (base0)
11059 the same as DECL_P (base0) for indirect_base0. Use equality_code
11060 in one further place.
11061
11062 2016-06-08 Richard Sandiford <richard.sandiford@arm.com>
11063
11064 * expmed.c (store_bit_field_1): Do not restrict a multiword op0
11065 to one word if the field is known to overlap other words.
11066 (extract_bit_field_1): Likewise.
11067 (store_split_bit_field): Remove compensating code.
11068 (extract_split_bit_field): Likewise.
11069
11070 2016-06-08 Bernd Schmidt <bschmidt@redhat.com>
11071
11072 PR debug/71432
11073 PR ada/71413
11074 * tree-ssa-strlen.c (handle_builtin_memcmp): Ignore debug insns.
11075
11076 2016-06-08 Jiong Wang <jiong.wang@arm.com>
11077
11078 * config/aarch64/aarch64-builtins.def (faddp): New builtins for modes in
11079 VDQF.
11080 * config/aarch64/aarch64-simd.md (aarch64_faddp<mode>): New.
11081 (arch64_addpv4sf): Delete.
11082 (reduc_plus_scal_v4sf): Use "gen_aarch64_faddpv4sf" instead of
11083 "gen_aarch64_addpv4sf".
11084 * config/aarch64/arm_neon.h (vpadd_f32): Remove inline assembly. Use
11085 builtin.
11086 (vpadds_f32): Likewise.
11087 (vpaddq_f32): Likewise.
11088 (vpaddq_f64): Likewise.
11089
11090 2016-06-08 Jiong Wang <jiong.wang@arm.com>
11091
11092 * config/aarch64/aarch64-builtins.def (fabd): New builtins for modes
11093 VALLF.
11094 * config/aarch64/aarch64-simd.md (fabd<mode>_3): Extend modes from VDQF
11095 to VALLF. Rename to "fabd<mode>3".
11096 "*fabd_scalar<mode>3): Delete.
11097 * config/aarch64/arm_neon.h (vabds_f32): Remove inline assembly.
11098 Use builtin.
11099 (vabdd_f64): Likewise.
11100 (vabd_f32): Likewise.
11101 (vabd_f64): Likewise.
11102 (vabdq_f32): Likewise.
11103 (vabdq_f64): Likewise.
11104
11105 2016-06-08 Jiong Wang <jiong.wang@arm.com>
11106
11107 * config/aarch64/aarch64-builtins.def (rsqrts): New builtins for modes
11108 VALLF.
11109 * config/aarch64/aarch64-simd.md (aarch64_rsqrts_<mode>3): Rename to
11110 "aarch64_rsqrts<mode>".
11111 * config/aarch64/aarch64.c (get_rsqrts_type): Update gen* name.
11112 * config/aarch64/arm_neon.h (vrsqrtss_f32): Remove inline assembly. Use
11113 builtin.
11114 (vrsqrtsd_f64): Likewise.
11115 (vrsqrts_f32): Likewise.
11116 (vrsqrts_f64): Likewise.
11117 (vrsqrtsq_f32): Likewise.
11118 (vrsqrtsq_f64): Likewise.
11119
11120 2016-06-08 Jiong Wang <jiong.wang@arm.com>
11121
11122 * config/aarch64/aarch64-builtins.def (rsqrte): New builtins for modes
11123 VALLF.
11124 * config/aarch64/aarch64-simd.md (aarch64_rsqrte_<mode>2): Rename to
11125 "aarch64_rsqrte<mode>".
11126 * config/aarch64/aarch64.c (get_rsqrte_type): Update gen* name.
11127 * config/aarch64/arm_neon.h (vrsqrts_f32): Remove inline assembly. Use
11128 builtin.
11129 (vrsqrted_f64): Likewise.
11130 (vrsqrte_f32): Likewise.
11131 (vrsqrte_f64): Likewise.
11132 (vrsqrteq_f32): Likewise.
11133 (vrsqrteq_f64): Likewise.
11134
11135 2016-06-08 Jiong Wang <jiong.wang@arm.com>
11136
11137 * config/aarch64/aarch64-builtins.def (scvtf): Register vector modes.
11138 (ucvtf): Likewise.
11139 (fcvtzs): Likewise.
11140 (fcvtzu): Likewise.
11141 * config/aarch64/aarch64-simd.md
11142 (<FCVT_F2FIXED:fcvt_fixed_insn><VDQF:mode>3): New.
11143 (<FCVT_FIXED2F:fcvt_fixed_insn><VDQ_SDI:mode>3): Likewise.
11144 * config/aarch64/arm_neon.h (vcvt_n_f32_s32): Remove inline assembly.
11145 Use builtin.
11146 (vcvt_n_f32_u32): Likewise.
11147 (vcvt_n_s32_f32): Likewise.
11148 (vcvt_n_u32_f32): Likewise.
11149 (vcvtq_n_f32_s32): Likewise.
11150 (vcvtq_n_f32_u32): Likewise.
11151 (vcvtq_n_f64_s64): Likewise.
11152 (vcvtq_n_f64_u64): Likewise.
11153 (vcvtq_n_s32_f32): Likewise.
11154 (vcvtq_n_s64_f64): Likewise.
11155 (vcvtq_n_u32_f32): Likewise.
11156 (vcvtq_n_u64_f64): Likewise.
11157 * config/aarch64/iterators.md (VDQ_SDI): New mode iterator.
11158 (VSDQ_SDI): Likewise.
11159 (fcvt_target): Support V4DI, V4SI and V2SI.
11160 (FCVT_TARGET): Likewise.
11161
11162 2016-06-08 Jiong Wang <jiong.wang@arm.com>
11163
11164 * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New
11165 (TYPES_BINOP_SUS): Likewise.
11166 (aarch64_simd_builtin_data): Update include file name.
11167 (aarch64_builtins): Likewise.
11168 * config/aarch64/aarch64-simd-builtins.def (scvtf): New entries
11169 for conversion between scalar float-point and fixed-point.
11170 (ucvtf): Likewise.
11171 (fcvtzs): Likewise.
11172 (fcvtzu): Likewise.
11173 * config/aarch64/aarch64.md
11174 (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3: New
11175 pattern for conversion between scalar float to fixed-pointer.
11176 (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>: Likewise.
11177 (UNSPEC_FCVTZS): New UNSPEC enumeration.
11178 (UNSPEC_FCVTZU): Likewise.
11179 (UNSPEC_SCVTF): Likewise.
11180 (UNSPEC_UCVTF): Likewise.
11181 * config/aarch64/arm_neon.h (vcvtd_n_f64_s64): Remove inline assembly.
11182 Use builtin.
11183 (vcvtd_n_f64_u64): Likewise.
11184 (vcvtd_n_s64_f64): Likewise.
11185 (vcvtd_n_u64_f64): Likewise.
11186 (vcvtd_n_f32_s32): Likewise.
11187 (vcvts_n_f32_u32): Likewise.
11188 (vcvtd_n_s32_f32): Likewise.
11189 (vcvts_n_u32_f32): Likewise.
11190 * config/aarch64/iterators.md (fcvt_target): Support integer to float
11191 mapping.
11192 (FCVT_TARGET): Likewise.
11193 (FCVT_FIXED2F): New iterator.
11194 (FCVT_F2FIXED): Likewise.
11195 (fcvt_fixed_insn): New define_int_attr.
11196
11197 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
11198
11199 * predict.c (pass_strip_predict_hints::execute): Cleanup CFG if
11200 some statements was removed.
11201
11202 2016-06-08 Alan Hayward <alan.hayward@arm.com>
11203
11204 * tree-vect-data-refs.c (vect_analyze_data_refs): Remove debug newline.
11205 * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): likewise.
11206 (vect_can_advance_ivs_p): likewise.
11207 (vect_update_ivs_after_vectorizer): likewise.
11208 * tree-vect-loop.c (vect_determine_vectorization_factor): likewise.
11209 (vect_analyze_scalar_cycles_1): likewise.
11210 (vect_analyze_loop_operations): likewise.
11211 (report_vect_op): likewise.
11212 (vect_is_slp_reduction): likewise.
11213 (vect_is_simple_reduction): likewise.
11214 (get_initial_def_for_induction): likewise.
11215 (vect_transform_loop): likewise.
11216 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): likewise.
11217 (vect_recog_sad_pattern): likewise.
11218 (vect_recog_widen_sum_pattern): likewise.
11219 (vect_recog_widening_pattern): likewise.
11220 (vect_recog_divmod_pattern): likewise.
11221 * tree-vect-slp.c (vect-build-slp_tree_1): likewise.
11222 (vect_analyze_slp_instance): likewise.
11223 (vect_transform_slp_perm_load): likewise.
11224 (vect_schedule_slp_instance): likewise.
11225
11226 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
11227
11228 * predict.c (predict_iv_comparison): Mention that heuristics is broken.
11229 (return_prediction): PRED_CONST_RETURN predict return as not taken.
11230 * predict.def (PRED_CONTINUE): Change hitrate 50->67
11231 (PRED_LOOP_BRANCH): Document predictor as broken.
11232 (PRED_LOOP_EXIT): Change hitrate 91->92.
11233 (PRED_LOOP_EXTRA_EXIT): Change hitrate 91->83.
11234 (PRED_POINTER, PRED_TREE_POINTER): Change hitrate 85->70.
11235 (PRED_OPCODE_POSITIVE): Change hitrate 79->64.
11236 (PRED_OPCODE_NONEQUAL): Change hitrate 91->66.
11237 (PRED_TREE_OPCODE_POSITIVE): Change hitrate 73->64
11238 (PRED_TREE_OPCODE_NONEQUAL): Chnage hitrate 72->66
11239 (PRED_CALL): Chane hitrate 71->67.
11240 (PRED_TREE_EARLY_RETURN): Document issues, change hitrate 61->54.
11241 (PRED_GOTO): Document as unused right now.
11242 (PRED_CONST_RETURN): Change hitrate 67->69
11243 (PRED_NEGATIVE_RETURN): Change hitrate 96->98
11244 (PRED_NULL_RETURN): Change hitrate 91->90.
11245 (PRED_LOOP_IV_COMPARE_GUESS): Change hitrate to 98.
11246 (PRED_FORTRAN_FAIL_ALLOC): Change hitrate to 62; document issues.
11247 (PRED_FORTRAN_SIZE_ZERO): Change hitrate to 99.
11248
11249 2016-06-07 Bill Seurer <seurer@linux.vnet.ibm.com>
11250
11251 * config/rs6000/altivec.h: Add __builtin_vec_mul.
11252 * config/rs6000/rs6000-builtin.def (vec_mul): Change vec_mul to a
11253 special case Altivec builtin.
11254 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
11255 VSX_BUILTIN_VEC_MUL (replaced with special case code).
11256 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
11257 code for ALTIVEC_BUILTIN_VEC_MUL.
11258 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
11259 for __builtin_vec_mul.
11260
11261 2016-06-07 Peter Bergner <bergner@vnet.ibm.com>
11262
11263 * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mhtm and
11264 -mno-htm.
11265
11266 2016-06-07 David Malcolm <dmalcolm@redhat.com>
11267
11268 * spellcheck.c (selftest::test_find_closest_string): New function.
11269 (spellcheck_c_tests): Call the above.
11270
11271 2016-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11272
11273 * simplify-rtx.c (simplify_cond_clz_ctz): Delete 'mode' local variable.
11274
11275 2016-06-07 Jakub Jelinek <jakub@redhat.com>
11276
11277 * config/i386/sse.md (avx_vec_concat<mode>): Add v=v,vm and
11278 Yv=Yv,C alternatives.
11279
11280 2016-06-07 Richard Biener <rguenther@suse.de>
11281
11282 PR c/61564
11283 * common.opt (ffast-math): Make Optimization.
11284
11285 2016-06-07 Simon Dardis <simon.dardis@imgtec.com>
11286 Prachi Godbole <prachi.godbole@imgtec.com>
11287
11288 * config/mips/p5600.md (p5600_fpu_fadd): Remove checking for
11289 `fabs' and `fneg' type attributes.
11290 (p5600_fpu_fabs): Add `fmove' to the comment.
11291
11292 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
11293
11294 * gimple.c: Include builtins.h
11295 (gimple_inexpensive_call_p): New function.
11296 * gimple.h (gimple_inexpensive_call_p): Declare.
11297 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use it.
11298 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise;
11299 fix formatting.
11300
11301 2016-06-07 Paolo Carlini <paolo.carlini@oracle.com>
11302
11303 * diagnostic.c (diagnostic_impl, diagnostic_n_impl): New.
11304 (inform, inform_at_rich_loc, inform_n, warning, warning_at,
11305 warning_at_rich_loc, warning_n, pedwarn, permerror,
11306 permerror_at_rich_loc, error, error_n, error_at, error_at_rich_loc,
11307 sorry, fatal_error, internal_error, internal_error_no_backtrace):
11308 Use the above.
11309
11310 2016-06-07 Richard Biener <rguenther@suse.de>
11311
11312 PR tree-optimization/71428
11313 * tree-ssa-math-opts.c (perform_symbolic_merge): Properly distinguish
11314 BIT_FIELD_REF op vs. load.
11315
11316 2016-06-07 Richard Biener <rguenther@suse.de>
11317
11318 PR middle-end/71423
11319 * match.pd ((X | ~Y) -> Y <= X): Properly invert the comparison
11320 for signed ops.
11321
11322 2016-06-06 John David Anglin <danglin@gcc.gnu.org>
11323
11324 * config/pa/pa.md (call): Generate indirect long calls to non-local
11325 functions on TARGET_64BIT.
11326 (call_value): Likewise.
11327
11328 2016-06-06 John David Anglin <danglin@gcc.gnu.org>
11329
11330 * config/pa/pa.md (call_val_reg_64bit): Remove "reg: DI " clobber from
11331 pattern and subsequent splitters.
11332 (call_val_reg_64bit_post_reload): Likewise.
11333
11334 2016-06-07 Kugan Vivekanandarajah <kuganv@linaro.org>
11335
11336 PR middle-end/71408
11337 * tree-ssa-reassoc.c (zero_one_operation): Fix NEGATE_EXPR operand for
11338 propagate_op_to_single_use.
11339
11340 2016-06-07 Kugan Vivekanandarajah <kuganv@linaro.org>
11341
11342 PR middle-end/71281
11343 * tree-ssa-reassoc.c (reassociate_bb): Set uid for negate stmt.
11344
11345 2016-06-07 Uros Bizjak <ubizjak@gmail.com>
11346
11347 * config/i386/i386.h (enum ix86_enitity): Add X86_DIRFLAG.
11348 (enum x86_dirflag_state): New enum.
11349 (NUM_MODES_FOR_MODE_SWITCHING): Add X86_DIRFLAG_ANY.
11350 (machine_function): Remove needs_cld.
11351 (ix86_current_function_needs_cld): Remove.
11352 * config/i386/i386.c (ix86_set_func_type): Set
11353 ix86_optimize_mode_switching[X86_DIRFLAG] to 1.
11354 (ix86_expand_prologue): Do not emit CLD here.
11355 (ix86_dirflag_mode_needed): New function.
11356 (ix86_dirflag_mode_entry): Ditto.
11357 (ix86_mode_needed): Handle X86_DIRFLAG entity.
11358 (ix86_mode_after): Ditto.
11359 (ix86_mode_entry): Ditto.
11360 (ix86_mode_exit): Ditto.
11361 (ix86_emit_mode_set): Ditto.
11362 * config/i386/i386.md (strmov_singleop): Set
11363 ix86_optimize_mode_switching[X86_DIRFLAG] to 1 for TARGET_CLD.
11364 Do not set ix86_current_function_needs_cld.
11365 (rep_mov): Ditto.
11366 (strset_singleop): Ditto.
11367 (rep_stos): Ditto.
11368 (cmpstrnqi_nz_1): Ditto.
11369 (cmpstrnqi_1): Ditto.
11370 (strlenqi_1): Ditto.
11371
11372 2016-06-06 Jakub Jelinek <jakub@redhat.com>
11373
11374 PR tree-optimization/71259
11375 * tree-vect-slp.c (vect_get_constant_vectors): For
11376 VECTOR_BOOLEAN_TYPE_P, return all ones constant instead of
11377 one for constant op, and use COND_EXPR for non-constant.
11378
11379 2016-06-06 David Malcolm <dmalcolm@redhat.com>
11380
11381 * Makefile.in (OBJS): Add function-tests.o,
11382 hash-map-tests.o, hash-set-tests.o, rtl-tests.o,
11383 selftest-run-tests.o.
11384 (OBJS-libcommon): Add selftest.o.
11385 (OBJS-libcommon-target): Add selftest.o.
11386 (all.internal): Add "selftest".
11387 (all.cross): Likewise.
11388 (selftest): New phony target.
11389 (s-selftest): New target.
11390 (selftest-gdb): New phony target.
11391 (COLLECT2_OBJS): Add selftest.o.
11392 * bitmap.c: Include "selftest.h".
11393 (selftest::test_gc_alloc): New function.
11394 (selftest::test_set_range): New function.
11395 (selftest::test_clear_bit_in_middle): New function.
11396 (selftest::test_copying): New function.
11397 (selftest::test_bitmap_single_bit_set_p): New function.
11398 (selftest::bitmap_c_tests): New function.
11399 * common.opt (fself-test): New.
11400 * diagnostic-show-locus.c: Include "selftest.h".
11401 (make_range): New function.
11402 (test_range_contains_point_for_single_point): New function.
11403 (test_range_contains_point_for_single_line): New function.
11404 (test_range_contains_point_for_multiple_lines): New function.
11405 (assert_eq): New function.
11406 (test_get_line_width_without_trailing_whitespace): New function.
11407 (selftest::diagnostic_show_locus_c_tests): New function.
11408 * et-forest.c: Include "selftest.h".
11409 (selftest::test_single_node): New function.
11410 (selftest::test_simple_tree): New function.
11411 (selftest::test_disconnected_nodes): New function.
11412 (selftest::et_forest_c_tests): New function.
11413 * fold-const.c: Include "selftest.h".
11414 (selftest::assert_binop_folds_to_const): New function.
11415 (selftest::assert_binop_folds_to_nonlvalue): New function.
11416 (selftest::test_arithmetic_folding): New function.
11417 (selftest::fold_const_c_tests): New function.
11418 * function-tests.c: New file.
11419 * gimple.c: Include "selftest.h".
11420 Include "gimple-pretty-print.h".
11421 (selftest::verify_gimple_pp): New function.
11422 (selftest::test_assign_single): New function.
11423 (selftest::test_assign_binop): New function.
11424 (selftest::test_nop_stmt): New function.
11425 (selftest::test_return_stmt): New function.
11426 (selftest::test_return_without_value): New function.
11427 (selftest::gimple_c_tests): New function.
11428 * hash-map-tests.c: New file.
11429 * hash-set-tests.c: New file.
11430 * input.c: Include "selftest.h".
11431 (selftest::assert_loceq): New function.
11432 (selftest::test_accessing_ordinary_linemaps): New function.
11433 (selftest::test_unknown_location): New function.
11434 (selftest::test_builtins): New function.
11435 (selftest::test_reading_source_line): New function.
11436 (selftest::input_c_tests): New function.
11437 * rtl-tests.c: New file.
11438 * selftest-run-tests.c: New file.
11439 * selftest.c: New file.
11440 * selftest.h: New file.
11441 * spellcheck.c: Include "selftest.h".
11442 (selftest::levenshtein_distance_unit_test_oneway): New function,
11443 adapted from testsuite/gcc.dg/plugin/levenshtein_plugin.c.
11444 (selftest::levenshtein_distance_unit_test): Likewise.
11445 (selftest::spellcheck_c_tests): Likewise.
11446 * toplev.c: Include selftest.h.
11447 (toplev::run_self_tests): New.
11448 (toplev::main): Handle -fself-test.
11449 * toplev.h (toplev::run_self_tests): New.
11450 * tree.c: Include "selftest.h".
11451 (selftest::test_integer_constants): New function.
11452 (selftest::test_identifiers): New function.
11453 (selftest::test_labels): New function.
11454 (selftest::tree_c_tests): New function.
11455 * tree-cfg.c: Include "selftest.h".
11456 (selftest::push_fndecl): New function.
11457 (selftest::test_linear_chain): New function.
11458 (selftest::test_diamond): New function.
11459 (selftest::test_fully_connected): New function.
11460 (selftest::tree_cfg_c_tests): New function.
11461 * vec.c: Include "selftest.h".
11462 (selftest::safe_push_range): New function.
11463 (selftest::test_quick_push): New function.
11464 (selftest::test_safe_push): New function.
11465 (selftest::test_truncate): New function.
11466 (selftest::test_safe_grow_cleared): New function.
11467 (selftest::test_pop): New function.
11468 (selftest::test_safe_insert): New function.
11469 (selftest::test_ordered_remove): New function.
11470 (selftest::test_unordered_remove): New function.
11471 (selftest::test_block_remove): New function.
11472 (selftest::reverse_cmp): New function.
11473 (selftest::test_qsort): New function.
11474 (selftest::vec_c_tests): New function.c.
11475 * wide-int.cc: Include selftest.h and wide-int-print.h.
11476 (selftest::from_int <wide_int>): New function.
11477 (selftest::from_int <offset_int>): New function.
11478 (selftest::from_int <widest_int>): New function.
11479 (selftest::assert_deceq): New function.
11480 (selftest::assert_hexeq): New function.
11481 (selftest::test_printing <VALUE_TYPE>): New function template.
11482 (selftest::test_ops <VALUE_TYPE>): New function template.
11483 (selftest::test_comparisons <VALUE_TYPE>): New function template.
11484 (selftest::run_all_wide_int_tests <VALUE_TYPE>): New function
11485 template.
11486 (selftest::wide_int_cc_tests): New function.
11487
11488 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11489
11490 PR middle-end/37780
11491 * ifcvt.c (noce_try_ifelse_collapse): New function.
11492 Declare prototype.
11493 (noce_process_if_block): Call noce_try_ifelse_collapse.
11494 * simplify-rtx.c (simplify_cond_clz_ctz): New function.
11495 (simplify_ternary_operation): Use the above to simplify
11496 conditional CLZ/CTZ expressions.
11497
11498 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11499
11500 PR middle-end/37780
11501 * config/aarch64/aarch64.md (ctz<mode>2): Convert to
11502 define_insn_and_split.
11503
11504 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11505
11506 PR middle-end/37780
11507 * config/arm/arm.md (ctzsi2): Convert to define_insn_and_split.
11508
11509 2016-06-06 Bernd Edlinger <bernd.edlinger@hotmail.de>
11510
11511 PR c/24414
11512 * cfgexpand.c (expand_asm_loc): Remove handling for ADDR_EXPR.
11513 Implicitly clobber memory for basic asm with non-empty assembler
11514 string. Use targetm.md_asm_adjust also here.
11515 * compare-elim.c (arithmetic_flags_clobber_p): Use asm_noperands here.
11516 * final.c (final_scan_insn): Handle basic asm in PARALLEL block.
11517 * gimple.c (gimple_asm_clobbers_memory_p): Handle basic asm with
11518 non-empty assembler string.
11519 * ira.c (compute_regs_asm_clobbered): Use asm_noperands here.
11520 * recog.c (asm_noperands): Handle basic asm in PARALLEL block.
11521 (decode_asm_operands): Handle basic asm in PARALLEL block.
11522 (extract_insn): Handle basic asm in PARALLEL block.
11523 * doc/extend.texi: Mention new behavior of basic asm.
11524 * config/ia64/ia64 (rtx_needs_barrier): Handle ASM_INPUT here.
11525 * config/pa/pa.c (branch_to_delay_slot_p, branch_needs_nop_p,
11526 branch_needs_nop_p): Use asm_noperands.
11527
11528 2016-06-06 Jose E. Marchesi <jose.marchesi@oracle.com>
11529
11530 * config/sparc/sparc.md (cpu): Add niagara7 cpu type.
11531 Include the M7 SPARC DFA scheduler.
11532 New attribute v3pipe.
11533 Annotate insns with v3pipe where appropriate.
11534 Define cpu_feature vis4.
11535 Add lzd instruction type and set it on clzdi_sp64 and clzsi_sp64.
11536 Add (V8QI "8") to vbits.
11537 Add insns {add,sub}v8qi3
11538 Add insns ss{add,sub}v8qi3
11539 Add insns us{add,sub}{v8qi,v4hi}3
11540 Add insns {min,max}{v8qi,v4hi,v2si}3
11541 Add insns {minu,maxu}{v8qi,v4hi,v2si}3
11542 Add insns fpcmp{le,gt,ule,ug,ule,ugt}{8,16,32}_vis.
11543 * config/sparc/niagara4.md: Add a comment explaining the
11544 discrepancy between the documented latenty numbers and the
11545 implemented ones.
11546 * config/sparc/niagara7.md: New file.
11547 * configure.ac (HAVE_AS_SPARC5_VIS4): Define if the assembler
11548 supports SPARC5 and VIS 4.0 instructions.
11549 * configure: Regenerate.
11550 * config.in: Likewise.
11551 * config.gcc: niagara7 is a supported cpu in sparc*-*-* targets.
11552 * config/sparc/sol2.h (ASM_CPU32_DEFAUILT_SPEC): Set for
11553 TARGET_CPU_niagara7.
11554 (ASM_CPU64_DEFAULT_SPEC): Likewise.
11555 (CPP_CPU_SPEC): Handle niagara7.
11556 (ASM_CPU_SPEC): Likewise.
11557 * config/sparc/sparc-opts.h (processor_type): Add
11558 PROCESSOR_NIAGARA7.
11559 (mvis4): New option.
11560 * config/sparc/sparc.h (TARGET_CPU_niagara7): Define.
11561 (AS_NIAGARA7_FLAG): Define.
11562 (ASM_CPU64_DEFAULT_SPEC): Set for niagara7.
11563 (CPP_CPU64_DEFAULT_SPEC): Likewise.
11564 (CPP_CPU_SPEC): Handle niagara7.
11565 (ASM_CPU_SPEC): Likewise.
11566 * config/sparc/sparc.c (niagara7_costs): Define.
11567 (sparc_option_override): Handle niagara7 and adjust cache-related
11568 parameters with better values for niagara cpus. Also support VIS4.
11569 (sparc32_initialize_trampoline): Likewise.
11570 (sparc_use_sched_lookahead): Likewise.
11571 (sparc_issue_rate): Likewise.
11572 (sparc_register_move_cost): Likewise.
11573 (dump_target_flag_bits): Support VIS4.
11574 (sparc_vis_init_builtins): Likewise.
11575 (sparc_builtins): Likewise.
11576 * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__ for
11577 VIS4 4.0.
11578 * config/sparc/driver-sparc.c (cpu_names): Add SPARC-M7 and
11579 UltraSparc M7.
11580 * config/sparc/sparc.opt (sparc_processor_type): New value
11581 niagara7.
11582 * config/sparc/visintrin.h (__attribute__): Prototypes for the
11583 VIS4 builtins.
11584 * doc/invoke.texi (SPARC Options): Document -mcpu=niagara7 and
11585 -mvis4.
11586 * doc/extend.texi (SPARC VIS Built-in Functions): Document the
11587 VIS4 builtins.
11588
11589 2016-06-06 Jonathan Wakely <jwakely@redhat.com>
11590
11591 * doc/sourcebuild.texi (Directives): Remove extra closing braces.
11592
11593 2016-06-06 Richard Biener <rguenther@suse.de>
11594
11595 PR tree-optimization/71398
11596 * tree-ssa-loop-ivcanon.c (unloop_loops): First unloop, then
11597 remove edges.
11598
11599 2016-06-05 James Bowman <james.bowman@ftdichip.com>
11600
11601 * config/ft32/ft32.c (ft32_setup_incoming_varargs,
11602 ft32_expand_prolog, ft32_expand_epilogue):
11603 Handle pretend_args.
11604 * config/ft32/ft32.h: Remove OUTGOING_REG_PARM_STACK_SPACE.
11605 * config/ft32/ft32.md: Add pretend_returner.
11606
11607 2016-06-06 Uros Bizjak <ubizjak@gmail.com>
11608
11609 PR target/71389
11610 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
11611 Copy op1 RTX to avoid invalid sharing.
11612 (ix86_expand_vector_move_misalign): Ditto.
11613
11614 2016-06-05 John David Anglin <danglin@gcc.gnu.org>
11615
11616 * expr.c (move_by_pieces_d::generate): Mark mode parameter with
11617 ATTRIBUTE_UNUSED.
11618
11619 2016-06-05 Jan Hubicka <hubicka@ucw.cz>
11620
11621 * predict.c (predicted_by_loop_heuristics_p): New function.
11622 (predict_iv_comparison): Use it.
11623 (predict_loops): Walk from innermost loops; do not predict edges
11624 leaving multiple loops multiple times; implement
11625 PRED_LOOP_ITERATIONS_MAX heuristics.
11626 * predict.def (PRED_LOOP_ITERATIONS_MAX): New predictor.
11627
11628 2016-06-05 Jan Hubicka <hubicka@ucw.cz>
11629
11630 * cfg.c (check_bb_profile): Do not report mismatched profiles when
11631 only edges out of BB are EH edges.
11632
11633 2016-06-04 Martin Sebor <msebor@redhat.com>
11634 Marcin Baczyński <marbacz@gmail.com>
11635
11636 PR c/48116
11637 * doc/invoke.texi (-Wreturn-type): Mention not warning on return with
11638 a void expression in a void function.
11639
11640 2016-06-03 Jan Hubicka <hubicka@ucw.cz>
11641
11642 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Do not check
11643 aux; dump reasons of decisions.
11644 (should_duplicate_loop_header_p): Likewise.
11645 (do_while_loop_p): Likewise.
11646 (ch_base::copy_headers): Dump asi num insns duplicated.
11647
11648 2016-06-04 Jakub Jelinek <jakub@redhat.com>
11649
11650 PR tree-optimization/71405
11651 * tree-ssa.c (execute_update_addresses_taken): For clobber with
11652 incompatible type, build a new clobber with the right type instead
11653 of building a VIEW_CONVERT_EXPR around it.
11654
11655 2016-06-04 Oleg Endo <olegendo@gcc.gnu.org>
11656
11657 PR tree-optimization/52171
11658 * config/sh/sh.c (sh_use_by_pieces_infrastructure_p): Use
11659 by_pieces_ninsns instead of move_by_pieces_ninsns.
11660
11661 2016-06-04 Oleg Endo <olegendo@gcc.gnu.org>
11662
11663 * config/sh/sh.c (sh_print_operand_address): Don't use hardcoded 'r0'
11664 for reg+reg addressing mode.
11665
11666 2016-06-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11667
11668 * rs6000-c.c (c/c-tree.h): Add #include.
11669 (altivec_resolve_overloaded_builtin): Handle ARRAY_TYPE arguments
11670 in C++ when found in the base position of vec_ld or vec_st.
11671
11672 2016-06-03 Jan Hubicka <hubicka@ucw.cz>
11673
11674 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Avoid
11675 use of profile unless profile status is PROFILE_READ.
11676 * profile.c (compute_branch_probabilities): Set profile status
11677 only after reporting predictor hitrates.
11678
11679 2016-06-03 Joseph Myers <joseph@codesourcery.com>
11680
11681 PR target/71276
11682 PR target/71277
11683 * common.opt (ffp-int-builtin-inexact): New option.
11684 * doc/invoke.texi (-fno-fp-int-builtin-inexact): Document.
11685 * doc/md.texi (floor@var{m}2, btrunc@var{m}2, round@var{m}2)
11686 (ceil@var{m}2): Document dependence on this option.
11687 * ipa-inline-transform.c (inline_call): Handle
11688 flag_fp_int_builtin_inexact.
11689 * ipa-inline.c (can_inline_edge_p): Likewise.
11690 * config/i386/i386.md (rintxf2): Do not test
11691 flag_unsafe_math_optimizations.
11692 (rint<mode>2_frndint): New define_insn.
11693 (rint<mode>2): Do not test flag_unsafe_math_optimizations for 387
11694 or !flag_trapping_math for SSE. Just use gen_rint<mode>2_frndint
11695 for 387 instead of extending and truncating.
11696 (frndintxf2_<rounding>): Test flag_fp_int_builtin_inexact ||
11697 !flag_trapping_math instead of flag_unsafe_math_optimizations.
11698 Change to frndint<mode>2_<rounding>.
11699 (frndintxf2_<rounding>_i387): Likewise. Change to
11700 frndint<mode>2_<rounding>_i387.
11701 (<rounding_insn>xf2): Likewise.
11702 (<rounding_insn><mode>2): Test flag_fp_int_builtin_inexact ||
11703 !flag_trapping_math instead of flag_unsafe_math_optimizations for
11704 x87. Test TARGET_ROUND || !flag_trapping_math ||
11705 flag_fp_int_builtin_inexact instead of !flag_trapping_math for
11706 SSE. Use ROUND_NO_EXC in constant operand of
11707 gen_sse4_1_round<mode>2. Just use gen_frndint<mode>2_<rounding>
11708 for 387 instead of extending and truncating.
11709
11710 2016-06-03 H.J. Lu <hongjiu.lu@intel.com>
11711 Julia Koval <julia.koval@intel.com>
11712
11713 PR target/66960
11714 PR target/67630
11715 PR target/67634
11716 PR target/67841
11717 PR target/68037
11718 PR target/68618
11719 PR target/68661
11720 PR target/69575
11721 PR target/69596
11722 PR target/69734
11723 * config/i386/i386-protos.h (ix86_epilogue_uses): New prototype.
11724 * config/i386/i386.c (ix86_conditional_register_usage): Preserve
11725 all registers, except for function return registers if there are
11726 no caller-saved registers.
11727 (ix86_set_func_type): New function.
11728 (ix86_set_current_function): Call ix86_set_func_type to set
11729 no_caller_saved_registers and func_type. Call reinit_regs if
11730 caller-saved registers are changed. Don't allow MPX, SSE, MMX
11731 nor x87 instructions in interrupt handler nor function with
11732 no_caller_saved_registers attribute.
11733 (ix86_function_ok_for_sibcall): Return false if there are no
11734 caller-saved registers.
11735 (type_natural_mode): Don't warn ABI change for MMX in interrupt
11736 handler.
11737 (ix86_function_arg_advance): Skip for callee in interrupt handler.
11738 (ix86_function_arg): Return special arguments in interrupt handler.
11739 (ix86_promote_function_mode): Promote pointer to word_mode only
11740 for normal functions.
11741 (ix86_can_use_return_insn_p): Don't use `ret' instruction in
11742 interrupt handler.
11743 (ix86_epilogue_uses): New function.
11744 (ix86_hard_regno_scratch_ok): Likewise.
11745 (ix86_save_reg): Preserve all registers in interrupt handler
11746 after reload. Preserve all registers, except for function return
11747 registers, if there are no caller-saved registers after reload.
11748 (find_drap_reg): Always use callee-saved register if there are
11749 no caller-saved registers.
11750 (ix86_minimum_incoming_stack_boundary): Return MIN_STACK_BOUNDARY
11751 for interrupt handler.
11752 (ix86_expand_prologue): Don't allow DRAP in interrupt handler.
11753 Emit cld instruction if stringops are used in interrupt handler
11754 or interrupt handler isn't a leaf function.
11755 (ix86_expand_epilogue): Generate interrupt return for interrupt
11756 handler and pop the 'ERROR_CODE' off the stack before interrupt
11757 return in exception handler.
11758 (ix86_expand_call): Disallow calling interrupt handler directly.
11759 If there are no caller-saved registers, mark all registers that
11760 are clobbered by the call which returns as clobbered.
11761 (ix86_handle_no_caller_saved_registers_attribute): New function.
11762 (ix86_handle_interrupt_attribute): Likewise.
11763 (ix86_attribute_table): Add interrupt and no_caller_saved_registers
11764 attributes.
11765 (TARGET_HARD_REGNO_SCRATCH_OK): Likewise.
11766 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use argument
11767 accumulation in interrupt function if stack may be realigned to
11768 avoid DRAP.
11769 (EPILOGUE_USES): New.
11770 (function_type): New enum.
11771 (machine_function): Add func_type and no_caller_saved_registers.
11772 * config/i386/i386.md (UNSPEC_INTERRUPT_RETURN): New.
11773 (interrupt_return): New pattern.
11774 * doc/extend.texi: Document x86 interrupt and
11775 no_caller_saved_registers attributes.
11776
11777 2016-06-03 Bernd Schmidt <bschmidt@redhat.com>
11778
11779 PR tree-optimization/52171
11780 * builtins.c (expand_cmpstrn_or_cmpmem): Delete, moved elsewhere.
11781 (expand_builtin_memcmp): New arg RESULT_EQ. All callers changed.
11782 Look for constant strings. Move some code to emit_block_cmp_hints
11783 and use it.
11784 * builtins.def (BUILT_IN_MEMCMP_EQ): New.
11785 * defaults.h (COMPARE_MAX_PIECES): New macro.
11786 * expr.c (move_by_pieces_d, store_by_pieces_d): Remove old structs.
11787 (move_by_pieces_1, store_by_pieces_1, store_by_pieces_2): Remvoe.
11788 (clear_by_pieces_1): Don't declare. Move definition before use.
11789 (can_do_by_pieces): New static function.
11790 (can_move_by_pieces): Use it. Return bool.
11791 (by_pieces_ninsns): Renamed from move_by_pieces_ninsns. New arg
11792 OP. All callers changed. Handle COMPARE_BY_PIECES.
11793 (class pieces_addr); New.
11794 (pieces_addr::pieces_addr, pieces_addr::decide_autoinc,
11795 pieces_addr::adjust, pieces_addr::increment_address,
11796 pieces_addr::maybe_predec, pieces_addr::maybe_postinc): New member
11797 functions for it.
11798 (class op_by_pieces_d): New.
11799 (op_by_pieces_d::op_by_pieces_d, op_by_pieces_d::run): New member
11800 functions for it.
11801 (class move_by_pieces_d, class compare_by_pieces_d,
11802 class store_by_pieces_d): New subclasses of op_by_pieces_d.
11803 (move_by_pieces_d::prepare_mode, move_by_pieces_d::generate,
11804 move_by_pieces_d::finish_endp, store_by_pieces_d::prepare_mode,
11805 store_by_pieces_d::generate, store_by_pieces_d::finish_endp,
11806 compare_by_pieces_d::generate, compare_by_pieces_d::prepare_mode,
11807 compare_by_pieces_d::finish_mode): New member functions.
11808 (compare_by_pieces, emit_block_cmp_via_cmpmem): New static
11809 functions.
11810 (expand_cmpstrn_or_cmpmem): Moved here from builtins.c.
11811 (emit_block_cmp_hints): New function.
11812 (move_by_pieces, store_by_pieces, clear_by_pieces): Rewrite to just
11813 use the newly defined classes.
11814 * expr.h (by_pieces_constfn): New typedef.
11815 (can_store_by_pieces, store_by_pieces): Use it in arg declarations.
11816 (emit_block_cmp_hints, expand_cmpstrn_or_cmpmem): Declare.
11817 (move_by_pieces_ninsns): Don't declare.
11818 (can_move_by_pieces): Change return value to bool.
11819 * target.def (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Update docs.
11820 (compare_by_pieces_branch_ratio): New hook.
11821 * target.h (enum by_pieces_operation): Add COMPARE_BY_PIECES.
11822 (by_pieces_ninsns): Declare.
11823 * targethooks.c (default_use_by_pieces_infrastructure_p): Handle
11824 COMPARE_BY_PIECES.
11825 (default_compare_by_pieces_branch_ratio): New function.
11826 * targhooks.h (default_compare_by_pieces_branch_ratio): Declare.
11827 * doc/tm.texi.in (STORE_MAX_PIECES, COMPARE_MAX_PIECES): Document.
11828 * doc/tm.texi: Regenerate.
11829 * tree-ssa-strlen.c: Include "builtins.h".
11830 (handle_builtin_memcmp): New static function.
11831 (strlen_optimize_stmt): Call it for BUILT_IN_MEMCMP.
11832 * tree.c (build_common_builtin_nodes): Create __builtin_memcmp_eq.
11833
11834 2016-06-03 Alan Hayward <alan.hayward@arm.com>
11835
11836 * tree-vect-stmts.c (vect_stmt_relevant_p): Do not vectorize non live
11837 relevant stmts which are simple and invariant.
11838 * tree-vect-loop.c (vectorizable_live_operation): Check relevance
11839 instead of simple and invariant
11840
11841 2016-06-03 Alan Hayward <alan.hayward@arm.com>
11842
11843 * tree-vect-loop.c (vect_analyze_loop_operations): Allow live stmts.
11844 (vectorizable_reduction): Check for new relevant state.
11845 (vectorizable_live_operation): vectorize live stmts using
11846 BIT_FIELD_REF. Remove special case for gimple assigns stmts.
11847 * tree-vect-stmts.c (is_simple_and_all_uses_invariant): New function.
11848 (vect_stmt_relevant_p): Check for stmts which are only used live.
11849 (process_use): Use of a stmt does not inherit it's live value.
11850 (vect_mark_stmts_to_be_vectorized): Simplify relevance inheritance.
11851 (vect_analyze_stmt): Check for new relevant state.
11852 * tree-vectorizer.h (vect_relevant): New entry for a stmt which is used
11853 outside the loop, but not inside it.
11854
11855 2016-06-03 Alan Hayward <alan.hayward@arm.com>
11856
11857 * tree-vectorizer.h (vect_get_vec_def_for_operand_1): New.
11858 * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): New.
11859 (vect_get_vec_def_for_operand): Split out code.
11860
11861 2016-06-03 Segher Boessenkool <segher@kernel.crashing.org>
11862
11863 * config/rs6000/rs6000.md (define_peepholes for two mfcr's): Delete.
11864
11865 2016-06-03 Alan Hayward <alan.hayward@arm.com>
11866
11867 * tree-vect-stmts.c (vectorizable_call) Remove GOMP_SIMD_LANE code.
11868
11869 2016-06-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11870
11871 * config/arm/thumb1.md (*thumb1_mulsi3): Fix typos in comment.
11872
11873 2016-06-03 Jakub Jelinek <jakub@redhat.com>
11874
11875 PR middle-end/71387
11876 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): If redirecting
11877 to noreturn e->callee->decl that has void return type and void
11878 arguments, adjust gimple_call_fntype and remove lhs even if it had
11879 previously addressable type.
11880
11881 2016-06-02 Jeff Law <law@redhat.com>
11882
11883 PR tree-optimization/71328
11884 * tree-ssa-threadupdate.c (duplicate_thread_path): Fix off-by-one
11885 error when checking for a jump back onto the copied path.
11886
11887 2016-06-02 David Malcolm <dmalcolm@redhat.com>
11888
11889 * config/microblaze/microblaze.c (get_branch_target): Add return
11890 NULL_RTX for the non-CALL_P case.
11891 (insert_wic_for_ilb_runout): Remove unused local "wic_addr1".
11892 (insert_wic): Remove unused local "j".
11893
11894 2016-06-02 Martin Liska <mliska@suse.cz>
11895
11896 * predict.def: Fix typo in PRED_FORTRAN_FAIL_IO display name.
11897
11898 2016-06-02 H.J. Lu <hongjiu.lu@intel.com>
11899 Julia Koval <julia.koval@intel.com>
11900
11901 * function.c (assign_parm_setup_stack): Force source into a
11902 register if needed.
11903 * target.def (function_incoming_arg): Update documentation to
11904 allow arbitrary address computation based on hard register.
11905 * doc/tm.texi: Regenerated.
11906
11907 2016-06-02 Martin Liska <mliska@suse.cz>
11908
11909 * predict.c (combine_predictions_for_bb): Fix first match in
11910 cases where a first predictor contains more than one occurence
11911 in list of predictors. Take the best value in such case.
11912
11913 2016-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11914
11915 PR rtl-optimization/71295
11916 * rtlanal.c (subreg_get_info): If taking a subreg at the requested
11917 offset would go over the size of the inner mode reject it.
11918
11919 2016-06-02 Jakub Jelinek <jakub@redhat.com>
11920
11921 * config/i386/sse.md (*vec_concatv4si): Use v=v,v instead of
11922 x=x,x and v=v,m instead of x=x,m.
11923
11924 * config/i386/sse.md (*vec_concatv2si_sse4_1): Add avx512dq v=Yv,rm
11925 alternative. Change x=x,x alternative to v=Yv,Yv and x=rm,C
11926 alternative to v=rm,C.
11927
11928 * config/i386/sse.md (*vec_concatv2di): Add x86_avx512dq v=Yv,rm
11929 alternative. Change x=xm,C alternative to v=vm,C, x=x,x alternative
11930 to v=Yv,Yv and x=x,m to v=v,m. Use maybe_evex prefix attribute
11931 instead of vex for the last two above mentioned alternatives.
11932
11933 2016-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11934
11935 PR target/70830
11936 * config/arm/arm.c (arm_output_multireg_pop): Guard "pop" on update.
11937
11938 2016-06-02 Segher Boessenkool <segher@kernel.crashing.org>
11939
11940 * config/rs6000/dfp.md (trunctddd2): Correct the "length" attribute.
11941
11942 2016-06-01 David Malcolm <dmalcolm@redhat.com>
11943
11944 * config/rl78/rl78.c (rl78_expand_prologue): Convert local
11945 from int to unsigned.
11946
11947 2016-05-31 Michael Meissner <meissner@linux.vnet.ibm.com>
11948
11949 * config/rs6000/vsx.md (vsx_splat_<mode>, V2DI/V2DF): Simplify
11950 alternatives, eliminating preferred register class. Add support
11951 for the MTVSRDD instruction in ISA 3.0.
11952 (vsx_splat_v4si_internal): Use splat_input_operand instead of
11953 reg_or_indexed_operand.
11954 (vsx_splat_v4sf_internal): Likewise.
11955
11956 2016-05-31 Michael Meissner <meissner@linux.vnet.ibm.com>
11957
11958 PR target/71186
11959 * config/rs6000/vsx.md (xxspltib_<mode>_nosplit): Add alternatives
11960 for loading up all 0's or all 1's.
11961
11962 2016-06-01 Thomas Preud'homme <thomas.preudhomme@arm.com>
11963
11964 * doc/sourcebuild.texi (arm_acq_rel): Document new effective target.
11965
11966 2016-06-01 Eduard Sanou <dhole@openmailbox.org>
11967
11968 * doc/cppenv.texi: Note that the `%s` in `date` is a non-standard
11969 extension.
11970 * gcc.c (driver_handle_option): Call set_source_date_epoch_envvar.
11971 * gcc.c (set_source_date_epoch_envvar): New function, sets
11972 the SOURCE_DATE_EPOCH environment variable to the current time.
11973
11974 2016-06-01 Eric Botcazou <ebotcazou@adacore.com>
11975
11976 * tree-vect-loop.c (vect_determine_vectorization_factor): Also compute
11977 the factor for live Phi nodes.
11978
11979 2016-06-01 Jan Hubicka <hubicka@ucw.cz>
11980
11981 * loop-dolop.c (doloop_optimize): Us likely max iteration bound.
11982 * tree-parloops.c (parallelize_loops): likewise.
11983 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop,
11984 tree_unswitch_outer_loop): likewise.
11985
11986 2016-06-01 Jakub Jelinek <jakub@redhat.com>
11987
11988 PR middle-end/71371
11989 * gimplify.c (gimplify_omp_for): Temporarily clear gimplify_omp_ctxp
11990 around creation of the temporary.
11991
11992 2016-06-01 Richard Biener <rguenther@suse.de>
11993
11994 PR tree-optimization/71366
11995 * tree-ssa-loop-ivcanon.c (edges_to_remove): New global.
11996 (unloop_loops): Move removing edges here ...
11997 (try_unroll_loop_completely): ... from here.
11998 (try_peel_loop): ... and here.
11999 (tree_unroll_loops_completely_1): Track parent loops via
12000 bitmap of header BBs.
12001 (tree_unroll_loops_completely): Adjust for that.
12002
12003 2016-06-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
12004
12005 * config/rs6000/altivec.h (vec_slv): New macro.
12006 (vec_srv): New macro.
12007 * config/rs6000/altivec.md (UNSPEC_VSLV): New value.
12008 (UNSPEC_VSRV): New value.
12009 (vslv): New insn.
12010 (vsrv): New insn.
12011 * config/rs6000/rs6000-builtin.def (vslv): New builtin definition.
12012 (vsrv): New builtin definition.
12013 * config/rs6000/rs6000-c.c (P9V_BUILTIN_VSLV): Macro expansion to
12014 define argument types for new builtin.
12015 (P9V_BUILTIN_VSRV): Macro expansion to define argument types for
12016 new builtin.
12017 * doc/extend.texi: Document the new vec_vslv and vec_srv built-in
12018 functions.
12019
12020 2016-06-01 Uros Bizjak <ubizjak@gmail.com>
12021 Jocelyn Mayer <l_indien@magic.fr>
12022
12023 PR target/67310
12024 * config/i386/driver-i386.c (host_detect_local_cpu): Correctly
12025 detect processor family for signature_CENTAUR_ebx.
12026 <case PROCESSOR_I486>: Pass c3, winchip2 or winchip-c6 for
12027 signature_CENTAUR_ebx.
12028 <case PROCESSOR _PENTIUMPRO>: Pass c3-2 for signature_CENTAUR_ebx.
12029 <default>: Pass x86-64 for has_longmode.
12030
12031 2016-06-01 Nathan Sidwell <nathan@acm.org>
12032
12033 * config/nvptx/nvptx.c (nvptx_assemble_undefined_decl): Reject
12034 undefined weak.
12035
12036 2016-06-01 Richard Biener <rguenther@suse.de>
12037
12038 PR tree-optimization/71261
12039 * tree-vect-patterns.c (check_bool_pattern): Gather a hash-set
12040 of stmts successfully put in the bool pattern. Remove
12041 single-use restriction.
12042 (adjust_bool_pattern_cast): Add cast at the use site via the
12043 pattern def sequence.
12044 (adjust_bool_pattern): Remove recursion, maintain a hash-map
12045 of patterned defs. Use the pattern def seqence instead of
12046 multiple independent patterns.
12047 (sort_after_uid): New qsort compare function.
12048 (adjust_bool_stmts): New function to process stmts in the bool
12049 pattern in IL order.
12050 (vect_recog_bool_pattern): Adjust.
12051 * tree-if-conv.c (ifcvt_split_def_stmt): Remove.
12052 (ifcvt_walk_pattern_tree): Likewise.
12053 (stmt_is_root_of_bool_pattern): Likewise.
12054 (ifcvt_repair_bool_pattern): Likewise.
12055 (tree_if_conversion): Do not call ifcvt_repair_bool_pattern.
12056
12057 2016-06-01 Jan Hubicka <hubicka@ucw.cz>
12058
12059 * loop-unroll.c (decide_unroll_constant_iterations,
12060 decide_unroll_runtime_iterations, decide_unroll_stupid): Use
12061 likely upper bounds.
12062 * loop-iv.c (find_simple_exit): Dump likely upper bounds.
12063
12064 2016-06-01 Thomas Schwinge <thomas@codesourcery.com>
12065
12066 * tree-core.h (enum omp_clause_code): Remove
12067 OMP_CLAUSE_DEVICE_RESIDENT. Adjust all users.
12068
12069 2016-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12070
12071 * config/arm/sync.md (arm_store_exclusive<mode>):
12072 Use 'H' output modifier on operands[2] rather than creating a new
12073 entry in out-of-bounds memory of the operands array.
12074 (arm_store_release_exclusivedi): Likewise.
12075
12076 2016-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12077
12078 * config/arm/arm.c (arm_fusion_enabled_p): New function.
12079 * config/arm/arm-protos.h (arm_fusion_enabled_p): Declare prototype.
12080 * config/arm/crypto.md (crypto_<crypto_pattern>, CRYPTO_UNARY):
12081 Add "=w,0" alternative. Enable it when AES/AESMC fusion is enabled.
12082
12083 2016-06-01 Eric Botcazou <ebotcazou@adacore.com>
12084
12085 * tree-vect-loop.c (vect_determine_vectorization_factor): Also take
12086 into account live statements for mask producers.
12087
12088 2016-06-01 Richard Biener <rguenther@suse.de>
12089
12090 PR tree-optimization/71311
12091 * match.pd (@0 < @1 && @0 < @2 -> @0 < min(@1,@2)): Add :c and
12092 restrict to non-INTEGER_CST @0.
12093
12094 2016-06-01 Richard Biener <rguenther@suse.de>
12095
12096 * match.pd ((A & B) - (A & ~B) -> B - (A ^ B)): Add missing :c.
12097 (relational patterns): Use :c to avoid pattern duplications.
12098
12099 2016-06-01 Richard Biener <rguenther@suse.de>
12100
12101 * genmatch.c (comparison_code_p): New predicate.
12102 (swap_tree_comparison): New function.
12103 (commutate): Add for_vec parameter to append new for entries.
12104 Support commutating relational operators by swapping it alongside
12105 operands.
12106 (lower_commutative): Adjust.
12107 (dt_simplify::gen): Do not pass artificial operators to gen
12108 functions.
12109 (decision_tree::gen): Do not add artificial operators as parameters.
12110 (parser::parse_expr): Verify operator commutativity when :c is
12111 applied. Allow :C to override this.
12112 * match.pd: Adjust patterns to use :C instead of :c where required.
12113
12114 2016-06-01 Patrick Palka <ppalka@gcc.gnu.org>
12115
12116 PR tree-optimization/71077
12117 * tree-ssa-threadedge.c (simplify_control_stmt_condition_1): In
12118 the combining step, use boolean_false_node and boolean_true_node
12119 as the designated false/true return values.
12120
12121 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
12122
12123 * predict.def (PRED_LOOP_EXTRA_EXIT): Define.
12124 * predict.c (predict_iv_comparison): Also check PRED_LOOP_EXTRA_EXIT.
12125 (predict_extra_loop_exits): Use PRED_LOOP_EXTRA_EXIT instead of
12126 PRED_LOOP_EXIT.
12127
12128 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
12129
12130 * doc/invoke.texi (-frename-registers): Drop -fpeel-loops from list
12131 of flags impliying the register renaming.
12132 * toplev.c (process_options): Do not imply flag_rename_registers with
12133 loop peeling.
12134
12135 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
12136
12137 * config/sh/sh.h (ASM_OUTPUT_SYMBOL_REF): Remove macro and use the
12138 default implementation.
12139
12140 2016-05-31 Nathan Sidwell <nathan@acm.org>
12141
12142 * dwarf2out.c (cur_line_info_table): Add GTY marker.
12143
12144 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
12145
12146 * config/sh/constraints.md (b): Remove constraint.
12147 * config/sh/predicates.md (arith_reg_operand): Remove
12148 TARGET_REGISTER_P.
12149 * config/sh/sh-modes.def (PDI): Remove.
12150 * config/sh/sh.c (sh_target_reg_class,
12151 sh_optimize_target_register_callee_saved): Remove functions.
12152 (sh_option_override): Don't set MASK_SAVE_ALL_TARGET_REGS.
12153 (sh_expand_epilogue): Update comment.
12154 (sh_hard_regno_mode_ok, sh_register_move_cost, calc_live_regs,
12155 sh_secondary_reload): Remove TARGET_REGS related code.
12156 * config/sh/sh.h (FIRST_TARGET_REG, LAST_TARGET_REG,
12157 TARGET_REGISTER_P): Remove macros.
12158 (SH_DBX_REGISTER_NUMBER, REG_ALLOC_ORDER): Remove target regs.
12159 * config/sh/sh.md (PR_MEDIA_REG, T_MEDIA_REG, FR23_REG, TR0_REG,
12160 TR1_REG, TR2_REG): Remove constants.
12161 * config/sh/sh.opt (SAVE_ALL_TARGET_REGS): Remove.
12162
12163 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
12164
12165 * config/sh/sh.md (adddi3, subdi3, negdi2, abs<mode>2): Remove
12166 define_expand patterns.
12167 (adddi3_compact): Rename to adddi3.
12168 (subdi3_compact): Rename to subdi3.
12169 (*negdi2): Rename to negdi2.
12170 (*abs<mode>2): Rename to abs<mode>2.
12171
12172 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
12173
12174 * config/rx/rx.md (FETCHOP_NO_MINUS): New code iterator.
12175 (atomic_<fetchop_name>_fetchsi): Extract minus operator into ...
12176 (atomic_sub_fetchsi): ... this new pattern.
12177 (mvtc): Add CC_REG clobber.
12178
12179 2016-05-31 Marek Polacek <polacek@redhat.com>
12180
12181 * gimplify.c (gimplify_switch_expr): Also handle GIMPLE_TRY.
12182
12183 2016-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12184
12185 * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Use
12186 aarch64_fusion_enabled_p to check for fusion capabilities.
12187
12188 2016-05-31 Richard Biener <rguenther@suse.de>
12189
12190 PR tree-optimization/71352
12191 * tree-ssa-reassoc.c (zero_one_operation): Handle op equal to
12192 minus one and a negate.
12193
12194 2016-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12195
12196 * config/aarch64/aarch64.c (aarch64_simd_attr_length_move): Delete.
12197 * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
12198 Delete prototype.
12199 * config/aarch64/iterators.md (insn_count): Add descriptive comment.
12200 * config/aarch64/aarch64-simd.md (*aarch64_mov<mode>, VSTRUCT modes):
12201 Remove use of aarch64_simd_attr_length_move, set length attribute
12202 directly.
12203 (*aarch64_be_movoi): Likewise.
12204 (*aarch64_be_movci): Likewise.
12205 (*aarch64_be_movxi): Likewise.
12206
12207 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
12208
12209 * loop-init.c (gate): Do not enale RTL loop unroller with -fpeel-loops.
12210 It no longer does that.
12211 * toplev.c (process_options): Do not enable flag_web with -fpeel-loops.
12212
12213 2016-05-31 Wladimir J. van der Laan <laanwj@gmail.com>
12214
12215 * config/aarch64/arm_neon.h (vdupb_laneq_s8): Remove spurious
12216 attribute __unused__.
12217
12218 2016-05-31 Thomas Preud'homme <thomas.preudhomme@arm.com>
12219
12220 * config/arm/arm-protos.h (arm_arch_thumb1): Declare.
12221 * config/arm/arm.c (arm_arch_thumb1): Define.
12222 (arm_option_override): Initialize arm_arch_thumb1.
12223 * config/arm/arm.h (arm_arch_thumb1): Declare.
12224 (TARGET_ARM_ARCH_ISA_THUMB): Use arm_arch_thumb to determine if target
12225 support Thumb-1 ISA.
12226
12227 2016-05-31 Kirill Yukhin <kirill.yukhin@intel.com>
12228
12229 PR target/71346
12230 * config/i386/sse.md (define_insn_and_split "*vec_extractv4sf_0"): Use
12231 `Yv' for scalar operand.
12232
12233 2016-05-31 Tom de Vries <tom@codesourcery.com>
12234
12235 PR tree-optimization/69068
12236 * graphite-isl-ast-to-gimple.c (copy_bb_and_scalar_dependences): Handle
12237 phis with more than two args.
12238
12239 2016-05-30 Andreas Tobler <andreast@gcc.gnu.org>
12240
12241 * config.gcc: Move hard float support for arm*hf*-*-freebsd* into
12242 armv6*-*-freebsd* for FreeBSD 11. Eliminate the arm*hf*-*-freebsd*
12243 target.
12244
12245 2016-05-30 Jose E. Marchesi <jose.marchesi@oracle.com>
12246
12247 * config.gcc (sparc*-*-*): Support cpu_32, cpu_64, tune_32 and
12248 tune_64.
12249 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
12250 support on SPARC.
12251 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Add entries for
12252 cpu_32, cpu_64, tune_32 and tune_64.
12253 * config/sparc/sol2.h (OPTION_DEFAULT_SPECS): Likewise.
12254
12255 2016-05-30 Uros Bizjak <ubizjak@gmail.com>
12256
12257 * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
12258
12259 2016-05-30 Andi Kleen <ak@linux.intel.com>
12260
12261 * auto-profile.c (read_profile): Replace asserts with errors
12262 when file does not exist.
12263 * gcov-io.c (gcov_read_words): Dito.
12264
12265 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
12266
12267 * tree-cfg.c (print_loop): Print likely upper bounds.
12268
12269 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
12270
12271 * doc/invoke.texi (-fpeel-loops,-O3): Update documentation.
12272 * opts.c (default_options): Enable peel loops at -O3.
12273 * tree-ssa-loop-ivcanon.c (peeled_loops): New static var.
12274 (try_peel_loop): Do not re-peel already peeled loops;
12275 use likely upper bounds; fix profile updating.
12276 (pass_complete_unroll::execute): Initialize peeled_loops.
12277
12278 2016-05-30 Martin Liska <mliska@suse.cz>
12279
12280 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Scale
12281 computed costs by frequency of BB they belong to.
12282 (get_scaled_computation_cost_at): New function.
12283
12284 2016-05-30 Alexander Monakov <amonakov@ispras.ru>
12285 Marc Glisse <marc.glisse@inria.fr>
12286
12287 PR tree-optimization/71289
12288 * match.pd (-1 / B < A, A > -1 / B): New transformations.
12289
12290 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
12291
12292 * tree-vect-loop.c (vect_transform_loop): Update likely bounds.
12293
12294 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
12295
12296 * tree-ssa-loop-ivcanon.c (try_peel_loop): Correctly set wont_exit
12297 for peeled copies; avoid underflow when updating estimates; correctly
12298 scale loop profile.
12299
12300 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
12301
12302 * tree-ssa-reassoc.ci (swap_ops_for_binary_stmt): Fix typo from commit
12303 r236875. Corrected oe3 to oe2 as obvious.
12304
12305 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
12306
12307 PR middle-end/71269
12308 PR middle-end/71252
12309 * tree-ssa-reassoc.c (insert_stmt_before_use): Use find_insert_point so
12310 that inserted stmt will not dominate stmts that defines its operand.
12311 (rewrite_expr_tree): Add stmt_to_insert before adding the use stmt.
12312 (rewrite_expr_tree_parallel): Likewise.
12313
12314 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
12315
12316 PR middle-end/71252
12317 * tree-ssa-reassoc.c (swap_ops_for_binary_stmt): Fix swap such that
12318 all fields including stmt_to_insert are swapped.
12319
12320 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
12321
12322 * predict.h (force_edge_cold): Declare.
12323 * predict.c (force_edge_cold): New function.
12324 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Fix profile
12325 updating.
12326 (canonicalize_loop_induction_variables): Fix formating.
12327
12328 2016-05-30 Eric Botcazou <ebotcazou@adacore.com>
12329
12330 * config/visium/visium.c (visium_split_double_add): Minor tweaks.
12331 (visium_expand_copysign): Use gen_int_mode directly.
12332 (visium_compute_frame_size): Minor tweaks.
12333
12334 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
12335
12336 * tree-vect-loop.c (vect_analyze_loop_2): Use
12337 likely_max_stmt_executions_int.
12338
12339 2016-05-30 Tom de Vries <tom@codesourcery.com>
12340
12341 PR tree-optimization/69067
12342 * graphite-isl-ast-to-gimple.c (get_def_bb_for_const): Remove assert.
12343
12344 2016-05-29 Uros Bizjak <ubizjak@gmail.com>
12345
12346 PR target/71245
12347 * config/i386/sync.md (define_peephole2 atomic_storedi_fpu):
12348 New peepholes to remove unneeded fild/fistp pairs.
12349 (define_peephole2 atomic_loaddi_fpu): Ditto.
12350
12351 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
12352
12353 * predict.c (maybe_hot_frequency_p): Avoid division.
12354
12355 2016-05-28 Gerald Pfeifer <gerald@pfeifer.com>
12356
12357 * doc/install.texi: Use https for shop.fsf.org.
12358
12359 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
12360
12361 * tree-ssa-loop-ivopts.c (estimated_stmt_executions_int): Use
12362 likely_max_stmt_executions_int.
12363
12364 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
12365
12366 * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
12367 likely_max_stmt_executions_int.
12368
12369 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
12370
12371 * profile.c (compute_branch_probabilities): Do not report hitrates
12372 here.
12373 (branch_prob): Report hitrates here.
12374 * predict.c (gimple_predict_edge): Do not assert profile status;
12375 fix formatting issues.
12376
12377 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
12378
12379 * predict.c (edge_predicted_by_p): New function.
12380 (predict_paths_for_bb): Do not put multiple predictions of the same type
12381 on one edge.
12382
12383 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
12384
12385 * tree-ssa-loop-niter.c (number_of_iterations_exit): Revert accidental
12386 commit.
12387
12388 2016-05-28 Alan Modra <amodra@gmail.com>
12389
12390 * dominance.c (verify_dominators): Don't segfault on NULL imm_bb.
12391
12392 2016-05-28 Alan Modra <amodra@gmail.com>
12393
12394 PR rtl-optimization/71275
12395 * ira.c (ira): Free dominance info.
12396
12397 2016-05-27 Gerald Pfeifer <gerald@pfeifer.com>
12398
12399 * doc/sourcebuild.texi: New address for upstream Go repository.
12400
12401 2016-05-27 Thomas Preud'homme <thomas.preudhomme@arm.com>
12402
12403 * config/arm/arm.h (TARGET_ARM_V6M): Remove.
12404 (TARGET_ARM_V7M): Likewise.
12405
12406 2016-05-26 Jeff Law <law@redhat.com>
12407
12408 * tree-ssa-threadedge.c: Remove include of tree-ssa-threadbackward.h.
12409 (thread_across_edge): Remove calls to find_jump_threads_backwards.
12410 * passes.def: Add jump threading passes before DOM/VRP.
12411 * tree-ssa-threadbackward.c (find_jump_threads_backwards): Change
12412 argument to a basic block from an edge. Remove tests which are
12413 handled elsewhere.
12414 (pass_data_thread_jumps, class pass_thread_jumps): New.
12415 (pass_thread_jumps::gate, pass_thread_jumps::execute): New.
12416 (make_pass_thread_jumps): Likewise.
12417 * tree-pass.h (make_pass_thread_jumps): Declare.
12418
12419 2016-05-27 Eric Botcazou <ebotcazou@adacore.com>
12420
12421 * config/visium/visium-protos.h (split_double_move): Rename into...
12422 (visium_split_double_move): ...this.
12423 (visium_split_double_add): Declare.
12424 * config/visium/visium.c (split_double_move): Rename into...
12425 (visium_split_double_move): ...this.
12426 (visium_split_double_add): New function.
12427 (visium_expand_copysign): Renumber operands for consistency.
12428 * config/visium/visium.md (DImode move splitter): Adjust to renaming.
12429 (DFmode move splitter): Likewise.
12430 (*addi3_insn): Split by means of visium_split_double_add.
12431 (*adddi3_insn_flags): Delete.
12432 (*plus_plus_sltu<subst_arith>): New insn.
12433 (*subdi3_insn): Split by means of visium_split_double_add.
12434 (subdi3_insn_flags): Delete.
12435 (*minus_minus_sltu<subst_arith>): New insn.
12436 (*negdi2_insn): Split by means of visium_split_double_add.
12437 (*negdi2_insn_flags): Delete.
12438
12439 2016-05-27 Ulrich Weigand <uweigand@de.ibm.com>
12440
12441 * configure.ac: Treat a --with-headers option without argument
12442 the same as the default (i.e. consult sys-include directory).
12443 * configure: Regenerate.
12444
12445 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12446
12447 * config/aarch64/aarch64.c (aarch64_fusion_enabled_p): New function.
12448 * config/aarch64/aarch64-protos.h (aarch64_fusion_enabled_p): Declare
12449 prototype.
12450 * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aesmc_op>v16qi):
12451 Add "=w,0" alternative. Enable it when AES/AESMC fusion is enabled.
12452
12453 2016-05-27 Jiong Wang <jiong.wang@arm.com>
12454
12455 PR target/63596
12456 * config/aarch64/aarch64.c (aarch64_expand_builtin_va_start): Honor
12457 tree-stdarg analysis results.
12458 (aarch64_setup_incoming_varargs): Likewise.
12459
12460 2016-05-27 Jiong Wang <jiong.wang@arm.com>
12461
12462 * config/aarch64/aarch64.c (aarch64_build_builtin_va_list): Initialize
12463 va_list_gpr_counter_field and va_list_fpr_counter_field.
12464
12465 2016-05-27 Wilco Dijkstra <wdijkstr@arm.com>
12466
12467 PR67609
12468 * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Remove.
12469 * config/aarch64/aarch64.c
12470 (aarch64_cannot_change_mode_class): Remove function.
12471 * config/aarch64/aarch64-protos.h
12472 (aarch64_cannot_change_mode_class): Remove.
12473
12474 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
12475
12476 * cfgloop.c (record_niter_bound): Record likely upper bounds.
12477 (likely_max_stmt_executions_int, get_likely_max_loop_iterations,
12478 get_likely_max_loop_iterations_int): New.
12479 * cfgloop.h (struct loop): Add nb_iterations_likely_upper_bound,
12480 any_likely_upper_bound.
12481 (get_likely_max_loop_iterations_int, get_likely_max_loop_iterations):
12482 Declare.
12483 * cfgloopmanip.c (copy_loop_info): Copy likely upper bounds.
12484 * loop-unroll.c (unroll_loop_constant_iterations): Update likely
12485 upper bound.
12486 (unroll_loop_constant_iterations): Likewise.
12487 (unroll_loop_runtime_iterations): Likewise.
12488 * lto-streamer-in.c (input_cfg): Stream likely upper bounds.
12489 * lto-streamer-out.c (output_cfg): Likewise.
12490 * tree-ssa-loop-ivcanon.c (try_peel_loop): Update likely upper
12491 bounds.
12492 (canonicalize_loop_induction_variables): Dump likely upper bounds.
12493 * tree-ssa-loop-niter.c (record_estimate): Record likely upper bounds.
12494 (likely_max_loop_iterations): New.
12495 (likely_max_loop_iterations_int): New.
12496 (likely_max_stmt_executions): New.
12497 * tree-ssa-loop-niter.h (likely_max_loop_iterations,
12498 likely_max_loop_iterations_int, likely_max_stmt_executions_int,
12499 likely_max_stmt_executions): Declare.
12500
12501 2016-05-27 Marek Polacek <polacek@redhat.com>
12502
12503 PR middle-end/71308
12504 * gimple-fold.c (gimple_fold_call): Check that LHS is not null.
12505
12506 2016-05-27 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
12507
12508 * config/s390/s390.md (2x risbg splitters): Use
12509 reg_overlap_mentioned_p instead of rtx_equal_p.
12510
12511 2016-05-27 Dominik Vogt <vogt@linux.vnet.ibm.com>
12512
12513 * combine.c (make_compound_operation): Take known zero bits into
12514 account when checking for possible zero_extend.
12515
12516 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12517
12518 * config/aarch64/aarch64.md (ashl<mode>3, SHORT modes):
12519 Use const_int_operand for operand 2 predicate. Simplify expand code
12520 as a result.
12521
12522 2016-05-27 Ilya Enkovich <ilya.enkovich@intel.com>
12523
12524 PR middle-end/71279
12525 * fold-const.c (fold_ternary_loc): Don't fold VEC_COND_EXPR
12526 into comparison.
12527
12528 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12529
12530 * config/aarch64/aarch64-modes.def (CC_ZESWP, CC_SESWP): Delete.
12531 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Remove condition
12532 that returns CC_SESWPmode and CC_ZESWPmode.
12533 (aarch64_get_condition_code_1): Remove handling of CC_SESWPmode
12534 and CC_SESWPmode.
12535 (aarch64_rtx_costs): Likewise.
12536
12537 2016-05-26 Michael Meissner <meissner@linux.vnet.ibm.com>
12538
12539 * config/rs6000/rs6000.c (rs6000_emit_p9_fp_minmax): New function
12540 for ISA 3.0 min/max support.
12541 (rs6000_emit_p9_fp_cmove): New function for ISA 3.0 floating point
12542 conditional move support.
12543 (rs6000_emit_cmove): Call rs6000_emit_p9_fp_minmax and
12544 rs6000_emit_p9_fp_cmove if the ISA 3.0 instructions are
12545 available.
12546 * config/rs6000/rs6000.md (SFDF2): New iterator to allow doing
12547 conditional moves where the comparison type is different from move
12548 type.
12549 (fp_minmax): New code iterator for smin/smax.
12550 (minmax): New code attributes for min/max.
12551 (SMINMAX): Likewise.
12552 (smax<mode>3): Combine min, max insns into one insn using the
12553 fp_minmax code iterator. Add support for ISA 3.0 min/max
12554 instructions that don't need -ffast-math.
12555 (s<minmax><mode>3): Likewise.
12556 (smax<mode>3_vsx): Likewise.
12557 (smin<mode>3): Likewise.
12558 (s<minmax><mode>3_vsx): Likewise.
12559 (smin<mode>3_vsx): Likewise.
12560 (pre-VSX min/max splitters): Likewise.
12561 (s<minmax><mode>3_fpr): Likewise.
12562 (movsfcc): Rewrite floating point conditional moves to combine
12563 SFmode/DFmode into a single insn.
12564 (mov<mode>cc): Likewise.
12565 (movdfcc): Likewise.
12566 (fselsfsf4): Combine FSEL cases into a single insn, using SFDF and
12567 SFDF2 iterators to handle all combinations.
12568 (fseldfsf4): Likewise.
12569 (fsel<SFDF:mode><SFDF2:mode>4): Likewise.
12570 (fseldfdf4): Likewise.
12571 (fselsfdf4): Likewise.
12572 (mov<SFDF:mode><SFDF2:mode>cc_p9): Add support for the ISA 3.0
12573 comparison instructions that set a 0/-1 mask, and use it for
12574 floating point conditional move via XXSEL.
12575 (fpmask<mode>): Likewise.
12576 (xxsel<mode>): Likewise.
12577 * config/rs6000/predicates.md (min_max_operator): Delete, no
12578 longer used.
12579 (fpmask_comparison_operaton): New insn for ISA 3.0 comparison
12580 instructions that generate a 0/-1 mask for use with XXSEL.
12581 * config/rs6000/rs6000.h (TARGET_MINMAX_SF): New helper macros to
12582 say whether floating point min/max is available, either through
12583 FSEL, ISA 2.06 min/max, and ISA 3.0 min/max instrucitons.
12584 (TARGET_MINMAX_DF): Likewise.
12585
12586 2016-05-27 Alan Modra <amodra@gmail.com>
12587
12588 PR rtl-optimization/71275
12589 * ira.c (ira): Call loop_optimizer_init to set up bb_loop_depth
12590 for update_equiv_regs and combine_and_move_insns.
12591
12592 2016-05-26 Uros Bizjak <ubizjak@gmail.com>
12593
12594 * config/i386/i386.md (*movqi_internal) <attr "isa">: Use
12595 if_then_else or cond RTXes to calculate attribute value.
12596 * config/i386/mmx.md (*vec_extractv2sf_1) <attr "prefix_rep">: Ditto.
12597 <attr "length_immediate>: Ditto.
12598 (*vec_extractv2sf_1) <attr "length_immediate">: Ditto.
12599 * config/i386/sse.md (sse_loadlps) <attr "length_immediate">: Ditto.
12600 (*vec_concatv2sf_sse4_1) <attr "isa">: Ditto.
12601 <attr "type">: Ditto.
12602 <attr "prefix_data16">: Ditto.
12603 <attr "prefix_extra">: Ditto.
12604 <attr "length_immediate">: Ditto.
12605 <attr "prefix">: Ditto.
12606 (vec_set<mode>_0) <attr "isa">: Ditto.
12607 <attr "prefix_extra">: Ditto.
12608 <attr "length_immediate">: Ditto.
12609 <attr "prefix">: Ditto.
12610 (*vec_interleave_highv2df) <attr "prefix_data16">: Ditto.
12611 (*vec_interleave_lowv2df) <attr "prefix_data16">: Ditto.
12612 (sse2_storelpd) <attr "prefix_data16">: Ditto.
12613 (sse2_loadhpd) <attr "prefix_data16">: Ditto.
12614 (sse2_loadlpd) <attr "prefix_data16">: Ditto.
12615 <attr "length_immediate">: Ditto.
12616 <attr "prefix">: Ditto.
12617 (sse2_movsd) <attr "length_immediate">: Ditto.
12618 <attr "prefix">: Ditto.
12619 (vec_concatv2df) <attr "isa">: Ditto.
12620 <attr "prefix">: Ditto.
12621 (*vec_extractv4si) <attr "prefix_extra">: Ditto.
12622 (*vec_extractv2di_1) <attr "isa">: Ditto.
12623 <attr "type">: Ditto.
12624 <attr "length_immediate">: Ditto.
12625 <attr "prefix_rex">: Ditto.
12626 <attr "prefix_extra">: Ditto.
12627 (*vec_concatv2si_sse4_1) <attr "type">: Ditto.
12628 <attr "prefix_extra">: Ditto.
12629 <attr "length_immediate">: Ditto.
12630 (vec_concatv2di) <attr "isa">: Ditto.
12631 <attr "prefix_extra">: Ditto.
12632 <attr "length_immediate">: Ditto.
12633 <attr "prefix">: Ditto.
12634
12635 2016-05-26 Martin Liska <mliska@suse.cz>
12636
12637 * tree-ssa-loop-ivopts.c (comp_cost::infinite_cost_p): New
12638 function.
12639 (operator+): Likewise.
12640 (operator-): Likewise.
12641 (comp_cost::operator+=): Likewise.
12642 (comp_cost::operator-=): Likewise.
12643 (comp_cost::operator/=): Likewise.
12644 (comp_cost::operator*=): Likewise.
12645 (operator<): Likewise.
12646 (operator==): Likewise.
12647 (operator<=): Likewise.
12648 (new_cost): Remove.
12649 (infinite_cost_p): Likewise.
12650 (add_costs): Likewise.
12651 (sub_costs): Likewise.
12652 (compare_costs): Likewise.
12653 (set_group_iv_cost): Use the newly introduced functions.
12654 (get_address_cost): Likewise.
12655 (get_shiftadd_cost): Likewise.
12656 (force_expr_to_var_cost): Likewise.
12657 (split_address_cost): Likewise.
12658 (ptr_difference_cost): Likewise.
12659 (difference_cost): Likewise.
12660 (get_computation_cost_at): Likewise.
12661 (determine_group_iv_cost_generic): Likewise.
12662 (determine_group_iv_cost_address): Likewise.
12663 (determine_group_iv_cost_cond): Likewise.
12664 (autoinc_possible_for_pair): Likewise.
12665 (determine_group_iv_costs): Likewise.
12666 (cheaper_cost_pair): Likewise.
12667 (iv_ca_recount_cost): Likewise.
12668 (iv_ca_set_no_cp): Likewise.
12669 (iv_ca_set_cp): Likewise.
12670 (iv_ca_cost): Likewise.
12671 (iv_ca_new): Likewise.
12672 (iv_ca_dump): Likewise.
12673 (iv_ca_narrow): Likewise.
12674 (iv_ca_prune): Likewise.
12675 (iv_ca_replace): Likewise.
12676 (try_add_cand_for): Likewise.
12677 (try_improve_iv_set): Likewise.
12678 (find_optimal_iv_set): Likewise.
12679
12680 2016-05-26 Richard Sandiford <richard.sandiford@arm.com>
12681
12682 * tree-ssa-loop-ivopts.c (loop_body_includes_call): Don't assume
12683 that internal functions will clobber all caller-saved registers.
12684
12685 2016-05-26 Wilco Dijkstra <wdijkstr@arm.com>
12686
12687 * config/aarch64/aarch64.c (aarch64_case_values_threshold):
12688 Return a better case_values_threshold when optimizing.
12689
12690 2016-05-26 Wilco Dijkstra <wdijkstr@arm.com>
12691
12692 * config/aarch64/aarch64-simd.md (aarch64_combinez):
12693 Add ? to integer variant.
12694 (aarch64_combinez_be): Likewise.
12695
12696 2016-05-26 Jakub Jelinek <jakub@redhat.com>
12697
12698 * config/i386/sse.md (*vcvtps2ph_store<mask_name>): Use v constraint
12699 instead of x constraint.
12700 (vcvtps2ph256<mask_name>): Likewise.
12701
12702 * config/i386/sse.md (*ssse3_palignr<mode>_perm): Add avx512bw
12703 alternative. Formatting fix.
12704
12705 * config/i386/sse.md
12706 (<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Rename
12707 to ...
12708 (avx512vl_shuf_<shuffletype>32x4_1<mask_name>): ... this.
12709 (*avx_vperm_broadcast_v4sf): Use v constraint instead of x. Use
12710 maybe_evex prefix instead of vex.
12711 (*avx_vperm_broadcast_<mode>): Use v constraint instead of x. Handle
12712 EXT_REX_SSE_REG_P (op0) case in the splitter.
12713
12714 2016-05-25 Jeff Law <law@redhat.com>
12715
12716 PR tree-optimization/71272
12717 * tree-ssa-threadbackward.c (convert_and_register_jump_thread_path):
12718 Update comments. Add test for empty path.
12719
12720 2016-05-25 Bill Seurer <seurer@linux.vnet.ibm.com>
12721
12722 * config/rs6000/altivec.h (vec_cmpne): Add #define for vec_cmpne.
12723 * config/rs6000/rs6000-builtin.def (vec_cmpne): Add vec_cmpne as a
12724 special case builtin.
12725 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
12726 code for ALTIVEC_BUILTIN_VEC_CMPNE.
12727 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
12728 for __builtin_vec_cmpne.
12729
12730 2016-05-25 Eric Botcazou <ebotcazou@adacore.com>
12731
12732 * tree-ssa-phiopt.c (factor_out_conditional_conversion): Remove
12733 redundant test and bail out if the type of the new operand is not
12734 a GIMPLE register type after stripping a VIEW_CONVERT_EXPR.
12735
12736 2016-05-25 Uros Bizjak <ubizjak@gmail.com>
12737
12738 * config/i386/i386.opt (ix86_target_flags_explicit): Remove.
12739 (x_ix86_target_flags_explicit): Remove.
12740 * config/i386/i386.c (ix86_function_specific_save): Do not copy
12741 x_ix86_target_flags_explicit.
12742 (ix86_function_specific_restore): Ditto.
12743
12744 2016-05-25 Uros Bizjak <ubizjak@gmail.com>
12745 H.J. Lu <hongjiu.lu@intel.com>
12746
12747 PR target/70738
12748 * common/config/i386/i386-common.c
12749 (OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): New.
12750 (ix86_handle_option) <case OPT_mgeneral_regs_only>: Disable
12751 MPX, MMX, SSE and x87 instructions for -mgeneral-regs-only.
12752 * config/i386/i386.opt (ix86_target_flags): Add new Variable.
12753 (-mgeneral-regs-only): Add new option.
12754 * config/i386/i386.c (ix86_option_override_internal): Don't enable
12755 x87 instructions if only general registers are allowed.
12756 (ix86_target_string): Add ix86_flags argument. Handle additional
12757 flags options through ix86_flags argument. Update all callers.
12758 * doc/invoke.texi (x86 Options): Document -mgeneral-regs-only.
12759
12760 2016-05-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12761
12762 PR rtl-optimization/66940
12763 * ifcvt.c (noce_get_alt_condition): Check that incrementing or
12764 decrementing desired_val will not overflow before performing these
12765 operations.
12766
12767 2016-05-25 Ilya Verbin <ilya.verbin@intel.com>
12768
12769 * config/i386/i386-builtin-types.def: Add V16SI_FTYPE_V16SF,
12770 V8DF_FTYPE_V8DF_ROUND, V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND.
12771 * config/i386/i386.c (enum ix86_builtins): Add
12772 IX86_BUILTIN_CVTPS2DQ512_MASK, IX86_BUILTIN_FLOORPS512,
12773 IX86_BUILTIN_FLOORPD512, IX86_BUILTIN_CEILPS512, IX86_BUILTIN_CEILPD512,
12774 IX86_BUILTIN_TRUNCPS512, IX86_BUILTIN_TRUNCPD512,
12775 IX86_BUILTIN_CVTPS2DQ512, IX86_BUILTIN_VEC_PACK_SFIX512,
12776 IX86_BUILTIN_FLOORPS_SFIX512, IX86_BUILTIN_CEILPS_SFIX512,
12777 IX86_BUILTIN_ROUNDPS_AZ_SFIX512.
12778 (builtin_description bdesc_args): Add __builtin_ia32_floorps512,
12779 __builtin_ia32_ceilps512, __builtin_ia32_truncps512,
12780 __builtin_ia32_floorpd512, __builtin_ia32_ceilpd512,
12781 __builtin_ia32_truncpd512, __builtin_ia32_cvtps2dq512,
12782 __builtin_ia32_vec_pack_sfix512, __builtin_ia32_roundps_az_sfix512,
12783 __builtin_ia32_floorps_sfix512, __builtin_ia32_ceilps_sfix512.
12784 Change IX86_BUILTIN_CVTPS2DQ512 to IX86_BUILTIN_CVTPS2DQ512_MASK for
12785 __builtin_ia32_cvtps2dq512_mask.
12786 (ix86_expand_args_builtin): Handle V8DF_FTYPE_V8DF_ROUND,
12787 V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF.
12788 (ix86_builtin_vectorized_function): Handle builtins mentioned above.
12789 * config/i386/sse.md
12790 (<mask_codefor>avx512f_fix_notruncv16sfv16si<mask_name><round_name>):
12791 Rename to ...
12792 (avx512f_fix_notruncv16sfv16si<mask_name><round_name>): ... this.
12793 (<mask_codefor>avx512f_cvtpd2dq512<mask_name><round_name>): Rename
12794 to ...
12795 (avx512f_cvtpd2dq512<mask_name><round_name>): ... this.
12796 (avx512f_vec_pack_sfix_v8df): New define_expand.
12797 (avx512f_roundpd512): Rename to ...
12798 (avx512f_round<castmode>512): ... this. Change iterator.
12799 (avx512f_roundps512_sfix): New define_expand.
12800 (round<mode>2_sfix): Change iterator.
12801
12802 2016-05-25 Nick Clifton <nickc@redhat.com>
12803
12804 * config/msp430/msp430.c (msp430_attr): Produce an error if a
12805 static interrupt handler is detected.
12806 * config/msp430/msp430.h (LIB_SPEC): Do not use msp430.ld as the
12807 default linker script.
12808 * config/msp430/msp430.md (movpsihi2_lo): New pattern for loading
12809 the low part of a symbolic pointer.
12810
12811 2016-05-25 Richard Biener <rguenther@suse.de>
12812
12813 PR tree-optimization/71261
12814 * tree-if-conv.c (ifcvt_split_def_stmt): Walk uses on the
12815 interesting stmt instead of immediate uses when looking
12816 for the use operand to replace.
12817
12818 2016-05-25 Martin Liska <mliska@suse.cz>
12819
12820 * ipa-inline.c (edge_badness): Use 'w/' instead of 'w'.
12821
12822 2016-05-25 Richard Biener <rguenther@suse.de>
12823
12824 PR tree-optimization/71264
12825 * tree-vect-stmts.c (vect_init_vector): Properly deal with
12826 vector type val.
12827
12828 2016-05-25 Martin Liska <mliska@suse.cz>
12829
12830 PR tree-optimization/71239
12831 * tree.c (array_at_struct_end_p): Do not call operand_equal_p
12832 if DECL_SIZE is NULL.
12833
12834 2016-05-25 Richard Biener <rguenther@suse.de>
12835
12836 * timevar.def (TV_TREE_LOOP_IFCVT): Add.
12837 * tree-if-conv.c (pass_data_if_conversion): Use it.
12838
12839 2016-05-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
12840
12841 * cgraph.c (cgraph_node::get_availability): Fix typo in comment.
12842 * symtab.c (symtab_node::binds_to_current_def_p): Likewise.
12843 * varpool.c (varpool_node::get_availability): Likewise.
12844
12845 2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
12846
12847 * config/rs6000/altivec.md (VNEG iterator): New iterator for
12848 VNEGW/VNEGD instructions.
12849 (p9_neg<mode>2): New insns for ISA 3.0 VNEGW/VNEGD.
12850 (neg<mode>2): Add expander for V2DImode added in ISA 2.07, and
12851 support for ISA 3.0 VNEGW/VNEGD instructions.
12852
12853 2016-05-24 Cesar Philippidis <cesar@codesourcery.com>
12854
12855 * gimplify.c (omp_notice_variable): Use zero-length arrays for data
12856 pointers inside OACC_DATA regions.
12857 (gimplify_scan_omp_clauses): Prune firstprivate clause associated
12858 with OACC_DATA, OACC_ENTER_DATA and OACC_EXIT data regions.
12859 (gimplify_adjust_omp_clauses): Fix typo in comment.
12860
12861 2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
12862
12863 * config/rs6000/altivec.md (VParity): New mode iterator for vector
12864 parity built-in functions.
12865 (p9v_ctz<mode>2): Add support for ISA 3.0 vector count trailing
12866 zeros.
12867 (p9v_parity<mode>2): Likewise.
12868 * config/rs6000/vector.md (VEC_IP): New mode iterator for vector
12869 parity.
12870 (ctz<mode>2): ISA 3.0 expander for vector count trailing zeros.
12871 (parity<mode>2): ISA 3.0 expander for vector parity.
12872 * config/rs6000/rs6000-builtin.def (BU_P9_MISC_1): New macros for
12873 power9 built-ins.
12874 (BU_P9_64BIT_MISC_0): Likewise.
12875 (BU_P9_MISC_0): Likewise.
12876 (BU_P9V_AV_1): Likewise.
12877 (BU_P9V_AV_2): Likewise.
12878 (BU_P9V_AV_3): Likewise.
12879 (BU_P9V_AV_P): Likewise.
12880 (BU_P9V_VSX_1): Likewise.
12881 (BU_P9V_OVERLOAD_1): Likewise.
12882 (BU_P9V_OVERLOAD_2): Likewise.
12883 (BU_P9V_OVERLOAD_3): Likewise.
12884 (VCTZB): Add vector count trailing zeros support.
12885 (VCTZH): Likewise.
12886 (VCTZW): Likewise.
12887 (VCTZD): Likewise.
12888 (VPRTYBD): Add vector parity support.
12889 (VPRTYBQ): Likewise.
12890 (VPRTYBW): Likewise.
12891 (VCTZ): Add overloaded vector count trailing zeros support.
12892 (VPRTYB): Add overloaded vector parity support.
12893 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
12894 overloaded vector count trailing zeros and parity instructions.
12895 * config/rs6000/rs6000.md (wd mode attribute): Add V1TI and TI for
12896 vector parity support.
12897 * config/rs6000/altivec.h (vec_vctz): Add ISA 3.0 vector count
12898 trailing zeros support.
12899 (vec_cntlz): Likewise.
12900 (vec_vctzb): Likewise.
12901 (vec_vctzd): Likewise.
12902 (vec_vctzh): Likewise.
12903 (vec_vctzw): Likewise.
12904 (vec_vprtyb): Add ISA 3.0 vector parity support.
12905 (vec_vprtybd): Likewise.
12906 (vec_vprtybw): Likewise.
12907 (vec_vprtybq): Likewise.
12908 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
12909 the ISA 3.0 vector count trailing zeros and vector parity built-in
12910 functions.
12911
12912 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
12913
12914 * tree-ssa-reassoc.c (sort_by_operand_rank): Skip checking gimple_bb
12915 when there is stmt_to_insert.
12916
12917 2016-05-24 Martin Sebor <msebor@redhat.com>
12918
12919 PR c++/71147
12920 * tree.h (complete_or_array_type_p): New inline function.
12921
12922 2016-05-24 Jakub Jelinek <jakub@redhat.com>
12923
12924 * config/i386/i386.h (TARGET_AVOID_4BYTE_PREFIXES): Define.
12925 * config/i386/constraints.md (Yr): Test TARGET_AVOID_4BYTE_PREFIXES
12926 rather than X86_TUNE_AVOID_4BYTE_PREFIXES.
12927
12928 * config/i386/sse.md (<sse4_1>_round<ssemodesuffix><avxsizesuffix>):
12929 Limit 1st alternative to noavx isa, split 2nd alternative into one
12930 noavx and one avx alternative, use *x and Bm in the former and
12931 x and m in the latter.
12932
12933 * config/i386/sse.md (vec_set<mode>_0): Use sse4_noavx isa instead
12934 of sse4 for the first alternative, drop %v from the template
12935 and d operand modifier. Split second alternative into one sse4_noavx
12936 and one avx alternative, use *x instead of *v in the former and v
12937 instead of *v in the latter.
12938 (*sse4_1_extractps): Use noavx isa instead of * for the first
12939 alternative, drop %v from the template. Split second alternative into
12940 one noavx and one avx alternative, use *x instead of *v in the
12941 former and v instead of *v in the latter.
12942 (<vi8_sse4_1_avx2_avx512>_movntdqa): Guard the first 2 alternatives
12943 with noavx and the last one with avx.
12944 (sse4_1_phminposuw): Guard first alternative with noavx isa,
12945 split the second one into one noavx and one avx alternative,
12946 use *x and Bm in the former and x and m in the latter one.
12947 (<sse4_1>_ptest<mode>): Use noavx instead of * for the first two
12948 alternatives.
12949
12950 * config/i386/sse.md (sse4_1_<code>v8qiv8hi2<mask_name>): Limit
12951 first two alternatives to noavx, use *x instead of *v in the second
12952 one, add avx alternative without *.
12953 (sse4_1_<code>v4qiv4si2<mask_name>, sse4_1_<code>v4hiv4si2<mask_name>,
12954 sse4_1_<code>v2qiv2di2<mask_name>, sse4_1_<code>v2hiv2di2<mask_name>,
12955 sse4_1_<code>v2siv2di2<mask_name>): Likewise.
12956
12957 2016-05-24 Jeff Law <law@redhat.com>
12958
12959 * tree-ssa-threadbackwards.c (convert_and_register_jump_thread_path):
12960 New function, extracted from...
12961 (fsm_find_control_statement_thread_paths): Here. Use the new function.
12962 Allow simple copies and constant initializations in the SSA chain.
12963
12964 2016-05-24 Marek Polacek <polacek@redhat.com>
12965
12966 PR c/71249
12967 * gimplify.c (gimplify_switch_expr): Look into the innermost lexical
12968 scope.
12969
12970 2016-05-24 Jakub Jelinek <jakub@redhat.com>
12971
12972 PR c++/71257
12973 * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
12974 SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
12975 SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP. Add
12976 SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP and
12977 SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP cases explicitly.
12978
12979 2016-05-24 Richard Biener <rguenther@suse.de>
12980
12981 PR tree-optimization/71240
12982 * tree-ssa-math-opts.c (init_symbolic_number): Verify the source
12983 has integral type.
12984
12985 2016-05-24 Richard Biener <rguenther@suse.de>
12986
12987 PR tree-optimization/71230
12988 * tree-ssa-reassoc.c (zero_one_operation): Handle negate special ops.
12989
12990 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
12991
12992 * tree-vectorizer.h (vectorizable_comparison): Delete.
12993 * tree-vect-loop.c (vectorizable_reduction): Remove redundant
12994 PURE_SLP_STMT check.
12995 * tree-vect-stmts.c (vectorizable_call): Likewise.
12996 (vectorizable_simd_clone_call): Likewise.
12997 (vectorizable_conversion): Likewise.
12998 (vectorizable_assignment): Likewise.
12999 (vectorizable_shift): Likewise.
13000 (vectorizable_operation): Likewise.
13001 (vectorizable_load): Likewise.
13002 (vectorizable_condition): Likewise.
13003 (vectorizable_store): Likewise. Assert that we don't have
13004 hybrid SLP.
13005 (vectorizable_comparison): Make static. Remove redundant
13006 PURE_SLP_STMT check.
13007 (vect_transform_stmt): Assert that we always have an slp_node
13008 if PURE_SLP_STMT.
13009
13010 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13011
13012 * config/arm/neon.md (ashldi3_neon): Replace comparison of INTVAL of
13013 operands[2] against 1 with comparison against CONST1_RTX.
13014 (<shift>di3_neon): Likewise.
13015 * config/arm/predicates.md (const0_operand): Replace with comparison
13016 against CONST0_RTX.
13017
13018 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13019
13020 * config/arm/arm.md (ashldi3): Replace comparison of INTVAL of
13021 operands[2] against 1 with comparison against CONST1_RTX.
13022 (ashrdi3): Likewise.
13023 (lshrdi3): Likewise.
13024 (ashlsi3): Replace cast of INTVAL to unsigned HOST_WIDE_INT with
13025 UINTVAL.
13026 (ashrsi3): Likewise.
13027 (lshrsi3): Likewise.
13028 (rotrsi3): Likewise.
13029 (define_split above *compareqi_eq0): Likewise.
13030 (define_split above "prologue"): Likewise.
13031 * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
13032 * config/arm/predicates.md (shift_operator): Likewise.
13033 (shift_nomul_operator): Likewise.
13034 (sat_shift_operator): Likewise.
13035 (thumb1_cmp_operand): Likewise.
13036 (const_neon_scalar_shift_amount_operand): Replace manual range
13037 check with IN_RANGE.
13038 * config/arm/thumb1.md (define_peephole2 above *thumb_subdi3):
13039 Replace cast of INTVAL to unsigned HOST_WIDE_INT with UINTVAL.
13040
13041 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13042
13043 * config/arm/arm.md (andsi3): Replace cast of 1 to HOST_WIDE_INT
13044 with HOST_WIDE_INT_1.
13045 (insv): Likewise.
13046 * config/arm/arm.c (optimal_immediate_sequence): Replace cast of
13047 1 to unsigned HOST_WIDE_INT with HOST_WIDE_INT_1U.
13048 (arm_canonicalize_comparison): Likewise.
13049 (thumb1_rtx_costs): Replace cast of 1 to HOST_WIDE_INT with
13050 HOST_WIDE_INT_1.
13051 (thumb1_size_rtx_costs): Likewise.
13052 (vfp_const_double_index): Replace cast of 1 to unsigned
13053 HOST_WIDE_INT with HOST_WIDE_INT_1U.
13054 (get_jump_table_size): Replace cast of 1 to HOST_WIDE_INT with
13055 HOST_WIDE_INT_1.
13056 (arm_asan_shadow_offset): Replace cast of 1 to unsigned
13057 HOST_WIDE_INT with HOST_WIDE_INT_1U.
13058 * config/arm/neon.md (vec_set<mode>): Replace cast of 1 to
13059 HOST_WIDE_INT with HOST_WIDE_INT_1.
13060
13061 2016-05-24 Marek Polacek <polacek@redhat.com>
13062
13063 * tree-cfg.h (should_remove_lhs_p): New predicate.
13064 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
13065 * gimplify.c (gimplify_modify_expr): Likewise.
13066 * tree-cfg.c (verify_gimple_call): Likewise.
13067 * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
13068 * gimple-fold.c: Include "tree-cfg.h".
13069 (gimple_fold_call): Use should_remove_lhs_p.
13070
13071 2016-05-24 Richard Biener <rguenther@suse.de>
13072
13073 PR tree-optimization/71253
13074 * cfganal.h (control_dependences): Make robust against edge
13075 and BB removal.
13076 (control_dependences::control_dependences): Remove edge_list argument.
13077 (control_dependences::get_edge): Remove.
13078 (control_dependences::get_edge_src): Add.
13079 (control_dependences::get_edge_dest): Likewise.
13080 (control_dependences::m_el): Make a vector of edge src/dest index.
13081 * cfganal.c (control_dependences::find_control_dependence): Adjust.
13082 (control_dependences::control_dependences): Likewise.
13083 (control_dependences::~control_dependence): Likewise.
13084 (control_dependences::get_edge): Remove.
13085 (control_dependences::get_edge_src): Add.
13086 (control_dependences::get_edge_dest): Likewise.
13087 * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Use
13088 get_edge_src.
13089 (perform_tree_ssa_dce): Adjust.
13090 * tree-loop-distribution.c (create_edge_for_control_dependence): Use
13091 get_edge_src.
13092 (pass_loop_distribution::execute): Adjust. Do loop destroying
13093 conditional on changed.
13094
13095 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13096
13097 PR target/69857
13098 * config/arm/arm.c (gen_operands_ldrd_strd): Remove bogus early
13099 return. Reindent transformation comment and mention the ARM state
13100 behavior.
13101
13102 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
13103
13104 PR middle-end/71252
13105 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Add stmt_to_insert
13106 after build_and_add_sum creates new use stmt.
13107
13108 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
13109
13110 * tree-vect-stmts.c (vectorizable_load): Reorder checks so that
13111 load_lanes/grouped_load classification comes first. Don't check
13112 whether the vectorization factor is a multiple of the group size
13113 for load_lanes.
13114
13115 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
13116
13117 * tree-vect-data-refs.c (vect_analyze_group_access_1): Set
13118 GROUP_GAP for single-element interleaving.
13119 * tree-vect-stmts.c (vectorizable_load): Remove force_peeling
13120 variable.
13121
13122 2016-05-24 Richard Biener <rguenther@suse.de>
13123
13124 PR middle-end/70434
13125 PR c/69504
13126 * tree-ssa.c (non_rewritable_mem_ref_base): Make sure to mark
13127 bases which are accessed with non-invariant indices.
13128 * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Re-write
13129 constant index ARRAY_REFs of vectors into BIT_FIELD_REFs.
13130
13131 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
13132
13133 PR middle-end/71170
13134 * tree-ssa-reassoc.c (struct operand_entry): Add field stmt_to_insert.
13135 (add_to_ops_vec): Add stmt_to_insert.
13136 (add_repeat_to_ops_vec): Init stmt_to_insert.
13137 (insert_stmt_before_use): New.
13138 (transform_add_to_multiply): Remove mult_stmt insertion and add it
13139 to ops vector.
13140 (get_ops): Init stmt_to_insert.
13141 (maybe_optimize_range_tests): Likewise.
13142 (rewrite_expr_tree): Insert stmt_to_insert before use stmt.
13143 (rewrite_expr_tree_parallel): Likewise.
13144 (reassociate_bb): Likewise.
13145
13146 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
13147
13148 PR target/71201
13149 * config/rs6000/altivec.md (altivec_vperm_<mode>_internal): Drop
13150 ISA 3.0 xxperm fusion alternative.
13151 (altivec_vperm_v8hiv16qi): Likewise.
13152 (altivec_vperm_<mode>_uns_internal): Likewise.
13153 (vperm_v8hiv4si): Likewise.
13154 (vperm_v16qiv8hi): Likewise.
13155
13156 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
13157 Kelvin Nilsen <kelvin@gcc.gnu.org>
13158
13159 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate
13160 vpermr/xxpermr on ISA 3.0.
13161 (altivec_expand_vec_perm_le): Likewise.
13162 * config/rs6000/altivec.md (UNSPEC_VPERMR): New unspec.
13163 (altivec_vpermr_<mode>_internal): Add VPERMR/XXPERMR support for
13164 ISA 3.0.
13165
13166 2016-05-23 Uros Bizjak <ubizjak@gmail.com>
13167
13168 * config/i386/i386.h (IS_STACK_MODE): Enable for
13169 TARGET_MIX_SSE_I387. Rewrite using X87_FLOAT_MODE_P and
13170 SSE_FLOAT_MODE_P macros.
13171 * config/i386/i386.c (ix86_preferred_reload_class): Use
13172 IS_STACK_MODE, INTEGER_CLASS_P, FLOAT_CLASS_P and Q_CLASS_P macros.
13173 Cleanup regclass processing for CONST_DOUBLE_P.
13174 (ix86_preferred_output_reload_class): Use IS_STACK_MODE macro.
13175 (ix86_rtx_costs): Remove redundant TARGET_80387 check
13176 with IS_STACK_MODE macro.
13177 * config/i386/i386.md: Replace SSE_FLOAT_MODE_P (DFmode)
13178 with TARGET_SSE2.
13179 (*movdf_internal): Use IS_STACK_MODE macro.
13180 (*movsf_internal): Ditto.
13181
13182 2016-05-23 Marc Glisse <marc.glisse@inria.fr>
13183
13184 * match.pd (a * (1 << b), ~x & ~y, ~X ^ ~Y, (X ^ Y) ^ Y, ~ (-A),
13185 ~ (A - 1), ~(~X >> Y), ~(~X >>r Y)): Relax constraints.
13186
13187 2016-05-23 Jeff Law <law@redhat.com>
13188
13189 * tree-ssa-threadbackward.c (profitable_jump_thread_path): New function
13190 extracted from ...
13191 (fsm_find_control_statement_thread_paths): Call it.
13192
13193 2016-05-23 Martin Jambor <mjambor@suse.cz>
13194
13195 PR ipa/71234
13196 * ipa-cp.c (ipa_get_indirect_edge_target_1): Only check value of
13197 from_global_constant if t is not NULL.
13198
13199 2016-05-23 Marek Polacek <polacek@redhat.com>
13200
13201 PR c/49859
13202 * common.opt (Wswitch-unreachable): New option.
13203 * doc/invoke.texi: Document -Wswitch-unreachable.
13204 * gimplify.c (gimplify_switch_expr): Implement the -Wswitch-unreachable
13205 warning.
13206
13207 2016-05-23 Bin Cheng <bin.cheng@arm.com>
13208
13209 * tree-ssa-address.c (copy_ref_info): Check NULL TMR_STEP when
13210 TMR_INDEX is non-NULL.
13211
13212 2016-05-23 Richard Biener <rguenther@suse.de>
13213
13214 PR tree-optimization/71230
13215 * tree-ssa-reassoc.c (acceptable_pow_call): Move initial condition...
13216 (try_special_add_to_ops): ... here. Always test for single-use.
13217
13218 2016-05-23 Martin Jambor <mjambor@suse.cz>
13219
13220 * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Create an empty
13221 default block if a PHI node in the original one would be resized.
13222
13223 2016-05-23 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
13224
13225 PR tree-optimization/58135
13226 * tree-vect-slp.c: When group size is not multiple
13227 of vector size, allow splitting of store group at
13228 vector boundary.
13229
13230 2016-05-23 Christophe Lyon <christophe.lyon@linaro.org>
13231
13232 * config/arm/arm_neon.h (vtst_p16, vtstq_p16): New.
13233
13234 2016-05-22 Jakub Jelinek <jakub@redhat.com>
13235
13236 * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
13237 vec_set_hi_<mode><mask_name>): Add && <mask_avx512dq_condition>
13238 condition. For !TARGET_AVX512DQ, emit 32x4 instruction instead
13239 of 64x2.
13240
13241 * config/i386/sse.md (vec_set_lo_v16hi, vec_set_hi_v16hi,
13242 vec_set_lo_v32qi, vec_set_hi_v32qi): Add alternative with
13243 v constraint instead of x and vinserti32x4 insn.
13244
13245 * config/i386/sse.md (i128vldq): New mode iterator.
13246 (avx2_vbroadcasti128_<mode>, avx_vbroadcastf128_<mode>): Add
13247 avx512dq and avx512vl alternatives.
13248
13249 * config/i386/sse.md (avx2_vec_dupv4df): Use v instead of x
13250 constraint, use maybe_evex prefix instead of vex.
13251 (vec_dupv4sf): Use v constraint instead of x for output
13252 operand except for noavx alternative, use Yv constraint
13253 instead of x for input. Use maybe_evex prefix instead of vex.
13254 (*vec_dupv4si): Likewise.
13255 (*vec_dupv2di): Likewise.
13256
13257 2016-05-22 Kugan Vivekanandarajah <kuganv@linaro.org>
13258
13259 PR middle-end/40921
13260 * tree-ssa-reassoc.c (try_special_add_to_ops): New.
13261 (linearize_expr_tree): Call try_special_add_to_ops.
13262 (reassociate_bb): Convert MULT_EXPR by (-1) to NEGATE_EXPR.
13263
13264 2016-05-21 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
13265
13266 * config/avr/avr.c (avr_expand_prologue): Add INCOMING_FRAME_SP_OFFSET
13267 to computed stack_usage.
13268
13269 2016-05-21 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
13270
13271 PR target/71103
13272 * config/avr/avr.md (define_expand "mov<mode>"): If the source
13273 operand is subreg (symbol_ref) then move the symbol ref to register.
13274
13275 2016-05-21 Jan Hubicka <hubicka@ucw.cz>
13276
13277 * tree.c (array_at_struct_end_p): Look through MEM_REF.
13278
13279 2016-05-21 Kugan Vivekanandarajah <kuganv@linaro.org>
13280
13281 PR middle-end/71179
13282 * tree-ssa-reassoc.c (transform_add_to_multiply): Disallow float
13283 VECTOR type.
13284
13285 2016-05-20 Eric Botcazou <ebotcazou@adacore.com>
13286
13287 * tree-vrp.c (compare_values_warnv): Simplify handling of symbolic
13288 ranges by calling get_single_symbol and tidy up. Look more closely
13289 into NAME + CST1 vs CST2 comparisons if type overflow is undefined.
13290
13291 2016-05-20 Jeff Law <law@redhat.com>
13292
13293 * bitmap.c (bitmap_find_bit): Remove useless test.
13294
13295 2016-05-20 Segher Boessenkool <segher@kernel.crashing.org>
13296
13297 * function.c (thread_prologue_and_epilogue_insns): Commit the
13298 insertion of the epilogue.
13299
13300 2016-05-20 Martin Jambor <mjambor@suse.cz>
13301
13302 PR tree-optimization/70884
13303 * tree-sra.c (initialize_constant_pool_replacements): Do not check
13304 should_scalarize_away_bitmap and cannot_scalarize_away_bitmap bits.
13305 (sort_and_splice_var_accesses): Do not consider multiple scalar reads
13306 of constant pool data as a reason for scalarization.
13307
13308 2016-05-20 Eric Botcazou <ebotcazou@adacore.com>
13309
13310 * config/arm/arm.c (arm_expand_prologue): Set the stack usage to 0
13311 for naked functions.
13312 (thumb1_expand_prologue): Likewise.
13313
13314 2016-05-20 Nathan Sidwell <nathan@acm.org>
13315
13316 * config/nvptx/nptx.c (nvptx_option_override): Only set
13317 flag_toplevel_reorder, if not explicitly specified. Set
13318 flag_no_common, unless explicitly specified.
13319
13320 2016-05-20 David Malcolm <dmalcolm@redhat.com>
13321
13322 * calls.c (can_implement_as_sibling_call_p): Mark param
13323 reg_parm_stack_space with ATTRIBUTE_UNUSED.
13324
13325 2016-05-20 Uros Bizjak <ubizjak@gmail.com>
13326
13327 * config/i386/i386.c (ix86_rtx_costs) <case CONST_DOUBLE>:
13328 Use IS_STACK_MODE when calculating cost of standard 80387 constants.
13329 Fallthru to CONST_VECTOR case to calculate cost of standard SSE
13330 constants.
13331 <case CONST_WIDE_INT>: Calculate cost of (MEM (SYMBOL_REF)).
13332 (ix86_legitimate_constant_p): Use CASE_CONST_SCALAR_INT
13333 and CASE_CONST_ANY.
13334
13335 2016-05-20 Cesar Philippidis <cesar@codesourcery.com>
13336
13337 * config/nvptx/nvptx.md (sincossf3): New pattern.
13338
13339 2016-05-20 David Malcolm <dmalcolm@redhat.com>
13340
13341 * calls.c (maybe_complain_about_tail_call): New function.
13342 (initialize_argument_information): Call
13343 maybe_complain_about_tail_call when clearing *may_tailcall.
13344 (can_implement_as_sibling_call_p): Call
13345 maybe_complain_about_tail_call when returning false.
13346 (expand_call): Read CALL_EXPR_MUST_TAIL_CALL and, if set,
13347 ensure try_tail_call is set. Call maybe_complain_about_tail_call
13348 if tail-call optimization fails.
13349 * cfgexpand.c (expand_call_stmt): Initialize
13350 CALL_EXPR_MUST_TAIL_CALL from gimple_call_must_tail_p.
13351 * gimple-pretty-print.c (dump_gimple_call): Dump
13352 gimple_call_must_tail_p.
13353 * gimple.c (gimple_build_call_from_tree): Call
13354 gimple_call_set_must_tail with the value of
13355 CALL_EXPR_MUST_TAIL_CALL.
13356 * gimple.h (enum gf_mask): Add GF_CALL_MUST_TAIL_CALL.
13357 (gimple_call_set_must_tail): New function.
13358 (gimple_call_must_tail_p): New function.
13359 * print-tree.c (print_node): Update printing of TREE_STATIC
13360 to reflect its use for CALL_EXPR_MUST_TAIL_CALL.
13361 * tree-core.h (struct tree_base): Add MUST_TAIL_CALL to the
13362 trailing comment listing applicable flags.
13363 * tree.h (CALL_EXPR_MUST_TAIL_CALL): New macro.
13364
13365 2016-05-20 David Malcolm <dmalcolm@redhat.com>
13366
13367 * calls.c (expand_call): Move "Rest of purposes for tail call
13368 optimizations to fail" to...
13369 (can_implement_as_sibling_call_p): ...this new function, and
13370 split into multiple "if" statements.
13371
13372 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
13373
13374 * cfgloop.h (expected_loop_iterations_unbounded,
13375 expected_loop_iterations): Unconstify.
13376 * cfgloopanal.c (expected_loop_iterations_unbounded): Sanity check the
13377 profile with known upper bound; return 3 when profile is absent.
13378 (expected_loop_iterations): Update.
13379
13380 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
13381
13382 * loop-doloop.c (doloop_optimize): Use get_estimated_loop_iterations_int
13383 and get_max_loop_iterations_int.
13384
13385 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
13386
13387 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can not produce
13388 realistic upper bounds here.
13389
13390 2016-05-20 Jakub Jelinek <jakub@redhat.com>
13391
13392 PR c++/71210
13393 * gimple-fold.c (gimple_fold_call): Do not remove lhs of noreturn
13394 calls if the LHS is variable length or has addressable type.
13395 If targets[0]->decl is a noreturn call with void return type and
13396 zero arguments, adjust fntype and remove lhs in that case.
13397
13398 2016-05-20 Marc Glisse <marc.glisse@inria.fr>
13399
13400 PR tree-optimization/71079
13401 PR tree-optimization/71206
13402 * match.pd ((X ^ Y) ^ (X ^ Z)): Convert the arguments.
13403
13404 2016-05-20 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
13405
13406 * tree-vectorizer.c (get_vec_alignment_for_decl): New static function.
13407 (get_vec_alignment_for_array_decl): Likewise.
13408 (get_vec_alignment_for_record_decl): Likewise.
13409 (increase_alignment::execute): Move code to find alignment to
13410 get_vec_alignment_for_array_decl and call get_vec_alignment_for_decl.
13411 (type_align_map): New hash_map.
13412
13413 2016-05-20 Richard Guenther <rguenther@suse.de>
13414
13415 PR tree-optimization/29756
13416 * tree.def (BIT_INSERT_EXPR): New tcc_expression tree code.
13417 * expr.c (expand_expr_real_2): Handle BIT_INSERT_EXPR.
13418 * fold-const.c (operand_equal_p): Likewise.
13419 (fold_ternary_loc): Add constant folding of BIT_INSERT_EXPR.
13420 * gimplify.c (gimplify_expr): Handle BIT_INSERT_EXPR.
13421 * tree-inline.c (estimate_operator_cost): Likewise.
13422 * tree-pretty-print.c (dump_generic_node): Likewise.
13423 * tree-ssa-operands.c (get_expr_operands): Likewise.
13424 * cfgexpand.c (expand_debug_expr): Likewise.
13425 * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
13426 * gimple.c (get_gimple_rhs_num_ops): Handle BIT_INSERT_EXPR.
13427 * tree-cfg.c (verify_gimple_assign_ternary): Verify BIT_INSERT_EXPR.
13428 * tree-ssa.c (non_rewritable_lvalue_p): We can rewrite
13429 vector inserts using BIT_FIELD_REF or MEM_REF on the lhs.
13430 (execute_update_addresses_taken): Do it.
13431
13432 2016-05-20 Richard Biener <rguenther@suse.de>
13433
13434 PR tree-optimization/71185
13435 * tree-ssa-loop-prefetch.c (gather_memory_references): Drop
13436 register operations.
13437
13438 2016-05-20 Richard Biener <rguenther@suse.de>
13439
13440 * tree-if-conv.c (add_bb_predicate_gimplified_stmts): Use
13441 gimple_seq_add_seq_without_update.
13442 (release_bb_predicate): Assert we have no operands to free.
13443 (if_convertible_loop_p_1): Calculate post dominators later.
13444 Do not free BB predicates here.
13445 (combine_blocks): Do not recompute BB predicates.
13446 (version_loop_for_if_conversion): Save BB predicates around
13447 loop versioning.
13448
13449 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org>
13450
13451 * function.c (make_epilogue_seq): Remove epilogue_end parameter.
13452 (thread_prologue_and_epilogue_insns): Remove bb_flags. Restructure
13453 code. Ignore sibcalls on EDGE_IGNORE edges.
13454 * shrink-wrap.c (handle_simple_exit): New function. Set EDGE_IGNORE
13455 on edges for sibcalls that run without prologue. The rest of the
13456 function is combined from...
13457 (fix_fake_fallthrough_edge): ... this, and ...
13458 (try_shrink_wrapping): ... a part of this. Remove the bb_with
13459 function argument, make it a local variable.
13460
13461 2016-05-19 Sandra Loosemore <sandra@codesourcery.com>
13462
13463 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Allow
13464 --disable-sjlj-exceptions for TARGET_BI_ARCH to select DWARF-2 EH
13465 for 32-bit mode and SEH for 64-bit.
13466 * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): Handle
13467 TARGET_64BIT_DEFAULT.
13468
13469 2016-05-19 Ryan Burn <contact@rnburn.com>
13470
13471 * Makefile.in (GTFILES): Add cilk.h and cilk-common.c.
13472 * gengtype.c (open_base_files): Add cilk.h to ifiles.
13473
13474 2016-05-19 Uros Bizjak <ubizjak@gmail.com>
13475
13476 * sched-deps.c (sched_analyze_2) <case TRAP_IF>: Also
13477 force pending loads from memory.
13478
13479 2016-05-19 Kelvin Nilsen <kelvin@gcc.gnu.org>
13480
13481 * config/rs6000/altivec.md (UNSPEC_DARN): New unspec constant.
13482 (UNSPEC_DARN_32): New unspec constant.
13483 (UNSPEC_DARN_RAW): New unspec constant.
13484 (darn_32): New instruction.
13485 (darn_raw): New instruction.
13486 (darn): New instruction.
13487 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_0): Add
13488 support and documentation for this macro.
13489 (BU_P9_MISC_1): New macro definition.
13490 (BU_P9_64BIT_MISC_0): New macro definition.
13491 (BU_P9_MISC_0): New macro definition.
13492 (darn_32): New builtin definition.
13493 (darn_raw): New builtin definition.
13494 (darn): New builtin definition.
13495 * config/rs6000/rs6000.c: Add #define RS6000_BUILTIN_0 and #undef
13496 RS6000_BUILTIN_0 directives to surround each occurrence of
13497 #include "rs6000-builtin.def".
13498 (rs6000_builtin_mask_calculate): Add in the RS6000_BTM_MODULO and
13499 RS6000_BTM_64BIT flags to the returned mask, depending on
13500 configuration.
13501 (def_builtin): Correct an error in the assignments made to the
13502 debugging variable attr_string.
13503 (rs6000_expand_builtin): Add support for no-operand built-in
13504 functions.
13505 (builtin_function_type): Remove fatal_error assertion that is no
13506 longer valid.
13507 (rs6000_common_init_builtins): Add support for no-operand built-in
13508 functions.
13509 * config/rs6000/rs6000.h (RS6000_BTM_MODULO): New macro
13510 definition.
13511 (RS6000_BTM_PURE): Enhance comment to clarify intent of this flag
13512 definition.
13513 (RS6000_BTM_64BIT): New macro definition.
13514 * doc/extend.texi: Document __builtin_darn (void),
13515 __builtin_darn_raw (void), and __builtin_darn_32 (void) built-in
13516 functions.
13517
13518 2016-05-19 Jan Hubicka <hubicka@ucw.cz>
13519
13520 * tree-vect-loop.c (vect_analyze_loop_2): Use also
13521 max_loop_iterations_int.
13522
13523 2016-05-19 Marek Polacek <polacek@redhat.com>
13524
13525 PR tree-optimization/71031
13526 * tree-vrp.c (extract_range_from_binary_expr_1): Turn assert into a
13527 condition and adjust the code a bit.
13528
13529 2016-05-19 Martin Liska <mliska@suse.cz>
13530
13531 * tree-vect-stmts.c (vectorizable_simd_clone_call): Utilize
13532 auto_vec instead of vec.
13533
13534 2016-05-19 Martin Liska <mliska@suse.cz>
13535
13536 * tree-parloops.c (oacc_entry_exit_ok): Release a vector.
13537
13538 2016-05-19 Martin Liska <mliska@suse.cz>
13539
13540 * tree-if-conv.c (ifcvt_repair_bool_pattern): Utilize auto_vecs.
13541
13542 2016-05-19 Martin Liska <mliska@suse.cz>
13543
13544 * ipa-pure-const.c (set_function_state): Remove an existing
13545 funct_state.
13546 (remove_node_data): Do not free it as it's released
13547 in set_function_state.
13548
13549 2016-05-19 Martin Liska <mliska@suse.cz>
13550
13551 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Release
13552 bitmap.
13553
13554 2016-05-19 Martin Liska <mliska@suse.cz>
13555
13556 * omp-simd-clone.c (simd_clone_adjust): Release vector.
13557
13558 2016-05-19 Martin Liska <mliska@suse.cz>
13559
13560 * tree-ssa-reassoc.c (eliminate_duplicate_pair): Truncate
13561 an auto_vec instead of re-creating it.
13562
13563 2016-05-19 Martin Liska <mliska@suse.cz>
13564
13565 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Use
13566 auto_vec instead of vec.
13567
13568 2016-05-19 Martin Liska <mliska@suse.cz>
13569
13570 * lto-section-in.c (lto_get_section_data): Call
13571 lto_check_version with additional argument.
13572 * lto-streamer.c (lto_check_version): Add new argument.
13573 * lto-streamer.h (lto_check_version): Likewise.
13574
13575 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13576
13577 * config/arm/arm.c (arm_new_rtx_costs, SIGN_EXTEND case):
13578 Don't add cost of inner memory when handling sign-extended loads.
13579
13580 2016-05-19 Ilya Enkovich <ilya.enkovich@intel.com>
13581
13582 PR rtl-optimization/71148
13583 * cse.c (cse_main): Free dominance info.
13584 (rest_of_handle_cse): Don't free dominance info.
13585 (rest_of_handle_cse2): Likewise.
13586 (rest_of_handle_cse_after_global_opts): Likewise.
13587
13588 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13589
13590 PR target/71056
13591 * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Return
13592 NULL_TREE early if NEON is not available. Remove now redundant check
13593 in ARM_CHECK_BUILTIN_MODE.
13594
13595 2016-05-19 Maxim Ostapenko <m.ostapenko@samsung.com>
13596
13597 PR sanitizer/64354
13598 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add new
13599 builtin __SANITIZE_THREAD__ macros for fsanitize=thread switch.
13600 * doc/cpp.texi: Document new macros.
13601
13602 2016-05-19 Bin Cheng <bin.cheng@arm.com>
13603
13604 PR tree-optimization/69848
13605 * tree-vect-loop.c (vectorizable_reduction): Don't factor
13606 comparison expr out of VEC_COND_EXPR for COND_REDUCTION.
13607
13608 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org>
13609
13610 * function.c (thread_prologue_and_epilogue_insn): Move the
13611 "goto epilogue_done" one block later.
13612
13613 2016-05-19 Richard Biener <rguenther@suse.de>
13614
13615 PR tree-optimization/70729
13616 * passes.def: Move LIM pass before PRE. Remove no longer
13617 required copyprop and move first DCE out of the loop pipeline.
13618
13619 2016-05-18 David Malcolm <dmalcolm@redhat.com>
13620
13621 PR driver/69265
13622 * Makefile.in (GCC_OBJS): Move spellcheck.o to...
13623 (OBJS-libcommon-target): ...here.
13624 * opts-common.c: Include spellcheck.h.
13625 (cmdline_handle_error): Build a vec of valid options and use it
13626 to suggest provide hints for misspelled arguments.
13627
13628 2016-05-18 Jakub Jelinek <jakub@redhat.com>
13629
13630 PR c++/71100
13631 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Don't drop
13632 lhs if it has TREE_ADDRESSABLE type.
13633
13634 2016-05-18 Uros Bizjak <ubizjak@gmail.com>
13635
13636 PR target/71145
13637 * config/alpha/alpha.md (trap): Add (use (reg:DI 29)).
13638 (*exception_receiver_1): Return "#" for TARGET_EXPLICIT_RELOCS.
13639
13640 2016-05-18 Martin Jambor <mjambor@suse.cz>
13641
13642 PR ipa/69708
13643 * ipa-cp.c (ipa_get_jf_pass_through_result): Allow non-ip constant
13644 input for NOP_EXPR pass-through functions.
13645 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Allow
13646 aggregate global constant VAR_DECLs in constant jump functions.
13647
13648 2016-05-18 Martin Jambor <mjambor@suse.cz>
13649
13650 PR ipa/69708
13651 * ipa-prop.c (parm_preserved_before_stmt_p): Return true for loads
13652 from TREE_READONLY parameters.
13653
13654 2016-05-18 Martin Jambor <mjambor@suse.cz>
13655
13656 PR ipa/69708
13657 * cgraph.h (cgraph_indirect_call_info): New field
13658 guaranteed_unmodified.
13659 * ipa-cp.c (ipa_get_indirect_edge_target_1): Also pass parameter value
13660 to ipa_find_agg_cst_for_param, check guaranteed_unmodified when
13661 appropriate.
13662 * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Also
13663 pass the parameter value to ipa_find_agg_cst_for_param.
13664 * ipa-prop.c (ipa_load_from_parm_agg): New parameter
13665 guaranteed_unmodified, store AA results there instead of bailing out
13666 if present.
13667 (ipa_note_param_call): Also initialize guaranteed_unmodified flag.
13668 (ipa_analyze_indirect_call_uses): Also set guaranteed_unmodified flag.
13669 (find_constructor_constant_at_offset): New function.
13670 (ipa_find_agg_cst_from_init): Likewise.
13671 (ipa_find_agg_cst_for_param): Also seearch for aggregate values in
13672 static initializers of contants, report back through a new paameter
13673 from_global_constant if that was the case.
13674 (try_make_edge_direct_simple_call): Also pass parameter value to
13675 ipa_find_agg_cst_for_param, check guaranteed_unmodified when
13676 appropriate.
13677 (ipa_write_indirect_edge_info): Stream new flag guaranteed_unmodified.
13678 (ipa_read_indirect_edge_info): Likewise.
13679 * ipa-prop.h (ipa_find_agg_cst_for_param): Update declaration.
13680 (ipa_load_from_parm_agg): Likewise.
13681
13682 2016-05-18 Jiong Wang <jiong.wang@arm.com>
13683
13684 PR rtl-optimization/71150
13685 * lra-constraint (process_addr_reg): Guard "in_class_p" with REG_P
13686 check.
13687
13688 2016-05-18 Michael Meissner <meissner@linux.vnet.ibm.com>
13689
13690 PR target/70915
13691 * config/rs6000/constraints.md (wE constraint): New constraint
13692 for a vector constant that can be loaded with XXSPLTIB.
13693 (wM constraint): New constraint for a vector constant of a 1's.
13694 (wS constraint): New constraint for a vector constant that can be
13695 loaded with XXSPLTIB and a vector sign extend instruction.
13696 * config/rs6000/predicates.md (xxspltib_constant_split): New
13697 predicates for wE/wS constraints.
13698 (xxspltib_constant_nosplit): Likewise.
13699 (easy_vector_constant): Add support for constants that can be
13700 loaded via XXSPLTIB.
13701 (all_ones_constant): New predicate for vector constant with all
13702 1's set.
13703 (splat_input_operand): Add support for ISA 3.0 word splat operations.
13704 * config/rs6000/rs6000.c (xxspltib_constant_p): New function to
13705 return if a constant can be loaded with the ISA 3.0 XXSPLTIB
13706 instruction and possibly with a sign extension.
13707 (output_vec_const_move): Add support for XXSPLTIB. If we are
13708 loading up 0/-1 into Altivec registers, prefer using VSPLTISW
13709 instead of XXLXOR/XXLORC.
13710 (rs6000_expand_vector_init): Add support for ISA 3.0 word splat
13711 operations.
13712 (rs6000_legitimize_reload_address): Likewise.
13713 (rs6000_output_move_128bit): Use output_vec_const_move to emit
13714 constants.
13715 * config/rs6000/vsx.md (VSX_M): Add TImode (if -mvsx-timode) and
13716 combine VSX_M and VSX_M2 into one iterator.
13717 (VSX_M2): Likewise.
13718 (VSINT_84): New iterators for loading constants with XXSPLTIB.
13719 (VSINT_842): Likewise.
13720 (UNSPEC_VSX_SIGN_EXTEND): New UNSPEC.
13721 (xxspltib_v16qi): New insns to load up constants with the ISA 3.0
13722 XXSPLTIB instruction.
13723 (xxspltib_<mode>_nosplit): Likewise.
13724 (xxspltib_<mode>_split): New insn to load up constants with
13725 XXSPLTIB and a sign extend instruction.
13726 (vsx_mov<mode>): Replace single move that handled all vector types
13727 with separate 32-bit and 64-bit moves. Combine the movti_<bit>
13728 moves (when -mvsx-timode is in effect) into the main vector
13729 moves. Eliminate separate moves for <VSr> <VSa>, where the
13730 preferred register class (<VSr>) is listed first, and the
13731 secondary register class (<VSa>) is listed second with a '?' to
13732 discourage use. Prefer loading 0/-1 in any VSX register for ISA
13733 3.0, and Altivec registers for ISA 2.06/2.07 (PR target/70915) so
13734 that if the register was involved in a slow operation, the
13735 clear/set operation does not wait for the slow operation to
13736 finish. Adjust the length attributes for 32-bit mode. Use
13737 rs6000_output_move_128bit and drop the use of the string
13738 instructions for 32-bit movti when -mvsx-timode is in effect. Use
13739 spacing so that the alternatives and attributes don't generate
13740 long lines, and put things in columns, so that it is easier to
13741 match up the operands and attributes with the insn alternatives.
13742 (vsx_mov<mode>_64bit): Likewise.
13743 (vsx_mov<mode>_32bit): Likewise.
13744 (vsx_movti_64bit): Fold movti into normal vector moves.
13745 (vsx_movti_32bit): Likewise.
13746 (vsx_splat_<mode>, V4SI/V4SF modes): Add support for ISA 3.0 word
13747 splat instructions.
13748 (vsx_splat_v4si_internal): Likewise.
13749 (vsx_splat_v4sf_internal): Likewise.
13750 (vector fusion peepholes): Use VSX_M instead of VSX_M2.
13751 (vsx_sign_extend_qi_<mode>): New ISA 3.0 instructions to sign
13752 extend vector elements.
13753 (vsx_sign_extend_hi_<mode>): Likewise.
13754 (vsx_sign_extend_si_v2di): Likewise.
13755 * config/rs6000/rs6000-protos.h (xxspltib_constant_p): Add
13756 declaration.
13757 * doc/md.texi (PowerPC constraints): Document the wE, wM, and wS
13758 constraints. Add trailing period to wL documentation.
13759
13760 2016-05-18 Richard Sandiford <richard.sandiford@arm.com>
13761
13762 PR middle-end/71020
13763 * tree-dfa.h (replace_abnormal_ssa_names): Declare.
13764 * tree-dfa.c (replace_abnormal_ssa_names): New function.
13765 * tree-call-cdce.c: Include tree-dfa.h.
13766 (can_guard_call_p): New function, extracted from...
13767 (can_use_internal_fn): ...here.
13768 (shrink_wrap_one_built_in_call_with_conds): Remove failure path
13769 and return void.
13770 (shrink_wrap_one_built_in_call): Likewise.
13771 (use_internal_fn): Likewise.
13772 (shrink_wrap_conditional_dead_built_in_calls): Update accordingly
13773 and return void. Call replace_abnormal_ssa_names.
13774 (pass_call_cdce::execute): Check can_guard_call_p during the
13775 initial walk. Assume shrink_wrap_conditional_dead_built_in_calls
13776 will always change something.
13777
13778 2016-05-18 Martin Jambor <mjambor@suse.cz>
13779
13780 PR ipa/70646
13781 * ipa-prop.c (determine_locally_known_aggregate_parts): Bail out early
13782 if parameter PARAM_IPA_MAX_AGG_ITEMS is zero.
13783
13784 2016-05-18 Martin Jambor <mjambor@suse.cz>
13785
13786 PR ipa/70646
13787 * ipa-inline.h (condition): New field size.
13788 * ipa-inline-analysis.c (add_condition): New parameter SIZE, use it
13789 for comaprison and store it into the new condition.
13790 (evaluate_conditions_for_known_args): Use condition size to check
13791 access sizes for all but CHANGED conditions.
13792 (unmodified_parm_1): New parameter size_p, store access size into it.
13793 (unmodified_parm): Likewise.
13794 (unmodified_parm_or_parm_agg_item): Likewise.
13795 (eliminated_by_inlining_prob): Pass NULL to unmodified_parm as size_p.
13796 (set_cond_stmt_execution_predicate): Extract access sizes and store
13797 them to conditions.
13798 (set_switch_stmt_execution_predicate): Likewise.
13799 (will_be_nonconstant_expr_predicate): Likewise.
13800 (will_be_nonconstant_predicate): Likewise.
13801 (inline_read_section): Stream condition size.
13802 (inline_write_summary): Likewise.
13803
13804 2016-05-18 Richard Biener <rguenther@suse.de>
13805
13806 * tree-ssa-loop-im.c (determine_max_movement): Properly add
13807 condition cost to PHI cost instead of total_cost.
13808
13809 2016-05-18 Martin Liska <mliska@suse.cz>
13810
13811 PR fortran/70856
13812 * ipa-icf.c (sem_variable::merge): Set DECL_PT_UID for
13813 merged variables.
13814
13815 2016-05-18 Richard Biener <rguenther@suse.de>
13816
13817 * lto-streamer.h (LTO_major_version): Bump to 6.
13818
13819 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org>
13820
13821 * function.c (make_split_prologue_seq, make_prologue_seq,
13822 make_epilogue_seq): New functions, factored out from...
13823 (thread_prologue_and_epilogue_insns): Here.
13824
13825 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org>
13826
13827 * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
13828 cleanup_cfg with CLEANUP_EXPENSIVE after shrink-wrapping instead
13829 of before. Add a comment.
13830
13831 2016-05-18 Bin Cheng <bin.cheng@arm.com>
13832
13833 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check invariant
13834 expression pointer, not pointer to the pointer.
13835
13836 2016-05-18 Jakub Jelinek <jakub@redhat.com>
13837
13838 * config/i386/sse.md (pbroadcast_evex_isa): New mode attr.
13839 (avx2_pbroadcast<mode>): Add another alternative with v instead
13840 of x constraints in it, using <pbroadcast_evex_isa> isa.
13841 (avx2_pbroadcast<mode>_1): Similarly, add two such alternatives.
13842
13843 * config/i386/sse.md (<ssse3_avx2>_palignr<mode>): Use
13844 constraint x instead of v in second alternative, add avx512bw
13845 alternative.
13846
13847 * config/i386/sse.md (<ssse3_avx2>_pshufb<mode>3<mask_name>): Use
13848 constraint x instead of v in second alternative, add avx512bw
13849 alternative.
13850
13851 * config/i386/sse.md (*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>): Use
13852 constraint x instead of v in second alternative, add avx512bw
13853 alternative.
13854
13855 * config/i386/sse.md (avx2_pmaddubsw256, ssse3_pmaddubsw128): Add
13856 avx512bw alternative.
13857
13858 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
13859
13860 * config/i386/sse.md (define_insn "*andnot<mode>3"): Extend static
13861 array to 128 chars.
13862 (define_insn "*andnottf3"): Ditto.
13863 (define_insn "*<code><mode>3"/any_logic): Ditto.
13864 (define_insn "*<code>tf3"/any_logic): Ditto.
13865 (define_insn "sse2_storehpd"): Use Yv constraint for scalar
13866 operand to block AVX-512VL insn variant emit when it is not enabled.
13867
13868 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
13869
13870 * config/i386/sse.md (define_insn "*vec_concatv2sf_sse4_1"): Use 'Yv'
13871 constraint fot SF mode.
13872
13873 2016-05-18 Petr Murzin <petr.murzin@intel.com>
13874 Kirill Yukhin <kirill.yukhin@intel.com>
13875
13876 * config/i386/sse.md (define_insn "srcp14<mode>"): Use proper operand
13877 modifiers.
13878 (define_insn "rsqrt14<mode>"): Ditto.
13879 (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
13880 (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
13881 (define_insn "avx512f_<code>v8div16qi2_mask_store"): Ditto.
13882 (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
13883 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"):
13884 Ditto.
13885 (define_insn "*avx512f_gatherdi<mode>"): Ditto.
13886 (define_insn "*avx512f_scatterdi<mode>"): Ditto.
13887 * config/i386/i386.c (ix86_print_operand): Expand check for size
13888 override codes for Intel syntax.
13889
13890 2016-05-18 Richard Biener <rguenther@suse.de>
13891
13892 PR tree-optimization/71168
13893 * tree-loop-distribution.c (distribute_loop): Move *destroy_p
13894 initialization earlier.
13895
13896 2016-05-18 James Greenhalgh <james.greenhalgh@arm.com>
13897
13898 * config/aarch64/aarch64-simd.md
13899 (aarch64_reduc_plus_internal<mode>): Rename to...
13900 (reduc_plus_scal): ...This, and remove previous implementation.
13901
13902 2016-05-18 Richard Biener <rguenther@suse.de>
13903
13904 * passes.def: Put late dse and cd_dce in canonical order.
13905
13906 2016-05-17 Jan Hubicka <hubicka@ucw.cz>
13907
13908 * ipa-inline-transform.c (preserve_function_body_p): Look for
13909 first non-thunk clone.
13910 (save_function_body): Save into first non-thunk.
13911 * lto-cgraph.c (lto_output_edge): When streaming thunk do not look
13912 up call stmt id.
13913 (lto_output_node): Inline thunks don't need body in every
13914 partition.
13915 * lto-streamer-in.c: Do not fixup thunk clones.
13916 * cgraphclones.c (cgraph_node::create_edge_including_clone): Skip
13917 thunks.
13918 * tree-inline.c (copy_bb): Be prepared for target node to be new after
13919 folding suceeds.
13920
13921 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org>
13922
13923 PR middle-end/63586
13924 * tree-ssa-reassoc.c (transform_add_to_multiply): New.
13925 (reassociate_bb): Call transform_add_to_multiply.
13926
13927 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org>
13928
13929 * config/aarch64/aarch64.c (all_extensions): Removed unused
13930 static variable.
13931
13932 2016-05-17 Nathan Sidwell <nathan@acm.org>
13933
13934 * config/nvptx/nvptx.c (nvptx_function_arg_boundary): New.
13935 (TARGET_FUNCTION_ARG_BOUNDARY): Override.
13936
13937 2016-05-17 Mikhail Maltsev <maltsevm@gmail.com>
13938
13939 PR tree-optimization/54579
13940 PR middle-end/55299
13941 * match.pd (~(~X >> Y), ~(~X >>r Y), ~(~X <<r Y)): New patterns.
13942
13943 2016-05-17 Marek Polacek <polacek@redhat.com>
13944
13945 PR ipa/71146
13946 * tree-inline.c (expand_call_inline): Call
13947 maybe_remove_unused_call_args.
13948
13949 2016-05-17 Jim Wilson <jim.wilson@linaro.org>
13950
13951 * doc/cpp.texi (__GNUC__): Major version changes are no longer rare.
13952 * doc/invoke.texi (-mnan=2008): Change signalling to signaling.
13953 * doc/md.texi (fmin@var{m}3): Likewise.
13954
13955 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
13956
13957 * match.pd (X & C): New transformation.
13958
13959 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
13960
13961 * match.pd (~X & Y): New transformation.
13962
13963 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
13964
13965 * tree-vrp.c (simplify_truth_ops_using_ranges): Set range
13966 information for new SSA_NAME.
13967 (simplify_conversion_using_ranges): Get range through get_range_info
13968 instead of get_value_range.
13969
13970 2016-05-17 Jiong Wang <jiong.wang@arm.com>
13971
13972 * config/aarch64/arm_neon.h (vmvn_s8): Reimplement using C operator.
13973 Remove inline assembly.
13974 (vmvn_s16): Likewise.
13975 (vmvn_s32): Likewise.
13976 (vmvn_u8): Likewise.
13977 (vmvn_u16): Likewise.
13978 (vmvn_u32): Likewise.
13979 (vmvnq_s8): Likewise.
13980 (vmvnq_s16): Likewise.
13981 (vmvnq_s32): Likewise.
13982 (vmvnq_u8): Likewise.
13983 (vmvnq_u16): Likewise.
13984 (vmvnq_u32): Likewise.
13985 (vmvn_p8): Likewise.
13986 (vmvnq_p16): Likewise.
13987
13988 2016-05-17 Jiong Wang <jiong.wang@arm.com>
13989
13990 * config/aarch64/aarch64-simd.md (vmul_n_f32): Remove inline assembly.
13991 Use builtin.
13992 (vmul_n_s16): Likewise.
13993 (vmul_n_s32): Likewise.
13994 (vmul_n_u16): Likewise.
13995 (vmul_n_u32): Likewise.
13996 (vmulq_n_f32): Likewise.
13997 (vmulq_n_f64): Likewise.
13998 (vmulq_n_s16): Likewise.
13999 (vmulq_n_s32): Likewise.
14000 (vmulq_n_u16): Likewise.
14001 (vmulq_n_u32): Likewise.
14002
14003 2016-05-17 Jiong Wang <jiong.wang@arm.com>
14004
14005 * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_to_128df): Extend
14006 to all supported modes. Rename to "*aarch64_mul3_elt_from_dup".
14007
14008 2016-05-17 Jiong Wang <jiong.wang@arm.com>
14009
14010 * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_to_128df): Rename
14011 to *aarch64_fma4_elt_from_dup<mode>.
14012 (*aarch64_fnma4_elt_to_128df): Rename to
14013 *aarch64_fnma4_elt_from_dup<mode>.
14014 * config/aarch64/arm_neon.h (vfma_n_f64): New.
14015 (vfms_n_f32): Likewise.
14016 (vfms_n_f64): Likewise.
14017 (vfmsq_n_f32): Likewise.
14018 (vfmsq_n_f64): Likewise.
14019
14020 2016-05-17 Gerald Pfeifer <gerald@pfeifer.com>
14021
14022 * wide-int.h: Change fixed_wide_int_storage from class to struct.
14023
14024 2016-05-17 Richard Biener <rguenther@suse.de>
14025
14026 PR tree-optimization/71132
14027 * tree-loop-distribution.c (create_rdg_cd_edges): Pass in loop.
14028 Only add control dependences for blocks in the loop.
14029 (build_rdg): Adjust.
14030 (generate_code_for_partition): Return whether loop should
14031 be destroyed and delay that.
14032 (distribute_loop): Likewise.
14033 (pass_loop_distribution::execute): Record loops to be destroyed
14034 and perform delayed destroying of loops.
14035
14036 2016-05-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14037
14038 PR target/70809
14039 * config/aarch64/aarch64-simd.md (aarch64_vmls<mode>): Delete.
14040
14041 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
14042
14043 * config/aarch64/aarch64-elf.h (ASM_OUTPUT_DEF): Delete.
14044
14045 2016-05-17 Ilya Enkovich <ilya.enkovich@intel.com>
14046
14047 PR target/71114
14048 * config/i386/i386.c (dimode_scalar_chain::convert_op): Fix
14049 insertion point for instructions generated by validize_mem.
14050
14051 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
14052
14053 * config/aarch64/aarch64.c (SHIFT_COUNT_TRUNCATED): Wrap definition
14054 in brackets.
14055
14056 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
14057
14058 * config/aarch64/aarch64.c
14059 (aarch64_output_simd_mov_immediate): Make "buf_size" a variable
14060 rather than a macro.
14061
14062 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
14063
14064 * doc/invoke.texi (AArch64 Options): Various updates.
14065
14066 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
14067
14068 * ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig
14069 into instrumentation thunks.
14070 * cif-code.def (CIF_CHKP): New.
14071
14072 2016-05-16 Uros Bizjak <ubizjak@gmail.com>
14073
14074 * config/i386/xopintrin.h: Correct "unsinged" typo in the comments.
14075
14076 2016-05-16 Martin Jambor <mjambor@suse.cz>
14077
14078 * hsa-gen.c (fillup_for_decl): Increase alignment to natural one.
14079 (get_symbol_for_decl): Sorry if a global symbol in under-aligned.
14080
14081 2016-05-16 Marek Polacek <polacek@redhat.com>
14082
14083 * gimple.c (maybe_remove_unused_call_args): Fix typos in the
14084 commentary.
14085
14086 2016-05-16 Martin Jambor <mjambor@suse.cz>
14087
14088 PR hsa/70857
14089 * omp-low.c (grid_expand_target_grid_body): Copy RESULT_DECL of
14090 the outlined kernel function.
14091
14092 2016-05-16 Robert Suchanek <robert.suchanek@imgtec.com>
14093
14094 * config/mips/mips.h (ISA_HAS_LSA): Enable for -mmsa.
14095 (ISA_HAS_DLSA): Ditto.
14096
14097 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com>
14098
14099 * config/mips/m5100.md (m51_int_load): Update the latency to 2.
14100
14101 2016-05-16 Nathan Sidwell <nathan@acm.org>
14102
14103 * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): Revert.
14104 (nvptx_name_replacement): Restore. Add comment.
14105 (write_fn_proto, write_fn_proto_from_insn,
14106 nvptx_output_call_insn): Restore
14107 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Delete.
14108
14109 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
14110
14111 * config/aarch64/aarch64.md
14112 (add<mode>3_compareC_cconly_imm): Remove use of %w.
14113 (add<mode>3_compareC_imm): Likewise.
14114 (<optab>si3_uxtw): Split into register and immediate variants.
14115 (andsi3_compare0_uxtw): Likewise.
14116 (and<mode>3_compare0): Likewise.
14117 (and<mode>3nr_compare0): Likewise.
14118 (stack_protect_test_<mode>): Don't use %x for memory operands.
14119
14120 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com>
14121
14122 * config/mips/mips-cpus.def (p5600): Add multi-line brackets.
14123
14124 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
14125
14126 * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
14127 Split integer shifts into shift_reg and bfm.
14128 (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
14129 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
14130 (ror<mode>3_insn): Likewise.
14131 (<optab>si3_insn_uxtw): Likewise.
14132 (<optab><mode>3_insn): Change to rotate_imm.
14133 (extr<mode>5_insn_alt): Likewise.
14134 (extrsi5_insn_uxtw): Likewise.
14135 (extrsi5_insn_uxtw_alt): Likewise.
14136
14137 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
14138
14139 * doc/tm.texi: Regenerate.
14140 * doc/tm.texi.in (TARGET_INVALID_PARAMETER_TYPE): Remove.
14141 (TARGET_INVALID_RETURN_TYPE): Remove.
14142 * system.h: Poison TARGET_INVALID_PARAMETER_TYPE and
14143 TARGET_INVALID_RETURN_TYPE.
14144 * target.def (invalid_parameter_type): Remove.
14145 (invalid_return_type): Remove.
14146
14147 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
14148
14149 * ipa-inline-analysis.c (compute_inline_parameters): Be more reailistic
14150 on estimating thunk bodies; do not set inline_failed to CIF_THUNK for
14151 calls from thunk.
14152 * ipa-inline-transform.c (inline_call): When inlining into thunk produce
14153 gimple body.
14154 (preserve_function_body_p): No need to preserve function body
14155 * cif-codes.def (CIF_THUNK): Remove.
14156 * cgraphclones.c (duplicate_thunk_for_node): Thunks calls are inlinable.
14157
14158 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
14159
14160 * tree-inline.c (expand_call_inline): recurse after inlining thunk.
14161
14162 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
14163
14164 * tree.c (free_lang_data_in_decl): Also set target/optimization flags
14165 for thunks.
14166
14167 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
14168
14169 * ipa-inline.c (report_inline_failed_reason): Look into thunks, too
14170 (inline_small_functions): Do not look for function symbol when
14171 resetting caches.
14172
14173 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
14174
14175 * lto-cgraph.c (compute_ltrans_boundary, output_symtab): Fix handling
14176 of inline thunks
14177
14178 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
14179 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
14180 Jiong Wang <jiong.wang@arm.com>
14181
14182 * config/arm/arm-c.c (arm_cpu_builtins): Use def_or_undef_macro
14183 for __ARM_FP16_FORMAT_IEEE and __ARM_FP16_FORMAT_ALTERNATIVE.
14184 Define __ARM_FP16_ARGS when appropriate.
14185 * config/arm/arm.c (arm_invalid_parameter_type): Remove
14186 declaration.
14187 (arm_invalid_return_type): Likewise.
14188 (TARGET_INVALID_PARAMETER_TYPE): Remove.
14189 (TARGET_INVALID_RETURN_TYPE): Remove.
14190 (aapcs_vfp_sub_candidate): Allow HFmode.
14191 (aapcs_vfp_allocate): Add comment. Support HFmode.
14192 (aapcs_vfp_allocate_return_reg): Likewise.
14193 (struct aapcs_cp_arg_layout): Slightly reword comments for
14194 is_return_candidate and allocate_return_reg.
14195 (output_mov_vfp): Update assert.
14196 (arm_hard_regno_mode_ok): Remove comment, update HF-mode
14197 condition.
14198 (arm_invalid_parameter_type): Remove.
14199 (amr_invalid_return_type): Remove.
14200 * config/arm/arm.h (TARGET_NEON_FP16): Fix definition.
14201 * config/arm/arm.md (*arm32_movhf): Disable for TARGET_VFP.
14202 * config/arm/vfp.md (*movhf_vfp): Enable for TARGET_VFP.
14203
14204 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
14205
14206 * config/aarch64/aarch64.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
14207 * config/aarch64/arch64-protos.h
14208 (aarch64_legitimize_reload_address): Remove.
14209 * config/aarch64/aarch64.c (aarch64_legitimize_reload_address):
14210 Remove.
14211
14212 2016-05-16 Eric Botcazou <ebotcazou@adacore.com>
14213
14214 * configure.ac: Add ACX_NONCANONICAL_HOST.
14215 * configure: Regenerate.
14216 * Makefile.in: Set host_noncanonical.
14217
14218 2016-05-14 Uros Bizjak <ubizjak@gmail.com>
14219
14220 PR target/71097
14221 * config/i386/i386.md (*movtf_internal): Before register allocation,
14222 do not allow FP constants for CM_MEDIUM memory model, allow only
14223 standard FP constants for CM_LARGE and CM_LARGE_PIC models.
14224 (*movxf_internal): Ditto.
14225 (*movdf_internal): Ditto.
14226 (*movsf_internal): Ditto.
14227
14228 2016-05-13 Segher Boessenkool <segher@kernel.crashing.org>
14229
14230 PR rtl-optimization/67483
14231 * combine.c (make_compound_operation): Don't call extract_left_shift
14232 with negative shift amounts.
14233
14234 2016-05-13 Jakub Jelinek <jakub@redhat.com>
14235
14236 PR bootstrap/71071
14237 * fold-const.c (fold_checksum_tree): Allow modification
14238 of TYPE_ALIAS_SET during folding.
14239
14240 * config/i386/i386.c (ix86_compute_frame_layout, ix86_expand_prologue,
14241 ix86_expand_split_stack_prologue): Use HOST_WIDE_INT_C macro.
14242 (ix86_split_to_parts): Likewise. Fix up formatting.
14243
14244 2016-05-13 H.J. Lu <hongjiu.lu@intel.com>
14245
14246 * tree-ssa-loop-ivopts.c (create_new_ivs): Cast to
14247 unsigned HOST_WIDE_INT with HOST_WIDE_INT_PRINT_UNSIGNED in
14248 printf format.
14249
14250 2016-05-13 Nathan Sidwell <nathan@acm.org>
14251
14252 * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): New.
14253 (nvptx_name_replacement): Delete.
14254 (write_fn_proto, write_fn_proto_from_insn,
14255 nvptx_output_call_insn): Remove nvptx_name_replacement call.
14256 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Override.
14257 * langhooks.c (add_builtin_funcction_common): Call
14258 targetm.mangle_decl_assembler_name.
14259
14260 * config/nvptx/nvptx.c (write_fn_proto): Handle
14261 BUILT_IN_ATOMIC_COMPARE_EXCHANGE_n oddity.
14262
14263 2016-05-13 Martin Liska <mliska@suse.cz>
14264
14265 * tree-ssa-loop-ivopts.c (create_new_ivs): Use HOST_WIDE_INT_PRINT_DEC
14266 and PRIu64 in printf format.
14267
14268 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14269
14270 * tree-ssa-loop-ivanon.c (try_unroll_loop_completely): Typo fix in
14271 comment.
14272
14273 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14274
14275 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
14276 Change --param max-completely-peeled-times to
14277 --param max-completely-peel-times in dump file printing.
14278
14279 2016-05-13 Richard Biener <rguenther@suse.de>
14280
14281 PR tree-optimization/42587
14282 * tree-ssa-math-opts.c (perform_symbolic_merge): Handle BIT_FIELD_REF.
14283 (find_bswap_or_nop_1): Likewise.
14284 (bswap_replace): Likewise.
14285
14286 2016-05-13 Martin Liska <mliska@suse.cz>
14287
14288 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
14289 Initialize a variable with default value.
14290
14291 2016-05-13 Martin Liska <mliska@suse.cz>
14292
14293 * doc/invoke.texi: Enhance explanation of error recovery
14294 of sanitizers.
14295
14296 2016-05-13 Martin Liska <mliska@suse.cz>
14297
14298 * tree-ssa-loop-ivopts.c (avg_loop_niter): Fix coding style.
14299 (struct cost_pair): Change inv_expr_id (int) to inv_expr
14300 (iv_inv_expr_ent *).
14301 (struct iv_inv_expr_ent): Comment struct fields.
14302 (sort_iv_inv_expr_ent): New function.
14303 (struct ivopts_data): Rename inv_expr_id to max_inv_expr_id.
14304 (struct iv_ca): Replace used_inv_expr and num_used_inv_expr with
14305 a hash_map between iv_inv_expr_ent and number of usages.
14306 (niter_for_exit): Fix coding style.
14307 (tree_ssa_iv_optimize_init): Use renamed variable.
14308 (determine_base_object): Fix coding style.
14309 (alloc_iv): Likewise.
14310 (find_interesting_uses_outside): Likewise.
14311 (add_candidate_1): Likewise.
14312 (add_standard_iv_candidates): Likewise.
14313 (set_group_iv_cost): Replace inv_expr_id with inv_expr.
14314 (prepare_decl_rtl): Fix coding style.
14315 (get_address_cost): Likewise.
14316 (get_shiftadd_cost): Likewise.
14317 (force_expr_to_var_cost): Likewise.
14318 (compare_aff_trees): Likewise.
14319 (get_expr_id): Restructure the function.
14320 (get_loop_invariant_expr_id): Renamed to
14321 get_loop_invariant_expr.
14322 (get_computation_cost_at): Replace usage of inv_expr_id with
14323 inv_expr.
14324 (get_computation_cost): Likewise.
14325 (determine_group_iv_cost_generic): Likewise.
14326 (determine_group_iv_cost_address): Likewise.
14327 (iv_period): Fix coding style.
14328 (iv_elimination_compare_lt): Likewise.
14329 (may_eliminate_iv): Likewise.
14330 (determine_group_iv_cost_cond): Replace usage of inv_expr_id with
14331 inv_expr.
14332 (determine_group_iv_costs): Dump invariant expressions.
14333 (iv_ca_recount_cost): Use the newly added hash_map.
14334 (iv_ca_set_remove_invariants): Fix coding style.
14335 (iv_ca_set_add_invariants): Fix coding style.
14336 (iv_ca_set_no_cp): Utilize the newly added hash_map for used
14337 invariants.
14338 (iv_ca_set_cp): Likewise.
14339 (iv_ca_new): Initialize the newly added hash_map and remove
14340 initialization of fields.
14341 (iv_ca_free): Delete the hash_map.
14342 (iv_ca_dump): Dump invariant expressions.
14343 (iv_ca_extend): Fix coding style.
14344 (try_add_cand_for): Likewise.
14345 (create_new_ivs): Dump information about # of avg iterations and
14346 # of used invariant expressions.
14347 (rewrite_use_compare): Fix coding style.
14348 (free_loop_data): Set default value for max_inv_expr_id.
14349
14350 2016-05-13 Ilya Enkovich <ilya.enkovich@intel.com>
14351
14352 * cse.c (rest_of_handle_cse): Use cleanup_cfg
14353 returned value cse_cfg_altered computation.
14354 (rest_of_handle_cse2): Likewise.
14355 (rest_of_handle_cse_after_global_opts): Likewise.
14356
14357 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
14358
14359 PR target/53440
14360 * config/arm/arm.c (arm32_output_mi_thunk): New.
14361 (arm_output_mi_thunk): Rename to arm_thumb1_mi_thunk. Rework
14362 to split Thumb1 vs TARGET_32BIT functionality.
14363 (arm_thumb1_mi_thunk): New.
14364
14365 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
14366
14367 * config/aarch64/aarch64.c (TARGET_OMIT_STRUCT_RETURN_REG): Set
14368 to true.
14369
14370 2016-05-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14371
14372 PR target/71080
14373 * config/i386/i386.c (ix86_in_large_data_p): Guard against NULL exp.
14374
14375 2016-05-13 Eric Botcazou <ebotcazou@adacore.com>
14376
14377 * builtins.c (expand_builtin_memcmp): Do not emit the call here.
14378 (expand_builtin_trap): Emit a regular call.
14379 (set_builtin_user_assembler_name): Remove obsolete cases.
14380 * dse.c (scan_insn): Adjust.
14381 * except.c: Include calls.h.
14382 (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is defined,
14383 emit a regular call to setjmp.
14384 * expr.c (emit_block_move_hints): Call emit_block_copy_via_libcall.
14385 (block_move_libcall_safe_for_call_parm): Use memcpy builtin.
14386 (emit_block_move_via_libcall): Delete.
14387 (block_move_fn): Delete.
14388 (init_block_move_fn): Likewise.
14389 (emit_block_move_libcall_fn): Likewise.
14390 (emit_block_op_via_libcall): New function.
14391 (set_storage_via_libcall): Tidy up and use memset builtin.
14392 (block_clear_fn): Delete.
14393 (init_block_clear_fn): Likewise.
14394 (clear_storage_libcall_fn): Likewise.
14395 (expand_assignment): Call emit_block_move_via_libcall.
14396 Do not include gt-expr.h.
14397 * expr.h (emit_block_op_via_libcall): Declare.
14398 (emit_block_copy_via_libcall): New inline function.
14399 (emit_block_move_via_libcall): Likewise.
14400 (emit_block_comp_via_libcall): Likewise.
14401 (block_clear_fn): Delete.
14402 (init_block_move_fn): Likewise.
14403 (init_block_clear_fn): Likewise.
14404 (emit_block_move_via_libcall): Likewise.
14405 (set_storage_via_libcall): Add default parameter value.
14406 * libfuncs.h (enum libfunc_index): Remove obsolete values.
14407 (abort_libfunc): Delete.
14408 (memcpy_libfunc): Likewise.
14409 (memmove_libfunc): Likewise.
14410 (memcmp_libfunc): Likewise.
14411 (memset_libfunc): Likewise.
14412 (setbits_libfunc): Likewise.
14413 (setjmp_libfunc): Likewise.
14414 (longjmp_libfunc): Likewise.
14415 (profile_function_entry_libfunc): Likewise.
14416 (profile_function_exit_libfunc): Likewise.
14417 (gcov_flush_libfunc): Likewise.
14418 * optabs-libfuncs.c (build_libfunc_function): Set DECL_ARTIFICIAL
14419 and DECL_VISIBILITY on the declaration.
14420 (init_optabs): Do not initialize obsolete libfuncs.
14421 * optabs.c (prepare_cmp_insn): Call emit_block_comp_via_libcall.
14422 * tree-core.h (ECF_RET1): Define.
14423 (ECF_TM_PURE): Adjust.
14424 (ECF_TM_BUILTIN): Likewise.
14425 * tree.c (set_call_expr_flags): Deal with ECF_RET1.
14426 (build_common_builtin_nodes): Initialize abort builtin.
14427 Add ECF_RET1 on memcpy, memmove and memset builtins.
14428 Pass final flags for alloca and alloca_with_align builtins.
14429 * config/alpha/alpha.c (alpha_init_libfuncs): Do not initialize
14430 obsolete builtins.
14431 * config/ia64/ia64.c (ia64_vms_init_libfuncs): Likewise.
14432 * config/i386/i386.c (ix86_expand_set_or_movmem): Adjust call to
14433 set_storage_via_libcall and call emit_block_copy_via_libcall.
14434
14435 2016-05-12 Uros Bizjak <ubizjak@gmail.com>
14436
14437 * config/i386/i386.md (*call_got_x32): Change operand 0 to
14438 DImode before it is passed to ix86_output_call_operand.
14439 (*call_value_got_x32): Ditto for operand 1.
14440
14441 2016-05-12 Jiong Wang <jiong.wang@arm.com>
14442
14443 PR rtl-optimization/70904
14444 * lra-constraint.c (process_addr_reg): Relax the restriction on subreg
14445 reload for wide mode.
14446
14447 2016-05-12 Marek Polacek <polacek@redhat.com>
14448
14449 PR c/70756
14450 * langhooks-def.h (lhd_incomplete_type_error): Adjust declaration.
14451 * langhooks.c (lhd_incomplete_type_error): Add location parameter.
14452 * langhooks.h (incomplete_type_error): Likewise.
14453 * tree.c (size_in_bytes_loc): Renamed from size_in_bytes. Add location
14454 parameter, pass it down to incomplete_type_error.
14455 * tree.h (size_in_bytes): New inline overload.
14456 (size_in_bytes_loc): Renamed from size_in_bytes.
14457
14458 2016-05-12 Richard Biener <rguenther@suse.de>
14459
14460 PR tree-optimization/71059
14461 * tree-ssa-pre.c (phi_translate_1): Fully fold translated
14462 nary before looking up or entering the expression into the VN
14463 hashes.
14464 * tree-ssa-sccvn.c (vn_nary_build_or_lookup): Fix comment typo.
14465 Make sure to re-use NARYs without result as inserted by
14466 phi-translation.
14467
14468 2016-05-12 Richard Biener <rguenther@suse.de>
14469
14470 PR tree-optimization/71062
14471 * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
14472 field.
14473 * tree-ssa-structalias.c (set_uids_in_ptset): Set
14474 vars_contains_restrict if the var is a restrict tag.
14475 * tree-ssa-alias.c (ptrs_compare_unequal): If vars_contains_restrict
14476 do not disambiguate pointers against it.
14477 (dump_points_to_solution): Re-structure and adjust for new
14478 vars_contains_restrict flag.
14479 * gimple-pretty-print.c (pp_points_to_solution): Likewise.
14480
14481 2016-05-12 Martin Liska <mliska@suse.cz>
14482
14483 * doc/invoke.texi: Explain connection between
14484 -fsanitize-recover=address and ASAN_OPTIONS="halt_on_error=1".
14485
14486 2016-05-12 Ilya Enkovich <ilya.enkovich@intel.com>
14487
14488 PR tree-optimization/71006
14489 * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
14490 consider COND_EXPR as a mask producer.
14491
14492 2016-05-12 Marek Polacek <polacek@redhat.com>
14493
14494 PR driver/71063
14495 * opts.c (common_handle_option): Detect missing argument for --help^.
14496
14497 2016-05-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14498
14499 PR target/70830
14500 * config/arm/arm.c (arm_output_multireg_pop): Avoid POP instruction
14501 when popping the PC and within an interrupt handler routine.
14502 Add missing tab to output of "ldmfd".
14503 (output_return_instruction): Output LDMFD with SP update rather
14504 than POP when returning from interrupt handler.
14505
14506 2016-05-12 Jakub Jelinek <jakub@redhat.com>
14507
14508 * config/i386/i386.md (isa): Add x64_avx512dq, enable if
14509 TARGET_64BIT && TARGET_AVX512DQ.
14510 * config/i386/sse.md (*vec_extract<mode>): Add avx512bw alternatives.
14511 (*vec_extract<PEXTR_MODE12:mode>_zext): Add avx512bw alternative.
14512 (*vec_extract<ssevecmodelower>_0, *vec_extractv4si_0_zext,
14513 *vec_extractv2di_0_sse): Use v constraint instead of x constraint.
14514 (*vec_extractv4si): Add avx512dq and avx512bw alternatives.
14515 (*vec_extractv4si_zext): Add avx512dq alternative.
14516 (*vec_extractv2di_1): Add x64_avx512dq and avx512bw alternatives,
14517 use v instead of x constraint in other alternatives where possible.
14518
14519 * config/i386/sse.md (sse2_loadld): Use v instead of x
14520 constraint in alternatives 0,1,4.
14521
14522 * config/i386/sse.md (pinsr_evex_isa): New mode attr.
14523 (<sse2p4_1>_pinsr<ssemodesuffix>): Add 2 alternatives with
14524 v constraints instead of x and <pinsr_evex_isa> isa attribute.
14525
14526 PR target/71019
14527 * config/i386/sse.md (<sse2_avx2>_packssdw<mask_name>,
14528 <sse4_1_avx2>_packusdw<mask_name>): Make sure EVEX encoded insn
14529 is not emitted unless TARGET_AVX512BW.
14530 (<sse2_avx2>_packuswb<mask_name>, <sse2_avx2>_packsswb<mask_name>):
14531 Likewise. For TARGET_AVX512BW, use "=v" constraint instead of "=x"
14532 for the result operand.
14533
14534 * config/i386/sse.md (*vec_setv4sf_sse4_1, sse4_1_insertps): Use v
14535 constraint instead of x in avx alternatives. Use maybe_evex instead
14536 of vex prefix.
14537
14538 * config/i386/constraints.md (Yv): New constraint.
14539 * config/i386/i386.h (VALID_AVX512VL_128_REG_MODE): Allow
14540 TFmode and V1TImode in xmm16+ registers for TARGET_AVX512VL.
14541 * config/i386/i386.md (avx512fvecmode): New mode attr.
14542 (*pushtf): Use v constraint instead of x.
14543 (*movtf_internal): Likewise. For TARGET_AVX512VL and
14544 xmm16+ registers, use vmovdqu64 or vmovdqa64 instructions.
14545 (*absneg<mode>2): Use Yv constraint instead of x constraint.
14546 (*absnegtf2_sse): Likewise.
14547 (copysign<mode>3_const, copysign<mode>3_var): Likewise.
14548 * config/i386/sse.md (*andnot<mode>3): Add avx512vl and
14549 avx512f alternatives.
14550 (*andnottf3, *<code><mode>3, *<code>tf3): Likewise.
14551
14552 2016-05-12 Richard Biener <rguenther@suse.de>
14553
14554 PR tree-optimization/71060
14555 * tree-data-ref.c (initialize_data_dependence_relation): Do not
14556 require exact match of DR_BASE_OBJECT but only matching address and
14557 type.
14558
14559 2016-05-12 Richard Biener <rguenther@suse.de>
14560
14561 PR tree-optimization/70986
14562 * cfganal.c: Include cfgloop.h.
14563 (dfs_find_deadend): Prefer to take edges exiting loops.
14564
14565 2016-05-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14566
14567 * gcc.target/powerpc/pr70963.c: Require at least power8 at both
14568 compile and run time.
14569
14570 2016-05-11 Mikhail Maltsev <maltsevm@gmail.com>
14571
14572 PR c/43651
14573 * doc/invoke.texi (Wduplicate-decl-specifier): Document new option.
14574
14575 2016-05-11 Uros Bizjak <ubizjak@gmail.com>
14576
14577 * config/i386/i386.c (legitimize_pic_address): Use
14578 copy_to_suggested_reg instead of gen_movsi.
14579
14580 2016-05-11 Michael Meissner <meissner@linux.vnet.ibm.com>
14581
14582 * config/rs6000/predicates.md (quad_memory_operand): Move most of
14583 the code into quad_address_p and call it to share code with
14584 vsx_quad_dform_memory_operand.
14585 (vsx_quad_dform_memory_operand): New predicate for ISA 3.0 vector
14586 d-form support.
14587 * config/rs6000/rs6000.opt (-mlra): Switch to being an option mask
14588 bit instead of being a separate word. Split -mpower9-dform into
14589 two switches, -mpower9-dform-scalar and -mpower9-dform-vector.
14590 * config/rs6000/rs6000.c (RELOAD_REG_QUAD_OFFSET): New addr_mask
14591 for the register class supporting 128-bit quad word memory offsets.
14592 (mode_supports_vsx_dform_quad): Helper function to return if the
14593 register class uses quad word memory offsets.
14594 (rs6000_debug_addr_mask): Add support for quad word memory offsets.
14595 (rs6000_debug_reg_global): Always print if we are using LRA or not.
14596 (rs6000_setup_reg_addr_masks): If ISA 3.0 vector d-form
14597 instructions are enabled, set up the appropriate addr_masks for
14598 128-bit types.
14599 (rs6000_init_hard_regno_mode_ok): wb constraint is now based on
14600 -mpower9-dform-scalar, instead of -mpower9-dform.
14601 (rs6000_option_override_internal): Split -mpower9-dform into two
14602 switches, -mpower9-dform-scalar and -mpower9-dform-vector. The
14603 -mpower9-dform switch sets or clears both. If we are not using
14604 the LRA register allocator, do not enable -mpower9-dform-vector by
14605 default. If we are using LRA, enable -mpower9-dform-vector and
14606 -mvsx-timode if it is appropriate. Issue a warning if either
14607 -mpower9-dform-vector or -mvsx-timode are explicitly used without
14608 enabling LRA.
14609 (quad_address_offset_p): New helper function to return if the
14610 offset is legal for quad word memory instructions.
14611 (quad_address_p): New function to determin if GPR or vector
14612 register quad word memory addresses are legal.
14613 (mem_operand_gpr): Validate quad word address offsets.
14614 (reg_offset_addressing_ok_p): Add support for ISA 3.0 vector
14615 d-form (register + offset) instructions.
14616 (offsettable_ok_by_alignment): Likewise.
14617 (rs6000_legitimate_offset_address_p): Likewise.
14618 (legitimate_lo_sum_address_p): Likewise.
14619 (rs6000_legitimize_address): Likewise.
14620 (rs6000_legitimize_reload_address): Add more debug statements for
14621 -mdebug=addr.
14622 (rs6000_legitimate_address_p): Add support for ISA 3.0 vector
14623 d-form instructions.
14624 (rs6000_secondary_reload_memory): Add support for ISA 3.0 vector
14625 d-form instructions. Distinguish different cases in debug
14626 output. (rs6000_secondary_reload_inner): Add support for ISA 3.0 vector
14627 d-form instructions.
14628 (rs6000_preferred_reload_class): Likewise.
14629 (rs6000_output_move_128bit): Add support for ISA 3.0 d-form
14630 instructions. If ISA 3.0 is available, generate lxvx/stxvx instead
14631 of the ISA 2.06 indexed memory instructions.
14632 (rs6000_emit_prologue): If we have ISA 3.0 d-form instructions,
14633 use them to save/restore the saved vector registers instead of
14634 using Altivec instructions.
14635 (rs6000_emit_epilogue): Likewise.
14636 (rs6000_lra_p): Use TARGET_LRA instead of the old option word.
14637 (rs6000_opt_masks): Split -mpower9-dform into
14638 -mpower9-dform-scalar and -mpower9-dform-vector.
14639 (rs6000_print_options_internal): Print -mno-<switch> if <switch>
14640 was not selected.
14641 * config/rs6000/vsx.md (p9_vecload_<mode>): Delete hack to emit
14642 ISA 3.0 vector indexed memory instructions, and fold the code into
14643 the normal mov<mode> patterns.
14644 (p9_vecstore_<mode>): Likewise.
14645 (vsx_mov<mode>): Add support for ISA 3.0 vector d-form
14646 instructions.
14647 (vsx_movti_64bit): Likewise.
14648 (vsx_movti_32bit): Likewise.
14649 * config/rs6000/constraints.md (wO constraint): New constraint for
14650 ISA 3.0 vector d-form support.
14651 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Use
14652 -mpower9-dform-scalar instead of -mpower9-dform. Add note not to
14653 include -mpower9-dform-vector until we switch over to LRA.
14654 (POWERPC_MASKS): Add -mlra. Split -mpower9-dform into two.
14655 switches, -mpower9-dform-scalar and -mpower9-dform-vector.
14656 * config/rs6000/rs6000-protos.h (quad_address_p): Add declaration.
14657 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
14658 for -mpower9-dform and -mlra.
14659 * doc/md.texi (wO constraint): Document wO constraint.
14660
14661 2016-05-11 Alexander Monakov <amonakov@ispras.ru>
14662
14663 * genattr.c (main): Change 'rtx' to 'rtx_insn *' in prototypes of
14664 'insn_latency', 'maximal_insn_latency', 'min_insn_conflict_delay'.
14665 * genautomata.c (output_internal_insn_code_evaluation): Simplify.
14666 Move handling of non-insn arguments inline into the sole user:
14667 (output_trans_func): ...here.
14668 (output_min_insn_conflict_delay_func): Change 'rtx' to 'rtx_insn *'
14669 in emitted function prototype.
14670 (output_internal_insn_latency_func): Ditto. Simplify.
14671 (output_internal_maximal_insn_latency_func): Ditto. Delete
14672 always-unused argument.
14673 (output_insn_latency_func): Ditto.
14674 (output_maximal_insn_latency_func): Ditto.
14675
14676 2016-05-11 Richard Biener <rguenther@suse.de>
14677
14678 PR tree-optimization/71055
14679 * tree-ssa-sccvn.c (vn_reference_lookup_3): When native-interpreting
14680 sth with precision not equal to access size verify we don't chop
14681 off bits.
14682
14683 2016-05-11 Richard Biener <rguenther@suse.de>
14684
14685 PR debug/71057
14686 * dwarf2out.c (retry_incomplete_types): Set early_dwarf.
14687 (dwarf2out_finish): Move retry_incomplete_types call ...
14688 (dwarf2out_early_finish): ... here.
14689
14690 2016-05-11 Richard Biener <rguenther@suse.de>
14691
14692 PR middle-end/71002
14693 * alias.c (reference_alias_ptr_type): Preserve alias-set zero
14694 if the langhook insists on it.
14695 * fold-const.c (make_bit_field_ref): Add arg for the original
14696 reference and preserve its alias-set.
14697 (decode_field_reference): Take exp by reference and adjust it
14698 to the original memory reference.
14699 (optimize_bit_field_compare): Adjust callers.
14700 (fold_truth_andor_1): Likewise.
14701 * gimplify.c (gimplify_expr): Adjust in-SSA form test.
14702
14703 2016-05-11 Ilya Enkovich <ilya.enkovich@intel.com>
14704
14705 PR middle-end/70807
14706 * cfgrtl.h (delete_insn_and_edges): Now return bool.
14707 * cfgrtl.c (delete_insn_and_edges): Likewise.
14708 * config/i386/i386.c (convert_scalars_to_vector): Remove
14709 redundant code.
14710 * cse.c (cse_insn): Compute cse_cfg_altered.
14711 (delete_trivially_dead_insns): Likewise.
14712 (cse_cc_succs): Likewise.
14713 (rest_of_handle_cse): Free dominance info if required.
14714 (rest_of_handle_cse2): Likewise.
14715 (rest_of_handle_cse_after_global_opts): Likewise.
14716
14717 2016-05-11 Alan Modra <amodra@gmail.com>
14718
14719 * config/rs6000/rs6000.c (is_complex_IBM_long_double,
14720 abi_v4_pass_in_fpr): New functions.
14721 (rs6000_function_arg_boundary): Exclude complex IBM long double
14722 from 64-bit alignment when ABI_V4.
14723 (rs6000_function_arg, rs6000_function_arg_advance_1,
14724 rs6000_gimplify_va_arg): Use abi_v4_pass_in_fpr.
14725
14726 2016-05-10 Segher Boessenkool <segher@kernel.crashing.org>
14727
14728 PR rtl-optimization/71028
14729 * cfgcleanup.c (try_optimize_cfg): Do not flip a conditional
14730 jump with just a return in the fallthrough block if the branch
14731 block contains just a return as well.
14732
14733 2016-05-10 Marc Glisse <marc.glisse@inria.fr>
14734
14735 * fold-const.c (fold_binary_loc) [(X ^ Y) & Y]: Remove and merge with...
14736 * match.pd ((X & Y) ^ Y): ... this.
14737 ((X & Y) & Y, (X | Y) | Y, (X ^ Y) ^ Y, (X & Y) & (X & Z), (X | Y)
14738 | (X | Z), (X ^ Y) ^ (X ^ Z)): New transformations.
14739
14740 2016-05-10 David Malcolm <dmalcolm@redhat.com>
14741
14742 * read-md.c (require_char_ws): New function.
14743 (read_string): Simplify using require_char_ws.
14744 (handle_constants): Likewise.
14745 (handle_enum): Likewise.
14746 (handle_file): Likewise.
14747 * read-md.h (require_char_ws): New declaration.
14748 * read-rtl.c (read_conditions): Simplify using require_char_ws.
14749 (read_mapping): Likewise.
14750 (read_rtx_code): Likewise.
14751 (read_nested_rtx): Likewise.
14752
14753 2016-05-10 James Norris <jnorris@codesourcery.com>
14754
14755 * config/rs6000/sysv4.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o
14756 if offloading is enabled and -fopenacc or -fopenmp is specified.
14757 (CRTOFFLOADEND): Likewise.
14758 (STARTFILE_LINUX_SPEC): Add CRTOFFLOADBEGIN.
14759 (ENDFILE_LINUX_SPEC): Add CRTOFFLOADEND.
14760
14761 2016-05-10 Uros Bizjak <ubizjak@gmail.com>
14762
14763 * config/i386/i386.c (legitimize_pic_address): Merge 64-bit and 32-bit
14764 gotoff_operand code paths. Use copy_to_suggested_regs and
14765 expand_simple_binop where appropriate. Cleanup.
14766
14767 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
14768
14769 PR target/70799
14770 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Allow
14771 integer constants.
14772 (dimode_scalar_chain::vector_const_cost): New.
14773 (dimode_scalar_chain::compute_convert_gain): Handle constants.
14774 (dimode_scalar_chain::convert_op): Likewise.
14775 (dimode_scalar_chain::convert_insn): Likewise.
14776
14777 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com>
14778
14779 * dwarf2out.c (resolve_args_picking_1): Consider DW_OP_neg as an
14780 unary operation, not a binary one.
14781
14782 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
14783
14784 PR middle-end/70877
14785 * tree-chkp.c (chkp_add_bounds_to_call_stmt): Handle
14786 calls with type casted fndecl.
14787
14788 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
14789
14790 PR tree-optimization/70786
14791 * tree-chkp.c (chkp_find_bounds_1): Support WITH_SIZE_EXPR.
14792 * calls.c (initialize_argument_information): Bind bounds
14793 with corresponding args passed by reference.
14794
14795 2016-05-10 Jakub Jelinek <jakub@redhat.com>
14796
14797 PR target/70927
14798 * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>),
14799 *<code><mode>3<mask_name>): For !TARGET_AVX512DQ and EVEX encoding,
14800 use vp*[dq] instead of v*p[sd] instructions and adjust mode attribute
14801 accordingly.
14802
14803 2016-05-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14804
14805 PR target/70963
14806 * config/rs6000/vsx.md (vsx_xvcvdpsxds_scale): Generate correct
14807 code for a zero scale factor.
14808 (vsx_xvcvdpuxds_scale): Likewise.
14809
14810 2016-05-10 David Malcolm <dmalcolm@redhat.com>
14811
14812 * diagnostic-show-locus.c (layout::layout): Call show_ruler
14813 if show_ruler_p was set on the context.
14814 (layout::show_ruler): New method.
14815 * diagnostic.h (struct diagnostic_context): Add field
14816 "show_ruler_p".
14817
14818 2016-05-10 Richard Biener <rguenther@suse.de>
14819
14820 PR tree-optimization/71039
14821 * tree-ssa-phiprop.c: Include tree-ssa-loop.h.
14822 (chk_uses): New function.
14823 (propagate_with_phi): Verify we can safely replicate the lhs of an
14824 aggregate assignment on all incoming edges.
14825
14826 2016-05-10 Oleg Endo <olegendo@gcc.gnu.org>
14827
14828 * config/rx/rx-protos.h (is_interrupt_func, is_fast_interrupt_func):
14829 Forward declare.
14830 (rx_atomic_sequence): New class.
14831 * config/rx/rx.c (rx_print_operand): Use symbolic names for PSW bits.
14832 (is_interrupt_func, is_fast_interrupt_func): Make non-static and
14833 non-inline.
14834 (rx_atomic_sequence::rx_atomic_sequence,
14835 rx_atomic_sequence::~rx_atomic_sequence): New functions.
14836 * config/rx/rx.md (CTRLREG_PSW, CTRLREG_USP, CTRLREG_FPSW, CTRLREG_CPEN,
14837 CTRLREG_BPSW, CTRLREG_BPC, CTRLREG_ISP, CTRLREG_FINTV,
14838 CTRLREG_INTB): New constants.
14839 (FETCHOP): New code iterator.
14840 (fethcop_name, fetchop_name2): New iterator code attributes.
14841 (QIHI): New mode iterator.
14842 (atomic_exchange<mode>, atomic_exchangesi, xchg_mem<mode>,
14843 atomic_fetch_<fetchop_name>si, atomic_fetch_nandsi,
14844 atomic_<fetchop_name>_fetchsi, atomic_nand_fetchsi): New patterns.
14845
14846 2016-05-10 Martin Liska <mliska@suse.cz>
14847
14848 * tree-inline.c (remap_dependence_clique): Do not remap
14849 debugging statements.
14850
14851 2016-05-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
14852
14853 * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly")
14854 ("*fixuns_truncdfdi2_z13")
14855 ("*fixuns_trunc<FP:mode><GPR:mode>2_z196")
14856 ("*fix_truncdfdi2_bfp_z13", "*floatunsdidf2_z13")
14857 ("*extendsfdf2_z13"): Replace TARGET_Z13 with TARGET_VX.
14858
14859 2016-05-10 Richard Biener <rguenther@suse.de>
14860
14861 PR tree-optimization/70497
14862 PR tree-optimization/28367
14863 * tree-ssa-sccvn.c (vn_nary_build_or_lookup): New function
14864 split out from ...
14865 (visit_reference_op_load): ... here.
14866 (vn_reference_lookup_3): Use it to handle subreg-like accesses
14867 with simplified BIT_FIELD_REFs.
14868 * tree-ssa-pre.c (eliminate_insert): Handle inserting BIT_FIELD_REFs.
14869 * tree-complex.c (extract_component): Handle BIT_FIELD_REFs
14870 correctly.
14871
14872 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com>
14873
14874 * dwarf2out.c (add_abstract_origin_attribute): Adjust
14875 documentation comment. For BLOCK nodes, add a
14876 DW_AT_abstract_origin attribute that points to the DIE generated
14877 for the origin BLOCK.
14878 (gen_lexical_block_die): Call add_abstract_origin_attribute for
14879 blocks from inlined functions.
14880
14881 2016-05-10 Alan Modra <amodra@gmail.com>
14882
14883 PR target/70947
14884 * config/rs6000/rs6000.c (rs6000_expand_split_stack_prologue): Stop
14885 regrename modifying insns saving lr before __morestack call.
14886 * config/rs6000/rs6000.md (split_stack_return): Similarly for
14887 insns restoring lr after __morestack call.
14888
14889 2016-05-09 Jakub Jelinek <jakub@redhat.com>
14890
14891 * config/i386/i386.md (set_got, set_got_labelled, lwp_llwpcb,
14892 lwp_lwpval<mode>3, lwp_lwpins<mode>3): Remove constraints from
14893 expanders.
14894 * config/i386/sse.md (vec_interleave_high<mode>,
14895 vec_interleave_low<mode>, <avx512>_vpermi2var<mode>3_maskz,
14896 <avx512>_vpermt2var<mode>3_maskz): Likewise.
14897
14898 2016-05-04 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
14899
14900 * config/rs6000/rs6000.c (rs6000_reassociation_width): Add
14901 function for TARGET_SCHED_REASSOCIATION_WIDTH to enable
14902 parallel reassociation for power8 and forward.
14903
14904 2016-05-09 Uros Bizjak <ubizjak@gmail.com>
14905
14906 * config/i386/i386.md (absneg splitters with general regs): Use
14907 general_reg_operand predicate.
14908 (btsq peephole2): Use x86_64_immediate_operand to check if new
14909 value is suitable for immediate operand. Generate emitted insn
14910 using RTL expressions.
14911 (btcq peephole2): Ditto.
14912 (btrq peephole2): Ditto. Generate correct immediate operand
14913 for AND masking.
14914
14915 2016-05-09 Richard Sandiford <richard.sandiford@arm.com>
14916
14917 * cfgexpand.c (expand_debug_expr): Fix address offset for negative
14918 bitpos.
14919
14920 2016-05-09 Richard Sandiford <richard.sandiford@arm.com>
14921
14922 * tree-affine.c (wide_int_constant_multiple_p): Add missing
14923 pointer dereference.
14924
14925 2016-05-09 Richard Biener <rguenther@suse.de>
14926
14927 PR tree-optimization/70985
14928 * match.pd (BIT_FIELD_REF -> (type)): Disable on GIMPLE when
14929 op0 isn't a gimple register.
14930
14931 2016-05-09 Prachi Godbole <prachi.godbole@imgtec.com>
14932
14933 * config/mips/i6400.md (i6400_fpu_intadd, i6400_fpu_logic)
14934 (i6400_fpu_div, i6400_fpu_cmp, i6400_fpu_float, i6400_fpu_store)
14935 (i6400_fpu_long_pipe, i6400_fpu_logic_l, i6400_fpu_float_l)
14936 (i6400_fpu_mult): New cpu units.
14937 (i6400_msa_add_d, i6400_msa_int_add, i6400_msa_short_logic3)
14938 (i6400_msa_short_logic2, i6400_msa_short_logic, i6400_msa_move)
14939 (i6400_msa_cmp, i6400_msa_short_float2, i6400_msa_div_d)
14940 (i6400_msa_div_w, i6400_msa_div_h, i6400_msa_div_b)
14941 (i6400_msa_copy, i6400_msa_branch, i6400_fpu_msa_store)
14942 (i6400_fpu_msa_load, i6400_fpu_msa_move, i6400_msa_long_logic1)
14943 (i6400_msa_long_logic2, i6400_msa_mult, i6400_msa_long_float2)
14944 (i6400_msa_long_float4, i6400_msa_long_float5)
14945 (i6400_msa_long_float8, i6400_msa_fdiv_df)
14946 (i6400_msa_fdiv_sf): New reservations.
14947 * config/mips/p5600.md (p5600_fpu_intadd, p5600_fpu_cmp)
14948 (p5600_fpu_float, p5600_fpu_logic_a, p5600_fpu_logic_b)
14949 (p5600_fpu_div, p5600_fpu_logic, p5600_fpu_float_a)
14950 (p5600_fpu_float_b, p5600_fpu_float_c, p5600_fpu_float_d)
14951 (p5600_fpu_mult, p5600_fpu_fdiv, p5600_fpu_load): New cpu units.
14952 (msa_short_int_add, msa_short_logic, msa_short_logic_move_v)
14953 (msa_short_cmp, msa_short_float2, msa_short_logic3)
14954 (msa_short_store4, msa_long_load, msa_short_store)
14955 (msa_long_logic, msa_long_float2, msa_long_float4)
14956 (msa_long_float5, msa_long_float8, msa_long_mult)
14957 (msa_long_fdiv, msa_long_div): New reservations.
14958
14959 2016-05-09 Robert Suchanek <robert.suchanek@imgtec.com>
14960 Sameera Deshpande <sameera.deshpande@imgtec.com>
14961 Matthew Fortune <matthew.fortune@imgtec.com>
14962 Graham Stott <graham.stott@imgtec.com>
14963 Chao-ying Fu <chao-ying.fu@imgtec.com>
14964
14965 * config.gcc: Add MSA header file for mips*-*-* target.
14966 * config/mips/constraints.md (YI, YC, YZ, Unv5, Uuv5, Usv5, Uuv6)
14967 (Ubv8i, Urv8): New constraints.
14968 * config/mips/mips-ftypes.def: Add function types for MSA
14969 builtins.
14970 * config/mips/mips-modes.def (V16QI, V8HI, V4SI, V2DI, V4SF)
14971 (V2DF, V32QI, V16HI, V8SI, V4DI, V8SF, V4DF): New modes.
14972 * config/mips/mips-msa.md: New file.
14973 * config/mips/mips-protos.h
14974 (mips_split_128bit_const_insns): New prototype.
14975 (mips_msa_idiv_insns): Likewise.
14976 (mips_split_128bit_move): Likewise.
14977 (mips_split_128bit_move_p): Likewise.
14978 (mips_split_msa_copy_d): Likewise.
14979 (mips_split_msa_insert_d): Likewise.
14980 (mips_split_msa_fill_d): Likewise.
14981 (mips_expand_msa_branch): Likewise.
14982 (mips_const_vector_same_val_p): Likewise.
14983 (mips_const_vector_same_bytes_p): Likewise.
14984 (mips_const_vector_same_int_p): Likewise.
14985 (mips_const_vector_shuffle_set_p): Likewise.
14986 (mips_const_vector_bitimm_set_p): Likewise.
14987 (mips_const_vector_bitimm_clr_p): Likewise.
14988 (mips_msa_vec_parallel_const_half): Likewise.
14989 (mips_msa_output_division): Likewise.
14990 (mips_ldst_scaled_shift): Likewise.
14991 (mips_expand_vec_cond_expr): Likewise.
14992 * config/mips/mips.c (enum mips_builtin_type): Add
14993 MIPS_BUILTIN_MSA_TEST_BRANCH.
14994 (mips_gen_const_int_vector_shuffle): New prototype.
14995 (mips_const_vector_bitimm_set_p): New function.
14996 (mips_const_vector_bitimm_clr_p): Likewise.
14997 (mips_const_vector_same_val_p): Likewise.
14998 (mips_const_vector_same_bytes_p): Likewise.
14999 (mips_const_vector_same_int_p): Likewise.
15000 (mips_const_vector_shuffle_set_p): Likewise.
15001 (mips_symbol_insns): Forbid loading symbols via immediate for
15002 MSA.
15003 (mips_valid_offset_p): Limit offset to 10-bit for MSA loads and
15004 stores.
15005 (mips_valid_lo_sum_p): Forbid loadings symbols via %lo(base) for
15006 MSA.
15007 (mips_lx_address_p): Add support load indexed address for MSA.
15008 (mips_address_insns): Add calculation of instructions needed for
15009 stores and loads for MSA.
15010 (mips_const_insns): Move CONST_DOUBLE below CONST_VECTOR. Handle
15011 CONST_VECTOR for MSA and let it fall through.
15012 (mips_ldst_scaled_shift): New function.
15013 (mips_subword_at_byte): Likewise.
15014 (mips_msa_idiv_insns): Likewise.
15015 (mips_legitimize_move): Validate MSA moves.
15016 (mips_rtx_costs): Add UNGE, UNGT, UNLE, UNLT cases. Add
15017 calculation of costs for MSA division.
15018 (mips_split_move_p): Check if MSA moves need splitting.
15019 (mips_split_move): Split MSA moves if necessary.
15020 (mips_split_128bit_move_p): New function.
15021 (mips_split_128bit_move): Likewise.
15022 (mips_split_msa_copy_d): Likewise.
15023 (mips_split_msa_insert_d): Likewise.
15024 (mips_split_msa_fill_d): Likewise.
15025 (mips_output_move): Handle MSA moves.
15026 (mips_expand_msa_branch): New function.
15027 (mips_print_operand): Add 'E', 'B', 'w', 'v' and 'V' modifiers.
15028 Reinstate 'y' modifier.
15029 (mips_file_start): Add MSA .gnu_attribute.
15030 (mips_hard_regno_mode_ok_p): Allow TImode and 128-bit vectors in
15031 FPRs.
15032 (mips_hard_regno_nregs): Always return 1 for MSA supported mode.
15033 (mips_class_max_nregs): Add register size for MSA supported mode.
15034 (mips_cannot_change_mode_class): Allow conversion between MSA
15035 vector modes and TImode.
15036 (mips_mode_ok_for_mov_fmt_p): Allow MSA to use move.v
15037 instruction.
15038 (mips_secondary_reload_class): Force MSA loads/stores via memory.
15039 (mips_preferred_simd_mode): Add preffered modes for MSA.
15040 (mips_vector_mode_supported_p): Add MSA supported modes.
15041 (mips_autovectorize_vector_sizes): New function.
15042 (mips_msa_output_division): Likewise.
15043 (MSA_BUILTIN, MIPS_BUILTIN_DIRECT_NO_TARGET)
15044 (MSA_NO_TARGET_BUILTIN, MSA_BUILTIN_TEST_BRANCH): New macros.
15045 (CODE_FOR_msa_adds_s_b, CODE_FOR_msa_adds_s_h)
15046 (CODE_FOR_msa_adds_s_w, CODE_FOR_msa_adds_s_d)
15047 (CODE_FOR_msa_adds_u_b, CODE_FOR_msa_adds_u_h)
15048 (CODE_FOR_msa_adds_u_w, CODE_FOR_msa_adds_u_du
15049 (CODE_FOR_msa_addv_b, CODE_FOR_msa_addv_h, CODE_FOR_msa_addv_w)
15050 (CODE_FOR_msa_addv_d, CODE_FOR_msa_and_v, CODE_FOR_msa_bmnz_v)
15051 (CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bmz_v, CODE_FOR_msa_bmzi_b)
15052 (CODE_FOR_msa_bnz_v, CODE_FOR_msa_bz_v, CODE_FOR_msa_bsel_v)
15053 (CODE_FOR_msa_bseli_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w)
15054 (CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b)
15055 (CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w)
15056 (CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clti_u_b)
15057 (CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w)
15058 (CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_s_b)
15059 (CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w)
15060 (CODE_FOR_msa_clei_s_d, CODE_FOR_msa_clei_u_b)
15061 (CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w)
15062 (CODE_FOR_msa_clei_u_d, CODE_FOR_msa_div_s_b)
15063 (CODE_FOR_msa_div_s_h, CODE_FOR_msa_div_s_w)
15064 (CODE_FOR_msa_div_s_d, CODE_FOR_msa_div_u_b)
15065 (CODE_FOR_msa_div_u_h, CODE_FOR_msa_div_u_w)
15066 (CODE_FOR_msa_div_u_d, CODE_FOR_msa_fadd_w, CODE_FOR_msa_fadd_d)
15067 (CODE_FOR_msa_fexdo_w, CODE_FOR_msa_ftrunc_s_w)
15068 (CODE_FOR_msa_ftrunc_s_d, CODE_FOR_msa_ftrunc_u_w)
15069 (CODE_FOR_msa_ftrunc_u_d, CODE_FOR_msa_ffint_s_w)
15070 (CODE_FOR_msa_ffint_s_d, CODE_FOR_msa_ffint_u_w)
15071 (CODE_FOR_msa_ffint_u_d, CODE_FOR_msa_fsub_w)
15072 (CODE_FOR_msa_fsub_d, CODE_FOR_msa_fmsub_d, CODE_FOR_msa_fmadd_w)
15073 (CODE_FOR_msa_fmadd_d, CODE_FOR_msa_fmsub_w, CODE_FOR_msa_fmul_w)
15074 (CODE_FOR_msa_fmul_d, CODE_FOR_msa_fdiv_w, CODE_FOR_msa_fdiv_d)
15075 (CODE_FOR_msa_fmax_w, CODE_FOR_msa_fmax_d, CODE_FOR_msa_fmax_a_w)
15076 (CODE_FOR_msa_fmax_a_d, CODE_FOR_msa_fmin_w, CODE_FOR_msa_fmin_d)
15077 (CODE_FOR_msa_fmin_a_w, CODE_FOR_msa_fmin_a_d)
15078 (CODE_FOR_msa_fsqrt_w, CODE_FOR_msa_fsqrt_d)
15079 (CODE_FOR_msa_max_s_b, CODE_FOR_msa_max_s_h)
15080 (CODE_FOR_msa_max_s_w, CODE_FOR_msa_max_s_d)
15081 (CODE_FOR_msa_max_u_b, CODE_FOR_msa_max_u_h)
15082 (CODE_FOR_msa_max_u_w, CODE_FOR_msa_max_u_d)
15083 (CODE_FOR_msa_min_s_b, CODE_FOR_msa_min_s_h)
15084 (CODE_FOR_msa_min_s_w, CODE_FOR_msa_min_s_d)
15085 (CODE_FOR_msa_min_u_b, CODE_FOR_msa_min_u_h)
15086 (CODE_FOR_msa_min_u_w, CODE_FOR_msa_min_u_d)
15087 (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
15088 (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
15089 (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
15090 (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
15091 (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
15092 (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
15093 (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
15094 (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
15095 (CODE_FOR_msa_mulv_b, CODE_FOR_msa_mulv_h, CODE_FOR_msa_mulv_w)
15096 (CODE_FOR_msa_mulv_d, CODE_FOR_msa_nlzc_b, CODE_FOR_msa_nlzc_h)
15097 (CODE_FOR_msa_nlzc_w, CODE_FOR_msa_nlzc_d, CODE_FOR_msa_nor_v)
15098 (CODE_FOR_msa_or_v, CODE_FOR_msa_ori_b, CODE_FOR_msa_nori_b)
15099 (CODE_FOR_msa_pcnt_b, CODE_FOR_msa_pcnt_h, CODE_FOR_msa_pcnt_w)
15100 (CODE_FOR_msa_pcnt_d, CODE_FOR_msa_xor_v, CODE_FOR_msa_xori_b)
15101 (CODE_FOR_msa_sll_b, CODE_FOR_msa_sll_h, CODE_FOR_msa_sll_w)
15102 (CODE_FOR_msa_sll_d, CODE_FOR_msa_slli_b, CODE_FOR_msa_slli_h)
15103 (CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d, CODE_FOR_msa_sra_b)
15104 (CODE_FOR_msa_sra_h, CODE_FOR_msa_sra_w, CODE_FOR_msa_sra_d)
15105 (CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w)
15106 (CODE_FOR_msa_srai_d, CODE_FOR_msa_srl_b, CODE_FOR_msa_srl_h)
15107 (CODE_FOR_msa_srl_w, CODE_FOR_msa_srl_d, CODE_FOR_msa_srli_b)
15108 (CODE_FOR_msa_srli_h, CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d)
15109 (CODE_FOR_msa_subv_b, CODE_FOR_msa_subv_h, CODE_FOR_msa_subv_w)
15110 (CODE_FOR_msa_subv_d, CODE_FOR_msa_subvi_b, CODE_FOR_msa_subvi_h)
15111 (CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d, CODE_FOR_msa_move_v)
15112 (CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h, CODE_FOR_msa_vshf_w)
15113 (CODE_FOR_msa_vshf_d, CODE_FOR_msa_ilvod_d, CODE_FOR_msa_ilvev_d)
15114 (CODE_FOR_msa_pckod_d, CODE_FOR_msa_pckdev_d, CODE_FOR_msa_ldi_b)
15115 (CODE_FOR_msa_ldi_hi, CODE_FOR_msa_ldi_w)
15116 (CODE_FOR_msa_ldi_d): New code_aliasing macros.
15117 (mips_builtins): Add MSA sll_b, sll_h, sll_w, sll_d, slli_b,
15118 slli_h, slli_w, slli_d, sra_b, sra_h, sra_w, sra_d, srai_b,
15119 srai_h, srai_w, srai_d, srar_b, srar_h, srar_w, srar_d, srari_b,
15120 srari_h, srari_w, srari_d, srl_b, srl_h, srl_w, srl_d, srli_b,
15121 srli_h, srli_w, srli_d, srlr_b, srlr_h, srlr_w, srlr_d, srlri_b,
15122 srlri_h, srlri_w, srlri_d, bclr_b, bclr_h, bclr_w, bclr_d,
15123 bclri_b, bclri_h, bclri_w, bclri_d, bset_b, bset_h, bset_w,
15124 bset_d, bseti_b, bseti_h, bseti_w, bseti_d, bneg_b, bneg_h,
15125 bneg_w, bneg_d, bnegi_b, bnegi_h, bnegi_w, bnegi_d, binsl_b,
15126 binsl_h, binsl_w, binsl_d, binsli_b, binsli_h, binsli_w,
15127 binsli_d, binsr_b, binsr_h, binsr_w, binsr_d, binsri_b, binsri_h,
15128 binsri_w, binsri_d, addv_b, addv_h, addv_w, addv_d, addvi_b,
15129 addvi_h, addvi_w, addvi_d, subv_b, subv_h, subv_w, subv_d,
15130 subvi_b, subvi_h, subvi_w, subvi_d, max_s_b, max_s_h, max_s_w,
15131 max_s_d, maxi_s_b, maxi_s_h, maxi_s_w, maxi_s_d, max_u_b,
15132 max_u_h, max_u_w, max_u_d, maxi_u_b, maxi_u_h, maxi_u_w,
15133 maxi_u_d, min_s_b, min_s_h, min_s_w, min_s_d, mini_s_b, mini_s_h,
15134 mini_s_w, mini_s_d, min_u_b, min_u_h, min_u_w, min_u_d, mini_u_b,
15135 mini_u_h, mini_u_w, mini_u_d, max_a_b, max_a_h, max_a_w, max_a_d,
15136 min_a_b, min_a_h, min_a_w, min_a_d, ceq_b, ceq_h, ceq_w, ceq_d,
15137 ceqi_b, ceqi_h, ceqi_w, ceqi_d, clt_s_b, clt_s_h, clt_s_w,
15138 clt_s_d, clti_s_b, clti_s_h, clti_s_w, clti_s_d, clt_u_b,
15139 clt_u_h, clt_u_w, clt_u_d, clti_u_b, clti_u_h, clti_u_w,
15140 clti_u_d, cle_s_b, cle_s_h, cle_s_w, cle_s_d, clei_s_b, clei_s_h,
15141 clei_s_w, clei_s_d, cle_u_b, cle_u_h, cle_u_w, cle_u_d, clei_u_b,
15142 clei_u_h, clei_u_w, clei_u_d, ld_b, ld_h, ld_w, ld_d, st_b, st_h,
15143 st_w, st_d, sat_s_b, sat_s_h, sat_s_w, sat_s_d, sat_u_b, sat_u_h,
15144 sat_u_w, sat_u_d, add_a_b, add_a_h, add_a_w, add_a_d, adds_a_b,
15145 adds_a_h, adds_a_w, adds_a_d, adds_s_b, adds_s_h, adds_s_w,
15146 adds_s_d, adds_u_b, adds_u_h, adds_u_w, adds_u_d, ave_s_b,
15147 ave_s_h, ave_s_w, ave_s_d, ave_u_b, ave_u_h, ave_u_w, ave_u_d,
15148 aver_s_b, aver_s_h, aver_s_w, aver_s_d, aver_u_b, aver_u_h,
15149 aver_u_w, aver_u_d, subs_s_b, subs_s_h, subs_s_w, subs_s_d,
15150 subs_u_b, subs_u_h, subs_u_w, subs_u_d, subsuu_s_b, subsuu_s_h,
15151 subsuu_s_w, subsuu_s_d, subsus_u_b, subsus_u_h, subsus_u_w,
15152 subsus_u_d, asub_s_b, asub_s_h, asub_s_w, asub_s_d, asub_u_b,
15153 asub_u_h, asub_u_w, asub_u_d, mulv_b, mulv_h, mulv_w, mulv_d,
15154 maddv_b, maddv_h, maddv_w, maddv_d, msubv_b, msubv_h, msubv_w,
15155 msubv_d, div_s_b, div_s_h, div_s_w, div_s_d, div_u_b, div_u_h,
15156 div_u_w, div_u_d, hadd_s_h, hadd_s_w, hadd_s_d, hadd_u_h,
15157 hadd_u_w, hadd_u_d, hsub_s_h, hsub_s_w, hsub_s_d, hsub_u_h,
15158 hsub_u_w, hsub_u_d, mod_s_b, mod_s_h, mod_s_w, mod_s_d, mod_u_b,
15159 mod_u_h, mod_u_w, mod_u_d, dotp_s_h, dotp_s_w, dotp_s_d,
15160 dotp_u_h, dotp_u_w, dotp_u_d, dpadd_s_h, dpadd_s_w, dpadd_s_d,
15161 dpadd_u_h, dpadd_u_w, dpadd_u_d, dpsub_s_h, dpsub_s_w, dpsub_s_d,
15162 dpsub_u_h, dpsub_u_w, dpsub_u_d, sld_b, sld_h, sld_w, sld_d,
15163 sldi_b, sldi_h, sldi_w, sldi_d, splat_b, splat_h, splat_w,
15164 splat_d, splati_b, splati_h, splati_w, splati_d, pckev_b,
15165 pckev_h, pckev_w, pckev_d, pckod_b, pckod_h, pckod_w, pckod_d,
15166 ilvl_b, ilvl_h, ilvl_w, ilvl_d, ilvr_b, ilvr_h, ilvr_w, ilvr_d,
15167 ilvev_b, ilvev_h, ilvev_w, ilvev_d, ilvod_b, ilvod_h, ilvod_w,
15168 ilvod_d, vshf_b, vshf_h, vshf_w, vshf_d, and_v, andi_b, or_v,
15169 ori_b, nor_v, nori_b, xor_v, xori_b, bmnz_v, bmnzi_b, bmz_v,
15170 bmzi_b, bsel_v, bseli_b, shf_b, shf_h, shf_w, bnz_v, bz_v,
15171 fill_b, fill_h, fill_w, fill_d, pcnt_b, pcnt_h, pcnt_w,
15172 pcnt_d, nloc_b, nloc_h, nloc_w, nloc_d, nlzc_b, nlzc_h, nlzc_w,
15173 nlzc_d, copy_s_b, copy_s_h, copy_s_w, copy_s_d, copy_u_b,
15174 copy_u_h, copy_u_w, copy_u_d, insert_b, insert_h, insert_w,
15175 insert_d, insve_b, insve_h, insve_w, insve_d, bnz_b, bnz_h,
15176 bnz_w, bnz_d, bz_b, bz_h, bz_w, bz_d, ldi_b, ldi_h, ldi_w, ldi_d,
15177 fcaf_w, fcaf_d, fcor_w, fcor_d, fcun_w, fcun_d, fcune_w, fcune_d,
15178 fcueq_w, fcueq_d, fceq_w, fceq_d, fcne_w, fcne_d, fclt_w, fclt_d,
15179 fcult_w, fcult_d, fcle_w, fcle_d, fcule_w, fcule_d, fsaf_w,
15180 fsaf_d, fsor_w, fsor_d, fsun_w, fsun_d, fsune_w, fsune_d,
15181 fsueq_w, fsueq_d, fseq_w, fseq_d, fsne_w, fsne_d, fslt_w,
15182 fslt_d, fsult_w, fsult_d, fsle_w, fsle_d, fsule_w, fsule_d,
15183 fadd_w, fadd_d, fsub_w, fsub_d, fmul_w, fmul_d, fdiv_w, fdiv_d,
15184 fmadd_w, fmadd_d, fmsub_w, fmsub_d, fexp2_w, fexp2_d, fexdo_h,
15185 fexdo_w, ftq_h, ftq_w, fmin_w, fmin_d, fmin_a_w, fmin_a_d,
15186 fmax_w, fmax_d, fmax_a_w, fmax_a_d, mul_q_h, mul_q_w, mulr_q_h,
15187 mulr_q_w, madd_q_h, madd_q_w, maddr_q_h, maddr_q_w, msub_q_h,
15188 msub_q_w, msubr_q_h, msubr_q_w, fclass_w, fclass_d, fsqrt_w,
15189 fsqrt_d, frcp_w, frcp_d, frint_w, frint_d, frsqrt_w, frsqrt_d,
15190 flog2_w, flog2_d, fexupl_w, fexupl_d, fexupr_w, fexupr_d, ffql_w,
15191 ffql_d, ffqr_w, ffqr_d, ftint_s_w, ftint_s_d, ftint_u_w,
15192 ftint_u_d, ftrunc_s_w, ftrunc_s_d, ftrunc_u_w, ftrunc_u_d,
15193 ffint_s_w, ffint_s_d, ffint_u_w, ffint_u_d, ctcmsa, cfcmsa,
15194 move_v builtins.
15195 (mips_get_builtin_decl_index): New array.
15196 (MIPS_ATYPE_QI, MIPS_ATYPE_HI, MIPS_ATYPE_V2DI, MIPS_ATYPE_V4SI)
15197 (MIPS_ATYPE_V8HI, MIPS_ATYPE_V16QI, MIPS_ATYPE_V2DF)
15198 (MIPS_ATYPE_V4SF, MIPS_ATYPE_UV2DI, MIPS_ATYPE_UV4SI)
15199 (MIPS_ATYPE_UV8HI, MIPS_ATYPE_UV16QI): New.
15200 (mips_init_builtins): Initialize mips_get_builtin_decl_index
15201 array.
15202 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
15203 hook.
15204 (mips_expand_builtin_insn): Prepare operands for
15205 CODE_FOR_msa_addvi_b, CODE_FOR_msa_addvi_h, CODE_FOR_msa_addvi_w,
15206 CODE_FOR_msa_addvi_d, CODE_FOR_msa_clti_u_b,
15207 CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w,
15208 CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_u_b,
15209 CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w,
15210 CODE_FOR_msa_clei_u_d, CODE_FOR_msa_maxi_u_b,
15211 CODE_FOR_msa_maxi_u_h, CODE_FOR_msa_maxi_u_w,
15212 CODE_FOR_msa_maxi_u_d, CODE_FOR_msa_mini_u_b,
15213 CODE_FOR_msa_mini_u_h, CODE_FOR_msa_mini_u_w,
15214 CODE_FOR_msa_mini_u_d, CODE_FOR_msa_subvi_b,
15215 CODE_FOR_msa_subvi_h, CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d,
15216 CODE_FOR_msa_ceqi_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w,
15217 CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b,
15218 CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w,
15219 CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clei_s_b,
15220 CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w,
15221 CODE_FOR_msa_clei_s_d, CODE_FOR_msa_maxi_s_b,
15222 CODE_FOR_msa_maxi_s_h, CODE_FOR_msa_maxi_s_w,
15223 CODE_FOR_msa_maxi_s_d, CODE_FOR_msa_mini_s_b,
15224 CODE_FOR_msa_mini_s_h, CODE_FOR_msa_mini_s_w,
15225 CODE_FOR_msa_mini_s_d, CODE_FOR_msa_andi_b, CODE_FOR_msa_ori_b,
15226 CODE_FOR_msa_nori_b, CODE_FOR_msa_xori_b, CODE_FOR_msa_bmzi_b,
15227 CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bseli_b, CODE_FOR_msa_fill_b,
15228 CODE_FOR_msa_fill_h, CODE_FOR_msa_fill_w, CODE_FOR_msa_fill_d,
15229 CODE_FOR_msa_ilvl_b, CODE_FOR_msa_ilvl_h, CODE_FOR_msa_ilvl_w,
15230 CODE_FOR_msa_ilvl_d, CODE_FOR_msa_ilvr_b, CODE_FOR_msa_ilvr_h,
15231 CODE_FOR_msa_ilvr_w, CODE_FOR_msa_ilvr_d, CODE_FOR_msa_ilvev_b,
15232 CODE_FOR_msa_ilvev_h, CODE_FOR_msa_ilvev_w, CODE_FOR_msa_ilvod_b,
15233 CODE_FOR_msa_ilvod_h, CODE_FOR_msa_ilvod_w, CODE_FOR_msa_pckev_b,
15234 CODE_FOR_msa_pckev_h, CODE_FOR_msa_pckev_w, CODE_FOR_msa_pckod_b,
15235 CODE_FOR_msa_pckod_h, CODE_FOR_msa_pckod_w, CODE_FOR_msa_slli_b,
15236 CODE_FOR_msa_slli_h, CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d,
15237 CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w,
15238 CODE_FOR_msa_srai_d, CODE_FOR_msa_srli_b, CODE_FOR_msa_srli_h,
15239 CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d, CODE_FOR_msa_insert_b,
15240 CODE_FOR_msa_insert_h, CODE_FOR_msa_insert_w,
15241 CODE_FOR_msa_insert_d, CODE_FOR_msa_insve_b,
15242 CODE_FOR_msa_insve_h, CODE_FOR_msa_insve_w, CODE_FOR_msa_insve_d,
15243 CODE_FOR_msa_shf_b, CODE_FOR_msa_shf_h, CODE_FOR_msa_shf_w,
15244 CODE_FOR_msa_shf_w_f, CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h,
15245 CODE_FOR_msa_vshf_w, CODE_FOR_msa_vshf_d.
15246 (mips_expand_builtin): Add case for MIPS_BULTIN_MSA_TEST_BRANCH.
15247 (mips_set_compression_mode): Disallow MSA with MIPS16 code.
15248 (mips_option_override): -mmsa requires -mfp64 and -mhard-float.
15249 These are set implicitly and an error is reported if overridden.
15250 (mips_expand_builtin_msa_test_branch): New function.
15251 (mips_expand_msa_shuffle): Likewise.
15252 (MAX_VECT_LEN): Increase maximum length of a vector to 16 bytes.
15253 (TARGET_SCHED_REASSOCIATION_WIDTH): Define target hook.
15254 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Likewise.
15255 (mips_expand_vec_unpack): Add support for MSA.
15256 (mips_expand_vector_init): Likewise.
15257 (mips_expand_vi_constant): Use CONST0_RTX (element_mode)
15258 instead of const0_rtx.
15259 (mips_msa_vec_parallel_const_half): New function.
15260 (mips_gen_const_int_vector): Likewise.
15261 (mips_gen_const_int_vector_shuffle): Likewise.
15262 (mips_expand_msa_cmp): Likewise.
15263 (mips_expand_vec_cond_expr): Likewise.
15264 * config/mips/mips.h
15265 (TARGET_CPU_CPP_BUILTINS): Add __mips_msa and __mips_msa_width.
15266 (OPTION_DEFAULT_SPECS): Ignore --with-fp-32 if -mmsa is
15267 specified.
15268 (ASM_SPEC): Pass mmsa and mno-msa to the assembler.
15269 (ISA_HAS_MSA): New macro.
15270 (UNITS_PER_MSA_REG): Likewise.
15271 (BITS_PER_MSA_REG): Likewise.
15272 (BIGGEST_ALIGNMENT): Redefine using ISA_HAS_MSA.
15273 (MSA_REG_FIRST): New macro.
15274 (MSA_REG_LAST): Likewise.
15275 (MSA_REG_NUM): Likewise.
15276 (MSA_REG_P): Likewise.
15277 (MSA_REG_RTX_P): Likewise.
15278 (MSA_SUPPORTED_MODE_P): Likewise.
15279 (HARD_REGNO_CALL_PART_CLOBBERED): Redefine using TARGET_MSA.
15280 (ADDITIONAL_REGISTER_NAMES): Add named registers $w0-$w31.
15281 * config/mips/mips.md: Include mips-msa.md.
15282 (alu_type): Add simd_add.
15283 (mode): Add V2DI, V4SI, V8HI, V16QI, V2DF, V4SF.
15284 (type): Add simd_div, simd_fclass, simd_flog2, simd_fadd,
15285 simd_fcvt, simd_fmul, simd_fmadd, simd_fdiv, simd_bitins,
15286 simd_bitmov, simd_insert, simd_sld, simd_mul, simd_fcmp,
15287 simd_fexp2, simd_int_arith, simd_bit, simd_shift, simd_splat,
15288 simd_fill, simd_permute, simd_shf, simd_sat, simd_pcnt,
15289 simd_copy, simd_branch, simd_cmsa, simd_fminmax, simd_logic,
15290 simd_move, simd_load, simd_store. Choose "multi" for moves
15291 for "qword_mode".
15292 (qword_mode): New attribute.
15293 (insn_count): Add instruction count for quad moves.
15294 Increase the count for MIPS SIMD division.
15295 (UNITMODE): Add UNITMODEs for vector types.
15296 (addsub): New code iterator.
15297 * config/mips/mips.opt (mmsa): New option.
15298 * config/mips/msa.h: New file.
15299 * config/mips/mti-elf.h: Don't infer -mfpxx if -mmsa is
15300 specified.
15301 * config/mips/mti-linux.h: Likewise.
15302 * config/mips/predicates.md
15303 (const_msa_branch_operand): New constraint.
15304 (const_uimm3_operand): Likewise.
15305 (const_uimm4_operand): Likewise.
15306 (const_uimm5_operand): Likewise.
15307 (const_uimm8_operand): Likewise.
15308 (const_imm5_operand): Likewise.
15309 (aq10b_operand): Likewise.
15310 (aq10h_operand): Likewise.
15311 (aq10w_operand): Likewise.
15312 (aq10d_operand): Likewise.
15313 (const_m1_operand): Likewise.
15314 (reg_or_m1_operand): Likewise.
15315 (const_exp_2_operand): Likewise.
15316 (const_exp_4_operand): Likewise.
15317 (const_exp_8_operand): Likewise.
15318 (const_exp_16_operand): Likewise.
15319 (const_vector_same_val_operand): Likewise.
15320 (const_vector_same_simm5_operand): Likewise.
15321 (const_vector_same_uimm5_operand): Likewise.
15322 (const_vector_same_uimm6_operand): Likewise.
15323 (const_vector_same_uimm8_operand): Likewise.
15324 (par_const_vector_shf_set_operand): Likewise.
15325 (reg_or_vector_same_val_operand): Likewise.
15326 (reg_or_vector_same_simm5_operand): Likewise.
15327 (reg_or_vector_same_uimm6_operand): Likewise.
15328 * doc/extend.texi (MIPS SIMD Architecture Functions): New
15329 section.
15330 * doc/invoke.texi (-mmsa): Document new option.
15331
15332 2016-05-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15333
15334 * configure.ac (enable_vtable_verify): Handle --enable-vtable-verify.
15335 * configure: Regenerate.
15336 * config.in: Regenerate.
15337 * gcc.c (VTABLE_VERIFICATION_SPEC) [!ENABLE_VTABLE_VERIFY]: Error
15338 on -fvtable-verify.
15339 * config/sol2.h [!ENABLE_VTABLE_VERIFY] (STARTFILE_VTV_SPEC): Define.
15340 (ENDFILE_VTV_SPEC): Define.
15341
15342 2016-05-09 Kaushik Phatak <kaushik.phatak@kpit.com>
15343
15344 * config/rl78/rl78.c (rl78_expand_prologue): Save the MDUC related
15345 registers in all interrupt handlers if necessary.
15346 (rl78_option_override): Add warning.
15347 (MUST_SAVE_MDUC_REGISTERS): New macro.
15348 (rl78_expand_epilogue): Restore the MDUC registers if necessary.
15349 * config/rl78/rl78.c (check_mduc_usage): New function.
15350 (mduc_regs): New structure to hold MDUC register data.
15351 * config/rl78/rl78.md (is_g13_muldiv_insn): New attribute.
15352 (mulsi3_g13): Add is_g13_muldiv_insn attribute.
15353 (udivmodsi4_g13): Add is_g13_muldiv_insn attribute.
15354 (mulhi3_g13): Add is_g13_muldiv_insn attribute.
15355 * config/rl78/rl78.opt (msave-mduc-in-interrupts): New option.
15356 * doc/invoke.texi (RL78 Options): Add -msave-mduc-in-interrupts.
15357
15358 2016-05-09 Bin Cheng <bin.cheng@arm.com>
15359
15360 * tree-if-conv.c (tree-ssa-loop.h): Include header file.
15361 (tree-ssa-loop-niter.h): Ditto.
15362 (idx_within_array_bound, ref_within_array_bound): New functions.
15363 (ifcvt_memrefs_wont_trap): Check if array ref is within bound.
15364 Factor out check on writable base object to ...
15365 (base_object_writable): ... here.
15366
15367 2016-05-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15368
15369 * config/arm/arm.md (probe_stack): Add modes to set source
15370 and destination.
15371
15372 2016-05-09 Bernd Schmidt <bschmidt@redhat.com>
15373
15374 * regrename.c (base_reg_class_for_rename): New static function.
15375 (scan_rtx_address, scan_rtx): Use it instead of base_reg_class.
15376
15377 2016-05-08 Jan Hubicka <hubicka@ucw.cz>
15378
15379 * cgraph.c (thunk_adjust): Export.
15380 * cgraphclones.c (cgraph_node::create_clone): Clone thunk info.
15381 * cgraphunit.c (thunk_adjust): Export.
15382 (cgraph_node::assemble_thunks_and_aliases): Do not assemble inlined
15383 thunks.
15384 * ipa-inline-analyssi.c (compute_inline_parameters): Thunks are
15385 inlinable.
15386 * tree-inline.c (expand_call_inline): Expand thunks inline.
15387
15388 2016-05-08 Uros Bizjak <ubizjak@gmail.com>
15389
15390 PR target/70998
15391 * config/i386/sse.md (*sse2_vd_cvtsd2ss): New insn pattern.
15392 (*sse2_vd_cvtss2sd): Ditto.
15393 * config/i386/i386.md
15394 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf splitter):
15395 Generate *sse2_vd_cvtsd2ss pattern.
15396 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df splitter):
15397 Generate *sse2_vd_cvtss2sd pattern.
15398
15399 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
15400
15401 * config/sh/sh.h (GET_SH_ARG_CLASS): Convert macro into ...
15402 * config/sh/sh.c (get_sh_arg_class): ... this new function. Update its
15403 users.
15404
15405 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
15406
15407 * config/sh/sh-protos.h (sh_media_register_for_return): Remove.
15408 * config/sh/sh.c: Define and declare variables on first use throughout
15409 the file.
15410 (current_function_interrupt): Change to bool type.
15411 (frame_insn): Rename to emit_frame_insn and update users.
15412 (push_regs): Use bool for 'interrupt_handler' argument.
15413 (save_schedule_s): Remove.
15414 (TARGET_ASM_UNALIGNED_DI_OP, TARGET_ASM_ALIGNED_DI_OP): Remove.
15415 (sh_option_override): Don't nullify targetm.asm_out.aligned_op.di and
15416 targetm.asm_out.unaligned_op.di.
15417 (gen_far_branch): Remove redundant forward declaration.
15418 (sh_media_register_for_return, MAX_SAVED_REGS, save_entry_s, save_entry,
15419 MAX_TEMPS, save_schedule_ssave_schedule): Remove.
15420 (sh_set_return_address, sh_function_ok_for_sibcall,
15421 scavenge_reg): Update comments.
15422 (sh_builtin_saveregs): Use TRAGET_FPU_ANY condition.
15423 (sh2a_get_function_vector_number, sh2a_function_vector_p): Use for loop.
15424 (sh_attr_renesas_p): Remove unnecessary parentheses.
15425 (branch_dest): Simplify.
15426 * config/sh/sh.h (sh_args): Remove byref, byref_regs, stack_regs fields.
15427 Change force_mem, prototype_p, outgoing, renesas_abi fields to bool.
15428 (CUMULATIVE_ARGS): Change macro to typedef.
15429 (current_function_interrupt): Change to bool type.
15430 (sh_arg_class, sh_args, CUMULATIVE_ARGS, current_function_interrupt):
15431 Surround with __cplusplus ifdef.
15432 (sh_compare_op0, sh_compare_op1): Remove.
15433 (EPILOGUE_USES): Use TARGET_FPU_ANY condition.
15434
15435 2016-05-07 Jim Wilson <jim.wilson@linaro.org>
15436
15437 * config/arm/arm.md: (arch): Add neon.
15438 (arch_enabled): Return yes for arch neon when TARGET_NEON.
15439 * config/arm/vfp.md (movdf_vfp): Add w/G as alternative 3. Add
15440 neon_move as type for alt 3. Add arch attr enabling alt 3 for neon.
15441 Emit vmov.i64 for alt 3. Renumber alternatives 3 to 8. Adjust
15442 attributes for alt renumbering. Mark alt 3 as non-predicable.
15443 (thumb2_movdf_vfp): Likewise.
15444
15445 2016-05-07 Uros Bizjak <ubizjak@gmail.com>
15446
15447 * config/i386/i386.md (*addqi_1): Add preferred_for_speed attribute
15448 to disparage alternatives 3 and 4 for TARGET_PARTIAL_REG_STALL targets.
15449 (*andqi_1): Add preferred_for_speed attribute to disparage
15450 alternative 2 for TARGET_PARTIAL_REG_STALL targets.
15451 (*<code>qi_1): Ditto.
15452 (*one_cmplqi2_1): Add preferred_for_speed attribute to disparage
15453 alternative 1 for TARGET_PARTIAL_REG_STALL targets.
15454 (*ashlqi3_1): Ditto.
15455 (*swap<mode>): Merge from *swap<mode>_1 and *swap<mode>_2 patterns.
15456 Add preferred_for_size attribute to disparage alternative 0 and
15457 preferred_for_speed attribute to disparage alternative 1 for
15458 TARGET_PARTIAL_REG_STALL targets.
15459
15460 2016-05-07 Tom de Vries <tom@codesourcery.com>
15461
15462 PR tree-optimization/70956
15463 * graphite-scop-detection.c (build_cross_bb_scalars_def): Handle NULL
15464 def.
15465
15466 2016-05-07 Oleg Endo <olegendo@gcc.gnu.org>
15467
15468 * config/sh/sh-protos.h (sh_cbranch_distance): Declare new function.
15469 * config/sh/sh.c (sh_cbranch_distance): Implement it.
15470 * config/sh/sh.md (branch_zero): Remove define_attr.
15471 (define_delay): Disable delay slot if branch distance is one insn.
15472
15473 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
15474
15475 * config/i386/i386.md (LEAMODE): New mode attribute.
15476 (plus to LEA splitter): Rewrite splitter using LEAMODE mode attribute.
15477 (ashift to LEA splitter): Rewrte splitter using SWI mode iterator
15478 and LEAMODE mode attribute. Use VOIDmode const_0_to_3_operand as
15479 operand 2 predicate.
15480 (*lea<mode>_general_2): Use VOIDmode for const248_operand.
15481 (*lea<mode>_general_3): Ditto.
15482 (*lea<mode>_general_4): Use VOIDmode for const_0_to_3_operand.
15483
15484 2016-05-06 Jakub Jelinek <jakub@redhat.com>
15485
15486 * genmddump.c (main): Convert argv from char ** to const char **.
15487
15488 2016-05-06 David Malcolm <dmalcolm@redhat.com>
15489
15490 * coretypes.h (OVERRIDE): New macro.
15491 (FINAL): New macro.
15492
15493 2016-05-06 Eric Botcazou <ebotcazou@adacore.com>
15494
15495 * tree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case,
15496 allow coalescing if the types are compatible.
15497
15498 2016-05-06 David Malcolm <dmalcolm@redhat.com>
15499
15500 * pass_manager.h (pass_manager::register_pass_name): New method.
15501 (pass_manager::get_pass_by_name): New method.
15502 (pass_manager::create_pass_tab): New method.
15503 (pass_manager::m_name_to_pass_map): New field.
15504 * passes.c (name_to_pass_map): Delete global in favor of field
15505 "m_name_to_pass_map" of pass_manager.
15506 (register_pass_name): Rename from a function to...
15507 (pass_manager::register_pass_name): ...this method, updating
15508 for renaming of global "name_to_pass_map" to field
15509 "m_name_to_pass_map".
15510 (create_pass_tab): Rename from a function to...
15511 (pass_manager::create_pass_tab): ...this method, updating
15512 for renaming of global "name_to_pass_map" to field.
15513 (get_pass_by_name): Rename from a function to...
15514 (pass_manager::get_pass_by_name): ...this method.
15515 (enable_disable_pass): Convert use of get_pass_by_name to
15516 a method call, locating the pass_manager singleton.
15517
15518 2016-05-06 David Malcolm <dmalcolm@redhat.com>
15519
15520 * genattr-common.c (main): Convert argv from char ** to const char **.
15521 * genattr.c (main): Likewise.
15522 * genattrtab.c (main): Likewise.
15523 * genautomata.c (initiate_automaton_gen): Likewise.
15524 (main): Likewise.
15525 * gencodes.c (main): Likewise.
15526 * genconditions.c (main): Likewise.
15527 * genconfig.c (main): Likewise.
15528 * genconstants.c (main): Likewise.
15529 * genemit.c (main): Likewise.
15530 * genenums.c (main): Likewise.
15531 * genextract.c (main): Likewise.
15532 * genflags.c (main): Likewise.
15533 * genmddeps.c (main): Likewise.
15534 * genopinit.c (main): Likewise.
15535 * genoutput.c (main): Likewise.
15536 * genpeep.c (main): Likewise.
15537 * genpreds.c (main): Likewise.
15538 * genrecog.c (main): Likewise.
15539 * gensupport.c (init_rtx_reader_args_cb): Likewise.
15540 (init_rtx_reader_args): Likewise.
15541 * gensupport.h (init_rtx_reader_args_cb): Likewise.
15542 (init_rtx_reader_args): Likewise.
15543 * gentarget-def.c (main): Likewise.
15544 * read-md.c (read_md_files): Likewise.
15545 * read-md.h (read_md_files): Likewise.
15546
15547 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
15548
15549 * config/i386/i386.md (int cmove peephole2s): Use general_reg_operand
15550 instead of register_and_not_any_fp_reg_operand as operand 0 predicate.
15551 * config/i386/predicates.md (register_and_not_any_fp_reg_operand):
15552 Remove unused predicate.
15553 (register_and_not_fp_reg_operand): Ditto.
15554
15555 2016-05-06 Martin Liska <mliska@suse.cz>
15556
15557 * tree-if-conv.c (ifcvt_split_critical_edges): Use auto_vec
15558 instead of vec as the vector is local to the function.
15559
15560 2016-05-06 Jakub Jelinek <jakub@redhat.com>
15561
15562 * config/i386/sse.md (*<code>v8hi3, *<code>v16qi3): Add
15563 avx512bw alternative.
15564
15565 * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>): Move
15566 before the ashr<mode>3 pattern.
15567
15568 * config/i386/sse.md (*avx2_pmaddwd, *sse2_pmaddwd): Use
15569 v instead of x in vex or maybe_vex alternatives, use
15570 maybe_evex instead of vex in prefix.
15571
15572 * config/i386/sse.md (*vec_extractv4sf_0, *sse4_1_extractps,
15573 *vec_extractv4sf_mem, vec_extract_lo_v16hi, vec_extract_hi_v16hi,
15574 vec_extract_lo_v32qi, vec_extract_hi_v32qi): Use v instead of x
15575 in vex or maybe_vex alternatives, use maybe_evex instead of vex
15576 in prefix.
15577
15578 * config/i386/sse.md (*vec_concatv2sf_sse4_1, *vec_concatv4sf): Use
15579 v instead of x in vex or maybe_vex alternatives, use
15580 maybe_evex instead of vex in prefix.
15581
15582 * config/i386/sse.md (sse_shufps_<mode>, sse_storehps, sse_loadhps,
15583 sse_storelps, sse_movss, avx2_vec_dup<mode>, avx2_vec_dupv8sf_1,
15584 sse2_shufpd_<mode>, sse2_storehpd, sse2_storelpd, sse2_loadhpd,
15585 sse2_loadlpd, sse2_movsd): Use v instead of x in vex or maybe_vex
15586 alternatives, use maybe_evex instead of vex in prefix.
15587
15588 * config/i386/sse.md (vec_interleave_lowv4sf,
15589 *vec_interleave_highv2df, *vec_interleave_lowv2df): Use
15590 v instead of x in vex or maybe_vex alternatives, use
15591 maybe_evex instead of vex in prefix.
15592
15593 * config/i386/sse.md (sse_movhlps, sse_movlhps): Use
15594 v instead of x in vex or maybe_vex alternatives, use
15595 maybe_evex instead of vex in prefix.
15596
15597 * config/i386/sse.md (*avx_cvtpd2dq256_2, *avx_cvtps2pd256_2): Use
15598 v constraint instead of x.
15599
15600 2016-05-06 Nathan Sidwell <nathan@codesourcery.com>
15601
15602 * gimple.c (gimple_call_same_target_p): Unique functions are eq.
15603 * tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
15604 equality first.
15605
15606 2016-05-06 Richard Biener <rguenther@suse.de>
15607
15608 PR tree-optimization/70948
15609 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
15610 Properly clobber all fields of va_list for __builtin_va_start.
15611
15612 2016-05-06 Yuri Rumyantsev <ysrumyan@gmail.com>
15613
15614 PR debug/70935
15615 * tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
15616 loop latch destination.
15617
15618 2016-05-06 Martin Liska <mliska@suse.cz>
15619
15620 * tree-ssa-uninit.c: Apply manual changes
15621 to the GNU coding style.
15622 (prune_uninit_phi_opnds): Rename from
15623 prune_uninit_phi_opnds_in_unrealizable_paths.
15624
15625 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
15626
15627 * config/sh/sh.opt (madjust-unroll, minvalid-symbols, msoft-atomic,
15628 mspace): Remove deprecated options.
15629 * doc/invoke.texi (SH options): Remove -mspace.
15630
15631 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
15632
15633 * config/sh/sh.md (ic_invalidate_line_sh4a): Fix insn length.
15634
15635 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
15636
15637 * config/sh/sh.md (*cmpeqsi_t): Remove combine insn pattern and similar
15638 corresponding combine split pattern.
15639
15640 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
15641
15642 PR target/58219
15643 * config/sh/predicates.md (long_displacement_mem_operand): New.
15644 * config/sh/sh.md (movsi_i): Allow for SH2A, disallow for any FPU.
15645 Add movi20, movi20s alternatives. Adjust length attribute for
15646 alternatives.
15647 (movsi_ie): Allow for any FPU. Adjust length attribute for
15648 alternatives.
15649 (movsi_i_lowpart): Add movi20, movi20s alternatives. Adjust length
15650 attribute for alternatives.
15651 (*mov<mode>): Use long_displacement_mem_operand for length attribute.
15652 (*movdi_i, movdf_k, movdf_i4, movsf_i, movsf_ie, movsf_ie_ra): Adjust
15653 length attribute for alternatives.
15654
15655 2016-05-06 Richard Biener <rguenther@suse.de>
15656
15657 PR tree-optimization/70960
15658 * tree-if-conv.c (ifcvt_walk_pattern_tree): Handle non-SSA ops.
15659
15660 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
15661
15662 PR target/52933
15663 * config/sh/sh.md (*cmp_div0s_7, *cmp_div0s_8): Add div0s variants.
15664 * config/sh/sh.c (sh_rtx_costs): Add another div0s case.
15665
15666 2016-05-06 Marek Polacek <polacek@redhat.com>
15667
15668 PR sanitizer/70875
15669 * ubsan.c (get_ubsan_type_info_for_type): Remove assert.
15670
15671 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
15672
15673 PR target/54089
15674 * config/sh/sh.md (*rotcr): Add another variant.
15675
15676 2016-05-06 Richard Biener <rguenther@suse.de>
15677
15678 PR middle-end/70931
15679 * dwarf2out.c (native_encode_initializer): Skip zero-sized fields.
15680
15681 2016-05-06 Richard Biener <rguenther@suse.de>
15682
15683 PR middle-end/70941
15684 * fold-const.c (split_tree): Always convert to the original type
15685 before negating.
15686
15687 2016-05-06 Richard Biener <rguenther@suse.de>
15688
15689 * fwprop.c (fwprop): Remove duplicate cleanup_cfg call.
15690 (fwprop_addr): Likewise.
15691
15692 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
15693
15694 PR target/70873
15695 * config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p):
15696 New prototype.
15697 * config/i386/i386.c (ix86_standard_x87sse_constant_load_p): New.
15698 * config/i386/i386.md (push mem splitter): Use find_constant_src in
15699 the splitter condition.
15700 (FP load splitter): Use ix86_standard_x87sse_constant_load_p in
15701 the splitter condition.
15702 (FP float_extend load splitter): Ditto.
15703
15704 2016-05-05 Uros Bizjak <ubizjak@gmail.com>
15705
15706 * config/i386/i386.md (peehole2 patterns): Change true_regnum
15707 to REGNO in all peephole2 patterns.
15708 (post-reload splitters): Change true_regnum to REGNO in
15709 post-reload splitters.
15710 (zero_extend splitters): Use general_reg_operand and
15711 nonimmediate_gr_operand predicates.
15712
15713 2016-05-05 Jakub Jelinek <jakub@redhat.com>
15714
15715 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use
15716 v constraint instead of x.
15717
15718 2016-05-05 Alan Modra <amodra@gmail.com>
15719
15720 PR target/68662
15721 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
15722 set OPTION_MASK_RELOCATABLE when flag_pic == 2. Set
15723 TARGET_NO_FP_IN_TOC for -mrelocatable.
15724 (MINIMAL_TOC_SECTION_ASM_OP): Remove redundant
15725 TARGET_RELOCATABLE test.
15726 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
15727 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
15728 * config/rs6000/linux64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
15729 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
15730 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
15731 * config/rs6000/freebsd64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
15732 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
15733 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
15734 * config/rs6000/predicates.md (easy_fp_constant): Likewise.
15735 * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
15736 Likewise.
15737 (rs6000_assemble_integer): Update TARGET_RELOCATABLE test.
15738 (rs6000_stack_info): Likewise.
15739 (rs6000_elf_asm_out_constructor): Likewise.
15740 (rs6000_elf_asm_out_destructor): Likewise.
15741 (rs6000_elf_declare_function_name): Likewise.
15742 * config/rs6000/rs6000.md (load_toc_aix_di): Likewise.
15743 * config/rs6000/rs6000.h (MASK_RELOCATABLE, MASK_MINIMAL_TOC):
15744 Don't define.
15745
15746 2016-05-05 Alan Modra <amodra@gmail.com>
15747
15748 * config/rs6000/rs6000.c (rs6000_frame_related): Rewrite.
15749
15750 2016-05-05 Alan Modra <amodra@gmail.com>
15751
15752 * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
15753 out-of-line gpr restore for one or two regs if that would add
15754 a save of lr.
15755
15756 2016-05-04 Uros Bizjak <ubizjak@gmail.com>
15757
15758 PR target/70873
15759 * config/i386/i386.md
15760 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df peephole2):
15761 Change to post-epilogue_completed late splitter. Use sse_reg_operand
15762 as operand 0 predicate.
15763 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf peephole2):
15764 Ditto.
15765 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2):
15766 Ditto. Emit the pattern using RTX.
15767
15768 (TARGET_USE_VECTOR_FP_CONVERTS float_extend sf->df splitter):
15769 Use sse_reg_opreand as operand 0 predicate. Do not use true_regnum in
15770 the post-reload splitter. Use lowpart_subreg instead of gen_rtx_REG.
15771 (TARGET_USE_VECTOR_FP_CONVERTS float_truncate df->sf splitter):
15772 Ditto.
15773 (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use
15774 sse_reg_operand as operand 0 predicate.
15775
15776 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_extend sf->df peephole2):
15777 Use sse_reg_opreand as operand 0 predicate. Use lowpart_subreg
15778 instead of gen_rtx_REG.
15779 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_truncate sf->df peephole2):
15780 Ditto.
15781
15782 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
15783
15784 * function.c (emit_use_return_register_into_block): Delete.
15785 (gen_return_pattern): Delete.
15786 (emit_return_into_block): Delete.
15787 (active_insn_between): Delete.
15788 (convert_jumps_to_returns): Delete.
15789 (emit_return_for_exit): Delete.
15790 (thread_prologue_and_epilogue_insns): Delete all code dealing with
15791 simple_return for shrink-wrapped blocks.
15792 * shrink-wrap.c (try_shrink_wrapping): Insert simple_return at the
15793 end of blocks that need one.
15794 (get_unconverted_simple_return): Delete.
15795 (convert_to_simple_return): Delete.
15796 * shrink-wrap.c (get_unconverted_simple_return): Delete declaration.
15797 (convert_to_simple_return): Ditto.
15798
15799 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
15800
15801 * cfgcleanup.c (bb_is_just_return): New function.
15802 (try_optimize_cfg): Simplify jumps to return, branches to return,
15803 and branches around return.
15804
15805 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
15806
15807 * cfgcleanup.c (try_simplify_condjump): Don't try to simplify a
15808 branch to a return.
15809
15810 2016-05-04 Jakub Jelinek <jakub@redhat.com>
15811
15812 PR c++/70906
15813 PR c++/70933
15814 * tree-core.h (enum operand_equal_flag): Add OEP_HASH_CHECK.
15815 * tree.c (inchash::add_expr): If !IS_EXPR_CODE_CLASS (tclass),
15816 assert flags & OEP_HASH_CHECK, instead of asserting it
15817 never happens. Handle TARGET_EXPR.
15818 * fold-const.c (operand_equal_p): For hash verification,
15819 or in OEP_HASH_CHECK into flags.
15820
15821 2016-05-04 Eric Botcazou <ebotcazou@adacore.com>
15822
15823 * tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
15824 comment.
15825 (compute_samebase_partition_bases): Fix typo.
15826
15827 2016-05-04 Jakub Jelinek <jakub@redhat.com>
15828
15829 * config/i386/sse.md (vec_interleave_highv8sf,
15830 vec_interleave_lowv8sf, vec_interleave_highv4df,
15831 vec_interleave_lowv4df): Remove constraints from expanders.
15832
15833 * config/i386/sse.md (sse2_movq128): Use v constraint instead of x.
15834
15835 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
15836
15837 * tree-inline.c (expand_call_inline): Fix path dealing with
15838 making lhs of call statement undefined.
15839
15840 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
15841
15842 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
15843 Check availability on NODE, too.
15844 * cgraph.h (symtab_node::call_for_symbol_and_aliases): Likewise.
15845 (cgraph_node::call_for_symbol_and_aliases): Likewise.
15846 (varpool_node::call_for_symbol_and_aliase): Likewise.
15847 * ipa-pure-const.c (add_new_function): Analyze all bodies.
15848 (propagate_pure_const): Propagate across interposable functions, too.
15849 (skip_function_for_local_pure_const): Do not skip interposable bodies
15850 with aliases.
15851 (pass_local_pure_const::execute): Update.
15852
15853 2016-05-04 Marek Polacek <polacek@redhat.com>
15854
15855 * doc/invoke.texi: Document -Wdangling-else.
15856
15857 2016-05-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
15858
15859 * config.gcc: Error out when conflicting multilib is detected. Do not
15860 loop over multilibs since no combination is legal.
15861
15862 2016-05-04 Alan Modra <amodra@gmail.com>
15863
15864 * config/rs6000/rs6000.h (PIC_OFFSET_TABLE_REGNUM): Correct.
15865 * config/rs6000/sysv4.h (TARGET_TOC): Simplify.
15866 * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
15867 Align .toc.
15868
15869 2016-05-04 Matthew Fortune <matthew.fortune@imgtec.com>
15870
15871 * config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
15872 Clean up p5600 comments.
15873
15874 2016-05-04 Richard Biener <rguenther@suse.de>
15875
15876 * match.pd: Add BIT_FIELD_REF canonicalizations and vector
15877 constructor simplifications.
15878 * fold-const.c (fold_ternary_loc): Remove duplicate functionality here.
15879
15880 2016-05-04 Oleg Endo <olegendo@gcc.gnu.org>
15881
15882 * config/sh/predicates (post_inc_mem, pre_dec_mem): New predicates.
15883 * config/sh/sh-protos.h (sh_find_set_of_reg): Return null result if
15884 result.set_rtx is null instead of aborting.
15885 * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT):
15886 Always enable.
15887 (USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT): Enable for SH2A.
15888 * config/sh/sh.md (*extend<mode>si2_predec, *mov<mode>_load_predec,
15889 *mov<mode>_store_postinc): New patterns.
15890
15891 2016-05-04 Marc Glisse <marc.glisse@inria.fr>
15892
15893 * match.pd ((A | B) & (A | C)): Generalize to BIT_XOR_EXPR. Mark
15894 as commutative. Check both conversions are NOP.
15895 ((A & B) OP (C & B)): Remove.
15896
15897 2016-05-04 Alan Modra <amodra@gmail.com>
15898
15899 * combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.
15900
15901 2016-05-04 Alan Modra <amodra@gmail.com>
15902
15903 PR target/70866
15904 * config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
15905 when cr2,3,4 are all fixed regs.
15906
15907 2016-05-04 Bernd Schmidt <bschmidt@redhat.com>
15908
15909 PR rtl-optimization/57193
15910 * opts.c (default_options_table): Revert OPT_frename_registers change.
15911 * doc/invoke.texi (-frename-registers, -O2): Likewise.
15912
15913 2016-05-03 Martin Sebor <msebor@redhat.com>
15914
15915 PR c++/66561
15916 * builtins.c (fold_builtin_FILE): New function.
15917 (fold_builtin_FUNCTION, fold_builtin_LINE): New functions.
15918 (fold_builtin_0): Call them.
15919 * gimplify.c (gimplify_call_expr): Remove the handling of
15920 BUILT_IN_FILE, BUILT_IN_FUNCTION, and BUILT_IN_LINE.
15921
15922 PR c++/66561
15923 * doc/extend.texi (Other Builtins): Update __builtin_FILE,
15924 __builtin_FUNCTION, and __builtin_LINE to reflect they yield
15925 constants.
15926
15927 PR c++/66639
15928 * doc/extend.texi (Function Names as Strings): Update __func__,
15929 __FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
15930 constants.
15931
15932 2016-05-03 Jakub Jelinek <jakub@redhat.com>
15933 Richard Biener <rguenther@suse.de>
15934
15935 PR tree-optimization/70916
15936 * tree-if-conv.c: Include cfganal.h.
15937 (pass_if_conversion::execute): Call connect_infinite_loops_to_exit
15938 and remove_fake_exit_edges around the optimization pass.
15939
15940 2016-05-03 Jan Hubicka <hubicka@ucw.cz>
15941
15942 * cgraph.c (symbol_table::create_edge): Set inline_failed.
15943 (cgraph_edge::make_direct): Likewise.
15944 (cgraph_edge::dump_edge_flags): Dump call_stmt_cannot_inline_p.
15945 * cgraphclones.c (duplicate_thunk_for_node): Set inline_failed.
15946 * cif-code.def (CIF_LTO_MISMATCHED_DECLARATIONS): New code
15947 (CIF_THUNK): New code.
15948 * ipa-inline-analysis.c (initialize_inline_failed): Preserve
15949 CIF_FINAL_ERROR codes; do not deal with call_stmt_cannot_inline_p.
15950 (compute_inline_parameters): Set inline_failed for thunks.
15951 (inline_analyze_function): Cleanup.
15952 * ipa-inline.c (can_inline_edge_p): Do not deal with
15953 call_stmt_cannot_inline_p.
15954 (can_early_inline_edge_p): Likewise.
15955 (early_inliner): Initialize inline_failed.
15956 * lto-cgraph.c (lto_output_edge): Sanity check inline_failed.
15957
15958 2016-05-03 Uros Bizjak <ubizjak@gmail.com>
15959
15960 * config/i386/predicates.md (x87nonimm_ssenomem_operand): Rename
15961 from nonimm_ssenomem_operand.
15962 (nonimm_ssenomem_operand): New predicate.
15963 * config/i386/i386.md (extendsfdf2): Use nonimm_ssenomem_operand
15964 as operand 0 predicate.
15965 (*extendsfdf2): Merge from *extendsfdf2_mixed and *extendsfdf2_i387.
15966 Disable unsupported alternatives using "enabled" attribute.
15967 Use register_ssemem_operand as operand 0 predicate.
15968 (*fop_<mode>_1): Use x87nonimm_ssenomem_operand as operand 1 predicate.
15969
15970 2016-05-03 Marek Polacek <polacek@redhat.com>
15971
15972 PR c/70859
15973 * input.c (expansion_point_location): New function.
15974 * input.h (expansion_point_location): Declare.
15975
15976 2016-05-03 Pierre-Marie de Rodat <derodat@adacore.com>
15977
15978 * dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
15979 occurence with frame_offset_ ones.
15980
15981 2016-05-03 Alan Modra <amodra@gmail.com>
15982
15983 PR rtl-optimization/70890
15984 * ira.c (combine_and_move_insns): When moving def_insn, remove
15985 equivs on use_insn.
15986
15987 2016-05-03 Dominik Vogt <vogt@linux.vnet.ibm.com>
15988
15989 * config/s390/s390.md ("*r<noxa>sbg_<mode>_sll")
15990 ("*r<noxa>sbg_<mode>_srl"): New define_insns.
15991 ("*r<noxa>sbg_<mode>_srl_bitmask"): Rename by adding "_bitmask".
15992 ("*r<noxa>sbg_<mode>_sll_bitmask"): Likewise.
15993
15994 2016-05-03 Alan Modra <amodra@gmail.com>
15995
15996 * config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
15997 for SAVE_MULTIPLE/STORE_MULTIPLE.
15998
15999 2016-05-03 Jakub Jelinek <jakub@redhat.com>
16000
16001 * config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
16002 *truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead of x.
16003
16004 2016-05-03 Richard Biener <rguenther@suse.de>
16005
16006 * gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
16007 default true.
16008 (gimplify_arg): Likewise.
16009 * gimplify.c (gimplify_expr): Add overload with allow_ssa parameter,
16010 re-writing the result to a decl if required.
16011 (internal_get_tmp_var): Add allow_ssa parameter
16012 and override into_ssa with it.
16013 (get_formal_tmp_var): Adjust.
16014 (get_initialized_tmp_var): Add allow_ssa parameter.
16015 (gimplify_arg): Add allow_ssa parameter and avoid generating
16016 SSA names for the result false.
16017 (gimplify_call_expr): If the call may return twice do not
16018 gimplify parameters into SSA.
16019 (prepare_gimple_addressable): Do not allow an SSA name as temporary.
16020 (gimplify_modify_expr): Adjust assert. For noreturn calls
16021 with a SSA name LHS adjust its def.
16022 (gimplify_save_expr): Do not allow an SSA name as save-expr result.
16023 (gimplify_one_sizepos): Do not allow an SSA name as a sizepos.
16024 (gimplify_body): Init GIMPLE SSA data structures and gimplify into-SSA.
16025 (gimplify_scan_omp_clauses): Make sure OMP_CLAUSE_SIZE is not
16026 an SSA name. Likewise for OMP_CLAUSE_REDUCTION operands.
16027 (gimplify_omp_for): Likewise for OMP_CLAUSE_DECL. Likewise
16028 for OMP_FOR_COND, OMP_FOR_INCR and OMP_CLAUSE_LINEAR_STEP.
16029 (optimize_target_teams): Do not allow SSA names for clause operands.
16030 (gimplify_expr): Likewise for where we mark the result addressable.
16031 * passes.def (pass_init_datastructures): Remove.
16032 * tree-into-ssa.c (mark_def_sites): Ignore existing SSA names.
16033 (rewrite_stmt): Likewise.
16034 * tree-inline.c (initialize_cfun): Properly transfer SSA state.
16035 (replace_locals_op): Replace SSA names.
16036 (copy_gimple_seq_and_replace_locals): Init src_cfun.
16037 * gimple-low.c (lower_builtin_setjmp): Deal with SSA.
16038 * cgraph.c (release_function_body): Free CFG annotations only
16039 when we have a CFG. Simplify.
16040 * gimple-fold.c (gimplify_and_update_call_from_tree): Use
16041 force_gimple_operand instead of get_initialized_tmp_var.
16042 * tree-pass.h (make_pass_init_datastructures): Remove.
16043 * tree-ssa.c (execute_init_datastructures): Remove.
16044 (pass_data_init_datastructures): Likewise.
16045 (class pass_init_datastructures): Likewise.
16046 (make_pass_init_datastructures): Likewise.
16047 * omp-low.c (create_omp_child_function): Init SSA data structures.
16048 (grid_expand_target_grid_body): Likewise.
16049 * tree-cfg.c (move_block_to_fn): Double-check the DEF is an SSA
16050 name before adding it to names_to_release.
16051 (remove_bb): Always release SSA defs.
16052 * tree-ssa-ccp.c (get_default_value): Check SSA_NAME_VAR
16053 before dereferencing it.
16054 * cgraphunit.c (init_lowered_empty_function): Always
16055 int SSA data structures.
16056 * tree-ssanames.c (release_defs): Remove assert that we are in
16057 SSA form.
16058 * trans-mem.c (diagnose_tm_1): Handle SSA name function.
16059
16060 2016-05-03 Jakub Jelinek <jakub@redhat.com>
16061 Uros Bizjak <ubizjak@gmail.com>
16062
16063 PR rtl-optimization/70467
16064 * config/i386/predicates.md (x86_64_hilo_int_operand,
16065 x86_64_hilo_general_operand): New predicates.
16066 * config/i386/constraints.md (Wd): New constraint.
16067 * config/i386/i386.md (mode attr di): Use Wd instead of e.
16068 (general_hilo_operand): New mode attr.
16069 (add<mode>3, sub<mode>3): Use <general_hilo_operand>
16070 instead of <general_operand>.
16071 (*add<dwi>3_doubleword, *sub<dwi>3_doubleword): Use
16072 x86_64_hilo_general_operand instead of <general_operand>.
16073
16074 2016-05-03 Jakub Jelinek <jakub@redhat.com>
16075
16076 PR tree-optimization/70916
16077 * tree-if-conv.c (constant_or_ssa_name): Removed.
16078 (fold_build_cond_expr): Use is_gimple_val instead of
16079 constant_or_ssa_name.
16080
16081 PR tree-optimization/70916
16082 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
16083 if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.
16084
16085 PR target/49244
16086 * tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h.
16087 (optimize_atomic_bit_test_and): New function.
16088 (pass_fold_builtins::execute): Use it.
16089 * optabs.def (atomic_bit_test_and_set_optab,
16090 atomic_bit_test_and_complement_optab,
16091 atomic_bit_test_and_reset_optab): New optabs.
16092 * internal-fn.def (ATOMIC_BIT_TEST_AND_SET,
16093 ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_BIT_TEST_AND_RESET): New ifns.
16094 * builtins.h (expand_ifn_atomic_bit_test_and): New prototype.
16095 * builtins.c (expand_ifn_atomic_bit_test_and): New function.
16096 * internal-fn.c (expand_ATOMIC_BIT_TEST_AND_SET,
16097 expand_ATOMIC_BIT_TEST_AND_COMPLEMENT,
16098 expand_ATOMIC_BIT_TEST_AND_RESET): New functions.
16099 * doc/md.texi (atomic_bit_test_and_set@var{mode},
16100 atomic_bit_test_and_complement@var{mode},
16101 atomic_bit_test_and_reset@var{mode}): Document.
16102 * config/i386/sync.md (atomic_bit_test_and_set<mode>,
16103 atomic_bit_test_and_complement<mode>,
16104 atomic_bit_test_and_reset<mode>): New expanders.
16105 (atomic_bit_test_and_set<mode>_1,
16106 atomic_bit_test_and_complement<mode>_1,
16107 atomic_bit_test_and_reset<mode>_1): New insns.
16108
16109 2016-05-03 Richard Sandiford <richard.sandiford@arm.com>
16110
16111 PR rtl-optimization/70687
16112 * combine.c (change_zero_ext): Check for scalar modes. Use wide_int
16113 instead of unsigned HOST_WIDE_INT.
16114
16115 2016-05-03 Bernd Schmidt <bschmidt@redhat.com>
16116
16117 PR rtl-optimization/44281
16118 * hard-reg-set.h (struct target_hard_regs): New field
16119 x_fixed_nonglobal_reg_set.
16120 (fixed_nonglobal_reg_set): New macro.
16121 * reginfo.c (init_reg_sets_1): Initialize it.
16122 * ira.c (setup_alloc_regs): Use fixed_nonglobal_reg_set instead
16123 of fixed_reg_set.
16124 * df-scan.c (df_insn_refs_collect): Asms may reference global regs.
16125
16126 2016-05-03 Bin Cheng <bin.cheng@arm.com>
16127
16128 PR tree-optimization/56541
16129 * doc/invoke.texi (@item max-tree-if-conversion-phi-args): New item.
16130 * params.def (PARAM_MAX_TREE_IF_CONVERSION_PHI_ARGS): new param.
16131 * tree-if-conv.c (MAX_PHI_ARG_NUM): new macro.
16132 (any_complicated_phi): new static variable.
16133 (aggressive_if_conv): delete.
16134 (if_convertible_phi_p): support phis with more than two arguments.
16135 (if_convertible_bb_p): remvoe check on aggressive_if_conv and
16136 critical pred edges.
16137 (ifcvt_split_critical_edges): support phis with more than two
16138 arguments by checking new parameter. only split critical edges
16139 if needed.
16140 (tree_if_conversion): handle simd pragma marked loop using new
16141 local variable aggressive_if_conv. check any_complicated_phi.
16142
16143 2016-05-03 Bin Cheng <bin.cheng@arm.com>
16144
16145 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
16146 before using it.
16147
16148 2016-05-03 Bin Cheng <bin.cheng@arm.com>
16149
16150 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
16151 cbase.
16152
16153 2016-05-03 Oleg Endo <olegendo@gcc.gnu.org>
16154
16155 * config/sh/sh.md (udivsi3, divsi3, mulsi3): Simplify.
16156 (mulhisi3, umulhisi3, (smulsi3_highpart, umulsi3_highpart): Convert to
16157 define_insn_and_split.
16158 (mulsi3_i): New define_insn_and_split.
16159 (mulsi3_call): Convert to define_insn.
16160 (mulsidi3, mulsidi3_compact, umulsidi3, umulsidi3_compact):
16161 Remove constraints.
16162
16163 2016-05-02 Michael Meissner <meissner@linux.vnet.ibm.com>
16164
16165 * machmode.h (mode_complex): Add support to give the complex mode
16166 for a given mode.
16167 (GET_MODE_COMPLEX_MODE): Likewise.
16168 * stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
16169 stored by build_complex_type and gfc_build_complex_type instead of
16170 trying to figure out the appropriate mode based on the size. Raise
16171 an assertion error, if the type was not set.
16172 * genmodes.c (struct mode_data): Add field for the complex type of
16173 the given type.
16174 (blank_mode): Likewise.
16175 (make_complex_modes): Remember the complex mode created in the
16176 base type.
16177 (emit_mode_complex): Write out the mode_complex array to map a
16178 type mode to the complex version.
16179 (emit_insn_modes_c): Likewise.
16180 * tree.c (build_complex_type): Set the complex type to use before
16181 calling layout_type.
16182 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
16183 support for __float128 complex datatypes.
16184 (rs6000_hard_regno_mode_ok): Likewise.
16185 (rs6000_setup_reg_addr_masks): Likewise.
16186 (rs6000_complex_function_value): Likewise.
16187 * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
16188 __float128 and __ibm128 complex.
16189 (FLOAT128_IBM_P): Likewise.
16190 (ALTIVEC_ARG_MAX_RETURN): Likewise.
16191 * doc/extend.texi (Additional Floating Types): Document that
16192 -mfloat128 must be used to enable __float128. Document complex
16193 __float128 and __ibm128 support.
16194
16195 2016-05-02 Jakub Jelinek <jakub@redhat.com>
16196
16197 PR target/49244
16198 * gimple.c (gimple_builtin_call_types_compatible_p): Allow
16199 char/short arguments promoted to int because of promote_prototypes.
16200
16201 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
16202
16203 * config/i386/predicates.md (register_ssemem_operand): New predicate.
16204 * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Merge from
16205 *cmpi<FPCMP:unord><MODEF:mode>_mixed and
16206 *cmpi<FPCMP:unord><X87MODEF:mode>_i387. Disable unsupported
16207 alternatives using "enabled" attribute. Use register_ssemem_operand
16208 as operand 1 predicate.
16209 (*cmpi<unord>xf_i387): Split XFmode pattern from
16210 *cmpi<FPCMP:unord><X87MODEF:mode>_i387.
16211 (*absneg<mode>2): Merge from *absneg<mode>2_mixed and
16212 *absneg<mode>2_i387. Disable unsupported alternatives using
16213 "enabled" attribute.
16214 (*absnegxf2_i387): Split XFmode pattern from *absneg<mode>2_i387.
16215
16216 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
16217
16218 * omp-low.c (lower_oacc_head_tail): Assert there is at least one
16219 marker.
16220 (oacc_loop_process): Check mask for loop termination.
16221
16222 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
16223
16224 * cif-code.def (CIF_THUNK): Add.
16225 * ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
16226 accidental change.
16227
16228 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
16229
16230 * ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
16231 (dump_inline_summary): Dump it.
16232 (fp_expression_p): New predicate.
16233 (estimate_function_body_sizes): Use it.
16234 (inline_merge_summary): Merge fp_expressions.
16235 (inline_read_section): Read fp_expressions.
16236 (inline_write_summary): Write fp_expressions.
16237 * ipa-inline.c (can_inline_edge_p): Permit inlining across fp math
16238 codegen boundary if either caller or callee is !fp_expressions.
16239 * ipa-inline.h (inline_summary): Add fp_expressions.
16240 * ipa-inline-transform.c (inline_call): When inlining !fp_expressions
16241 to fp_expressions be sure the fp generation flags are updated.
16242
16243 2016-05-02 Jakub Jelinek <jakub@redhat.com>
16244
16245 PR rtl-optimization/70467
16246 * cse.c (cse_insn): Handle no-op MEM moves after folding.
16247
16248 PR rtl-optimization/70467
16249 * ipa-pure-const.c (check_call): Handle internal calls even in
16250 ipa mode like in local mode.
16251
16252 2016-05-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
16253
16254 * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.
16255
16256 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
16257
16258 * match.pd (X u< X, X u> X): New transformations.
16259
16260 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
16261
16262 * flag-types.h (enum warn_strict_overflow_code): Move ...
16263 * coretypes.h: ... here.
16264 * fold-const.h (fold_overflow_warning): Declare.
16265 * fold-const.c (fold_overflow_warning): Make non-static.
16266 (fold_comparison): Move the transformation of X +- C1 CMP C2
16267 into X CMP C2 -+ C1 ...
16268 * match.pd: ... here.
16269 * gimple-fold.c (fold_stmt_1): Protect with
16270 fold_defer_overflow_warnings.
16271
16272 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
16273
16274 * omp-low.c (struct oacc_loop): Add 'inner' field.
16275 (new_oacc_loop_raw): Initialize it to zero.
16276 (oacc_loop_fixed_partitions): Initialize it.
16277 (oacc_loop_auto_partitions): Partition outermost loop to outermost
16278 available partitioning.
16279
16280 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
16281
16282 * config/arc/arc.md (mulsidi3): Change operand 0 predicate to
16283 register_operand.
16284 (umulsidi3): Likewise.
16285 (indirect_jump): Fix jump instruction assembly patterns.
16286
16287 2016-05-02 Thomas Schwinge <thomas@codesourcery.com>
16288
16289 PR target/70860
16290 * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
16291 (nvptx_function_value): Assert non-NULL cfun.
16292
16293 2016-05-02 Eric Botcazou <ebotcazou@adacore.com>
16294
16295 PR rtl-optimization/70886
16296 * sched-deps.c (estimate_dep_weak): Canonicalize cselib values.
16297
16298 * cselib.h (rtx_equal_for_cselib_1): Declare.
16299 (rtx_equal_for_cselib_p: New inline function.
16300 * cselib.c (rtx_equal_for_cselib_p): Delete.
16301 (rtx_equal_for_cselib_1): Make public.
16302
16303 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
16304
16305 * config/i386/predicates.md (nonimm_ssenomem_operand): New predicate.
16306 (register_mixssei387nonimm_operand): Remove predicate.
16307 * config/i386/i386.md (*fop_<mode>_comm): Merge from
16308 *fop_<mode>_comm_mixed and *fop_<mode>_comm_i387. Disable unsupported
16309 alternatives using "enabled" attribute. Also check X87_ENABLE_ARITH
16310 for TARGET_MIX_SSE_I387 alternatives.
16311 (*fop_<mode>_1): Merge from *fop_<mode>_1_mixed and *fop_<mode>_1_i387.
16312 Disable unsupported alternatives using "enabled" attribute. Use
16313 nonimm_ssenomem_operand as operand 1 predicate. Also check
16314 X87_ENABLE_ARITH for TARGET_MIX_SSE_I387 alternatives.
16315
16316 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
16317
16318 * tree.c (cst_and_fits_in_hwi): Simplify.
16319
16320 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
16321
16322 * tree.h (wi::to_wide): New function.
16323 * expr.c (expand_expr_real_1): Use wi::to_wide.
16324 * fold-const.c (int_const_binop_1): Likewise.
16325 (extract_muldiv_1): Likewise.
16326
16327 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
16328
16329 * wide-int.h: Update offset_int and widest_int documentation.
16330 (WI_SIGNED_SHIFT_RESULT): New macro.
16331 (wi::binary_shift): Define signed_shift_result_type for
16332 shifts on offset_int- and widest_int-like types.
16333 (generic_wide_int): Support <<= and >>= if << and >> are supported.
16334 * tree.h (int_bit_position): Use shift operators instead of wi::
16335 shifts.
16336 * alias.c (adjust_offset_for_component_ref): Likewise.
16337 * expr.c (get_inner_reference): Likewise.
16338 * fold-const.c (fold_comparison): Likewise.
16339 * gimple-fold.c (fold_nonarray_ctor_reference): Likewise.
16340 * gimple-ssa-strength-reduction.c (restructure_reference): Likewise.
16341 * tree-dfa.c (get_ref_base_and_extent): Likewise.
16342 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
16343 (stmt_kills_ref_p): Likewise.
16344 * tree-ssa-ccp.c (bit_value_binop_1): Likewise.
16345 * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
16346 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
16347 (ao_ref_init_from_vn_reference): Likewise.
16348
16349 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
16350
16351 * wide-int.h: Update offset_int and widest_int documentation.
16352 (WI_SIGNED_BINARY_PREDICATE_RESULT): New macro.
16353 (wi::binary_traits): Allow ordered comparisons between offset_int and
16354 offset_int, between widest_int and widest_int, and between either
16355 of these types and basic C types.
16356 (operator <, <=, >, >=): Define for the same combinations.
16357 * tree.h (tree_int_cst_lt): Use comparison operators instead
16358 of wi:: comparisons.
16359 (tree_int_cst_le): Likewise.
16360 * gimple-fold.c (fold_array_ctor_reference): Likewise.
16361 (fold_nonarray_ctor_reference): Likewise.
16362 * gimple-ssa-strength-reduction.c (record_increment): Likewise.
16363 * tree-affine.c (aff_comb_cannot_overlap_p): Likewise.
16364 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Likewise.
16365 * tree-sra.c (completely_scalarize): Likewise.
16366 * tree-ssa-alias.c (stmt_kills_ref_p): Likewise.
16367 * tree-ssa-reassoc.c (extract_bit_test_mask): Likewise.
16368 * tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
16369 (check_for_binary_op_overflow): Likewise.
16370 (search_for_addr_array): Likewise.
16371 * ubsan.c (ubsan_expand_objsize_ifn): Likewise.
16372
16373 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
16374
16375 * config/arc/arc.c (arc_preferred_simd_mode): Remove enum keyword.
16376 (arc_save_restore): Likewise.
16377 (arc_dwarf_register_span): Likewise.
16378 (arc_output_pic_addr_const): Initialize suffix variable.
16379
16380 2016-05-02 Martin Liska <mliska@suse.cz>
16381
16382 * symbol-summary.h (function_summary::function_summary):
16383 Remove checking assert for all cgraph nodes.
16384 (function_summary::get): Check summary_uid.
16385 (symtab_insertion): Check summary_uid.
16386
16387 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
16388
16389 * config/arc/arc-protos.h (compact_memory_operand_p): Declare.
16390 * config/arc/arc.c (arc_output_commutative_cond_exec): Consider
16391 bmaskn instruction.
16392 (arc_dwarf_register_span): Remove enum keyword.
16393 (compact_memory_operand_p): New function.
16394 * config/arc/arc.h (reg_class): Add code density register classes.
16395 (REG_CLASS_NAMES): Likewise.
16396 (REG_CLASS_CONTENTS): Likewise.
16397 * config/arc/arc.md (*movqi_insn): Add code density instructions.
16398 (*movhi_insn, *movsi_insn, *movsf_insn): Likewise.
16399 (*extendhisi2_i, andsi3_i, cmpsi_cc_insn_mixed): Likewise.
16400 (*cmpsi_cc_c_insn, *movsi_ne): Likewise.
16401 * config/arc/constraints.md (C2p, Uts, Cm1, Cm3, Ucd): New
16402 constraints.
16403 (h, Rcd, Rsd, Rzd): New register constraints.
16404 (T): Use compact_memory_operand_p function.
16405 * config/arc/predicates.md (compact_load_memory_operand): Remove.
16406
16407 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
16408
16409 * config/sh/sh.md (*negnegt, *movtt): Remove.
16410
16411 2016-05-02 Marek Polacek <polacek@redhat.com>
16412 Tom de Vries <tom@codesourcery.com>
16413
16414 PR tree-optimization/70700
16415 * tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids
16416 bigger than FIRST_REF_NODE.
16417
16418 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
16419
16420 PR target/52898
16421 * config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4,
16422 TARGET_CMPEQDI_T.
16423 (prepare_cbranch_operands): Don't use scratch register. Assume that
16424 function is used when pseudos can be created.
16425 (expand_cbranchdi4): Likewise. Remove unused TARGET_CMPEQDI_T paths.
16426 * config/sh/sh.md (cbranchsi4): Allow only when pseudos can be created.
16427 (cbranchdi4, cbranchdi4_i): Simplify to single cbranchdi4
16428 define_expand. Allow it only when pseudos can be created.
16429 * config/sh/sh.opt (mcbranchdi, mcmpeqdi): Delete.
16430
16431 2016-05-01 Uros Bizjak <ubizjak@gmail.com>
16432
16433 * config/i386/constraints.md (BC): Only allow -1 operands.
16434 * config/i386/sse.md (mov<mode>_internal): Add (v,C) alternative.
16435 Add "enabled" attribute. Update XI mode attribute calculation.
16436 * config/i386/i386.md (*movxi_internal_avx512f): Add (v,C) alternative.
16437 (*movoi_internal_avx): Update XI mode attribute calculation.
16438 (*movti_internal): Ditto.
16439
16440 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
16441
16442 * config/sh/sh.md (push, pop, ic_invalidate_line, cstoresi4, cstoredi4,
16443 cstoresf4, cstoredf4, fix_truncsfsi2): Remove constraints.
16444
16445 2016-05-01 Eric Botcazou <ebotcazou@adacore.com>
16446
16447 * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Do not use switch
16448 statement on instruction code. Remove trailing spaces.
16449 (altivec_expand_stv_builtin): Likewise.
16450
16451 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
16452
16453 * config/sh/sh.h (TARGET_SH4): Remove and use default implementation.
16454 (TARGET_FPU_DOUBLE): Simplify.
16455 (BASE_ARG_REG, DOUBLE_TYPE_SIZE, OPTIMIZE_MODE_SWITCHING): Replace
16456 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions with 'TARGET_FPU_DOUBLE'.
16457 * config/sh/sh.c: Replace 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions
16458 with 'TARGET_FPU_DOUBLE'.
16459 * config/sh/sh.md: Likewise.
16460
16461 2016-05-01 Yoshinori Sato <ysato@users.sourceforge.jp>
16462
16463 * config/sh/linux.h (SH_DIV_STRATEGY_DEFAULT,
16464 SH_DIV_STR_FOR_SIZE): Remove.
16465 * config/sh/netbsd-elf.h (SH_DIV_STRATEGY_DEFAULT,
16466 SH_DIV_STR_FOR_SIZE): Remove.
16467
16468 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
16469
16470 * config/sh/predicates.md (any_register_operand, zero_extend_operand,
16471 logical_reg_operand): Delete.
16472 (arith_operand, arith_reg_dest, arith_or_int_operand, cmpsi_operand,
16473 arith_reg_or_0_operand, arith_reg_or_0_or_1_operand, logical_operand,
16474 logical_and_operand, movsrc_no_disp_mem_operand): Rewrite using
16475 match_operand and match_test.
16476 (sh_const_vec, sh_1el_vec): Remove redundant checks. Declare local
16477 variables on their first use. Return bool values.
16478 * config/sh/sh.h (LOAD_EXTEND_OP): Update comment.
16479 * config/sh/sh.md (andsi3, iorsi3): Use arith_reg_dest for result and
16480 arith_reg_operand for input operand. Remove empty constraints.
16481 (xorsi3): Delete.
16482 (*xorsi3_compact): Rename to xorsi3.
16483 (zero_extend<mode>si2): Use arith_reg_operand for input operand.
16484 (*zero_extend<mode>si2_disp_mem): Update comment.
16485 (mov_nop): Delete.
16486
16487 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
16488
16489 * config/sh/t-sh: Remove SH5 support.
16490 * config.gcc: Likewise.
16491 * configure: Likewise.
16492
16493 2016-04-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16494
16495 * config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus.
16496
16497 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
16498
16499 * config/sh/sh.c (register_sh_passes, sh_option_override,
16500 sh_print_operand, prepare_move_operands,
16501 sh_can_follow_jump): Remove TARGET_SH1 checks.
16502 * config/sh/sh.h (TARGET_VARARGS_PRETEND_ARGS, VALID_REGISTER_P,
16503 PROMOTE_MODE): Likewise.
16504 * config/sh/sh.md (adddi3, addsi3, subdi3, subsi3, andsi3,
16505 movdi): Likewise.
16506
16507 2016-04-30 Alan Modra <amodra@gmail.com>
16508
16509 * config/rs6000/rs6000.c (rs6000_savres_strategy): Force inline
16510 restoring when fixed_reg_p, but allow out-of-line or stmw save.
16511 Check for user regs later to avoid unnecessary looping over regs.
16512 Merge user reg check with non-saved reg check. Don't force
16513 inline VR restore when static chain used.
16514 (rs6000_frame_related): Omit eh_frame info for user regs when
16515 saving.
16516 (fixed_regs_p): Delete.
16517
16518 2016-04-30 Alan Modra <amodra@gmail.com>
16519
16520 * config/rs6000/rs6000.c (SAVRES_MULTIPLE): Replace with..
16521 (SAVE_STRATEGY, REST_STRATEGY): ..this. Renumber and sort enum.
16522 Update all uses.
16523
16524 2016-04-30 Alan Modra <amodra@gmail.com>
16525
16526 PR target/69645
16527 * config/rs6000/rs6000.c (fixed_reg_p): New function.
16528 (fixed_regs_p): Rename from global_regs_p. Call fixed_reg_p.
16529 Update all uses.
16530
16531 2016-04-30 Alan Modra <amodra@gmail.com>
16532
16533 * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
16534 Remove redundant PIC_OFFSET_TABLE_REGNUM test. Replace with
16535 flag_pic test for Darwin.
16536
16537 2016-04-30 Alan Modra <amodra@gmail.com>
16538
16539 * regs.h (struct reg_info_t): Delete freq_calls_crossed and
16540 throw_calls_crossed.
16541 (REG_FREQ_CALLS_CROSSED): Delete.
16542 (REG_N_THROWING_CALLS_CROSSED): Delete.
16543 * regstat.c (regstat_bb_compute_ri): Don't calculate
16544 REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED.
16545 (dump_reg_info): Don't print call cross frequency.
16546 * ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED
16547 and REG_N_THROWING_CALLS_CROSSED.
16548
16549 2016-04-30 Alan Modra <amodra@gmail.com>
16550
16551 * regs.h (struct reg_info_t): Delete live_length.
16552 (REG_LIVE_LENGTH): Delete macro.
16553 * regstat.c (regstat_bb_compute_ri): Delete artificial_uses,
16554 local_live, local_processed and local_live_last_luid params.
16555 Replace bb_index param with bb. Don't set REG_LIVE_LENGTH.
16556 Formatting fixes.
16557 (regstat_compute_ri): Adjust for above. Don't set
16558 REG_LIVE_LENGTH.
16559 (dump_reg_info): Don't print live length.
16560 * ira.c (update_equiv_regs): Replace test of REG_LIVE_LENGTH
16561 with test of setjmp_crosses. Don't set REG_LIVE_LENGTH.
16562 Localize loop_depth var.
16563
16564 2016-04-30 Alan Modra <amodra@gmail.com>
16565
16566 * ira.c (enum valid_equiv): New.
16567 (validate_equiv_mem): Return enum.
16568 (update_equiv_mem): Create replacement in more cases.
16569 (add_store_equivs): Update validate_equiv_mem call.
16570
16571 2016-04-30 Alan Modra <amodra@gmail.com>
16572
16573 * ira.c (combine_and_move_insns): Rather than scanning insns,
16574 use DF infrastucture to find use and def insns.
16575
16576 2016-04-30 Alan Modra <amodra@gmail.com>
16577
16578 ira.c (combine_and_move_insns): Move invariant conditions..
16579 (ira.c): ..to here. Call combine_and_move_insns before
16580 add_store_equivs. Call grow_reg_equivs later. Allocate
16581 req_equiv later using max_reg_num() rather than global max_regno.
16582 (contains_replace_regs): Delete.
16583 (add_store_equivs): Remove contains_replace_regs test.
16584
16585 2016-04-30 Alan Modra <amodra@gmail.com>
16586
16587 * ira.c (struct equiv_mem_data): New.
16588 (equiv_mem, equiv_mem_modified): Delete static vars.
16589 (validate_equiv_mem_from_store): Use "data" param to communicate..
16590 (validate_equiv_mem): ..from here.
16591
16592 2016-04-30 Alan Modra <amodra@gmail.com>
16593
16594 * ira.c (add_store_equivs, combine_and_move_insns): New functions,
16595 split out from..
16596 (update_reg_equivs): ..here. Move allocation and freeing of
16597 reg_equiv, and calls to grow_reg_equivs, init_alias_analysis,
16598 end_alias_analysis to..
16599 (ira): ..here.
16600
16601 2016-04-30 Alan Modra <amodra@gmail.com>
16602
16603 * ira.c (pdx_subregs): Delete.
16604 (struct equivalence): Add pdx_subregs field.
16605 (set_paradoxical_subreg): Remove pdx_subregs param. Update
16606 pdx_subregs access.
16607 (update_equiv_regs): Don't create or free pdx_subregs. Update
16608 pdx_subregs access.
16609
16610 2016-04-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16611
16612 * config/rs6000/altivec.h: Change definitions of vec_xl and
16613 vec_xst.
16614 * config/rs6000/rs6000-builtin.def (LD_ELEMREV_V2DF): New.
16615 (LD_ELEMREV_V2DI): New.
16616 (LD_ELEMREV_V4SF): New.
16617 (LD_ELEMREV_V4SI): New.
16618 (LD_ELEMREV_V8HI): New.
16619 (LD_ELEMREV_V16QI): New.
16620 (ST_ELEMREV_V2DF): New.
16621 (ST_ELEMREV_V2DI): New.
16622 (ST_ELEMREV_V4SF): New.
16623 (ST_ELEMREV_V4SI): New.
16624 (ST_ELEMREV_V8HI): New.
16625 (ST_ELEMREV_V16QI): New.
16626 (XL): New.
16627 (XST): New.
16628 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
16629 descriptions for VSX_BUILTIN_VEC_XL and VSX_BUILTIN_VEC_XST.
16630 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Map from
16631 TARGET_P9_VECTOR to RS6000_BTM_P9_VECTOR.
16632 (altivec_expand_builtin): Add handling for
16633 VSX_BUILTIN_ST_ELEMREV_<MODE> and VSX_BUILTIN_LD_ELEMREV_<MODE>.
16634 (rs6000_invalid_builtin): Add error-checking for
16635 RS6000_BTM_P9_VECTOR.
16636 (altivec_init_builtins): Define builtins used to implement vec_xl
16637 and vec_xst.
16638 (rs6000_builtin_mask_names): Define power9-vector.
16639 * config/rs6000/rs6000.h (MASK_P9_VECTOR): Define.
16640 (RS6000_BTM_P9_VECTOR): Define.
16641 (RS6000_BTM_COMMON): Include RS6000_BTM_P9_VECTOR.
16642 * config/rs6000/vsx.md (vsx_ld_elemrev_v2di): New define_insn.
16643 (vsx_ld_elemrev_v2df): Likewise.
16644 (vsx_ld_elemrev_v4sf): Likewise.
16645 (vsx_ld_elemrev_v4si): Likewise.
16646 (vsx_ld_elemrev_v8hi): Likewise.
16647 (vsx_ld_elemrev_v16qi): Likewise.
16648 (vsx_st_elemrev_v2df): Likewise.
16649 (vsx_st_elemrev_v2di): Likewise.
16650 (vsx_st_elemrev_v4sf): Likewise.
16651 (vsx_st_elemrev_v4si): Likewise.
16652 (vsx_st_elemrev_v8hi): Likewise.
16653 (vsx_st_elemrev_v16qi): Likewise.
16654 * doc/extend.texi: Add prototypes for vec_xl and vec_xst. Correct
16655 grammar.
16656
16657 2016-04-29 Patrick Palka <ppalka@gcc.gnu.org>
16658
16659 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Split
16660 out into ...
16661 (simplify_control_stmt_condition_1): ... here. Recurse into
16662 BIT_AND_EXPRs and BIT_IOR_EXPRs.
16663
16664 2016-04-29 David Edelsohn <dje.gcc@gmail.com>
16665
16666 PR target/69810
16667 * config/rs6000/rs6000.md (EXTQI): Don't allow extension to HImode.
16668 (zero_extendqi<mode>2_dot): Revert earlier conversion from
16669 define_insn_and_split to define_insn.
16670 (zero_extendqi<mode>2_dot2): Same.
16671 (extendqi<mode>2_dot): Same.
16672 (extendqi<mode>2_dot2): Same.
16673
16674 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
16675
16676 * config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK.
16677 (probe_stack): New expander.
16678 (probe_stack_<mode>): New insn pattern.
16679
16680 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
16681
16682 * config/i386/i386.md
16683 (operations with memory inputs setting flags peephole2):
16684 Remove uneeded REG_P checks. Cleanup pattern generation.
16685
16686 2016-04-29 Ilya Enkovich <ilya.enkovich@intel.com>
16687
16688 * tree-vect-loop.c (vect_transform_loop): Fix
16689 nb_iterations_upper_bound computation for vectorized loop.
16690
16691 2016-04-29 Marek Polacek <polacek@redhat.com>
16692 Jakub Jelinek <jakub@redhat.com>
16693
16694 PR sanitizer/70342
16695 * fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
16696 TARGET_EXPR_SLOT as a base.
16697
16698 2016-04-29 Andrew Burgess <andrew.burgess@embecosm.com>
16699
16700 * config/arc/arc.md (*loadqi_update): Replace use of 'rI' constraint
16701 with 'rCm2' constraints to limit possible immediate size.
16702 (*load_zeroextendqisi_update): Likewise.
16703 (*load_signextendqisi_update): Likewise.
16704 (*loadhi_update): Likewise.
16705 (*load_zeroextendhisi_update): Likewise.
16706 (*load_signextendhisi_update): Likewise.
16707 (*loadsi_update): Likewise.
16708 (*loadsf_update): Likewise.
16709
16710 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
16711
16712 * config/i386/predicates.md (constm1_operand): Fix comparison.
16713
16714 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
16715
16716 * testsuite/gcc.target/arc/ieee_eq.c: New test.
16717
16718 2016-04-29 Oleg Endo <olegendo@gcc.gnu.org>
16719
16720 * common/config/sh/sh-common.c (sh_option_optimization_table): Remove
16721 remaining SH5 related settings.
16722 * config/sh/sh-protos.h (shmedia_cleanup_truncate,
16723 shmedia_prepare_call_address): Delete.
16724 * config/sh/sh.c (sh_print_operand, output_stack_adjust,
16725 DWARF_CIE_DATA_ALIGNMENT, LOCAL_ALIGNMENT): Update comments.
16726 * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC,
16727 UNSUPPORTED_SH2A): Remove m5 checks.
16728 (sh_divide_strategy_e): Remove SH5 division strategies.
16729 (TARGET_PTRMEMFUNC_VBIT_LOCATION): Remove and use default.
16730 * config/sh/sh.md (divsf3): Reinstate define_expand pattern.
16731
16732 2016-04-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
16733
16734 * config/s390/s390.c (s390_rtx_costs): Update documentation.
16735
16736 2016-04-29 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16737
16738 * config/s390/2964.md ("z13_unit_fxu", "z13_0"): Remove lder.
16739 * config/s390/s390.md ("movsi_larl", "*movsi_esa", "mov<mode>"):
16740 Change lder to ldr.
16741 * config/s390/vector.md ("mov<mode>"): Likewise.
16742
16743 2016-04-29 Ulrich Weigand <uweigand@de.ibm.com>
16744
16745 * config/s390/constraints.md ("U", "W"): Invoke
16746 s390_mem_constraint with "ZR" and "ZT".
16747 * config/s390/s390.c (s390_check_qrst_address): Reject invalid
16748 addresses when using LRA. Accept also short displacements for S
16749 and T constraints. Do not check for long displacement target for
16750 S and T constraints.
16751 (s390_mem_constraint): Remove handling of U and W constraints.
16752 * config/s390/s390.md (various patterns): Remove the short
16753 displacement constraints (Q and R) if a long displacement
16754 constraint is present. Add longdisp as required CPU capability.
16755 * config/s390/vector.md: Likewise.
16756 * config/s390/vx-builtins.md: Likewise.
16757
16758 2016-04-29 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
16759
16760 PR target/60040
16761 * reload1.c (reload): Call finish_spills before
16762 restarting reload loop. Skip select_reload_regs
16763 if update_eliminables_and_spill returns true.
16764
16765 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
16766
16767 * config/arc/arc.h (UNSIGNED_INT12, UNSIGNED_INT16): Define.
16768 * config/arc/arc.md (umulhisi3): Use arc_short_operand predicate.
16769 (umulhisi3_imm): Update predicates and constraint letters.
16770 (umulhisi3_reg): Declare instruction as commutative.
16771 * config/arc/constraints.md (J12, J16): New constraints.
16772 * config/arc/predicates.md (short_unsigned_const_operand): New
16773 predicate.
16774 (arc_short_operand): Likewise.
16775 * testsuite/gcc.target/arc/umulsihi3_z.c: New file.
16776
16777 2016-04-29 Richard Biener <rguenther@suse.de>
16778
16779 PR tree-optimization/13962
16780 PR tree-optimization/65686
16781 * tree-ssa-alias.h (ptrs_compare_unequal): Declare.
16782 * tree-ssa-alias.c (ptrs_compare_unequal): New function
16783 using PTA to compare pointers.
16784 * match.pd: Add pattern for pointer equality compare simplification
16785 using ptrs_compare_unequal.
16786
16787 2016-04-29 Richard Biener <rguenther@suse.de>
16788
16789 * stor-layout.c (layout_type): Do not build a pointer-to-element
16790 type for arrays.
16791
16792 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
16793
16794 * config/i386/i386.md (Load+RegOp to Mov+MemOp peephole2):
16795 Use SWI mode iterator. Use general_reg_operand predicate.
16796 (Load+RegOp to Mov+MemOp peephole2 with vector regs): Split
16797 peephole to MMX and SSE part. Use mmx_reg_operand and sse_reg_operand
16798 predicates.
16799
16800 2016-04-29 Jakub Jelinek <jakub@redhat.com>
16801
16802 PR middle-end/70843
16803 * fold-const.c (operand_equal_p): Don't verify hash value equality
16804 if arg0 == arg1.
16805 * tree.c (inchash::add_expr): Handle STATEMENT_LIST. Ignore BLOCK
16806 and OMP_CLAUSE.
16807
16808 2016-04-28 Jakub Jelinek <jakub@redhat.com>
16809
16810 PR target/70858
16811 * config/i386/i386.c (bdesc_special_args): Add | OPTION_MASK_ISA_64BIT
16812 to __builtin_ia32_lwpval64 and __builtin_ia32_lwpins64.
16813 (bdesc_args): Add | OPTION_MASK_ISA_64BIT to __builtin_ia32_bextr_u64,
16814 __builtin_ia32_bextri_u64, __builtin_ia32_bzhi_di,
16815 __builtin_ia32_pdep_di and __builtin_ia32_pext_di.
16816
16817 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
16818
16819 * config/rs6000/rs6000.c (compute_save_world_info): Rename info_ptr
16820 to info. Don't initialize separate fields to 0. Clean up
16821 formatting a bit.
16822
16823 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
16824
16825 * config/i386/i386.md (peephole2s for operations with memory inputs):
16826 Use SWI mode iterator.
16827 (peephole2s for operations with memory outputs): Ditto.
16828 Do not check for stack checking probe.
16829
16830 (probe_stack): Remove expander.
16831
16832 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
16833 Andrew Burgess <andrew.burgess@embecosm.com>
16834
16835 * config/arc/arc.c (arc_print_operand): Print integer 'H' / 'L'
16836 operands as 32-bits.
16837
16838 2016-04-28 Jason Merrill <jason@redhat.com>
16839
16840 * gdbinit.in: Skip line-map.h.
16841
16842 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
16843 Andrew Burgess <andrew.burgess@embecosm.com>
16844
16845 * config/arc/arc.c (arc_conditional_register_usage): Take
16846 TARGET_RRQ_CLASS into account.
16847 (arc_print_operand): Support printing 'p' and 's' operands.
16848 * config/arc/arc.h (TARGET_NPS_BITOPS_DEFAULT): Provide default
16849 as 0.
16850 (TARGET_RRQ_CLASS): Define.
16851 (IS_POWEROF2_OR_0_P): Define.
16852 * config/arc/arc.md (*movsi_insn): Add w/Clo, w/Chi, and w/Cbi
16853 alternatives.
16854 (*tst_movb): New define_insn.
16855 (*tst): Avoid recognition if it could prevent '*tst_movb'
16856 combination; replace c/CnL with c/Chs alternative.
16857 (*tst_bitfield_tst): New define_insn.
16858 (*tst_bitfield_asr): New define_insn.
16859 (*tst_bitfield): New define_insn.
16860 (andsi3_i): Add Rrq variant.
16861 (extzv): New define_expand.
16862 (insv): New define_expand.
16863 (*insv_i): New define_insn.
16864 (*movb): New define_insn.
16865 (*movb_signed): New define_insn.
16866 (*movb_high): New define_insn.
16867 (*movb_high_signed): New define_insn.
16868 (*movb_high_signed + 1): New define_split pattern.
16869 (*mrgb): New define_insn.
16870 (*mrgb + 1): New define_peephole2 pattern.
16871 (*mrgb + 2): New define_peephole2 pattern.
16872 * config/arc/arc.opt (mbitops): New option for nps400, uses
16873 TARGET_NPS_BITOPS_DEFAULT.
16874 * config/arc/constraints.md (q): Make register class conditional.
16875 (Rrq): New register constraint.
16876 (Chs): New constraint.
16877 (Clo): New constraint.
16878 (Chi): New constraint.
16879 (Cbf): New constraint.
16880 (Cbn): New constraint.
16881 (C18): New constraint.
16882 (Cbi): New constraint.
16883
16884 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
16885
16886 * cfganal.c (bitmap_intersection_of_succs): Delete assert checking
16887 dst->popcount.
16888 (bitmap_intersection_of_preds): Ditto.
16889 (bitmap_union_of_succs): Ditto.
16890 (bitmap_union_of_preds): Ditto.
16891 * sbitmap.c (do_popcount): Delete.
16892 (BITMAP_DEBUGGING): Delete.
16893 (sbitmap_verify_popcount): Delete.
16894 (sbitmap_alloc): Don't initialize the popcount field.
16895 (sbitmap_alloc_with_popcount): Delete.
16896 (sbitmap_resize): Don't resize the popcount array.
16897 (sbitmap_vector_alloc): Don't initialize the popcount field.
16898 (bitmap_copy): Don't copy the popcount array.
16899 (bitmap_clear): Don't clear the popcount array.
16900 (bitmap_clear): Delete the popcount array handling.
16901 (bitmap_ior_and_compl): Delete the popcount assert.
16902 (bitmap_not): Ditto.
16903 (bitmap_and_compl): Ditto.
16904 (bitmap_and): Delete the popcount array handling.
16905 (bitmap_xor): Ditto.
16906 (bitmap_ior): Ditto.
16907 (bitmap_or_and): Delete the popcount assert.
16908 (bitmap_and_or): Ditto.
16909 (popcount_table): Delete.
16910 (sbitmap_elt_popcount): Delete.
16911 * sbitmap.h (simple_bitmap_def): Delete the popcount field.
16912 (bitmap_set_bit): Delete the popcount assert.
16913 (bitmap_clear_bit): Ditto.
16914 (sbitmap_free): Don't free the popcount array.
16915 (sbitmap_alloc_with_popcount): Delete declaration.
16916 (sbitmap_popcount): Ditto.
16917
16918 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
16919 Andrew Burgess <andrew.burgess@embecosm.com>
16920
16921 * config/arc/arc.h (SYMBOL_FLAG_CMEM): Define.
16922 (TARGET_NPS_CMEM_DEFAULT): Provide default definition.
16923 * config/arc/arc.c (arc_address_cost): Return 0 for cmem_address.
16924 (arc_encode_section_info): Set SYMBOL_FLAG_CMEM where indicated.
16925 * config/arc/arc.opt (mcmem): New option.
16926 * config/arc/arc.md (*extendqihi2_i): Add r/Uex alternative,
16927 supply length for r/m alternative.
16928 (*extendqisi2_ac): Likewise.
16929 (*extendhisi2_i): Add r/Uex alternative, supply length for r/m and
16930 r/Uex alternative.
16931 (movqi_insn): Add r/Ucm and Ucm/?Rac alternatives.
16932 (movhi_insn): Likewise.
16933 (movsi_insn): Add r/Ucm,Ucm/w alternatives.
16934 (*zero_extendqihi2_i): Add r/Ucm alternative.
16935 (*zero_extendqisi2_ac): Likewise.
16936 (*zero_extendhisi2_i): Likewise.
16937 * config/arc/constraints.md (Uex): New memory constraint.
16938 (Ucm): New define_constraint.
16939 * config/arc/predicates.md (long_immediate_loadstore_operand):
16940 Return 0 for MEM with cmem_address address.
16941 (cmem_address_0): New predicates.
16942 (cmem_address_1): Likewise.
16943 (cmem_address_2): Likewise.
16944 (cmem_address): Likewise.
16945
16946 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
16947
16948 * config/rs6000/rs6000.c (machine_function): Rename
16949 insn_chain_scanned_p to spe_insn_chain_scanned_p.
16950 (rs6000_stack_info): Adjust.
16951
16952 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
16953 Andrew Burgess <andrew.burgess@embecosm.com>
16954
16955 * config/arc/constraints.md (Usd): Convert to define_constraint.
16956 (Us<): Likewise.
16957 (Us>): Likewise.
16958
16959 2016-04-28 Jakub Jelinek <jakub@redhat.com>
16960
16961 PR target/70821
16962 * config/i386/sync.md (define_peephole2 *atomic_fetch_add_cmp<mode>):
16963 Add new peephole2 where the first insn is *mov<mode>_or instead of
16964 *mov<mode>_internal.
16965
16966 2016-04-28 Segher Boesssenkool <segher@kernel.crashing.org>
16967
16968 * tracer.c (bb_seen): Make static.
16969
16970 2016-04-28 Andrew Burgess <andrew.burgess@embecosm.com>
16971
16972 * common/config/arc/arc-common.c (arc_handle_option): Add NPS400
16973 support, setup defaults.
16974 * config/arc/arc-opts.h (enum processor_type): Add NPS400.
16975 * config/arc/arc.c (arc_init): Add NPS400 support.
16976 * config/arc/arc.h (CPP_SPEC): Add NPS400 defines.
16977 (TARGET_ARC700): NPS400 is also an ARC700.
16978 * config/arc/arc.opt: Add NPS400 options to -mcpu=.
16979
16980 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
16981
16982 PR target/70668
16983 * config/nds32/nds32.md (casesi): Don't access the operands array
16984 out of bounds.
16985
16986 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
16987
16988 * config/i386/i386.md (zeroing peephole2): Use general_reg_operand.
16989 (or $-1,reg peephole2): Ditto.
16990 (strict_low_part zeroing peephole2): Use SWI12 mode iterator.
16991
16992 2016-04-28 Markus Trippelsdorf <markus@trippelsdorf.de>
16993
16994 * doc/extend.texi (Common Function Attributes) [optimize]:
16995 Discourage use of the optimize attribute.
16996
16997 2016-04-28 Bill Seurer <seurer@linux.vnet.ibm.com>
16998
16999 * config/rs6000/rs6000-builtin.def (vec_adde): Change vec_adde to a
17000 special case builtin.
17001 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
17002 ALTIVEC_BUILTIN_VEC_ADDE.
17003 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
17004 support for ALTIVEC_BUILTIN_VEC_ADDE.
17005 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
17006 for __builtin_vec_adde.
17007
17008 2016-04-28 Jakub Jelinek <jakub@redhat.com>
17009
17010 * config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
17011 * config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise.
17012
17013 2016-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17014
17015 PR testsuite/70595
17016 * doc/sourcebuild.texi (Effective-Target Keywords, Other
17017 attributes): Document cilkplus_runtime.
17018
17019 2016-04-28 Martin Jambor <mjambor@suse.cz>
17020
17021 * tree-cfg.c (verify_expr): Verify that local declarations belong to
17022 this function. Call verify_expr on MEM_REFs and bases of other
17023 handled_components.
17024
17025 2016-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17026
17027 * internal-fn.c (expand_arith_overflow): Convert preprocessor check
17028 for WORD_REGISTER_OPERATIONS to runtime check.
17029
17030 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
17031
17032 * config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.
17033
17034 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
17035
17036 * config/arc/arc.c (arc_process_double_reg_moves): Fix for
17037 big-endian compilation.
17038 * config/arc/arc.md (addf3): Likewise.
17039 (subdf3): Likewise.
17040 (muldf3): Likewise.
17041
17042 2016-04-28 Richard Biener <rguenther@suse.de>
17043
17044 PR tree-optimization/70840
17045 * match.pd: powi(-x, y) and powi(|x|,y) -> powi(x,y) if y is even;
17046 Fix pow(copysign(x, y), z) -> pow(x, z) and add powi variant;
17047 Mark x * pow(x,c) -> pow(x,c+1) commutative.
17048 Add powi(x,y) * powi(z,y) -> powi(x*z,y).
17049
17050 2015-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17051
17052 * config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
17053 and explain why in a comment.
17054
17055 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
17056
17057 * config/arc/arc.md (cpu_facility): Add fpx variant.
17058 (subdf3): Prohibit use reverse sub when assist operations option
17059 is enabled.
17060 * config/arc/fpx.md (subdf3_insn, *dsubh_peep2_insn): Allow drsub
17061 instructions only when FPX is enabled.
17062 * testsuite/gcc.target/arc/trsub.c: New test.
17063
17064 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
17065
17066 * config/i386/i386.md (*fop_<mode>_1_mixed): Do not check for
17067 mult_operator when calculating "type" attribute.
17068 (*fop_<mode>_1_i387): Ditto.
17069 (*fop_xf_1_i387): Ditto.
17070 (x87 stack loads peephole2): Add "reg = op (mem, reg)" peephole2.
17071 Use std::swap to swap operands. Use RTL expressions to generate
17072 converted pattern.
17073
17074 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
17075 Joern Rennecke <joern.rennecke@embecosm.com>
17076
17077 * config/arc/arc-protos.h (arc_legitimize_pic_address): Remove
17078 declaration.
17079 (emit_pic_move): Remove.
17080 (arc_eh_uses, insn_is_tls_gd_dispatch): Declare.
17081 * config/arc/arc.c (emit_pic_move): Removed.
17082 (TARGET_HAVE_TLS): Define.
17083 (arc_conditional_register_usage): Test for arc_tp_regno.
17084 (arc_print_operand, arc_print_operand_address): Handle TLS
17085 unspecs.
17086 (arc_needs_pcl_p): New function.
17087 (arc_legitimate_pc_offset_p): Use arc_needs_pcl_p.
17088 (arc_legitimate_pic_addr_p): Handle TLS unspecs.
17089 (arc_raw_symbolic_reference_mentioned_p): Likewise.
17090 (arc_get_tp, arc_emit_call_tls_get_addr): New function.
17091 (arc_legitimize_tls_address): Likewise.
17092 (DTPOFF_ZERO_SYM): Define.
17093 (arc_legitimize_pic_address): Make it static, handle TLS cases.
17094 (arc_output_pic_addr_const): Print TLS unspecs.
17095 (prepare_pic_move): New function, replaces emit_pic_move.
17096 (arc_legitimate_constant_p): Handle TLS unspecs.
17097 (arc_legitimate_address_p): Likewise.
17098 (arc_rewrite_small_data_p): Use assert for TLS constants.
17099 (prepare_move_operands): Use prepare_pic_move.
17100 (arc_legitimize_address): Legitimize tls addresses.
17101 (arc_epilogue_uses): Check for arc_tp_regno.
17102 (arc_eh_uses, insn_is_tls_gd_dispatch): New function.
17103 * config/arc/arc.h [DEFAULT_LIBC != LIBC_UCLIBC] (EXTRA_SPECS):
17104 Define.
17105 [DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC):
17106 Likewise.
17107 [DEFAULT_LIBC != LIBC_UCLIBC] (STARTFILE_SPEC): Add
17108 %(arc_tls_extra_start_spec).
17109 (TARGET_CPU_CPP_BUILTINS): Define __ARC_TLS_REGNO__.
17110 (REGNO_OK_FOR_BASE_P): Check for arc_tp_regno.
17111 (EH_USES): Define.
17112 (INSN_REFERENCES_ARE_DELAYED): Use insn_is_tls_gd_dispatch.
17113 * config/arc/arc.md (UNSPEC_TLS_GD, UNSPEC_TLS_LD, UNSPEC_TLS_IE)
17114 (UNSPEC_TLS_OFF): Add.
17115 (R10_REG): Define.
17116 (tls_load_tp_soft, tls_gd_load, tls_gd_get_addr, tls_gd_dispatch)
17117 (get_thread_pointersi): New patterns.
17118 * config/arc/arc.opt (mtp-regno): New option.
17119 * config/arc/predicates.md (move_src_operand): Handle TLS symbols.
17120 (move_dest_operand): Likewise.
17121 * configure: Regenerate.
17122 * configure.ac: Add arc*-*-* case to test for tls.
17123 * doc/invoke.texi (ARC options): Document mtp-regno.
17124
17125 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
17126
17127 * config/arc/arc.c (arc_vector_mode_supported_p): Add support for
17128 the new ARC HS SIMD instructions.
17129 (arc_preferred_simd_mode): New function.
17130 (arc_autovectorize_vector_sizes): Likewise.
17131 (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
17132 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
17133 (arc_init_reg_tables): Accept new ARC HS SIMD modes.
17134 (arc_init_builtins): Add new SIMD builtin types.
17135 (arc_split_move): Handle 64 bit vector moves.
17136 * config/arc/arc.h (TARGET_PLUS_DMPY, TARGET_PLUS_MACD)
17137 (TARGET_PLUS_QMACW): Define.
17138 * config/arc/builtins.def (QMACH, QMACHU, QMPYH, QMPYHU, DMACH)
17139 (DMACHU, DMPYH, DMPYHU, DMACWH, DMACWHU, VMAC2H, VMAC2HU, VMPY2H)
17140 (VMPY2HU, VADDSUB2H, VSUBADD2H, VADDSUB, VSUBADD, VADDSUB4H)
17141 (VSUBADD4H): New builtins.
17142 * config/arc/simdext.md: Add new ARC HS SIMD instructions.
17143 * testsuite/gcc.target/arc/builtin_simdarc.c: New file.
17144
17145 2016-04-28 Eduard Sanou <dhole@openmailbox.org>
17146 Matthias Klose <doko@debian.org>
17147
17148 * doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable.
17149
17150 2016-04-28 Richard Biener <rguenther@suse.de>
17151
17152 PR middle-end/70777
17153 * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
17154 canonicalization.
17155
17156 2016-04-28 Oleg Endo <olegendo@gcc.gnu.org>
17157
17158 * common/config/sh/sh-common.c: Remove SH5 support.
17159 * config/sh/constraints.md: Likewise.
17160 * config/sh/config/sh/elf.h: Likewise.
17161 * config/sh/linux.h: Likewise.
17162 * config/sh/netbsd-elf.h: Likewise.
17163 * config/sh/predicates.md: Likewise.
17164 * config/sh/sh-c.c: Likewise.
17165 * config/sh/sh-protos.h: Likewise.
17166 * config/sh/sh.c: Likewise.
17167 * config/sh/sh.h: Likewise.
17168 * config/sh/sh.md: Likewise.
17169 * config/sh/sh.opt: Likewise.
17170 * config/sh/sync.md: Likewise.
17171 * config/sh/sh64.h: Delete.
17172 * config/sh/shmedia.h: Likewise.
17173 * config/sh/shmedia.md: Likewise.
17174 * config/sh/sshmedia.h: Likewise.
17175 * config/sh/t-netbsd-sh5-64: Likewise.
17176 * config/sh/t-sh64: Likewise.
17177 * config/sh/ushmedia.h: Likewise.
17178
17179 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
17180
17181 * config/i386/i386.md (sign_extend to memory peephole2s): Use
17182 general_reg_operand instead of register_operand predicate.
17183
17184 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
17185
17186 * params.def (MIN_PARTITION_SIZE): Set default value to 10000.
17187
17188 2016-04-27 Marc Glisse <marc.glisse@inria.fr>
17189
17190 * match.pd (A - B > A, A + B < A): New transformations.
17191
17192 2016-04-27 Patrick Palka <ppalka@gcc.gnu.org>
17193
17194 * genattrtab.c (write_test_expr): New parameter EMIT_PARENS
17195 which defaults to true. Emit an outer pair of parentheses only if
17196 EMIT_PARENS. When continuing a chain of && or || (or & or |),
17197 don't emit parentheses for the right-hand operand.
17198
17199 2016-04-27 Jeff Law <law@redhat.com>
17200
17201 * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.
17202
17203 2016-04-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17204
17205 * config/rs6000/altivec.md (altivec_lvx_<mode>): Remove.
17206 (altivec_lvx_<mode>_internal): Document.
17207 (altivec_lvx_<mode>_2op): New define_insn.
17208 (altivec_lvx_<mode>_1op): Likewise.
17209 (altivec_lvx_<mode>_2op_si): Likewise.
17210 (altivec_lvx_<mode>_1op_si): Likewise.
17211 (altivec_stvx_<mode>): Remove.
17212 (altivec_stvx_<mode>_internal): Document.
17213 (altivec_stvx_<mode>_2op): New define_insn.
17214 (altivec_stvx_<mode>_1op): Likewise.
17215 (altivec_stvx_<mode>_2op_si): Likewise.
17216 (altivec_stvx_<mode>_1op_si): Likewise.
17217 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
17218 Expand vec_ld and vec_st during parsing.
17219 * config/rs6000/rs6000.c (altivec_expand_lvx_be): Commentary
17220 changes.
17221 (altivec_expand_stvx_be): Likewise.
17222 (altivec_expand_lv_builtin): Expand lvx built-ins to expose the
17223 address-masking behavior in RTL.
17224 (altivec_expand_stv_builtin): Expand stvx built-ins to expose the
17225 address-masking behavior in RTL.
17226 (altivec_expand_builtin): Change builtin code arguments for calls
17227 to altivec_expand_stv_builtin and altivec_expand_lv_builtin.
17228 (insn_is_swappable_p): Avoid incorrect swap optimization in the
17229 presence of lvx/stvx patterns.
17230 (alignment_with_canonical_addr): New function.
17231 (alignment_mask): Likewise.
17232 (find_alignment_op): Likewise.
17233 (recombine_lvx_pattern): Likewise.
17234 (recombine_stvx_pattern): Likewise.
17235 (recombine_lvx_stvx_patterns): Likewise.
17236 (rs6000_analyze_swaps): Perform a pre-pass to recognize lvx and
17237 stvx patterns from expand.
17238 * config/rs6000/vector.md (vector_altivec_load_<mode>): Use new
17239 expansions.
17240 (vector_altivec_store_<mode>): Likewise.
17241
17242 2016-04-26 Evandro Menezes <e.menezes@samsung.com>
17243
17244 * config/aarch64/aarch64.md
17245 (*movhf_aarch64): Add "movi %0, #0" to zero up register and
17246 remove the "fp" attributes.
17247 (*movsf_aarch64): Add "movi %0, #0" to zero up register and
17248 add the "simd" attributes.
17249 (*movdf_aarch64): Likewise.
17250 (*movtf_aarch64): Remove the "fp" attributes.
17251 * testsuite/gcc.target/aarch64/fmovf-zero-reg.c: Update accordingly.
17252 * testsuite/gcc.target/aarch64/fmovd-zero-reg.c: Likewise.
17253
17254 2016-04-27 David Malcolm <dmalcolm@redhat.com>
17255
17256 * emit-rtl.c (maybe_set_first_label_num): Strengthen param from
17257 rtx to rtx_code_label *.
17258 * rtl.h (maybe_set_first_label_num): Likewise.
17259
17260 2016-04-27 David Malcolm <dmalcolm@redhat.com>
17261
17262 * df-core.c (df_add_problem): Make the problem param be const.
17263 (df_remove_problem): Make local "problem" be const.
17264 * df-problems.c (problem_RD): Make const.
17265 (problem_LR): Likewise.
17266 (problem_LIVE): Likewise.
17267 (problem_MIR): Likewise.
17268 (problem_CHAIN): Likewise.
17269 (problem_WORD_LR): Likewise.
17270 (problem_NOTE): Likewise.
17271 (problem_MD): Likewise.
17272 * df-scan.c (problem_SCAN): Likewise.
17273 * df.h (struct df_problem): Make field "dependent_problem" be
17274 const.
17275 (struct dataflow): Likewise for field "problem".
17276 (df_add_problem): Make param const.
17277
17278 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
17279
17280 * config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when
17281 inter-unit moves to/from vector registers are enabled. Do not disable
17282 for TARGET_MMX.
17283
17284 2016-04-27 David Malcolm <dmalcolm@redhat.com>
17285
17286 * df.h (DF_SCAN, DF_LR, DF_LIVE, DF_RD, DF_CHAIN, DF_WORD_LR,
17287 DF_NOTE, DF_MD, DF_MIR, DF_LAST_PROBLEM_PLUS1): Convert from
17288 #define to...
17289 (enum df_problem_id): ...this new enum.
17290 (struct df_problem): Convert field "id" from "int" to
17291 enum df_problem_id.
17292
17293 2016-04-27 David Malcolm <dmalcolm@redhat.com>
17294
17295 * rtl.def: Update comment for "things in the instruction chain" to
17296 reflect the removal of the leading "i" field for INSN_UID in
17297 r210360. Fix bogus apostrophe.
17298
17299 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
17300
17301 * config/i386/i386.md
17302 (lea arith with mem operand + setcc peephole2): Set operator mode.
17303
17304 2016-04-27 H.J. Lu <hongjiu.lu@intel.com>
17305
17306 PR target/70155
17307 * config/i386/i386.c (scalar_to_vector_candidate_p): Renamed to ...
17308 (dimode_scalar_to_vector_candidate_p): This.
17309 (timode_scalar_to_vector_candidate_p): New function.
17310 (scalar_to_vector_candidate_p): Likewise.
17311 (timode_check_non_convertible_regs): Likewise.
17312 (timode_remove_non_convertible_regs): Likewise.
17313 (remove_non_convertible_regs): Likewise.
17314 (remove_non_convertible_regs): Renamed to ...
17315 (dimode_remove_non_convertible_regs): This.
17316 (scalar_chain::~scalar_chain): Make it virtual.
17317 (scalar_chain::compute_convert_gain): Make it pure virtual.
17318 (scalar_chain::mark_dual_mode_def): Likewise.
17319 (scalar_chain::convert_insn): Likewise.
17320 (scalar_chain::convert_registers): Likewise.
17321 (scalar_chain::add_to_queue): Make it protected.
17322 (scalar_chain::emit_conversion_insns): Likewise.
17323 (scalar_chain::replace_with_subreg): Likewise.
17324 (scalar_chain::replace_with_subreg_in_insn): Likewise.
17325 (scalar_chain::convert_op): Likewise.
17326 (scalar_chain::convert_reg): Likewise.
17327 (scalar_chain::make_vector_copies): Likewise.
17328 (scalar_chain::convert_registers): New pure virtual function.
17329 (class dimode_scalar_chain): New class.
17330 (class timode_scalar_chain): Likewise.
17331 (scalar_chain::mark_dual_mode_def): Renamed to ...
17332 (dimode_scalar_chain::mark_dual_mode_def): This.
17333 (timode_scalar_chain::mark_dual_mode_def): New function.
17334 (timode_scalar_chain::convert_insn): Likewise.
17335 (dimode_scalar_chain::convert_registers): Likewise.
17336 (scalar_chain::compute_convert_gain): Renamed to ...
17337 (dimode_scalar_chain::compute_convert_gain): This.
17338 (scalar_chain::replace_with_subreg): Renamed to ...
17339 (dimode_scalar_chain::replace_with_subreg): This.
17340 (scalar_chain::replace_with_subreg_in_insn): Renamed to ...
17341 (dimode_scalar_chain::replace_with_subreg_in_insn): This.
17342 (scalar_chain::make_vector_copies): Renamed to ...
17343 (dimode_scalar_chain::make_vector_copies): This.
17344 (scalar_chain::convert_reg): Renamed to ...
17345 (dimode_scalar_chain::convert_reg ): This.
17346 (scalar_chain::convert_op): Renamed to ...
17347 (dimode_scalar_chain::convert_op): This.
17348 (scalar_chain::convert_insn): Renamed to ...
17349 (dimode_scalar_chain::convert_insn): This.
17350 (scalar_chain::convert): Call convert_registers.
17351 (convert_scalars_to_vector): Change to scalar_chain pointer to
17352 use timode_scalar_chain in 64-bit mode and dimode_scalar_chain
17353 in 32-bit mode. Delete scalar_chain pointer. Call
17354 free_dominance_info in 64-bit mode.
17355 (pass_stv::gate): Remove TARGET_64BIT check.
17356 (ix86_option_override): Put the 64-bit STV pass before the CSE
17357 pass.
17358
17359 2016-04-27 Pierre-Marie de Rodat <derodat@adacore.com>
17360
17361 * dwarf2out.h (struct dw_loc_descr_node): Remove the
17362 dw_loc_frame_offset field.
17363 * dwarf2out.c (new_loc_descr): Likewise.
17364 (resolve_args_picking_1): Turn the VISITED hash set into a
17365 FRAME_OFFSET hash map. Use it to associate a frame offset to
17366 visited nodes. Remove uses of the CHECKING_P macro.
17367 (resolve_args_picking): Update call to resolve_args_picking_1.
17368
17369 2016-04-27 Martin Liska <mliska@suse.cz>
17370
17371 * tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
17372 (free_loop_data): Release vuses of groups.
17373
17374 2016-04-27 Bin Cheng <bin.cheng@arm.com>
17375
17376 * tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use
17377 instead of redundant use_id and boolean have_use_for.
17378 (struct iv_use): Change sub_id into group_id. Remove field next.
17379 Move fields: related_cands, n_map_members, cost_map and selected
17380 to ...
17381 (struct iv_group): ... here. New structure.
17382 (struct iv_common_cand): Use structure declaration directly.
17383 (struct ivopts_data, iv_ca, iv_ca_delta): Rename fields.
17384 (MAX_CONSIDERED_USES): Rename macro to ...
17385 (MAX_CONSIDERED_GROUPS): ... here.
17386 (n_iv_uses, iv_use, n_iv_cands, iv_cand): Delete.
17387 (dump_iv, dump_use, dump_cand): Refactor format of dump information.
17388 (dump_uses): Rename to ...
17389 (dump_groups): ... here. Update all uses.
17390 (tree_ssa_iv_optimize_init, alloc_iv): Update all uses.
17391 (find_induction_variables): Refactor format of dump information.
17392 (record_sub_use): Delete.
17393 (record_use): Update all uses.
17394 (record_group): New function.
17395 (record_group_use, find_interesting_uses_op): Call above functions.
17396 Update all uses.
17397 (find_interesting_uses_cond): Ditto.
17398 (group_compare_offset): New function.
17399 (split_all_small_groups): Rename to ...
17400 (split_small_address_groups_p): ... here. Update all uses.
17401 (split_address_groups): Update all uses.
17402 (find_interesting_uses): Refactor format of dump information.
17403 (add_candidate_1): Update all uses. Remove redundant check on iv,
17404 base and step.
17405 (add_candidate, record_common_cand): Remove redundant assert.
17406 (add_iv_candidate_for_biv): Update use.
17407 (add_iv_candidate_derived_from_uses): Update all uses.
17408 (add_iv_candidate_for_groups, record_important_candidates): Ditto.
17409 (alloc_use_cost_map): Ditto.
17410 (set_use_iv_cost, get_use_iv_cost): Rename to ...
17411 (set_group_iv_cost, get_group_iv_cost): ... here. Update all uses.
17412 (determine_use_iv_cost_generic): Ditto.
17413 (determine_group_iv_cost_generic): Ditto.
17414 (determine_use_iv_cost_address): Ditto.
17415 (determine_group_iv_cost_address): Ditto.
17416 (determine_use_iv_cost_condition): Ditto.
17417 (determine_group_iv_cost_cond): Ditto.
17418 (determine_use_iv_cost): Ditto.
17419 (determine_group_iv_cost): Ditto.
17420 (set_autoinc_for_original_candidates): Update all uses.
17421 (find_iv_candidates): Update all uses. Refactor dump information.
17422 (determine_use_iv_costs): Ditto.
17423 (determine_iv_costs): Ditto.
17424 (iv_ca_cand_for_use): Rename to ...
17425 (iv_ca_cand_for_group): ... here. Update all uses.
17426 (iv_ca_add_use, iv_ca_add_group): Ditto.
17427 (iv_ca_set_cp, iv_ca_cost, iv_ca_delta_add): Update all uses.
17428 (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_delta_free): Ditto.
17429 (iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow): Ditto.
17430 (iv_ca_prune, cheaper_cost_with_cand, iv_ca_replace): Ditto.
17431 (try_add_cand_for, try_improve_iv_set, find_optimal_iv_set): Ditto.
17432 (create_new_iv, adjust_iv_update_pos): Ditto.
17433 (rewrite_use_address): Delete.
17434 (rewrite_use_address_1): Rename to ...
17435 (rewrite_use_address): ... here.
17436 (rewrite_use_compare): Update all uses.
17437 (rewrite_use): Delete.
17438 (rewrite_uses): Rename to ...
17439 (rewrite_groups): ... here. Update all uses.
17440 (remove_unused_ivs, free_loop_data): Update all uses.
17441 (tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize_loop): Ditto.
17442
17443 2016-04-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17444
17445 * rtlanal.c (nonzero_bits1): Convert preprocessor check
17446 for WORD_REGISTER_OPERATIONS to runtime check.
17447
17448 2016-04-27 Richard Biener <rguenther@suse.de>
17449
17450 PR ipa/70760
17451 * tree-ssa-structalias.c (find_func_aliases_for_call): Use
17452 aggregate_value_p to determine if a function result is
17453 returned by reference.
17454 (ipa_pta_execute): Functions having their address taken are
17455 not automatically nonlocal.
17456
17457 2016-04-27 Jakub Jelinek <jakub@redhat.com>
17458
17459 PR sanitizer/70683
17460 * tree-core.h (enum operand_equal_flag): Add OEP_NO_HASH_CHECK.
17461 * fold-const.c (operand_equal_p): If flag_checking and
17462 OEP_NO_HASH_CHECK is not set in flag, recurse with OEP_NO_HASH_CHECK
17463 and if it returns non-zero, assert iterative_hash_expr on both
17464 args is the same.
17465
17466 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
17467
17468 * doc/invoke.texi (-frename-registers): Also enabled at -Os.
17469
17470 2016-04-27 Nick Clifton <nickc@redhat.com>
17471
17472 PR middle-end/49889
17473 * varasm.c (merge_weak): Generate an error if an attempt is made
17474 to convert a non-weak static function into a weak, public function.
17475
17476 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
17477
17478 * params.def (MAX_PARTITION_SIZE): New param.
17479 * doc/invoke.texi: Document lto-max-partition.
17480
17481 2016-04-27 Richard Biener <rguenther@suse.de>
17482
17483 PR ipa/70785
17484 * tree-ssa-structalias.c (refered_from_nonlocal_fn): New
17485 function cummulating used_from_other_partition, externally_visible
17486 and force_output from aliases.
17487 (refered_from_nonlocal_var): Likewise.
17488 (ipa_pta_execute): Use call_for_symbol_and_aliases to cummulate
17489 node flags properly.
17490
17491 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
17492
17493 * doc/invoke.texi (Warning Options): Add -Wmemset-elt-size.
17494 (-Wmemset-elt-size): New item.
17495
17496 2016-04-27 Eric Botcazou <ebotcazou@adacore.com>
17497
17498 PR ada/70759
17499 * stor-layout.h (internal_reference_types): Delete.
17500 * stor-layout.c (reference_types_internal): Likewise.
17501 (internal_reference_types): Likewise.
17502 (layout_type) <REFERENCE_TYPE>: Adjust.
17503
17504 2016-04-27 Jakub Jelinek <jakub@redhat.com>
17505
17506 PR sanitizer/70683
17507 * tree.h (inchash::add_expr): Add FLAGS argument.
17508 * tree.c (inchash::add_expr): Likewise. If not OEP_ADDRESS_OF,
17509 use STRIP_NOPS first. For INTEGER_CST assert not OEP_ADDRESS_OF.
17510 For REAL_CST and !HONOR_SIGNED_ZEROS (t) hash +/- 0 the same.
17511 Formatting fix. Adjust recursive calls. For tcc_comparison,
17512 if swap_tree_comparison (code) is smaller than code, hash that
17513 and arguments in the other order. Hash CONVERT_EXPR the same
17514 as NOP_EXPR. For OEP_ADDRESS_OF hash MEM_REF with 0 offset
17515 of ADDR_EXPR of decl as the decl itself. Add or remove
17516 OEP_ADDRESS_OF from recursive flags as needed. For
17517 FMA_EXPR, WIDEN_MULT_{PLUS,MINUS}_EXPR hash the first two
17518 operands commutatively and only the third one normally.
17519 For internal CALL_EXPR hash in CALL_EXPR_IFN.
17520
17521 2016-04-27 Sebastian Huber <sebastian.huber@embedded-brains.de>
17522
17523 * config/rtems.h (LIB_SPEC): Add -latomic.
17524
17525 2016-04-27 Joel Sherrill <joel@rtems.org>
17526
17527 * config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
17528 xilink.ld and flags not relevant to RTEMS.
17529
17530 2016-04-26 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
17531
17532 * toplev.c (backend_init_target): Avoid calling init_reload when using
17533 LRA.
17534
17535 2016-04-26 Jakub Jelinek <jakub@redhat.com>
17536
17537 * reorg.c (try_merge_delay_insns): Declare i and j inside the
17538 for loops rather than one for the whole function.
17539
17540 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
17541
17542 * match.pd (X + CST CMP X): New transformation.
17543
17544 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
17545
17546 * genmatch.c (write_predicate): Add ATTRIBUTE_UNUSED.
17547 * fold-const.c (fold_binary_loc): Remove 2 transformations
17548 superseded by match.pd.
17549 * match.pd (x+x -> x*2): Generalize to integers.
17550
17551 2016-04-26 Bernd Schmidt <bschmidt@redhat.com>
17552
17553 * config/i386/i386.md (operation on memory peephole): Duplicate an
17554 existing peephole and adapt it to match lea rather than an operation
17555 that clobbers CC.
17556
17557 PR rtl-optimization/57193
17558 * opts.c (default_options_table): Add OPT_frename_registers at -O2
17559 and above.
17560 * doc/invoke.texi (-frename-registers, -O2): Update documentation.
17561
17562 2016-04-26 Bin Cheng <bin.cheng@arm.com>
17563
17564 * tree-if-conv.c (any_pred_load_store): New static variable.
17565 (if_convertible_gimple_assign_stmt_p): Remove parameter. Use
17566 any_pred_load_store instead of and_mask_load_store.
17567 (if_convertible_stmt_p, if_convertible_loop_p_1): Ditto.
17568 (if_convertible_loop_p, insert_gimplified_predicates): Ditto.
17569 (combine_blocks, tree_if_conversion): Ditto.
17570
17571 2016-04-26 Bin Cheng <bin.cheng@arm.com>
17572
17573 PR tree-optimization/70771
17574 PR tree-optimization/70775
17575 * tree-if-conv.c (if_convertible_phi_p): Remove check on special
17576 virtual PHI nodes. Delete parameter.
17577 (if_convertible_loop_p_1): Delete argument to above function.
17578 (predicate_all_scalar_phis): Delete code handling single-argument
17579 PHIs.
17580 (tree_if_conversion): Mark and update virtual SSA.
17581
17582 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17583
17584 PR target/61821
17585 * config/i386/i386.c (LARGECOMM_SECTION_ASM_OP): Define default.
17586 (x86_elf_aligned_common): Rename to ...
17587 (x86_elf_aligned_decl_common): ... this.
17588 Add decl arg. Switch to .lbss for largecomm object. Use
17589 LARGECOMM_SECTION_ASM_OP.
17590 * config/i386/i386-protos.h (x86_elf_aligned_common): Reflect
17591 renaming.
17592 * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_COMMON): Rename to ...
17593 (ASM_OUTPUT_ALIGNED_DECL_COMMON): ... this.
17594 Pass new decl arg.
17595 * config/i386/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
17596 [!USE_GAS] (LARGECOMM_SECTION_ASM_OP): Define.
17597
17598 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17599
17600 PR target/59407
17601 * config/i386/i386.c (SECTION_LARGE): Define.
17602 (x86_64_elf_select_section): Set it for large data/bss sections.
17603 Only clear SECTION_WRITE for .lrodata.
17604 (x86_64_elf_section_type_flags): Set SECTION_LARGE for large
17605 data/bss sections.
17606 * config/i386/sol2.h (MACH_DEP_SECTION_ASM_FLAG): Define.
17607 * varasm.c (default_elf_asm_named_section): Grow flagchars.
17608 [MACH_DEP_SECTION_ASM_FLAG] Emit MACH_DEP_SECTION_ASM_FLAG for
17609 SECTION_MACH_DEP.
17610 * doc/tm.texi.in (Sections, MACH_DEP_SECTION_ASM_FLAG): Describe.
17611 * doc/tm.texi: Regenerate.
17612
17613 2016-04-26 Jakub Jelinek <jakub@redhat.com>
17614
17615 PR bootstrap/70704
17616 * configure.ac (--enable-checking): Document extra flag, for
17617 non-release builds default to --enable-checking=yes,extra.
17618 If misc checking and extra checking, define CHECKING_P to 2 instead
17619 of 1.
17620 * common.opt (fchecking=): Add.
17621 * doc/invoke.texi (-fchecking=): Document.
17622 * doc/install.texi: Document --enable-checking changes.
17623 * configure: Regenerated.
17624 * config.in: Regenerated.
17625
17626 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
17627
17628 * config/i386/i386.md (*movxi_internal_avx512f): Use insn type
17629 attribute instead of which_alternative.
17630 * config/i386/sse.md (*mov<mode>_internal): Ditto.
17631 Use EXT_REX_SSE_REG_P where appropriate.
17632
17633 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
17634
17635 * config/i386/predicates.md (const0_operand): Do not match
17636 const_wide_int code.
17637 (const1_operand): Ditto.
17638
17639 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
17640
17641 * config/i386/i386.md (*movoi_internal_avx): Set mode attribute to XI
17642 for SSE constm1 operands and TARGET_AVX512VL.
17643 (*movti_internal): Ditto.
17644 (*mov<mode>_or): Use constm1_operand predicate.
17645 * config/i386/sse.md (*mov<mode>_internal): Set mode attribute to XI
17646 for SSE vector_all_ones operands and TARGET_AVX512VL.
17647 * config/i386/predicates.md (constm1_operand): New predicate.
17648 * config/i386/i386.c (standard_sse_constant_opcode): Simplify
17649 emission of constant -1 load.
17650
17651 2016-04-25 Jason Merrill <jason@redhat.com>
17652
17653 * gdbinit.in: Skip is-a.h.
17654
17655 * attribs.c (register_scoped_attributes): Fix logic.
17656 * attribs.h: Declare register_scoped_attributes.
17657
17658 2016-04-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17659
17660 * config/rs6000/rs6000-builtin.def: Correct pasto error for
17661 stxvd2x and stxvw4x built-in functions.
17662
17663 2016-04-25 DJ Delorie <dj@redhat.com>
17664
17665 * config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
17666 (ashrhi3): Likewise.
17667 (lshrhi3): Likewise.
17668
17669 2016-04-25 Richard Biener <rguenther@suse.de>
17670
17671 PR tree-optimization/70780
17672 * tree-ssa-pre.c (compute_antic_aux): Also return true if the block
17673 wasn't visited yet.
17674 (compute_antic): Mark blocks with abnormal preds as visited as
17675 they have a final empty antic-in solution already.
17676
17677 2016-04-25 Michael Collison <michael.collison@linaro.org>
17678
17679 * ChangeLog(2016-04-25): Fix ChangeLog formatting.
17680
17681 2016-04-25 Michael Collison <michael.collison@linaro.org>
17682
17683 * config/arm/neon.md (widen_<us>sum<mode>): New patterns where
17684 mode is VQI to improve mixed mode vectorization.
17685 * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3): New
17686 define_insn to match low half of signed vaddw.
17687 * config/arm/neon.md (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): New
17688 define_insn to match high half of signed vaddw.
17689 * config/arm/neon.md (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): New
17690 define_insn to match low half of unsigned vaddw.
17691 * config/arm/neon.md (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): New
17692 define_insn to match high half of unsigned vaddw.
17693 * config/arm/arm.c (arm_simd_vect_par_cnst_half): New function.
17694 (arm_simd_check_vect_par_cnst_half_p): Likewise.
17695 * config/arm/arm-protos.h (arm_simd_vect_par_cnst_half): Prototype
17696 for new function.
17697 (arm_simd_check_vect_par_cnst_half_p): Likewise.
17698 * config/arm/predicates.md (vect_par_constant_high): Support
17699 big endian and simplify by calling
17700 arm_simd_check_vect_par_cnst_half
17701 (vect_par_constant_low): Likewise.
17702
17703 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
17704
17705 * config/i386/i386.md (*lea<mode>_general_4): Use const_0_to_3_operand
17706 predicate for operand 2.
17707
17708 2016-04-24 Uros Bizjak <ubizjak@gmail.com>
17709 H.J. Lu <hongjiu.lu@intel.com>
17710
17711 * config/i386/i386-protos.h (standard_sse_constant_p): Add
17712 machine_mode argument.
17713 * config/i386/i386.c (standard_sse_constant_p): Return 2 for
17714 constm1_rtx operands. For VOIDmode constants, get mode from
17715 pred_mode. Check mode size if the mode is supported by ABI.
17716 (standard_sse_constant_opcode): Do not use standard_constant_p.
17717 Strictly check ABI support for all-ones operands.
17718 (ix86_legitimate_constant_p): Handle TImode, OImode and XImode
17719 immediates. Update calls to standard_sse_constant_p.
17720 (ix86_expand_vector_move): Update calls to standard_sse_constant_p.
17721 (ix86_rtx_costs): Ditto.
17722 * config/i386/i386.md (*movxi_internal_avx512f): Use
17723 nonimmediate_or_sse_const_operand instead of vector_move_operand.
17724 Use (v,BC) alternative instead of (v,C). Use register_operand
17725 checks instead of MEM_P.
17726 (*movoi_internal_avx): Use nonimmediate_or_sse_const_operand instead
17727 of vector_move_operand. Add (v,BC) alternative and corresponding avx2
17728 isa attribute. Use register_operand checks instead of MEM_P.
17729 (*movti_internal): Use nonimmediate_or_sse_const_operand for
17730 TARGET_SSE. Improve TARGET_SSE insn constraint. Add (v,BC)
17731 alternative and corresponding sse2 isa attribute.
17732 (*movtf_internal, *movdf_internal, *movsf_interal): Update calls
17733 to standard_sse_constant_p.
17734 (FP constant splitters): Ditto.
17735 * config/i386/constraints.md (BC): Do not use standard_sse_constant_p.
17736 (C): Ditto.
17737 * config/i386/predicates.md (constm1_operand): Remove.
17738 (nonimmediate_or_sse_const_operand): Rewrite using RTX.
17739 * config/i386/sse.md (*<avx512>_cvtmask2<ssemodesuffix><mode>): Use
17740 vector_all_ones_operand instead of constm1_operand.
17741
17742 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
17743
17744 * print-rtl.c (print_rtx_insn_vec): New function.
17745 * print-rtl.h: New prototype.
17746 * store-motion.c (struct st_expr): Make avail_stores a vector.
17747 (st_expr_entry): Adjust.
17748 (free_st_expr_entry): Likewise.
17749 (print_store_motion_mems): Likewise.
17750 (find_moveable_store): Likewise.
17751 (compute_store_table): Likewise.
17752 (delete_store): Likewise.
17753 (build_store_vectors): Likewise.
17754
17755 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
17756
17757 * reorg.c (try_merge_delay_insns): Make merged_insns a vector.
17758
17759 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
17760
17761 * vec.h (vec_safe_contains): New function.
17762 (vec::contains): Likewise.
17763 (vec::begin): Likewise.
17764 (vec::end): Likewise.
17765
17766 2016-04-23 Jakub Jelinek <jakub@redhat.com>
17767
17768 PR sanitizer/70712
17769 * cfgexpand.c (expand_stack_vars): Fix typo.
17770
17771 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
17772
17773 * system.h (list, map, set, vector): Include conditionally.
17774 * auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define.
17775 * graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define.
17776 * ipa-icf.c (INCLUDE_LIST): Define.
17777 * config/aarch64/cortex-a57-fma-steering.c (INCLUDE_LIST): Define.
17778 * config/sh/sh.c (INCLUDE_VECTOR): Define.
17779 * config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define.
17780 (INCLUDE_LIST, INCLUDE_VECTOR): Define.
17781 * cp/logic.cc (INCLUDE_LIST): Define.
17782 * fortran/trans-common.c (INCLUDE_MAP): Define.
17783
17784 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
17785
17786 * auto-profile.c: Remove <string.h> include.
17787 * ipa-icf-gimple.c: Remove <list> include.
17788 * diagnostic.c: Remove <new> include.
17789 * genmatch.c: Likewise.
17790 * pretty-print.c: Likewise.
17791 * toplev.c: Likewise
17792 * c/c-objc-common.c: Likewise.
17793 * cp/error.c: Likewise.
17794 * fortran/error.c: Likewise.
17795
17796 2016-04-22 Richard Biener <rguenther@suse.de>
17797
17798 * lto-streamer-in.c (input_ssa_names): Do not allocate
17799 GIMPLE_NOP for all SSA names.
17800 * lto-streamer-out.c (output_ssa_names): Do not output
17801 SSA names that should have been released.
17802
17803 2016-04-22 Richard Biener <rguenther@suse.de>
17804
17805 PR tree-optimization/70740
17806 * tree-ssa-phiprop.c (propagate_with_phi): Handle inserted
17807 VDEF.
17808
17809 2016-04-21 H.J. Lu <hongjiu.lu@intel.com>
17810
17811 PR target/70750
17812 * config/i386/predicates.md (call_insn_operand): Replace
17813 sibcall_memory_operand with memory_operand.
17814
17815 2016-04-21 Patrick Palka <ppalka@gcc.gnu.org>
17816
17817 * tree-vrp.c (register_edge_assert_for_2): Remove redundant
17818 has_single_use() tests.
17819 (register_edge_assert_for_1): Likewise.
17820 (find_assert_locations_1): Check the liveness bitmap instead of
17821 checking has_single_use().
17822
17823 2016-04-21 Kirill Yukhin <kirill.yukhin@intel.com>
17824
17825 PR target/70728
17826 * config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
17827 Extract AVX-512BW constraint from AVX.
17828
17829 2016-04-21 Richard Biener <rguenther@suse.de>
17830
17831 PR tree-optimization/70725
17832 * tree-if-conv.c (if_convertible_phi_p): Adjust guard
17833 for phi_convertible_by_degenerating_args.
17834 (predicate_all_scalar_phis): Handle single-argument PHIs.
17835
17836 2016-04-21 Richard Biener <rguenther@suse.de>
17837
17838 PR middle-end/70747
17839 * fold-const.c (fold_comparison): Return properly typed
17840 constant boolean.
17841
17842 2016-04-21 Bin Cheng <bin.cheng@arm.com>
17843
17844 PR tree-optimization/70715
17845 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
17846 after expanding BASE using expand_simple_operations.
17847
17848 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
17849
17850 * match.pd (min(-x, -y), max(-x, -y), min(~x, ~y), max(~x, ~y)):
17851 New transformations.
17852
17853 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
17854
17855 * match.pd (min(int_max, x), max(int_min, x)): New transformations.
17856
17857 2016-04-20 Jan Hubicka <jh@suse.cz>
17858
17859 * ipa-inline.c (can_inline_edge_p): Pass caller info to
17860 ultiimate_alias_target.
17861 (update_callee_keys): Likewise.
17862 (lookup_recursive_calls): Likewise.
17863 (speculation_useful_p): Likewise.
17864
17865 2016-04-20 Jan Hubicka <jh@suse.cz>
17866
17867 PR ipa/70018
17868 * cgraph.c (cgraph_set_nothrow_flag_1): Rename to ...
17869 (set_nothrow_flag_1): ... this; handle interposition correctly;
17870 recurse on aliases and thunks.
17871 (cgraph_node::set_nothrow_flag): New.
17872 * ipa-pure-const.c (ignore_edge_for_nothrow): Ignore calls to
17873 functions compiled with non-call exceptions that binds to current
17874 def.
17875 (propagate_nothrow): Be safe WRT interposition.
17876 * cgraph.h (set_nothrow_flag): Update prototype.
17877
17878 2016-04-18 Jan Hubicka <jh@suse.cz>
17879
17880 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
17881 max_loop_iterations_int.
17882 (tree_unswitch_outer_loop): Likewise.
17883
17884 2016-04-20 Bin Cheng <bin.cheng@arm.com>
17885
17886 PR tree-optimization/69489
17887 * tree-if-conv.c (phi_convertible_by_degenerating_args): New.
17888 (if_convertible_phi_p): Call phi_convertible_by_degenerating_args.
17889 Revise dump message.
17890 (if_convertible_bb_p): Remove check on edge count of basic block's
17891 predecessors.
17892
17893 2016-04-20 Bin Cheng <bin.cheng@arm.com>
17894
17895 PR tree-optimization/56625
17896 PR tree-optimization/69489
17897 * tree-data-ref.h (DR_INNERMOST): New macro.
17898 * tree-if-conv.c (innermost_loop_behavior_hash): New class for
17899 hashing struct innermost_loop_behavior.
17900 (ref_DR_map): Remove.
17901 (innermost_DR_map): New map.
17902 (baseref_DR_map): Revise comment.
17903 (hash_memrefs_baserefs_and_store_DRs_read_written_info): Store DR
17904 to innermost_DR_map accroding to its innermost loop behavior.
17905 (ifcvt_memrefs_wont_trap): Get DR from innermost_DR_map according
17906 to its innermost loop behavior.
17907 (if_convertible_loop_p_1): Remove intialization for ref_DR_map.
17908 Add initialization for innermost_DR_map. Record memory reference
17909 in DR_BASE_ADDRESS if the reference is compound one or it doesn't
17910 have innermost loop behavior.
17911 (if_convertible_loop_p): Remove release for ref_DR_map. Release
17912 innermost_DR_map.
17913
17914 2016-04-20 Uros Bizjak <ubizjak@gmail.com>
17915
17916 * config/i386/i386.md (*lea<mode>_general_1): Rename from
17917 *lea_general_1. Use explicit SWI12 mode interator.
17918 (*lea<mode>_general_2): Rename from *lea_general_2.
17919 Use explicit SWI12 mode interator.
17920 (*lea<mode>_general_3): Rename from *lea_general_3.
17921 Use explicit SWI12 mode interator.
17922 (*lea<SWI12:mode>_general_4): Split from *lea_general_4.
17923 Use explicit SWI12 mode interator.
17924 (*lea<SWI48:mode>_general_4): Split from *lea_general_4.
17925 Use explicit SWI48 mode interator.
17926
17927 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
17928
17929 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
17930 Short-cut unaligned load and store cases. Handle all integer
17931 vector modes.
17932 (ix86_expand_vector_move_misalign): Short-cut unaligned load
17933 and store cases. Call ix86_avx256_split_vector_move_misalign
17934 directly without checking mode class.
17935
17936 2016-04-20 Andrew Pinski <apinski@cavium.com>
17937 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17938
17939 PR target/64971
17940 * config/aarch64/aarch64.md (sibcall): Force call
17941 address to be DImode for ILP32.
17942 (sibcall_value): Likewise.
17943
17944 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
17945
17946 * doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.
17947
17948 2016-04-20 Richard Biener <rguenther@suse.de>
17949
17950 * gimple-match.h (maybe_build_generic_op): Adjust prototype.
17951 * gimple-match-head.c (maybe_build_generic_op): Pass all ops
17952 by reference, clear op1 and op2 when GENERICizing BIT_FIELD_REF.
17953 (maybe_push_res_to_seq): Adjust.
17954 * gimple-fold.c (maybe_build_generic_op): Likewise.
17955
17956 2016-04-20 Marek Polacek <polacek@redhat.com>
17957
17958 * tree-if-conv.c (is_false_predicate): For NULL_TREE return false
17959 rather than true.
17960
17961 2016-04-20 Ilya Enkovich <ilya.enkovich@intel.com>
17962
17963 * config/i386/sse.md (vec_unpacks_lo_hi): Always
17964 use kmovw to support AVX512F target.
17965
17966 2016-04-20 Bin Cheng <bin.cheng@arm.com>
17967
17968 * tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
17969
17970 2016-04-20 Marek Polacek <polacek@redhat.com>
17971
17972 PR tree-optimization/70725
17973 * tree-if-conv.c (is_false_predicate): New function.
17974 (predicate_mem_writes): Use it.
17975
17976 2016-04-20 Richard Biener <rguenther@suse.de>
17977
17978 PR tree-optimization/70726
17979 * tree-vect-stmts.c (vectorizable_shift): Do not use scalar
17980 shift amounts from a pattern stmt operand.
17981
17982 2016-04-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17983
17984 PR target/70674
17985 * config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new
17986 stack_restore_from_fpr pattern when restoring r15.
17987 (s390_optimize_prologue): Strip away the memory barrier in the
17988 parallel when trying to get rid of restore insns.
17989 * config/s390/s390.md ("stack_restore_from_fpr"): New insn
17990 definition for loading the stack pointer from an FPR. Compared to
17991 the normal move insn this pattern includes a full memory barrier.
17992
17993 2016-04-19 Jakub Jelinek <jakub@redhat.com>
17994
17995 PR middle-end/70680
17996 * gimplify.c (gimplify_omp_for): Call omp_notice_variable for
17997 implicitly linear or lastprivate iterator on the outer context.
17998
17999 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
18000
18001 * config/i386/i386.c (ix86_legitimate_combined_insn): Remove
18002 alignment check.
18003 * config/i386/i386.md (ssememalign): Removed.
18004 * config/i386/sse.md: Remove ssememalign attribute from patterns.
18005
18006 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
18007
18008 PR target/69201
18009 * config/i386/avx512bwintrin.h (_mm512_mask_loadu_epi16): Pass
18010 const short * to __builtin_ia32_loaddquhi512_mask.
18011 (_mm512_maskz_loadu_epi16): Likewise.
18012 (_mm512_mask_storeu_epi16): Pass short * to
18013 __builtin_ia32_storedquhi512_mask.
18014 (_mm512_mask_loadu_epi8): Pass const char * to
18015 __builtin_ia32_loaddquqi512_mask.
18016 (_mm512_maskz_loadu_epi8): Likewise.
18017 (_mm512_mask_storeu_epi8): Pass char * to
18018 __builtin_ia32_storedquqi512_mask.
18019 * config/i386/avx512fintrin.h (_mm512_loadu_pd): Pass
18020 const double * to __builtin_ia32_loadupd512_mask.
18021 (_mm512_mask_loadu_pd): Likewise.
18022 (_mm512_maskz_loadu_pd): Likewise.
18023 (_mm512_storeu_pd): Pass double * to
18024 __builtin_ia32_storeupd512_mask.
18025 (_mm512_mask_storeu_pd): Likewise.
18026 (_mm512_loadu_ps): Pass const float * to
18027 __builtin_ia32_loadups512_mask.
18028 (_mm512_mask_loadu_ps): Likewise.
18029 (_mm512_maskz_loadu_ps): Likewise.
18030 (_mm512_storeu_ps): Pass float * to
18031 __builtin_ia32_storeups512_mask.
18032 (_mm512_mask_storeu_ps): Likewise.
18033 (_mm512_mask_loadu_epi64): Pass const long long * to
18034 __builtin_ia32_loaddqudi512_mask.
18035 (_mm512_maskz_loadu_epi64): Likewise.
18036 (_mm512_mask_storeu_epi64): Pass long long *
18037 to __builtin_ia32_storedqudi512_mask.
18038 (_mm512_loadu_si512): Pass const int * to
18039 __builtin_ia32_loaddqusi512_mask.
18040 (_mm512_mask_loadu_epi32): Likewise.
18041 (_mm512_maskz_loadu_epi32): Likewise.
18042 (_mm512_storeu_si512): Pass int * to
18043 __builtin_ia32_storedqusi512_mask.
18044 (_mm512_mask_storeu_epi32): Likewise.
18045 * config/i386/avx512vlbwintrin.h (_mm256_mask_storeu_epi8): Pass
18046 char * to __builtin_ia32_storedquqi256_mask.
18047 (_mm_mask_storeu_epi8): Likewise.
18048 (_mm256_mask_loadu_epi16): Pass const short * to
18049 __builtin_ia32_loaddquhi256_mask.
18050 (_mm256_maskz_loadu_epi16): Likewise.
18051 (_mm_mask_loadu_epi16): Pass const short * to
18052 __builtin_ia32_loaddquhi128_mask.
18053 (_mm_maskz_loadu_epi16): Likewise.
18054 (_mm256_mask_loadu_epi8): Pass const char * to
18055 __builtin_ia32_loaddquqi256_mask.
18056 (_mm256_maskz_loadu_epi8): Likewise.
18057 (_mm_mask_loadu_epi8): Pass const char * to
18058 __builtin_ia32_loaddquqi128_mask.
18059 (_mm_maskz_loadu_epi8): Likewise.
18060 (_mm256_mask_storeu_epi16): Pass short * to.
18061 __builtin_ia32_storedquhi256_mask.
18062 (_mm_mask_storeu_epi16): Pass short * to.
18063 __builtin_ia32_storedquhi128_mask.
18064 * config/i386/avx512vlintrin.h (_mm256_mask_loadu_pd): Pass
18065 const double * to __builtin_ia32_loadupd256_mask.
18066 (_mm256_maskz_loadu_pd): Likewise.
18067 (_mm_mask_loadu_pd): Pass onst double * to
18068 __builtin_ia32_loadupd128_mask.
18069 (_mm_maskz_loadu_pd): Likewise.
18070 (_mm256_mask_storeu_pd): Pass double * to
18071 __builtin_ia32_storeupd256_mask.
18072 (_mm_mask_storeu_pd): Pass double * to
18073 __builtin_ia32_storeupd128_mask.
18074 (_mm256_mask_loadu_ps): Pass const float * to
18075 __builtin_ia32_loadups256_mask.
18076 (_mm256_maskz_loadu_ps): Likewise.
18077 (_mm_mask_loadu_ps): Pass const float * to
18078 __builtin_ia32_loadups128_mask.
18079 (_mm_maskz_loadu_ps): Likewise.
18080 (_mm256_mask_storeu_ps): Pass float * to
18081 __builtin_ia32_storeups256_mask.
18082 (_mm_mask_storeu_ps): ass float * to
18083 __builtin_ia32_storeups128_mask.
18084 (_mm256_mask_loadu_epi64): Pass const long long * to
18085 __builtin_ia32_loaddqudi256_mask.
18086 (_mm256_maskz_loadu_epi64): Likewise.
18087 (_mm_mask_loadu_epi64): Pass const long long * to
18088 __builtin_ia32_loaddqudi128_mask.
18089 (_mm_maskz_loadu_epi64): Likewise.
18090 (_mm256_mask_storeu_epi64): Pass long long * to
18091 __builtin_ia32_storedqudi256_mask.
18092 (_mm_mask_storeu_epi64): Pass long long * to
18093 __builtin_ia32_storedqudi128_mask.
18094 (_mm256_mask_loadu_epi32): Pass const int * to
18095 __builtin_ia32_loaddqusi256_mask.
18096 (_mm256_maskz_loadu_epi32): Likewise.
18097 (_mm_mask_loadu_epi32): Pass const int * to
18098 __builtin_ia32_loaddqusi128_mask.
18099 (_mm_maskz_loadu_epi32): Likewise.
18100 (_mm256_mask_storeu_epi32): Pass int * to
18101 __builtin_ia32_storedqusi256_mask.
18102 (_mm_mask_storeu_epi32): Pass int * to
18103 __builtin_ia32_storedqusi128_mask.
18104 * config/i386/i386-builtin-types.def (PCSHORT): New.
18105 (PINT64): Likewise.
18106 (V64QI_FTYPE_PCCHAR_V64QI_UDI): Likewise.
18107 (V32HI_FTYPE_PCSHORT_V32HI_USI): Likewise.
18108 (V32QI_FTYPE_PCCHAR_V32QI_USI): Likewise.
18109 (V16SF_FTYPE_PCFLOAT_V16SF_UHI): Likewise.
18110 (V8DF_FTYPE_PCDOUBLE_V8DF_UQI): Likewise.
18111 (V16SI_FTYPE_PCINT_V16SI_UHI): Likewise.
18112 (V16HI_FTYPE_PCSHORT_V16HI_UHI): Likewise.
18113 (V16QI_FTYPE_PCCHAR_V16QI_UHI): Likewise.
18114 (V8SF_FTYPE_PCFLOAT_V8SF_UQI): Likewise.
18115 (V8DI_FTYPE_PCINT64_V8DI_UQI): Likewise.
18116 (V8SI_FTYPE_PCINT_V8SI_UQI): Likewise.
18117 (V8HI_FTYPE_PCSHORT_V8HI_UQI): Likewise.
18118 (V4DF_FTYPE_PCDOUBLE_V4DF_UQI): Likewise.
18119 (V4SF_FTYPE_PCFLOAT_V4SF_UQI): Likewise.
18120 (V4DI_FTYPE_PCINT64_V4DI_UQI): Likewise.
18121 (V4SI_FTYPE_PCINT_V4SI_UQI): Likewise.
18122 (V2DF_FTYPE_PCDOUBLE_V2DF_UQI): Likewise.
18123 (V2DI_FTYPE_PCINT64_V2DI_UQI): Likewise.
18124 (VOID_FTYPE_PDOUBLE_V8DF_UQI): Likewise.
18125 (VOID_FTYPE_PDOUBLE_V4DF_UQI): Likewise.
18126 (VOID_FTYPE_PDOUBLE_V2DF_UQI): Likewise.
18127 (VOID_FTYPE_PFLOAT_V16SF_UHI): Likewise.
18128 (VOID_FTYPE_PFLOAT_V8SF_UQI): Likewise.
18129 (VOID_FTYPE_PFLOAT_V4SF_UQI): Likewise.
18130 (VOID_FTYPE_PINT64_V8DI_UQI): Likewise.
18131 (VOID_FTYPE_PINT64_V4DI_UQI): Likewise.
18132 (VOID_FTYPE_PINT64_V2DI_UQI): Likewise.
18133 (VOID_FTYPE_PINT_V16SI_UHI): Likewise.
18134 (VOID_FTYPE_PINT_V8SI_UHI): Likewise.
18135 (VOID_FTYPE_PINT_V4SI_UHI): Likewise.
18136 (VOID_FTYPE_PSHORT_V32HI_USI): Likewise.
18137 (VOID_FTYPE_PSHORT_V16HI_UHI): Likewise.
18138 (VOID_FTYPE_PSHORT_V8HI_UQI): Likewise.
18139 (VOID_FTYPE_PCHAR_V64QI_UDI): Likewise.
18140 (VOID_FTYPE_PCHAR_V32QI_USI): Likewise.
18141 (VOID_FTYPE_PCHAR_V16QI_UHI): Likewise.
18142 (V64QI_FTYPE_PCV64QI_V64QI_UDI): Removed.
18143 (V32HI_FTYPE_PCV32HI_V32HI_USI): Likewise.
18144 (V32QI_FTYPE_PCV32QI_V32QI_USI): Likewise.
18145 (V16HI_FTYPE_PCV16HI_V16HI_UHI): Likewise.
18146 (V16QI_FTYPE_PCV16QI_V16QI_UHI): Likewise.
18147 (V8HI_FTYPE_PCV8HI_V8HI_UQI): Likewise.
18148 (VOID_FTYPE_PV32HI_V32HI_USI): Likewise.
18149 (VOID_FTYPE_PV16HI_V16HI_UHI): Likewise.
18150 (VOID_FTYPE_PV8HI_V8HI_UQI): Likewise.
18151 (VOID_FTYPE_PV64QI_V64QI_UDI): Likewise.
18152 (VOID_FTYPE_PV32QI_V32QI_USI): Likewise.
18153 (VOID_FTYPE_PV16QI_V16QI_UHI): Likewise.
18154 * config/i386/i386.c (ix86_emit_save_reg_using_mov): Don't
18155 use UNSPEC_STOREU.
18156 (ix86_emit_restore_sse_regs_using_mov): Don't use UNSPEC_LOADU.
18157 (ix86_avx256_split_vector_move_misalign): Don't use unaligned
18158 load nor store.
18159 (ix86_expand_vector_move_misalign): Likewise.
18160 (bdesc_special_args): Use CODE_FOR_movvNXY_internal and pointer
18161 to scalar function prototype for unaligned load/store builtins.
18162 (ix86_expand_special_args_builtin): Updated.
18163 * config/i386/sse.md (UNSPEC_LOADU): Removed.
18164 (UNSPEC_STOREU): Likewise.
18165 (VI_ULOADSTORE_BW_AVX512VL): Likewise.
18166 (VI_ULOADSTORE_F_AVX512VL): Likewise.
18167 (ssescalarsize): Handle V4TI, V2TI and V1TI.
18168 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
18169 (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
18170 (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Likewise.
18171 (<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask): Likewise.
18172 (<sse2_avx_avx512f>_loaddqu<mode><mask_name>): Likewise.
18173 (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"): Likewise.
18174 (sse2_avx_avx512f>_storedqu<mode>): Likewise.
18175 (<avx512>_storedqu<mode>_mask): Likewise.
18176 (*sse4_2_pcmpestr_unaligned): Likewise.
18177 (*sse4_2_pcmpistr_unaligned): Likewise.
18178 (*mov<mode>_internal): Renamed to ...
18179 (mov<mode>_internal): This. Remove check of AVX and IAMCU on
18180 misaligned operand. Replace vmovdqu64 with vmovdqu<ssescalarsize>.
18181 (movsd/movhpd to movupd peephole): Don't use UNSPEC_LOADU.
18182 (movlpd/movhpd to movupd peephole): Don't use UNSPEC_STOREU.
18183
18184 2016-04-19 Richard Biener <rguenther@suse.de>
18185
18186 PR tree-optimization/70171
18187 * tree-ssa-phiprop.c: Include stor-layout.h.
18188 (phiprop_insert_phi): Handle the aggregate copy case.
18189 (propagate_with_phi): Likewise.
18190
18191 2016-04-19 Uros Bizjak <ubizjak@gmail.com>
18192
18193 * config/i386/i386.c (ix86_decompose_address): Use lowpart_subreg
18194 instead of simplify_gen_subreg (... , 0).
18195 (ix86_delegitimize_address): Ditto.
18196 (ix86_split_divmod): Ditto.
18197 (ix86_split_copysign_const): Ditto.
18198 (ix86_split_copysign_var): Ditto.
18199 (ix86_expand_args_builtin): Ditto.
18200 (ix86_expand_round_builtin): Ditto.
18201 (ix86_expand_special_args_builtin): Ditto.
18202 * config/i386/i386.md (TARGET_USE_VECTOR_FP_CONVERTS splitters): Ditto.
18203 (TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters and peephole2s): Ditto.
18204 (udivmodqi4): Ditto.
18205 (absneg splitters): Ditto.
18206 (*jcc_bt<mode>_1): Ditto.
18207
18208 2016-04-19 Richard Biener <rguenther@suse.de>
18209
18210 PR tree-optimization/70724
18211 * tree-ssa-sccvn.c (scc_vn_restore_ssa_info): Split SSA info
18212 restoring out from ...
18213 (free_scc_vn): ... here.
18214 * tree-ssa-sccvn.h (scc_vn_restore_ssa_info): Declare.
18215 * tres-ssa-pre.c (pass_pre::execute): Restore SSA info before
18216 tail merging.
18217 (pass_fre::execute): Restore SSA info.
18218
18219 2016-04-19 Richard Biener <rguenther@suse.de>
18220
18221 * gimple-walk.h (struct walk_stmt_info): Add stmt member.
18222 * gimple-walk.c (walk_gimple_op): Initialize it.
18223 (walk_gimple_asm): Set wi->is_lhs before each callback invocation.
18224 * tree-inline.c (remap_gimple_op_r): Set SSA_NAME_DEF_STMT when
18225 remapping SSA names of defs.
18226 (copy_bb): Remove walk over all SSA defs and SSA_NAME_DEF_STMT
18227 adjustment.
18228
18229 2016-04-18 Vladimir Makarov <vmakarov@redhat.com>
18230
18231 PR middle-end/70689
18232 * lra-constraints.c (equiv_substition_p): New.
18233 (process_alt_operands): Use it.
18234 (swap_operands): Swap it.
18235 (curr_insn_transform): Update it.
18236
18237 2016-04-18 Michael Matz <matz@suse.de>
18238
18239 * tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount.
18240 (SET_TYPE_ALIGN, SET_DECL_ALIGN): New.
18241 * tree-core.h (tree_type_common.align): Use bit-field.
18242 (tree_type_common.spare): New.
18243 (tree_decl_common.off_align): Make smaller.
18244 (tree_decl_common.align): Use bit-field.
18245
18246 * expr.c (expand_expr_addr_expr_1): Use SET_TYPE_ALIGN.
18247 * omp-low.c (install_var_field): Use SET_DECL_ALIGN.
18248 (scan_sharing_clauses): Ditto.
18249 (finish_taskreg_scan): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
18250 (omp_finish_file): Ditto.
18251 * stor-layout.c (do_type_align): Use SET_DECL_ALIGN.
18252 (layout_decl): Ditto.
18253 (relayout_decl): Ditto.
18254 (finalize_record_size): Use SET_TYPE_ALIGN.
18255 (finalize_type_size): Ditto.
18256 (finish_builtin_struct): Ditto.
18257 (layout_type): Ditto.
18258 (initialize_sizetypes): Ditto.
18259 * targhooks.c (std_gimplify_va_arg_expr): Use SET_TYPE_ALIGN.
18260 * tree-nested.c (insert_field_into_struct): Use SET_TYPE_ALIGN.
18261 (lookup_field_for_decl): Use SET_DECL_ALIGN.
18262 (get_chain_field): Ditto.
18263 (get_trampoline_type): Ditto.
18264 (get_nl_goto_field): Ditto.
18265 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
18266 SET_DECL_ALIGN.
18267 (unpack_ts_type_common_value_fields): Use SET_TYPE_ALIGN.
18268 * gimple-expr.c (copy_var_decl): Use SET_DECL_ALIGN.
18269 * tree.c (make_node_stat): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
18270 (build_qualified_type): Use SET_TYPE_ALIGN.
18271 (build_aligned_type, build_range_type_1): Ditto.
18272 (build_atomic_base): Ditto.
18273 (build_common_tree_nodes): Ditto.
18274 * cfgexpand.c (align_local_variable): Use SET_DECL_ALIGN.
18275 (expand_one_stack_var_at): Ditto.
18276 * coverage.c (build_var): Use SET_DECL_ALIGN.
18277 * except.c (init_eh): Ditto.
18278 * function.c (assign_parm_setup_block): Ditto.
18279 * symtab.c (increase_alignment_1): Ditto.
18280 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Ditto.
18281 * tree-vect-stmts.c (ensure_base_align): Ditto.
18282 * varasm.c (align_variable): Ditto.
18283 (assemble_variable): Ditto.
18284 (build_constant_desc): Ditto.
18285 (output_constant_def_contents): Ditto.
18286
18287 * config/arm/arm.c (arm_relayout_function): Use SET_DECL_ALIGN.
18288 * config/avr/avr.c (avr_adjust_type_node): Use SET_TYPE_ALIGN.
18289 * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Ditto.
18290 * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Ditto.
18291 * config/spu/spu.c (spu_build_builtin_va_list): Use SET_DECL_ALIGN.
18292
18293 2016-04-18 H.J. Lu <hongjiu.lu@intel.com>
18294
18295 PR target/70708
18296 * config/i386/sse.md (sse2_loadlpd): Accept load from "xm" and
18297 replace %vmovsd with "%vmovq".
18298 (vec_concatv2df): Likewise.
18299
18300 2016-04-18 Uros Bizjak <ubizjak@gmail.com>
18301
18302 * config/i386/mmx.md (*vec_extractv2sf_0): Use gen_lowpart.
18303 (*vec_extractv2si_0): Ditto.
18304 * config/i386/sse.md (*vec_extractv4sf_0): Ditto.
18305 (zero_extended_scalar_load_operand splitters): Ditto.
18306 (vec_extract splitters): Ditto.
18307 (*vec_extractv4si_0_zext): Ditto.
18308 (avx_<castmode><avxsizesuffix>_<castmode>): Use gen_lowpart
18309 and lowpart_subreg.
18310 (avx512f_<castmode><avxsizesuffix>_<castmode>): Ditto.
18311 (avx512f_<castmode><avxsizesuffix>_256<castmode>): Ditto.
18312 (*sse4_1_extractps): Use lowpart_subreg.
18313 * config/i386/i386.md (x87 floatsplitter): Use gen_lowpart.
18314
18315 2016-04-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18316
18317 * doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
18318 gld requirements.
18319 (Specific, *-*-solaris2*): Update Solaris 11 bundled gcc versions.
18320 Mention Solaris 11 packaging changes.
18321 Update gas and gld requirements.
18322 Remove reference to pre-Solaris 10 bug.
18323 (Specific, sparc-sun-solaris2*): Remove reference to pre-Solaris 10
18324 systems and bugs.
18325 (Specific, sparc64-*-solaris2*): Remove reference to bootstrap
18326 with cc.
18327
18328 2016-04-17 Jan Hubicka <jh@suse.cz>
18329
18330 * tree-ssa-loop-ivopts.c (avg_loop_niter): Use also
18331 max_loop_iterations_int.
18332
18333 2016-04-18 Richard Biener <rguenther@suse.de>
18334
18335 PR tree-optimization/43434
18336 * tree-ssa-structalias.c (struct vls_data): New.
18337 (visit_loadstore): Handle all pointer-based accesses.
18338 (compute_dependence_clique): Compute a bitmap of restrict tags
18339 assigned bases and pass it to visit_loadstore.
18340
18341 2016-04-18 Matthew Wahab <matthew.wahab@arm.com>
18342
18343 PR target/70711
18344 * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc,
18345 armv8.1-a and armv8.1-a+crc.
18346
18347 2016-04-18 Richard Biener <rguenther@suse.de>
18348
18349 PR tree-optimization/70701
18350 * tree-ssa-sccvn.c (vn_reference_lookup_3): Resolve fully constant
18351 references after translating through a memcpy.
18352
18353 2016-04-18 Richard Biener <rguenther@suse.de>
18354
18355 * tree-ssa-pre.c (postorder, postorder_num): Make locals ...
18356 (compute_antic): ... here. For partial antic use regular
18357 postorder and scrap iteration.
18358 (compute_partial_antic_aux): Remove unused return value.
18359 (init_pre): Do not allocate postorder.
18360 (fini_pre): Do not free postorder.
18361
18362 2016-04-18 Richard Biener <rguenther@suse.de>
18363
18364 PR middle-end/37870
18365 * expmed.c (extract_bit_field_1): Remove broken case
18366 using a wider MODE_INT mode.
18367
18368 2016-04-18 Segher Boessenkool <segher@kernel.crashing.org>
18369
18370 * has-brig.c (lendian16): Don't try to use __builtin_bswap16
18371 unless compiling with at least GCC-4.8.
18372
18373 2016-04-17 Jan Hubicka <jh@suse.cz>
18374
18375 PR bootstrap/70706
18376 * graphite.c (graphite_finalize): Update call to
18377 tree_estimate_probability.
18378 * predict.h (tree_estimate_probability): Update prototype.
18379
18380 2016-04-17 Jan Hubicka <jh@suse.cz>
18381
18382 * predict.c (combine_predictions_for_bb): Add dry_run parmaeter.
18383 (tree_estimate_probability): Likewise.
18384 (pass_profile::execute): Update.
18385 (report_predictor_hitrates): New function.
18386 * profile.c (compute_branch_probabilities): Use it.
18387 * predict.h (report_predictor_hitrates): Declare.
18388
18389 2016-04-17 Jan Hubicka <jh@suse.cz>
18390
18391 PR ipa/70018
18392 * cgraph.h (cgraph_node::set_const_flag,
18393 cgraph_node::set_pure_flag): Update prototype to return bool;
18394 update comment.
18395 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Thunks
18396 of interposable symbol are interposable, too.
18397 (cgraph_set_const_flag_1): Rename to ...
18398 (set_const_flag_1): ... this one; change to self recursive function
18399 instead of call_for_symbol_thunks_and_aliases. Handle correctly
18400 clearnig the flag in all variants and also virtual thunks of const
18401 functions are pure; track if any change was done.
18402 (cgraph_node::set_const_flag): Update.
18403 (struct set_pure_flag_info): New struct.
18404 (cgraph_set_pure_flag_1): Rename to ...
18405 (set_pure_flag_1): ... this one; take set_pure_flag_info parameter
18406 rather than pointer encoded flags; track if any changes was done;
18407 handle correctly clearning flag and setting flag of aliases already
18408 declared const.
18409 (cgraph_node::set_pure_flag): Update.
18410 (cgraph_node::set_nothrow_flag): Handle correctly clearning the flag.
18411
18412 2016-04-17 Tom de Vries <tom@codesourcery.com>
18413
18414 PR other/70433
18415 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Escape
18416 backslash in label.
18417
18418 2016-04-17 Tom de Vries <tom@codesourcery.com>
18419
18420 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Classify chars
18421 '{}<> ' as escape-for-record.
18422
18423 2016-04-17 Tom de Vries <tom@codesourcery.com>
18424
18425 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Simplify loop
18426 structure.
18427
18428 2016-04-17 Tom de Vries <tom@codesourcery.com>
18429
18430 PR other/70185
18431 * tree-pass.h (class opt_pass): Remove graph_dump_initialized member.
18432 * dumpfile.h (struct dump_file_info): Add graph_dump_initialized field.
18433 * dumpfile.c (dump_files): Initialize graph_dump_initialized field.
18434 * passes.c (finish_optimization_passes): Only call
18435 finish_graph_dump_file if dfi->graph_dump_initialized.
18436 (execute_function_dump, pass_init_dump_file): Use
18437 dfi->graph_dump_initialized instead of pass->graph_dump_initialized.
18438
18439 2016-04-17 Tom de Vries <tom@codesourcery.com>
18440
18441 PR tree-optimization/70256
18442 * tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap)
18443 (debug_varmap): New function.
18444
18445 2016-04-17 Tom de Vries <tom@codesourcery.com>
18446
18447 PR other/70183
18448 * passes.c (pass_manager::register_pass): Propagate pflags.
18449
18450 2016-04-17 Tom de Vries <tom@codesourcery.com>
18451
18452 PR other/68875
18453 * pass_manager.h (TERMINATE_PASS_LIST): Add pass argument.
18454 * passes.c (pass_manager::pass_manager): Declare and init p_start in
18455 INSERT_PASSES_AFTER. Add pass parameter to TERMINATE_PASS_LIST, and
18456 check if it's equal to p_start.
18457 * passes.def: Add arguments to TERMINATE_PASS_LISTs.
18458
18459 2016-04-15 Jan Hubicka <jh@suse.cz>
18460
18461 PR ipa/70018
18462 * cgraph.c (cgraph_set_const_flag_1): Only set as pure if
18463 function does not bind to current def.
18464 * ipa-pure-const.c (worse_state): Add FROM and TO parameters;
18465 handle conservatively calls to functions that does not need to bind
18466 to current def.
18467 (check_call): Update call of worse_state.
18468 (ignore_edge_for_nothrow): Update.
18469 (ignore_edge_for_pure_const): Likewise.
18470 (propagate_pure_const): Update calls to worse_state.
18471 (skip_function_for_local_pure_const): Reformat comments.
18472
18473 2016-04-15 Jan Hubicka <jh@suse.cz>
18474
18475 PR ipa/70018
18476 * cgraph.c (cgraph_node::get_availability): Add REF parameter.
18477 (cgraph_node::function_symbol): Likewise.
18478 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
18479 * cgraph.h (symtab_node::get_availabbility): Add REF parameter.
18480 (symtab_node::ultimate_alias_target): Add REF parameter.
18481 (symtab_node::binds_to_current_def_p): Declare.
18482 (symtab_node;:ultimate_alias_target_1): Add REF parameter.
18483 (cgraph_node::function_symbol): Likewise.
18484 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
18485 (cgraph_node::get_availability): Likewise.
18486 (cgraph_edge::binds_to_current_def_p): New inline function.
18487 (varpool_node::get_availability): Add REF parameter.
18488 (varpool_node::ultimate_alias_target): Likewise.
18489 * symtab.c (symtab_node::ultimate_alias_target_1): Likewise.
18490 (symtab_node::binds_to_current_def_p): Likewise.
18491 * varpool.c (varpool_node::get_availability): Likewise.
18492
18493 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
18494
18495 PR target/70662
18496 * config/i386/sse.md(define_insn "<avx512>_vec_dup<mode><mask_name>"):
18497 Fix mode size check.
18498
18499 2016-04-15 Jakub Jelinek <jakub@redhat.com>
18500
18501 * BASE-VER: Set to 7.0.0.
18502
18503 2016-04-15 Alexander Monakov <amonakov@ispras.ru>
18504
18505 * config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.
18506
18507 2016-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18508
18509 * doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T
18510 architecture revisions.
18511
18512 2016-04-15 Bernd Schmidt <bschmidt@redhat.com>
18513
18514 * config/i386/i386-protos.h (ix86_using_red_zone): Declare.
18515 * config/i386/i386.c (ix86_using_red_zone): No longer static.
18516 * config/i386/i386.md (stack decrement to push peepholes): Guard
18517 with !x86_using_red_zone ().
18518
18519 2016-04-15 Jakub Jelinek <jakub@redhat.com>
18520
18521 PR c++/70675
18522 * tree-pretty-print.c (do_niy): Add FLAGS argument, pass it down
18523 to dump_generic_node.
18524 (NIY): Pass also flags to do_niy.
18525
18526 2016-04-15 Thomas Schwinge <thomas@codesourcery.com>
18527
18528 * omp-low.c (simd_clone_struct_alloc, simd_clone_struct_copy)
18529 (simd_clone_vector_of_formal_parm_types)
18530 (simd_clone_clauses_extract, simd_clone_compute_base_data_type)
18531 (simd_clone_mangle, simd_clone_create)
18532 (simd_clone_adjust_return_type, create_tmp_simd_array)
18533 (simd_clone_adjust_argument_types, simd_clone_init_simd_arrays)
18534 (struct modify_stmt_info, ipa_simd_modify_stmt_ops)
18535 (ipa_simd_modify_function_body, simd_clone_linear_addend)
18536 (simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone)
18537 (pass_data_omp_simd_clone, class pass_omp_simd_clone)
18538 (pass_omp_simd_clone::gate, make_pass_omp_simd_clone): Move into...
18539 * omp-simd-clone.c: ... this new file.
18540 (simd_clone_vector_of_formal_parm_types): Make it static.
18541 * Makefile.in (OBJS): Add omp-simd-clone.o.
18542
18543 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
18544
18545 PR target/70662
18546 * config/i386/sse.md: Use proper memory operand modifiers.
18547
18548
18549 2016-04-15 Richard Biener <rguenther@suse.de>
18550 Alan Modra <amodra@gmail.com>
18551
18552 PR tree-optimization/70130
18553 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Detect
18554 when alignment stays not the same and no not use the realign
18555 scheme then.
18556
18557 2016-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
18558
18559 PR target/70669
18560 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
18561 direct move handlers for KFmode. Change TFmode handlers test from
18562 FLOAT128_IEEE_P to FLOAT128_VECTOR_P.
18563
18564 2016-04-14 Jakub Jelinek <jakub@redhat.com>
18565
18566 PR c++/70594
18567 * ipa-utils.h (polymorphic_ctor_dtor_p): New prototype.
18568 * ipa-polymorphic-call.c (polymorphic_ctor_dtor_p): New function.
18569 (inlined_polymorphic_ctor_dtor_block_p): Use it.
18570 * tree-ssa-live.c (remove_unused_scope_block_p): When
18571 in_ctor_dtor_block, avoid discarding not just BLOCKs with
18572 BLOCK_ABSTRACT_ORIGIN being FUNCTION_DECL, but even when
18573 block_ultimate_origin is FUNCTION_DECL.
18574 (remove_unused_locals): If current_function_decl is
18575 polymorphic_ctor_dtor_p, pass initial true to
18576 remove_unused_scope_block_p' is_ctor_dtor_block.
18577
18578 2016-04-14 Martin Sebor <msebor@redhat.com>
18579
18580 PR c++/69517
18581 PR c++/70019
18582 PR c++/70588
18583 * doc/extend.texi (Variable Length): Revert.
18584
18585 2016-04-14 Marek Polacek <polacek@redhat.com>
18586 Jan Hubicka <hubicka@ucw.cz>
18587
18588 PR c++/70029
18589 * tree.c (verify_type): Disable the canonical type of main variant
18590 check.
18591
18592 2016-04-14 Jason Merrill <jason@redhat.com>
18593
18594 * cfgexpand.c, expr.c: Revert previous change.
18595
18596 2016-04-14 Cesar Philippidis <cesar@codesourcery.com>
18597
18598 PR middle-end/70643
18599 * omp-low.c (lower_oacc_reductions): Check for TREE_CONSTANT
18600 when building a mem ref for the incoming reduction variable.
18601
18602 2016-04-14 Richard Biener <rguenther@suse.de>
18603
18604 PR tree-optimization/70614
18605 * tree-scalar-evolution.c (analyze_evolution_in_loop): Terminate
18606 loop if the evolution dropped to chrec_dont_know.
18607 (interpret_condition_phi): Likewise.
18608
18609 2016-04-14 Richard Biener <rguenther@suse.de>
18610
18611 PR tree-optimization/70623
18612 * tree-ssa-pre.c (changed_blocks): Make global ...
18613 (compute_antic): ... local here. Move and fix worklist
18614 handling here. Do not clear EDGE_DFS_BACK or call mark_dfs_back_edges.
18615 (compute_antic_aux): Add dumping for MAX assumed succs. Remove
18616 worklist handling, dump when ANTIC_IN changed.
18617 (compute_partial_antic_aux): Remove worklist handling.
18618 (init_pre): Do not compute post dominators. Add a comment about
18619 the CFG order chosen.
18620 (fini_pre): Do not free post dominators.
18621
18622 2016-04-13 Martin Sebor <msebor@redhat.com>
18623
18624 PR c++/69517
18625 PR c++/70019
18626 PR c++/70588
18627 * doc/extend.texi (Variable Length): Document C++ specifics.
18628
18629 2016-04-13 Jakub Jelinek <jakub@redhat.com>
18630
18631 PR c++/70641
18632 * ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt
18633 on all recursive call stmts. Return TODO_cleanup_cfg if any dead
18634 eh edges have been purged.
18635
18636 PR c++/70594
18637 * tree-sra.c (create_access_replacement,
18638 get_replaced_param_substitute): Set DECL_NAMELESS on repl if it
18639 gets fancy name.
18640 * tree-pretty-print.c (dump_fancy_name): New function.
18641 (dump_decl_name, dump_generic_node): Use it.
18642
18643 2016-04-13 Jason Merrill <jason@redhat.com>
18644
18645 * cfgexpand.c (pass_expand::execute): Handle attribute "abi warning".
18646 * expr.c (expand_expr_real_1): Likewise.
18647
18648 2016-04-13 Ilya Enkovich <ilya.enkovich@intel.com>
18649
18650 * config/i386/i386.md (kunpckhi): Swap operands.
18651 (kunpcksi): Likewise.
18652 (kunpckdi): Likewise.
18653 * config/i386/sse.md (vec_pack_trunc_qi): Likewise.
18654 (vec_pack_trunc_<mode>): Likewise.
18655
18656 2016-04-13 Jakub Jelinek <jakub@redhat.com>
18657
18658 PR debug/70628
18659 * explow.c (convert_memory_address_addr_space_1): Formatting fix.
18660
18661 PR middle-end/70633
18662 * gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
18663 gimplification turns some element into non-constant.
18664
18665 PR debug/70628
18666 * rtl.h (convert_memory_address_addr_space_1): New prototype.
18667 * explow.c (convert_memory_address_addr_space_1): No longer static,
18668 add NO_EMIT argument and don't call convert_modes if true, pass
18669 it down recursively, remove break after return.
18670 (convert_memory_address_addr_space): Adjust caller.
18671 * simplify-rtx.c (simplify_unary_operation_1): Call
18672 convert_memory_address_addr_space_1 instead of convert_memory_address,
18673 if it returns NULL, don't simplify.
18674
18675 2016-04-12 Eric Botcazou <ebotcazou@adacore.com>
18676
18677 PR target/70630
18678 * config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.
18679
18680 2016-04-12 Jakub Jelinek <jakub@redhat.com>
18681
18682 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
18683 Bump the upper SIMDLEN limits, so that if the return type or
18684 characteristic type if the return type is void can be passed in
18685 all available SSE2/AVX/AVX2/AVX512-F registers, the SIMDLEN is
18686 allowed.
18687
18688 2016-04-12 Michael Meissner <meissner@linux.vnet.ibm.com>
18689
18690 PR target/70640
18691 * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2_internal):
18692 Do not use "=" constraint on an input constraint.
18693 (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
18694 (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
18695 (ieee_128bit_vsx_nabs<mode>2): Correct splitter so that it
18696 generates (neg (abs ...)) instead of (abs ...).
18697
18698 2016-04-12 Jakub Jelinek <jakub@redhat.com>
18699
18700 PR rtl-optimization/70596
18701 * lra-spills.c (spill_pseudos): Don't delete debug insns, instead
18702 just invalidate LRA data and reset them. Adjust dump wording.
18703
18704 2016-04-12 Martin Liska <mliska@suse.cz>
18705
18706 Revert
18707 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
18708
18709 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
18710 estimates here.
18711 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
18712 max_loop_iterations_int.
18713 (tree_unswitch_outer_loop): Likewise.
18714 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
18715 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
18716
18717 2016-04-12 Tom de Vries <tom@codesourcery.com>
18718
18719 PR tree-optimization/68756
18720 * graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr
18721 instead of new_name.
18722
18723 2016-04-12 Jakub Jelinek <jakub@redhat.com>
18724
18725 PR tree-optimization/70602
18726 * tree-sra.c (generate_subtree_copies): Don't write anything into
18727 constant pool decls.
18728
18729 * omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
18730 regardless whether there are depend clauses or not.
18731
18732 2016-04-11 Michael Meissner <meissner@linux.vnet.ibm.com>
18733
18734 PR target/70381
18735 * config/rs6000/rs6000.c (rs6000_opt_masks): Disable using the
18736 target attribute and pragma from changing the -mfloat128
18737 and -mfloat128-hardware options.
18738
18739 * doc/extend.texi (Additional Floating Types): Document PowerPC
18740 __float128 restrictions.
18741
18742 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
18743
18744 PR target/70133
18745 * config/aarch64/driver-aarch64.c
18746 (aarch64_get_extension_string_for_isa_flags): New.
18747 (arch_extension): Rename to...
18748 (aarch64_arch_extension): ...This.
18749 (ext_to_feat_string): Rename to...
18750 (aarch64_extensions): ...This.
18751 (aarch64_core_data): Keep track of architecture extension flags.
18752 (cpu_data): Rename to...
18753 (aarch64_cpu_data): ...This.
18754 (aarch64_arch_driver_info): Keep track of architecture extension
18755 flags.
18756 (get_arch_name_from_id): Rename to...
18757 (get_arch_from_id): ...This, change return type.
18758 (host_detect_local_cpu): Update and reformat for renames, handle
18759 extensions through common infrastructure.
18760
18761 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
18762
18763 PR target/70133
18764 * config/aarch64/aarch64-common.c (aarch64_option_extension): Keep
18765 track of a canonical flag name.
18766 (all_extensions): Likewise.
18767 (arch_to_arch_name): Also track extension flags enabled by the arch.
18768 (all_architectures): Likewise.
18769 (aarch64_parse_extension): Move to here.
18770 (aarch64_get_extension_string_for_isa_flags): Take a new argument,
18771 rework.
18772 (aarch64_rewrite_selected_cpu): Update for above change.
18773 * config/aarch64/aarch64-option-extensions.def: Rework the way flags
18774 are handled, such that the single explicit value enabled by an
18775 extension is kept seperate from the implicit values it also enables.
18776 * config/aarch64/aarch64-protos.h (aarch64_parse_opt_result): Move
18777 to here.
18778 (aarch64_parse_extension): New.
18779 * config/aarch64/aarch64.c (aarch64_parse_opt_result): Move from
18780 here to config/aarch64/aarch64-protos.h.
18781 (aarch64_parse_extension): Move from here to
18782 common/config/aarch64/aarch64-common.c.
18783 (aarch64_option_print): Update.
18784 (aarch64_declare_function_name): Likewise.
18785 (aarch64_start_file): Likewise.
18786 * config/aarch64/driver-aarch64.c (arch_extension): Keep track of
18787 the canonical flag for extensions.
18788 * config.gcc (aarch64*-*-*): Extend regex for capturing extension
18789 flags.
18790
18791 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
18792
18793 * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
18794 AARCH64_FL_CRC.
18795
18796 2016-04-09 Tom de Vries <tom@codesourcery.com>
18797
18798 PR tree-optimization/68953
18799 * graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from
18800 first to last subscript.
18801
18802 2016-04-09 Jakub Jelinek <jakub@redhat.com>
18803
18804 PR tree-optimization/70586
18805 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false
18806 for any calls.
18807
18808 2016-04-08 Cesar Philippidis <cesar@codesourcery.com>
18809
18810 PR lto/70289
18811 PR ipa/70348
18812 PR tree-optimization/70373
18813 PR middle-end/70533
18814 PR middle-end/70534
18815 PR middle-end/70535
18816 * gimplify.c (gimplify_adjust_omp_clauses): Add or adjust data
18817 clauses for acc parallel reductions as necessary. Error on those
18818 that are private.
18819 * omp-low.c (scan_sharing_clauses): Don't install variables which
18820 are used in acc parallel reductions.
18821 (lower_rec_input_clauses): Remove dead code.
18822 (lower_oacc_reductions): Add support for reference reductions.
18823 (lower_reduction_clauses): Remove dead code.
18824 (lower_omp_target): Don't remap variables appearing in acc parallel
18825 reductions.
18826 * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro.
18827
18828 2016-04-08 Jakub Jelinek <jakub@redhat.com>
18829
18830 PR middle-end/70593
18831 * tree-ssa-coalesce.c (build_ssa_conflict_graph): For stmt
18832 with multiple SSA_NAME defs, force the outputs other than first
18833 to be live before calling live_track_process_def on each output.
18834
18835 PR rtl-optimization/70574
18836 * fwprop.c (forward_propagate_and_simplify): Don't add
18837 REG_EQUAL note if DF_REF_REG (use) is a paradoxical subreg.
18838 (try_fwprop_subst): Don't add REG_EQUAL note if there are any
18839 paradoxical subregs within *loc.
18840
18841 2016-04-08 Thomas Schwinge <thomas@codesourcery.com>
18842
18843 * config/arc/arc.h (LINK_COMMAND_SPEC): Use gt to ignore
18844 -ftree-parallelize-loops={0,1}.
18845 * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
18846 * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
18847 * config/ia64/hpux.h (LIB_SPEC): Likewise.
18848 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
18849 * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
18850
18851 2016-04-08 Maxim Ostapenko <m.ostapenko@samsung.com>
18852
18853 PR sanitizer/70541
18854 * asan.c (instrument_derefs): If we get unknown location, extract it
18855 with EXPR_LOCATION.
18856 (maybe_instrument_call): Instrument gimple_call's arguments if needed.
18857
18858 2016-04-08 Tom de Vries <tom@codesourcery.com>
18859
18860 * omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc
18861 implicit firstprivate clause.
18862
18863 2016-04-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18864
18865 PR target/70566
18866 * config/arm/thumb2.md (tst + branch-> lsls + branch
18867 peephole below *orsi_not_shiftsi_si): Require that condition
18868 register is dead after the peephole.
18869 (second peephole after the above): Likewise.
18870
18871 2016-04-08 Alan Modra <amodra@gmail.com>
18872
18873 PR target/70117
18874 * builtins.c (fold_builtin_classify): For IBM extended precision,
18875 look at just the high-order double to test for NaN.
18876 (fold_builtin_interclass_mathfn): Similarly for Inf. For isnormal
18877 test just the high double for Inf but both doubles for subnormal
18878 limit.
18879
18880 2016-04-07 Jakub Jelinek <jakub@redhat.com>
18881
18882 * cgraph.h (struct cgraph_simd_clone): Add mask_mode field.
18883 * omp-low.c (simd_clone_init_simd_arrays, simd_clone_adjust): Handle
18884 node->simdclone->mask_mode != VOIDmode masks.
18885 (simd_clone_adjust_argument_types): Likewise. Move sc var definition
18886 earlier, use it instead of node->simdclone.
18887 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
18888 Set clonei->mask_mode.
18889
18890 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
18891
18892 PR c/70436
18893 * parser.c (cp_parser_iteration_statement): New parameter IF_P.
18894 Pass it through to cp_parser_already_scoped_statement.
18895 (cp_parser_already_scoped_statement): New parameter IF_P. Pass
18896 it through to cp_parser_statement.
18897 (cp_parser_statement): Pass IF_P through to
18898 cp_parser_iteration_statement.
18899 (cp_parser_pragma): Adjust call to
18900 cp_parser_iteration_statement.
18901
18902 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
18903
18904 PR c/70436
18905 * gimplify.c (gimplify_omp_ordered): Add explicit braces to
18906 resolve a future -Wparentheses warning.
18907 * omp-low.c (scan_sharing_clauses): Likewise.
18908 * tree-parloops.c (eliminate_local_variables): Likewise.
18909
18910 2016-04-06 Vladimir Makarov <vmakarov@redhat.com>
18911
18912 PR rtl-optimization/70398
18913 * lra-constraints.c (process_address_1): Check zero scale and code
18914 for reloading with zero scale.
18915
18916 2016-04-06 Uros Bizjak <ubizjak@gmail.com>
18917
18918 * config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
18919 (ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.
18920
18921 2016-04-06 Jakub Jelinek <jakub@redhat.com>
18922
18923 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
18924 Add support for AVX512F clones, include them by default for
18925 exported OpenMP declare simd functions. For AVX2 allow simdlen 32
18926 and use it if charasteric type is 8-bit, for AVX512F allow simdlen
18927 up to 128.
18928
18929 PR middle-end/70550
18930 * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define.
18931 * gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit
18932 firstprivate clauses.
18933 * omp-low.c (lower_send_clauses): Set TREE_NO_WARNING for
18934 OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT !by_ref vars in task contexts.
18935 (lower_omp_target): Set TREE_NO_WARNING for
18936 non-addressable possibly uninitialized vars which are copied into
18937 addressable temporaries or copied for GOMP_MAP_FIRSTPRIVATE_INT.
18938
18939 2016-04-05 John David Anglin <danglin@gcc.gnu.org>
18940
18941 * config/pa/predicates.md (integer_store_memory_operand): Accept
18942 REG+D operands with a large offset when reload_in_progress is true.
18943 (floating_point_store_memory_operand): Likewise.
18944
18945 2016-04-05 Jakub Jelinek <jakub@redhat.com>
18946
18947 PR c++/70336
18948 * match.pd (nested int casts): Limit to GIMPLE.
18949
18950 2016-04-05 Jan Hubicka <hubicka@ucw.cz>
18951
18952 PR ipa/66223
18953 * ipa-devirt.c (maybe_record_node): Fix comment; use
18954 SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.
18955
18956 2016-04-05 Jakub Jelinek <jakub@redhat.com>
18957
18958 PR rtl-optimization/70542
18959 * ree.c (add_removable_extension): For VECTOR_MODE_P punt
18960 if there are any uses other than insn or debug insns.
18961
18962 2016-04-05 Marc Glisse <marc.glisse@inria.fr>
18963 Jakub Jelinek <jakub@redhat.com>
18964
18965 PR tree-optimization/70509
18966 * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SELECT>:
18967 Shift HOST_WIDE_INT_1U instead of 1.
18968
18969 2016-04-05 Zdenek Sojka <zsojka@seznam.cz>
18970
18971 PR tree-optimization/70509
18972 * tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int instead
18973 of the vector base type for index.
18974
18975 2016-04-05 Uros Bizjak <ubizjak@gmail.com>
18976
18977 PR target/70510
18978 * config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.
18979
18980 2016-04-05 Richard Biener <rguenther@suse.de>
18981
18982 PR tree-optimization/70526
18983 * tree-sra.c (build_ref_for_offset): Use prev_base to
18984 extract the alias pointer type.
18985
18986 2016-04-05 Richard Biener <rguenther@suse.de>
18987
18988 * dse.c (struct store_info): Remove alias_set member.
18989 (struct read_info_type): Likewise.
18990 (clear_alias_group, clear_alias_mode_table, clear_alias_mode_holder,
18991 spill_deleted, clear_alias_set_lookup): Remove.
18992 (get_group_info): Remove dead base == NULL_RTX case.
18993 (dse_step0): Remove initialization of removed variables.
18994 (delete_dead_store_insn): Reomve alias set dumping.
18995 (free_read_records): Remove alias_set handling.
18996 (canon_address): Remove alias_set_out parameter.
18997 (record_store): Remove spill_alias_set, it's always zero.
18998 (check_mem_read_rtx): Likewise.
18999 (dse_step2): Rename from ...
19000 (dse_step2_nospill): ... this. Adjust.
19001 (scan_stores): Rename from ...
19002 (scan_stores_nospill): ... this.
19003 (scan_reads): Rename from ...
19004 (scan_reads_nospill): ... this.
19005 (scan_stores_spill, scan_reads_spill): Remove.
19006 (dse_step3_scan): Remove for_spills argument which is always false.
19007 (dse_step3): Likewise.
19008 (dse_step5): Rename from ...
19009 (dse_step5_nospill): ... this. Remove alias_set handling.
19010 (rest_of_handle_dse): Adjust.
19011
19012 2016-04-05 Jakub Jelinek <jakub@redhat.com>
19013
19014 PR target/70525
19015 * config/i386/sse.md (*andnot<mode>3): Simplify assertions.
19016 Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for
19017 V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting.
19018 (*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator.
19019
19020 2016-04-05 Richard Biener <rguenther@suse.de>
19021
19022 PR middle-end/70499
19023 * gimplify-me.c (gimple_regimplify_operands): Do not rewrite
19024 non-register type temporaries into SSA.
19025
19026 2016-04-04 Jan Hubicka <hubicka@ucw.cz>
19027
19028 PR ipa/66223
19029 * ipa-devirt.c (maybe_record_node): Do not optimize cxa_pure_virtual
19030 calls when sanitizing.
19031 (possible_polymorphic_call_target_p): Fix formatting.
19032
19033 2016-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
19034 Jakub Jelinek <jakub@redhat.com>
19035
19036 PR middle-end/70457
19037 * tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p
19038 to ensure a call statement is compatible with a built-in's
19039 prototype.
19040 * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
19041 Likewise.
19042
19043 2016-04-04 Richard Biener <rguenther@suse.de>
19044
19045 PR rtl-optimization/70484
19046 * rtl.h (canon_output_dependence): Declare.
19047 * alias.c (canon_output_dependence): New function.
19048 * dse.c (record_store): Use canon_output_dependence rather
19049 than canon_true_dependence.
19050
19051 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
19052
19053 PR ipa/68881
19054 * cgraph.h (symtab_node::copy_visibility_from): New function.
19055 * symtab.c (symtab_node::copy_visibility_from): New function.
19056 * ipa-visibility.c (optimize_weakref): New function.
19057 (function_and_variable_visibility): Use it.
19058
19059 2016-04-04 Martin Liska <mliska@suse.cz>
19060
19061 PR hsa/70402
19062 * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Guard index
19063 value that is really in range handled by SBR instruction.
19064 * hsa-brig.c (emit_switch_insn): Do not emit unconditional jump.
19065 * hsa-dump.c (dump_hsa_insn_1): Do not dump default BB.
19066 * hsa.h (hsa_insn_sbr::m_default_bb): Remove field.
19067
19068 2016-04-03 Oleg Endo <olegendo@gcc.gnu.org>
19069
19070 PR target/70416
19071 PR target/67391
19072 * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
19073 set, but not for SP_REG operands.
19074
19075 2016-04-02 Martin Sebor <msebor@redhat.com>
19076
19077 PR c++/67376
19078 * fold-const.c (maybe_nonzero_address): New function.
19079 (fold_comparison): Call it. Fold equality and relational
19080 expressions involving null pointers.
19081 (tree_single_nonzero_warnv_p): Call maybe_nonzero_address.
19082
19083 2016-03-31 Evandro Menezes <e.menezes@samsung.com>
19084
19085 Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
19086 the "Y" constraint (scalar FP 0.0 immediate).
19087
19088 * config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
19089 Add the "const_double" to the list of operand constraints.
19090
19091 2016-04-01 Jakub Jelinek <jakub@redhat.com>
19092
19093 PR rtl-optimization/70467
19094 * config/i386/i386.md (*add<dwi>3_doubleword, *sub<dwi>3_doubleword):
19095 If low word of the last operand is 0, just emit addition/subtraction
19096 for the high word.
19097
19098 2016-04-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19099
19100 PR target/70404
19101 * config/s390/s390.c (s390_expand_insv): Check for everything
19102 constant instead of just VOIDmode stuff.
19103
19104 2016-04-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
19105
19106 PR target/70496
19107 * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB.
19108
19109 2016-04-01 Nathan Sidwell <nathan@acm.org>
19110
19111 * tree.def (TRY_CATCH_EXPR): Correct documentation.
19112
19113 2016-03-31 Vladimir Makarov <vmakarov@redhat.com>
19114
19115 PR rtl-optimization/70461
19116 * ira-color.c (allocno_copy_cost_saving): Use allocno class if it
19117 is necessary.
19118
19119 2016-03-31 Martin Liska <mliska@suse.cz>
19120
19121 PR hsa/70399
19122 * hsa-brig.c (hsa_op_immed::emit_to_buffer): Emit either
19123 a tree value or an immediate integer value to a buffer
19124 that is eventually copied to a BRIG section.
19125 (emit_immediate_operand): Call the function here.
19126 * hsa-dump.c (dump_hsa_immed): Remove checking assert.
19127 * hsa-gen.c (hsa_op_immed::hsa_op_immed): Remove initialization
19128 of class' fields that are removed.
19129 (hsa_op_immed::~hsa_op_immed): Remove deinitialization.
19130 * hsa.h (class hsa_op_immed): Remove m_brig_repr and
19131 m_brig_repr_size fields.
19132
19133 2016-03-31 Martin Liska <mliska@suse.cz>
19134
19135 PR hsa/70391
19136 * hsa-gen.c (hsa_function_representation::update_dominance): New
19137 function.
19138 (convert_addr_to_flat_segment): Likewise.
19139 (gen_hsa_memory_set): New alignment argument.
19140 (gen_hsa_ctor_assignment): Likewise.
19141 (gen_hsa_insns_for_single_assignment): Provide alignment
19142 to gen_hsa_ctor_assignment.
19143 (gen_hsa_insns_for_direct_call): Add new argument.
19144 (expand_lhs_of_string_op): New function.
19145 (expand_string_operation_builtin): Likewise.
19146 (expand_memory_copy): New function.
19147 (expand_memory_set): New function.
19148 (gen_hsa_insns_for_call): Use HOST_WIDE_INT.
19149 (convert_switch_statements): Change signature.
19150 (generate_hsa): Use a return value of the function.
19151 (pass_gen_hsail::execute): Do not call
19152 convert_switch_statements here.
19153 * hsa-regalloc.c (hsa_regalloc): Call update_dominance.
19154 * hsa.h (hsa_function_representation::m_modified_cfg): New flag.
19155 (hsa_function_representation::update_dominance): New function.
19156
19157 2016-03-31 Martin Liska <mliska@suse.cz>
19158
19159 PR hsa/70391
19160 * hsa-brig.c (emit_directive_variable): Emit alignment
19161 according to hsa_symbol::m_align.
19162 * hsa-dump.c (hsa_byte_alignment): Move the function to another file.
19163 (dump_hsa_symbol): Dump alignment of HSA symbols.
19164 * hsa-gen.c (get_symbol_for_decl): Set-up alignment of a symbol.
19165 (gen_hsa_addr_with_align): New function.
19166 (hsa_bitmemref_alignment): Use newly added function.
19167 (gen_hsa_insns_for_load): Likewise.
19168 (gen_hsa_insns_for_store): Likewise.
19169 (gen_hsa_memory_copy): New argument added.
19170 (gen_hsa_insns_for_single_assignment): Respect
19171 alignment for assignments processed via gen_hsa_memory_copy.
19172 (gen_hsa_insns_for_direct_call): Likewise.
19173 (gen_hsa_insns_for_return): Likewise.
19174 (gen_function_def_parameters): Set default alignment.
19175 * hsa.c (hsa_object_alignment): New function.
19176 (hsa_byte_alignment): Pasted function.
19177 * hsa.h (hsa_symbol::m_align): New field.
19178
19179 2016-03-31 Bin Cheng <bin.cheng@arm.com>
19180
19181 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
19182 scratch field for goto case.
19183
19184 2016-03-31 James Greenhalgh <james.greenhalgh@arm.com>
19185
19186 * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.
19187
19188 2016-03-31 Ilya Enkovich <enkovich.gnu@gmail.com>
19189
19190 PR target/70442
19191 * config/i386/i386.c (scalar_chain::convert_op): Fix description.
19192 (scalar_chain::convert_insn): Call convert_op for reg
19193 moves to handle undefined registers.
19194
19195 2016-03-31 Nathan Sidwell <nathan@acm.org>
19196
19197 PR c++/70393
19198 * varasm.c (output_constructor_regular_field): Flush bitfield earlier.
19199 Assert we don't want to move backwards.
19200
19201 2016-03-31 Kirill Yukhin <kirill.yukhin@intel.com>
19202
19203 PR target/70453
19204 * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
19205
19206 2016-03-31 Jakub Jelinek <jakub@redhat.com>
19207
19208 PR rtl-optimization/70460
19209 * ira.c (indirect_jump_optimize): Don't substitute LABEL_REF
19210 with operand from REG_LABEL_OPERAND, instead substitute
19211 SET_SRC or REG_EQUAL note content if it is a LABEL_REF.
19212 Don't do anything for REG_NON_LOCAL_GOTO jumps.
19213
19214 2016-03-31 Martin Liska <mliska@suse.cz>
19215
19216 * passes.c (execute_one_pass): Do not call
19217 todo_after for a discarded function.
19218
19219 2016-03-31 Bin Cheng <bin.cheng@arm.com>
19220
19221 * tree-ssa-loop-ivopts.c (struct comp_cost): New scrach field.
19222 (no_cost, infinite_cost): Initialize the new field.
19223 (get_computation_cost_at): Record setup cost.
19224 (determine_use_iv_cost_address): Skip cost computation for sub
19225 uses if we can estimate it without losing accuracy.
19226
19227 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
19228
19229 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
19230 estimates here.
19231 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
19232 max_loop_iterations_int.
19233 (tree_unswitch_outer_loop): Likewise.
19234 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
19235 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
19236
19237 2016-03-30 Richard Biener <rguenther@suse.de>
19238
19239 PR middle-end/70450
19240 * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage.
19241
19242 2016-03-30 Jakub Jelinek <jakub@redhat.com>
19243
19244 PR target/70421
19245 * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
19246 in gen_blendm expander.
19247
19248 2016-03-30 Nick Clifton <nickc@redhat.com>
19249
19250 PR target/62254
19251 * config/arm/arm.c (arm_reload_out_hi): Add code to handle the
19252 case where we are already provided with an SImode SUBREG.
19253
19254 2016-03-30 H.J. Lu <hongjiu.lu@intel.com>
19255
19256 PR target/70439
19257 * config/i386/i386.c (ix86_expand_epilogue): Properly check
19258 conflict between DRAP register and __builtin_eh_return.
19259
19260 2016-03-30 Michael Matz <matz@suse.de>
19261 Richard Biener <rguenther@suse.de>
19262
19263 PR ipa/12392
19264 * ipa-polymorphic-call.c (struct type_change_info): Change
19265 speculative to an unsigned allowing to limit the work we do.
19266 (csftc_abort_walking_p): New inline function..
19267 (check_stmt_for_type_change): Limit the number of may-defs
19268 skipped for speculative devirtualization to
19269 max-speculative-devirt-maydefs.
19270 * params.def (max-speculative-devirt-maydefs): New param.
19271 * doc/invoke.texi (--param max-speculative-devirt-maydefs): Document.
19272
19273 2016-03-30 Mike Stump <mrs@gcc.gnu.org>
19274
19275 PR target/63890
19276 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
19277 and TARGET_MACHO.
19278
19279 2016-03-30 Patrick Palka <ppalka@gcc.gnu.org>
19280
19281 PR tree-optimization/59124
19282 * tree-vrp.c (register_edge_assert_for_2): For NAME != CST1
19283 where NAME = A +- CST2 add the assertion A != (CST1 -+ CST2).
19284
19285 2016-03-29 Jeff Law <law@redhat.com>
19286
19287 * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment.
19288
19289 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
19290
19291 * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
19292 to HOST_WIDE_INT.
19293
19294 2016-03-29 Thomas Schwinge <thomas@codesourcery.com>
19295
19296 * config/gnu.h (CPP_SPEC, LIB_SPEC): Don't override.
19297 * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt1.o instead of
19298 gcrt0.o if linking dynamically.
19299
19300 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
19301
19302 PR ipa/70283
19303 * ipa-devirt.c (methods_equal_p): New function.
19304 (compare_virtual_tables): Use it.
19305 * cgraph.h (symbol_table::symbol_suffix_separator): Declare.
19306 * cgraphclones.c (clone_function_name_1): Use
19307 symbol_table::symbol_suffix_separator.
19308 * coverage.c (build_var): Likewise.
19309 * symtab.c (symbol_table::symbol_suffix_separator): New.
19310
19311 2016-03-29 Jakub Jelinek <jakub@redhat.com>
19312
19313 PR rtl-optimization/70429
19314 * combine.c (simplify_shift_const_1): For ASHIFTRT don't optimize
19315 (cst1 >> count) >> cst2 into (cst1 >> cst2) >> count if
19316 mode != result_mode.
19317
19318 PR c++/70353
19319 * tree-inline.c (remap_decls): Don't add_local_decl if cfun is null.
19320
19321 PR tree-optimization/70405
19322 * ssa-iterators.h (num_imm_uses): Add missing braces.
19323
19324 2016-03-29 Vladimir Makarov <vmakarov@redhat.com>
19325
19326 PR rtl-optimization/68695
19327 * ira-color.c (allocno_copy_cost_saving): New.
19328 (improve_allocation): Use it.
19329
19330 2016-03-29 Richard Henderson <rth@redhat.com>
19331
19332 PR middle-end/70355
19333 * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.
19334
19335 2016-03-29 Richard Biener <rguenther@suse.de>
19336
19337 PR middle-end/70424
19338 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
19339 use alignment returned by get_pointer_alignment_1 if it is
19340 bigger than BITS_PER_UNIT.
19341 * builtins.c (get_pointer_alignment_1): Do not return true
19342 for alignment extracted from SSA info.
19343
19344 2016-03-28 James Bowman <james.bowman@ftdichip.com>
19345
19346 * config/ft32/ft32.opt (mnodiv): New.
19347 * config/ft32/ft32.md (*divsi3, *modsi3): Qualify with TARGET_NODIV.
19348 * doc/invoke.texi (FT32 Options -mnodiv): New.
19349
19350 2016-03-28 Kirill Yukhin <kirill.yukhin@intel.com>
19351
19352 PR target/70406
19353 * config/i386/i386.md (define_split, andn): Fix modes.
19354
19355 2016-03-26 Richard Biener <rguenther@suse.de>
19356 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
19357
19358 PR ipa/70366
19359 * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
19360 instead of
19361 TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
19362 as 2nd argument to cl_optimization_restore().
19363
19364 2016-03-25 Richard Henderson <rth@redhat.com>
19365
19366 PR target/70120
19367 * config/aarch64/aarch64.c (aarch64_asm_output_pool_epilogue): New.
19368 * config/aarch64/aarch64-protos.h: Declare it.
19369 * config/aarch64/aarch64.h (ASM_OUTPUT_POOL_EPILOGUE): New.
19370
19371 2016-03-25 Alan Modra <amodra@gmail.com>
19372
19373 PR target/70052
19374 * config/rs6000/constraints.md (j): Simplify.
19375 * config/rs6000/predicates.md (easy_fp_constant): Exclude
19376 decimal float 0.D.
19377 * config/rs6000/rs6000.md (zero_fp): New mode_attr.
19378 (mov<mode>_hardfloat, mov<mode>_hardfloat32, mov<mode>_hardfloat64,
19379 mov<mode>_64bit_dm, mov<mode>_32bit): Use zero_fp in place of j
19380 in all constraint alternatives.
19381 (movtd_64bit_nodm): Delete "j" constraint alternative.
19382
19383 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
19384
19385 * tree-ssa-propagate.c: Enhance docs for
19386 SSA_PROP_NOT_INTERESTING.
19387
19388 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
19389
19390 * doc/extend.texi: Fix typo in documentation to pure attribute.
19391
19392 2016-03-24 John David Anglin <danglin@gcc.gnu.org>
19393
19394 PR target/70319
19395 * config/pa/pa.md (bswapdi2): Use a scratch register.
19396
19397 2016-03-24 Richard Henderson <rth@redhat.com>
19398
19399 PR middle-end/69845
19400 * fold-const.c (extract_muldiv_1): Correct test for multiplication
19401 overflow.
19402
19403 2016-03-24 Uros Bizjak <ubizjak@gmail.com>
19404
19405 * config/i386/i386.md (*anddi3_doubleword): Generate AND insn
19406 using ix86_expand_binary_operator instead of gen_andsi3.
19407
19408 2016-03-24 Richard Biener <rguenther@suse.de>
19409
19410 PR tree-optimization/70396
19411 * tree-vect-stmts.c (vectorizable_comparison): Use
19412 get_vectype_for_scalar_type.
19413
19414 2016-03-24 Richard Biener <rguenther@suse.de>
19415
19416 PR middle-end/70370
19417 * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
19418 with register bases.
19419
19420 2016-03-24 Richard Biener <rguenther@suse.de>
19421
19422 PR tree-optimization/70372
19423 * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Use
19424 build_all_ones_cst to also handle vector types correctly.
19425
19426 2016-03-23 Michael Meissner <meissner@linux.vnet.ibm.com>
19427
19428 PR target/70381
19429 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
19430 -mfloat128 here.
19431
19432 2016-03-23 Marek Polacek <polacek@redhat.com>
19433
19434 PR c++/69884
19435 * doc/invoke.texi: Document -Wignored-attributes.
19436
19437 2016-03-23 Bin Cheng <bin.cheng@arm.com>
19438
19439 PR tree-optimization/69042
19440 * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
19441 parameter from 30 to 40.
19442
19443 2016-03-23 Bin Cheng <bin.cheng@arm.com>
19444
19445 PR tree-optimization/69042
19446 * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Add IV cand
19447 for use with constant offset stripped in base.
19448
19449 2016-03-23 Richard Biener <rguenther@suse.de>
19450
19451 PR middle-end/70251
19452 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust
19453 mode compatibility check.
19454 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
19455
19456 2016-03-23 Jeff Law <law@redhat.com>
19457
19458 PR tree-optimization/64058
19459 * tree-ssa-coalesce.c (struct coalesce_pair): Add new field
19460 CONFLICT_COUNT.
19461 (struct ssa_conflicts): Move up earlier in the file.
19462 (conflicts_, var_map_): New static variables.
19463 (initialize_conflict_count): New function to initialize the
19464 CONFLICT_COUNT field for each conflict pair.
19465 (compare_pairs): Lazily initialize the conflict count and use it
19466 as the first tie-breaker.
19467 (sort_coalesce_list): Add new arguments conflicts, map. Initialize
19468 and wipe conflicts_ and map_ around the call to qsort. Remove
19469 special case for 2 coalesce pairs.
19470 * bitmap.c (bitmap_count_unique_bits): New function.
19471 (bitmap_count_bits_in_word): New function, extracted from
19472 bitmap_count_bits.
19473 (bitmap_count_bits): Use bitmap_count_bits_in_word.
19474 * bitmap.h (bitmap_count_unique_bits): Declare it.
19475
19476 2016-03-23 Ilya Enkovich <enkovich.gnu@gmail.com>
19477
19478 PR target/69917
19479 * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
19480 transparent alias chain for decl assembler name.
19481 * config/sol2.c (solaris_assemble_visibility): Likewise.
19482
19483 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19484
19485 * config/arm/arm1020e.md (1020call_op): Reduce reservation
19486 duration.
19487 (v10_fdivs): Likewise.
19488 (v10_fdivd): Likewise.
19489
19490 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19491
19492 PR driver/70132
19493 * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
19494 to not call fclose twice on file.
19495
19496 2016-03-23 Jakub Jelinek <jakub@redhat.com>
19497
19498 PR tree-optimization/70354
19499 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
19500 oprnd0 is wider than oprnd1 and there is a cast from the wider
19501 type to oprnd1, mask it with the mask of the narrower type.
19502
19503 PR target/70321
19504 * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
19505 Optimize TARGET_STV splitters, if high or low word of last argument
19506 is 0 or -1.
19507
19508 2016-03-22 Jeff Law <law@redhat.com>
19509
19510 PR target/70232
19511 tree-ssa-threadbackward.c
19512 (fsm_find_control_statement_thread_paths): Correctly distinguish
19513 between old style jump threads vs FSM jump threads.
19514
19515 2016-03-22 Ilya Enkovich <enkovich.gnu@gmail.com>
19516
19517 PR target/70302
19518 * config/i386/i386.c (scalar_chain::convert_op): Support
19519 uninitialized register usage case.
19520
19521 2016-03-22 Richard Biener <rguenther@suse.de>
19522
19523 PR middle-end/70251
19524 * genmatch.c (gen_transform): Adjust last parameter to a three-state
19525 int...
19526 (capture::gen_transform): ... to change behavior when substituting
19527 a condition into cond or not-cond expr context.
19528 (dt_simplify::gen_1): Adjust.
19529 * gimple-match-head.c: Include gimplify.h for unshare_expr.
19530 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Revert
19531 last change and instead change to
19532 A + (B vcmp C ? 1 : 0) -> A - (B vcmp C ? -1 : 0).
19533 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
19534
19535 2016-03-22 Anthony Green <green@moxielogic.com>
19536
19537 * config/moxie/moxiebox.h (CC1_SPEC): Define. Fix endianness
19538 issue for moxiebox targets.
19539 (CC1PLUS_SPEC): Ditto.
19540
19541 2016-03-22 Richard Biener <rguenther@suse.de>
19542
19543 PR middle-end/70333
19544 * fold-const.c (extract_muldiv_1): Properly perform multiplication
19545 in the wide type.
19546
19547 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
19548
19549 * config/i386/i386.c (def_builtin): Remove duplicated functionality.
19550
19551 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
19552
19553 PR target/70325
19554 * config/i386/i386.c (def_builtin): Handle
19555 OPTION_MASK_ISA_AVX512VL to be and-ed with other
19556 bits.
19557 (const struct builtin_description bdesc_special_args[]):
19558 Remove duplicate ISA bits.
19559
19560 2016-03-22 Jakub Jelinek <jakub@redhat.com>
19561
19562 PR target/70329
19563 * config/i386/i386.c (ix86_expand_vecop_qihi): Don't bother computing
19564 d.perm[i] for i >= d.nelt. If not full_interleave, compute d.perm[i]
19565 in a way that works also for AVX512BW.
19566
19567 PR target/70300
19568 * config/i386/i386.md (cvtsd2ss splitter): Unpack in destination
19569 instead of source if operands[1] is xmm16 and above and
19570 !TARGET_AVX512VL. Use avx512f_vec_dupv16sf_1 instead of
19571 vec_interleave_lowv4sf if we need to unpack xmm16 and above.
19572
19573 PR c++/70295
19574 * gimplify.c (gimplify_modify_expr): Call gimple_set_no_warning
19575 on assign if (*from_p) is a comparison, set it to
19576 TREE_NO_WARNING (*from_p).
19577
19578 2016-03-21 Jakub Jelinek <jakub@redhat.com>
19579
19580 PR middle-end/70326
19581 * lra.c (restore_scratches): Ignore deleted insns.
19582
19583 2016-03-21 Marc Glisse <marc.glisse@inria.fr>
19584 Jakub Jelinek <jakub@redhat.com>
19585
19586 PR tree-optimization/70317
19587 * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
19588 to HONOR_NANS.
19589
19590 2016-03-21 Uros Bizjak <ubizjak@gmail.com>
19591
19592 PR target/70327
19593 * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
19594 of ix86_expand_move.
19595 (movoi): Ditto.
19596 (movti): Use general_operand for operand 1 predicate.
19597
19598 2016-03-21 Martin Liska <mliska@suse.cz>
19599
19600 * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
19601 insns.
19602 (dump_hsa_symbol): Dump BRIG offset of hsa_symbols.
19603
19604 2016-03-21 Martin Liska <mliska@suse.cz>
19605
19606 PR ipa/70306
19607 * ipa-icf.c (sem_function::parse): Skip static
19608 constructors and destructors.
19609
19610 2016-03-21 Jakub Jelinek <jakub@redhat.com>
19611
19612 PR target/70296
19613 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If IDENT is
19614 function-like macro, peek following token(s) if it is followed
19615 by CPP_OPEN_PAREN token with optional padding in between, and
19616 if not, don't treat it like a macro.
19617
19618 2016-03-21 Thomas Schwinge <thomas@codesourcery.com>
19619 Alexander Monakov <amonakov@ispras.ru>
19620
19621 * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
19622 for the stabs debug format.
19623
19624 2016-03-21 Richard Biener <rguenther@suse.de>
19625
19626 PR tree-optimization/70310
19627 * tree-vect-generic.c (expand_vector_condition): Fold the built
19628 condition.
19629
19630 2016-03-21 Kirill Yukhin <kirill.yukhin@intel.com>
19631
19632 PR target/70293
19633 * config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2):
19634 Block third alternative for AVX-512VL target,
19635
19636 2016-03-21 Martin Liska <mliska@suse.cz>
19637
19638 PR hsa/70234
19639 * hsa-brig.c (emit_function_directives): Mark unemitted
19640 global variables for emission.
19641 * hsa-gen.c (hsa_symbol::hsa_symbol): Initialize a new flag.
19642 (get_symbol_for_decl): Likewise.
19643 * hsa.h (struct hsa_symbol): New flag.
19644
19645 2016-03-21 Richard Biener <rguenther@suse.de>
19646
19647 PR tree-optimization/70288
19648 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Make sure
19649 we do not estimate unsimplified all-constant conditionals or
19650 switches as optimized away.
19651
19652 2016-03-21 Andrey Belevantsev <abel@ispras.ru>
19653
19654 PR rtl-optimization/69102
19655 * sched-deps.c (sched_analyze_insn): Do not set last_args_size field
19656 when we have a readonly dependency context.
19657
19658 2016-03-18 Jeff Law <law@redhat.com>
19659
19660 PR rtl-optimization/70263
19661 * ira.c (memref_used_between_p): Assert we found END in the insn chain.
19662 (update_equiv_regs): When trying to move a store to after the insn
19663 that sets the source of the store, make sure the store occurs after
19664 the insn that sets the source of the store. When successful note
19665 the REG_EQUIV note created in the dump file.
19666
19667 2016-03-16 David Wohlferd <dw@LimeGreenSocks.com>
19668 Bernd Schmidt <bschmidt@redhat.com>
19669
19670 * doc/extend.texi: Document more potential problems with basic asms.
19671
19672 2016-03-18 Bernd Schmidt <bschmidt@redhat.com>
19673
19674 PR rtl-optimization/70278
19675 * lra-constraints.c (split_reg): Handle the case where biggest_mode is
19676 VOIDmode.
19677
19678 2016-03-18 Jason Merrill <jason@redhat.com>
19679
19680 * calls.c (load_register_parameters): Fix zero size sibcall logic.
19681
19682 2016-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
19683
19684 * config/i386/sse.md: Use vpbroadcastq for broadcasting DF
19685 values to 128b regs.
19686
19687 2016-03-18 Ilya Enkovich <enkovich.gnu@gmail.com>
19688
19689 PR tree-optimization/70252
19690 * tree-vect-stmts.c (supportable_widening_operation): Check resulting
19691 boolean vector has a proper number of elements.
19692 (supportable_narrowing_operation): Likewise.
19693
19694 2016-03-18 Tom de Vries <tom@codesourcery.com>
19695
19696 PR ipa/70269
19697 * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.
19698
19699 2016-03-18 Jakub Jelinek <jakub@redhat.com>
19700
19701 * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
19702 instead of replace_rtx for DEBUG_INSNs.
19703
19704 2016-03-18 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
19705
19706 * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
19707 load type reservations.
19708
19709 2016-03-17 John David Anglin <danglin@gcc.gnu.org>
19710
19711 PR target/70188
19712 * config/pa/constraints.md: Revert 2015-02-13 change. Use
19713 define_constraint for "Q" and "T" constraints.
19714
19715 2016-03-17 Evandro Menezes <e.menezes@samsung.com>
19716
19717 Tweak the pipeline model for Exynos M1
19718
19719 * config/aarch64/aarch64.c (exynosm1_tunings): Enable weak prefetching
19720 model.
19721
19722 2016-03-17 David Malcolm <dmalcolm@redhat.com>
19723
19724 PR c/70264
19725 * diagnostic-show-locus.c (compatible_locations_p): Handle the case
19726 where one or both locations aren't within a line_map.
19727
19728 2016-03-17 H.J. Lu <hongjiu.lu@intel.com>
19729
19730 PR driver/70192
19731 * opts.c (finish_options): Don't set flag_pie to the default if
19732 -fpic, -fPIC, -fno-pic or -fno-PIC is used. Set flag_pic to 0
19733 if it is -1.
19734
19735 2016-03-17 Joern Rennecke <joern.rennecke@embecosm.com>
19736
19737 * config/i386/i386.md (*movv4qicc_insn+1..36): Pass
19738 true as ALL_REGS argument to replace_rtx.
19739
19740 2016-03-17 Richard Biener <rguenther@suse.de>
19741
19742 PR debug/70271
19743 * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
19744 last.
19745
19746 2016-03-17 Jakub Jelinek <jakub@redhat.com>
19747
19748 PR target/70245
19749 * rtl.h (replace_rtx): Add ALL_REGS argument.
19750 * rtlanal.c (replace_rtx): Likewise. If true, use REGNO
19751 equality and assert mode is the same, instead of just rtx pointer
19752 equality.
19753 * config/i386/i386.md (mov + arithmetics with load peephole): Pass
19754 true as ALL_REGS argument to replace_rtx.
19755
19756 2016-03-17 Ilya Enkovich <enkovich.gnu@gmail.com>
19757
19758 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply
19759 for boolean vector with vector mode only.
19760 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
19761
19762 2016-03-17 Nick Clifton <nickc@redhat.com>
19763
19764 PR target/70162
19765 * config/rx/rx.c (rx_print_integer): Print negative constants in
19766 decimal.
19767
19768 2016-03-17 Jakub Jelinek <jakub@redhat.com>
19769
19770 PR target/70261
19771 * rtlanal.c (replace_rtx): Revert 2016-03-16 change.
19772
19773 2016-03-16 Richard Henderson <rth@redhat.com>
19774 Richard Biener <rguenth@suse.de>
19775
19776 PR middle-end/70240
19777 PR middle-end/68215
19778 PR tree-opt/68714
19779 * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
19780 first operand as is_gimple_condexpr.
19781
19782 PR middle-end/70240
19783 PR middle-end/68215
19784 Revert r231575
19785 2015-12-11 Eric Botcazou <ebotcazou@adacore.com>
19786 * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter.
19787 Do not gimplify the result.
19788 (do_unop): Adjust call to tree_vec_extract.
19789 (do_binop): Likewise.
19790 (do_compare): Likewise.
19791 (do_plus_minus): Likewise.
19792 (do_negate): Likewise.
19793 (expand_vector_condition): Likewise.
19794 (do_cond): Likewise.
19795
19796 2016-03-16 Richard Henderson <rth@redhat.com>
19797
19798 PR target/70048
19799 * config/aarch64/aarch64.c (virt_or_elim_regno_p): New.
19800 (aarch64_classify_address): Use it.
19801 (aarch64_legitimize_address): Force all subexpressions of PLUS
19802 into registers. Simplify as (sfp+const)+reg or (reg+reg)+const.
19803
19804 2016-03-16 Jakub Jelinek <jakub@redhat.com>
19805 Richard Biener <rguenth@suse.de>
19806
19807 PR target/70245
19808 * rtlanal.c (replace_rtx): For REG, if from is a REG,
19809 return to even if only REGNO is equal, and assert
19810 mode is the same.
19811
19812 2016-03-11 Jeff Law <law@redhat.com>
19813
19814 PR rtl-optimization/70224
19815 * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
19816
19817 2016-03-16 Richard Henderson <rth@redhat.com>
19818
19819 PR middle-end/70199
19820 * function.h (struct function): Add has_forced_label_in_static.
19821 * gimplify.c (force_labels_r): Set it.
19822 * lto-streamer-in.c (input_struct_function_base): Read it.
19823 * lto-streamer-out.c (output_struct_function_base): Write it.
19824 * tree-inline.c (has_label_address_in_static_1): Remove.
19825 (copy_forbidden): Remove fndecl parameter; test
19826 has_forced_label_in_static.
19827 (inline_forbidden_p): Update call to copy_forbidden.
19828 (tree_versionable_function_p): Likewise.
19829 * ipa-chkp.c (chkp_instrumentable_p): Likewise.
19830 (chkp_versioning): Likewise.
19831 * tree-inline.h (copy_forbidden): Update decl.
19832
19833 2016-03-16 Marek Polacek <polacek@redhat.com>
19834
19835 PR c/70093
19836 * cgraphunit.c (cgraph_node::expand_thunk): Also build call to the
19837 function being thunked if the result type doesn't have fixed size.
19838 * gimplify.c (gimplify_modify_expr): Also set LHS if the result type
19839 doesn't have fixed size.
19840
19841 2016-03-16 Bin Cheng <bin.cheng@arm.com>
19842
19843 * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
19844 reporting malformed loop nest.
19845
19846 2016-03-16 Tom de Vries <tom@codesourcery.com>
19847
19848 PR lto/70187
19849 * ipa-devirt.c (possible_polymorphic_call_targets): Move
19850 nodes.length () == 1 test to before first nodes[0] access.
19851
19852 2016-03-16 Tom de Vries <tom@codesourcery.com>
19853
19854 PR tree-optimization/68715
19855 * graphite-scop-detection.c (scop_detection::merge_sese): Add missing
19856 single_pred_p test.
19857
19858 2016-03-16 Tom de Vries <tom@codesourcery.com>
19859
19860 PR tree-optimization/68809
19861 * graphite-scop-detection.c (same_close_phi_node): Test if result types
19862 are the same.
19863
19864 2016-03-16 Carlos O'Donell <carlos@redhat.com>
19865 Sandra Loosemore <sandra@codesourcery.com>
19866
19867 * doc/extend.texi (Common Function Attributes): Describe ifunc impact
19868 on leaf attribute. Mention ELF interposition problems.
19869
19870 2016-03-16 Alan Modra <amodra@gmail.com>
19871
19872 PR rtl-optimization/69195
19873 PR rtl-optimization/47992
19874 * ira.c (indirect_jump_optimize): Ignore artificial defs.
19875 Add comments.
19876
19877 2016-03-15 Eric Botcazou <ebotcazou@adacore.com>
19878
19879 PR bootstrap/69513
19880 * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.
19881
19882 2016-03-15 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
19883
19884 * config/avr/avr.md (rotl<mode>3): Set mode for operand 2.
19885
19886 2016-03-15 Jakub Jelinek <jakub@redhat.com>
19887
19888 PR rtl-optimization/70222
19889 * combine.c (simplify_shift_const_1): For A >> B >> C LSHIFTRT
19890 optimization if mode is different from result_mode, queue up masking
19891 of the result in outer_op. Formatting fix.
19892
19893 PR middle-end/70239
19894 * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
19895 of safe_grow.
19896
19897 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
19898
19899 PR rtl-optimization/69032
19900 * sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
19901 looping backwards over basic block insns.
19902
19903 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
19904
19905 PR target/66660
19906 * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
19907 to non-speculative when propagating trap bits.
19908
19909 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
19910
19911 PR rtl-optimization/63384
19912 * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
19913 DEBUG_INSN_P insns.
19914
19915 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
19916
19917 PR target/64411
19918 * sched-deps.c (get_implicit_reg_pending_clobbers): New function,
19919 factored out from ...
19920 (sched_analyze_insn): ... here.
19921 * sched-int.h (get_implicit_reg_pending_clobbers): Declare it.
19922 * sel-sched-ir.c (setup_id_implicit_regs): New function, use
19923 get_implicit_reg_pending_clobbers in it.
19924 (setup_id_reg_sets): Use setup_id_implicit_regs.
19925 (deps_init_id): Ditto.
19926
19927 2016-03-15 Tom de Vries <tom@codesourcery.com>
19928
19929 PR ipa/70161
19930 * cgraph.c (cgraph_node::get_body): Save, reset and restore
19931 dump_file_name.
19932 * passes.c (execute_one_ipa_transform_pass): Add missing argument to
19933 execute_function_dump.
19934 (execute_one_pass): Don't dump function if it will be dumped after ipa
19935 transform.
19936
19937 2016-03-15 Segher Boessenkool <segher@kernel.crashing.org>
19938
19939 * genrecog.c (match_pattern_2): If pred is NULL don't call
19940 safe_predicate_mode on it.
19941
19942 2016-03-14 Jakub Jelinek <jakub@redhat.com>
19943
19944 PR middle-end/70219
19945 * lra-constraints.c (delete_move_and_clobber): Change assertion
19946 to also allow dregno == 0.
19947
19948 2016-03-14 Richard Henderson <rth@redhat.com>
19949
19950 PR tree-opt/68714
19951 * tree-ssa-reassoc.c (ovce_extract_ops, optimize_vec_cond_expr): New.
19952 (can_reassociate_p): Allow ANY_INTEGRAL_TYPE_P.
19953 (reassociate_bb): Use optimize_vec_cond_expr; avoid
19954 optimize_range_tests, attempt_builtin_copysign and attempt_builtin_powi
19955 on vectors.
19956
19957 2016-03-14 Bernd Schmidt <bschmidt@redhat.com>
19958
19959 PR target/70083
19960 * lra-lives.c (process_bb_lives): Also update biggest mode for hard
19961 regs.
19962 (lra_create_live_ranges_1): initialize hard register biggest_mode to
19963 VOIDmode.
19964 * lra-constraints.c (split_reg): For hard regs, try to find the
19965 biggest single-register mode used in the function.
19966
19967 2016-03-14 Richard Biener <rguenther@suse.de>
19968
19969 PR tree-optimization/56365
19970 * tree-ssa-phiopt.c (minmax_replacement): Handle alternate
19971 constants to compare against.
19972
19973 2016-03-14 Segher Boessenkool <segher@kernel.crashing.org>
19974
19975 PR target/70098
19976 * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
19977 *ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output.
19978 (define_split for the GPR case): Use int_reg_operand instead of
19979 gpc_reg_operand for the output.
19980
19981 2016-03-14 Tom de Vries <tom@codesourcery.com>
19982
19983 PR tree-optimization/70045
19984 * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Unshare
19985 create_empty_if_region_on_edge argument.
19986
19987 2016-03-13 Eric Botcazou <ebotcazou@adacore.com>
19988
19989 * config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define.
19990 (STACK_CHECK_PROTECT): Likewise.
19991 * config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
19992 (STACK_CHECK_PROTECT): Likewise.
19993 * config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
19994 (STACK_CHECK_PROTECT): Likewise.
19995 * config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise.
19996 * config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
19997 (STACK_CHECK_PROTECT): Likewise.
19998
19999 2016-03-12 Andrey Belevantsev <abel@ispras.ru>
20000
20001 PR rtl-optimization/69307
20002 * sel-sched.c (choose_best_pseudo_reg): Properly check for hard
20003 registers in modes that span more than one register.
20004
20005 2016-03-12 Vladimir Makarov <vmakarov@redhat.com>
20006
20007 PR target/69614
20008 * lra-constraints.c (delete_move_and_clobber): New.
20009 (remove_inheritance_pseudos): Use it.
20010
20011 2016-03-12 Eric Botcazou <ebotcazou@adacore.com>
20012
20013 PR ada/70017
20014 * calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if
20015 the libcall is LCT_THROW.
20016 * explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call
20017 for the checking routine.
20018
20019 2016-03-11 Michael Meissner <meissner@linux.vnet.ibm.com>
20020
20021 PR target/70131
20022 * config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the
20023 optimization if we have direct move.
20024 (roundu32<mode>2_fprs): Likewise.
20025
20026 2016-03-11 Bernd Schmidt <bschmidt@redhat.com>
20027
20028 PR target/70123
20029 * lra-remat.c (operand_to_remat): Disallow hard regs in the value t
20030 be rematerialized.
20031 (reg_overlap_for_remat_p): Renamed from input_regno_present_p.
20032 Arguments swapped. All callers changed. Take reg_renumber into
20033 account, and Calculate and compare register ranges for hard regs.
20034
20035 2016-03-11 Jeff Law <law@redhat.com>
20036
20037 PR tree-optimization/70190
20038 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
20039 Handle cases where we can not extract the taken edge, even though we
20040 found a constant value.
20041
20042 PR tree-optimization/64058
20043 * tree-ssa-coalesce.c (struct coalesce_pair): Add new field INDEX.
20044 (num_coalesce_pairs): Move up earlier in file.
20045 (find_coalesce_pair): Initialize the INDEX field for each pair
20046 discovered.
20047 (compare_pairs): No longer sort on the elements in each pair.
20048 Instead break ties with the index of the coalesce pair.
20049
20050 2016-03-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20051
20052 PR target/70002
20053 * config/aarch64/aarch64-protos.h
20054 (aarch64_save_restore_target_globals): New prototype.
20055 * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
20056 Call the above when popping pragma.
20057 * config/aarch64/aarch64.c (aarch64_save_restore_target_globals):
20058 New function.
20059 (aarch64_set_current_function): Rewrite using the above.
20060
20061 2016-03-11 Jakub Jelinek <jakub@redhat.com>
20062
20063 PR tree-optimization/70177
20064 * gimple-expr.h (extract_ops_from_tree_1): Renamed to ...
20065 (extract_ops_from_tree): ... this. In the 2 argument
20066 overload remove _1 suffix.
20067 * gimple-expr.c (extract_ops_from_tree_1): Renamed to ...
20068 (extract_ops_from_tree): ... this.
20069 * gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree):
20070 Adjust callers.
20071 * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
20072 * tree-ssa-forwprop.c (defcodefor_name): Call 3 operand
20073 extract_ops_from_tree instead of 2 operand one.
20074
20075 2016-03-11 Alan Lawrence <alan.lawrence@arm.com>
20076
20077 PR tree-optimization/70013
20078 * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
20079 for constant-pool entries.
20080
20081 2016-03-11 Jakub Jelinek <jakub@redhat.com>
20082
20083 PR rtl-optimization/70174
20084 * expmed.c (store_bit_field_using_insv): Use gen_lowpart_if_possible
20085 followed by gen_lowpart on force_reg instead of just gen_lowpart.
20086
20087 PR tree-optimization/70169
20088 * tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and
20089 LABEL_DECL like VAR_DECL. Emit nothing instead of gcc_unreachable
20090 for unknown codes.
20091
20092 2016-03-11 Ilya Enkovich <enkovich.gnu@gmail.com>
20093 Jakub Jelinek <jakub@redhat.com>
20094
20095 PR target/70160
20096 * config/i386/i386.c (scalar_chain::convert_reg): Skip uses
20097 of uninitialized values.
20098
20099 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20100
20101 * config/s390/s390.md ("trunctddd2"): Turn former define_insn into
20102 define_expand.
20103 ("*trunctddd2"): New pattern definition.
20104 ("trunctdsd2"): Set prep_for_short_prec rounding mode for the
20105 TD->DD truncation.
20106
20107 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20108
20109 * config/s390/s390.md (BFP_RND_*, DFP_RND_*): Add new constant
20110 definitions for BFP and DFP rounding modes.
20111 ("fixuns_truncdddi2", "fixuns_trunctddi2")
20112 ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2")
20113 ("fix_trunc<DSF:mode><GPR:mode>2", "fix_trunc<mode>di2")
20114 ("fix_trunctf<mode>2"): Use the new constants instead of magic
20115 numbers.
20116
20117 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20118
20119 * config/s390/constraints.md: Adjust comment.
20120 ("Y"): Adjust comment. Rename s390_decompose_shift_count to
20121 s390_decompose_addrstyle_without_index.
20122 * config/s390/predicates.md (shift_count_or_setmem_operand):
20123 Rename to setmem_operand.
20124 * config/s390/s390-protos.h
20125 (s390_decompose_shift_count): Rename to
20126 s390_decompose_addrstyle_without_index.
20127 * config/s390/s390.c (s390_decompose_shift_count)
20128 (s390_mem_constraint, print_shift_count_operand)
20129 (print_operand_address, print_operand): Rename
20130 s390_decompose_shift_count to
20131 s390_decompose_addrstyle_without_index and rename
20132 print_shift_count_operand to print_addrstyle_operand troughout the
20133 file.
20134 * config/s390/s390.md ("setmem_long_<P:mode>", "*setmem_long")
20135 ("*setmem_long_and", "*setmem_long_31z", "*setmem_long_and_31z"):
20136 Rename shift_count_or_setmem_operand to setmem_operand.
20137 * config/s390/vx-builtins.md ("vec_insert<mode>")
20138 ("vec_promote<mode>"): Replace shift_count_or_setmem_operand with
20139 nonmemory_operand.
20140
20141 2016-03-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
20142
20143 PR target/70168
20144 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
20145 Handle overlapping retval and newval.
20146
20147 2016-03-10 Nick Clifton <nickc@redhat.com>
20148
20149 PR target/7044
20150 * config/aarch64/aarch64.c
20151 (aarch64_override_options_after_change_1): When forcing
20152 flag_omit_frame_pointer to be true, use a special value that can
20153 be detected if this function is called again, thus preventing
20154 flag_omit_leaf_frame_pointer from being forced to be false.
20155
20156 2016-03-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20157
20158 * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
20159 Set x_flag_omit_leaf_frame_pointer when handling
20160 -momit-leaf-frame-pointer.
20161
20162 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
20163
20164 PR lto/69589
20165 * cgraph.c (cgraph_node::dump): Dump split_part and
20166 indirect_call_target.
20167 * cgraph.h (cgraph_node): Add indirect_call_target flag.
20168 * ipa.c (has_addr_references_p): Cleanup.
20169 (is_indirect_call_target_p): New.
20170 (walk_polymorphic_call_targets): Do not mark virtuals that may be
20171 called indirectly as local.
20172 (symbol_table::remove_unreachable_nodes): Compute indirect_call_target.
20173
20174 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
20175
20176 PR ipa/69630
20177 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
20178 on cxa_pure_virtual.
20179
20180 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
20181
20182 PR lto/69589
20183 * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
20184
20185 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
20186
20187 PR lto/69589
20188 * tree.c (need_assembler_name_p): Only record main variant type names.
20189
20190 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
20191
20192 PR target/70113.
20193 * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_843419_DEFAULT):
20194 Always define to 0 or 1.
20195 (TARGET_FIX_ERR_A53_843419): New macro.
20196 * config/aarch64/aarch64-elf-raw.h
20197 (TARGET_FIX_ERR_A53_843419_DEFAULT): Update for above changes.
20198 * config/aarch64/aarch64-linux.h: Likewise.
20199 * config/aarch64/aarch64.c
20200 (aarch64_override_options_after_change_1): Do not default
20201 aarch64_nopcrelative_literal_loads to true if Cortex-A53 erratum
20202 843419 is on.
20203 (aarch64_attributes): Handle fix-cortex-a53-843419.
20204 (aarch64_can_inline_p): Likewise.
20205 * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.
20206
20207 2016-03-10 Alan Lawrence <alan.lawrence@arm.com>
20208 Jakub Jelinek <jakub@redhat.com>
20209
20210 * common.opt (funconstrained-commons, flag_unconstrained_commons): New.
20211 * tree.c (array_at_struct_end_p): Do not limit to size of decl for
20212 DECL_COMMONS if flag_unconstrained_commons is set.
20213 * tree-dfa.c (get_ref_base_and_extent): Likewise.
20214 * doc/invoke.texi (Optimize Options): Add -funconstrained-commons.
20215 (funconstrained-commons): Document.
20216
20217 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
20218
20219 * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
20220 aarch64-fusion-pairs.def and aarch64-tuning-flags.def
20221
20222 2016-03-10 Ilya Enkovich <enkovich.gnu@gmail.com>
20223
20224 * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
20225 has a proper number of elements.
20226
20227 2016-03-10 Alan Modra <amodra@gmail.com>
20228
20229 PR rtl-optimization/69195
20230 PR rtl-optimization/47992
20231 * ira.c (recorded_label_ref): Delete.
20232 (update_equiv_regs): Return void.
20233 (indirect_jump_optimize): New function.
20234 (ira): Call indirect_jump_optimize and delete_trivially_dead_insns
20235 before regstat_compute_ri. Don't rebuild_jump_labels here.
20236 Delete update_regstat.
20237
20238 2016-03-10 Richard Biener <rguenther@suse.de>
20239
20240 PR tree-optimization/70128
20241 * tree-ssa-structalias.c (set_uids_in_ptset): Set
20242 vars_contains_nonlocal for any FUNCTION_DECL or LABEL_DECL.
20243
20244 2016-03-09 Jakub Jelinek <jakub@redhat.com>
20245
20246 PR tree-optimization/70152
20247 * tree-sra.c (replace_removed_params_ssa_names): Copy over
20248 SSA_NAME_OCCURS_IN_ABNORMAL_PHI from old_name to new_name.
20249
20250 PR target/70086
20251 * config/i386/i386.md (truncdfsf2 splitter): Use gen_vec_concatv2df
20252 instead of gen_sse2_loadlpd.
20253 * config/i386/sse.md (*vec_concatv2df): Rename to...
20254 (vec_concatv2df): ... this.
20255
20256 PR tree-optimization/70127
20257 * fold-const.c (operand_equal_p): Revert the 2015-10-28 change.
20258
20259 2016-03-09 David Malcolm <dmalcolm@redhat.com>
20260
20261 PR c/68473
20262 PR c++/70105
20263 * diagnostic-show-locus.c (compatible_locations_p): New function.
20264 (layout::layout): Sanitize ranges using compatible_locations_p.
20265
20266 2016-03-09 David Malcolm <dmalcolm@redhat.com>
20267
20268 PR c/68473
20269 PR c++/70105
20270 * diagnostic-show-locus.c (layout_range::layout_range): Replace
20271 location_range param with three const expanded_locations * and a
20272 bool.
20273 (layout::layout): Replace call to
20274 rich_location::lazily_expand_location with get_expanded_location.
20275 Extract the range and perform location expansion here, passing
20276 the results to the layout_range ctor.
20277 * diagnostic.c (source_range::debug): Delete.
20278 * diagnostic.h (diagnostic_expand_location): Reimplement in terms
20279 of rich_location::get_expanded_location.
20280 * gcc-rich-location.c (get_range_for_expr): Delete.
20281 (gcc_rich_location::add_expr): Reimplement to avoid the
20282 rich_location::add_range overload that took a location_range,
20283 passing a location_t instead.
20284
20285 2016-03-09 Richard Biener <rguenther@suse.de>
20286 Jakub Jelinek <jakub@redhat.com>
20287
20288 PR tree-optimization/70138
20289 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
20290 Also skip vect_double_reduction_def.
20291
20292 2016-03-09 Jakub Jelinek <jakub@redhat.com>
20293
20294 PR target/70049
20295 * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
20296 if the operand is "m".
20297
20298 2016-03-09 Nathan Sidwell <nathan@acm.org>
20299
20300 * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.
20301
20302 2016-03-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
20303
20304 * config/i386/i386.c (processor_target_table): Fix cost table
20305 intialization order for znver1.
20306
20307 2016-03-08 Jakub Jelinek <jakub@redhat.com>
20308
20309 * ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling
20310 - becuase -> because.
20311 * ipa-reference.c (ignore_module_statics): Likewise.
20312 * cgraph.c (cgraph_node::get_body): Likewise.
20313 * ipa-inline.c (early_inliner): Likewise.
20314 * ipa-devirt.c (types_same_for_odr): Likewise.
20315 * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
20316 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Likewise.
20317
20318 2016-03-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20319
20320 * tree-ssa-math-opts.c: Fix typo in comment.
20321
20322 2016-03-08 Jakub Jelinek <jakub@redhat.com>
20323
20324 PR target/70110
20325 * config/i386/i386.c (scalar_chain::make_vector_copies,
20326 scalar_chain::convert_reg): Call end_sequence in between
20327 get_insns and emit_conversion_insns rather than after both
20328 calls.
20329
20330 2016-03-07 Uros Bizjak <ubizjak@gmail.com>
20331
20332 PR target/70064
20333 * config/i386/i386.h (machine_function): Add
20334 pc_thunk_call_expanded flag.
20335 (ix86_pc_thunk_call_expanded): New define.
20336 * config/i386/i386.md (set_got, set_got_labelled): New expanders.
20337 (*set_got): Rename insn pattern from set_got.
20338 (*set_got_labelled): Rename inst pattern from set_got_labelled.
20339 * config/i386/i386.c (ix86_compute_frame_layout): Use
20340 ix86_pc_thunk_call_expanded to prevent red-zone.
20341
20342 2016-03-07 Martin Jambor <mjambor@suse.cz>
20343
20344 * hsa.h (hsa_get_ctor_statements): Declare.
20345 (hsa_get_dtor_statements): Likewise.
20346 (hsa_get_kernel_dispatch_type): Likewise.
20347 * hsa.c (hsa_get_ctor_statements): New function.
20348 (hsa_get_dtor_statements): Likewise.
20349 (hsa_get_kernel_dispatch_type): Likewise.
20350 * hsa-brig.c (hsa_cdtor_statements): Removed.
20351 (hsa_output_libgomp_mapping): Use hsa_get_ctor_statements and
20352 hsa_get_dtor_statements.
20353 * hsa-gen.c (hsa_kernel_dispatch_type): Removed.
20354 (get_hsa_kernel_dispatch_offset): Use hsa_get_kernel_dispatch_type.
20355
20356 2016-03-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
20357
20358 * config/arm/arm-cores.def (cortex-r8): New.
20359 * config/arm/arm-tables.opt (cortex-r8): Regenerate.
20360 * config/arm/arm-tune.md: Likewise.
20361 * doc/invoke.texi: Add cortex-r8 to list of cpu values.
20362
20363 2016-03-07 Martin Sebor <msebor@redhat.com>
20364
20365 PR rtl-optimization/19705
20366 * doc/invoke.texi (Options That Control Optimization): Clarify
20367 -fno-branch-count-reg.
20368
20369 2016-02-26 Richard Biener <rguenther@suse.de>
20370 Jeff Law <law@redhat.com>
20371
20372 PR tree-optimization/69740
20373 * cfghooks.c (remove_edge): Request loop fixups if we delete
20374 an edge that might turn an irreducible loop into a natural
20375 loop.
20376 * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
20377 Move after definition of loops_state_clear.
20378
20379 2016-03-07 Bin Cheng <bin.cheng@arm.com>
20380
20381 PR rtl-optimization/69052
20382 * rtlanal.c (commutative_operand_precedence): Set higher precedence
20383 to CONST_WIDE_INT.
20384
20385 2016-03-07 Tom de Vries <tom@codesourcery.com>
20386
20387 PR tree-optimization/70116
20388 * tree-ssa-tail-merge.c (merge_stmts_p): New function, handling
20389 is_tm_ending stmts and ubsan/asan internal functions.
20390 (find_duplicate): Use it. Don't test is_tm_ending here.
20391
20392 2016-03-07 Richard Biener <rguenther@suse.de>
20393
20394 PR tree-optimization/70115
20395 * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
20396 (propagate_constants_for_unrolling): Use replace_uses_by.
20397
20398 2016-03-07 Nathan Sidwell <nathan@codesourcery.com>
20399
20400 PR middle-end/69916
20401 * omp-low.c (struct oacc_loop): Add ifns.
20402 (new_oacc_loop_raw): Initialize it.
20403 (finish_oacc_loop): Clear mask & flags if no ifns.
20404 (oacc_loop_discover_walk): Count IFN_GOACC_LOOP calls.
20405 (oacc_loop_xform_loop): Add ifns arg & adjust.
20406 (oacc_loop_process): Adjust oacc_loop_xform_loop call.
20407
20408 2016-03-07 Richard Henderson <rth@redhat.com>
20409
20410 PR rtl-opt/70061
20411 * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
20412 (insert_value_copy_on_edge): Likewise.
20413
20414 2016-03-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20415
20416 * config/arm/arm_neon.h: Show error if using with soft-float ABI.
20417
20418 2016-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20419
20420 PR target/62281
20421 * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
20422
20423 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
20424
20425 * config/i386/i386.c (znver1_cost): Fix Multiply cost.
20426
20427 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
20428
20429 Fix sseimul type attribute.
20430 * config/i386/znver1.md
20431 (znver1_sseimul, znver1_sseimul_avx256, znver1_sseimul_load,
20432 znver1_sseimul_avx256_load) : Fix the type attribute.
20433 (znver1_sseimul_di, znver1_sseimul_load_di): Fix type attribute,
20434 pipe usage and latency.
20435
20436 2016-03-05 Jakub Jelinek <jakub@redhat.com>
20437
20438 PR c++/70084
20439 * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
20440 of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
20441 to the right type.
20442
20443 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
20444
20445 PR c/69973
20446 * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
20447
20448 PR rtl-optimization/69941
20449 * postreload.c (reload_combine_recognize_pattern): Ensure all uses of
20450 the reg share its mode.
20451
20452 2016-03-04 Jeff Law <law@redhat.com>
20453
20454 PR tree-optimization/69196
20455 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
20456 If the both SSA_NAMEs are anonymous, then consider them unassociated
20457 and include the PHI in the statement count.
20458
20459 2016-03-05 Tom de Vries <tom@codesourcery.com>
20460
20461 * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
20462 construct in oacc routine. Check for oacc region in oacc routine.
20463
20464 2016-03-04 Jakub Jelinek <jakub@redhat.com>
20465
20466 PR target/70062
20467 * config/i386/i386.c (decide_alg): Add RECUR argument. Revert
20468 2016-02-22 changes, instead don't recurse if RECUR is already true.
20469 Don't change *dynamic_check if RECUR. Adjust recursive caller
20470 to pass true to the new argument.
20471 (ix86_expand_set_or_movmem): Adjust decide_alg caller.
20472
20473 PR target/70059
20474 * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
20475 <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
20476 fixes.
20477 (vec_set_hi_<mode><mask_name>): Likewise. Swap VEC_CONCAT operands.
20478
20479 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
20480
20481 PR rtl-optimization/57676
20482 * lra-assigns.c (lra_assign): Guard test for maximum iterations
20483 with flag_checking.
20484
20485 2016-03-04 Ilya Enkovich <enkovich.gnu@gmail.com>
20486
20487 * tree-vect-patterns.c (search_type_for_mask): Handle
20488 comparison of booleans.
20489
20490 2016-03-04 Jakub Jelinek <jakub@redhat.com>
20491
20492 * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
20493 Fix @xref usage.
20494
20495 PR debug/69947
20496 * dwarf2out.c (prune_unused_types_walk_loc_descr): Handle
20497 all other ops that have dw_val_class_die_ref operands,
20498 and DW_OP_GNU_entry_value.
20499
20500 2016-03-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20501
20502 PR rtl-optimization/69904
20503 * config/arm/arm.c (arm_cannot_copy_insn_p):
20504 Return true for load-exclusive instructions.
20505
20506 2016-03-03 Jakub Jelinek <jakub@redhat.com>
20507
20508 PR target/70021
20509 * tree-vect-stmts.c (vect_mark_relevant): Remove USED_IN_PATTERN
20510 argument, if STMT_VINFO_IN_PATTERN_P (stmt_info), always mark
20511 the pattern no matter if it is used just by non-pattern, pattern
20512 or mix thereof.
20513 (process_use, vect_mark_stmts_to_be_vectorized): Adjust callers.
20514 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
20515 oprnd1 def_stmt is in pattern, don't look through it.
20516
20517 2016-03-03 Marek Polacek <polacek@redhat.com>
20518
20519 PR middle-end/70050
20520 * match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
20521
20522 2016-03-03 Martin Liska <mliska@suse.cz>
20523
20524 PR tree-optimization/70043
20525 * tree-vect-loop.c (optimize_mask_stores): Move iterator to
20526 previous statement if we see a debug statement.
20527
20528 2016-03-03 Richard Biener <rguenther@suse.de>
20529
20530 PR tree-optimization/55936
20531 * tree-vrp.c (compare_name_with_value): Add use_equiv_p
20532 parameter and guard unsafe equivalence use.
20533 (vrp_evaluate_conditional_warnv_with_ops): Always use
20534 safe equivalences but not via the quadratic compare_names
20535 helper.
20536
20537 2016-03-03 Michael Collison <michael.collison@linaro.org>
20538
20539 PR target/70014
20540 * config/arm/arm.md (*subsi3_carryin_const): Change predicate
20541 for operand 1 to s_register_operand. Change predicate for operand
20542 2 to arm_not_immediate_operand.
20543
20544 2016-03-02 H.J. Lu <hongjiu.lu@intel.com>
20545
20546 * doc/tm.texi: Regenerated.
20547
20548 2016-03-02 Richard Henderson <rth@redhat.com>
20549
20550 PR rtl-opt/67145
20551 * simplify-rtx.c (simplify_plus_minus): Allow reassoc without
20552 simplification when all args are positive non-fixed registers.
20553
20554 2016-03-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
20555
20556 * target.def (lra_p): Specify that new ports should use LRA.
20557
20558 2016-03-02 Jakub Jelinek <jakub@redhat.com>
20559
20560 PR libgomp/69555
20561 * gimplify.c (gimplify_decl_expr): For decls with REFERENCE_TYPE, also
20562 gimplify_type_sizes the type they refer to.
20563 (omp_notice_variable): Handle reference vars to VLAs.
20564 * omp-low.c (lower_omp_target): Emit setup of OMP_CLAUSE_PRIVATE
20565 reference to VLA decls in the second pass instead of first pass.
20566
20567 2016-03-02 Tom de Vries <tom@codesourcery.com>
20568
20569 PR tree-optimization/68659
20570 * graphite-isl-ast-to-gimple.c (collect_all_ssa_names): Handle
20571 new_expr == NULL_TREE.
20572 (get_new_name): Handle ADDR_EXPR.
20573
20574 2016-03-02 Bin Cheng <bin.cheng@arm.com>
20575
20576 PR rtl-optimization/69052
20577 * loop-invariant.c (canonicalize_address): New function.
20578 (inv_can_prop_to_addr_use): Check validity of address expression
20579 which is canonicalized by above function.
20580
20581 2016-03-02 Alan Modra <amodra@gmail.com>
20582
20583 PR ipa/69990
20584 * ipa-icf.c (sem_variable::merge): Do not merge an alias with
20585 larger alignment.
20586
20587 2016-03-02 Jakub Jelinek <jakub@redhat.com>
20588
20589 PR target/70028
20590 * config/i386/i386.md (kmovw): Move m constraint to 2nd alternative.
20591 (*movhi_internal): Put mask moves from and to memory separately
20592 from moves from/to GPRs.
20593
20594 2016-03-02 Richard Biener <rguenther@suse.de>
20595
20596 * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
20597 GENERIC expressions in GIMPLE.
20598
20599 2016-03-02 Richard Biener <rguenther@suse.de>
20600
20601 * config/i386/i386.c (type_natural_mode): Fix typo.
20602
20603 2016-03-02 Nick Clifton <nickc@redhat.com>
20604
20605 * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.
20606
20607 2016-03-02 Richard Biener <rguenther@suse.de>
20608 Uros Bizjak <ubizjak@gmail.com>
20609
20610 PR target/67278
20611 * config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
20612
20613 2016-03-02 Richard Biener <rguenther@suse.de>
20614
20615 PR middle-end/67278
20616 * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
20617
20618 2016-03-02 Marek Polacek <polacek@redhat.com>
20619
20620 PR c/67854
20621 * gimplify.c (gimplify_va_arg_expr): Use expanded location for the
20622 "is promoted to" warning.
20623
20624 2016-03-01 DJ Delorie <dj@redhat.com>
20625
20626 * config.gcc: Deprecate mep-*.
20627
20628 2016-03-01 Vladimir Makarov <vmakarov@redhat.com>
20629
20630 PR middle-end/70025
20631 * lra-constraints.c (regno_val_use_in): New.
20632 (match_reload): Use it instead of regno_use_in.
20633
20634 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
20635
20636 PR rtl-optimization/70007
20637 * gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
20638 references present in REG_EQUAL notes attached to non-SET patterns.
20639
20640 2016-03-01 Jeff Law <law@redhat.com>
20641
20642 PR tree-optimization/69196
20643 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
20644 Appropriately clamp the number of statements to copy when the
20645 thread path does not traverse a loop backedge.
20646
20647 PR tree-optimization/69196
20648 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
20649 Do count some PHIs in the thread path against the insn count. Decrease
20650 final statement count by one as the control statement in the last
20651 block will get removed. Remove special cased code for handling PHIs
20652 in the last block.
20653
20654 2016-03-01 Uros Bizjak <ubizjak@gmail.com>
20655
20656 PR target/70027
20657 * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
20658 asm dialect alternatives to explicit GOTPCREL calls.
20659
20660 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
20661
20662 PR ada/70017
20663 * ira.c (do_reload): Issue warning for generic stack checking here...
20664 * reload1.c (reload): ...instead of here and streamline it.
20665
20666 2016-03-01 Nick Clifton <nickc@redhat.com>
20667
20668 * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
20669
20670 2016-03-01 Richard Biener <rguenther@suse.de>
20671
20672 PR tree-optimization/69983
20673 * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
20674 types and fall back to operand_equal_p.
20675
20676 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20677
20678 Revert
20679 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20680
20681 * config/s390/constraints.md ("jm8"): New constraint.
20682 * config/s390/predicates.md ("const_int_8bitset_operand"): New
20683 predicate.
20684 * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
20685 into ...
20686 ("*setmem_long<setmem_and>"): New pattern.
20687 ("*setmem_long_31z", "*setmem_long_and_31z"): Merge
20688 into ...
20689 ("*setmem_long_31z<setmem_and>"): New pattern.
20690 * config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
20691 New substitution rules with the required attributes.
20692
20693
20694 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20695
20696 Revert
20697 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20698
20699 * gensupport.c (process_substs_on_one_elem): Split loop to
20700 complete mark_operands_used_in_match_dup on all expressions in the
20701 vector first.
20702 (adjust_operands_numbers): Inline into process_substs_on_one_elem
20703 and remove function.
20704
20705 2016-03-01 Richard Biener <rguenther@suse.de>
20706
20707 PR middle-end/70022
20708 * fold-const.c (fold_indirect_ref_1): Fix range checking for
20709 vector BIT_FIELD_REF extract.
20710
20711 2016-03-01 Richard Biener <rguenther@suse.de>
20712
20713 PR tree-optimization/69994
20714 * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
20715
20716 2016-03-01 Ilya Enkovich <enkovich.gnu@gmail.com>
20717
20718 PR tree-optimization/69956
20719 * tree-vect-stmts.c (supportable_widening_operation): Support
20720 multi-step conversion of boolean vectors.
20721 (supportable_narrowing_operation): Likewise.
20722
20723 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20724
20725 * config/s390/s390.c (s390_decompose_address): Don't accept SImode
20726 anymore.
20727
20728 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20729
20730 * config/s390/subst.md (DSI_VI): New mode iterator.
20731 ("addr_style_op_subst"): Use DSI_VI instead of DSI.
20732 * config/s390/vector.md ("vec_set<mode>"): Move expander before
20733 the insn definition.
20734 ("*vec_set<mode>"): Change predicate and add alternative to
20735 support only either register or const_int operands as element
20736 selector.
20737 ("*vec_set<mode>_plus"): New pattern to support reg + const_int
20738 operands.
20739 ("vec_extract<mode>"): New expander.
20740 ("*vec_extract<mode>"): New insn definition supporting reg and
20741 const_int element selectors.
20742 ("*vec_extract<mode>_plus"): New insn definition supporting
20743 reg+const_int element selectors.
20744 ("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
20745 following expander+insn definition.
20746 ("<vec_shifts_name><mode>3"): New expander.
20747 ("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.
20748
20749 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20750
20751 * config/s390/s390.md ("*tabort_1"): Change predicate to
20752 nonmemory_operand. Add a second alternative to cover
20753 register as well as const int operands.
20754 ("*tabort_1_plus"): New pattern definition.
20755
20756 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20757
20758 * config/s390/s390.md ("*ashrdi3_cc_31")
20759 ("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
20760 ("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
20761 Merge insn definitions into ...
20762 ("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
20763 New pattern definition.
20764 ("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
20765 ("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
20766 ("*ashr<mode>3_and"): Merge insn definitions into ...
20767 ("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
20768 New pattern definition.
20769 * config/s390/subst.md ("addr_style_op_cc_subst")
20770 ("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
20771 substitutions patterns plus attributes.
20772 Add ashiftrt to SUBST iterator.
20773
20774 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20775
20776 * config/s390/s390.md ("<shift><mode>3"): Change predicate of
20777 op2 to nonmemory_operand.
20778 ("*<shift>di3_31", "*<shift>di3_31_and"):
20779 Merge into single pattern definition ...
20780 ("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
20781 ("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
20782 pattern definition ...
20783 ("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
20784 * config/s390/subst.md: Add ashift and lshiftrt to SUBST
20785 iterator.
20786
20787 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20788
20789 * config/s390/predicates.md (const_int_6bitset_operand): New
20790 predicate.
20791 * config/s390/s390.md: Include subst.md.
20792 ("rotl<mode>3"): New expander.
20793 ("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
20794 ...
20795 ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
20796 * config/s390/subst.md: New file.
20797
20798 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20799
20800 * config/s390/s390.md ("op_type", "atype", "length" attributes):
20801 Remove RRR type. It doesn't really exist.
20802 ("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
20803 attributes.
20804 ("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
20805 ("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
20806 ("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
20807 ("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
20808 ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
20809 ("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
20810 `enabled' attribute.
20811
20812 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20813
20814 * gensupport.c (process_substs_on_one_elem): Split loop to
20815 complete mark_operands_used_in_match_dup on all expressions in the
20816 vector first.
20817 (adjust_operands_numbers): Inline into process_substs_on_one_elem
20818 and remove function.
20819
20820 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
20821
20822 PR target/69706
20823 * config/sparc/sparc.c (NWORDS_UP): Rename to...
20824 (CEIL_NWORDS): ...this. Use CEIL macro.
20825 (compute_fp_layout): Adjust to above renaming.
20826 (function_arg_union_value): Likewise.
20827 (sparc_arg_partial_bytes): Likewise.
20828 (sparc_function_arg_advance): Likewise.
20829
20830 2016-02-29 Jeff Law <law@redhat.com>
20831
20832 PR tree-optimization/70005
20833 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
20834 where an object with a boolean range is compared against a value
20835 outside [0..1].
20836
20837 PR tree-optimization/69999
20838 * gimple-ssa-split-paths.c (split_paths): When duplicating a block
20839 with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule
20840 loop cleanups.
20841
20842 2016-02-29 Richard Biener <rguenther@suse.de>
20843
20844 PR tree-optimization/69994
20845 * tree-ssa-reassoc.c (gimple_nop_conversion_p): New function.
20846 (get_unary_op): Look through nop conversions.
20847 (ops_equal_values_p): New function, look for equality diregarding
20848 nop conversions.
20849 (eliminate_plus_minus_pair): Use ops_equal_values_p
20850 (repropagate_negates): Do not use get_unary_op here.
20851
20852 2016-02-29 Martin Liska <mliska@suse.cz>
20853
20854 * system.h: Poison ENABLE_CHECKING macro.
20855
20856 2016-02-29 Martin Liska <mliska@suse.cz>
20857
20858 * hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS
20859 is presented in dump flags.
20860 * hsa-regalloc.c (linear_scan_regalloc): Likewise.
20861 (hsa_regalloc): Likewise.
20862
20863 2016-02-19 Richard Biener <rguenther@suse.de>
20864
20865 PR tree-optimization/69980
20866 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
20867 permutation of those we need to keep.
20868
20869 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
20870
20871 PR target/69706
20872 * config/sparc/sparc.c (ROUND_ADVANCE): Rename to...
20873 (NWORDS_UP): ...this
20874 (init_cumulative_args): Minor tweaks.
20875 (sparc_promote_function_mode): Likewise.
20876 (scan_record_type): Delete.
20877 (traverse_record_type): New function template.
20878 (classify_data_t): New structure type.
20879 (classify_registers): New inline function.
20880 (function_arg_slotno): In 64-bit mode, bail out early if FP slots are
20881 exhausted. Instantiate traverse_record_type on classify_registers and
20882 deal with the case of a structure passed in slot #15 with no FP field
20883 in the first word.
20884 (assign_data_t): New structure type.
20885 (compute_int_layout): New static function.
20886 (compute_fp_layout): Likewise.
20887 (count_registers): New inline function.
20888 (assign_int_registers): New static function.
20889 (assign_fp_registers): Likewise.
20890 (assign_registers): New inline function.
20891 (function_arg_record_value_1): Delete.
20892 (function_arg_record_value_2): Likewise.
20893 (function_arg_record_value_3): Likewise.
20894 (function_arg_record_value): Adjust to above changes. Instantiate
20895 traverse_record_type on count_registers to first count the number of
20896 registers to be used and then on assign_registers to assign them.
20897 (function_arg_union_value): Adjust to above renaming.
20898 (sparc_function_arg_1); Minor tweaks. Remove commented out code.
20899 (sparc_arg_partial_bytes): Adjust to above renaming. Deal with the
20900 case of a structure passed in slot #15
20901 (sparc_function_arg_advance): Likewise.
20902 (function_arg_padding): Minor tweak.
20903
20904 2016-02-29 Richard Biener <rguenther@suse.de>
20905
20906 PR tree-optimization/69720
20907 * tree-vect-loop.c (get_initial_def_for_reduction): Avoid
20908 the adjustment_def path for possibly vectorized defs.
20909 (vect_create_epilog_for_reduction): Handle vectorized initial
20910 defs properly.
20911
20912 2016-02-28 Eric Botcazou <ebotcazou@adacore.com>
20913
20914 * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
20915
20916 2016-02-27 Jeff Law <law@redhat.com>
20917
20918 Revert
20919 2016-02-26 Richard Biener <rguenther@suse.de>
20920 Jeff Law <law@redhat.com>
20921
20922 PR tree-optimization/69740
20923 * cfghooks.c (remove_edge): Request loop fixups if we delete
20924 an edge that might turn an irreducible loop into a natural
20925 loop.
20926
20927 2016-02-27 Jakub Jelinek <jakub@redhat.com>
20928
20929 PR rtl-optimization/69896
20930 * tree-vect-generic.c (get_compute_type): Avoid single element
20931 vector types.
20932
20933 2016-02-26 Evandro Menezes <e.menezes@samsung.com>
20934
20935 Rename the AArch64 tuning option and related functions to enable the
20936 Newton series for the reciprocal square root to reflect its
20937 approximative characteristic.
20938
20939 * config/aarch64/aarch64-protos.h (aarch64_emit_swrsqrt): Rename
20940 function to "aarch64_emit_approx_rsqrt".
20941 * config/aarch64/aarch64-tuning-flags.def: Rename tuning flag to
20942 AARCH64_EXTRA_TUNE_APPROX_RSQRT.
20943 * config/aarch64/aarch64.c (exynosm1_tunigs): Use new flag name.
20944 (xgene1_tunings): Likewise.
20945 (use_rsqrt_p): Likewise.
20946 (aarch64_emit_swrsqrt): Use new function name.
20947 * config/aarch64/aarch64-simd.md (aarch64_rsqrts_*): Likewise.
20948 * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): Reword the
20949 text explaining this option.
20950 * doc/invoke.texi (-mlow-precision-recip-sqrt): Likewise.
20951
20952 2016-02-26 Jakub Jelinek <jakub@redhat.com>
20953
20954 PR target/69969
20955 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
20956 complain about -mallow-movmisalign without -mvsx if
20957 TARGET_ALLOW_MOVMISALIGN was not set explicitly.
20958
20959 2016-02-26 Joel Sherrill <joel@rtems.org>
20960
20961 * config.gcc: Add x86_64-*-rtems*.
20962 * config/i386/rtems-64.h: New file.
20963
20964 2016-02-26 Joel Sherrill <joel@rtems.org>
20965
20966 * config.gcc: Add aarch64-*-rtems*.
20967 * config/aarch64/rtems.h: New file.
20968
20969 2016-02-26 Segher Boessenkool <segher@kernel.crashing.org>
20970
20971 PR target/69946
20972 * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
20973 shift amount using %h. Add comment.
20974
20975 2016-02-26 Richard Biener <rguenther@suse.de>
20976 Jeff Law <law@redhat.com>
20977
20978 PR tree-optimization/69740
20979 * cfghooks.c (remove_edge): Request loop fixups if we delete
20980 an edge that might turn an irreducible loop into a natural
20981 loop.
20982
20983 2016-02-26 Martin Jambor <mjambor@suse.cz>
20984
20985 PR middle-end/69920
20986 * tree-sra.c (sra_modify_assign): Do not remove loads of
20987 uninitialized aggregates to SSA_NAMEs.
20988
20989 2016-02-26 Richard Henderson <rth@redhat.com>
20990
20991 PR target/69709
20992 * config/s390/s390.md (risbg and risbgn splitters): Allocate new
20993 pseudo in case the target rtx matches the source of the left
20994 shift.
20995
20996 2016-02-26 Martin Jambor <mjambor@suse.cz>
20997
20998 PR hsa/69568
20999 * hsa.h (hsa_type_packed_p): Declare.
21000 * hsa.c (hsa_type_packed_p): New function.
21001 * hsa-gen.c (mem_type_for_type): Use unsigned type for packed
21002 loads.
21003 (gen_hsa_insns_for_store): Use hsa_type_packed_p.
21004 * hsa-brig.c (emit_basic_insn): Likewise.
21005
21006 2016-02-26 Martin Jambor <mjambor@suse.cz>
21007
21008 pr hsa/69674
21009 * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
21010 pointers.
21011 (gen_hsa_addr): Allow integer constants in TMR_INDEX2.
21012
21013 2016-02-26 Martin Jambor <mjambor@suse.cz>
21014
21015 * hsa.h (is_a_helper): New overload for hsa_op_immed for
21016 hsa_op_with_type operands.
21017 (hsa_unsigned_type_for_type): Declare.
21018 * hsa.c (hsa_unsigned_type_for_type): New function.
21019 * hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type.
21020 (gen_hsa_insns_for_operation_assignment): Satisfy constrains of
21021 the finalizer. Do not emit extra move.
21022
21023 2016-02-26 Martin Jambor <mjambor@suse.cz>
21024
21025 * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
21026 atomic operations in private segment.
21027
21028 2016-02-26 Martin Jambor <mjambor@suse.cz>
21029
21030 * omp-low.c (grid_find_ungridifiable_statement): Store problematic
21031 statements to wi->info. Also disallow omp simd constructs.
21032 (grid_target_follows_gridifiable_pattern): Use wi.info to dump reason
21033 for not gridifying. Dump special string for omp_for.
21034
21035 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21036
21037 PR target/69245
21038 * config/aarch64/aarch64.c (aarch64_set_current_function):
21039 Save/restore target globals when switching to
21040 target_option_default_node.
21041
21042 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21043
21044 PR target/69613
21045 * config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
21046 Return 0 if !SHIFT_COUNT_TRUNCATED.
21047
21048 2016-02-26 Jakub Jelinek <jakub@redhat.com>
21049 Eric Botcazou <ebotcazou@adacore.com>
21050
21051 PR rtl-optimization/69891
21052 * dse.c (scan_insn): If we can't figure out memset arguments
21053 or they are non-constant, call clear_rhs_from_active_local_stores.
21054
21055 2016-02-26 Martin Liska <mliska@suse.cz>
21056
21057 * doc/extend.texi: Mention clog10, clog10f an clog10l
21058 in Builtins section.
21059
21060 2016-02-26 Martin Liska <mliska@suse.cz>
21061
21062 * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
21063 CHECKING_P.
21064 (resolve_args_picking_1): Likewise.
21065 * dwarf2out.h (struct GTY): Likewise.
21066
21067 2016-02-26 Martin Liska <mliska@suse.cz>
21068
21069 * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
21070 with flag_checking.
21071 * hsa-regalloc.c (linear_scan_regalloc): Likewise.
21072
21073 2016-02-26 Markus Trippelsdorf <markus@trippelsdorf.de>
21074 Martin Liska <mliska@suse.cz>
21075
21076 * doc/install.texi: Mention --enable-valgrind-annotations.
21077
21078 2016-02-26 Richard Biener <rguenther@suse.de>
21079
21080 PR tree-optimization/69551
21081 * tree-ssa-structalias.c (get_constraint_for_ssa_var): When
21082 looking through aliases adjust DECL_PT_UID to refer to the
21083 ultimate alias target.
21084
21085 2016-02-25 Martin Liska <mliska@suse.cz>
21086
21087 PR middle-end/69919
21088 * alloc-pool.c (after_memory_report): New variable.
21089 * alloc-pool.h (base_pool_allocator ::release): Do not use
21090 the infrastructure if after_memory_report.
21091 * toplev.c (toplev::main): Mark after memory report.
21092
21093 2016-02-25 Richard Biener <rguenther@suse.de>
21094
21095 PR tree-optimization/48795
21096 * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
21097
21098 2016-02-25 Ilya Verbin <ilya.verbin@intel.com>
21099
21100 PR driver/68463
21101 * config/gnu-user.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o if
21102 offloading is enabled and -fopenacc or -fopenmp is specified.
21103 (CRTOFFLOADEND): Likewise.
21104 (GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
21105 (GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
21106 * lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
21107 (offload_objects_file_name): New static var.
21108 (tool_cleanup): Remove offload_objects_file_name file.
21109 (find_offloadbeginend): Replace with ...
21110 (find_crtoffloadtable): ... this.
21111 (run_gcc): Remove offload_argc and offload_argv.
21112 Get offload_objects_file_name from -foffload-objects=... option.
21113 Read names of object files with offload from this file, pass them to
21114 compile_images_for_offload_targets. Don't call find_offloadbeginend and
21115 don't pass offloadbegin and offloadend to the linker. Don't pass
21116 offload non-LTO files to the linker, because now they're not claimed.
21117
21118 2016-02-25 Jan Hubicka <hubicka@ucw.cz>
21119
21120 PR ipa/69630
21121 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
21122 on builtin_unreachable.
21123
21124 2016-02-25 Jakub Jelinek <jakub@redhat.com>
21125
21126 PR rtl-optimization/69896
21127 * regcprop.c: Include cfgrtl.h.
21128 (copyprop_hardreg_forward_1): If noop_p insn uses narrower
21129 than remembered mode, either delete it (if noop_move_p), or
21130 treat like copy_p but not noop_p instruction.
21131
21132 2016-02-24 Jakub Jelinek <jakub@redhat.com>
21133
21134 PR debug/69705
21135 * dwarf2out.c (gen_variable_die): Work around buggy LTO
21136 - allow NULL decl for Fortran DW_TAG_common_block variables.
21137
21138 2016-02-24 Jason Merrill <jason@redhat.com>
21139
21140 * common.opt (flifetime-dse): Add -flifetime-dse=1.
21141
21142 2016-02-24 Richard Biener <rguenther@suse.de>
21143 Jakub Jelinek <jakub@redhat.com>
21144
21145 PR middle-end/69760
21146 * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
21147 conditionally executed ops to well-defined overflow behavior.
21148
21149 2016-02-24 Jakub Jelinek <jakub@redhat.com>
21150
21151 PR middle-end/69915
21152 * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
21153 elements.
21154
21155 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21156
21157 PR rtl-optimization/69886
21158 * gcse.c (can_assign_to_reg_without_clobbers_p): Accept mode
21159 argument. Use it when checking validity of set instructions.
21160 (want_to_gcse_p): Pass mode to can_assign_to_reg_without_clobbers_p.
21161 (compute_ld_motion_mems): Update can_assign_to_reg_without_clobbers_p
21162 callsite.
21163 * rtl.h (can_assign_to_reg_without_clobbers_p): Update prototype.
21164 * store-motion.c (find_moveable_store): Update
21165 can_assign_to_reg_without_clobbers_p callsite.
21166
21167 2016-02-24 Richard Biener <rguenther@suse.de>
21168
21169 PR middle-end/68963
21170 * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
21171 bogus check.
21172 (record_nonwrapping_iv): Do not fall back to the low/high bound
21173 for non-constant IV bases if the stmt is not always executed.
21174
21175 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21176
21177 * config/arm/arm-cores.def (cortex-a32): New entry.
21178 * config/arm/arm-tables.opt: Regenerate.
21179 * config/arm/arm-tune.md: Regenerate.
21180 * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a32.
21181 * config/arm/t-aprofile: Handle mcpu=cortex-a32.
21182 * doc/invoke.texi (ARM Options): Document cortex-a32 as value
21183 for -mcpu and -mtune.
21184
21185 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21186
21187 PR target/69875
21188 * config/arm/arm.h (TARGET_HAVE_LPAE): Define.
21189 * config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value.
21190 * config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern.
21191 (atomic_loaddi_1): Delete.
21192 (atomic_loaddi): Rewrite expander using the above changes.
21193
21194 2016-02-24 Jakub Jelinek <jakub@redhat.com>
21195
21196 PR c/69918
21197 * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
21198 2 to 3.
21199
21200 2016-02-24 Jakub Jelinek <jakub@redhat.com>
21201 Richard Biener <rguenth@suse.de>
21202
21203 PR middle-end/69909
21204 * expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid
21205 set_mem_attributes if tem is SSA_NAME which got expanded
21206 as a MEM.
21207
21208 2016-02-24 Richard Biener <rguenther@suse.de>
21209
21210 PR tree-optimization/69907
21211 * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
21212 end of permutations for BB vectorization.
21213
21214 2016-02-24 Christian Bruel <christian.bruel@st.com>
21215
21216 * config/arm/arm-c.c (arm_option_override): Initialize
21217 target_option_current_node.
21218 * config/arm/arm.c (arm_pragma_target_parse): Replace
21219 build_target_option_node call by target_option_current_node.
21220 Set target_option_current_node.
21221 Fix comments.
21222
21223 2016-02-23 David Edelsohn <dje.gcc@gmail.com>
21224
21225 PR target/69810
21226 * config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
21227 define_insn_and_split to define_insn.
21228 (zero_extendqi<mode>2_dot2): Same.
21229 (extendqi<mode>2_dot): Same.
21230 (extendqi<mode>2_dot2): Same.
21231
21232 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
21233
21234 * config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores
21235 and add bypass for AES{D,E} and AESMC pairs.
21236 * config/aarch64/aarch64.c (exynosm1_tunings): Enable fusion of AES{D,E}
21237 and AESMC pairs.
21238
21239 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
21240
21241 * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
21242 series for reciprocal square root in Exynos M1.
21243
21244 2016-02-23 Martin Sebor <msebor@redhat.com>
21245
21246 PR c/69759
21247 * doc/extend.texi (Other Builtins): Document __builtin_alloca and
21248 __builtin_alloca_with_align.
21249
21250 2016-02-23 Richard Henderson <rth@redhat.com>
21251
21252 * config/i386/i386-c.c (ix86_target_macros): Remove __SEG_TLS.
21253 (ix86_register_pragmas): Remove __seg_tls.
21254 * config/i386/i386-protos.h (ADDR_SPACE_SEG_TLS): Remove.
21255 * config/i386/i386.c (ix86_print_operand_address_as): Don't handle it.
21256 (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): Remove.
21257 (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): Remove.
21258 (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): Remove.
21259 * doc/extend.texi (__seg_tls): Remove item.
21260
21261 2016-02-23 Richard Biener <rguenther@suse.de>
21262
21263 * alloc-pool.h (struct allocation_object): Make id member
21264 conditional on CHECKING_P again.
21265 (get_instance): Adjust.
21266 (base_pool_allocator): Likewise.
21267
21268 2016-02-23 Thomas Schwinge <thomas@codesourcery.com>
21269
21270 * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
21271 (parallelize_loops): In OpenACC kernels mode, set n_threads to
21272 zero.
21273 (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
21274 flag_openacc.
21275 * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
21276
21277 2016-02-23 Richard Biener <rguenther@suse.de>
21278
21279 * mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
21280 * bitmap.h (struct bitmap_usage): Likewise.
21281 (bitmap_move): Declare.
21282 * bitmap.c (register_overhead): Take size_t argument.
21283 (bitmap_move): New function.
21284 * df-problems.c (df_rd_transfer_function): Use bitmap_move
21285 to properly account overhead.
21286 * tree.c (free_node): Use tree_size.
21287
21288 2016-02-23 Jakub Jelinek <jakub@redhat.com>
21289
21290 PR c++/69902
21291 * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
21292 when inverting comparison.
21293
21294 PR c/69900
21295 * common.opt (Wunreachable-code): Add Warning flag.
21296
21297 2016-02-23 Mark Wielaard <mjw@redhat.com>
21298 Jakub Jelinek <jakub@redhat.com>
21299
21300 PR c/69911
21301 * cgraphunit.c (check_global_declaration): Check main_input_filename
21302 and DECL_SOURCE_FILE are not NULL.
21303
21304 2016-02-23 Martin Jambor <mjambor@suse.cz>
21305
21306 PR tree-optimization/69666
21307 * tree-sra.c (sra_modify_assign): Do not attempt to create
21308 default_def replacements for unscalarizable regions.
21309
21310 2016-02-20 Mark Wielaard <mjw@redhat.com>
21311
21312 PR c/28901
21313 * cgraphunit.c (check_global_declaration): Check level of
21314 warn_unused_const_variable and main_input_filename.
21315 * doc/invoke.texi (Warning Options): Add -Wunused-const-variable=.
21316 (-Wunused-variable): For C implies -Wunused-const-variable=1.
21317 (-Wunused-const-variable): Explain levels 1 and 2.
21318
21319 2016-02-22 Jakub Jelinek <jakub@redhat.com>
21320
21321 PR target/69888
21322 * config/i386/i386.c (decide_alg): Ensure we don't recurse with
21323 identical arguments. Formatting and spelling fixes.
21324
21325 PR target/69885
21326 * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
21327 be specified.
21328
21329 PR target/69894
21330 PR target/69895
21331 * config/m68k/t-opts (OPTIONS_H_EXTRA): Add m68k-microarchs.def
21332 and m68k-devices.def.
21333 * config/c6x/t-c6x (OPTIONS_H_EXTRA): Add c6x-isas.def.
21334 * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add aarch64-arches.def.
21335
21336 2016-02-22 Cesar Philippidis <cesar@codesourcery.com>
21337
21338 * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
21339 and HImode registers.
21340
21341 2016-02-22 Richard Biener <rguenther@suse.de>
21342
21343 PR tree-optimization/69882
21344 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Properly
21345 preserve permutations present because of gaps.
21346 (vect_supported_load_permutation_p): Always continue checking
21347 permutations after vect_attempt_slp_rearrange_stmts.
21348
21349 2016-02-22 Bin Cheng <bin.cheng@arm.com>
21350
21351 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
21352 min_profitable_estimate, rather than min_profitable_iters.
21353
21354 2016-02-22 Jakub Jelinek <jakub@redhat.com>
21355
21356 PR target/69885
21357 * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
21358 SImode for last match_operand.
21359
21360 2016-02-22 Martin Liska <mliska@suse.cz>
21361
21362 * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
21363 return bitsize - 1 as the return value.
21364
21365 2016-02-22 Oleg Endo <olegendo@gcc.gnu.org>
21366
21367 PR target/69806
21368 PR target/54089
21369 * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
21370 Handle negative shift counts.
21371 * config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
21372 force_reg on the shift constant.
21373 (lshrsi3): Likewise. Expand into lshrsi3_n* instead of lshrsi3_d.
21374 (lshrsi3_d): Handle negative shift counts.
21375
21376 2016-02-22 Richard Biener <rguenther@suse.de>
21377 Tom de Vries <tom@codesourcery.com>
21378
21379 * graph.c: Include dumpfile.h.
21380 (print_graph_cfg): Split into three overloads.
21381 * gdbhooks.py (class DotFn): Add and instantiate, adding command dot-fn.
21382
21383 2016-02-22 Tom de Vries <tom@codesourcery.com>
21384
21385 * gdbhooks.py (class DumpFn): Add and instantiate, adding command
21386 dump-fn.
21387
21388 2016-02-22 Richard Biener <rguenther@suse.de>
21389
21390 PR ipa/37448
21391 * ipa-inline-transform.c (inline_call): When not updating
21392 overall summaries adjust self size by the growth estimate.
21393 * ipa-inline.c (inline_to_all_callers_1): Add to the callers
21394 hash-set, do not update overall summaries here. Renamed from ...
21395 (inline_to_all_callers): ... this which is now wrapping the
21396 above and performing delayed overall summary update.
21397 (early_inline_small_functions): Delay updating of the overall
21398 summary.
21399
21400 2016-02-21 Markus Trippelsdorf <markus@trippelsdorf.de>
21401
21402 * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
21403 variable.
21404
21405 2016-02-19 Jakub Jelinek <jakub@redhat.com>
21406
21407 PR driver/69805
21408 * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use
21409 :%* in %:gt() argument.
21410 (greater_than_spec_func): Adjust for expecting only numbers,
21411 if there are more than two numbers, compare the last two.
21412
21413 2016-02-19 Jonathan Wakely <jwakely@redhat.com>
21414
21415 * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
21416 -Wnarrowing with -std.
21417
21418 2016-02-19 Jakub Jelinek <jakub@redhat.com>
21419
21420 PR c++/69851
21421 * expr.c (store_field): Don't use bit-field path if exp is
21422 COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is
21423 different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize
21424 and the assignment can be performed by bitwise copy. Formatting
21425 fix.
21426
21427 PR middle-end/69838
21428 * lra.c (lra_process_new_insns): If non-call exceptions are enabled,
21429 call copy_reg_eh_region_note_forward on before and/or after sequences
21430 and remove note from insn if it no longer can throw.
21431
21432 PR target/69820
21433 * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
21434 if TARGET_AVX512BW.
21435
21436 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21437
21438 * config/s390/vector.md: Add missing commutative operand markers
21439 to the patterns which qualify for one.
21440 * config/s390/vx-builtins.md: Likewise.
21441
21442 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21443
21444 * config/s390/vector.md (VI, VI_QHS): Add single element vector
21445 types to mode iterators.
21446 (vec_double): ... and mode attribute.
21447 * config/s390/vx-builtins.md (non_vec_int): Likewise.
21448
21449 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21450
21451 * config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
21452 Change the predicate of op2 from nonimmediate to general and let
21453 reload fix it if necessary.
21454
21455 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21456
21457 * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
21458
21459 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21460
21461 * config/s390/s390.c (s390_expand_vcond): Use the compare operand
21462 mode.
21463
21464 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21465
21466 * config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
21467 * config/s390/s390.c (s390_expand_vec_movstr): New function.
21468 * config/s390/s390.md ("movstr<P:mode>"): Call
21469 s390_expand_vec_movstr.
21470
21471 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21472
21473 * config/s390/s390.md: Add missing output modifier for operand 1
21474 to print it as address properly.
21475
21476 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21477
21478 * config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
21479 * config/s390/2964.md: New file.
21480 * config/s390/s390.c (s390_get_sched_attrmask): Use the right set
21481 of insn grouping attributes depending on the CPU level.
21482 (s390_get_unit_mask): New function.
21483 (s390_sched_score): Remove the OOO from the scheduling macros.
21484 Add loop to calculate a score for the instruction mix.
21485 (s390_sched_reorder): Likewise plus improve debug output.
21486 (s390_sched_variable_issue): Rename macros as above. Calculate
21487 the unit distances after actually scheduling an insn. Improve
21488 debug output.
21489 (s390_sched_init): Clear last_scheduled_unit_distance array.
21490 * config/s390/s390.md: Include 2964.md.
21491
21492 2016-02-18 Jakub Jelinek <jakub@redhat.com>
21493
21494 PR target/69671
21495 * config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
21496 *avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
21497 *avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
21498 *avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
21499 *avx512f_<code>v8div16qi2_mask_1): New insns.
21500
21501 2016-02-18 Michael Meissner <meissner@linux.vnet.ibm.com>
21502
21503 PR target/68404
21504 * config/rs6000/predicates.md (fusion_gpr_addis): Revert
21505 2016-02-09 change.
21506
21507 * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
21508 earlyclobber from target. Use wF constraint for fused memory
21509 address.
21510 (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
21511
21512 2016-02-18 Jakub Jelinek <jakub@redhat.com>
21513 Martin Liska <mliska@suse.cz>
21514
21515 PR sanitizer/69863
21516 * cfgexpand.c (asan_sanitize_stack_p): New function.
21517 (partition_stack_vars): Use the function.
21518 (expand_stack_vars): Likewise.
21519 (defer_stack_allocation): Likewise.
21520 (expand_used_vars): Likewise.
21521
21522 2016-02-18 Richard Biener <rguenther@suse.de>
21523
21524 PR middle-end/69553
21525 * fold-const.c (operand_equal_p): Properly compare offsets for
21526 IMAGPART_EXPR and ARRAY_REF.
21527
21528 2016-02-18 Nick Clifton <nickc@redhat.com>
21529
21530 PR target/62254
21531 PR target/69610
21532 * config/arm/arm.c (arm_option_override_internal): Disable
21533 interworking if the target does not support thumb instructions.
21534 (arm_reload_in_hi): Handle the case where a register to register
21535 move needs reloading because there is no simple pattern to handle
21536 it.
21537 (arm_reload_out_hi): Likewise.
21538
21539 2016-02-18 Richard Biener <rguenther@suse.de>
21540
21541 PR middle-end/69854
21542 * match.pd: Don't use fold_binary or fold_unary for folding
21543 constants.
21544
21545 2016-02-17 Jakub Jelinek <jakub@redhat.com>
21546
21547 PR c++/69850
21548 * gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
21549 on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
21550 * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
21551 warn on gimple_no_warning_p statements.
21552
21553 2016-02-17 Jonathan Wakely <jwakely@redhat.com>
21554
21555 * doc/extend.texi (C++ Attributes): Correct description of
21556 warn_unused type attribute.
21557
21558 2016-02-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
21559
21560 * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
21561 correct instruction.
21562
21563 2016-02-17 Richard Biener <rguenther@suse.de>
21564
21565 PR rtl-optimization/69609
21566 * bb-reorder.c (struct bbro_basic_block_data): Add priority member.
21567 (find_traces_1_round): When ending a trace update cached priority
21568 of successors.
21569 (bb_to_key): Use cached priority when available.
21570 (copy_bb): Initialize cached priority.
21571 (reorder_basic_blocks_software_trace_cache): Likewise.
21572
21573 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21574
21575 PR target/69161
21576 * config/aarch64/predicates.md (aarch64_comparison_operator_mode):
21577 New predicate.
21578 (aarch64_comparison_operator): Break overly long line into two.
21579 (aarch64_comparison_operation): Likewise.
21580 * config/aarch64/aarch64.md (cstorecc4): Use
21581 aarch64_comparison_operator_mode instead of
21582 aarch64_comparison_operator.
21583 (cstore<mode>4): Likewise.
21584 (aarch64_cstore<mode>): Likewise.
21585 (*cstoresi_insn_uxtw): Likewise.
21586 (cstore<mode>_neg): Likewise.
21587 (*cstoresi_neg_uxtw): Likewise.
21588
21589 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21590
21591 PR target/69161
21592 * config/arm/predicates.md (arm_comparison_operator_mode):
21593 New predicate.
21594 * config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode
21595 instead of arm_comparison_operator.
21596 (*mov_negscc): Likewise.
21597 (*mov_notscc): Likewise.
21598 * config/arm/thumb2.md (*thumb2_mov_scc): Likewise.
21599 (*thumb2_mov_negscc): Likewise.
21600 (*thumb2_mov_negscc_strict_it): Likewise.
21601 (*thumb2_mov_notscc): Likewise.
21602 (*thumb2_mov_notscc_strict_it): Likewise.
21603
21604 2016-02-17 Wilco Dijkstra <wdijkstr@arm.com>
21605
21606 * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
21607 Add missing return.
21608
21609 2016-02-17 Eric Botcazou <ebotcazou@adacore.com>
21610
21611 * config/visium/visium.c (machine_libfunc_index): New enum.
21612 (machine_libfuncs): New structure.
21613 (visium_libfuncs): New static variable.
21614 (TARGET_INIT_LIBFUNCS): Define to...
21615 (visium_init_libfuncs): ...this. New function.
21616 (expand_block_move_4): Use the appropriate libfunc.
21617 (expand_block_move_2): Likewise.
21618 (expand_block_move_1): Likewise.
21619 (expand_block_set_4): Likewise.
21620 (expand_block_set_2): Likewise.
21621 (expand_block_set_1): Likewise.
21622 (visium_trampoline_init): Likewise.
21623
21624 2016-02-17 Nick Clifton <nickc@redhat.com>
21625
21626 * config/msp430/msp430.c (msp430_mcu_data): Sync with data from
21627 TI's devices.csv file as of March 2016.
21628
21629 2016-02-16 Kelvin Nilsen <kelvin@gcc.gnu.org>
21630
21631 PR Target/48344
21632 * opts-global.c (handle_common_deferred_options): Introduce and
21633 initialize two global variables to remember command-line options
21634 specifying a stack-limiting register.
21635 * opts.h: Add extern declarations of the two new global variables.
21636 * emit-rtl.c (init_emit_once): Initialize the stack_limit_rtx
21637 variable based on the values of the two new global variables.
21638
21639 2016-02-16 Jakub Jelinek <jakub@redhat.com>
21640
21641 PR c/69835
21642 * common.opt (Wnonnull-compare): New warning.
21643 * doc/invoke.texi (-Wnonnull): Remove text about comparison
21644 of arguments against NULL.
21645 (-Wnonnull-compare): Document.
21646 * Makefile.in (OBJS): Add gimple-ssa-nonnull-compare.o.
21647 * tree-pass.h (make_pass_warn_nonnull_compare): Declare.
21648 * passes.def (pass_warn_nonnull_compare): Add.
21649 * gimple-ssa-nonnull-compare.c: New file.
21650
21651 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
21652
21653 * config/aarch64/aarch64.c (cortexa57_tunings): Remove
21654 AARCH64_EXTRA_TUNE_RECIP_SQRT.
21655
21656 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
21657
21658 * config/aarch64/aarch64.c (use_rsqrt_p): Always use software
21659 reciprocal sqrt for -mlow-precision-recip-sqrt.
21660
21661 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
21662 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
21663
21664 * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
21665 always use lane loads to construct non-constant vectors.
21666
21667 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
21668
21669 * config/aarch64/aarch64.md
21670 (arch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Fix register
21671 constraints for operand 3.
21672 (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
21673
21674 2016-02-16 Jakub Jelinek <jakub@redhat.com>
21675 Richard Biener <rguenther@suse.de>
21676
21677 PR tree-optimization/69820
21678 * tree-vect-patterns.c (type_conversion_p): Return false if
21679 *orig_type is unsigned single precision or boolean.
21680 (vect_recog_dot_prod_pattern, vect_recog_widen_mult_pattern):
21681 Formatting fix.
21682
21683 2016-02-16 Jakub Jelinek <jakub@redhat.com>
21684
21685 PR rtl-optimization/69764
21686 PR rtl-optimization/69771
21687 * optabs.c (expand_binop): Ensure for shift optabs invalid CONST_INT
21688 op1 is valid for GET_MODE_INNER (mode) and force it into a reg.
21689
21690 2016-02-16 Richard Biener <rguenther@suse.de>
21691
21692 PR tree-optimization/69776
21693 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
21694 sets from caller.
21695 (indirect_refs_may_alias_p): Likewise.
21696 (refs_may_alias_p_1): Pass alias sets as from ao_ref.
21697 * tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set
21698 according to tbaa_p.
21699 * tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag.
21700 (optimize_stmt): For redundant store discovery do not allow tbaa.
21701
21702 2016-02-16 Bernd Schmidt <bschmidt@redhat.com>
21703
21704 PR tree-optimization/69714
21705 * tree-ssa-math-opts.c (find_bswap_or_nop): Revert previous change.
21706 Return NULL if we have irrelevant high bytes on BIG_ENDIAN.
21707
21708 2016-02-16 Claudiu Zissulescu <claziss@synopsys.com>
21709
21710 * config/arc/arc-modes.def (CC_FPU, CC_FPU_UNEQ): New modes.
21711 * config/arc/arc-opts.h (FPU_SP, FPU_SF, FPU_SC, FPU_SD, FPU_DP)
21712 (FPU_DF, FPU_DC, FPU_DD, FXP_DP): Define.
21713 * config/arc/arc.c (arc_init): Check FPU options.
21714 (get_arc_condition_code): Handle new CC_FPU* modes.
21715 (arc_select_cc_mode): Likewise.
21716 (arc_conditional_register_usage): Allow 64 bit datum into even-odd
21717 register pair only. Allow access for ARCv2 accumulator.
21718 (gen_compare_reg): Whenever we have FPU support use FPU compare
21719 instructions.
21720 (arc_reorg): Don't generate brcc insns when FPU compare
21721 instructions are involved.
21722 * config/arc/arc.h (TARGET_DPFP): Add TARGET_FP_DPAX condition.
21723 (TARGET_OPTFPE): Add condition when ARC EM can use optimized
21724 floating point emulation.
21725 (ACC_REG_FIRST, ACC_REG_LAST, ACCL_REGNO, ACCH_REGNO): Define.
21726 (REVERSE_CONDITION): Add new CC_FPU* modes.
21727 (TARGET_FP_SP_BASE): Define.
21728 (TARGET_FP_DP_BASE): Likewise.
21729 (TARGET_FP_SP_FUSED): Likewise.
21730 (TARGET_FP_DP_FUSED): Likewise.
21731 (TARGET_FP_SP_CONV): Likewise.
21732 (TARGET_FP_DP_CONV): Likewise.
21733 (TARGET_FP_SP_SQRT): Likewise.
21734 (TARGET_FP_DP_SQRT): Likewise.
21735 (TARGET_FP_DP_AX): Likewise.
21736 * config/arc/arc.md (ARCV2_ACC): New constant.
21737 (type): New fpu type attribute.
21738 (SDF): Conditional iterator.
21739 (cstore<mode>, cbranch<mode>): Change expand condition.
21740 (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3): New expands,
21741 handles FPU/FPX cases as well.
21742 * config/arc/arc.opt (mfpu): New option.
21743 * config/arc/fpx.md (addsf3_fpx, subsf3_fpx, mulsf3_fpx):
21744 Renamed.
21745 (adddf3, muldf3, subdf3): Removed.
21746 * config/arc/predicates.md (proper_comparison_operator): Recognize
21747 CC_FPU* modes.
21748 * config/arc/fpu.md: New file.
21749 * doc/invoke.texi (ARC Options): Document mfpu option.
21750
21751 2016-02-16 Richard Biener <rguenther@suse.de>
21752
21753 PR rtl-optimization/69291
21754 * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
21755 noce_operand_ok check.
21756
21757 2016-02-16 Tom de Vries <tom@codesourcery.com>
21758
21759 PR lto/67709
21760 * omp-low.c (simd_clone_create): Remove call to
21761 symtab->call_cgraph_insertion_hooks.
21762
21763 2016-02-16 Jakub Jelinek <jakub@redhat.com>
21764
21765 PR tree-optimization/69802
21766 * tree-ssa-reassoc.c (update_range_test): If op is
21767 SSA_NAME_IS_DEFAULT_DEF, give up unless tem is a positive
21768 op == 1 test of precision 1 integral op, otherwise handle
21769 that case as op itself. Fix up formatting.
21770 (optimize_range_tests_to_bit_test, optimize_range_tests): Fix
21771 up formatting.
21772
21773 2016-02-16 Richard Biener <rguenther@suse.de>
21774
21775 PR tree-optimization/69586
21776 * tree-vrp.c (register_edge_assert_for_2): Handle all integral
21777 types for conversion sources.
21778
21779 2016-02-16 Richard Biener <rguenther@suse.de>
21780
21781 PR middle-end/69801
21782 * fold-const.c (operand_equal_p): For COND_EXPR zero operand
21783 mask OEP_ADDRESS_OF.
21784
21785 2016-02-16 Alan Modra <amodra@gmail.com>
21786
21787 PR target/68973
21788 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter.
21789 (p8_mtvsrd_df, p8_mtvsrd_sf): New.
21790 (p8_mtvsrd_1, p8_mtvsrd_2): Delete.
21791 (p8_mtvsrwz): New.
21792 (p8_mtvsrwz_1, p8_mtvsrwz_2): Delete.
21793 (p8_xxpermdi_<mode>): Take two DF inputs rather than one TF.
21794 (p8_fmrgow_<mode>): Likewise.
21795 (reload_vsx_from_gpr<mode>): Make clobber IF. Adjust for above
21796 changes.
21797 (reload_fpr_from_gpr<mode>): Similarly. Use "d" for op0 constraint.
21798 (reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting
21799 to use movdi_internal64. Remove op0_di.
21800 * config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode.
21801
21802 2016-02-15 Evandro Menezes <e.menezes@samsung.com>
21803
21804 Add support for the FCCMP insn types
21805
21806 * config/aarch64/aarch64.md (fccmp): Change insn type.
21807 (fccmpe): Likewise.
21808 * config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types.
21809 * config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise.
21810 * config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise.
21811 * config/arm/xgene1.md (xgene1_fcmp): Likewise.
21812 * config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation.
21813 * config/arm/types.md (fccmps): Add new insn type.
21814 (fccmpd): Likewise.
21815
21816 2016-02-15 Bernd Edlinger <bernd.edlinger@hotmail.de>
21817
21818 * alias.c (get_alias_set): Fix a typo in comment.
21819
21820 2016-02-15 Richard Biener <rguenther@suse.de>
21821
21822 PR tree-optimization/69595
21823 * match.pd: Complete range test simplification to true.
21824
21825 2016-02-15 Bernd Schmidt <bschmidt@redhat.com>
21826
21827 PR rtl-optimization/69648
21828 * lra-constraints.c (update_ebb_live_info): Don't remove sets of
21829 pic_offset_table_rtx.
21830
21831 PR rtl-optimization/69752
21832 * ira.c (update_equiv_regs): When looking for more than a single SET,
21833 also take other side effects into account.
21834
21835 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
21836
21837 * config/s390/s390.c (s390_function_profiler): Add a new sequence
21838 for z900+ CPUs in 31-bit mode.
21839
21840 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
21841
21842 * common/config/s390/s390-common.c (s390_supports_split_stack):
21843 New function.
21844 (TARGET_SUPPORTS_SPLIT_STACK): New macro.
21845 * config/s390/s390-protos.h: Add s390_expand_split_stack_prologue.
21846 * config/s390/s390.c (struct machine_function): New field
21847 split_stack_varargs_pointer.
21848 (s390_register_info): Mark r12 as clobbered if it'll be used as temp
21849 in s390_emit_prologue.
21850 (s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack
21851 vararg pointer.
21852 (morestack_ref): New global.
21853 (SPLIT_STACK_AVAILABLE): New macro.
21854 (s390_expand_split_stack_prologue): New function.
21855 (s390_live_on_entry): New function.
21856 (s390_va_start): Use split-stack vararg pointer if appropriate.
21857 (s390_asm_file_end): Emit the split-stack note sections.
21858 (TARGET_EXTRA_LIVE_ON_ENTRY): New macro.
21859 * config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec.
21860 (UNSPECV_SPLIT_STACK_CALL): New unspec.
21861 (UNSPECV_SPLIT_STACK_DATA): New unspec.
21862 (split_stack_prologue): New expand.
21863 (split_stack_space_check): New expand.
21864 (split_stack_data): New insn.
21865 (split_stack_call): New expand.
21866 (split_stack_call_*): New insn.
21867 (split_stack_cond_call): New expand.
21868 (split_stack_cond_call_*): New insn.
21869
21870 2016-02-15 Richard Biener <rguenther@suse.de>
21871
21872 PR tree-optimization/69783
21873 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
21874 Add trivially correct cases.
21875
21876 2016-02-15 Tom de Vries <tom@codesourcery.com>
21877
21878 PR lto/69655
21879 * lto-cgraph.c (input_offload_tables): Add and handle bool parameter
21880 do_force_output.
21881 * lto-streamer.h (input_offload_tables): Add and handle bool parameter.
21882
21883 2016-02-15 Richard Biener <rguenther@suse.de>
21884
21885 PR tree-optimization/69776
21886 * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
21887 * tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to
21888 indicate whether we can use TBAA to disambiguate against stores.
21889 Use alias-set zero if not.
21890 (visit_reference_op_store): Do not use TBAA when looking up
21891 redundant stores.
21892 * tree-ssa-pre.c (compute_avail): Use TBAA here.
21893 (eliminate_dom_walker::before_dom_children): But not when looking
21894 up redundant stores.
21895
21896 2016-02-14 John David Anglin <danglin@gcc.gnu.org>
21897
21898 * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.
21899
21900 2016-02-14 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
21901
21902 * config/i386/znver1.md
21903 (znver1_pop, znver1_pop_mem,
21904 znver1_load_imov_double_store,
21905 znver1_load_imov_direct_store,
21906 znver1_load_imov_direct_load,
21907 znver1_load_imov_double_load): Add new.
21908 (znver1_insn, znver1_insn_load): Add icmov type.
21909 (znver1_sseavx_fma,
21910 znver1_sseavx_fma_load,
21911 znver1_avx256_fma,
21912 znver1_avx256_fma_load): Fix pipe usage.
21913
21914 2016-02-14 Alan Modra <amodra@gmail.com>
21915
21916 PR target/68973
21917 * reload.c (find_reloads_address_1): For pre/post-inc/dec
21918 with an invalid hard reg, reload just the reg not the entire
21919 pre/post-inc/dec address expression.
21920
21921 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
21922
21923 PR target/67260
21924 * config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with
21925 fixed R1_REG scratch reg.
21926 (sibcall_value_pcrel_fdpic): Likewise.
21927
21928 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
21929
21930 PR target/67636
21931 PR target/64345
21932 * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.
21933
21934 2016-02-12 Walter Lee <walt@tilera.com>
21935
21936 * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
21937 * config/tilegx/t-tilegx: Likewise.
21938
21939 2016-02-12 David Malcolm <dmalcolm@redhat.com>
21940
21941 PR other/69554
21942 * diagnostic-show-locus.c (struct line_span): New struct.
21943 (layout::get_first_line): Delete.
21944 (layout::get_last_line): Delete.
21945 (layout::get_num_line_spans): New member function.
21946 (layout::get_line_span): Likewise.
21947 (layout::print_heading_for_line_span_index_p): Likewise.
21948 (layout::get_expanded_location): Likewise.
21949 (layout::calculate_line_spans): Likewise.
21950 (layout::m_first_line): Delete.
21951 (layout::m_last_line): Delete.
21952 (layout::m_line_spans): New field.
21953 (layout::layout): Update comment. Replace m_first_line and
21954 m_last_line with m_line_spans, replacing their initialization
21955 with a call to calculate_line_spans.
21956 (diagnostic_show_locus): When printing source lines and
21957 annotations, rather than looping over a single span
21958 of lines, instead loop over each line_span within
21959 the layout, with an inner loop over the lines within them.
21960 Call the context's start_span callback when changing line spans.
21961 * diagnostic.c (diagnostic_initialize): Initialize start_span.
21962 (diagnostic_build_prefix): Break out the building of the location
21963 part of the string into...
21964 (diagnostic_get_location_text): ...this new function, rewriting
21965 it from nested ternary expressions to a sequence of "if"
21966 statements.
21967 (default_diagnostic_start_span_fn): New function.
21968 * diagnostic.h (diagnostic_start_span_fn): New typedef.
21969 (diagnostic_context::start_span): New field.
21970 (default_diagnostic_start_span_fn): New prototype.
21971
21972 2016-02-12 David Malcolm <dmalcolm@redhat.com>
21973
21974 PR driver/69779
21975 * gcc.c (driver::finalize): Fix cleanup of "specs".
21976
21977 2016-02-12 David Malcolm <dmalcolm@redhat.com>
21978
21979 PR driver/69265
21980 PR driver/69453
21981 * gcc.c (driver::driver): Initialize m_option_suggestions.
21982 (driver::~driver): Clean up m_option_suggestions.
21983 (suggest_option): Convert to...
21984 (driver::suggest_option): ...this, and split out into
21985 driver::build_option_suggestions and find_closest_string.
21986 (driver::build_option_suggestions): New function, from
21987 first half of suggest_option. Special-case
21988 OPT_fsanitize_ and OPT_fsanitize_recover_, making use of
21989 the sanitizer_opts array. For options of enum types, add the
21990 various enum values to the candidate strings.
21991 (driver::handle_unrecognized_options): Remove "const".
21992 * gcc.h (driver::handle_unrecognized_options): Likewise.
21993 (driver::build_option_suggestions): New decl.
21994 (driver::suggest_option): New decl.
21995 (driver::m_option_suggestions): New field.
21996 * opts-common.c (add_misspelling_candidates): New function.
21997 * opts.c (sanitizer_opts): Remove decl of struct sanitizer_opts_s
21998 and make non-static.
21999 * opts.h (sanitizer_opts): New array decl.
22000 (add_misspelling_candidates): New function decl.
22001 * spellcheck.c (find_closest_string): New function.
22002 * spellcheck.h (find_closest_string): New function decl.
22003
22004 2016-02-12 Jakub Jelinek <jakub@redhat.com>
22005
22006 PR rtl-optimization/69764
22007 PR rtl-optimization/69771
22008 * optabs.c (expand_binop_directly): For shift_optab_p, force
22009 convert_modes with VOIDmode if xop1 has VOIDmode.
22010
22011 2016-02-12 Ilya Enkovich <enkovich.gnu@gmail.com>
22012
22013 PR target/69729
22014 * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
22015 to correctly determine instrumentation thunks.
22016
22017 2016-02-12 Jakub Jelinek <jakub@redhat.com>
22018
22019 PR ipa/69241
22020 * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
22021 type by reference, force lhs on the call.
22022
22023 PR ipa/68672
22024 * ipa-split.c (split_function): Don't compute/use main_part_return_p.
22025 Compute retval and retbnd early in all cases if split_part_return_p
22026 and return_bb is not EXIT. Remove all clobber stmts and reset
22027 all debug stmts that refer to SSA_NAMEs defined in split part,
22028 except if it is retval, in that case replace the old retval with the
22029 lhs of the call to the split part.
22030
22031 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
22032
22033 revert:
22034 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
22035
22036 PR middle-end/66726
22037 * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
22038 whose result is used in PHI.
22039 (maybe_optimize_range_tests): Likewise.
22040 (final_range_test_p): Likweise.
22041
22042 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
22043
22044 PR middle-end/66726
22045 * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
22046 whose result is used in PHI.
22047 (maybe_optimize_range_tests): Likewise.
22048 (final_range_test_p): Likweise.
22049
22050 2016-02-12 Jakub Jelinek <jakub@redhat.com>
22051
22052 * cgraph.c: Spelling fixes - behaviour -> behavior and
22053 neighbour -> neighbor.
22054 * target.def: Likewise.
22055 * sel-sched.c: Likewise.
22056 * config/mips/mips.c: Likewise.
22057 * config/arc/arc.md: Likewise.
22058 * config/arm/cortex-a57.md: Likewise.
22059 * config/arm/arm.c: Likewise.
22060 * config/arm/neon.md: Likewise.
22061 * config/arm/arm-c.c: Likewise.
22062 * config/vms/vms-c.c: Likewise.
22063 * config/s390/s390.c: Likewise.
22064 * config/i386/znver1.md: Likewise.
22065 * config/i386/i386.c: Likewise.
22066 * config/ia64/hpux-unix2003.h: Likewise.
22067 * config/msp430/msp430.md: Likewise.
22068 * config/rx/rx.c: Likewise.
22069 * config/rx/rx.md: Likewise.
22070 * config/aarch64/aarch64-simd.md: Likewise.
22071 * config/aarch64/aarch64.c: Likewise.
22072 * config/nvptx/nvptx.c: Likewise.
22073 * config/bfin/bfin.c: Likewise.
22074 * config/cris/cris.opt: Likewise.
22075 * config/rs6000/rs6000.c: Likewise.
22076 * target.h: Likewise.
22077 * spellcheck.c: Likewise.
22078 * ira-build.c: Likewise.
22079 * tree-inline.c: Likewise.
22080 * builtins.c: Likewise.
22081 * lra-constraints.c: Likewise.
22082 * explow.c: Likewise.
22083 * hwint.h: Likewise.
22084 * targhooks.c: Likewise.
22085 * tree-vect-data-refs.c: Likewise.
22086 * expr.c: Likewise.
22087 * doc/tm.texi: Likewise.
22088 * doc/extend.texi: Likewise.
22089 * doc/install.texi: Likewise.
22090 * doc/md.texi: Likewise.
22091 * tree-ssa-tail-merge.c: Likewise.
22092 * sched-int.h: Likewise.
22093 * match.pd: Likewise.
22094 * sched-ebb.c: Likewise.
22095 * target.def (omit_struct_return_reg): Likewise.
22096 * gimple-ssa-isolate-paths.c: Likewise.
22097 (find_implicit_erroneous_behaviour): Renamed to...
22098 (find_implicit_erroneous_behavior): ... this.
22099 (find_explicit_erroneous_behaviour): Renamed to...
22100 (find_explicit_erroneous_behavior): ... this.
22101 (gimple_ssa_isolate_erroneous_paths): Adjust caller.
22102
22103 2016-02-11 Segher Boessenkool <segher@kernel.crashing.org>
22104
22105 PR rtl-optimization/64682
22106 PR rtl-optimization/69567
22107 PR rtl-optimization/69737
22108 * combine.c (distribute_notes) <REG_DEAD>: If the register is set
22109 in I2 as well, just lose it.
22110
22111 2016-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22112
22113 * config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
22114 New variable.
22115 (aarch64_last_printed_tune_string): Likewise.
22116 (aarch64_declare_function_name): Only output .arch assembler
22117 directive if it will be different from the previously output
22118 directive. Same for .tune comment but only if -dA is set.
22119 (aarch64_start_file): New function.
22120 (TARGET_ASM_FILE_START): Define.
22121
22122 2016-02-11 David Malcolm <dmalcolm@redhat.com>
22123
22124 PR plugins/69758
22125 * Makefile.in (PLUGIN_HEADERS): Add params.list.
22126
22127 2016-02-11 Jakub Jelinek <jakub@redhat.com>
22128
22129 PR target/65313
22130 * tree-vect-slp.c (vect_schedule_slp_instance): Avoid
22131 -Wmaybe-uninitialized warning.
22132
22133 2016-02-11 Oleg Endo <olegendo@gcc.gnu.org>
22134
22135 PR target/69713
22136 * config/sh/sh.md (casesi_worker_0): Add T_REG use.
22137
22138 2016-02-11 Richard Biener <rguenther@suse.de>
22139
22140 PR rtl-optimization/69291
22141 * ifcvt.c (noce_try_store_flag_constants): Do not allow
22142 subexpressions affected by changing the result.
22143
22144 2016-02-10 Vladimir Makarov <vmakarov@redhat.com>
22145
22146 PR target/69148
22147 * lra-constraints.c (curr_insn_transform): Find in/out operands
22148 for secondary memory moves. Update dups.
22149
22150 2016-02-10 Yuri Rumyantsev <ysrumyan@gmail.com>
22151
22152 PR tree-optimization/69652
22153 * tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1
22154 to nested loop, did source re-formatting, skip debug statements,
22155 add check on statement with volatile operand, remove dead scalar
22156 statements.
22157
22158 2016-02-10 Jakub Jelinek <jakub@redhat.com>
22159 Patrick Palka <ppalka@gcc.gnu.org>
22160
22161 PR ipa/69241
22162 PR c++/69649
22163 * gimplify.c (gimplify_modify_expr): Set lhs even for noreturn
22164 calls if the return type is TREE_ADDRESSABLE.
22165 * cgraphunit.c (cgraph_node::expand_thunk): Likewise.
22166 * ipa-split.c (split_function): Fix doubled "we" in comment.
22167 Use void return type for the split part even if
22168 !split_point->split_part_set_retval.
22169
22170 2016-02-10 Bin Cheng <bin.cheng@arm.com>
22171
22172 PR tree-optimization/68021
22173 * tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if
22174 when computing the value of biv cand by itself.
22175
22176 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
22177
22178 * config/aarch64/aarch64.c (cortexa53_tunings): Enable AES fusion.
22179 (cortexa57_tunings): Likewise.
22180 (cortexa72_tunings): Likewise.
22181 (arch_macro_fusion_pair_p): Add support for AES fusion.
22182 * config/aarch64/aarch64-fusion-pairs.def: Add AES_AESMC entry.
22183 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
22184 Allow virtual registers before reload so early scheduling works.
22185 * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Use
22186 correct latency and pipeline.
22187 (cortex_a57_crypto_complex): Likewise.
22188 (cortex_a57_crypto_xor): Likewise.
22189 (define_bypass): Add AES bypass.
22190
22191 2016-02-10 Richard Biener <rguenther@suse.de>
22192
22193 PR tree-optimization/69726
22194 * passes.def: Add DCE pass before late uninit.
22195 * match.pd: Add A ? B : (!A ? C : X) -> A ? B : C patterns to
22196 really fixup if-conversions job.
22197
22198 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
22199
22200 * config/arm/arm.c (arm_cortex_a53_tune): Enable AES fusion.
22201 (arm_cortex_a57_tune): Likewise.
22202 (aarch_macro_fusion_pair_p): Add support for AES fusion.
22203 * config/arm/arm-protos.h (fuse_ops): Add FUSE_AES_AESMC.
22204
22205 2016-02-10 Eric Botcazou <ebotcazou@adacore.com>
22206
22207 * timevar.def (TV_PHASE_DBGINFO): Delete.
22208 (TV_PHASE_CHECK_DBGINFO): Likewise.
22209 * varpool.c (varpool_node::assemble_decl): Do not change timevar.
22210
22211 2016-02-10 Richard Biener <rguenther@suse.de>
22212
22213 PR tree-optimization/69719
22214 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
22215 Adjust previous fix by ensuring that dr_a1 is left of dr_a2.
22216
22217 2016-02-09 Andrew Pinski <apinski@cavium.com>
22218
22219 PR tree-opt/69282
22220 * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
22221 get_vcond_mask_icode returns false.
22222
22223 2016-02-09 Michael Meissner <meissner@linux.vnet.ibm.com>
22224
22225 PR target/68404
22226 * config/rs6000/predicates.md (fusion_gpr_addis): Prevent fusing
22227 an ADDIS that adds a pointer to a large constant that sets the
22228 upper16 bits with a load operation.
22229
22230 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
22231
22232 PR target/68532
22233 * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
22234 order.
22235 * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
22236 endian.
22237 (vzipq_s16): Likewise.
22238 (vzipq_s32): Likewise.
22239 (vzipq_f32): Likewise.
22240 (vzipq_u8): Likewise.
22241 (vzipq_u16): Likewise.
22242 (vzipq_u32): Likewise.
22243 (vzipq_p8): Likewise.
22244 (vzipq_p16): Likewise.
22245
22246 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
22247
22248 PR target/68532
22249 * config/arm/arm.c (neon_endian_lane_map): New function.
22250 (neon_vector_pair_endian_lane_map): New function.
22251 (arm_evpc_neon_vuzp): Allow for big endian lane order.
22252 * config/arm/arm_neon.h (vuzpq_s8): Adjust shuffle patterns for big
22253 endian.
22254 (vuzpq_s16): Likewise.
22255 (vuzpq_s32): Likewise.
22256 (vuzpq_f32): Likewise.
22257 (vuzpq_u8): Likewise.
22258 (vuzpq_u16): Likewise.
22259 (vuzpq_u32): Likewise.
22260 (vuzpq_p8): Likewise.
22261 (vuzpq_p16): Likewise.
22262
22263 2016-02-11 Alexandre Oliva <aoliva@redhat.com>
22264
22265 PR target/69634
22266 * regstat.c (regstat_bb_compute_calls_crossed): Disregard
22267 debug insns.
22268
22269 2016-02-09 Uros Bizjak <ubizjak@gmail.com>
22270
22271 * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
22272 truncate const_int operand 1 to QImode.
22273
22274 2016-02-09 Eric Botcazou <ebotcazou@adacore.com>
22275
22276 * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
22277 corresponding to an abnormal edge.
22278
22279 2016-02-09 Tom de Vries <tom@codesourcery.com>
22280
22281 PR tree-optimization/69599
22282 * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
22283 function.
22284 (find_func_aliases_for_builtin_call, find_func_clobbers)
22285 (ipa_pta_execute): Handle case that foo and foo._0 are not in same lto
22286 partition.
22287
22288 2016-02-09 Richard Biener <rguenther@suse.de>
22289
22290 PR tree-optimization/69715
22291 * tree-ssa.c (execute_update_addresses_taken): Mark non-decl
22292 LHS on calls as non-rewritable.
22293
22294 2016-02-09 Tom de Vries <tom@codesourcery.com>
22295
22296 PR lto/69707
22297 * lto-wrapper.c (append_diag_options): New function.
22298 (compile_offload_image): Call append_diag_options.
22299
22300 2016-02-08 Sandra Loosemore <sandra@codesourcery.com>
22301
22302 PR other/69722
22303 * doc/extend.texi (Flag Output Operands): Correct sectioning.
22304 Minor copy-edit to fix verb tenses.
22305
22306 2016-02-08 Jakub Jelinek <jakub@redhat.com>
22307
22308 PR tree-optimization/69209
22309 * ipa-split.c (split_function): If split part is not
22310 returning retval, retval has gimple type but is not
22311 gimple value, force it into a SSA_NAME first.
22312
22313 2016-02-08 Nicklas Bo Jensen <nbjensen@gmail.com>
22314
22315 * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
22316 outdated section.
22317
22318 2016-02-08 Jason Merrill <jason@redhat.com>
22319
22320 PR c++/69631
22321 * convert.c (convert_to_integer_1): Check dofold on truncation
22322 distribution.
22323 (convert_to_pointer_maybe_fold, convert_to_real_maybe_fold)
22324 (convert_to_integer_maybe_fold, convert_to_complex_maybe_fold):
22325 Rename from *_nofold.
22326 * convert.h (convert_to_pointer_nofold, convert_to_integer_nofold)
22327 (convert_to_real_nofold, convert_to_complex_nofold): New inlines.
22328
22329 2016-02-08 Bernd Schmidt <bschmidt@redhat.com>
22330
22331 PR target/60410
22332 * tree.c (build_common_tree_nodes): Remove short_double argument.
22333 All callers changed.
22334 * tree.h (build_common_tree_nodes): Adjust declaration.
22335 * doc/invoke.texi (-fshort-double): Remove documentation.
22336 * config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
22337 MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
22338 * lto-wrapper.c (merge_and_complain, append_compiler_options)
22339 (append_linker_options): Don't handle OPT_fshort_double.
22340
22341 PR rtl-optimization/68730
22342 * lra-remat.c (insn_to_cand_activation): New static variable.
22343 (lra_remat): Allocate and free it.
22344 (create_cand): New arg activation. Initialize a field in
22345 insn_to_cand_activation if it is nonnull.
22346 (create_cands): Pass the activation insn to create_cand when making
22347 a candidate involving an output reload. Reorganize code a little.
22348 (do_remat): Keep track of active status of candidates in a separate
22349 bitmap.
22350
22351 2016-02-08 Richard Biener <rguenther@suse.de>
22352
22353 PR tree-optimization/69719
22354 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
22355 Properly use absolute of the difference of the two offsets to
22356 compare or adjust the segment length.
22357
22358 2016-02-08 Richard Biener <rguenther@suse.de>
22359 Jeff Law <law@redhat.com>
22360
22361 PR target/68273
22362 * tree-ssanames.c (make_ssa_name_fn): Always use unqualified
22363 types for anonymous SSA names.
22364
22365 2016-02-08 Richard Biener <rguenther@suse.de>
22366
22367 PR rtl-optimization/69274
22368 * ira.c (ira_setup_alts): Do not change recog_data.operand order.
22369
22370 2016-02-08 Jeff Law <law@redhat.com>
22371
22372 PR tree-optimization/65917
22373 * tree-ssa-dom.c (record_temporary_equivalences): Record both
22374 equivalences from if (x == y) style conditionals.
22375 (loop_depth_of_name): Remove.
22376 (record_equality): Remove loop depth check.
22377 * tree-ssa-scopedtables.h (const_and_copies): Refine comments.
22378 (const_and_copies::record_const_or_copy_raw): New member function.
22379 * tree-ssa-scopedtables.c
22380 (const_and_copies::record_const_or_copy_raw): New, factored out of
22381 (const_and_copies::record_const_or_copy): Call new member function.
22382
22383 2016-02-05 Jeff Law <law@redhat.com>
22384
22385 PR tree-optimization/68541
22386 * gimple-ssa-split-paths.c: Include tree-cfg.h and params.h.
22387 (count_stmts_in_block): New function.
22388 (poor_ifcvt_candidate_code): Likewise.
22389 (is_feasible_trace): Add some heuristics to determine when path
22390 splitting is profitable.
22391 (find_block_to_duplicate_for_splitting_paths): Make sure the graph
22392 is a diamond with a single exit.
22393
22394 2016-02-05 Martin Sebor <msebor@redhat.com>
22395
22396 PR c++/69662
22397 * doc/invoke.texi: Update -Wplacement-new to take an optional
22398 argument.
22399
22400 2016-02-06 Richard Henderson <rth@redhat.com>
22401
22402 PR c/69643
22403 * tree.c (tree_nop_conversion_p): Do not strip casts into or
22404 out of non-standard address spaces.
22405
22406 2016-02-05 Jakub Jelinek <jakub@redhat.com>
22407
22408 PR rtl-optimization/69691
22409 * lra-eliminations.c (move_plus_up): Don't add the addend twice.
22410
22411 2016-02-05 Pat Haugen <pthaugen@us.ibm.com>
22412
22413 * config/rs6000/crypto.md (crypto_vpermxor_<mode>): Correct insn type.
22414 * config/rs6000/rs6000.md (mov<mode>_hardfloat): Likewise.
22415 (*ieee128_mfvsrd_64bit): Likewise.
22416 (*ieee128_mfvsrd_32bit): Likewise.
22417
22418 2016-02-05 Ilya Enkovich <enkovich.gnu@gmail.com>
22419
22420 PR target/69369
22421 Revert r232560:
22422 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
22423
22424 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
22425 instrumented_version.
22426
22427 2016-01-05 Jeremy Bennett <jeremy.bennett@embecosm.com>
22428
22429 * doc/invoke.texi (Optimize Options): In table of --param options
22430 rename second occurrence of tracer-min-branch-ratio to
22431 tracer-min-branch-probability, rename
22432 tracer-min-branch-ratio-feedback to
22433 tracer-min-branch-probability-feedback and clarify description,
22434 rename sched-spec-state-edge-prob-cutoff to
22435 sched-state-edge-prob-cutoff, rename selsched-max-insns-to-rename
22436 to selsched-insns-to-rename, rename lto-minpartition to
22437 lto-min-partition, delete reorder-blocks-duplicate and
22438 reorder-blocks-duplicate-feedback.
22439
22440 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
22441
22442 * config/s390/s390.c (s390_register_info_set_ranges): Remove
22443 superfluous loops.
22444
22445 2016-02-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
22446
22447 * doc/extend.texi: S/390: Correct some typos.
22448
22449 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
22450
22451 * config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
22452
22453 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
22454
22455 PR target/69625
22456 * config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines.
22457 (s390_register_info_gprtofpr): Use new macros above.
22458 (s390_register_info_stdarg_fpr): Adjust max_fpr to better match
22459 its name.
22460 (s390_register_info_stdarg_gpr): Adjust max_gpr to better match
22461 its name. Adjust restore and save gpr ranges.
22462 (s390_register_info_set_ranges): New function.
22463 (s390_register_info): Use new macros above. Call
22464 s390_register_info_set_ranges.
22465 (s390_optimize_register_info): Likewise.
22466 (s390_hard_regno_rename_ok): Use new macros.
22467 (s390_hard_regno_scratch_ok): Likewise.
22468 (s390_emit_epilogue): Likewise.
22469 (s390_can_use_return_insn): Likewise.
22470 (s390_optimize_prologue): Likewise.
22471 * config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants.
22472
22473 2016-02-05 Jakub Jelinek <jakub@redhat.com>
22474
22475 PR bootstrap/69677
22476 * config/i386/i386.c (convert_scalars_to_vector): Readd stack
22477 alignment fixes.
22478 (ix86_option_override_internal): Disable TARGET_STV even for
22479 -m{incoming,preferred}-stack-boundary=3.
22480
22481 2016-02-03 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
22482
22483 * config.gcc: Mark deprecated rtems targets as obsolete.
22484
22485 2016-02-04 Segher Boessenkool <segher@kernel.crashing.org>
22486
22487 PR rtl-optimization/64682
22488 PR rtl-optimization/69567
22489 * combine.c (distribute_notes) <REG_DEAD>: Place the death note
22490 before I2 only if the register is both used and set in I2.
22491
22492 2016-02-04 DJ Delorie <dj@redhat.com>
22493
22494 * config/msp430/msp430.c (msp430_start_function): Add function type.
22495
22496 2016-02-04 Jakub Jelinek <jakub@redhat.com>
22497
22498 PR fortran/69368
22499 * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
22500
22501 2016-02-04 Uros Bizjak <ubizjak@gmail.com>
22502
22503 PR rtl-optimization/69577
22504 Revert:
22505 2015-10-29 Richard Henderson <rth@redhat.com>
22506
22507 PR target/68124
22508 PR rtl-opt/67609
22509 * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
22510 sse check to the exact conditions of PR 67609.
22511
22512 2016-02-04 Michael Meissner <meissner@linux.vnet.ibm.com>
22513
22514 PR target/69667
22515 * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Use 'd' constraint
22516 instead of 'ws', and 'wh' instead of 'wm' since TFmode/IFmode are
22517 not allowed into the traditional Altivec registers.
22518 (movtd_64bit_nodm): Likewise.
22519 (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
22520
22521 2016-02-04 David Malcolm <dmalcolm@redhat.com>
22522
22523 * config/aarch64/cortex-a57-fma-steering.c
22524 (aarch64_register_fma_steering): Remove "static" from arguments
22525 to register_pass.
22526
22527 2016-02-04 Wilco Dijkstra <wdijkstr@arm.com>
22528
22529 PR target/69619
22530 * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
22531 twice when complex.
22532
22533 2016-02-04 Mike Frysinger <vapier@gentoo.org>
22534
22535 * doc/invoke.texi: Delete -mno-fma4.
22536
22537 2016-02-04 Richard Sandiford <richard.sandiford@arm.com>
22538
22539 PR rtl-optimization/69577
22540 * reginfo.c (record_subregs_of_mode): Add a partial_def parameter.
22541 (find_subregs_of_mode): Update accordingly. Iterate over partial
22542 definitions.
22543
22544 2016-02-04 Alan Lawrence <alan.lawrence@arm.com>
22545
22546 * config/arm/arm-protos.h (neon_reinterpret): Remove.
22547 * config/arm/arm.c (neon_reinterpret): Remove.
22548 * config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi,
22549 vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi,
22550 vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di,
22551 vreinterpretti): Remove.
22552 * config/arm/neon.md (neon_vreinterpretv8qi<mode>,
22553 neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
22554 neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>,
22555 neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>,
22556 neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>,
22557 neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove.
22558 * config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32,
22559 vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64,
22560 vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32,
22561 vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32,
22562 vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64,
22563 vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8,
22564 vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8,
22565 vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8,
22566 vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64,
22567 vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16,
22568 vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16,
22569 vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16,
22570 vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64,
22571 vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32,
22572 vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32,
22573 vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32,
22574 vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8,
22575 vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8,
22576 vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8,
22577 vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64,
22578 vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16,
22579 vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16,
22580 vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16,
22581 vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64,
22582 vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32,
22583 vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32,
22584 vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32,
22585 vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64,
22586 vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8,
22587 vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8,
22588 vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64,
22589 vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8,
22590 vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16,
22591 vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16,
22592 vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64,
22593 vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16,
22594 vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32,
22595 vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32,
22596 vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64,
22597 vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32,
22598 vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8,
22599 vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64,
22600 vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8,
22601 vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8,
22602 vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32,
22603 vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64,
22604 vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16,
22605 vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16,
22606 vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32,
22607 vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64,
22608 vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16,
22609 vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16,
22610 vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16,
22611 vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64,
22612 vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16,
22613 vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16,
22614 vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16,
22615 vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64,
22616 vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16,
22617 vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16,
22618 vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16,
22619 vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64,
22620 vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16,
22621 vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16,
22622 vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16,
22623 vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128,
22624 vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16,
22625 vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16,
22626 vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16,
22627 vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128,
22628 vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16,
22629 vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16,
22630 vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16,
22631 vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128,
22632 vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16,
22633 vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16,
22634 vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16,
22635 vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128,
22636 vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8,
22637 vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16,
22638 vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16,
22639 vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64,
22640 vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64,
22641 vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8,
22642 vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8,
22643 vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64,
22644 vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64,
22645 vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32,
22646 vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8,
22647 vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64,
22648 vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64,
22649 vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32,
22650 vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8,
22651 vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64,
22652 vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64,
22653 vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32,
22654 vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts.
22655
22656 2016-02-04 Martin Liska <mliska@suse.cz>
22657
22658 PR sanitizer/69276
22659 * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
22660 that are gimple_store_p.
22661 (maybe_instrument_call): Likewise.
22662
22663 2016-02-04 Bin Cheng <bin.cheng@arm.com>
22664
22665 * config/aarch64/aarch64.c (aarch64_legitimize_address): Force
22666 register scaling out of memory reference and comment why.
22667
22668 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22669
22670 PR target/65932
22671 PR target/67714
22672 * cse.c (cse_insn): Pass NULL to fold_rtx when initially
22673 folding the source of a SET.
22674
22675 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22676
22677 PR target/65932
22678 PR target/67714
22679 * config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
22680 the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.
22681
22682 2016-02-04 Jim Wilson <jim.wilson@linaro.org>
22683
22684 PR target/65932
22685 PR target/67714
22686 * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
22687 HImode.
22688
22689 2016-02-04 Christian Bruel <christian.bruel@st.com>
22690
22691 * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
22692 * config/arm/arm.c (arm_set_current_function): Likewise.
22693
22694 2016-02-04 Jakub Jelinek <jakub@redhat.com>
22695 Ilya Enkovich <enkovich.gnu@gmail.com>
22696 H.J. Lu <hongjiu.lu@intel.com>
22697
22698 PR target/69454
22699 * config/i386/i386.c (convert_scalars_to_vector): Remove
22700 stack alignment fixes.
22701 (ix86_option_override_internal): Disable TARGET_STV if stack
22702 might not be aligned enough.
22703 (ix86_minimum_alignment): Assert that TARGET_STV is false.
22704
22705 2016-02-04 Victoria Stepanyan <victoria.stepanyan@amd.com>
22706
22707 * config/i386/x86-tune.def: Disable default prefetching
22708 for -march=znver1.
22709
22710 2016-02-03 Michael Meissner <meissner@linux.vnet.ibm.com>
22711 Vladimir Makarov <vmakarov@redhat.com>
22712
22713 PR target/69461
22714 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
22715 in validating fused toc addresses.
22716
22717 2016-02-03 Jakub Jelinek <jakub@redhat.com>
22718
22719 PR c/69627
22720 * diagnostic-show-locus.c (layout::get_state_at_point): Don't read
22721 range->m_caret fields if range->m_show_caret_p is false.
22722
22723 PR target/69644
22724 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
22725 Force oldval into register if it does not satisfy reg_or_short_operand
22726 predicate. Fix up formatting.
22727
22728 2016-02-03 Vladimir Makarov <vmakarov@redhat.com>
22729 Alexandre Oliva <aoliva@redhat.com>
22730
22731 PR target/69461
22732 * lra-constraints.c (simplify_operand_subreg): Check additionally
22733 address validity after potential reloading.
22734 (process_address_1): Check insns validity. In case of failure do
22735 nothing.
22736
22737 2016-02-03 Kirill Yukhin <kirill.yukhin@intel.com>
22738
22739 PR target/69118
22740 * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
22741 Fix target.
22742
22743 2016-02-02 Jakub Jelinek <jakub@redhat.com>
22744
22745 * wide-int.cc (canonize_uhwi): New function.
22746 (wi::divmod_internal): Use it.
22747
22748 2016-02-02 James Norris <jnorris@codesourcery.com>
22749
22750 * gimplify.c (omp_notice_variable): Add usage check.
22751
22752 2016-02-02 Alexander Monakov <amonakov@ispras.ru>
22753
22754 * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
22755 like LE, GE, LT, GT when emitting relational operator.
22756
22757 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
22758
22759 * ira-costs.c (find_costs_and_classes): Add extra argument.
22760 * target.def (ira_change_pseudo_allocno_class): Add parameter.
22761 * targhooks.h (ira_change_pseudo_allocno_class): Likewise.
22762 * targhooks.c (ira_change_pseudo_allocno_class): Likewise.
22763 * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
22764 Add best_class parameter, and return it if not ALL_REGS.
22765 * config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
22766 Add parameter.
22767 * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
22768 Update target hook.
22769
22770 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
22771
22772 * config/aarch64/aarch64.c
22773 (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
22774 (aarch64_ira_change_pseudo_allocno_class): New function.
22775
22776 2016-02-02 Uros Bizjak <ubizjak@gmail.com>
22777
22778 PR target/67032
22779 * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
22780
22781 2016-02-02 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
22782
22783 * config/avr/avr.c (avr_option_override): Set
22784 PARAM_ALLOW_STORE_DATA_RACES to 1.
22785
22786 2016-02-02 Richard Biener <rguenther@suse.de>
22787
22788 PR tree-optimization/69595
22789 * match.pd: Add range test simplifications to true/false.
22790
22791 2016-02-02 Thomas Schwinge <thomas@codesourcery.com>
22792
22793 * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
22794 * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
22795 instead.
22796
22797 2016-02-02 Richard Biener <rguenther@suse.de>
22798
22799 PR tree-optimization/69606
22800 * tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
22801 info on the result before moving a stmt.
22802
22803 2016-02-02 Yuri Rumyantsev <ysrumyan@gmail.com>
22804
22805 PR middle-end/68542
22806 * config/i386/i386.c (ix86_expand_branch): Add support for conditional
22807 branch with vector comparison.
22808 * config/i386/sse.md (VI48_AVX): New mode iterator.
22809 (define_expand "cbranch<mode>4): Add support for conditional branch
22810 with vector comparison.
22811 * tree-vect-loop.c (optimize_mask_stores): New function.
22812 * tree-vect-stmts.c (vectorizable_mask_load_store): Initialize
22813 has_mask_store field of vect_info.
22814 * tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for
22815 vectorized loops having masked stores after vec_info destroy.
22816 * tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and
22817 correspondent macros.
22818 (optimize_mask_stores): Add prototype.
22819
22820 2016-02-02 Alan Modra <amodra@gmail.com>
22821
22822 PR target/69548
22823 * config/rs6000/predicates.md (quad_int_reg_operand): Don't
22824 allow subregs.
22825
22826 2016-02-02 Alan Modra <amodra@gmail.com>
22827
22828 PR target/68662
22829 * config/rs6000/rs6000.c (need_toc_init): New var, set it
22830 whenever toc_label_name used.
22831 (rs6000_file_start): Don't set up toc section here,
22832 (rs6000_output_function_epilogue): do so here instead,
22833 (rs6000_xcoff_file_start): and here.
22834 * config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init.
22835 (load_toc_aix_di): Likewise.
22836
22837 2016-02-01 Jakub Jelinek <jakub@redhat.com>
22838
22839 PR rtl-optimization/69592
22840 * rtlanal.c (nonzero_bits_binary_arith_p): New inline function.
22841 (cached_nonzero_bits): Use it instead of ARITHMETIC_P.
22842 (num_sign_bit_copies_binary_arith_p): New inline function.
22843 (cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P.
22844
22845 2016-02-01 Jeff Law <law@redhat.com>
22846
22847 PR tree-optimization/69580
22848 * params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param.
22849 * tree-ssa-threadbackward.c
22850 (fsm_find_control_statement_thread_paths): Do not try to walk
22851 through large PHI nodes.
22852
22853 2016-02-01 Jakub Jelinek <jakub@redhat.com>
22854
22855 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
22856 when count is incremented above limit, don't analyze further
22857 insns afterwards.
22858
22859 * omp-low.c (oacc_parse_default_dims): Avoid
22860 -Wsign-compare warning, make sure value fits into int
22861 rather than just unsigned int.
22862
22863 2016-02-01 Bin Cheng <bin.cheng@arm.com>
22864
22865 PR tree-optimization/67921
22866 * fold-const.c (split_tree): New parameters. Convert pointer
22867 type variable part to proper type before negating.
22868 (fold_binary_loc): Pass new arguments to split_tree.
22869
22870 2016-02-01 Nathan Sidwell <nathan@codesourcery.com>
22871
22872 * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New.
22873 (nvptx_goacc_validate_dims): Extend to handle global defaults.
22874 * target.def (OACC_VALIDATE_DIMS): Extend documentation.
22875 * doc/tm.texti: Rebuilt.
22876 * doc/invoke.texi (fopenacc-dim): Document.
22877 * lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case.
22878 (append_compiler_options): Likewise.
22879 * omp-low.c (oacc_default_dims, oacc_min_dims): New.
22880 (oacc_parse_default_dims): New.
22881 (oacc_validate_dims): Add USED arg. Select non-unity default when
22882 possible.
22883 (oacc_loop_fixed_partitions): Return mask of used partitions.
22884 (oacc_loop_auto_partitions): Emit dump info.
22885 (oacc_loop_partition): Return mask of used partitions.
22886 (execute_oacc_device_lower): Parse default dimension arg. Adjust
22887 loop partitioning and validation calls.
22888
22889 2016-02-01 Richard Biener <rguenther@suse.de>
22890
22891 PR middle-end/69556
22892 * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
22893
22894 2016-02-01 Richard Biener <rguenther@suse.de>
22895
22896 PR tree-optimization/69574
22897 * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
22898 of asserting return chrec_dont_know.
22899
22900 2016-02-01 Martin Liska <mliska@suse.cz>
22901
22902 * mem-stats-traits.h: Add copyright header.
22903 * mem-stats.h: Likewise.
22904
22905 2016-02-01 Richard Biener <rguenther@suse.de>
22906
22907 PR tree-optimization/69579
22908 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
22909 Do not propagate through abnormal PHI results.
22910
22911 2016-02-01 Eric Botcazou <ebotcazou@adacore.com>
22912
22913 * postreload.c (reload_cse_simplify): Remove dead code.
22914
22915 2016-02-01 Jakub Jelinek <jakub@redhat.com>
22916
22917 PR rtl-optimization/69570
22918 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only
22919 if there is more than one set, not if there is a single set.
22920
22921 2016-02-01 Richard Henderson <rth@redhat.com>
22922
22923 PR rtl-opt/69535
22924 * combine.c (make_compound_operation): When looking through a
22925 subreg, make sure to re-extend to the width of the outer mode.
22926
22927 2016-01-30 Jakub Jelinek <jakub@redhat.com>
22928
22929 PR tree-optimization/69546
22930 * wide-int.cc (wi::divmod_internal): For unsigned division
22931 where both operands fit into uhwi, if o1 is 1 and o0 has
22932 msb set, if divident_prec is larger than bits per hwi,
22933 clear another quotient word and return 2 instead of 1.
22934 Similarly for remainder with msb in HWI set, if dividend_prec
22935 is larger than bits per hwi.
22936
22937 2016-01-29 Martin Jambor <mjambor@suse.cz>
22938
22939 * hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK.
22940 Use short lowercase names.
22941 (get_memory_order): Mask with MEMMODEL_BASE_MASK. Support
22942 MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with
22943 acq_rel one. Protect warning agains segfaults if
22944 get_memory_order_name returns NULL.
22945 (gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST
22946 with release semantics. Do not warn if get_memory_order already did.
22947 (gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire
22948 semantics. Fix check for relaxed or acquire semantics. Do not warn
22949 if get_memory_order already did.
22950
22951 2016-01-29 Sebastian Pop <s.pop@samsung.com>
22952
22953 * doc/install.texi: Document that isl-0.16 is supported.
22954
22955 2016-01-29 Vladimir Makarov <vmakarov@redhat.com>
22956
22957 PR target/69299
22958 * config/i386/constraints.md (Bm): Describe as special memory
22959 constraint.
22960 * doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it.
22961 * genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
22962 * genpreds.c (struct constraint_data): Add is_special_memory.
22963 (have_special_memory_constraints, special_memory_start): New
22964 static vars.
22965 (special_memory_end): Ditto.
22966 (add_constraint): Add new arg is_special_memory. Add code to
22967 process its true value. Update have_special_memory_constraints.
22968 (process_define_constraint): Pass the new arg.
22969 (process_define_register_constraint): Ditto.
22970 (choose_enum_order): Process special memory.
22971 (write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and
22972 function insn_extra_special_memory_constraint.
22973 (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
22974 * gensupport.c (process_rtx): Process
22975 DEFINE_SPECIAL_MEMORY_CONSTRAINT.
22976 * ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY.
22977 * ira-lives.c (single_reg_class): Use
22978 insn_extra_special_memory_constraint.
22979 * ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY.
22980 * lra-constraints.c (process_alt_operands): Ditto.
22981 (curr_insn_transform): Use insn_extra_special_memory_constraint.
22982 * recog.c (asm_operand_ok, preprocess_constraints): Process
22983 CT_SPECIAL_MEMORY.
22984 * reload.c (find_reloads): Ditto.
22985 * rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New.
22986 * stmt.c (parse_input_constraint): Use
22987 insn_extra_special_memory_constraint.
22988
22989 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
22990
22991 PR target/69530
22992 * lra-splill.c (lra_final_code_change): Revert r229087 by
22993 removing all sub-registers.
22994
22995 2016-01-29 Steve Ellcey <sellcey@imgtec.com>
22996
22997 PR target/65604
22998 * config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
22999
23000 2016-01-29 Jakub Jelinek <jakub@redhat.com>
23001
23002 PR target/69551
23003 * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
23004 SSE1, copy target into the temporary reg first before recursing
23005 on it.
23006
23007 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
23008
23009 * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
23010 with vm.
23011
23012 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
23013
23014 * ginclude/stdarg.h: Test __cplusplus instead of
23015 __GXX_EXPERIMENTAL_CXX0X__.
23016
23017 2016-01-29 Richard Biener <rguenther@suse.de>
23018
23019 PR tree-optimization/69547
23020 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
23021 Do not mark clobbers necessary.
23022 (mark_all_reaching_defs_necessary_1): Likewise.
23023
23024 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
23025
23026 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
23027 declaration name with %qs and print it in both error messages.
23028 Also fix indentation.
23029
23030 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
23031
23032 PR other/69006
23033 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
23034 trailing blank line from error message.
23035
23036 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
23037
23038 PR c++/69462
23039 * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
23040 for C++-11.
23041
23042 2016-01-29 Richard Biener <rguenther@suse.de>
23043
23044 PR middle-end/69537
23045 * match.pd: Allow all integral types when simplifying a
23046 widening or sign-changing conversion.
23047
23048 2016-01-28 Sebastian Pop <s.pop@samsung.com>
23049
23050 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
23051 back to setting codegen_error to fail codegen.
23052
23053 2016-01-28 Uros Bizjak <ubizjak@gmail.com>
23054
23055 PR target/69459
23056 * config/i386/constraints.md (C): Only accept constant zero operand.
23057 (BC): New constraint.
23058 * config/i386/sse.md (*mov<mode>_internal): Use BC constraint
23059 instead of C constraint.
23060 * doc/md.texi (Machine Constraints): Update description
23061 of C constraint.
23062
23063 2016-01-28 Steve Ellcey <sellcey@imgtec.com>
23064
23065 PR target/68400
23066 * config/mips/mips.c (and_operands_ok): Add MIPS16 check.
23067
23068 2016-01-28 Jakub Jelinek <jakub@redhat.com>
23069
23070 PR middle-end/69542
23071 * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
23072 non-debug insns.
23073
23074 2016-01-28 Pat Haugen <pthaugen@us.ibm.com>
23075
23076 * config/rs6000/rs6000.c (output_cbranch): Don't statically predict
23077 branches if using guessed profile.
23078
23079 2016-01-28 H.J. Lu <hongjiu.lu@intel.com>
23080
23081 * graphite-optimize-isl.c (optimize_isl): Fix dump.
23082
23083 2016-01-28 Richard Henderson <rth@redhat.com>
23084
23085 PR target/69305
23086 * config/aarch64/aarch64-modes.def (CC_Cmode): New
23087 * config/aarch64/aarch64-protos.h: Update.
23088 * config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
23089 (aarch64_select_cc_mode): Add check for use of CC_Cmode.
23090 (aarch64_get_condition_code_1): Handle CC_Cmode.
23091 * config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
23092 (*add<mode>3_compareC_cconly_imm): New.
23093 (*add<mode>3_compareC_cconly): New.
23094 (*add<mode>3_compareC_imm): New.
23095 (add<mode>3_compareC): New.
23096 (add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
23097 to be first. Use aarch64_carry_operation.
23098 (*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
23099 (*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
23100 (*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
23101 (subti3): Use subdi3_compare1.
23102 (*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
23103 (sub<mode>3_compare1): New.
23104 (*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
23105 (*sub<mode>3_carryin): Use aarch64_borrow_operation.
23106 (*subsi3_carryin_uxtw): Likewise.
23107 (*ngc<mode>, *ngcsi_uxtw): Likewise.
23108 (*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
23109 * config/aarch64/iterators.md (DWI): New.
23110 * config/aarch64/predicates.md (aarch64_carry_operation): New.
23111 (aarch64_borrow_operation): New.
23112
23113 2016-01-28 Abderrazek Zaafrani <a.zaafrani@samsung.com>
23114
23115 * graphite-optimize-isl.c (optimize_isl): Print a different debug
23116 message when isl does not return a valid schedule.
23117
23118 2016-01-28 Sebastian Pop <s.pop@samsung.com>
23119
23120 * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
23121 Remove comments from class declarations: they are already in the code
23122 close by the defs.
23123
23124 2016-01-28 Sebastian Pop <s.pop@samsung.com>
23125
23126 * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
23127 codegen_error_p.
23128 (ternary_op_to_tree): Same.
23129 (unary_op_to_tree): Same.
23130 (nary_op_to_tree): Same.
23131 (gcc_expression_from_isl_expr_op): Same.
23132 (gcc_expression_from_isl_expression): Same.
23133 (graphite_create_new_loop): Same.
23134 (graphite_create_new_loop_guard): Same.
23135 (build_iv_mapping): Same.
23136 (graphite_create_new_guard): Same.
23137 (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same.
23138 (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same.
23139
23140 2016-01-28 Sebastian Pop <s.pop@samsung.com>
23141
23142 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
23143 instead of setting codegen_error to fail codegen.
23144
23145 2016-01-28 Jason Merrill <jason@redhat.com>
23146
23147 * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
23148
23149 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
23150
23151 * config/aarch64/aarch64.c (aarch64_if_then_else_costs):
23152 Remove CONST_INT_P check in CCMP cost calculation.
23153
23154 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
23155
23156 * config/aarch64/aarch64.c (generic_vector_cost):
23157 Set vec_permute_cost.
23158 (cortexa57_vector_cost): Likewise.
23159 (exynosm1_vector_cost): Likewise.
23160 (xgene1_vector_cost): Likewise.
23161 (aarch64_builtin_vectorization_cost): Use vec_permute_cost.
23162 * config/aarch64/aarch64-protos.h (cpu_vector_cost):
23163 Add vec_permute_cost entry.
23164
23165 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
23166
23167 * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
23168 immediate as %1.
23169 (add<mode>3_compare0): Likewise.
23170 (addsi3_compare0_uxtw): Likewise.
23171 (add<mode>3nr_compare0): Likewise.
23172 (compare_neg<mode>): Likewise.
23173 (<optab><mode>3): Likewise.
23174
23175 2016-01-28 Ilya Enkovich <enkovich.gnu@gmail.com>
23176
23177 * tree-vect-stmts.c (vectorizable_comparison): Add
23178 NULL check for vectype.
23179
23180 2016-01-28 Richard Biener <rguenther@suse.de>
23181
23182 PR tree-optimization/69466
23183 * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
23184 Account for PHIs we couldn't duplicate.
23185
23186 2016-01-28 Martin Liska <mliska@suse.cz>
23187
23188 PR pch/68758
23189 * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
23190 instead of ENABLE_VALGRIND_CHECKING.
23191
23192 2016-01-27 Richard Henderson <rth@redhat.com>
23193
23194 PR rtl-opt/69447
23195 * lra-remat.c (subreg_regs): New.
23196 (dump_candidates_and_remat_bb_data): Dump it.
23197 (operand_to_remat): Reject if operand in subreg_regs.
23198 (set_bb_regs): Collect subreg_regs.
23199 (lra_remat): Init and free subreg_regs. Compute
23200 calculate_local_reg_remat_bb_data before create_cands.
23201
23202 2016-01-27 H.J. Lu <hongjiu.lu@intel.com>
23203
23204 PR target/68986
23205 * config/i386/i386.c (ix86_update_stack_boundary): Don't
23206 change stack_alignment_needed for __tls_get_addr call.
23207
23208 2016-01-27 Segher Boessenkool <segher@kernel.crashing.org>
23209
23210 * config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
23211
23212 2016-01-27 Jeff Law <law@redhat.com>
23213
23214 PR tree-optimization/68398
23215 PR tree-optimization/69196
23216 * params.def (PARAM_FSM_SCALE_PATH_STMTS): New parameter.
23217 (PARAM_FSM_SCALE_PATH_BLOCKS): Likewise.
23218 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
23219 Only count PHIs in the last block in the path. The others will
23220 const/copy propagate away. Add heuristic to allow more irreducible
23221 subloops to be created when it is likely profitable to do so.
23222
23223 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
23224 Fix typo in comment. Use gsi_after_labels and remove the GIMPLE_LABEL
23225 check from within the loop. Use gsi_next_nondebug rather than gsi_next.
23226
23227 2016-01-27 Jakub Jelinek <jakub@redhat.com>
23228
23229 PR lto/69254
23230 * sanitizer.def: Add BEGIN_SANITIZER_BUILTINS and
23231 END_SANITIZER_BUILTINS markers using DEF_BUILTIN_STUB.
23232 * asan.c (DEF_BUILTIN_STUB): Temporarily define.
23233 * tree-streamer-in.c: Include asan.h.
23234 (streamer_get_builtin_tree): For builtins in sanitizer
23235 range call initialize_sanitizer_builtins and retry.
23236
23237 2016-01-27 Ian Lance Taylor <iant@google.com>
23238
23239 * common.opt (fkeep-gc-roots-live): New undocumented option.
23240 * tree-ssa-loop-ivopts.c (add_candidate_1): If
23241 -fkeep-gc-roots-live, skip pointers.
23242 (add_iv_candidate_for_biv): Handle add_candidate_1 returning
23243 NULL.
23244
23245 2016-01-27 Uros Bizjak <ubizjak@gmail.com>
23246
23247 PR target/69512
23248 * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
23249 (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.
23250
23251 2016-01-27 Thomas Klausner <wiz@NetBSD.org>
23252
23253 PR target/68380
23254 * configure.ac: NetBSD provides SSP in its C library.
23255 * configure: Updated.
23256
23257 2016-01-27 Richard Biener <rguenther@suse.de>
23258
23259 PR tree-optimization/69166
23260 * tree-vect-loop.c (vect_is_simple_reduction): Always check
23261 reduction code for commutativity / associativity.
23262
23263 2016-01-27 Martin Jambor <mjambor@suse.cz>
23264
23265 PR tree-optimization/69355
23266 * tree-sra.c (analyze_access_subtree): Correct hole detection when
23267 total_scalarization fails.
23268
23269 2016-01-27 David Edelsohn <dje.gcc@gmail.com>
23270
23271 * config/rs6000/driver-rs6000.c (detect_processor_aix): Add
23272 power9.
23273
23274 2016-01-27 Christian Bruel <christian.bruel@st.com>
23275
23276 PR target/69245
23277 * config/arm/arm-c.c (arm_pragma_target_parse): Add comments.
23278 Move arm_reset_previous_fndecl and set_target_option_current_node in
23279 the conditional part. Call save_restore_target_globals.
23280 * config/arm/arm.c (arm_set_current_function):
23281 Refactor to better support #pragma target and attribute mix.
23282 Call save_restore_target_globals.
23283 * config/arm/arm-protos.h (save_restore_target_globals): New function.
23284
23285 2016-01-27 Martin Liska <mliska@suse.cz>
23286
23287 * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
23288 reference for an HSA kernel and its host function.
23289
23290 2016-01-27 Jakub Jelinek <jakub@redhat.com>
23291
23292 PR tree-optimization/69399
23293 * wide-int.h (wi::lrshift): For larger precisions, only
23294 use fast path if shift is known to be < HOST_BITS_PER_WIDE_INT.
23295
23296 2016-01-27 Claudiu Zissulescu <claziss@synopsys.com>
23297
23298 * config/arc/predicates.md (proper_comparison_operator): Reject
23299 constant-constant comparison.
23300
23301 2016-01-26 Tom de Vries <tom@codesourcery.com>
23302
23303 PR tree-optimization/69110
23304 * tree-data-ref.c (initialize_data_dependence_relation): Handle
23305 DR_NUM_DIMENSIONS == 0.
23306
23307 2016-01-26 Abderrazek Zaafrani <a.zaafrani@samsung.com>
23308 Sebastian Pop <s.pop@samsung.com>
23309
23310 * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Handle
23311 isl_ast_op_cond and isl_ast_op_select.
23312 (gcc_expression_from_isl_expr_op): Same.
23313
23314 2016-01-26 Jason Merrill <jason@redhat.com>
23315
23316 PR c++/68782
23317 * tree.c (recompute_constructor_flags): Split out from
23318 build_constructor.
23319 (verify_constructor_flags): New.
23320 * tree.h: Declare them.
23321
23322 2016-01-26 Iain Buclaw <ibuclaw@gdcproject.org>
23323
23324 PR rtl-optimization/69217
23325 * var-tracking.c (tracked_record_parameter_p): Don't segfault if there
23326 are no TYPE_FIELDS set for the record type.
23327
23328 2016-01-26 Jakub Jelinek <jakub@redhat.com>
23329
23330 PR target/68662
23331 * config/rs6000/rs6000.c (rs6000_option_override_internal): Initialize
23332 toc_label_name unconditionally.
23333 (rs6000_emit_load_toc_table): Call ggc_strdup on toc_label_name for
23334 SYMBOL_REF string. Use toc_label_name instead of constructing
23335 LCTOC1.
23336 (rs6000_elf_declare_function_name): Use toc_label_name instead of
23337 constructing LCTOC1.
23338
23339 2016-01-26 Martin Sebor <msebor@redhat.com>
23340
23341 PR other/69477
23342 * doc/extend.texi (Common Type Attributes): Move text that talks about
23343 attribute packed from attribute aligned to the section discussing
23344 the former attribute for clarity.
23345
23346 2016-01-26 Richard Henderson <rth@redhat.com>
23347
23348 PR middle-end/60908
23349 * trans-mem.c (tm_region_init): Mark entry block as visited.
23350
23351 2016-01-26 David Malcolm <dmalcolm@redhat.com>
23352
23353 PR other/69006
23354 * diagnostic-show-locus.c (layout::print_source_line): Replace
23355 call to pp_newline with call to layout::print_newline.
23356 (layout::print_annotation_line): Likewise.
23357 (layout::move_to_column): Likewise.
23358 (layout::print_any_fixits): After printing any fixits, print a
23359 trailing newline, if necessary.
23360 (layout::print_newline): New method, resetting any colorization
23361 before a newline.
23362 (diagnostic_show_locus): Move the pp_newline to before the
23363 early bailout. Remove dummy block enclosing the layout instance.
23364 * diagnostic.c (default_diagnostic_finalizer): Replace invocation
23365 of pp_newline_and_flush with pp_flush.
23366 (diagnostic_append_note): Delete use of pp_newline.
23367 (diagnostic_append_note_at_rich_loc): Delete.
23368 * diagnostic.h (diagnostic_append_note_at_rich_loc): Delete.
23369 * pretty-print.h (output_buffer_append_r): Reset buff->line_length
23370 when newline characters are added to the buffer.
23371
23372 2016-01-26 Michael Matz <matz@suse.de>
23373
23374 * configure.ac (ac_cv_std_swap_in_utility): New test.
23375 * system.h (<algorithm>): Check HAVE_SWAP_IN_UTILITY as well.
23376 * configure: Regenerate.
23377 * config.in: Regenerate.
23378
23379 2016-01-26 Claudiu Zissulescu <claziss@synopsys.com>
23380
23381 * config/arc/arc.md (cstoresi4): Force operand into register.
23382 (arcset<code>): Fix predicate.
23383 (arcsetltu): Likewise.
23384 (arcsetgeu): Likewise.
23385 (arcsethi): Likewise.
23386 (arcsetls): Likewise.
23387
23388 2016-01-26 Jakub Jelinek <jakub@redhat.com>
23389
23390 PR tree-optimization/69483
23391 * gimple-fold.c (canonicalize_constructor_val): Return NULL
23392 if base has error_mark_node type.
23393
23394 2016-01-26 Christophe Lyon <christophe.lyon@linaro.org>
23395
23396 PR target/68620
23397 * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
23398 * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
23399 New helper macros.
23400 (vget_lane_f16): Handle big-endian.
23401 (vgetq_lane_f16): Likewise.
23402 (vset_lane_f16): Likewise.
23403 (vsetq_lane_f16): Likewise.
23404 * config/arm/iterators.md (VQXMOV): Add V8HF.
23405 (VDQ): Add V4HF and V8HF.
23406 (V_reg): Handle V4HF and V8HF.
23407 (Is_float_mode): Likewise.
23408 * config/arm/neon.md (movv4hf, movv8hf, neon_vdup_nv4hf,
23409 neon_vdup_nv8hf): New patterns.
23410 (vec_set<mode>_internal, vec_extract<mode>, neon_vld1_dup<mode>):
23411 Use VD_LANE iterator.
23412 (neon_vld1_dup<mode>): Use VQ2 iterator.
23413
23414 2016-01-26 Nathan Sidwell <nathan@acm.org>
23415
23416 * omp-low.h (oacc_fn_attrib_kernels_p): Declare.
23417 (set_oacc_fn_attrib): Add IS_KERNEL arg.
23418 * omp-low.c (set_oacc_fn_attrib): Add IS_KERNEL arg.
23419 (oacc_fn_attrib_kernels_p, oacc_fn_attrib_level): New.
23420 (expand_omp_target): Pass is_kernel to set_oacc_fn_attrib.
23421 (oacc_validate_dims): Add LEVEL arg, don't return level.
23422 (new_oacc_loop_routine): Use oacc_fn_attrib_level, not
23423 oacc_validate_dims.
23424 (execute_oacc_device_lower): Adjust, add more dump output.
23425 * tree-ssa-loop.c (gate_oacc_kernels): Use
23426 oacc_fn_attrib_kernels_p.
23427 * tree-parloops.c (create_parallel_loop): Adjust
23428 set_oacc_fn_attrib call.
23429
23430 2016-01-26 Jakub Jelinek <jakub@redhat.com>
23431
23432 PR lto/69254
23433 * lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
23434 (append_compiler_options): Handle -fcilkplus.
23435 (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.
23436
23437 2016-01-26 Nick Clifton <nickc@redhat.com>
23438
23439 PR target/66655
23440 * config/i386/winnt.c (i386_pe_binds_local_p): If a function has
23441 been marked as DECL_ONE_ONLY but we do not the means to make it
23442 so, then do not allow it to bind locally.
23443
23444 2016-01-26 Jakub Jelinek <jakub@redhat.com>
23445
23446 PR lto/69254
23447 * opts.h (parse_sanitizer_options): New prototype.
23448 * opts.c (sanitizer_opts): New array.
23449 (parse_sanitizer_options): New function.
23450 (common_handle_option): Use parse_sanitizer_options.
23451
23452 2016-01-26 H.J. Lu <hongjiu.lu@intel.com>
23453
23454 PR target/68986
23455 * config/i386/i386.c (ix86_compute_frame_layout): Move stack
23456 alignment adjustment to ...
23457 (ix86_update_stack_boundary): Here. Don't over-align stack for
23458 __tls_get_addr.
23459 (ix86_finalize_stack_realign_flags): Use stack_alignment_needed
23460 if __tls_get_addr is called.
23461
23462 2016-01-26 Christian Bruel <christian.bruel@st.com>
23463
23464 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.
23465
23466 2016-01-26 Eric Botcazou <ebotcazou@adacore.com>
23467
23468 * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.
23469
23470 2016-01-26 Richard Biener <rguenther@suse.de>
23471
23472 PR middle-end/69467
23473 * match.pd: Guard X * CST CMP 0 pattern with single_use.
23474
23475 2016-01-26 Richard Biener <rguenther@suse.de>
23476
23477 PR tree-optimization/69452
23478 * tree-ssa-loop-im.c (move_computations_dom_walker): Remove.
23479 (move_computations_dom_walker::before_dom_children): Rename
23480 to ...
23481 (move_computations_worker): This.
23482 (move_computations): Perform an RPO rather than a DOM walk.
23483
23484 2016-01-26 Jakub Jelinek <jakub@redhat.com>
23485
23486 PR target/69442
23487 * combine.c (combine_instructions): For REG_EQUAL note with
23488 SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST
23489 to the underlying register.
23490 * doc/rtl.texi (REG_EQUAL): Document the behavior of
23491 REG_EQUAL/REG_EQUIV notes if SET_DEST is ZERO_EXTRACT.
23492
23493 2016-01-26 Roger Ferrer Ibáñez <rofirrim@gmail.com>
23494
23495 PR target/67896
23496 * config/aarch64/aarch64-builtins.c
23497 (aarch64_init_simd_builtin_types): Do not set structural
23498 equality to __Poly{8,16,64,128}_t types.
23499
23500 2016-01-26 Richard Sandiford <richard.sandiford@arm.com>
23501
23502 PR tree-optimization/69400
23503 * wide-int.cc (wi_pack): Take the precision as argument and
23504 perform canonicalization here rather than in the callers.
23505 Use the main loop to handle all full-width HWIs. Add a
23506 zero HWI if in_len isn't a full result.
23507 (wi::divmod_internal): Update accordingly.
23508 (wi::mul_internal): Likewise. Simplify.
23509
23510 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
23511 Sebastian Pop <s.pop@samsung.com>
23512
23513 * graphite-poly.c (apply_poly_transforms): Simplify.
23514 (print_isl_set): Use more readable format: ISL_YAML_STYLE_BLOCK.
23515 (print_isl_map): Same.
23516 (print_isl_union_map): Same.
23517 (print_isl_schedule): New.
23518 (debug_isl_schedule): New.
23519 * graphite-dependences.c (scop_get_reads): Do not call
23520 isl_union_map_add_map that is undocumented isl functionality.
23521 (scop_get_must_writes): Same.
23522 (scop_get_may_writes): Same.
23523 (scop_get_original_schedule): Remove.
23524 (scop_get_dependences): Do not call isl_union_map_compute_flow that
23525 is deprecated in isl 0.15. Instead, use isl_union_access_* interface.
23526 (compute_deps): Remove.
23527 * graphite-isl-ast-to-gimple.c (print_schedule_ast): New.
23528 (debug_schedule_ast): New.
23529 (translate_isl_ast_to_gimple::scop_to_isl_ast): Call
23530 set_separate_option.
23531 (graphite_regenerate_ast_isl): Add dump.
23532 (translate_isl_ast_to_gimple::scop_to_isl_ast): Generate code
23533 from scop->transformed_schedule.
23534 (graphite_regenerate_ast_isl): Add more dump.
23535 * graphite-optimize-isl.c (optimize_isl): Set
23536 scop->transformed_schedule. Check whether schedules are equal.
23537 (apply_poly_transforms): Move here.
23538 * graphite-poly.c (apply_poly_transforms): ... from here.
23539 (free_poly_bb): Static.
23540 (free_scop): Static.
23541 (pbb_number_of_iterations_at_time): Remove.
23542 (print_isl_ast): New.
23543 (debug_isl_ast): New.
23544 (debug_scop_pbb): New.
23545 * graphite-scop-detection.c (print_edge): Move.
23546 (print_sese): Move.
23547 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
23548 (build_scop_scattering): Remove.
23549 (create_pw_aff_from_tree): Assert instead of bailing out.
23550 (add_condition_to_pbb): Remove unused code, do not fail.
23551 (add_conditions_to_domain): Same.
23552 (add_conditions_to_constraints): Remove.
23553 (build_scop_context): New.
23554 (add_iter_domain_dimension): New.
23555 (build_iteration_domains): Initialize pbb->iterators.
23556 Call add_conditions_to_domain.
23557 (nested_in): New.
23558 (loop_at): New.
23559 (index_outermost_in_loop): New.
23560 (index_pbb_in_loop): New.
23561 (outermost_pbb_in): New.
23562 (add_in_sequence): New.
23563 (add_outer_projection): New.
23564 (outer_projection_mupa): New.
23565 (add_loop_schedule): New.
23566 (build_schedule_pbb): New.
23567 (build_schedule_loop): New.
23568 (embed_in_surrounding_loops): New.
23569 (build_schedule_loop_nest): New.
23570 (build_original_schedule): New.
23571 (build_poly_scop): Call build_original_schedule.
23572 * graphite.h: Declare print_isl_schedule and debug_isl_schedule.
23573 (free_poly_dr): Remove.
23574 (struct poly_bb): Add iterators. Remove schedule, transformed, saved.
23575 (free_poly_bb): Remove.
23576 (debug_loop_vec): Remove.
23577 (print_isl_ast): Declare.
23578 (debug_isl_ast): Declare.
23579 (scop_do_interchange): Remove.
23580 (scop_do_strip_mine): Remove.
23581 (scop_do_block): Remove.
23582 (flatten_all_loops): Remove.
23583 (optimize_isl): Remove.
23584 (pbb_number_of_iterations_at_time): Remove.
23585 (debug_scop_pbb): Declare.
23586 (print_schedule_ast): Declare.
23587 (debug_schedule_ast): Declare.
23588 (struct scop): Remove schedule. Add original_schedule,
23589 transformed_schedule.
23590 (free_gimple_poly_bb): Remove.
23591 (print_generated_program): Remove.
23592 (debug_generated_program): Remove.
23593 (unify_scattering_dimensions): Remove.
23594 * sese.c (print_edge): ... here.
23595 (print_sese): ... here.
23596 (debug_edge): ... here.
23597 (debug_sese): ... here.
23598 * sese.h (print_edge): Declare.
23599 (print_sese): Declare.
23600 (dump_edge): Declare.
23601 (dump_sese): Declare.
23602
23603 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
23604 Sebastian Pop <s.pop@samsung.com>
23605
23606 * Makefile.in: Set ISLVER in site.exp.
23607
23608 2016-01-25 Jakub Jelinek <jakub@redhat.com>
23609
23610 * omp-low.c (lower_omp_target) <case USE_DEVICE_PTR>: Set
23611 DECL_VALUE_EXPR of new_var even for the non-array case. Look
23612 through DECL_VALUE_EXPR for expansion.
23613
23614 2016-01-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
23615
23616 * config/mips/mips.c (mips_compute_frame_info): Skip re-computing
23617 the frame info after reload completed.
23618
23619 2016-01-25 Jeff Law <law@redhat.com>
23620
23621 PR tree-optimization/69196
23622 PR tree-optimization/68398
23623 * tree-ssa-threadupdate.h (enum bb_dom_status): Moved here from
23624 tree-ssa-threadupdate.c.
23625 (determine_bb_domination_status): Prototype
23626 * tree-ssa-threadupdate.c (enum bb_dom_status): Remove
23627 (determine_bb_domination_status): No longer static.
23628 (valid_jump_thread_path): Remove code to detect characteristics
23629 of the jump thread path not associated with correctness.
23630 * tree-ssa-threadbackward.c (fsm_find_control_statment_thread_paths):
23631 Correct test for thread path length. Count PHIs for real operands as
23632 statements that need to be copied. Do not count ASSERT_EXPRs.
23633 Look at all the blocks in the thread path. Compute and selectively
23634 filter thread paths based on threading through the latch, threading
23635 a multiway branch or crossing a multiway branch.
23636
23637 2016-01-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
23638
23639 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): Add
23640 decl with __attribute__ ((unused)) annotation.
23641
23642 2016-01-25 Ilya Enkovich <enkovich.gnu@gmail.com>
23643
23644 PR target/69421
23645 * tree-vect-stmts.c (vectorizable_condition): Check vectype
23646 of operands is compatible with a statement vectype.
23647
23648 2016-01-25 Eric Botcazou <ebotcazou@adacore.com>
23649
23650 * doc/extend.texi (scalar_storage_order type attribute): Fix typo and
23651 improve wording for mixed storage order support.
23652
23653 2016-01-25 Bilyan Borisov <bilyan.borisov@arm.com>
23654
23655 * config/aarch64/arm_neon.h (vcvt_s64_f64): New intrinsic.
23656 (vcvt_u64_f64): Likewise.
23657 (vcvta_s64_f64): Likewise.
23658 (vcvta_u64_f64): Likewise.
23659 (vcvtm_s64_f64): Likewise.
23660 (vcvtm_u64_f64): Likewise.
23661 (vcvtn_s64_f64): Likewise.
23662 (vcvtn_u64_f64): Likewise.
23663 (vcvtp_s64_f64): Likewise.
23664 (vcvtp_u64_f64): Likewise.
23665
23666 2016-01-25 Claudiu Zissulescu <claziss@synopsys.com>
23667
23668 * config/arc/arc.c (TARGET_DWARF_REGISTER_SPAN): Define.
23669 (arc_init): Check validity mll64 option.
23670 (arc_save_restore): Use double load/store instruction.
23671 (arc_expand_movmem): Likewise.
23672 (arc_split_move): Don't split if we have double load/store
23673 instructions. Returns a boolean.
23674 (arc_process_double_reg_moves): Change function to return boolean
23675 instead of a sequence of instructions.
23676 (arc_dwarf_register_span): New function.
23677 * config/arc/arc-protos.h (arc_split_move): Change prototype.
23678 * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __ARC_LL64__.
23679 * config/arc/arc.md (*movdi_insn): Emit ldd/std instructions.
23680 (*movdf_insn): Likewise.
23681 * config/arc/arc.opt (mll64): New option.
23682 * config/arc/predicates.md (even_register_operand): New predicate.
23683 * doc/invoke.texi (ARC Options): Add mll64 documentation.
23684
23685 2016-01-25 Richard Biener <rguenther@suse.de>
23686
23687 PR lto/69393
23688 * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
23689 * tree-streamer-out.c (pack_ts_base_value_fields): Stream
23690 DECL_NAMELESS.
23691 * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
23692
23693 2016-01-25 Richard Biener <rguenther@suse.de>
23694
23695 PR tree-optimization/69376
23696 * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
23697 flag.
23698 (VN_INFO_ANTI_RANGE_P): New inline.
23699 (VN_INFO_RANGE_TYPE): Likewise.
23700 * tree-ssa-sccvn.c (set_ssa_val_to): Also record and copy
23701 SSA_NAME_ANTI_RANGE_P.
23702 (free_scc_vn): Restore SSA_NAME_ANTI_RANGE_P.
23703 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
23704 Properly query VN_INFO_RANGE_TYPE.
23705
23706 2016-01-25 Nick Clifton <nickc@redhat.com>
23707
23708 PR target/66655
23709 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.
23710
23711 2016-01-23 Tom de Vries <tom@codesourcery.com>
23712
23713 PR tree-optimization/69426
23714 * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
23715 removed clobber.
23716
23717 2016-01-23 Jakub Jelinek <jakub@redhat.com>
23718
23719 * tree-ssanames.c (release_free_names_and_compact_live_names): Replace
23720 "the the" with "the" in the comments.
23721 * ipa-devirt.c (build_type_inheritance_graph,
23722 update_type_inheritance_graph): Likewise.
23723 * tree.c (build_function_type_list_1): Likewise.
23724 * cfgloopmanip.c (scale_loop_profile): Likewise.
23725 * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Likewise.
23726 * gimple-ssa-split-paths.c
23727 (find_block_to_duplicate_for_splitting_paths): Likewise.
23728 * tree-sra.c (init_subtree_with_zero, clobber_subtree): Likewise.
23729 * expr.c (convert_move): Likewise.
23730 * var-tracking.c (vt_stack_adjustments): Likewise.
23731 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
23732 * tree-vrp.c (test_for_singularity): Likewise.
23733
23734 * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
23735 directly instead of building a temporary tree.
23736
23737 PR bootstrap/69434
23738 * genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
23739 remove <algorithm> include.
23740
23741 2016-01-22 Jakub Jelinek <jakub@redhat.com>
23742
23743 PR target/69432
23744 * config/i386/i386.c: Include dojump.h.
23745 (expand_small_movmem_or_setmem,
23746 expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Spelling
23747 fixes.
23748 (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
23749 if dynamic_check != -1.
23750
23751 2016-01-21 Jeff Law <law@redhat.com>
23752
23753 PR middle-end/69347
23754 * tree-ssa-dom.c (back_propagate_equivalences): Factored out of
23755 record_temporary_equivalences. Rewritten to avoid unnecessary calls
23756 into dominated_by_p.
23757 (cprop_into_successor_phis): Avoid unnecessary tests.
23758
23759 2016-01-22 Richard Henderson <rth@redhat.com>
23760
23761 PR target/69416
23762 * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
23763 (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
23764
23765 2016-01-22 Michael Matz <matz@suse.de>
23766
23767 * system.h (string, algorithm): Include only conditionally.
23768 (new): Include always under C++.
23769 * bb-reorder.c (toplevel): Define INCLUDE_ALGORITHM.
23770 * final.c (toplevel): Ditto.
23771 * ipa-chkp.c (toplevel): Define INCLUDE_STRING.
23772 * genconditions.c (write_header): Make gencondmd.c define
23773 INCLUDE_STRING.
23774 * mem-stats.h (mem_usage::print_dash_line): Don't use std::string.
23775
23776 * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
23777 * common/config/aarch64/aarch64-common.c (toplevel): Ditto.
23778
23779 2016-01-22 Christian Bruel <christian.bruel@st.com>
23780
23781 PR target/68674
23782 * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.
23783
23784 2016-01-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23785
23786 PR target/69403
23787 * config/arm/thumb2.md (*thumb2_ior_scc_strict_it): Convert to
23788 define_insn_and_split. Ensure operands[1] and operands[0] do not
23789 get assigned the same register.
23790
23791 2016-01-22 Kugan Vivekanandarajah <kuganv@linaro.org>
23792
23793 * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.
23794
23795 2016-01-22 Christian Bruel <christian.bruel@st.com>
23796
23797 * config/arm/arm-c.c (arm_pragma_target_parse):
23798 Remove warn_builtin_macro_redefined overwrite.
23799
23800 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
23801
23802 * ipa-inline.c (can_inline_edge_p): Back out overzealous check on
23803 flag_non_call_exceptions compatibility.
23804
23805 2016-01-22 Jakub Jelinek <jakub@redhat.com>
23806
23807 PR debug/66668
23808 * dwarf2out.c (add_child_die_after): New function.
23809 (dwarf_qual_info_t): New type.
23810 (dwarf_qual_info): New variable.
23811 (qualified_die_p): New function.
23812 (modified_type_die): For -fdebug-types-section, ensure
23813 canonical order of qualifiers. Put qualified DIEs adjacent
23814 to the corresponding non-qualified type DIE and search there
23815 for existing qualified DIEs.
23816
23817 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
23818
23819 * doc/extend.texi (scalar_storage_order type attribute): Document
23820 restriction on type punning and aliasing, and remove future tense.
23821
23822 2016-01-21 Roman Zhuykov <zhroma@ispras.ru>
23823
23824 PR target/69252
23825 * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
23826 first stage.
23827
23828 2016-01-21 Jeff Law <law@redhat.com>
23829
23830 PR middle-end/69347
23831 * tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid
23832 useless call to record_temporary_equivalences.
23833 * tree-ssa-threadbackward.c (find_jump_threads_backwards): Just
23834 allocate 10 slots in the bb_path vector and let it grow as needed.
23835 (fsm_find_control_statement_thread_paths): Similarly for the next_path
23836 vector.
23837
23838 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
23839
23840 * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
23841 Detangle.
23842 * configure: Regenerate.
23843
23844 2016-01-21 Pat Haugen <pthaugen@us.ibm.com>
23845
23846 * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
23847 * config/rs6000/driver-rs6000.c (struct asm_names): Likewise.
23848
23849 2016-01-21 Bernd Schmidt <bschmidt@redhat.com>
23850
23851 PR middle-end/66178
23852 * expr.c (expand_expr_real_2) [PLUS_EXPR, MINUS_EXPR]: Don't
23853 drop EXPAND_INITIALIZER.
23854 * rtl.h (contains_symbolic_reference_p): Declare.
23855 * rtlanal.c (contains_symbolic_reference_p): New function.
23856 * simplify-rtx.c (simplify_binary_operation_1): Don't turn
23857 a subtraction into a NOT if symbolic constants are involved.
23858
23859 2016-01-21 Anton Blanchard <anton@samba.org>
23860 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
23861
23862 PR target/63354
23863 * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
23864 #define.
23865 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
23866 function.
23867
23868 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
23869
23870 * config/microblaze/microblaze.c
23871 (get_branch_target): New.
23872 (insert_wic_for_ilb_runout): New.
23873 (insert_wic): New.
23874 (microblaze_machine_dependent_reorg): New.
23875 (TARGET_MACHINE_DEPENDENT_REORG): Define macro.
23876 * config/microblaze/microblaze.md
23877 (UNSPEC_IPREFETCH): Define.
23878 (iprefetch): New pattern
23879 * config/microblaze/microblaze.opt
23880 (mxl-prefetch): New flag.
23881
23882 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
23883
23884 * config/microblaze/microblaze.h
23885 (FIXED_REGISTERS): Update in macro.
23886 (CALL_USED_REGISTERS): Update in macro.
23887
23888 2016-01-21 Yuri Rumyantsev <ysrumyan@gmail.com>
23889
23890 PR rtl-optimization/68920
23891 * ifcvt.c (cond_move_process_if_block): Limit number of conditional
23892 moves.
23893
23894 2016-01-21 Vladimir Makarov <vmakarov@redhat.com>
23895
23896 PR rtl-optimization/68990
23897 * lra-coalesce.c (lra_coalesce): Invalidate value for the result
23898 pseudo instead of inheritance ones.
23899
23900 2016-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
23901 Nick Clifton <nickc@redhat.com>
23902
23903 PR target/69129
23904 PR target/69012
23905 * config/mips/mips.c (mips_compute_frame_info): Initialise
23906 args_size and hard_frame_pointer_offset fields of the frame
23907 structure before calling mips_global_pointer.
23908
23909 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
23910
23911 * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
23912 label reference.
23913 * configure: Regenerate.
23914
23915 2016-01-21 Richard Biener <rguenther@suse.de>
23916
23917 * graphite-optimize-isl.c (get_schedule_map): Fix typo.
23918
23919 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
23920
23921 * config/s390/s390.c (s390_asm_declare_function_size): Add code
23922 to actually emit the .size directive.
23923
23924 2016-01-21 Stefan Sørensen <stefan.sorensen@spectralink.com>
23925 Jakub Jelinek <jakub@redhat.com>
23926
23927 PR target/69187
23928 PR target/65624
23929 * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
23930 args array size by one to avoid buffer overflow.
23931
23932 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
23933
23934 * config/s390/s390.md (pool_section_start): Use switch_to_section
23935 to select proper read-only data section instead of hardcoding
23936 .rodata.
23937 (pool_section_end): Use switch_to_section to match the above.
23938
23939 2016-01-21 Richard Biener <rguenther@suse.de>
23940
23941 PR tree-optimization/69378
23942 * tree-ssa-sccvn.c (dominated_by_p_w_unex): New function.
23943 (set_ssa_val_to): Use it for dominance checks taking into
23944 account not executable edges.
23945
23946 2016-01-21 Jakub Jelinek <jakub@redhat.com>
23947
23948 PR c++/69355
23949 * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
23950 for bitsize instead of GET_MODE_PRECISION (mode).
23951
23952 2016-01-20 Martin Sebor <msebor@redhat.com>
23953
23954 PR c/52291
23955 * extend.texi (__sync Builtins): Clarify the semantics of
23956 __sync_fetch_and_OP built-ins on pointers.
23957 (__atomic Builtins): Same.
23958
23959 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
23960 Sebastian Pop <s.pop@samsung.com>
23961
23962 * graphite-isl-ast-to-gimple.c (enum phi_node_kind): New.
23963 (class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool.
23964 (is_valid_rename): Same.
23965 (translate_isl_ast_to_gimple::get_rename): Same.
23966 (translate_isl_ast_to_gimple::rename_all_uses): Same.
23967 (translate_isl_ast_to_gimple::rename_uses): Same.
23968 (get_new_name): Check for close_phi nodes.
23969 (copy_loop_phi_args): Use phi_node_kind.
23970 (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
23971 (translate_isl_ast_to_gimple::copy_cond_phi_args): Same.
23972
23973 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
23974 Sebastian Pop <s.pop@samsung.com>
23975
23976 Revert commit r229783.
23977 * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
23978 Remove use of parameter_rename_map.
23979 (copy_def): Remove.
23980 (copy_internal_parameters): Remove.
23981 (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
23982 * sese.c (new_sese_info): Do not initialize parameter_rename_map.
23983 (free_sese_info): Do not free parameter_rename_map.
23984 (set_rename): Do not use parameter_rename_map.
23985 (rename_uses): Update call to set_rename.
23986 (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
23987 * sese.h (parameter_rename_map_t): Remove.
23988 (struct sese_info_t): Remove field parameter_rename_map.
23989
23990 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
23991 Sebastian Pop <s.pop@samsung.com>
23992
23993 * graphite-isl-ast-to-gimple.c: Fix comment.
23994 * graphite-scop-detection.c (defined_in_loop_p): New.
23995 (canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
23996 names defined in loop.
23997
23998 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
23999 Sebastian Pop <s.pop@samsung.com>
24000
24001 * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
24002 Discard unstructured if-then-else regions.
24003
24004 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
24005 Sebastian Pop <s.pop@samsung.com>
24006
24007 * graphite-sese-to-poly.c (set_scop_parameter_dim): Remove.
24008 (cleanup_loop_iter_dom): Remove.
24009 (build_loop_iteration_domains): Remove.
24010 (build_scop_context): Remove.
24011 (build_scop_iteration_domain): Remove.
24012 (add_loop_constraints): New.
24013 (build_iteration_domains): New.
24014 (build_poly_scop): Call build_iteration_domains.
24015
24016 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
24017 Sebastian Pop <s.pop@samsung.com>
24018
24019 * graphite-scop-detection.c
24020 (scop_detection::harmful_loop_in_region): Free dom and loops.
24021 (scop_detection::loop_body_is_valid_scop): Free bbs.
24022
24023 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
24024 Sebastian Pop <s.pop@samsung.com>
24025
24026 * graphite-scop-detection.c (record_loop_in_sese): New.
24027 (gather_bbs::before_dom_children): Call record_loop_in_sese.
24028 (build_scops): Remove call to build_sese_loop_nests.
24029 * sese.c (sese_record_loop): Remove.
24030 (build_sese_loop_nests): Remove.
24031 (new_sese_info): Remove region->loops.
24032 (free_sese_info): Same.
24033 * sese.h (sese_contains_loop): Same.
24034 (build_sese_loop_nests): Remove.
24035 (sese_contains_loop): Remove.
24036
24037 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
24038 Sebastian Pop <s.pop@samsung.com>
24039
24040 * graphite-scop-detection.c (loop_is_valid_scop): Renamed
24041 loop_is_valid_in_scop.
24042 (scop_detection::harmful_stmt_in_region): Renamed
24043 harmful_loop_in_region.
24044 Call loop_is_valid_in_scop.
24045
24046 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
24047 Sebastian Pop <s.pop@samsung.com>
24048
24049 * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
24050 isl_ast_node_mark.
24051
24052 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
24053 Sebastian Pop <s.pop@samsung.com>
24054
24055 * graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION.
24056 * graphite.h (struct poly_bb): Remove field is_reduction.
24057 (PBB_IS_REDUCTION): Remove.
24058
24059 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
24060 Sebastian Pop <s.pop@samsung.com>
24061
24062 * graphite-dependences.c (constrain_domain): Add call to isl_*_coalesce.
24063 (add_pdr_constraints): Same.
24064 (scop_get_reads): Same.
24065 (scop_get_must_writes): Same.
24066 (scop_get_may_writes): Same.
24067 (scop_get_original_schedule): Same.
24068 (extend_schedule): Same.
24069 (apply_schedule_on_deps): Same.
24070 (carries_deps): Same.
24071 (compute_deps): Same.
24072 (scop_get_dependences): Same.
24073 * graphite-isl-ast-to-gimple.c
24074 (translate_isl_ast_to_gimple::generate_isl_schedule): Same.
24075 * graphite-optimize-isl.c (get_schedule_for_band): Same.
24076 (get_schedule_for_band_list): Same.
24077 (get_schedule_map): Same.
24078 (apply_schedule_map_to_scop): Same.
24079 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
24080 (build_loop_iteration_domains): Same.
24081 (add_condition_to_pbb): Same.
24082 (add_param_constraints): Same.
24083 (pdr_add_memory_accesses): Same.
24084 (pdr_add_data_dimensions): Same.
24085
24086 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
24087
24088 * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
24089 requirements.
24090
24091 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
24092
24093 * common.opt (feliminate-dwarf2-dups): Replace references to
24094 "DWARF 2" with just "DWARF".
24095 * config/ia64/ia64.opt (mdwarf2-asm): Likewise.
24096 * doc/extend.texi: Likewise.
24097 * doc/cpp.texi: Likewise.
24098 * doc/invoke.texi: Likewise.
24099 (Option Summary): Add -gdwarf to list of Debugging Options.
24100 (Debugging Options): Document -gdwarf.
24101 * doc/contrib.texi: Spell "DWARF" like that.
24102
24103 2016-01-21 Jakub Jelinek <jakub@redhat.com>
24104
24105 * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
24106 warning. Fix up formatting.
24107
24108 PR middle-end/67653
24109 * gimplify.c (gimplify_asm_expr): Warn if it is too late to
24110 attempt to mark memory input operand addressable and
24111 call prepare_gimple_addressable in that case. Don't adjust
24112 input_location for diagnostics, use error_at instead.
24113
24114 2016-01-20 Peter Bergner <bergner@vnet.ibm.com>
24115
24116 * config/rs6000/ppc-auxv.h: New file.
24117 * config/rs6000/rs6000-builtin.def (cpu_init): Add new builtin.
24118 (cpu_is): Likewise.
24119 (cpu_supports): Likewise.
24120 * config/rs6000/rs6000.c: include "ppc-auxv.h".
24121 (cpu_is_info): New variable.
24122 (cpu_supports_info): Likewise.
24123 (tcb_verification_symbol): Likewise.
24124 (cpu_builtin_p): Likewise.
24125 (cpu_expand_builtin): New function.
24126 (rs6000_expand_ternop_builtin): Add support for CPU builtin functions.
24127 (rs6000_init_builtins): Likewise.
24128 (rs6000_elf_file_end): Emit HWCAP in TCB verification symbol.
24129 * config/rs6000/rs6000.h (TLS_REGNUM): New define.
24130 * configure.ac (gcc_cv_libc_provides_hwcap_in_tcb): New test.
24131 * configure: Regenerate.
24132 * config.in: Likewise.
24133 * doc/extend.texi (PowerPC Built-in Functions): Document
24134 __builtin_cpu_init, __builtin_cpu_is and __builtin_cpu_supports.
24135
24136 2016-01-20 David Edelsohn <dje.gcc@gmail.com>
24137
24138 PR target/68609
24139 * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
24140 domain check.
24141 * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
24142 for V4SFmode.
24143
24144 2016-01-20 Richard Henderson <rth@redhat.com>
24145
24146 PR bootstrap/69343
24147 PR bootstrap/69339
24148 PR tree-opt/68964
24149 Revert:
24150 * tree.c (tm_define_builtin): New.
24151 (find_tm_vector_type): New.
24152 (build_tm_vector_builtins): New.
24153 (build_common_builtin_nodes): Call it.
24154
24155 2016-01-20 Christophe Lyon <christophe.lyon@linaro.org>
24156
24157 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
24158 (arm_fp_ok): Likewise.
24159 (arm_fp): Likewise.
24160 (arm_crypto): Likewise.
24161
24162 2016-01-20 Ilya Enkovich <enkovich.gnu@gmail.com>
24163 Richard Biener <rguenther@suse.de>
24164
24165 PR tree-optimization/69328
24166 * tree-vect-stmts.c (vect_is_simple_cond): Check compared
24167 vectors have same number of elements.
24168 (vectorizable_condition): Fix masked version recognition.
24169
24170 2016-01-20 Richard Biener <rguenther@suse.de>
24171
24172 PR tree-optimization/69345
24173 * tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function.
24174 (VN_INFO_PTR_INFO): Likewise.
24175 * tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to
24176 info when it is equal between non-dominating SSA names.
24177 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
24178 Make sure to look at original SSA infos.
24179
24180 2016-01-20 Jeff Law <law@redhat.com>
24181
24182 PR target/25114
24183 * config/m68k/predicates.md (pow2_m1_operand): New predicate
24184 extracted from ...
24185 (reg_or_pow2_m1_operand): Call pow2_m1_operand.
24186 (pc_or_label_operand): New predicate.
24187 * config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU
24188 tests for small integers that are 2^n - 1.
24189
24190 2016-01-20 Jonathan Wakely <jwakely@redhat.com>
24191
24192 * doc/invoke.texi (Options Summary): Add '.' after @xref.
24193
24194 2016-01-19 Jeff Law <law@redhat.com>
24195
24196 PR middle-end/69347
24197 * tree-ssa-threadbackwards.c
24198 (fsm_find_control_statement_thread_paths): Do not try to lookup
24199 FSM paths for SSA_NAMEs appearing in abnormal PHIs.
24200
24201 2016-01-20 Kugan Vivekanandarajah <kuganv@linaro.org>
24202
24203 * doc/lto.texi: Remove text that says only Gold has linker plugin
24204 support.
24205
24206 2016-01-19 Eric Botcazou <ebotcazou@adacore.com>
24207
24208 * dwarf2out.c (need_endianity_attribute_p): New inline predicate.
24209 (base_type_die): Add REVERSE parameter and attach DW_AT_endianity to
24210 the DIE accordingly.
24211 (modified_type_die): Add REVERSE parameter and pass it recursively,
24212 as well as to base_type_die. Adjust presence check accordingly.
24213 (base_type_for_mode): Adjust call to modified_type_die.
24214 (add_type_attribute): Add REVERSE parameter and pass it to
24215 modified_type_die.
24216 (generic_parameter_die): Adjust call to add_type_attribute.
24217 (add_scalar_info): Likewise.
24218 (add_subscript_info): Likewise.
24219 (gen_array_type_die): Likewise.
24220 (gen_descr_array_type_die): Likewise.
24221 (gen_entry_point_die): Likewise.
24222 (gen_enumeration_type_die): Likewise.
24223 (gen_formal_parameter_die): Likewise.
24224 (gen_subprogram_die): Likewise.
24225 (gen_variable_die ): Likewise.
24226 (gen_const_die): Likewise.
24227 (gen_field_die): Likewise.
24228 (gen_pointer_type_die): Likewise.
24229 (gen_reference_type_die): Likewise.
24230 (gen_ptr_to_mbr_type_die): Likewise.
24231 (gen_inheritance_die): Likewise.
24232 (gen_subroutine_type_die): Likewise.
24233 (gen_typedef_die): Likewise.
24234 (force_type_die): Adjust call to modified_type_die.
24235
24236 2016-01-19 Sandra Loosemore <sandra@codesourcery.com>
24237
24238 * doc/standards.texi: Copy-editing for grammar, markup, and sentence
24239 flow throughout the file. Fix broken link to Objective-C 2.0
24240 documentation.
24241 * doc/invoke.texi: More copy-editing; fix numerous typos and spelling
24242 errors.
24243
24244 2016-01-19 Wilco Dijkstra <wdijkstr@arm.com>
24245
24246 * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.
24247
24248 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
24249
24250 PR ipa/66223
24251 * ipa-devirt.c (is_cxa_pure_virtual_p): New function.
24252 (maybe_record_node): Record cxa_pure_virtual as the only possible
24253 target if there are not ohter candidates.
24254 (possible_polymorphic_call_target_p): Accept cxa_pure_virtual.
24255
24256 2016-01-19 Richard Biener <rguenther@suse.de>
24257
24258 * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
24259 (get_memory_order): Likewise.
24260
24261 2016-01-19 Kirill Yukhin <kirill.yukhin@intel.com>
24262
24263 * tree-vect-stmts.c (vectorizable_store): Check
24264 rhs vectype.
24265
24266 2016-01-19 David Malcolm <dmalcolm@redhat.com>
24267
24268 PR jit/68446
24269 * gcc.c (driver::decode_argv): Add call to
24270 init_opts_obstack before init_options_struct.
24271 * opts.c (init_opts_obstack): Remove idempotency.
24272 (init_options_struct): Replace call to init_opts_obstack
24273 with a gcc_assert to verify that it has already been called.
24274 * toplev.c (toplev::main): Add call to init_opts_obstack before
24275 calls to init_options_struct.
24276 (toplev::finalize): Move cleanup of opts_obstack next to
24277 cleanup of save_decoded_options, clearing the latter, and
24278 save_decoded_options_count.
24279
24280 2016-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24281
24282 PR target/69135
24283 * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
24284 attribute to unconditional. Remove %? from output template.
24285
24286 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
24287 Jiong Wang <jiong.wang@arm.com>
24288
24289 * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
24290 generated from different expand order.
24291
24292 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
24293
24294 * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
24295 Add support for CCMP costing.
24296
24297 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
24298
24299 * ccmp.c (ccmp_candidate_p): Remove integer-only restriction.
24300 * config/aarch64/aarch64.md (fccmp<mode>): New pattern.
24301 (fccmpe<mode>): Likewise.
24302 (fcmp): Rename to fcmp and globalize pattern.
24303 (fcmpe): Likewise.
24304 * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
24305 (aarch64_gen_ccmp_next): Add FP support.
24306
24307 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
24308
24309 * target.def (gen_ccmp_first): Update documentation.
24310 (gen_ccmp_next): Likewise.
24311 * doc/tm.texi (gen_ccmp_first): Update documentation.
24312 (gen_ccmp_next): Likewise.
24313 * ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of
24314 expand_ccmp_expr_1. Improve comments.
24315 * config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp.
24316 (ccmp_ior<mode>): Remove pattern.
24317 (cmp<mode>): Remove expand.
24318 (cmp): Globalize pattern.
24319 (cstorecc4): Use cc_register.
24320 (mov<mode>cc): Remove ccmp_cc_register check.
24321 * config/aarch64/aarch64.c (aarch64_get_condition_code_1):
24322 Simplify after removal of CC_DNE/* modes.
24323 (aarch64_ccmp_mode_to_code): Remove.
24324 (aarch64_print_operand): Remove 'K' case. Merge 'm' and 'M' cases.
24325 In 'k' case use integer as condition.
24326 (aarch64_nzcv_codes): Remove inverted cases.
24327 (aarch64_code_to_ccmode): Remove.
24328 (aarch64_gen_ccmp_first): Use cmp pattern directly. Return the correct
24329 comparison with CC register to be used in folowing CCMP/branch/CSEL.
24330 (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP
24331 pattern. Return the comparison with CC register. Invert conditions
24332 when bitcode is OR.
24333 * config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes.
24334 * config/aarch64/predicates.md (ccmp_cc_register): Remove.
24335
24336 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
24337
24338 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
24339 instrumented_version.
24340
24341 2016-01-19 Richard Biener <rguenther@suse.de>
24342
24343 PR tree-optimization/69336
24344 * tree-ssa-scopedtables.c (avail_expr_hash): Handle all
24345 handled components with get_ref_base_and_extent.
24346 (equal_mem_array_ref_p): Adjust.
24347
24348 2016-01-19 Jakub Jelinek <jakub@redhat.com>
24349
24350 PR debug/65779
24351 * shrink-wrap.c: Include valtrack.h.
24352 (move_insn_for_shrink_wrap): Add DEBUG argument. If
24353 MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs
24354 in between insn and where it will be moved to. Call
24355 dead_debug_insert_temp.
24356 (prepare_shrink_wrap): Adjust caller. Call dead_debug_local_init
24357 first and dead_debug_local_finish at the end.
24358 For uses and defs bitmap, handle all regs in between REGNO and
24359 END_REGNO, not just the first one.
24360
24361 2016-01-19 Richard Biener <rguenther@suse.de>
24362
24363 PR tree-optimization/69352
24364 * tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1.
24365 (equal_mem_array_ref_p): Constrain size and max size properly.
24366 Compare the reverse flag.
24367
24368 2016-01-19 Bernd Schmidt <bschmidt@redhat.com>
24369
24370 * ira.c (ira): Update regstat data if we deleted insns.
24371
24372 2016-01-19 Jakub Jelinek <jakub@redhat.com>
24373
24374 PR rtl-optimization/68955
24375 PR rtl-optimization/64557
24376 * dse.c (record_store, check_mem_read_rtx): Don't call get_addr
24377 here. Fix up formatting.
24378 * alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.
24379
24380 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
24381
24382 PR lto/69133
24383 * cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple
24384 assume that the node has body.
24385 * cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p
24386 check.
24387
24388 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
24389
24390 * lto-streamer-out.c (lto_output): Do not stream instrumentation
24391 thunks.
24392
24393 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
24394
24395 * symtab.c (symtab_node::asm_name): Do not call printable name directly.
24396 (symtab_node::name): Report name as unnamed if DECL_NAME is not set.
24397
24398 2016-01-19 Martin Jambor <mjambor@suse.cz>
24399 Martin Liska <mliska@suse.cz>
24400 Michael Matz <matz@suse.de>
24401
24402 * Makefile.in (OBJS): Add new source files.
24403 (GTFILES): Add hsa.c.
24404 * common.opt (disable_hsa): New variable.
24405 (-Whsa): New warning.
24406 * config.in (ENABLE_HSA): New.
24407 * configure.ac: Treat hsa differently from other accelerators.
24408 (OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
24409 $enable_offloading.
24410 (ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
24411 * doc/install.texi (Configuration): Document --with-hsa-runtime,
24412 --with-hsa-runtime-include, --with-hsa-runtime-lib and
24413 --with-hsa-kmt-lib.
24414 * doc/invoke.texi (-Whsa): Document.
24415 (hsa-gen-debug-stores): Likewise.
24416 * lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
24417 to invoke offload compiler for hsa acclerator.
24418 * opts.c (common_handle_option): Determine whether HSA offloading
24419 should be performed.
24420 * params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
24421 * builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
24422 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
24423 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
24424 * gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
24425 * gimple-pretty-print.c (dump_gimple_omp_for): Also handle
24426 GF_OMP_FOR_KIND_GRID_LOOP.
24427 (dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
24428 (pp_gimple_stmt_1): Likewise.
24429 * gimple-walk.c (walk_gimple_stmt): Likewise.
24430 * gimple.c (gimple_build_omp_grid_body): New function.
24431 (gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
24432 * gimple.def (GIMPLE_OMP_GRID_BODY): New.
24433 * gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
24434 GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
24435 GF_OMP_TEAMS_GRID_PHONY.
24436 (gimple_statement_omp_single_layout): Updated comments.
24437 (gimple_build_omp_grid_body): New function.
24438 (gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
24439 (gimple_omp_for_grid_phony): New function.
24440 (gimple_omp_for_set_grid_phony): Likewise.
24441 (gimple_omp_parallel_grid_phony): Likewise.
24442 (gimple_omp_parallel_set_grid_phony): Likewise.
24443 (gimple_omp_teams_grid_phony): Likewise.
24444 (gimple_omp_teams_set_grid_phony): Likewise.
24445 (gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
24446 * omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
24447 (BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
24448 (BUILT_IN_GOMP_TARGET): Updated type.
24449 * omp-low.c: Include symbol-summary.h, hsa.h and params.h.
24450 (adjust_for_condition): New function.
24451 (get_omp_for_step_from_incr): Likewise.
24452 (extract_omp_for_data): Moved parts to adjust_for_condition and
24453 get_omp_for_step_from_incr.
24454 (build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
24455 (fixup_child_record_type): Bail out if receiver_decl is NULL.
24456 (scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
24457 (scan_omp_parallel): Do not create child functions for phony
24458 constructs.
24459 (check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
24460 (scan_omp_1_op): Checking assert we are not remapping to
24461 ERROR_MARK. Also also handle GIMPLE_OMP_GRID_BODY.
24462 (parallel_needs_hsa_kernel_p): New function.
24463 (expand_parallel_call): Register apprpriate parallel child
24464 functions as HSA kernels.
24465 (grid_launch_attributes_trees): New type.
24466 (grid_attr_trees): New variable.
24467 (grid_create_kernel_launch_attr_types): New function.
24468 (grid_insert_store_range_dim): Likewise.
24469 (grid_get_kernel_launch_attributes): Likewise.
24470 (get_target_argument_identifier_1): Likewise.
24471 (get_target_argument_identifier): Likewise.
24472 (get_target_argument_value): Likewise.
24473 (push_target_argument_according_to_value): Likewise.
24474 (get_target_arguments): Likewise.
24475 (expand_omp_target): Call get_target_arguments instead of looking
24476 up for teams and thread limit.
24477 (grid_expand_omp_for_loop): New function.
24478 (grid_arg_decl_map): New type.
24479 (grid_remap_kernel_arg_accesses): New function.
24480 (grid_expand_target_kernel_body): New function.
24481 (expand_omp): Call it.
24482 (lower_omp_for): Do not emit phony constructs.
24483 (lower_omp_taskreg): Do not emit phony constructs but create for them
24484 a temporary variable receiver_decl.
24485 (lower_omp_taskreg): Do not emit phony constructs.
24486 (lower_omp_teams): Likewise.
24487 (lower_omp_grid_body): New function.
24488 (lower_omp_1): Call it.
24489 (grid_reg_assignment_to_local_var_p): New function.
24490 (grid_seq_only_contains_local_assignments): Likewise.
24491 (grid_find_single_omp_among_assignments_1): Likewise.
24492 (grid_find_single_omp_among_assignments): Likewise.
24493 (grid_find_ungridifiable_statement): Likewise.
24494 (grid_target_follows_gridifiable_pattern): Likewise.
24495 (grid_remap_prebody_decls): Likewise.
24496 (grid_copy_leading_local_assignments): Likewise.
24497 (grid_process_kernel_body_copy): Likewise.
24498 (grid_attempt_target_gridification): Likewise.
24499 (grid_gridify_all_targets_stmt): Likewise.
24500 (grid_gridify_all_targets): Likewise.
24501 (execute_lower_omp): Call grid_gridify_all_targets.
24502 (make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
24503 * tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
24504 (tree_omp_clause): Added union field dimension.
24505 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
24506 * tree.c (omp_clause_num_ops): Added number of arguments of
24507 OMP_CLAUSE__GRIDDIM_.
24508 (omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
24509 (walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
24510 * tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
24511 (OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
24512 (OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
24513 (OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
24514 * passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
24515 * tree-pass.h (make_pass_gen_hsail): Declare.
24516 (make_pass_ipa_hsa): Likewise.
24517 * ipa-hsa.c: New file.
24518 * lto-section-in.c (lto_section_name): Add hsa section name.
24519 * lto-streamer.h (lto_section_type): Add hsa section.
24520 * timevar.def (TV_IPA_HSA): New.
24521 * hsa-brig-format.h: New file.
24522 * hsa-brig.c: New file.
24523 * hsa-dump.c: Likewise.
24524 * hsa-gen.c: Likewise.
24525 * hsa.c: Likewise.
24526 * hsa.h: Likewise.
24527 * toplev.c (compile_file): Call hsa_output_brig.
24528 * hsa-regalloc.c: New file.
24529
24530 2016-01-18 Jeff Law <law@redhat.com>
24531
24532 PR tree-optimization/69320
24533 * tree-ssa-dom.c (record_edge_info): For comparisons against a boolean
24534 ranged object, do nothing if the RHS constant is not [0..1].
24535 (optimize_stmt): Comparing a boolean ranged object against a
24536 constant outside [0..1] results in a compile-time constant.
24537
24538 * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
24539 test.
24540
24541 2016-01-18 Sandra Loosemore <sandra@codesourcery.com>
24542
24543 * doc/invoke.texi (Invoking GCC): Add new section to menu.
24544 (Option Summary): Update to reflect new section and moved options.
24545 (C++ Dialect Options): Move -fstats to new section.
24546 (Debugging Options): Move all dump, statistics, and other GCC
24547 developer options to new section. Rewrite section introduction
24548 and re-order remaining options to put the more basic ones first.
24549 (Optimization Options): Move -fira-verbose and -flto-report* to
24550 new section.
24551 (Developer Options): New section incorporating moved options.
24552 * doc/cppopts.texi (-dM): Update cross-reference.
24553
24554 2016-01-18 Richard Henderson <rth@redhat.com>
24555
24556 PR target/69176
24557 * config/aarch64/aarch64.md (add<GPI>3): Move long immediate
24558 operands to pseudo only if CSE is expected. Split long immediate
24559 operands only after reload, and for the stack pointer.
24560 (*add<GPI>3_pluslong): Remove.
24561 (*addsi3_aarch64, *adddi3_aarch64): Merge into...
24562 (*add<GPI>3_aarch64): ... here. Add r/rk/Upl alternative.
24563 (*addsi3_aarch64_uxtw): Add r/rk/Upl alternative.
24564 (*add<GPI>3 peepholes): New.
24565 (*add<GPI>3 splitters): New.
24566 * config/aarch64/constraints.md (Upl): New.
24567 * config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New.
24568
24569 2016-01-18 Richard Biener <rguenther@suse.de>
24570
24571 PR tree-optimization/69297
24572 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
24573 stmt at most once.
24574 (vect_bb_vectorization_profitable_p): Clear visited flag again.
24575
24576 2016-01-18 Yuri Rumyantsev <ysrumyan@gmail.com>
24577
24578 PR middle-end/68542
24579 * fold-const.c (fold_binary_op_with_conditional_arg): Bail out for case
24580 of mixind vector and scalar types.
24581 (fold_relational_const): Add handling of vector
24582 comparison with boolean result.
24583 * tree-cfg.c (verify_gimple_comparison): Add argument CODE, allow
24584 comparison of vector operands with boolean result for EQ/NE only.
24585 (verify_gimple_assign_binary): Adjust call for verify_gimple_comparison.
24586 (verify_gimple_cond): Likewise.
24587 * tree-vrp.c (extract_code_and_val_from_cond_with_ops): Modify check on
24588 valid type of VAL.
24589
24590 2016-01-18 Joseph Myers <joseph@codesourcery.com>
24591
24592 * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
24593 !TARGET_OCTEON.
24594
24595 2016-01-18 Richard Biener <rguenther@suse.de>
24596
24597 PR middle-end/69308
24598 * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.
24599
24600 2016-01-18 Tom de Vries <tom@codesourcery.com>
24601
24602 * passes.def: Add pass_parallelize_loops to pass_oacc_kernels.
24603
24604 2016-01-18 Tom de Vries <tom@codesourcery.com>
24605
24606 * omp-low.c (set_oacc_fn_attrib): Make extern.
24607 * omp-low.h (set_oacc_fn_attrib): Declare.
24608 * tree-parloops.c (struct reduction_info): Add reduc_addr field.
24609 (create_call_for_reduction_1): Handle case that reduc_addr is non-NULL.
24610 (create_parallel_loop, gen_parallel_loop, try_create_reduction_list):
24611 Add and handle function parameter oacc_kernels_p.
24612 (find_reduc_addr, get_omp_data_i_param): New function.
24613 (ref_conflicts_with_region, oacc_entry_exit_ok_1)
24614 (oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function.
24615 (parallelize_loops): Add and handle function parameter oacc_kernels_p.
24616 Calculate dominance info. Skip loops that are not in a kernels region
24617 in oacc_kernels_p mode. Skip inner loops of parallelized loops.
24618 (pass_parallelize_loops::execute): Call parallelize_loops with
24619 oacc_kernels_p argument.
24620 (pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param):
24621 New member function.
24622 (pass_parallelize_loops::bool oacc_kernels_p): New member var.
24623 * passes.def: Add argument to pass_parallelize_loops instantation.
24624
24625 2016-01-18 Tom de Vries <tom@codesourcery.com>
24626
24627 * tree-parloops.c (pass_parallelize_loops::execute): Allow
24628 pass_parallelize_loops to be run outside the loop pipeline.
24629
24630 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
24631
24632 * tree-scalar-evolution.c (follow_copies_to_constant): New.
24633 (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
24634
24635 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
24636
24637 PR target/63679
24638 * tree-ssa-scopedtables.c (avail_expr_hash): Hash MEM_REF and ARRAY_REF
24639 using get_ref_base_and_extent.
24640 (equal_mem_array_ref_p): New.
24641 (hashable_expr_equal_p): Add call to previous.
24642
24643 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
24644
24645 PR target/63679
24646 * tree-sra.c (disqualified_constants, constant_decl_p): New.
24647 (sra_initialize): Allocate disqualified_constants.
24648 (sra_deinitialize): Free disqualified_constants.
24649 (disqualify_candidate): Update disqualified_constants when appropriate.
24650 (create_access): Scan for constant-pool entries as we go along.
24651 (scalarizable_type_p): Add check against type_contains_placeholder_p.
24652 (maybe_add_sra_candidate): Allow constant-pool entries.
24653 (load_assign_lhs_subreplacements): Bind debug for constant pool vars.
24654 (initialize_constant_pool_replacements): New.
24655 (sra_modify_assign): Avoid mangling assignments created by previous,
24656 and don't generate writes into constant pool.
24657 (sra_modify_function_body): Call initialize_constant_pool_replacements.
24658
24659 2016-01-18 Ilya Enkovich <enkovich.gnu@gmail.com>
24660
24661 * config/i386/i386.c (scalar_to_vector_candidate_p): Support
24662 andnot instruction.
24663 (scalar_chain::convert_op): Likewise.
24664 * config/i386/i386.md (*andndi3_doubleword): New.
24665
24666 2016-01-18 Richard Biener <rguenther@suse.de>
24667
24668 PR tree-optimization/69170
24669 * tree-vect-slp.c (vect_build_slp_tree): Verify we are not
24670 building a vector from scalar results of a pattern stmt.
24671
24672 2016-01-18 Jakub Jelinek <jakub@redhat.com>
24673
24674 * haifa-sched.c (autopref_multipass_init): Work around
24675 -Wmaybe-uninitialized warning.
24676
24677 2016-01-18 Thomas Preud'homme <thomas.preudhomme@arm.com>
24678
24679 * config/arm/arm.c (thumb1_reorg): Check that the comparison is
24680 against the constant 0.
24681
24682 2016-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
24683
24684 PR tree-optimization/68799
24685 * gimple-ssa-strength-reduction.c (create_phi_basis): Directly
24686 look up phi candidates in the statement-candidate map.
24687 (phi_add_costs): Likewise.
24688 (record_phi_increments): Likewise.
24689 (phi_incr_cost): Likewise.
24690 (ncd_with_phi): Likewise.
24691 (all_phi_incrs_profitable): Likewise.
24692
24693 2016-01-17 Jakub Jelinek <jakub@redhat.com>
24694
24695 * omp-low.c (mark_loops_in_oacc_kernels_region): Work around
24696 -Wmaybe-uninitialized warning.
24697
24698 2016-01-16 Sandra Loosemore <sandra@codesourcery.com>
24699
24700 * doc/invoke.texi (Invoking GCC): Add new section to menu.
24701 (Option Summary): Update to reflect new section and moved options.
24702 (C++ Dialect Options): Move -fvtable-verify and related options.
24703 (Debugging Options): Move Sanitizer, Pointer Bounds Checker,
24704 and profiling-related options.
24705 (Optimization Options): Move profile generation options and
24706 -fstack-protector and related options.
24707 (Instrumentation Options): New section incorporating moved options.
24708 (Code Generation Options): Move -finstrument-functions and
24709 related options, -fstack-check, -fstack-limit*, and -fbounds-check.
24710
24711 2016-01-16 Tom de Vries <tom@codesourcery.com>
24712
24713 * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.
24714
24715 2016-01-16 Tom de Vries <tom@codesourcery.com>
24716
24717 * omp-low.c (expand_omp_atomic_fetch_op): Release defs of update stmt.
24718
24719 2016-01-16 Richard Sandiford <richard.sandiford@arm.com>
24720
24721 * hash-table.h (hash_table::empty): Turn into an inline wrapper
24722 that checks whether the table is already empty. Rename the
24723 original implementation to...
24724 (hash_table::empty_slot): ...this new private function.
24725
24726 2016-01-15 David Malcolm <dmalcolm@redhat.com>
24727
24728 PR diagnostic/68899
24729 * diagnostic-show-locus.c (layout::print_source_line): Move x
24730 offset of line until after call to
24731 get_line_width_without_trailing_whitespace.
24732
24733 2016-01-15 Jeff Law <law@redhat.com>
24734
24735 PR tree-optimization/69270
24736 * tree-ssanames.c (ssa_name_has_boolean_range): Moved here from
24737 tree-ssa-dom.c. Improve test for [0..1] ranve from VRP.
24738 * tree-ssa-dom.c (ssa_name_has_boolean_range): Remove.
24739 * tree-ssanames.h (ssa_name_has_boolean_range): Prototype.
24740 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
24741 ssa_name_has_boolean_range and constant_boolean_node.
24742
24743 2016-01-15 Vladimir Makarov <vmakarov@redhat.com>
24744
24745 PR rtl-optimization/69030
24746 * lra-spills.c (remove_pseudos): Check nrefs and make the function
24747 returning bool.
24748 (spill_pseudos): Delete debug insn for dead pseudo.
24749 (lra_spill): Initiate spill_hard_reg and slots memory separately.
24750
24751 2016-01-15 Jiong Wang <jiong.wang@arm.com>
24752
24753 * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
24754 New.
24755 (TYPES_UNOPUS): Likewise.
24756 * config/aarch64/aarch64-simd-builtins.def (lbtruncuv2sf): Correct
24757 builtin type, from UNOP to UNOPUS.
24758 (lbtruncuv4sf): Likewise.
24759 (lbtruncuv2df): Likewise.
24760 (lrounduv2sf): Likewise.
24761 (lrounduv4sf): Likewise.
24762 (lrounduv2df): Likewise.
24763 (lroundusf): Likewise.
24764 (lroundusf): Likewise.
24765 (lceiluv2sf): Likewise.
24766 (lceiluv4sf): Likewise.
24767 (lceiluv2df): Likewise.
24768 (lceilusf): Likewise.
24769 (lceiludf): Likewise.
24770 (lflooruv2sf): Likewise.
24771 (lflooruv4sf): Likewise.
24772 (lflooruv2df): Likewise.
24773 (lfloorusf): Likewise.
24774 (lfloorudf): Likewise.
24775 (lfrintnuv2sf): Likewise.
24776 (lfrintnuv4sf): Likewise.
24777 (lfrintnuv2df): Likewise.
24778 (lfrintnusf): Likewise.
24779 (lfrintnudf): Likewise.
24780 * config/aarch64/arm_neon.h (vcvt_u32_f32): Remove unncessary type
24781 conversion.
24782 (vcvtq_u32_f32): Likewise.
24783 (vcvtq_u64_f64): Likewise.
24784 (vcvta_u32_f32): Likewise.
24785 (vcvtaq_u32_f32): Likewise.
24786 (vcvtaq_u64_f64): Likewise.
24787 (vcvtm_u32_f32): Likewise.
24788 (vcvtmq_u32_f32): Likewise.
24789 (vcvtmq_u64_f64): Likewise.
24790 (vcvtn_u32_f32): Likwise.
24791 (vcvtnq_u32_f32): Likewise.
24792 (vcvtnq_u64_f64): Likewise.
24793 (vcvtp_u32_f32): Likewise.
24794 (vcvtpq_u32_f32): Likewise.
24795 (vcvtpq_u64_f64): Likewise.
24796 (vcvtmd_u64_f64): Likewise.
24797 (vcvtms_u32_f32): Likewise.
24798 (vcvtad_u64_f64): Likewise.
24799 (vcvtas_u32_f32): Likewise.
24800 (vcvtnd_u64_f64): Likewise.
24801 (vcvtns_u32_f32): Likewise.
24802 (vcvtpd_u64_f64): Likewise.
24803 (vcvtps_u32_f32): Likewise.
24804
24805 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24806
24807 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
24808 CSEL of zero_extended registers.
24809
24810 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24811
24812 * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
24813 Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
24814
24815 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24816
24817 * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
24818 false when argument string is not found in the attributes table
24819 at all.
24820
24821 2016-01-15 David Edelsohn <dje.gcc@gmail.com>
24822
24823 PR target/68609
24824 * config/rs6000/rs6000.c (rs6000_emit_msub): Delete.
24825 (rs6000_emit_swsqrt): Convert to Goldschmidt's Algorithm
24826 * config/rs6000/rs6000.md (sqrt<mode>2): Limit swsqrt to high
24827 precision estimate.
24828
24829 2016-01-15 Richard Biener <rguenther@suse.de>
24830
24831 PR tree-optimization/66856
24832 * tree-vect-loop.c (vect_transform_loop): Free SLP instances here.
24833 * tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count.
24834 (vect_create_new_slp_node): Increment stmt reference count.
24835 (vect_get_and_check_slp_defs): Make sure stmts are nor already in
24836 an SLP tree before swapping operands.
24837 (vect_build_slp_tree): Likewise.
24838 (destroy_bb_vec_info): Free stmt info after SLP instances.
24839 * tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count.
24840 * tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field.
24841 (STMT_VINFO_NUM_SLP_USES): New macro.
24842
24843 2016-01-15 Richard Biener <rguenther@suse.de>
24844
24845 PR debug/69137
24846 * dwarf2out.c (add_linkage_name_raw): New function split out from ...
24847 (add_linkage_name): ... here.
24848 (gen_typedef_die): Use add_linkage_name_raw instead of
24849 add_linkage_attr to delay DECL_ASSEMBLER_NAME computation
24850 if necessary.
24851
24852 2016-01-15 Cesar Philippidis <cesar@codesourcery.com>
24853
24854 * gimplify.c (oacc_default_clause): Decode reference and pointer
24855 types for both kernels and parallel regions.
24856
24857 2016-01-15 Richard Sandiford <richard.sandiford@arm.com>
24858
24859 PR middle-end/69246
24860 * calls.c (emit_call_1): Force n_popped to zero for sibcalls.
24861
24862 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
24863
24864 * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
24865 (convert_scalars_to_vector): Likewise.
24866
24867 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
24868
24869 * doc/extend.texi (Type Traits): Fix grammar.
24870
24871 2016-01-15 Martin Jambor <mjambor@suse.cz>
24872
24873 * tree-inline.c (remap_decl): Use existing dclarations if
24874 remapping a type and prevent_decl_creation_for_types.
24875 (replace_locals_stmt): Do an initial remapping of non-VLA typed
24876 decls first. Do real remapping with
24877 prevent_decl_creation_for_types set.
24878 * tree-inline.h (copy_body_data): New field
24879 prevent_decl_creation_for_types, moved remap_var_for_cilk to avoid
24880 padding.
24881
24882 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
24883
24884 * config/s390/s390.opt (mmvcle): More verbose help text.
24885
24886 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
24887
24888 * config/s390/s390.opt: Add period to -mzvector option text.
24889
24890 2016-01-15 Richard Biener <rguenther@suse.de>
24891
24892 PR tree-optimization/68961
24893 * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
24894 of invariants in stores again.
24895
24896 2016-01-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
24897
24898 * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.
24899
24900 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
24901
24902 * config/i386/i386.c (ix86_expand_branch): Don't split
24903 DI mode xor instruction to SI mode.
24904
24905 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
24906
24907 PR ipa/68148
24908 * ipa-icf.c (sem_function::merge): Virtual functions may become
24909 reachable even if they address is not taken and there are no
24910 idrect calls.
24911
24912 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
24913
24914 * lto-streamer-out.c (subtract_estimated_size): New function.
24915 (get_symbol_initial_value): Use it.
24916
24917 2016-01-15 Christian Bruel <christian.bruel@st.com>
24918
24919 PR target/65837
24920 * config/arm/arm-builtins.c (ARM_BUILTIN_CRYPTO_BASE): New enum tag.
24921 (arm_init_neon_builtins_internal): Rename arm_init_neon_builtins,
24922 (arm_init_crypto_builtins_internal): Rename arm_init_crypto_builtins.
24923 use add_builtin_function_ext_scope instead of add_builtin_function.
24924 (neon_set_p, neon_crypto_set_p): Remove.
24925 (arm_init_builtins): Always call arm_init_neon_builtins and
24926 arm_init_crypto_builtins.
24927 (arm_expand_builtin): Check that builtins are allowed for the arch.
24928 * config/arm/arm-protos.h (arm_init_neon_builtins): Remove prototype.
24929 * config/arm/arm.c (arm_valid_target_attribute_tree): Remove
24930 arm_init_neon_builtins call.
24931
24932 2016-01-15 Richard Biener <rguenther@suse.de>
24933
24934 PR tree-optimization/69117
24935 * tree-ssa-sccvn.h (struct vn_ssa_aux): Add info member.
24936 * tree-ssa-sccvn.c (set_ssa_val_to): Save and adjust SSA name info
24937 of the leader conservatively.
24938 (free_scc_vn): Restore original SSA name infos.
24939
24940 2016-01-14 Jeff Law <law@redhat.com>
24941
24942 PR tree-optimization/69270
24943 * tree-ssa-dom.c (ssa_name_has_boolean_range): If the type has a
24944 single bit of precision, verify it's also unsigned.
24945 (record_edge_info): Use constant_boolean_node rather than fold_convert
24946 to convert boolean_true/boolean_false to the right type.
24947
24948 2016-01-14 Richard Henderson <rth@redhat.com>
24949
24950 PR rtl-opt/69014
24951 * loop-doloop.c (record_reg_sets): New.
24952 (doloop_optimize): Reject the transform if the sequence
24953 clobbers registers live at the end of the loop block.
24954 (doloop_optimize_loops): Enable df_live if needed.
24955
24956 2016-01-14 Michael Meissner <meissner@linux.vnet.ibm.com>
24957
24958 * config/rs6000/rs6000-builtin.def: Revert 2016-01-13 change.
24959 * config/rs6000/rs6000.c: Likewise.
24960 * config/rs6000/rs6000.h: Likewise.
24961 * config/rs6000/rs6000.md: Likewise.
24962 * doc/extend.texi: Likewsie.
24963
24964 2016-01-14 Jeff Law <law@redhat.com>
24965
24966 * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
24967 typo.
24968
24969 2016-01-14 Richard Henderson <rth@redhat.com>
24970
24971 PR c/69272
24972 PR tree-opt/68964
24973 * trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size.
24974 * tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p
24975 instead of builtin_decl_declared_p to test for declaration.
24976
24977 2016-01-14 Nicklas Bo Jensen <nbjensen@gmail.com>
24978
24979 * doc/loop.texi (Loop Analysis and Representation): Document
24980 loop_depth function.
24981
24982 2016-01-14 Tom de Vries <tom@codesourcery.com>
24983
24984 PR tree-optimization/68773
24985 * omp-low.c (expand_omp_target): Don't set force_output.
24986 * varpool.c (varpool_node::get_create): Same.
24987 * lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and
24988 offload_funcs with force_output.
24989
24990 2016-01-14 Jakub Jelinek <jakub@redhat.com>
24991
24992 PR debug/69244
24993 * lra-eliminations.c (move_plus_up): Don't change anything if either
24994 the outer or inner subreg mode is not MODE_INT.
24995 * dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is
24996 integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards.
24997
24998 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
24999
25000 * doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m},
25001 reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m},
25002 reduc_uplus_@var{m}): Remove.
25003 * expr.c (expand_expr_real_2): Remove expansion path for
25004 reduc_[us](min|max|plus) optabs.
25005 * optabs-tree.c (scalar_reduc_to_vector): Remove.
25006 * optabs-tree.h (scalar_reduc_to_vector): Remove.
25007 * optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab,
25008 reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove.
25009 * tree-vect-loop.c (vectorizable_reduction): Remove test for
25010 reduc_[us](min|max|plus) optabs.
25011
25012 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
25013
25014 * config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove.
25015 (reduc_plus_scal_v2sf): New.
25016 (reduc_smax_v2sf): Rename to...
25017 (reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract.
25018 (reduc_smin_v2sf): Rename to...
25019 (reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract.
25020
25021 2016-01-14 Jan Hubicka <hubicka@ucw.cz>
25022
25023 * alias.c (compare_base_symbol_refs): New function.
25024 (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
25025 it.
25026
25027 2016-01-14 Jakub Jelinek <jakub@redhat.com>
25028
25029 PR middle-end/68146
25030 PR tree-optimization/69155
25031 * tree-complex.c: Include cfganal.h.
25032 (phis_to_revisit): New variable.
25033 (extract_component): Add phiarg_p argument. Assert that returned
25034 SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true.
25035 (update_phi_components): Partly rewrite to use loop over real/imag
25036 components instead of code duplication. If extract_component returns
25037 SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or
25038 create_tmp_reg into the PHI node instead, and mention the phi triplet
25039 in phis_to_revisit.
25040 (tree_lower_complex): Walk bbs in rpo order. Adjust phis recorded
25041 in phis_to_revisit at the end.
25042
25043 2016-01-14 Richard Biener <rguenther@suse.de>
25044
25045 PR tree-optimization/68060
25046 * tree-vect-loop.c (vect_is_simple_reduction): Check the
25047 outer loop reduction is only used in the inner loop before
25048 detecting a double reduction.
25049
25050 2016-01-14 Jakub Jelinek <jakub@redhat.com>
25051
25052 PR target/68269
25053 * combine.c (expand_field_assignment): Punt if compute_mode is
25054 unsupported scalar mode.
25055
25056 2016-01-14 Richard Biener <rguenther@suse.de>
25057
25058 PR tree-optimization/66856
25059 * tree-vect-slp.c (vect_build_slp_tree): Refactor to build
25060 SLP node only if it built successfully.
25061 (vect_analyze_slp_instance): Adjust.
25062
25063 2016-01-14 Jeff Law <law@redhat.com>
25064
25065 PR tree-optimization/69270
25066 * tree-ssa-dom.c (ssa_name_has_boolean_range): New function.
25067 (record_edge_info): Use it. Convert boolean_{true,false}_node
25068 to the type of op0.
25069
25070 2016-01-13 Jan Hubicka <hubicka@ucw.cz>
25071
25072 PR ipa/66487
25073 * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
25074 use block_ultimate_origin
25075 (noncall-stmt_may_be_vtbl_ptr_store): Likewise.
25076
25077 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
25078
25079 * doc/invoke.texi (Submodel Options): Rename section to
25080 "Machine-Dependent Options" to better reflect its content.
25081 Rewrite introductory text to remove archaic CPU names.
25082 Update references.
25083
25084 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
25085
25086 * doc/invoke.texi (Code Gen Options): Move section up in file,
25087 before target-specific options. Update menu and option summary
25088 to reflect the new section ordering.
25089
25090 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
25091
25092 * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
25093 (C++ Dialect Options): Add cross-reference to -std option.
25094 * doc/standards.texi (C++ Language): Document C++14 support.
25095
25096 2016-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
25097
25098 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
25099 for pack/unpack functions for __ibm128.
25100 (PACK_IF): Likewise.
25101 (UNPACK_IF): Likewise.
25102
25103 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
25104 support for __ibm128 pack/unpack functions.
25105 (rs6000_invalid_builtin): Likewise.
25106 (rs6000_init_builtins): Likewise.
25107 (rs6000_opt_masks): Likewise.
25108
25109 * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
25110 (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
25111 functions
25112 (RS6000_BTM_COMMON): Likewise.
25113
25114 * config/rs6000/rs6000.md (f128_vsx): New mode attribute.
25115 (unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
25116 disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
25117 128-bit floating point. Add support for the double values to be
25118 in Altivec registers for TF/IF packing and unpacking, but restrict
25119 TD packing sub-fields to be FPR registers. Don't allow overlapped
25120 register support for packing. Allow pack inputs to be memory
25121 locations. Don't build generator functions for unpack<mode>_dm
25122 and unpack<mode>_nodm.
25123 (unpack<mode>_dm): Likewise.
25124 (unpack<mode>_nodm): Likewise.
25125 (pack<mode>): Likewise.
25126
25127 * config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
25128 built-in functions to pack/unpack explicit __ibm128 values.
25129 (__builtin_unpack_ibm128): Likewise.
25130
25131 * doc/extend.texi (PowerPC Built-in Functions): Document
25132 __builtin_pack_ibm128 and __builtin_unpack_ibm128.
25133
25134 2016-01-13 Bernd Schmidt <bschmidt@redhat.com>
25135
25136 PR c/66208
25137 * c-common.c (check_function_nonnull): Remove unnecessary declaration.
25138 Add new arg loc and pass it down as context.
25139 (check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
25140 to the location to use for the warning.
25141 (check_function_arguments): New arg loc. All callers changed. Pass
25142 it to check_function_nonnull.
25143 * c-common.h (check_function_arguments): Adjust declaration.
25144
25145 2016-01-13 Jakub Jelinek <jakub@redhat.com>
25146
25147 PR tree-optimization/69156
25148 * gimple.c (validate_type): Removed.
25149 (gimple_builtin_call_types_compatible_p): Use
25150 useless_type_conversion_p instead of validate_type.
25151 * value-prof.c (gimple_stringop_fixed_value): Fold
25152 icall_size to correct type.
25153
25154 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
25155
25156 * doc/extend.texi (__atomic Builtins): Clarify compare_exchange
25157 effects.
25158
25159 2016-01-13 Richard Henderson <rth@redhat.com>
25160
25161 PR tree-opt/68964
25162 * target.def (builtin_tm_load, builtin_tm_store): Remove.
25163 * config/i386/i386.c (ix86_builtin_tm_load): Remove.
25164 (ix86_builtin_tm_store): Remove.
25165 (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
25166 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
25167 * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
25168 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
25169 * doc/tm.texi: Rebuild.
25170
25171 * gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New.
25172 (BUILT_IN_TM_MEMCPY_RTWN): New.
25173 * trans-mem.c (tm_log_emit_stmt): Rearrange code for better
25174 fallback from vector to integer helpers.
25175 (build_tm_load): Handle vector types directly, instead of
25176 via target hook.
25177 (build_tm_store): Likewise.
25178 (expand_assign_tm): Prepare for register types not handled by
25179 the above. Copy them to memory and use memcpy.
25180 * tree.c (tm_define_builtin): New.
25181 (find_tm_vector_type): New.
25182 (build_tm_vector_builtins): New.
25183 (build_common_builtin_nodes): Call it.
25184
25185 2016-01-13 Uros Bizjak <ubizjak@gmail.com>
25186
25187 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
25188 TARGET_SSE_MATH without TARGET_SSE2. Rewrite.
25189
25190 2016-01-13 Tom de Vries <tom@codesourcery.com>
25191
25192 PR tree-optimization/69169
25193 * tree-ssa-structalias.c (create_variable_info_for_1): Add and handle
25194 handled_struct_type param.
25195 (create_variable_info_for, intra_create_variable_infos): Call
25196 create_variable_info_for_1 with extra arg.
25197
25198 2016-01-13 Yvan Roux <yvan.roux@linaro.org>
25199
25200 * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
25201 and "armv8.1-a+crc" entries.
25202
25203 2016-01-13 Alexander Fomin <alexander.fomin@intel.com>
25204
25205 PR target/69228
25206 * config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
25207 Change first operand predicate from register_or_constm1_operand
25208 to register_operand.
25209 (define_expand "avx512pf_gatherpf<mode>df"): Likewise.
25210 (define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
25211 (define_expand "avx512pf_scatterpf<mode>df"): Likewise.
25212 (define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
25213 (define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
25214 (define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
25215 (define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
25216 * config/i386/i386.c (ix86_expand_builtin): Remove first operand
25217 comparison with constm1_rtx from vec_prefetch_gen part.
25218
25219 2016-01-13 Richard Biener <rguenther@suse.de>
25220
25221 PR tree-optimization/69013
25222 * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
25223 Exchange assert for a test.
25224
25225 2016-01-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
25226
25227 PR target/69247
25228 * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.
25229
25230 2016-01-13 Richard Biener <rguenther@suse.de>
25231
25232 PR tree-optimization/69242
25233 * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
25234 assert with a check.
25235
25236 2016-01-13 Richard Biener <rguenther@suse.de>
25237
25238 PR tree-optimization/69186
25239 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
25240 Properly guard vect_update_misalignment_for_peel call.
25241
25242 2016-01-12 Jeff Law <law@redhat.com>
25243
25244 PR tree-optimization/pr67755
25245 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
25246 "need_profile_correction".
25247 (thread_block_1): Initialize new field to false by default. If we
25248 have multiple thread paths through a common joiner to different
25249 final targets, then set new field to true.
25250 (compute_path_counts): Only do count adjustment when it's really
25251 needed.
25252
25253 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
25254
25255 * doc/invoke.texi (Spec Files): Move section down in file, past
25256 all command-line option descriptions.
25257
25258 2016-01-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25259
25260 PR middle-end/54809
25261 * doc/gty.texi: Remove documentation of mark_hook.
25262 * gengtype.c (struct write_types_data): Remove code to support
25263 mark_hook attribute.
25264 (walk_type): Likewise.
25265 (write_func_for_structure): Likewise.
25266
25267 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
25268
25269 * doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to
25270 Directory Options, and -specs= to Overall Options.
25271 (Overall Options): Adjust similarly. Reorder to group related
25272 options together. Make -specs= cross-reference the spec file details.
25273 (Directory Options): Adjust similarly.
25274
25275 2016-01-12 Jeff Law <law@redhat.com>
25276
25277 * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
25278
25279 2016-01-12 Olivier Hainque <hainque@adacore.com>
25280
25281 * gcc.c (spec_undefvar_allowed): New global.
25282 (process_command): Set to true when running for --version or --help,
25283 alone or together.
25284 (getenv_spec_function): When the variable is not defined, use the
25285 variable name as the variable value if we're allowed not to issue
25286 a fatal error.
25287
25288 2016-01-12 Bin Cheng <bin.cheng@arm.com>
25289
25290 PR tree-optimization/68911
25291 * tree-vrp.c (adjust_range_with_scev): Check overflow in range
25292 information computed for expression "init + nit * step".
25293
25294 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
25295
25296 * doc/invoke.texi (Invoking GCC): Copy-edit. Incorporate information
25297 about name of GCC executable. Remove deleted node from menu.
25298 (Directory Options) <-B>: Remove cross-reference to deleted node.
25299 (Target Options): Delete section.
25300
25301 2016-01-12 Christian Bruel <christian.bruel@st.com>
25302
25303 PR target/69180
25304 * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
25305 for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.
25306
25307 2016-01-12 Jakub Jelinek <jakub@redhat.com>
25308
25309 PR target/69198
25310 * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
25311 aligned_mem is properly set for AVX512-VL floating point masked
25312 stores.
25313
25314 PR target/69175
25315 * ifcvt.c (cond_exec_process_if_block): When removing the last
25316 insn from then_bb, remove also any possible barriers that follow it.
25317
25318 2016-01-12 H.J. Lu <hongjiu.lu@intel.com>
25319
25320 PR target/68456
25321 PR target/69226
25322 * config/i386/iamcu.h (SIZE_TYPE): New macro.
25323 (PTRDIFF_TYPE): Likewise.
25324 (WCHAR_TYPE): Likewise.
25325 (WCHAR_TYPE_SIZE): Likewise.
25326 (STDINT_LONG32): Likewise.
25327
25328 2016-01-12 Richard Biener <rguenther@suse.de>
25329
25330 PR tree-optimization/69053
25331 * tree-vect-loop.c (get_initial_def_for_reduction): Properly
25332 convert initial value for cond reductions.
25333
25334 2016-01-12 Richard Biener <rguenther@suse.de>
25335
25336 PR tree-optimization/69007
25337 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
25338 widen_sum after dot_prod and sad.
25339
25340 2016-01-12 Richard Biener <rguenther@suse.de>
25341
25342 PR tree-optimization/69168
25343 * tree-vect-loop.c (vect_analyze_loop_2): Reset both main and
25344 pattern stmt SLP type.
25345 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may
25346 end up unused so cope with that case.
25347
25348 2016-01-12 Richard Biener <rguenther@suse.de>
25349
25350 PR tree-optimization/69157
25351 * tree-vect-stmts.c (vectorizable_mask_load_store): Check
25352 stmts def type only during analyze phase.
25353 (vectorizable_call): Likewise.
25354 (vectorizable_simd_clone_call): Likewise.
25355 (vectorizable_conversion): Likewise.
25356 (vectorizable_assignment): Likewise.
25357 (vectorizable_shift): Likewise.
25358 (vectorizable_operation): Likewise.
25359 (vectorizable_store): Likewise.
25360 (vectorizable_load): Likewise.
25361
25362 2016-01-12 Richard Biener <rguenther@suse.de>
25363
25364 PR tree-optimization/69174
25365 * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
25366 space.
25367 (vectorizable_load): Properly compute the number of loads needed
25368 for permuted strided SLP loads and do not spuriously assign
25369 to SLP_TREE_VEC_STMTS.
25370
25371 2016-01-12 Andris Pavenis <andris.pavenis@iki.fi>
25372
25373 * config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2
25374 (TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive
25375 (MD_EXEC_PREFIX): Remove.
25376 (MD_STARTFILE_PREFIX) Removee.
25377 (FILE_NAME_ABSOLUTE_P): Remove.
25378 (CPP_SPEC): Do not read macros from sys/version.h.
25379 (LINK_COMMAND_SPEC): Remove.
25380 (LOCAL_INCLUDE_DIR): Remove.
25381 (TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section
25382 (TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix.
25383 (POST_LINK_SPEC): Define to invoke stubify after linker
25384 (LIBSTDCXX): Remove define
25385 (DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map.
25386 (DEFAULT_PCC_STRUCT_RETURN): Define to 1.
25387 (SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210.
25388 (SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message.
25389 (SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info.
25390 (IX86_MAYBE_NO_LIBGCC_TFMODE): Remove.
25391 (i386_djgpp_asm_named_section): Add propotype of new procedure
25392
25393 * config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define.
25394 (MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h).
25395 (STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX
25396 in config/i386/djgpp.h).
25397 (STANDARD_STARTFILE_PREFIX_2): Define identical to
25398 STANDARD_STARTFILE_PREFIX_1.
25399 (LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h).
25400 (GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal
25401 installation errors.
25402 (MAX_OFILE_ALIGNMENT): Define to 128.
25403 (HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h.
25404
25405 * config/i386/djgpp.c: New file. Add implementation of
25406 i386_djgpp_asm_named_section.
25407
25408 * config/i386/djgpp.opt: Remove obsolete option -mbnu210.
25409
25410 * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
25411 Add rule for building djgpp.o.
25412
25413 2016-01-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
25414
25415 * config/rs6000/rs6000.c (v2df_reduction_p): New function.
25416 (rtx_is_swappable_p): Reductions are swappable.
25417 (insn_is_swappable_p): V2DF reductions are swappable.
25418
25419 2016-01-11 John David Anglin <danglin@gcc.gnu.org>
25420
25421 * config/pa/pa.c (pa_emit_move_sequence): Handle floating point
25422 reloads for other unsupported memory operands.
25423
25424 2016-01-12 Kugan Vivekanandarajah <kuganv@linaro.org>
25425 Jim Wilson <jim.wilson@linaro.org>
25426
25427 PR target/69194
25428 * config/arm/arm-builtins.c (arm_expand_neon_args): Call
25429 copy_to_mode_reg instead of force_reg.
25430
25431 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
25432
25433 PR target/69225
25434 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
25435 TARGET_80387 is true.
25436
25437 2016-01-11 Jakub Jelinek <jakub@redhat.com>
25438
25439 PR target/69071
25440 * lra-eliminations.c (move_plus_up): Only move plus up
25441 if subreg of the constant can be simplified into constant
25442 and use the simplified subreg of the constant instead of
25443 the original constant.
25444
25445 * fold-const.c (fold_convertible_p): Don't return true
25446 for conversion of VECTOR_TYPE to same sized integral type.
25447 (fold_convert_loc): Fix up formatting. Fold conversion of
25448 VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR
25449 instead of NOP_EXPR.
25450
25451 PR tree-optimization/69214
25452 * tree-vrp.c (simplify_cond_using_ranges): Don't propagate
25453 innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
25454 Formatting fix.
25455
25456 PR tree-optimization/69207
25457 * tree-vect-slp.c (vect_get_constant_vectors): For
25458 VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
25459 fold_convertible_p to vector_type's element type, and always
25460 use VCE for non-VECTOR_BOOLEAN_TYPE_P.
25461
25462 2016-01-11 Richard Biener <rguenther@suse.de>
25463
25464 PR tree-optimization/69173
25465 * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only
25466 fixup the cycle if all stmts are in a pattern.
25467
25468 2016-01-11 Uros Bizjak <ubizjak@gmail.com>
25469
25470 PR middle-end/68999
25471 * alias.c (base_alias_check): Move check for addresses with
25472 alignment ANDs before the call for compare_base_decls.
25473 (memrefs_conflict_p): Return -1 for different decls
25474 that went through alignment adjustments.
25475
25476 2016-01-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25477
25478 PR rtl-optimization/68796
25479 * config/aarch64/aarch64.md (*and<mode>_compare0): New pattern.
25480 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle HImode
25481 and QImode comparisons against zero with CC_NZmode.
25482 * config/aarch64/iterators.md (short_mask): New mode_attr.
25483
25484 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
25485
25486 * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
25487 (<avx512>_store<mode>_mask): Likewise.
25488
25489 2016-01-11 Bernd Schmidt <bschmidt@redhat.com>
25490 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25491
25492 PR rtl-optimization/68841
25493 * ifcvt.c (struct noce_if_info): Add orig_x field.
25494 (bbs_ok_for_cmove_arith): Add to_rename parameter.
25495 Don't record conflicts on to_rename if it's present.
25496 Allow memory destinations in sets.
25497 (noce_try_cmove_arith): Call bbs_ok_for_cmove_arith even on simple
25498 blocks, passing orig_x to the checks.
25499 (noce_process_if_block): Set if_info->orig_x appropriately.
25500
25501 2016-01-11 Tom de Vries <tom@codesourcery.com>
25502
25503 PR tree-optimization/69069
25504 * tree-parloops.c (create_parallel_loop): Add missing phi args.
25505
25506 2016-01-11 Yuri Rumyantsev <ysrumyan@gmail.com>
25507
25508 PR rtl-optimization/68920
25509 * config/i386/i386.c (ix86_option_override_internal): Restrict number
25510 of conditional moves for RTL if-conversion to 1 for
25511 TARGET_ONE_IF_CONV_INSN.
25512 * config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros.
25513 * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros.
25514 * params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new
25515 parameter to restirct number of conditional moves for
25516 RTL if-conversion.
25517 * doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
25518 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
25519 conditionl moves.
25520
25521 2016-01-11 Alexandre Oliva <aoliva@redhat.com>
25522
25523 PR bootstrap/69123
25524 * var-tracking.c (drop_overlapping_mem_locs): Operate on all
25525 onepart vars. Fix typo in comment. Fix reversed condition in
25526 unshare test.
25527 (dataflow_set_remove_mem_locs): Operate on all onepart vars.
25528
25529 PR bootstrap/69123
25530 * var-tracking.c (dump_onepart_variable_differences): New.
25531 (dataflow_set_different): If a detailed dump is requested,
25532 delay early returns and dump differences between onepart
25533 variables present before and after, and added variables.
25534
25535 2016-01-11 Ilya Enkovich <enkovich.gnu@gmail.com>
25536
25537 PR target/69010
25538 * expr.c (expand_expr_real_1): For boolean vector constants
25539 with a scalar mode use const_scalar_mask_from_tree.
25540 (const_scalar_mask_from_tree): New.
25541 * optabs.c (expand_vec_cond_mask_expr): Use mask mode
25542 assigned to a mask type to handle constants.
25543
25544 2016-01-11 Martin Jambor <mjambor@suse.cz>
25545
25546 PR ipa/69044
25547 * ipa-cp.c (estimate_local_effects): Do not clone for removal of
25548 useless parameters if we cannot change function signature.
25549
25550 2016-01-11 Martin Jambor <mjambor@suse.cz>
25551
25552 PR ipa/66616
25553 * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
25554 flag.
25555
25556 2016-01-11 Tom de Vries <tom@codesourcery.com>
25557
25558 PR tree-optimization/69109
25559 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
25560 latch with phi.
25561
25562 2016-01-11 Tom de Vries <tom@codesourcery.com>
25563
25564 PR tree-optimization/69108
25565 * tree-parloops.c (gather_scalar_reductions): Handle case that outer phi
25566 res is not used in a phi.
25567
25568 2016-01-11 Yury Gribov <y.gribov@samsung.com>
25569
25570 PR 67425
25571 * common.opt (frandom-seed): Fix parameter name.
25572 * doc/invoke.texi (frandom-seed): Ditto and describe parameter.
25573
25574 2016-01-11 Tom de Vries <tom@codesourcery.com>
25575
25576 PR tree-optimization/69058
25577 * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
25578 not supported.
25579
25580 2016-01-11 Andrew Burgess <andrew.burgess@embecosm.com>
25581
25582 * config/arc/arc.opt (mdiv-rem): Add period to the end.
25583 (mcode-density): Likewise.
25584
25585 2016-01-10 Tom de Vries <tom@codesourcery.com>
25586
25587 PR tree-optimization/69062
25588 * tree-parloops.c (loop_has_phi_with_address_arg): New function.
25589 (parallelize_loops): Don't paralelize loop that has phi with address
25590 arg.
25591
25592 2016-01-10 Tom de Vries <tom@codesourcery.com>
25593
25594 PR tree-optimization/69039
25595 * tree-parloops.c (try_create_reduction_list): Only allow single exit
25596 phi for reduction.
25597
25598 2016-01-09 John David Anglin <danglin@gcc.gnu.org>
25599
25600 PR middle-end/68743
25601 * match.pd: Require target has function_c99_misc before doing
25602 truncl(extend(x)) and trunc(extend(x)) -> extend(truncf(x)), etc.
25603
25604 2016-01-09 Gerald Pfeifer <gerald@pfeifer.com>
25605
25606 * configure.ac (isl_options_set_schedule_serialize_sccs): Also
25607 use GMPINC.
25608 * configure: Regenerate.
25609
25610 2016-01-09 Jakub Jelinek <jakub@redhat.com>
25611
25612 PR middle-end/50865
25613 PR tree-optimization/69097
25614 * fold-const.h (expr_not_equal_to): New prototype.
25615 * fold-const.c: Include stringpool.h and tree-ssanames.h.
25616 (expr_not_equal_to): New function.
25617 * match.pd (X % -Y is the same as X % Y): Don't optimize
25618 unless X is known not to be equal to minimum or Y is known
25619 not to be equal to -1.
25620 * tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument.
25621 fold TRUNC_MOD_EXPR if the second argument is not a power of two.
25622 (simplify_stmt_using_ranges): Adjust caller.
25623 (vrp_finalize): Call set_value_range on SSA_NAMEs before calling
25624 substitute_and_fold.
25625
25626 2016-01-09 Jan Hubicka <hubicka@ucw.cz>
25627
25628 * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
25629 w/o DECL_NAME.
25630
25631 2016-01-08 Jakub Jelinek <jakub@redhat.com>
25632
25633 PR tree-optimization/69167
25634 * gimple-fold.c (replace_stmt_with_simplification): Also punt if
25635 new SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs appear in operands of
25636 ops[0] comparison.
25637 * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
25638
25639 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
25640 Richard Biener <rguenther@suse.de>
25641
25642 PR tree-optimization/68707
25643 * tree-vect-slp.c (vect_analyze_slp_instance): Cancel permuted SLP
25644 instances that can be handled via vect_load_lanes.
25645
25646 2016-01-08 Uros Bizjak <ubizjak@gmail.com>
25647
25648 * symtab.c (symtab_node::equal_address_to): Return -1 instead of 2
25649 if we can't determine address equivalence.
25650 * alias.c (compare_base_decl): Update for changed return value of
25651 symtab_node::equal_address_to.
25652
25653 2016-01-08 Jason Merrill <jason@redhat.com>
25654
25655 PR c++/68983
25656 PR c++/67557
25657 * function.c (assign_temp): Guard against TREE_ADDRESSABLE types here.
25658 * expr.c (store_field): Not here.
25659 * tree-cfgcleanup.c (fixup_noreturn_call): Don't clear LHS of a
25660 call with TREE_ADDRESSABLE type.
25661 * tree-cfg.c (verify_gimple_call): Adjust.
25662
25663 2016-01-08 Olivier Hainque <hainque@adacore.com>
25664
25665 * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
25666 libc_internal.
25667
25668 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
25669
25670 * gcc.target/rs6000/paired.md (reduc_smax_v2sf): Rename to...
25671 (reduc_smax_scal_v2sf): ...here, make result SFmode, extract element.
25672 (reduc_smin_v2sf): Rename to...
25673 (reduc_smin_scal_v2sf): ...here, make result SFmode, extract element.
25674 (reduc_splus_v2sf): Rename to...
25675 (reduc_plus_scal_v2sf): ...here, make result SFmode, extract element.
25676
25677 2016-01-08 Jakub Jelinek <jakub@redhat.com>
25678
25679 PR tree-optimization/69162
25680 * gimplify.c (gimplify_va_arg_expr): Encode original type of
25681 valist argument in another argument.
25682 (gimplify_modify_expr): Adjust for the above change. Cleanup.
25683 * tree-stdarg.c (expand_ifn_va_arg_1): Use new 3rd argument
25684 to determine the va_list type, build a MEM_REF instead of
25685 build_fold_indirect_ref.
25686
25687 PR tree-optimization/69172
25688 * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
25689 gimple_build.
25690
25691 2016-01-08 Thomas Preud'homme <thomas.preudhomme@arm.com>
25692
25693 PR tree-optimization/67781
25694 * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
25695 and cmpnop in two steps: first the ones not accessed in original
25696 gimple expression in a endian independent way and then the ones not
25697 accessed in the final result in an endian-specific way.
25698
25699 2016-01-08 Jakub Jelinek <jakub@redhat.com>
25700
25701 PR tree-optimization/69083
25702 * tree-vect-slp.c (vect_get_constant_vectors): For
25703 VECTOR_BOOLEAN_TYPE_P assert op is fold_convertible_p to vector_type's
25704 element type. If op is fold_convertible_p to vector_type's element
25705 type, use NOP_EXPR instead of VCE.
25706
25707 2016-01-08 Segher Boessenkool <segher@kernel.crashing.org>
25708
25709 PR rtl-optimization/67778
25710 PR rtl-optimization/68634
25711 PR rtl-optimization/68909
25712 * shrink-wrap.c (try_shrink_wrapping): Add comment. Don't pop
25713 block from the stack until done with it. Remove a superfluous
25714 bitmap set. Remove a superfluous bitmap test.
25715
25716 2016-01-07 Martin Sebor <msebor@redhat.com>
25717
25718 PR c/68966
25719 * doc/extend.texi (__atomic Builtins, __sync Builtins): Document
25720 constraint on the type of arguments.
25721
25722 2016-01-07 Andreas Tobler <andreast@gcc.gnu.org>
25723
25724 * config/arm/freebsd.h: Rename SUBTARGET_OVERRIDE_OPTIONS to
25725 SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. Adjust to check
25726 unaligned_access on the gcc_options set.
25727 * config/arm/arm.c (arm_option_override_internal): Use
25728 SUBTARGET_OVERRIDE_INTERNAL_OPTIONS.
25729
25730 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
25731
25732 PR target/69140
25733 * config/i386/i386.c (ix86_frame_pointer_required): Enable
25734 frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
25735
25736 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
25737
25738 Revert
25739 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
25740
25741 PR target/69140
25742 * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
25743 depending on frame_pointer_needed before remaining integer and SSE
25744 registers are saved.
25745
25746 2016-01-07 Sandra Loosemore <sandra@codesourcery.com>
25747
25748 PR 1078
25749 * doc/extend.texi (Nvidia PDX Function Attributes): New section.
25750
25751 2016-01-07 H.J. Lu <hongjiu.lu@intel.com>
25752
25753 PR target/69171
25754 * config/i386/sse.md (<sse>_sqrt<mode>2<mask_name><round_name>):
25755 Use the "xBm" constraint.
25756 (float<sseintvecmodelower><mode>2<mask_name><round_name):
25757 Likewise.
25758 (sse_cvtsi2ss<round_name>): Use round_nimm_scalar_predicate.
25759 (sse_cvtsi2ssq<round_name>): Likewise.
25760 (sse_cvtss2si<round_name>): Likewise.
25761 (sse_cvtss2siq<round_name>): Likewise.
25762 (sse2_cvtsi2sdq<round_name>): Likewise.
25763 (sse2_cvtsd2si<round_name>): Likewise.
25764 (sse2_cvtsd2siq<round_name>): Likewise.
25765 * config/i386/subst.md (round_nimm_scalar_predicate): New
25766 predicate.
25767
25768 2015-12-15 Bernd Schmidt <bschmidt@redhat.com>
25769
25770 PR middle-end/67639
25771 * varasm.c (make_decl_rtl): Mark invalid register vars as
25772 DECL_EXTERNAL.
25773
25774 PR rtl-optimization/66206
25775 * bt-load.c (find_btr_use): Change first arg to be a pointer to an rtx.
25776 All callers changed.
25777
25778 2016-01-07 Jakub Jelinek <jakub@redhat.com>
25779
25780 PR tree-optimization/69141
25781 * tree-ssa-pre.c: Include langhooks.h.
25782 (eliminate_dom_walker::before_dom_children): Use
25783 lang_hooks.decl_printable_name instead of
25784 cgraph_node::get ()->name ().
25785
25786 PR middle-end/68960
25787 * gimple-expr.c (copy_var_decl): If var has DECL_USER_ALIGN set, copy
25788 it and DECL_ALIGN too.
25789
25790 2016-01-06 Robert Suchanek <robert.suchanek@imgtec.com>
25791
25792 * config/mips/mips-ftypes.def: Sort to lexicographical order.
25793
25794 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
25795
25796 PR target/69140
25797 * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
25798 depending on frame_pointer_needed before remaining integer and SSE
25799 registers are saved.
25800
25801 2015-01-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
25802
25803 * config/rs6000/vsx.md (*p9_vecload_<mode>): Replace VSX_M
25804 mode iterator with VSX_M2.
25805 (*p9_vecstore_<mode>): Likewise.
25806 (*vsx_le_permute_<mode>): Restrict to !TARGET_P9_VECTOR.
25807 (*vsx_le_perm_load_<mode> for VSX_LE_128): Likewise.
25808 (*vsx_le_perm_store_<mode> for VSX_LE_128): Likewise.
25809 (define_split for VSX_LE128 stores): Likewise.
25810 (define_peephole2 for TImode LE swaps): Likewise.
25811 (define_split for VSX_LE128 post-reload stores): Likewise.
25812
25813 2016-01-06 Marek Polacek <polacek@redhat.com>
25814
25815 PR sanitizer/69099
25816 * convert.c (convert_to_integer_1): Adjust call to
25817 ubsan_instrument_float_cast. Use NULL_TREE instead of NULL.
25818 * ubsan.c (ubsan_instrument_float_cast): Drop the ARG parameter. Use
25819 EXPR instead of ARG.
25820 * ubsan.h (ubsan_instrument_float_cast): Adjust declaration.
25821
25822 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
25823
25824 PR 1078
25825 * doc/extend.texi (RL78 Variable Attributes): New section.
25826
25827 2016-01-05 Marek Polacek <polacek@redhat.com>
25828
25829 PR c/69104
25830 * builtins.c (get_memmodel): Use expansion point location rather than
25831 the input location. Call warning_at rather than warning.
25832 (expand_builtin_atomic_compare_exchange): Likewise.
25833 (expand_builtin_atomic_load): Likewise.
25834 (expand_builtin_atomic_store): Likewise.
25835 (expand_builtin_atomic_clear): Likewise.
25836
25837 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
25838
25839 PR target/68991
25840 * config/i386/i386.c (ix86_expand_vector_logical_operator):
25841 Replace nonimmediate_operand with vector_operand.
25842 * config/i386/predicates.md (vector_operand): New predicate.
25843 (general_vector_operand): Replace nonimmediate_operand with
25844 vector_operand.
25845 * config/i386/sse.md: Replace nonimmediate_operand with
25846 vector_operand and m constraint with Bm constraint on SSE
25847 patterns with 16-byte memory operand.
25848 * config/i386/subst.md (round_nimm_predicate): Replace
25849 nonimmediate_operand with vector_operand.
25850 (round_saeonly_nimm_predicate): Likewise.
25851 (round_saeonly_nimm_scalar_predicate): New.
25852
25853 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
25854
25855 PR target/68991
25856 * config/i386/constraints.md (Bm): New constraint.
25857 * config/i386/predicates.md (vector_memory_operand): New
25858 predicate.
25859 * config/i386/sse.md: Replace xm with xBm in plusminus and
25860 any_logic patterns.
25861
25862 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
25863
25864 PR 1078
25865 * doc/extend.texi (V850 Function Attributes): New section.
25866 (V850 Variable Attributes): New section.
25867
25868 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
25869
25870 PR 1078
25871 * doc/extend.texi (MicroBlaze Function Attributes): Document
25872 interrupt_handler and fast_interrupt attributes.
25873
25874 2016-01-05 Sergei Trofimovich <siarheit@google.com>
25875
25876 PR other/60465
25877 * config/ia64/ia64.c (ia64_expand_load_address): Use gprel64
25878 for local symbolic operands.
25879 * config/ia64/predicates.md (local_symbolic_operand64): New
25880 predicate.
25881
25882 2016-01-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25883
25884 PR rtl-optimization/68651
25885 * combine.c (combine_simplify_rtx): Canonicalize x + x into
25886 x << 1.
25887
25888 2016-01-05 Nathan Sidwell <nathan@acm.org>
25889
25890 * alias.c (compare_base_decls): Use symtab_node::get.
25891
25892 2016-01-05 Nick Clifton <nickc@redhat.com>
25893
25894 PR target/68770
25895 * ira-costs.c (copy_cost): Initialise the t_icode field of the
25896 secondary_reload_info structure.
25897
25898 PR target/66655
25899 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
25900 decls if weak support is available.
25901
25902 2016-01-04 Martin Sebor <msebor@redhat.com>
25903
25904 * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.
25905
25906 2016-01-04 Michael Meissner <meissner@linux.vnet.ibm.com>
25907
25908 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
25909 OPTION_MASK_P9_DFORM.
25910
25911 * config/rs6000/constraints.md (wo constraint): New constraint for
25912 ISA 3.0 (power9).
25913
25914 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
25915 for wo constraint.
25916 (rs6000_init_hard_regno_mode_ok): Likewise.
25917
25918 * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
25919 wo constraint.
25920
25921 * config/rs6000/altivec.md (altivec_vperm_<mode>): Clean up vperm
25922 expanders not to have constraints. Add support for ISA 3.0 xxperm
25923 instruction. Add support for fusing xxlor with xxperm.
25924 (altivec_vperm_<mode>_internal): Likewise.
25925 (altivec_vperm_v8hiv16qi): Likewise.
25926 (altivec_vperm_<mode>v16q): Likewise.
25927 (altivec_vperm_<mode>_uns): Likewise.
25928 (vperm_v8hiv4si): Likewise.
25929 (vperm_v16qiv8hi): Likewise.
25930
25931 * doc/md.texi (RS/6000 constraints): Document wo constraint.
25932
25933 2016-01-04 Jakub Jelinek <jakub@redhat.com>
25934
25935 Update copyright years.
25936
25937 * gcc.c (process_command): Update copyright notice dates.
25938 * gcov-dump.c (print_version): Ditto.
25939 * gcov.c (print_version): Ditto.
25940 * gcov-tool.c (print_version): Ditto.
25941 * gengtype.c (create_file): Ditto.
25942 * doc/cpp.texi: Bump @copying's copyright year.
25943 * doc/cppinternals.texi: Ditto.
25944 * doc/gcc.texi: Ditto.
25945 * doc/gccint.texi: Ditto.
25946 * doc/gcov.texi: Ditto.
25947 * doc/install.texi: Ditto.
25948 * doc/invoke.texi: Ditto.
25949
25950 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
25951
25952 * config/arm/arm.c (aapcs_vfp_allocate_return_reg): Treat all integer
25953 modes larger than TImode as TImode if NEON is not enabled.
25954
25955 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
25956
25957 PR target/69100
25958 * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
25959 mode for %f0-%f31 only if TARGET_FPU.
25960
25961 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
25962
25963 PR target/69072
25964 * config/sparc/sparc.c (scan_record_type): Take into account subfields
25965 to compute the PACKED_P predicate.
25966 (function_arg_record_value): Minor tweaks.
25967
25968 2016-01-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
25969
25970 * doc/install.texi (--with-multilib-list): Describe the meaning of the
25971 option for arm*-*-* targets.
25972
25973 2016-01-03 Sandra Loosemore <sandra@codesourcery.com>
25974
25975 * doc/extend.texi (Common Function Attributes): Move docs for
25976 MSP430-specific attributes to....
25977 (MSP430 Function Attributes): ...here. Delete the redundant
25978 entries and copy-edit the remaining text.
25979 (MSP430 Variable Attributes): Use uniform format for index
25980 entries and add a cross-reference to the corresponding function
25981 attribute docs.
25982
25983 2016-01-03 Vladimír Čunát <vcunat@gmail.com>
25984
25985 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix
25986 -finite-math typo.
25987 (x86 Options): Likewise.
25988
25989 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
25990
25991 PR 1078
25992
25993 * extend.texi (Common Function Attributes) <no_stack_limit>: New.
25994 * invoke.texi (Code Gen Options) <-fno-stack-limit>: Add pointer
25995 to corresponding attribute.
25996
25997 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
25998
25999 * doc/extend.texi (Common Function Attributes) <noplt>: Move
26000 to correct alphabetization of table. Copy-edit and correct
26001 markup.
26002 <stack_protect>: Likewise.
26003 <target_clones>: Likewise.
26004 <simd>: Likewise.
26005 * doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>:
26006 Correct punctuation.
26007 (Code Gen Options) <-fno-plt>: Copy-edit.
26008
26009 2016-01-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
26010
26011 PR target/68917
26012 * config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of
26013 SI values. Explicitly convert SI to DI and vice-versa.
26014
26015 2016-01-01 Jakub Jelinek <jakub@redhat.com>
26016
26017 PR tree-optimization/69070
26018 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Only test
26019 REAL_VALUE_ISSIGNALING_NAN on arg0 if arg0 is a REAL_CST.
26020
26021 PR sanitizer/69055
26022 * ubsan.c (ubsan_instrument_float_cast): Call
26023 initialize_sanitizer_builtins.
26024
26025 PR target/69015
26026 * ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).
26027 \f
26028 Copyright (C) 2016 Free Software Foundation, Inc.
26029
26030 Copying and distribution of this file, with or without modification,
26031 are permitted in any medium without royalty provided the copyright
26032 notice and this notice are preserved.