[Patch 2/2 ifcvt costs] Introduce a new cost model for ifcvt.
[gcc.git] / gcc / ChangeLog
1 2016-07-21 James Greenhalgh <james.greenhalgh@arm.com>
2
3 * ifcvt.c (noce_if_info): New fields: speed_p, original_cost,
4 max_seq_cost. Removed fields: then_cost, else_cost, branch_cost.
5 (noce_conversion_profitable_p): New.
6 (noce_try_store_flag_constants): Use it.
7 (noce_try_addcc): Likewise.
8 (noce_try_store_flag_mask): Likewise.
9 (noce_try_cmove): Likewise.
10 (noce_try_cmove_arith): Likewise.
11 (bb_valid_for_noce_process_p): Add to the cost parameter rather than
12 overwriting it.
13 (noce_convert_multiple_sets): Move cost model to here, from...
14 (bb_ok_for_noce_convert_multiple_sets) ...here.
15 (noce_process_if_block): Update calls for above changes.
16 (noce_find_if_block): Record new noce_if_info parameters.
17
18 2016-07-21 James Greenhalgh <james.greenhalgh@arm.com>
19
20 * target.def (max_noce_ifcvt_seq_cost): New.
21 * doc/tm.texi.in (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Document it.
22 * doc/tm.texi: Regenerate.
23 * targhooks.h (default_max_noce_ifcvt_seq_cost): New.
24 * targhooks.c (default_max_noce_ifcvt_seq_cost): New.
25 * params.def (PARAM_MAX_RTL_IF_CONVERSION_PREDICTABLE_COST): New.
26 (PARAM_MAX_RTL_IF_CONVERSION_UNPREDICTABLE_COST): Likewise.
27 * doc/invoke.texi: Document new params.
28
29 2016-07-21 Richard Biener <rguenther@suse.de>
30
31 PR tree-optimization/71947
32 * tree-vrp.c (extract_range_from_assert): Singleton symbolic
33 ranges have useful limit_vr information.
34
35 2016-07-21 Richard Biener <rguenther@suse.de>
36
37 * function-tests.c (build_trivial_generic_function): Set
38 BLOCK_SUPERCONTEXT of DECL_INITIAL.
39 * omp-low.c (create_omp_child_function): Likewise.
40 (grid_expand_target_grid_body): Likewise.
41 * cgraphunit.c (init_lowered_empty_function): Likewise.
42 (cgraph_node::expand_thunk): Likewise.
43 * tree-parloops.c (create_loop_fn): Likewise.
44 * ipa.c (cgraph_build_static_cdtor_1): Likewise.
45
46 2016-07-21 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
47
48 * tree-ssa-strlen.c (strlen_dom_walker::before_dom_children): Fix typo
49 in comment.
50
51 2016-07-21 Georg-Johann Lay <avr@gjlay.de>
52
53 * config/avr/avr.md (any_extract, any_shiftrt): New code iterators.
54 (*insv.extract, *insv.shiftrt, *insv.not-bit.0, *insv.not-bit.7)
55 (*insv.xor-extract, *insv.xor1-bit.0): New insns.
56 (adjust_len) [insv_notbit, insv_notbit_0, insv_notbit_7]: New
57 values for insn attribute.
58 * config/avr/avr.c (avr_out_insert_notbit): New function.
59 (avr_adjust_insn_length): Handle ADJUST_LEN_INSV_NOTBIT,
60 ADJUST_LEN_INSV_NOTBIT_0/_7.
61 * config/avr/avr-protos.h (avr_out_insert_notbit): New proto.
62
63 2016-07-21 Bin Cheng <bin.cheng@arm.com>
64
65 * tree-chrec.c (convert_affine_scev): New parameter. Pass new arg.
66 (chrec_convert_1, chrec_convert): Ditto.
67 * tree-chrec.h (chrec_convert, convert_affine_scev): New parameter.
68 * tree-scalar-evolution.c (interpret_rhs_expr): Pass new arg.
69 * tree-vrp.c (adjust_range_with_scev): Ditto.
70 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): Ditto.
71 (scev_var_range_cant_overflow): New function.
72 (scev_probably_wraps_p): New parameter. Call above function.
73 * tree-ssa-loop-niter.h (scev_probably_wraps_p): New parameter.
74
75 2016-07-21 Bin Cheng <bin.cheng@arm.com>
76
77 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up
78 by removing computation of may_be_zero.
79
80 2016-07-21 Jakub Jelinek <jakub@redhat.com>
81
82 * tree-object-size.c (unknown): Use HOST_WIDE_INT_M1U instead of -1.
83
84 2016-07-21 Andrew Sutton <andrew.n.sutton@gmail.com>
85
86 Improving concepts performance and diagnostics.
87 * timevar.def (TV_CONSTRAINT_SAT, TV_CONSTRAINT_SUB): New time vars
88 for constraint satisfaction and subsumption.
89 * timevar.h (auto_timevar): New constructor that matches the push/pop
90 pattern of usage in pt.c.
91
92 2016-07-20 Uros Bizjak <ubizjak@gmail.com>
93
94 * hwint.h (HOST_WIDE_INT_0): New define.
95 (HOST_WIDE_INT_0U): Ditto.
96 * double-int.c: Use HOST_WIDE_INT_0 instead of (HOST_WIDE_INT) 0.
97 * dse.c: Use HOST_WIDE_INT_0U instead of (unsigned HOST_WIDE_INT) 0.
98 * simplify-rtx.c: Ditto.
99 * tree-object-size.c: Ditto.
100
101 2016-07-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
102
103 * config/s390/s390.c (s390_encode_section_info): Remove mode size
104 check.
105
106 2016-07-20 Uros Bizjak <ubizjak@gmail.com>
107
108 * cse.c: Use HOST_WIDE_INT_M1 instead of ~(HOST_WIDE_INT) 0.
109 * combine.c: Use HOST_WIDE_INT_M1U instead of
110 ~(unsigned HOST_WIDE_INT) 0.
111 * double-int.h: Ditto.
112 * dse.c: Ditto.
113 * dwarf2asm.c:Ditto.
114 * expmed.c: Ditto.
115 * genmodes.c: Ditto.
116 * match.pd: Ditto.
117 * read-rtl.c: Ditto.
118 * tree-ssa-loop-ivopts.c: Ditto.
119 * tree-ssa-loop-prefetch.c: Ditto.
120 * tree-vect-generic.c: Ditto.
121 * tree-vect-patterns.c: Ditto.
122 * tree.c: Ditto.
123
124 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
125
126 * gcc/config/avr.c (avr_legitimize_address) [AVR_TINY]: Force
127 constant addresses outside [0,0xc0] into a register.
128 (avr_out_movhi_r_mr_reg_no_disp_tiny): Pass insn. And handle
129 cases where the base address register is unused after.
130 (avr_out_movhi_r_mr_reg_disp_tiny): Same.
131 (avr_out_movhi_mr_r_reg_disp_tiny): Same.
132 (avr_out_store_psi_reg_disp_tiny): Same.
133
134 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
135
136 Implement attribute progmem on reduced Tiny cores by adding
137 flash offset 0x4000 to respective symbols.
138
139 PR target/71948
140 * doc/extend.texi (AVR Variable Attributes) [progmem]: Add
141 documentation how it works on reduced Tiny cores.
142 (AVR Named Address Spaces): No support for reduced Tiny.
143 * config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_PM): New macro.
144 (avr_address_tiny_pm_p): New static function.
145 (avr_print_operand_address) [AVR_TINY]: Add AVR_TINY_PM_OFFSET
146 if the address is in progmem.
147 (avr_assemble_integer): Same.
148 (avr_encode_section_info) [AVR_TINY]: Set AVR_SYMBOL_FLAG_TINY_PM
149 for symbol_ref in progmem.
150 * config/avr/avr.h (AVR_TINY_PM_OFFSET): New macro.
151 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it instead of
152 magic 0x4000 when built-in def'ing __AVR_TINY_PM_BASE_ADDRESS__.
153
154 2016-07-20 Patrick Palka <ppalka@gcc.gnu.org>
155
156 * configure.ac (thin_archive_support): New variable. AC_SUBST it.
157 * configure: Regenerate.
158 * Makefile.in (THIN_ARCHIVE_SUPPORT): New variable.
159 (USE_THIN_ARCHIVES): New variable.
160 (libbackend.a): If USE_THIN_ARCHIVES then pass T to ar to build
161 this archive as a thin archive.
162
163 2016-07-20 David Malcolm <dmalcolm@redhat.com>
164
165 * diagnostic-show-locus.c (diagnostic_show_locus): If this is the
166 same location as last time, don't skip if we have fix-it hints.
167 Clarify the skipping logic by converting it from one "if" clause
168 to repeated "if" clauses.
169 * spellcheck-tree.c: Include "cpplib.h".
170 (find_closest_macro_cpp_cb): Move here from c/c-decl.c.
171 (best_macro_match::best_macro_match): New constructor.
172 * spellcheck-tree.h (struct edit_distance_traits<cpp_hashnode *>):
173 Move here from c/c-decl.c.
174 (class best_macro_match): Move here from c/c-decl.c, converting
175 from a typedef to a subclass, gaining a ctor.
176
177 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
178
179 * config/avr/avr-protos.h (avr_addr_space_supported_p): New prototype.
180 * config/avr/avr.c (TARGET_ADDR_SPACE_DIAGNOSE_USAGE): New hook
181 define...
182 (avr_addr_space_diagnose_usage): ...and implementation.
183 (avr_addr_space_supported_p): New function.
184 (avr_nonconst_pointer_addrspace, avr_pgm_check_var_decl): Only
185 report bad address space usage if that space is supported.
186 (avr_insert_attributes): Same. No more complain about unsupported
187 address spaces.
188 * config/avr/avr-c.c (tm_p.h): Include it.
189 (avr_cpu_cpp_builtins): Only define addr-space related built-in
190 macro if avr_addr_space_supported_p.
191
192 2016-07-20 Alexander Monakov <amonakov@ispras.ru>
193
194 * config/nvptx/nvptx.c (nvptx_option_override): Do not set
195 flag_toplevel_reorder.
196
197 2016-07-20 David Malcolm <dmalcolm@redhat.com>
198
199 * gcc-rich-location.c
200 (gcc_rich_location::add_fixit_misspelled_id): New overload, taking
201 a const char *.
202 * gcc-rich-location.h
203 (gcc_rich_location::add_fixit_misspelled_id): Likewise.
204
205 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
206
207 * target.def (addr_space): Add new diagnose_usage to hook vector.
208 * targhooks.c (default_addr_space_diagnose_usage): Add default
209 implementation and...
210 * targhooks.h (default_addr_space_diagnose_usage): ... its prototype.
211 * c/c-parser.c (c_lex_one_token) [CPP_NAME]: If the token
212 is some address space, call targetm.addr_space.diagnose_usage.
213 * doc/tm.texi.in (Named Address Spaces): Add anchor for
214 TARGET_ADDR_SPACE_DIAGNOSE_USAGE documentation.
215 * doc/tm.texi: Regenerate.
216
217 2016-07-20 Martin Liska <mliska@suse.cz>
218
219 PR middle-end/71898
220 * graphite-isl-ast-to-gimple.c (later_of_the_two):
221 Properly handly PHI stmts.
222
223 2016-07-20 Bin Cheng <bin.cheng@arm.com>
224
225 PR tree-optimization/71503
226 PR tree-optimization/71683
227 * tree-if-conv.c (gen_phi_arg_condition): Record true predicate
228 and break.
229
230 2016-07-20 Martin Liska <mliska@suse.cz>
231
232 * doc/invoke.texi (-fipa-ra): Document when the option is
233 disabled. Fix a typo.
234
235 2016-07-20 Martin Liska <mliska@suse.cz>
236
237 * Makefile.in: Include fibonacci_heap.c
238 * fibonacci_heap.c: New file.
239 * fibonacci_heap.h (fibonacci_heap::insert): Use insert_node.
240 (fibonacci_heap::union_with): Fix deletion of the second heap.
241 * selftest-run-tests.c (selftest::run_tests): Incorporate
242 fibonacci heap tests.
243 * selftest.h: Declare fibonacci_heap_c_tests.
244
245 2016-07-20 Martin Liska <mliska@suse.cz>
246
247 * selftest-run-tests.c (selftest::run_tests): New function.
248 * selftest.h (sreal_c_tests): Declare.
249 * sreal.c (sreal_verify_basics): New function.
250 (verify_aritmetics): Likewise.
251 (sreal_verify_arithmetics): Likewise.
252 (verify_shifting): Likewise.
253 (sreal_verify_shifting): Likewise.
254 (void sreal_c_tests): Likewise.
255
256 2016-07-19 Jakub Jelinek <jakub@redhat.com>
257
258 PR rtl-optimization/71916
259 * cfgrtl.c (contains_no_active_insn_p): Return false also for
260 bb which have a single succ fake edge.
261
262 2016-07-19 Aldy Hernandez <aldyh@redhat.com>
263
264 PR debug/71855
265 * dwarf2out.c (gen_subprogram_die): Only call
266 gen_unspecified_parameters_die while dumping early dwarf.
267
268 2016-07-19 Jakub Jelinek <jakub@redhat.com>
269
270 PR middle-end/71874
271 * gimple-fold.c (fold_builtin_memory_op): Use
272 get_addr_base_and_unit_offset instead of get_ref_base_and_extent.
273
274 2016-07-19 Uros Bizjak <ubizjak@gmail.com>
275
276 * builtins.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1,
277 HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1,
278 HOST_WIDE_INT_M1 instead of (HOST_WIDE_INT) -1 and
279 HOST_WIDE_INT_M1U instead of (unsigned HOST_WIDE_INT) -1.
280 * combine.c: Ditto.
281 * cse.c: Ditto.
282 * dojump.c: Ditto.
283 * double-int.c: Ditto.
284 * dse.c: Ditto.
285 * dwarf2out.c: Ditto.
286 * expmed.c: Ditto.
287 * expr.c: Ditto.
288 * fold-const.c: Ditto.
289 * function.c: Ditto.
290 * fwprop.c: Ditto.
291 * genmodes.c: Ditto.
292 * hwint.c: Ditto.
293 * hwint.h: Ditto.
294 * ifcvt.c: Ditto.
295 * loop-doloop.c: Ditto.
296 * loop-invariant.c: Ditto.
297 * loop-iv.c: Ditto.
298 * match.pd: Ditto.
299 * optabs.c: Ditto.
300 * real.c: Ditto.
301 * reload.c: Ditto.
302 * rtlanal.c: Ditto.
303 * simplify-rtx.c: Ditto.
304 * stor-layout.c: Ditto.
305 * toplev.c: Ditto.
306 * tree-ssa-loop-ivopts.c: Ditto.
307 * tree-vect-generic.c: Ditto.
308 * tree-vect-patterns.c: Ditto.
309 * tree.c: Ditto.
310 * tree.h: Ditto.
311 * ubsan.c: Ditto.
312 * varasm.c: Ditto.
313 * wide-int-print.cc: Ditto.
314 * wide-int.cc: Ditto.
315 * wide-int.h: Ditto.
316
317 2016-07-19 David Malcolm <dmalcolm@redhat.com>
318
319 * selftest.c (selftest::assert_streq): Handle NULL values of
320 val_actual and val_expected.
321
322 2016-07-19 Martin Jambor <mjambor@suse.cz>
323
324 PR fortran/71688
325 * trans-decl.c (gfc_generate_function_code): Use cgraph_get_create_node
326 rather than cgraph_create_node to get a call graph node.
327
328 2016-07-19 Richard Biener <rguenther@suse.de>
329
330 * gimple-fold.c (get_base_constructor): Add VIEW_CONVERT case,
331 handle all tcc_constant bases and valueize SSA names.
332 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Handle
333 tcc_constant bases.
334
335 2016-07-19 David Malcolm <dmalcolm@redhat.com>
336
337 * function-tests.c (selftest::verify_three_block_rtl_cfg): Verify
338 the flags of the exit block and bb2, not just the entry block.
339
340 2016-07-19 Richard Biener <rguenther@suse.de>
341
342 PR tree-optimization/71901
343 * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
344 align member, group stuff with the bitfield.
345 (vn_ref_op_align_unit): New inline.
346 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): For ARRAY_REFs
347 record element alignment and operand 3 unchanged.
348 (ao_ref_init_from_vn_reference): Adjust.
349 (valueize_refs_1): Likewise.
350 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
351
352 2016-07-19 Richard Biener <rguenther@suse.de>
353
354 PR tree-optimization/71908
355 * tree-ssa-structalias.c (get_constraint_for_component_ref): Handle
356 symbolic constants in a more reliable way.
357
358 2016-07-19 Ilya Enkovich <ilya.enkovich@intel.com>
359
360 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Update
361 comment.
362 (vect_update_inits_of_drs): Likewise.
363 (vect_create_cond_for_alias_checks): Likewise.
364 * tree-vect-loop.c (vect_get_known_peeling_cost): Likewise.
365
366 2016-07-19 Richard Biener <rguenther@suse.de>
367
368 PR lto/71907
369 * lto-streamer-out.c (DFS::DFS_write_tree_body): For blocks
370 with an abstract origin that is not an inlined function outer
371 scope add a self-reference as abstract origin.
372 * tree-streamer-out.c (write_ts_block_tree_pointers): Likewise.
373
374 2016-07-18 Michael Meissner <meissner@linux.vnet.ibm.com>
375
376 PR target/71493
377 * config/rs6000/rs6000.c (rs6000_function_value): Fix
378 unintentional System V.4 structure return breakage for structures
379 with a single floating point element.
380
381 2016-07-18 Yuri Rumyantsev <ysrumyan@gmail.com>
382
383 PR tree-optimization/71734
384 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Add REF_LOOP argument which
385 contains REF, use it to check safelen, assume that safelen value
386 must be greater 1, fix style.
387 (ref_indep_loop_p_2): Add REF_LOOP argument.
388 (ref_indep_loop_p): Pass LOOP as additional argument to
389 ref_indep_loop_p_2.
390
391 2016-07-18 Dominik Vogt <vogt@linux.vnet.ibm.com>
392
393 * cfgexpand.c (expand_stack_vars): Implement synamic stack space
394 allocation in the prologue.
395 * explow.c (get_dynamic_stack_base): New function to return an address
396 expression for the dynamic stack base.
397 (get_dynamic_stack_size): New function to do the required dynamic stack
398 space size calculations.
399 (allocate_dynamic_stack_space): Use new functions.
400 (align_dynamic_address): Move some code from
401 allocate_dynamic_stack_space to new function.
402 * explow.h (get_dynamic_stack_base, get_dynamic_stack_size): Export.
403
404 2016-07-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
405
406 * config/s390/s390.c (s390_encode_section_info): Always set
407 notaligned marker if mode size is 0 or no MEM_ALIGN info could be
408 found.
409
410 2016-07-18 Richard Biener <rguenther@suse.de>
411
412 PR tree-optimization/71893
413 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Compensate
414 for sizetype cast added by array_ref_element_size.
415 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
416
417 2016-07-16 John David Anglin <danglin@gcc.gnu.org>
418
419 * config/pa/pa.c (hppa_profile_hook): Allocate stack space for
420 register parameters. Remove code to initialize argument pointer
421 on TARGET_64BIT. Optimize call to _mcount when it can be reached
422 using a pc-relative branch. Cleanup conditional code.
423 * config/pa/pa.md (call_mcount): New expander.
424 (call_mcount_nonpic): New insn.
425 (call_mcount_pic): New insn and split.
426 (call_mcount_pic_post_reload): New insn.
427 (call_mcount_64bit): New insn and split.
428 (call_mcount_64bit_post_reload): New insn.
429
430 2016-07-15 Georg-Johann Lay <avr@gjlay.de>
431
432 * config/avr/predicates.md (const_m255_to_m1_operand): New.
433 * config/avr/constraints.md (Cn8, Ca1, Co1, Yx2): New constraints.
434 * config/avr/avr.md (add<mode>3) <ALL1>: Fix set_vzn for +/-2.
435 (*cmphi.zero-extend.0, *cmphi.zero-extend.1)
436 (*usum_widenqihi3, *udiff_widenqihi3)
437 (*addhi3_zero_extend.const): New combiner insns.
438 (andqi3, iorqi3): Provide "l" (NO_LD_REGS) alternative if
439 just 1 bit is affected.
440 * config/avr/avr.c (avr_out_bitop) <QImode>: Don't access xop[3].
441 (avr_out_compare) [EQ,NE]: Tweak comparing d-regs against -1.
442
443 2016-07-15 Cesar Philippidis <cesar@codesourcery.com>
444
445 * omp-low.c (lower_omp_target): Mark data clauses with
446 GOMP_MAP_FORCE_{PRESENT,TO,FROM,TOFROM} as potentially having
447 zero-length subarrays.
448
449 2016-07-15 Richard Biener <rguenther@suse.de>
450
451 PR tree-optimization/71881
452 * tree-loop-distribution.c (destroy_loop): Remove blocks in
453 reverse DOM order to make debug temp generation happy.
454
455 2016-07-15 Richard Biener <rguenther@suse.de>
456
457 PR tree-optimization/71887
458 * tree-ssa-phiopt.c (absorbing_element_p): Add rhs arg and
459 verify it is not zero for division / modulo handling.
460 (value_replacement): Adjust.
461
462 2016-07-15 Virendra Pathak <virendra.pathak@broadcom.com>
463 Julian Brown <julian@codesourcery.com>
464
465 * config/aarch64/aarch64-cores.def: Update vulcan COSTS.
466 * config/aarch64/aarch64-cost-tables.h
467 (vulcan_extra_costs): New variable.
468 * config/aarch64/aarch64.c
469 (vulcan_addrcost_table): Likewise.
470 (vulcan_regmove_cost): Likewise.
471 (vulcan_vector_cost): Likewise.
472 (vulcan_branch_cost): Likewise.
473 (vulcan_tunings): Likewise.
474
475 2016-07-15 Alexander Monakov <amonakov@ispras.ru>
476
477 * cgraphunit.c (cgraph_order_sort_kind): New entry ORDER_VAR_UNDEF.
478 (output_in_order): Loop over undefined variables too. Output them
479 via assemble_undefined_decl. Skip variables that correspond to hard
480 registers or have value-exprs.
481 * varpool.c (symbol_table::output_variables): Handle undefined
482 variables together with defined ones.
483
484 2016-07-15 Richard Biener <rguenther@suse.de>
485
486 * tree-ssa-pre.c (get_representative_for): Make sure to return
487 the value number of SSA names.
488 (phi_translate_1): get_representative_for cannot return NULL.
489 (do_pre_regular_insertion): Remove redundant call to
490 fully_constant_expression.
491 (do_pre_partial_partial_insertion): Likewise.
492
493 2016-07-15 Bin Cheng <bin.cheng@arm.com>
494
495 * tree-scalar-evolution.c (simple_iv_with_niters): New funcion.
496 (derive_simple_iv_with_niters): New function.
497 (simple_iv): Rewrite using simple_iv_with_niters.
498 * tree-scalar-evolution.h (simple_iv_with_niters): New decl.
499 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): New
500 function.
501 (number_of_iterations_exit): Rewrite using above function.
502 * tree-ssa-loop-niter.h (number_of_iterations_exit_assumptions): New
503 Decl.
504
505 2016-07-15 Richard Biener <rguenther@suse.de>
506
507 * config/i386/i386.c (ix86_builtin_vectorization_cost): Adjust
508 vec_construct cost.
509
510 2016-07-14 Jakub Jelinek <jakub@redhat.com>
511
512 PR tree-optimization/71872
513 * tree-data-ref.c (get_references_in_stmt): Ignore references
514 with is_gimple_constant get_base_address.
515
516 2016-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
517
518 * config/arm/arm.h (TARGET_HAVE_LDACQ): Enable for ARMv8-M Mainline.
519 (TARGET_HAVE_LDACQD): New macro.
520 * config/arm/sync.md (atomic_loaddi): Use TARGET_HAVE_LDACQD rather
521 than TARGET_HAVE_LDACQ.
522 (arm_load_acquire_exclusivedi): Likewise.
523 (arm_store_release_exclusivedi): Likewise.
524
525 2016-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
526
527 PR rtl-optimization/71878
528 * lra-constraints.c (match_reload): Pass information about other
529 output operands. Create new unique register value if matching input
530 operand shares same register value as output operand being considered.
531 (curr_insn_transform): Record output operands already processed.
532
533 2016-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
534
535 PR target/65951
536 PR tree-optimization/70923
537 * tree-vect-patterns.c: Include mult-synthesis.h.
538 (target_supports_mult_synth_alg): New function.
539 (synth_lshift_by_additions): Likewise.
540 (apply_binop_and_append_stmt): Likewise.
541 (vect_synth_mult_by_constant): Likewise.
542 (target_has_vecop_for_code): Likewise.
543 (vect_recog_mult_pattern): Use above functions to synthesize vector
544 multiplication by integer constants.
545
546 2016-07-14 Alan Modra <amodra@gmail.com>
547
548 * gcc/config/rs6000/altivec.md (altivec_mov<mode>): Disparage
549 gpr alternatives. Correct '*' placement on Y,r alternative.
550 Add '*' on operand 1 of r,r alternative.
551
552 2016-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
553
554 * expmed.c (mult_variant, choose_mult_variant): Move declaration to...
555 * expmed.h: ... Here.
556
557 2016-07-14 Jan Hubicka <hubicka@ucw.cz>
558
559 * gimple.h (stmt_can_terminate_bb_p): New function.
560 * tree-cfg.c (need_fake_edge_p): Rename to ...
561 (stmt_can_terminate_bb_p): ... this; return true if stmt can
562 throw external; handle const and pure calls.
563 * tree-ssa-loop-niter.c (loop_only_exit_p): Use it.
564
565 2016-07-14 Richard Biener <rguenther@suse.de>
566
567 PR tree-optimization/71866
568 * tree-ssa-pre.c (get_constant_for_value_id): Remove.
569 (do_hoist_insertion): Avoid endless recursion when we
570 didn't insert anything because we managed to simplify
571 things down to a constant or SSA name.
572 (fully_constant_expression): Re-write in terms of ...
573 * tree-ssa-sccvn.h (vn_nary_simplify): ... this. Declare.
574 * tree-ssa-sccvn.c (vn_nary_simplify): New wrapper around
575 vn_nary_build_or_lookup_1.
576 (vn_nary_build_or_lookup_1): Added flag and renamed from ...
577 (vn_nary_build_or_lookup): ... this which now wraps it.
578
579 2016-07-14 Alan Modra <amodra@gmail.com>
580
581 PR target/71733
582 * config/rs6000/rs6000.c (rs6000_option_override_internal): Deal
583 with p9_vector override before power9-dform override.
584
585 2016-07-13 Andi Kleen <ak@linux.intel.com>
586
587 * value-prof.c (gimple_value_profile_transformations): Don't run
588 when auto_profile is on.
589
590 2016-07-13 Andi Kleen <ak@linux.intel.com>
591
592 * auto-profile.c (update_inlined_ind_target,
593 afdo_indirect_call): Print information to dump file.
594
595 2016-07-13 Andrew Burgess <andrew.burgess@embecosm.com>
596
597 * genrecog.c (special_predicate_operand_p): New function.
598 (predicate_name): Move function.
599 (validate_pattern): Don't warn about missing mode for all
600 define_special_predicate predicates.
601
602 2016-07-13 Bin Cheng <bin.cheng@arm.com>
603
604 * tree-vect-data-refs.c (vect_no_alias_p): New function.
605 (vect_prune_runtime_alias_test_list): Call vect_no_alias_p to
606 resolve alias checks which are known at compilation time.
607 Truncate vector LOOP_VINFO_MAY_ALIAS_DDRS(loop_vinfo) if all
608 alias checks are resolved. Move dump info for too many runtime
609 alias checks to here...
610 * tree-vect-loop.c (vect_analyze_loop_2): ...From here.
611
612 2016-07-13 Richard Biener <rguenther@suse.de>
613
614 PR tree-optimization/24574
615 * tree-ssa-phiopt.c (absorbing_element_p): Pass in argument
616 position and add shift, rotate, divison and modulo support
617 for left zero.
618 (value_replacement): Pass in argument position to absorbing_element_p.
619
620 2016-07-13 Ilya Enkovich <ilya.enkovich@intel.com>
621
622 PR ipa/71633
623 * ipa-inline-transform.c (inline_call): Support
624 instrumented thunks.
625
626 2016-07-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
627
628 * config/arm/arm.h (TARGET_HAVE_CBZ): Define.
629 (TARGET_IDIV): Set for all Thumb targets provided they have hardware
630 divide feature.
631 * config/arm/arm.md (divsi3): New unpredicable alternative for ARMv8-M
632 Baseline. Make initial alternative TARGET_32BIT only.
633 (udivsi3): Likewise.
634 * config/arm/thumb1.md (thumb1_cbz): New define_insn.
635 * doc/sourcebuild.texi (arm_thumb1_cbz_ok): Document new effective
636 target.
637
638 2016-07-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
639
640 * config/arm/arm.h (TARGET_HAVE_MOVT): Include ARMv8-M as having MOVT.
641 * config/arm/arm.c (arm_arch_name): (const_ok_for_op): Check MOVT/MOVW
642 availability with TARGET_HAVE_MOVT.
643 (thumb_legitimate_constant_p): Strip the high part of a label_ref.
644 (thumb1_rtx_costs): Also return 0 if setting a half word constant and
645 MOVW is available and replace (unsigned HOST_WIDE_INT) INTVAL by
646 UINTVAL.
647 (thumb1_size_rtx_costs): Make set of half word constant also cost 1
648 extra instruction if MOVW is available. Use a cost variable
649 incremented by COSTS_N_INSNS (1) when the condition match rather than
650 returning an arithmetic expression based on COSTS_N_INSNS. Make
651 constant with bottom half word zero cost 2 instruction if MOVW is
652 available.
653 * config/arm/arm.md (define_attr "arch"): Add v8mb.
654 (define_attr "arch_enabled"): Set to yes if arch value is v8mb and
655 target is ARMv8-M Baseline.
656 (arm_movt): New unpredicable alternative for ARMv8-M Baseline.
657 (arm_movtas_ze): Likewise.
658 * config/arm/thumb1.md (thumb1_movdi_insn): Add ARMv8-M Baseline only
659 alternative for constants satisfying j constraint.
660 (thumb1_movsi_insn): Likewise.
661 (movsi splitter for K alternative): Tighten condition to not trigger
662 if movt is available and j constraint is satisfied.
663 (Pe immediate splitter): Likewise.
664 (thumb1_movhi_insn): Add ARMv8-M Baseline only alternative for
665 constant fitting in an halfword to use MOVW.
666 * doc/sourcebuild.texi (arm_thumb1_movt_ok): Document new ARM
667 effective target.
668
669 2016-07-13 Richard Biener <rguenther@suse.de>
670
671 PR middle-end/71104
672 * gimplify.c (gimplify_modify_expr): Gimplify the RHS before
673 gimplifying the LHS. Make sure to gimplify a returning twice
674 call LHS without using SSA names.
675
676 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
677
678 * tree-data-ref.c (find_data_references_in_stmt): Remove
679 unnecessary call to vec::release.
680 (graphite_find_data_references_in_stmt): Likewise.
681 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): Likewise.
682 * tree-vect-stmts.c (vectorizable_condition): Likewise.
683
684 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
685
686 * cfgexpand.c (expand_used_vars): Make the type of a local
687 variable auto_vec.
688 * genmatch.c (lower_for): Likewise.
689 * haifa-sched.c (haifa_sched_init): Likewise.
690 (add_to_speculative_block): Likewise.
691 (create_check_block_twin): Likewise.
692 * predict.c (handle_missing_profiles): Likewise.
693 * tree-data-ref.c (loop_nest_has_data_refs): Likewise.
694 * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Likewise.
695 * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
696 Likewise.
697 (maybe_lower_iteration_bound): Likewise.
698 * tree-ssa-sccvn.c (DFS): Likewise.
699 * tree-stdarg.c (reachable_at_most_once): Likewise.
700 * tree-vect-stmts.c (vectorizable_conversion): Likewise.
701 (vectorizable_store): Likewise.
702
703 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
704
705 * tree-ssa-sccvn.c (sccvn_dom_walker::~sccvn_dom_walker): remove.
706 (sccvn_dom_walker): make cond_stack an auto_vec.
707
708 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
709
710 * ree.c (struct ext_state): Make type of members auto_vec.
711 (find_and_remove_re): Adjust.
712
713 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
714
715 * cfgexpand.c (struct stack_vars_data): Make type of fields
716 auto_vec.
717 (expand_used_vars): Adjust.
718
719 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
720
721 * ipa.c (record_cdtor_fn): Adjust.
722 (build_cdtor_fns): Likewise.
723 (ipa_cdtor_merge): Make static_ctors and static_dtors local
724 variables.
725
726 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
727
728 * genextract.c (struct accum_extract): Add constructor and make
729 members auto_vec.
730 (gen_insn): Adjust.
731
732 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
733
734 * tree.c (struct free_lang_data_d): Add constructor and change
735 types of members to ones that automatically manage resources.
736 (fld_worklist_push): Adjust.
737 (find_decls_types): Likewise.
738 (find_decls_types_in_eh_region): Likewise.
739 (free_lang_data_in_cgraph): Stop manually creating and
740 destroying members of free_lang_data_d.
741
742 2016-07-13 Uros Bizjak <ubizjak@gmail.com>
743
744 PR rtl-optimization/68961
745 * config/i386/sse.md (movsd/movhpd to movupd peephole2s): Add new
746 peephole variant. Use sse_reg_operand predicates.
747
748 2016-07-12 Uros Bizjak <ubizjak@gmail.com>
749
750 * config/i386/predicates.md (x86_64_immediate_operand)
751 <case CONST_INT>: Remove unneeded truncation to DImode.
752 <case CONST>: Ditto.
753 (x86_64_zext_immediate_operand) <case CONST>: Ditto.
754
755 2016-07-12 Michael Meissner <meissner@linux.vnet.ibm.com>
756
757 PR target/71805
758 * config/rs6000/altivec.md (altivec_vperm_<mode>_internal):
759 The xxperm and xxpermr instructions require that the 2nd input
760 operand overlap with the output operand, and not the 1st.
761 (altivec_vperm_v8hiv16qi): Likewise.
762 (altivec_vperm_<mode>_uns_internal): Likewise.
763 (altivec_vpermr_<mode>_internal): Likewise.
764 (vperm_v8hiv4si): Likewise.
765 (vperm_v16qiv8hi): Likewise.
766
767 2016-07-12 Martin Liska <mliska@suse.cz>
768
769 * params.def: Add avg-loop niter.
770 * tree-ssa-loop-ivopts.c (avg_loop_niter): Use the param.
771 * cfgloopanal.c (expected_loop_iterations_unbounded): Likewise.
772 * doc/invoke.texi: Document the new parameter.
773
774 2016-07-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
775
776 PR middle-end/71700
777 * expr.c (store_constructor): Mask sign-extended bits when widening
778 sub-word constructor element at the start of a word.
779
780 2016-07-12 Martin Liska <mliska@suse.cz>
781
782 * Makefile.in: Append rule for params-options.h.
783 * params-options.h: New file.
784
785 2016-07-12 Martin Liska <mliska@suse.cz>
786
787 * ira-build.c (mark_loops_for_removal): Properly iterate
788 loops.
789
790 2016-07-12 Steven Bosscher <steven@gcc.gnu.org>
791 Richard Biener <rguenther@suse.de>
792
793 PR tree-optimization/23286
794 PR tree-optimization/70159
795 * doc/invoke.texi: Document -fcode-hoisting.
796 * common.opt (fcode-hoisting): New flag.
797 * opts.c (default_options_table): Enable -fcode-hoisting at -O2+.
798 * tree-ssa-pre.c (pre_stats): Add hoist_insert.
799 (do_regular_insertion): Rename to ...
800 (do_pre_regular_insertion): ... this and amend general comments
801 on insertion strathegy.
802 (do_partial_partial_insertion): Rename to ...
803 (do_pre_partial_partial_insertion): ... this.
804 (do_hoist_insertion): New function.
805 (insert_aux): Take flags on whether to do PRE and/or hoist insertion
806 and call do_hoist_insertion properly.
807 (insert): Adjust.
808 (pass_pre::gate): Enable also if -fcode-hoisting is enabled.
809 (pass_pre::execute): Register hoist_insert stats.
810
811 2016-07-12 Jakub Jelinek <jakub@redhat.com>
812
813 PR middle-end/71716
814 * gimple-fold.c (optimize_atomic_compare_exchange_p): Return false
815 for SCALAR_FLOAT_TYPE_P type of expected var, or if TYPE_PRECISION
816 is different from mode's bitsize. Small cleanup.
817
818 2016-07-12 Richard Biener <rguenther@suse.de>
819
820 PR rtl-optimization/68961
821 * fwprop.c (propagate_rtx): Allow SUBREGs of VEC_CONCAT and CONCAT
822 to simplify to a non-constant.
823
824 2016-07-11 Jakub Jelinek <jakub@redhat.com>
825
826 PR middle-end/71758
827 * omp-low.c (expand_omp_target): Gimplify device.
828
829 PR tree-optimization/71823
830 * tree-vect-stmts.c (vectorizable_operation): Use vect_get_vec_defs
831 to get vec_oprnds2 from op2.
832
833 2016-07-11 Uros Bizjak <ubizjak@gmail.com>
834
835 * config/i386/predicates.md (x86_64_immediate_operand) <case CONST>:
836 Hoist common subexpressions.
837 (x86_64_zext_immediate_operand) <case CONST>: Ditto.
838
839 2016-07-11 Pat Haugen <pthaugen@us.ibm.com>
840
841 PR target/71800
842 * config/rs6000/rs6000.md (stfiwx): Change constraint to 'wu' to
843 prevent generation of 'stxsiwx' on pre Power8 hardware.
844
845 2016-07-11 David Malcolm <dmalcolm@redhat.com>
846
847 * input.c: Include cpplib.h.
848 (selftest::temp_source_file): New class.
849 (selftest::temp_source_file::temp_source_file): New ctor.
850 (selftest::temp_source_file::~temp_source_file): New dtor.
851 (selftest::should_have_column_data_p): New function.
852 (selftest::test_should_have_column_data_p): New function.
853 (selftest::temp_line_table): New class.
854 (selftest::temp_line_table::temp_line_table): New ctor.
855 (selftest::temp_line_table::~temp_line_table): New dtor.
856 (selftest::test_accessing_ordinary_linemaps): Add case_ param; use
857 it to create a temp_line_table.
858 (selftest::assert_loceq): Only verify LOCATION_COLUMN for
859 locations that are known to have column data.
860 (selftest::line_table_case): New struct.
861 (selftest::test_reading_source_line): Move tempfile handling
862 to class temp_source_file.
863 (ASSERT_TOKEN_AS_TEXT_EQ): New macro.
864 (selftest::assert_token_loc_eq): New function.
865 (ASSERT_TOKEN_LOC_EQ): New macro.
866 (selftest::test_lexer): New function.
867 (selftest::boundary_locations): New array.
868 (selftest::input_c_tests): Call test_should_have_column_data_p.
869 Loop over a test matrix of interesting values of location and
870 default_range_bits, calling test_lexer on each case in the matrix.
871 Move call to test_accessing_ordinary_linemaps into the matrix.
872 * selftest.h (ASSERT_EQ): Reimplement in terms of...
873 (ASSERT_EQ_AT): New macro.
874
875 2016-07-11 H.J. Lu <hongjiu.lu@intel.com>
876
877 PR target/71801
878 * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
879 Don't convert TImode in debug insn.
880
881 2016-07-11 Bernd Edlinger <bernd.edlinger@hotmail.de>
882
883 Convert TYPE_ALIGN_OK to a TYPE_LANG_FLAG.
884 * tree-core.h (tree_base::nothrow_flag): Adjust comment.
885 (tree_type_common::lang_flag_7): New.
886 (tree_type_common::spare): Reduce size.
887 * tree.h (TYPE_ALIGN_OK): Remove.
888 (TYPE_LANG_FLAG_7): New.
889 (get_inner_reference): Adjust header.
890 * print-tree.c (print_node): Adjust.
891 * expr.c (get_inner_reference): Remove parameter keep_aligning.
892 (get_bit_range, expand_assignment, expand_expr_addr_expr_1): Adjust
893 calls to get_inner_reference.
894 (expand_expr_real_1): Adjust call to get_inner_reference. Remove
895 handling of TYPE_ALIGN_OK.
896 * builtins.c (get_object_alignment_2): Adjust call to
897 get_inner_reference. Remove handling of VIEW_CONVERT_EXPR.
898 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove handling of
899 TYPE_ALIGN_OK.
900 * asan.c (instrument_derefs): Adjust calls to get_inner_reference.
901 * cfgexpand.c (expand_debug_expr): Likewise.
902 * dbxout.c (dbxout_expand_expr): Likewise.
903 * dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref,
904 loc_list_from_tree, fortran_common): Likewise.
905 * fold-const.c (optimize_bit_field_compare,
906 decode_field_reference, fold_unary_loc, fold_comparison,
907 split_address_to_core_and_offset): Likewise.
908 * gimple-laddress.c (execute): Likewise.
909 * gimple-ssa-strength-reduction.c (slsr_process_ref): Likewise.
910 * gimplify.c (gimplify_scan_omp_clauses): Likewise.
911 * hsa-gen.c (gen_hsa_addr): Likewise.
912 * simplifx-rtx.c (delegitimize_mem_from_attrs): Likewise.
913 * tsan.c (instrument_expr): Likewise.
914 * ubsan.c (instrument_bool_enum_load, instrument_object_size): Likewise.
915 * tree.c (verify_type_variant): Remove handling of TYPE_ALIGN_OK.
916 * tree-affine.c (tree_to_aff_combination,
917 get_inner_reference_aff): Adjust calls to get_inner_reference.
918 * tree-data-ref.c (split_constant_offset_1,
919 dr_analyze_innermost): Likewise.
920 * tree-scalar-evolution.c (interpret_rhs_expr): Likewise.
921 * tree-sra.c (ipa_sra_check_caller): Likewise.
922 * tree-ssa-loop-ivopts.c (split_address_cost): Likewise.
923 * tree-ssa-math-opts.c (find_bswap_or_nop_load,
924 bswap_replace): Likewise.
925 * tree-vect-data-refs.c (vect_check_gather,
926 vect_analyze_data_refs): Likewise.
927 * config/mips/mips.c (r10k_safe_mem_expr_p): Likewise.
928 * config/pa/pa.c (pa_emit_move_sequence): Remove handling of
929 TYPE_ALIGN_OK.
930
931 2016-07-11 David Malcolm <dmalcolm@redhat.com>
932
933 * Makefile.in (selftest-valgrind): New phony target.
934 * function-tests.c (selftest::build_cfg): Delete pass instances
935 created by the test.
936 (selftest::convert_to_ssa): Likewise.
937 (selftest::test_expansion_to_rtl): Likewise.
938 * tree-cfg.c (selftest::test_linear_chain): Release dominator
939 vectors.
940 (selftest::test_diamond): Likewise.
941
942 2016-07-11 Richard Biener <rguenther@suse.de>
943
944 PR tree-optimization/71816
945 * tree-ssa-pre.c (compute_avail): Adjust alignment of ref rather
946 than replacing all of its operands.
947
948 2016-07-11 Alan Modra <amodra@gmail.com>
949
950 * config/rs6000/rs6000.md (UNSPEC_DOLOOP): New unspec.
951 (ctr<mode>): Add unspec.
952 (ctr<mode>_internal*): Likewise.
953
954 2016-07-08 James Bowman <james.bowman@ftdichip.com>
955
956 * config/ft32/ft32.c (ft32_elf_encode_section_info): New function.
957 * config/ft32/ft32.h (ASM_OUTPUT_SYMBOL_REF): New function.
958
959 2016-07-08 Vladimir Makarov <vmakarov@redhat.com>
960
961 PR rtl-optimization/71621
962 * lra-constraints.c (process_alt_operands): Check combination of
963 reg class and mode.
964
965 2016-07-08 Jason Merrill <jason@redhat.com>
966 Richard Biener <rguenther@suse.de>
967
968 P0145: Refining Expression Order for C++.
969 * gimplify.c (initial_rhs_predicate_for): New.
970 (gimplfy_modify_expr): Gimplify RHS before LHS.
971
972 2016-07-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
973
974 PR target/71297
975 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
976 Allow standard error handling to take over when a wrong number
977 of arguments is presented to __builtin_vec_ld () or
978 __builtin_vec_st ().
979
980 2016-07-08 Jiong Wang <jiong.wang@arm.com>
981
982 * config/aarch64/aarch64-simd-builtins.def (smax): Remove float
983 variants.
984 (smin): Likewise.
985 (fmax): New entry.
986 (fmin): Likewise.
987 * config/aarch64/arm_neon.h (vmaxnm_f32): Use
988 __builtin_aarch64_fmaxv2sf.
989 (vmaxnmq_f32): Likewise.
990 (vmaxnmq_f64): Likewise.
991 (vminnm_f32): Likewise.
992 (vminnmq_f32): Likewise.
993 (vminnmq_f64): Likewise.
994
995 2016-07-08 Michael Meissner <meissner@linux.vnet.ibm.com>
996
997 PR target/71806
998 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Do not
999 enable -mfloat128-hardware by default.
1000 (ISA_3_0_MASKS_IEEE): New macro to give all of the VSX options
1001 that IEEE 128-bit hardware support needs.
1002 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
1003 -mcpu=power9 -mfloat128, enable -mfloat128-hardware by default.
1004 Use ISA_3_0_MASKS_IEEE as the set of options that IEEE 128-bit
1005 floating point requires.
1006 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
1007 -mfloat128 and -mfloat128-hardware changes.
1008
1009 2016-07-08 Alan Hayward <alan.hayward@arm.com>
1010
1011 PR tree-optimization/71667
1012 * tree-vect-loop.c (vectorizable_live_operation): ignore DEBUG stmts
1013
1014 2016-07-08 Martin Liska <mliska@suse.cz>
1015
1016 PR middle-end/71606
1017 * fold-const.c (fold_convertible_p): As COMPLEX_TYPE
1018 folding produces SAVE_EXPRs, thus return false for the type.
1019
1020 2016-07-07 Martin Liska <mliska@suse.cz>
1021
1022 * file-find.c (remove_prefix): New function.
1023 * file-find.h (remove_prefix): Declare the function.
1024 * gcc-ar.c (main): Skip a folder of the wrapper if
1025 a wrapped binary would point to the same file.
1026
1027 2016-07-07 Jan Hubicka <jh@suse.cz>
1028
1029 * tree-scalar-evolution.c (iv_can_overflow_p): export.
1030 * tree-scalar-evolution.h (iv_can_overflow_p): Declare.
1031 * tree-ssa-loop-ivopts.c (alloc_iv): Use it.
1032
1033 2016-07-07 Ilya Enkovich <ilya.enkovich@intel.com>
1034
1035 PR ipa/71624
1036 * ipa-inline-analysis.c (compute_inline_parameters): Set
1037 local.can_change_signature to false for intrumentation
1038 thunk callees.
1039
1040 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
1041
1042 * config/arm/arm.h (TARGET_USE_MOVT): Check MOVT/MOVW availability
1043 with TARGET_HAVE_MOVT.
1044 (TARGET_HAVE_MOVT): Define.
1045 * config/arm/arm.c (const_ok_for_op): Check MOVT/MOVW
1046 availability with TARGET_HAVE_MOVT.
1047 * config/arm/arm.md (arm_movt): Use TARGET_HAVE_MOVT to check MOVT
1048 availability.
1049 (addsi splitter): Use TARGET_THUMB && TARGET_HAVE_MOVT rather than
1050 TARGET_THUMB2.
1051 (symbol_refs movsi splitter): Remove TARGET_32BIT check.
1052 (arm_movtas_ze): Use TARGET_HAVE_MOVT to check MOVT availability.
1053 * config/arm/constraints.md (define_constraint "j"): Use
1054 TARGET_HAVE_MOVT to check MOVT availability.
1055
1056 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
1057
1058 * config/arm/arm-protos.h: Reindent FL_FOR_* macro definitions.
1059
1060 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
1061
1062 * config/arm/arm-arches.def (armv8-m.base): Define new architecture.
1063 (armv8-m.main): Likewise.
1064 (armv8-m.main+dsp): Likewise.
1065 * config/arm/arm-protos.h (FL_FOR_ARCH8M_BASE): Define.
1066 (FL_FOR_ARCH8M_MAIN): Likewise.
1067 * config/arm/arm-tables.opt: Regenerate.
1068 * config/arm/bpabi.h: Add armv8-m.base, armv8-m.main and
1069 armv8-m.main+dsp to BE8_LINK_SPEC.
1070 * config/arm/arm.h (TARGET_HAVE_LDACQ): Exclude ARMv8-M.
1071 (enum base_architecture): Add BASE_ARCH_8M_BASE and BASE_ARCH_8M_MAIN.
1072 * config/arm/arm.c (arm_arch_name): Increase size to work with ARMv8-M
1073 Baseline and Mainline.
1074 (arm_option_override_internal): Also disable arm_restrict_it when
1075 !arm_arch_notm. Update comment for -munaligned-access to also cover
1076 ARMv8-M Baseline.
1077 (arm_file_start): Increase buffer size for printing architecture name.
1078 * doc/invoke.texi: Document architectures armv8-m.base, armv8-m.main
1079 and armv8-m.main+dsp.
1080 (mno-unaligned-access): Clarify that this is disabled by default for
1081 ARMv8-M Baseline architectures as well.
1082
1083 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
1084
1085 * config/arm/elf.h: Use __ARM_ARCH_ISA_THUMB and __ARM_ARCH_ISA_ARM to
1086 decide whether to prevent some libgcc routines being included for some
1087 multilibs rather than __ARM_ARCH_6M__ and add comment to indicate the
1088 link between this condition and the one in
1089 libgcc/config/arm/lib1func.S.
1090
1091 2016-07-07 Richard Biener <rguenther@suse.de>
1092
1093 * tree-ssa-pre.c: Include alias.h.
1094 (compute_avail): If we have multiple VN_REFERENCEs with the
1095 same hashtable entry adjust that to make it a valid replacement
1096 for all of them with respect to alignment and aliasing
1097 when doing insertion.
1098 * tree-ssa-sccvn.h (vn_reference_operands_for_lookup): Declare.
1099 * tree-ssa-sccvn.c (vn_reference_operands_for_lookup): New function.
1100
1101 2016-07-06 Segher Boessenkool <segher@kernel.crashing.org>
1102
1103 PR target/70098
1104 PR target/71763
1105 * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
1106 *ctr<mode>_internal5, *ctr<mode>_internal6): Add *wi to the output
1107 constraint.
1108
1109 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
1110
1111 * var-tracking.c (struct adjust_mem_data): Make side_effects a vector.
1112 (adjust_mems): Adjust.
1113 (adjust_insn): Likewise.
1114 (prepare_call_arguments): Likewise.
1115
1116 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
1117
1118 * gcse.c (struct ls_expr): Make stores field a vector.
1119 (ldst_entry): Adjust.
1120 (free_ldst_entry): Likewise.
1121 (print_ldst_list): Likewise.
1122 (compute_ld_motion_mems): Likewise.
1123 (update_ld_motion_stores): Likewise.
1124
1125 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
1126
1127 * gcse.c (struct ls_expr): Remove loads field.
1128 (ldst_entry): Adjust.
1129 (free_ldst_entry): Likewise.
1130 (print_ldst_list): Likewise.
1131 (compute_ld_motion_mems): Likewise.
1132
1133 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
1134
1135 * store-motion.c (struct st_expr): Make antic_stores a vector.
1136 (st_expr_entry): Adjust.
1137 (free_st_expr_entry): Likewise.
1138 (print_store_motion_mems): Likewise.
1139 (find_moveable_store): Likewise.
1140 (compute_store_table): Likewise.
1141 (remove_reachable_equiv_notes): Likewise.
1142 (replace_store_insn): Likewise.
1143 (build_store_vectors): Likewise.
1144
1145 2016-07-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1146
1147 * config/arm/driver-arm.c (arm_cpu_table): Add entries for cortex-a32,
1148 cortex-a35, cortex-a53, cortex-a57, cortex-a72, cortex-a73.
1149
1150 2016-07-06 Yuri Rumyantsev <ysrumyan@gmail.com>
1151
1152 PR tree-optimization/71518
1153 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust
1154 misalign also for outer loops with negative step.
1155
1156 2016-07-06 Wilco Dijkstra <wdijkstr@arm.com>
1157
1158 * config/arm/cortex-a53.md: Use final_presence_set for in-order.
1159 (cortex_a53_shift): Add mov_shift.
1160 (cortex_a53_shift_reg): Add new reservation for register shifts.
1161 (cortex_a53_alu): Remove bfm.
1162 (cortex_a53_alu_shift): Add bfm, remove mov_shift.
1163 (cortex_a53_alu_extr): Add new reservation for EXTR.
1164 (bypasses): Improve bypass modelling.
1165
1166 2016-07-06 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
1167
1168 PR target/50739
1169 * config/avr/avr.c (avr_asm_select_section): Strip off
1170 SECTION_DECLARED from flags when calling get_section.
1171
1172 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
1173
1174 * tree-vectorizer.h (vect_memory_access_type): Add
1175 VMAT_INVARIANT, VMAT_CONTIGUOUS_DOWN and VMAT_CONTIGUOUS_REVERSED.
1176 * tree-vect-stmts.c (compare_step_with_zero): New function.
1177 (perm_mask_for_reverse): Move further up file.
1178 (get_group_load_store_type): Stick to VMAT_ELEMENTWISE if the
1179 step is negative.
1180 (get_negative_load_store_type): New function.
1181 (get_load_store_type): Call it. Add an ncopies argument.
1182 (vectorizable_mask_load_store): Update call accordingly and
1183 remove tests for negative steps.
1184 (vectorizable_store, vectorizable_load): Likewise. Handle new
1185 memory_access_types.
1186
1187 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
1188
1189 * tree-vectorizer.h (vect_memory_access_type): New enum.
1190 (_stmt_vec_info): Add a memory_access_type field.
1191 (STMT_VINFO_MEMORY_ACCESS_TYPE): New macro.
1192 (vect_model_store_cost): Take an access type instead of a boolean.
1193 (vect_model_load_cost): Likewise.
1194 * tree-vect-slp.c (vect_analyze_slp_cost_1): Update calls to
1195 vect_model_store_cost and vect_model_load_cost.
1196 * tree-vect-stmts.c (vec_load_store_type): New enum.
1197 (vect_model_store_cost): Take an access type instead of a
1198 store_lanes_p boolean. Simplify tests.
1199 (vect_model_load_cost): Likewise, but for load_lanes_p.
1200 (get_group_load_store_type, get_load_store_type): New functions.
1201 (vectorizable_store): Use get_load_store_type. Record the access
1202 type in STMT_VINFO_MEMORY_ACCESS_TYPE.
1203 (vectorizable_load): Likewise.
1204 (vectorizable_mask_load_store): Likewise. Replace is_store
1205 variable with vls_type.
1206
1207 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
1208
1209 * tree-vectorizer.h (vect_grouped_load_supported): Add a
1210 single_element_p parameter.
1211 * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
1212 Check the PR65518 case here rather than in vectorizable_load.
1213 * tree-vect-loop.c (vect_analyze_loop_2): Update call accordignly.
1214 * tree-vect-stmts.c (vectorizable_load): Likewise.
1215
1216 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
1217
1218 * tree-vectorizer.h (gather_scatter_info): New structure.
1219 (vect_check_gather_scatter): Return a bool rather than a decl.
1220 Replace return-by-pointer arguments with a single
1221 gather_scatter_info *.
1222 * tree-vect-data-refs.c (vect_check_gather_scatter): Likewise.
1223 (vect_analyze_data_refs): Update call accordingly.
1224 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
1225 (vectorizable_mask_load_store): Likewise. Also record the
1226 offset dt and vectype in the gather_scatter_info.
1227 (vectorizable_store): Likewise.
1228 (vectorizable_load): Likewise.
1229
1230 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
1231
1232 * tree-vect-stmts.c (vect_model_store_cost): For non-SLP
1233 strided groups, use the cost of N scalar accesses instead
1234 of ncopies vector accesses.
1235 (vect_model_load_cost): Likewise.
1236
1237 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
1238
1239 * tree-vect-stmts.c (vect_cost_group_size): Delete.
1240 (vect_model_store_cost): Avoid calling it. Use first_stmt_p
1241 variable to indicate when once-per-group costs are being used.
1242 (vect_model_load_cost): Likewise. Fix comment and misindented code.
1243
1244 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
1245
1246 * tree-vect-stmts.c (vectorizable_load): Remove unnecessary
1247 peeling-for-gaps condition.
1248
1249 2016-07-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1250
1251 * config/s390/s390.c (s390_expand_vec_init): Force initializer
1252 element to register if it doesn't match general_operand.
1253
1254 2016-07-05 Michael Meissner <meissner@linux.vnet.ibm.com>
1255 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1256
1257 * config/rs6000/rs6000-protos.h (rs6000_split_signbit): New
1258 prototype.
1259 * config/rs6000/rs6000.c (rs6000_split_signbit): New function.
1260 * config/rs6000/rs6000.md (UNSPEC_SIGNBIT): New constant.
1261 (SIGNBIT): New mode iterator.
1262 (Fsignbit): New mode attribute.
1263 (signbit<mode>2): Change operand1 to match FLOAT128 instead of
1264 IBM128; dispatch to gen_signbit{kf,tf}2_dm for __float128
1265 when direct moves are available.
1266 (signbit<mode>2_dm): New define_insn_and_split).
1267 (signbit<mode>2_dm2): New define_insn.
1268
1269 2016-07-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1270
1271 PR rtl-optimization/71594
1272 * ifcvt.c (noce_convert_multiple_sets): Wrap new_val or old_val
1273 into subregs of appropriate mode before trying to emit a conditional
1274 move.
1275
1276 2016-07-05 Jan Hubicka <jh@suse.cz>
1277
1278 * tree-scalar-evolution.c (iv_can_overflow_p): New function.
1279 (simple_iv): Use it.
1280
1281 2016-07-05 Jan Hubicka <jh@suse.cz>
1282
1283 * tree-ssa-loop-niter.c (nowrap_type_p): Use ANY_INTEGRAL_TYPE_P.
1284
1285 2016-07-05 Jiong Wang <jiong.wang@arm.com>
1286
1287 * lra-constraints.c (process_alt_operands): Don't add spilling cost for
1288 "offmemok".
1289
1290 2016-07-05 Jan Hubicka <jh@suse.cz>
1291
1292 * tree-scalar-evoluiton.c (simple_iv): Use nowrap_type to check if
1293 IV can overflow.
1294
1295 2016-07-05 Richard Biener <rguenther@suse.de>
1296
1297 * gimple-ssa-split-paths.c (find_block_to_duplicate_for_splitting_pa):
1298 Handle empty else block.
1299 (is_feasible_trace): Likewise.
1300 (split_paths): Likewise.
1301
1302 2016-07-05 Richard Biener <rguenther@suse.de>
1303
1304 * tree-loop-distribution.c (distribute_loop): Fix issue with
1305 the cost model loop.
1306
1307 2016-07-05 Christophe Lyon <christophe.lyon@linaro.org>
1308
1309 * config/arm/neon-testgen.ml: Delete.
1310 * config/arm/neon.ml: Delete.
1311
1312 2016-07-04 Jakub Jelinek <jakub@redhat.com>
1313
1314 PR c++/71739
1315 * tree.c (attribute_value_equal): Use get_attribute_name instead of
1316 directly using TREE_PURPOSE.
1317
1318 2016-07-04 Jiong Wang <jiong.wang@arm.com>
1319
1320 * config/aarch64/aarch64.h: Rename "ARMv8.1" to "ARMv8.1-A".
1321 * config/aarch64/aarch64_neon.h: Likewise.
1322 * config/aarch64/arm_neon.h: Likewise.
1323 * config/aarch64/atomics.md: Likewise.
1324 * config/aarch64/aarch64-simd-builtins.def: Likewise.
1325 * doc/invoke.texi: Likewise.
1326
1327 2016-07-04 Dominik Vogt <vogt@linux.vnet.ibm.com>
1328
1329 * config/s390/s390.md: Add "z13" cpu_facility.
1330 ("*mov<mode>cc"): Add support for z13 instructions lochi and locghi.
1331 * config/s390/predicates.md ("loc_operand"): New predicate for "load on
1332 condition" type instructions.
1333
1334 2016-07-04 Dominik Vogt <vogt@linux.vnet.ibm.com>
1335 Jeff Law <law@redhat.com>
1336
1337 * explow.c (allocate_dynamic_stack_space): Simplify knowing that
1338 MUST_ALIGN was always true and extra_align ist always BITS_PER_UNIT.
1339
1340 2016-07-04 Yuri Rumyantsev <ysrumyan@gmail.com>
1341
1342 * config/i386/i386.c (ix86_expand_vec_perm): Add handle one-operand
1343 permutation for TARGET_AVX512F.
1344 (ix86_expand_vec_one_operand_perm_avx512): New function.
1345 (expand_vec_perm_1): Invoke introduced function.
1346 * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since
1347 it may be not valid after vectorization.
1348
1349 2016-07-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1350
1351 PR target/63874
1352 * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix
1353 typo in comment. Only force to memory if it is a weak
1354 external reference.
1355
1356 2016-07-04 Matthew Wahab <matthew.wahab@arm.com>
1357 Jiong Wang <jiong.wang@arm.com>
1358
1359 * config/aarch64/aarch64-arches.def: Add "armv8.2-a".
1360 * config/aarch64/aarch64.h (AARCH64_FL_V8_2): New.
1361 (AARCH64_FL_F16): New.
1362 (AARCH64_FL_FOR_ARCH8_2): New.
1363 (AARCH64_ISA_8_2): New.
1364 (AARCH64_ISA_F16): New.
1365 (TARGET_FP_F16INST): New.
1366 (TARGET_SIMD_F16INST): New.
1367 * config/aarch64/aarch64-option-extensions.def ("fp16"): New entry.
1368 ("fp"): Disabling "fp" also disables "fp16".
1369 * config/aarch64/aarch64-c.c (arch64_update_cpp_builtins):
1370 Conditionally define __ARM_FEATURE_FP16_SCALAR_ARITHMETIC
1371 and __ARM_FEATURE_FP16_VECTOR_ARITHMETIC.
1372 * doc/invoke.texi (AArch64 Options): Document "armv8.2-a" and "fp16".
1373
1374 2016-07-04 Jan Beulich <jbeulich@suse.com>
1375
1376 * gcc.c (default_compilers["@c-header"]): Conditionalize "-o".
1377
1378 2016-07-01 Michael Meissner <meissner@linux.vnet.ibm.com>
1379
1380 PR target/71720
1381 * config/rs6000/vsx.md (vsx_splat_v4sf_internal): When splitting
1382 the insns, use an insn form that does not adjust the offset on
1383 little endian systems.
1384
1385 2016-07-01 Jan Beulich <jbeulich@suse.com>
1386
1387 * varasm.c (get_variable_section): Validate initializer in
1388 named .bss-like sections.
1389
1390 2016-07-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
1391
1392 * config/rs6000/altivec.md (*altivec_vpermr_<mode>_internal):
1393 Exchange the order of the second and third operands in the vpermr
1394 instruction tmeplate.
1395
1396 2016-07-01 Peter Bergner <bergner@vnet.ibm.com>
1397
1398 PR target/71698
1399 * config/rs6000/rs6000.c (rs6000_secondary_reload_simple_move):
1400 Disallow TDmode values.
1401
1402 2016-07-01 Alan Modra <amodra@gmail.com>
1403
1404 PR rtl-optimization/71709
1405 * ira-lives.c (find_call_crossed_cheap_reg): Exit loop on arg reg
1406 being set, not referenced.
1407
1408 2016-07-01 Yuri Rumyantsev <ysrumyan@gmail.com>
1409
1410 PR tree-optimization/70729
1411 * tree-vectorizer.c (adjust_simduid_builtins): Nullify safelen field
1412 of loop since it can be not valid after transformation.
1413
1414 2016-07-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1415
1416 * config/arm/arm.c (thumb_reload_in_hi): Delete.
1417 * config/arm/arm-protos.h (thumb_reload_in_hi): Delete prototype.
1418
1419 2016-07-01 Eric Botcazou <ebotcazou@adacore.com>
1420
1421 * config/arm/arm.c (arm_function_ok_for_sibcall): Add another check
1422 for NULL decl.
1423
1424 2016-06-30 Michael Meissner <meissner@linux.vnet.ibm.com>
1425
1426 PR target/71677
1427 * config/rs6000/constraints.md (wY constraint): New constraint to
1428 match the requirements for the LXSD and STXSD instructions.
1429 * config/rs6000/predicates.md (offsettable_mem_14bit_operand): New
1430 predicate to match the requirements for the LXSD and STXSD
1431 instructions.
1432 * config/rs6000/rs6000.md (mov<mode>_hardfloat32, FMOVE64 case):
1433 Use constaint wY for LXSD/STXSD instructions instead of 'o' or 'Y'
1434 to make sure that the bottom 2 bits of offset are 0, the address
1435 form is offsettable, and no updating is done in the address mode.
1436 (mov<mode>_hardfloat64, FMOVE64 case): Likewise.
1437 (movdi_internal32): Likewise
1438 (movdi_internal64): Likewise.
1439
1440 2016-06-30 Jakub Jelinek <jakub@redhat.com>
1441
1442 PR tree-optimization/71707
1443 * tree-ssa-strlen.c (get_stridx_plus_constant): Handle already present
1444 strinfo even for ADDR_EXPR ptr.
1445
1446 2016-06-30 Kelvin Nilsen <kelvin@gcc.gnu.org>
1447
1448 * config/rs6000/altivec.md (darn_32): Change the condition to
1449 TARGET_P9_MISC instead of TARGET_MODULO.
1450 (darn_raw): Replace TARGET_MODULO with TARGET_P9_MISC in the
1451 condition expression.
1452 (darn): Replace TARGET_MODULO with TARGET_P9_MISC in the
1453 condition expression.
1454 * config/rs6000/dfp.md (UNSPEC_DTSTSFI): New unspec constant.
1455 (DFP_TEST): New code iterator.
1456 (dfptstsfi_<code>_mode>): New define_expand.
1457 (*dfp_sgnfcnc_<mode>): New define_insn.
1458 * config/rs6000/rs6000-builtin.def (BU_P9_MISC_0): Move this macro
1459 definition next to BU_P9_MISC_1 definition and change the MASK
1460 value to RS6000_BTM_P9_MISC.
1461 (BU_P9_MISC_1): Change the MASK value to RS6000_BTM_P9_MISC.
1462 (BU_P9_64BIT_MISC_0): Likewise.
1463 (BU_P9_DFP_MISC_0): New macro definition.
1464 (BU_P9_DFP_MISC_1): New macro definition.
1465 (BU_P9_DFP_MISC_2): New macro definition.
1466 (BU_P9_DFP_OVERLOAD_1): New macro definition.
1467 (BU_P9_DFP_OVERLOAD_2): New macro definition.
1468 (BU_P9_DFP_OVERLOAD_3): New macro definition.
1469 (TSTSFI_LT_DD): New BU_P9_DFP_MISC_2.
1470 (TSTSFI_LT_TD): Likewise.
1471 (TSTSFI_EQ_DD): Likewise.
1472 (TSTSFI_EQ_TD): Likewise.
1473 (TSTSFI_GT_DD): Likewise.
1474 (TSTSFI_GT_TD): Likewise.
1475 (TSTSFI_OV_DD): Likewise.
1476 (TSTSFI_OV_TD): Likewise.
1477 (TSTSFI_LT): New BU_P9_DFP_OVERLOAD_2.
1478 (TSTSFI_LT_DD): Likewise.
1479 (TSTSFI_LT_TD): Likewise.
1480 (TSTSFI_EQ): Likewise.
1481 (TSTSFI_EQ_DD): Likewise.
1482 (TSTSFI_EQ_TD): Likewise.
1483 (TSTSFI_GT): Likewise.
1484 (TSTSFI_GT_DD): Likewise.
1485 (TSTSFI_GT_TD): Likewise.
1486 (TSTSFI_OV): Likewise.
1487 (TSTSFI_OV_DD): Likewise.
1488 (TSTSFI_OV_TD): Likewise.
1489 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
1490 overloaded test significance functions.
1491 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
1492 OPTION_MASK_P9_MISC into the representation of this mask.
1493 (POWERPC_MASKS): Add OPTION_MASK_P9_MISC into the representation
1494 of this mask.
1495 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Set the
1496 RS6000_BTM_P9_MISC flag in the return value if TARGET_P9_MISC is
1497 non-zero.
1498 (rs6000_expand_binop_builtin): Enforce that argument 0 of the exp
1499 argument is a 6-bit unsigned literal value if the icode argument
1500 represents a DFP test significance built-in call.
1501 (rs6000_invalid_builtin): Add support for the RS6000_BTM_P9_MISC
1502 flag used independently and in combination with the
1503 RS6000_BTM_64BIT flag.
1504 (rs6000_opt_masks): Add entry for power9-misc command-line option.
1505 (rs6000_builtin_mask_names): Add entry for power9-misc
1506 command-line option.
1507 * config/rs6000/rs6000.h: Redefine TARGET_P9_MISC as 0 if
1508 HAVE_AS_POWER9 is not a defined macro. Define MASK_P9_MISC and
1509 RS6000_BTM_P9_MISC macros.
1510 * config/rs6000/rs6000.opt: Add support for the -mpower9-misc
1511 option and change the description of the -mpower9-vector option to
1512 enable only vector instructions, removing its erroneously claimed
1513 support for scalar instructions.
1514 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
1515 the ISA 3.0 digital floating point test significance built-in
1516 functions.
1517
1518 2016-06-30 Wilco Dijkstra <wdijkstr@arm.com>
1519
1520 * config/aarch64/aarch64.c (cortexa35_tunings):
1521 Enable AES fusion. Use cortexa57_branch_cost.
1522 (cortexa53_tunings): Use cortexa57_branch_cost.
1523 (cortexa72_tunings): Use cortexa57_branch_cost.
1524 Use AUTOPREFETCHER_WEAK.
1525 (cortexa73_tunings): Use cortexa57_branch_cost.
1526
1527 2016-06-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1528 James Greenhalgh <james.greenhalgh@arm.com>
1529
1530 * config/aarch64/arm_neon.h (vcopyq_lane_f32, vcopyq_lane_f64,
1531 vcopyq_lane_p8, vcopyq_lane_p16, vcopyq_lane_s8, vcopyq_lane_s16,
1532 vcopyq_lane_s32, vcopyq_lane_s64, vcopyq_lane_u8, vcopyq_lane_u16,
1533 vcopyq_lane_u32, vcopyq_lane_u64): Reimplement in C.
1534 (vcopy_lane_f32, vcopy_lane_f64, vcopy_lane_p8, vcopy_lane_p16,
1535 vcopy_lane_s8, vcopy_lane_s16, vcopy_lane_s32, vcopy_lane_s64,
1536 vcopy_lane_u8, vcopy_lane_u16, vcopy_lane_u32, vcopy_lane_u64,
1537 vcopy_laneq_f32, vcopy_laneq_f64, vcopy_laneq_p8, vcopy_laneq_p16,
1538 vcopy_laneq_s8, vcopy_laneq_s16, vcopy_laneq_s32, vcopy_laneq_s64,
1539 vcopy_laneq_u8, vcopy_laneq_u16, vcopy_laneq_u32, vcopy_laneq_u64,
1540 vcopyq_laneq_f32, vcopyq_laneq_f64, vcopyq_laneq_p8, vcopyq_laneq_p16,
1541 vcopyq_laneq_s8, vcopyq_laneq_s16, vcopyq_laneq_s32, vcopyq_laneq_s64,
1542 vcopyq_laneq_u8, vcopyq_laneq_u16, vcopyq_laneq_u32, vcopyq_laneq_u64):
1543 New intrinsics.
1544
1545 2016-06-30 James Greenhalgh <james.greenhalgh@arm.com>
1546 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1547
1548 * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>):
1549 New define_insn.
1550 (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise.
1551
1552 2016-06-30 David Malcolm <dmalcolm@redhat.com>
1553
1554 PR driver/71651
1555 * gcc.c (driver::build_option_suggestions): Pass "option" to
1556 add_misspelling_candidates.
1557 * opts-common.c (add_misspelling_candidates): Add "option" param;
1558 use it to avoid adding negated forms for options marked with
1559 RejectNegative.
1560 * opts.h (add_misspelling_candidates): Add "option" param.
1561
1562 2016-06-30 Jakub Jelinek <jakub@redhat.com>
1563
1564 PR middle-end/71693
1565 * fold-const.c (fold_binary_loc) <case RROTATE_EXPR>: Cast
1566 TREE_OPERAND (arg0, 0) and TREE_OPERAND (arg0, 1) to type
1567 first when permuting bitwise operation with rotate. Cast
1568 TREE_OPERAND (arg0, 0) to type when cancelling two rotations.
1569
1570 2016-06-29 David Malcolm <dmalcolm@redhat.com>
1571
1572 * opts.c (handle_param): Use find_param_fuzzy to offer suggestions
1573 for misspelled param names.
1574 * params.c: Include spellcheck.h.
1575 (find_param_fuzzy): New function.
1576 * params.h (find_param_fuzzy): New prototype.
1577 * spellcheck.c (struct edit_distance_traits<const char *>): Move to...
1578 * spellcheck.h (struct edit_distance_traits<const char *>):
1579 ...here.
1580
1581 2016-06-29 Michael Meissner <meissner@linux.vnet.ibm.com>
1582
1583 * config/rs6000/predicates.md (const_0_to_7_operand): New
1584 predicate, recognize 0..7.
1585 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
1586 support for doing extracts from V16QImode, V8HImode, V4SImode
1587 under ISA 3.0.
1588 * config/rs6000/vsx.md (VSX_EXTRACT_I): Mode iterator for ISA 3.0
1589 vector extract support.
1590 (VSX_EXTRACT_PREDICATE): Mode attribute to validate element number
1591 for ISA 3.0 vector extract.
1592 (VSX_EX): Constraints to use for ISA 3.0 vector extract.
1593 (vsx_extract_<mode>, VSX_EXTRACT_I): Add support for doing
1594 extracts of a constant element number from small integer vectors
1595 on 64-bit ISA 3.0 systems.
1596 (vsx_extract_<mode>_di): Likewise.
1597 * config/rs6000/rs6000.h (TARGET_VEXTRACTUB): New target macro to
1598 say when we can do ISA 3.0 vector extracts.
1599 * config/rs6000/rs6000.md (stfiwx): Allow DImode in Altivec
1600 registers, using the stxsiwx instruction.
1601
1602 2016-06-29 Jim Wilson <jim.wilson@linaro.org>
1603
1604 * config/aarch64/aarch64-cores.def (qdf24xx): Use qdf24xx tuning.
1605 * config/aarch64/aarch64.c (qdf24xx_addrcost_table,
1606 qdf24xx_regmove_cost, qdf24xx_tunings): New.
1607 * config/arm/aarch64-cost-tables.h (qdf24xx_extra_costs): New.
1608 * config/arm/arm-cores.def (qdf24xx): Use qdf24xx tuning.
1609 * config/arm/arm.c (arm_qdf24xx_tune): New.
1610
1611 2016-06-29 Wilco Dijkstra <wdijkstr@arm.com>
1612
1613 * config/aarch64/aarch64.c (cortexa53_tunings):
1614 Increase loop alignment to 8. Set function alignment to 16.
1615 (cortexa35_tunings): Likewise.
1616 (cortexa57_tunings): Increase loop alignment to 8.
1617 (cortexa72_tunings): Likewise.
1618 (cortexa73_tunings): Likewise.
1619
1620 2016-06-29 Matthew Wahab <matthew.wahab@arm.com>
1621
1622 * doc/sourcebuild.texi (Effective-Target keywords): Add entries
1623 for arm_fp16_ok and arm_fp16_hw.
1624 (Add Options): Add entries for arm_fp16, arm_fp16_ieee and
1625 arm_fp16_alternative.
1626
1627 2016-06-29 Ilya Enkovich <ilya.enkovich@intel.com>
1628
1629 PR tree-optimization/71655
1630 * tree-vect-stmts.c (vectorizable_comparison): Swap definition
1631 types when swapping operands.
1632
1633 2016-06-29 Martin Liska <mliska@suse.cz>
1634
1635 PR middle-end/71585
1636 * common.opt (flag_stack_protect): Mark the flag as optimization flag.
1637 * ipa-inline-transform.c (inline_call): Remove unnecessary call
1638 of build_optimization_node.
1639
1640 2016-06-29 Yuri Rumyantsev <ysrumyan@gmail.com>
1641
1642 PR tree-optimization/70729
1643 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Consider memory reference as
1644 independent in loops having positive safelen value.
1645 * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since
1646 it may be not valid after vectorization.
1647
1648 2016-06-29 Jakub Jelinek <jakub@redhat.com>
1649
1650 PR tree-optimization/71625
1651 * tree-ssa-strlen.c (get_addr_stridx): Add PTR argument. Assume list
1652 is sorted by ascending list->offset. If PTR is non-NULL and there is
1653 previous strinfo, call get_stridx_plus_constant.
1654 (get_stridx): Pass exp as second argument to get_addr_stridx.
1655 (addr_stridxptr): Add missing list = list->next, so that there can be
1656 more than one entries in the list. Bump limit from 16 to 32. Ensure
1657 the list is sorted by ascending list->offset.
1658 (get_stridx_plus_constant): Adjust so that it can be also called with
1659 ADDR_EXPR instead of SSA_NAME as PTR.
1660 (handle_char_store): Pass NULL_TREE as second argument to
1661 get_addr_stridx.
1662
1663 2016-06-29 Richard Biener <rguenther@suse.de>
1664
1665 PR rtl-optimization/68961
1666 * simplify-rtx.c (simplify_subreg): Handle VEC_CONCAT like CONCAT.
1667
1668 2016-06-29 Richard Biener <rguenther@suse.de>
1669
1670 PR middle-end/71002
1671 * alias.c (component_uses_parent_alias_set_from): Handle
1672 type punning through union accesses by using the union alias set.
1673 * gimple.c (gimple_get_alias_set): Remove union type punning case.
1674
1675 2016-07-29 Richard Biener <rguenther@suse.de>
1676
1677 * match.pd ((T)(T2)x -> (T)x): Remove restriction on final
1678 precision not matching mode precision.
1679
1680 2016-06-28 John David Anglin <danglin@gcc.gnu.org>
1681
1682 * config/pa/pa.md (call_symref_64bit_post_reload): Don't call
1683 pa_output_arg_descriptor.
1684 (call_val_symref_64bit_post_reload): Likewise.
1685 (call_val_powf_64bit_post_reload): Likewise.
1686 (sibcall_internal_symref_64bit): Likewise.
1687 (sibcall_value_internal_symref_64bit): Likewise.
1688
1689 2016-06-28 Jakub Jelinek <jakub@redhat.com>
1690
1691 PR middle-end/71626
1692 * config/i386/i386.c (ix86_expand_vector_move): For SUBREG of
1693 a constant, force its SUBREG_REG into memory or register instead
1694 of whole op1.
1695
1696 2016-06-28 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
1697
1698 PR target/58655
1699 * config/avr/avr.opt (-mfract-convert-truncate): Update description.
1700 * doc/invoke.texi (AVR Options): Document it.
1701
1702 2016-06-28 Walter Lee <walt@tilera.com>
1703
1704 * config/tilegx/linux.h: Do not include arch/icache.h
1705 (CLEAR_INSN_CACHE): Provide inlined definition directly.
1706 * config/tilepro/linux.h: Do not include arch/icache.h
1707 (CLEAR_INSN_CACHE): Provide inlined definition directly.
1708
1709 2016-06-28 Wilco Dijkstra <wdijkstr@arm.com>
1710
1711 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adjust bitnumbering
1712 for big-endian BIT_FIELD_REF.
1713
1714 2016-06-28 Pat Haugen <pthaugen@us.ibm.com>
1715
1716 * config/rs6000/rs6000.md ('type' attribute): Add htmsimple/dfp types.
1717 ('size' attribute): Add '128'.
1718 Include power9.md.
1719 (*mov<mode>_hardfloat32, *mov<mode>_hardfloat64, *movdi_internal32,
1720 *movdi_internal64, *movdf_update1): Set size attribute to '64'.
1721 (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3, sqrt<mode>2,
1722 copysign<mode>3, neg<mode>2_hw, abs<mode>2_hw, *nabs<mode>2_hw,
1723 *fma<mode>4_hw, *fms<mode>4_hw, *nfma<mode>4_hw, *nfms<mode>4_hw,
1724 extend<SFDF:mode><IEEE128:mode>2_hw, trunc<mode>df2_hw,
1725 *xscvqp<su>wz_<mode>, *xscvqp<su>dz_<mode>, *xscv<su>dqp_<mode>,
1726 *trunc<mode>df2_odd): Set size attribute to '128'.
1727 (*cmp<mode>_hw): Change type to veccmp and set size attribute to '128'.
1728 * config/rs6000/power6.md (power6-fp): Include dfp type.
1729 * config/rs6000/power7.md (power7-fp): Likewise.
1730 * config/rs6000/power8.md (power8-fp): Likewise.
1731 * config/rs6000/power9.md: New file.
1732 * config/rs6000/t-rs6000 (MD_INCLUDES): Add power9.md.
1733 * config/rs6000/htm.md (*tabort, *tabort<wd>c, *tabort<wd>ci,
1734 *trechkpt, *treclaim, *tsr, *ttest): Change type attribute to
1735 htmsimple.
1736 * config/rs6000/dfp.md (extendsddd2, truncddsd2, extendddtd2,
1737 trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
1738 divtd3, *cmpdd_internal1, *cmptd_internal1, floatdidd2, floatditd2,
1739 ftruncdd2, fixdddi2, ftrunctd2, fixtddi2, dfp_ddedpd_<mode>,
1740 dfp_denbcd_<mode>, dfp_dxex_<mode>, dfp_diex_<mode>, dfp_dscli_<mode>,
1741 dfp_dscri_<mode>): Change type attribute to dfp.
1742 * config/rs6000/crypto.md (crypto_vshasigma<CR_char>): Change type
1743 attribute to vecsimple.
1744 * config/rs6000/rs6000.c (power9_cost): Update costs, cache size
1745 and prefetch streams.
1746 (rs6000_option_override_internal): Remove temporary code setting
1747 tuning to power8. Don't set rs6000_sched_groups for power9.
1748 (last_scheduled_insn): Change to rtx_insn *.
1749 (divide_cnt, vec_load_pendulum): New variables.
1750 (rs6000_adjust_cost): Add Power9 to test for store->load separation.
1751 (rs6000_issue_rate): Set issue rate for Power9.
1752 (is_power9_pairable_vec_type): New.
1753 (power9_sched_reorder2): New.
1754 (rs6000_sched_reorder2): Call new function for Power9 specific
1755 reordering.
1756 (insn_must_be_first_in_group): Remove Power9.
1757 (insn_must_be_last_in_group): Likewise.
1758 (force_new_group): Likewise.
1759 (rs6000_sched_init): Fix initialization of last_scheduled_insn.
1760 Initialize divide_cnt/vec_load_pendulum.
1761 (_rs6000_sched_context, rs6000_init_sched_context,
1762 rs6000_set_sched_context): Handle context save/restore of new
1763 variables.
1764
1765 2016-06-28 Richard Biener <rguenther@suse.de>
1766
1767 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
1768 Properly handle DECL_BIT_FIELD_REPRESENTATIVE occuring as
1769 COMPONENT_REF operand.
1770 (nonoverlapping_component_refs_p): Likewise.
1771 * stor-layout.c (start_bitfield_representative): Mark
1772 DECL_BIT_FIELD_REPRESENTATIVE as DECL_NONADDRESSABLE_P.
1773
1774 2016-06-28 Jakub Jelinek <jakub@redhat.com>
1775
1776 * Makefile.in: Don't cat ../stage_current if it does not exist.
1777
1778 * doc/extend.texi (__builtin_add_overflow_p): Clarify behavior when
1779 last argument is a bit-field.
1780
1781 PR rtl-optimization/71673
1782 * internal-fn.c (expand_arith_overflow_result_store): Use
1783 OPTAB_LIB_WIDEN instead of OPTAB_DIRECT as last argument to
1784 expand_simple_binop.
1785
1786 PR middle-end/66867
1787 * builtins.c (expand_ifn_atomic_compare_exchange_into_call,
1788 expand_ifn_atomic_compare_exchange): New functions.
1789 * internal-fn.c (expand_ATOMIC_COMPARE_EXCHANGE): New function.
1790 * tree.h (build_call_expr_internal_loc): Rename to ...
1791 (build_call_expr_internal_loc_array): ... this. Fix up type of
1792 last argument.
1793 * internal-fn.def (ATOMIC_COMPARE_EXCHANGE): New internal fn.
1794 * predict.c (expr_expected_value_1): Handle IMAGPART_EXPR of
1795 ATOMIC_COMPARE_EXCHANGE result.
1796 * builtins.h (expand_ifn_atomic_compare_exchange): New prototype.
1797 * gimple-fold.h (optimize_atomic_compare_exchange_p,
1798 fold_builtin_atomic_compare_exchange): New prototypes.
1799 * gimple-fold.c (optimize_atomic_compare_exchange_p,
1800 fold_builtin_atomic_compare_exchange): New functions..
1801 * tree-ssa.c (execute_update_addresses_taken): If
1802 optimize_atomic_compare_exchange_p, ignore &var in 2nd argument
1803 of call when finding addressable vars, and if such var becomes
1804 non-addressable, call fold_builtin_atomic_compare_exchange.
1805
1806 2016-06-27 Segher Boessenkool <segher@kernel.crashing.org>
1807
1808 PR target/71670
1809 * config/rs6000/rs6000.md (ashdi3_extswsli_dot): Use
1810 gen_ashdi3_extswsli_dot2 instead of gen_ashdi3_extswsli_dot.
1811
1812 2016-06-27 Pat Haugen <pthaugen@us.ibm.com>
1813
1814 * config/rs6000/rs6000.md ('type' attribute): Add
1815 veclogical,veccmpfx,vecexts,vecmove insn types.
1816 (*abs<mode>2_fpr, *nabs<mode>2_fpr, *neg<mode>2_fpr, *extendsfdf2_fpr,
1817 copysign<mode>3_fcpsgn, trunc<mode>df2_internal1, neg<mode>2_internal,
1818 p8_fmrgow_<mode>, pack<mode>): Change type to fpsimple.
1819 (*xxsel<mode>, copysign<mode>3_hard, neg<mode>2_hw, abs<mode>2_hw,
1820 *nabs<mode>2_hw): Change type to vecmove.
1821 (*and<mode>3_internal, *bool<mode>3_internal, *boolc<mode>3_internal,
1822 *boolcc<mode>3_internal, *eqv<mode>3_internal,
1823 *one_cmpl<mode>3_internal, *ieee_128bit_vsx_neg<mode>2_internal,
1824 *ieee_128bit_vsx_abs<mode>2_internal,
1825 *ieee_128bit_vsx_nabs<mode>2_internal, extendkftf2, trunctfkf2,
1826 *ieee128_mfvsrd_64bit, *ieee128_mfvsrd_32bit, *ieee128_mtvsrd_64bit,
1827 *ieee128_mtvsrd_32bit): Change type to veclogical.
1828 (mov<mode>_hardfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
1829 *movdi_internal32, *movdi_internal64): Update insn types.
1830 * config/rs6000/vsx.md (*vsx_le_undo_permute_<mode>,
1831 vsx_extract_<mode>): Change type to veclogical.
1832 (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns): Change type to vecmove.
1833 (vsx_sign_extend_qi_<mode>, *vsx_sign_extend_hi_<mode>,
1834 *vsx_sign_extend_si_v2di): Change type to vecexts.
1835 * config/rs6000/altivec.md (*altivec_mov<mode>, *altivec_movti): Change
1836 type to veclogical.
1837 (*altivec_eq<mode>, *altivec_gt<mode>, *altivec_gtu<mode>,
1838 *altivec_vcmpequ<VI_char>_p, *altivec_vcmpgts<VI_char>_p,
1839 *altivec_vcmpgtu<VI_char>_p): Change type to veccmpfx.
1840 (*altivec_vsel<mode>, *altivec_vsel<mode>_uns): Change type to vecmove.
1841 * config/rs6000/dfp.md (*negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
1842 negtd2, *abstd2_fpr, *nabstd2_fpr): Change type to fpsimple.
1843 * config/rs6000/40x.md (ppc405-float): Add fpsimple.
1844 * config/rs6000/440.md (ppc440-fp): Add fpsimple.
1845 * config/rs6000/476.md (ppc476-fp): Add fpsimple.
1846 * config/rs6000/601.md (ppc601-fp): Add fpsimple.
1847 * config/rs6000/603.md (ppc603-fp): Add fpsimple.
1848 * config/rs6000/6xx.md (ppc604-fp): Add fpsimple.
1849 * config/rs6000/7xx.md (ppc750-fp): Add fpsimple.
1850 (ppc7400-vecsimple): Add veclogical, vecmove, veccmpfx.
1851 * config/rs6000/7450.md (ppc7450-fp): Add fpsimple.
1852 (ppc7450-vecsimple): Add veclogical, vecmove.
1853 (ppc7450-veccmp): Add veccmpfx.
1854 * config/rs6000/8540.md (ppc8540_simple_vector): Add veclogical,
1855 vecmove.
1856 (ppc8540_vector_compare): Add veccmpfx.
1857 * config/rs6000/a2.md (ppca2-fp): Add fpsimple.
1858 * config/rs6000/cell.md (cell-fp): Add fpsimple.
1859 (cell-vecsimple): Add veclogical, vecmove.
1860 (cell-veccmp): Add veccmpfx.
1861 * config/rs6000/e300c2c3.md (ppce300c3_fp): Add fpsimple.
1862 * config/rs6000/e6500.md (e6500_vecsimple): Add veclogical, vecmove,
1863 veccmpfx.
1864 * config/rs6000/mpc.md (mpccore-fp): Add fpsimple.
1865 * config/rs6000/power4.md (power4-fp): Add fpsimple.
1866 (power4-vecsimple): Add veclogical, vecmove.
1867 (power4-veccmp): Add veccmpfx.
1868 * config/rs6000/power5.md (power5-fp): Add fpsimple.
1869 * config/rs6000/power6.md (power6-fp): Add fpsimple.
1870 (power6-vecsimple): Add veclogical, vecmove.
1871 (power6-veccmp): Add veccmpfx.
1872 * config/rs6000/power7.md (power7-fp): Add fpsimple.
1873 (power7-vecsimple): Add veclogical, vecmove, veccmpfx.
1874 * config/rs6000/power8.md (power8-fp): Add fpsimple.
1875 (power8-vecsimple): Add veclogical, vecmove, veccmpfx.
1876 * config/rs6000/rs64.md (rs64a-fp): Add fpsimple.
1877 * config/rs6000/titan.md (titan_fp): Add fpsimple.
1878 * config/rs6000/xfpu.md (fp-default, fp-addsub-s, fp-addsub-d): Add
1879 fpsimple.
1880 * config/rs6000/rs6000.c (rs6000_adjust_cost): Add TYPE_FPSIMPLE.
1881
1882 2016-06-27 Peter Bergner <bergner@vnet.ibm.com>
1883
1884 PR target/71656
1885 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
1886 OPTION_MASK_P9_DFORM_VECTOR.
1887 * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
1888 disable -mpower9-dform-vector when using reload.
1889 (quad_address_p): Remove 'gpr_p' argument and all associated code.
1890 New 'strict' argument. Update all callers. Add strict addressing
1891 support.
1892 (rs6000_legitimate_offset_address_p): Remove call to
1893 virtual_stack_registers_memory_p.
1894 (rs6000_legitimize_reload_address): Add quad address support.
1895 (rs6000_legitimate_address_p): Move call to quad_address_p above
1896 call to virtual_stack_registers_memory_p. Adjust quad_address_p args
1897 to account for new strict usage.
1898 (rs6000_output_move_128bit): Adjust quad_address_p args to account
1899 for new strict usage.
1900 * config/rs6000/predicates.md (quad_memory_operand): Likewise.
1901
1902 2016-06-26 Uros Bizjak <ubizjak@gmail.com>
1903
1904 PR target/70902
1905 PR target/71453
1906 PR target/71555
1907 PR target/71596
1908 PR target/71657
1909 * config/i386/i386.c (ix86_spill_class): Disable condition to
1910 always return NO_REGS.
1911
1912 2016-06-26 Jan Hubicka <hubicka@ucw.cz>
1913
1914 * predict.c: Include gimple-pretty-print.h
1915 (predicted_by_loop_heuristics_p): Check also
1916 PRED_LOOP_EXIT_WITH_RECURSION
1917 (predict_loops): Find self recursive calls and use special purpose
1918 predictors for them; dump log about decisions.
1919 (pass_profile::execute): Dump info about #of iterations.
1920 * predict.def (PRED_LOOP_EXIT_WITH_RECURSION,
1921 (PRED_LOOP_GUARD_WITH_RECURSION): New predictors.
1922
1923 2016-06-26 John David Anglin <danglin@gcc.gnu.org>
1924
1925 * config/pa/pa.c (pa_output_indirect_call): Rework to combine
1926 output_asm_insn calls and shorten long lines. Output .CALL
1927 argument descriptor using pa_output_arg_descriptor. Add various
1928 inline $$dyncall and other optimizations.
1929 (pa_attr_length_indirect_call): Adjust ordering and lengths.
1930
1931 2016-06-25 Jakub Jelinek <jakub@redhat.com>
1932
1933 PR tree-optimization/71643
1934 * tree-ssa-tail-merge.c (find_clusters_1): Ignore basic blocks with
1935 EH preds.
1936
1937 * tree-ssa-tail-merge.c (deps_ok_for_redirect_from_bb_to_bb): Don't
1938 leak a bitmap if dep_bb is NULL.
1939
1940 PR tree-optimization/71631
1941 * tree-ssa-reassoc.c (reassociate_bb): Pass true as last argument
1942 to rewrite_expr_tree even if negate_result, move new_lhs var
1943 declaration and initialization earlier, for powi_result set afterwards
1944 new_lhs to lhs. For negate_result, use new_lhs instead of tmp
1945 if new_lhs != lhs, and don't shadow gsi var.
1946
1947 2016-06-24 Jan Hubicka <hubicka@ucw.cz>
1948
1949 * predict.c (predict_paths_leading_to, predict_paths_leading_to_edge):
1950 Add in_loop parameter.
1951 (predict_loops): Add loop guard heuristics.
1952 * predict.def (PRED_LOOP_GUARD): New heuristics.
1953
1954 2016-06-24 Jan Hubicka <hubicka@ucw.cz>
1955
1956 * predict.c: Include ipa-utils.h
1957 (tree_bb_level_prediction): Predict recursive calls.
1958 (tree_estimate_probability_bb): Skip inexpensive calls for call
1959 predictor.
1960 * predict.def (PRED_RECURSIVE_CALL): New.
1961
1962 2016-06-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1963
1964 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): New #define.
1965 (BU_FLOAT128_1): Likewise.
1966 (FABSQ): Likewise.
1967 (COPYSIGNQ): Likewise.
1968 (RS6000_BUILTIN_NANQ): Likewise.
1969 (RS6000_BUILTIN_NANSQ): Likewise.
1970 (RS6000_BUILTIN_INFQ): Likewise.
1971 (RS6000_BUILTIN_HUGE_VALQ): Likewise.
1972 * config/rs6000/rs6000.c (rs6000_fold_builtin): New prototype.
1973 (TARGET_FOLD_BUILTIN): New #define.
1974 (rs6000_builtin_mask_calculate): Add TARGET_FLOAT128 entry.
1975 (rs6000_invalid_builtin): Add handling for RS6000_BTM_FLOAT128.
1976 (rs6000_fold_builtin): New target hook implementation, handling
1977 folding of 128-bit NaNs and infinities.
1978 (rs6000_init_builtins): Initialize const_str_type_node; ensure all
1979 entries are filled in to avoid problems during bootstrap
1980 self-test; define builtins for 128-bit NaNs and infinities.
1981 (rs6000_opt_mask): Add entry for float128.
1982 * config/rs6000/rs6000.h (RS6000_BTM_FLOAT128): New #define.
1983 (RS6000_BTM_COMMON): Include RS6000_BTM_FLOAT128.
1984 (rs6000_builtin_type_index): Add RS6000_BTI_const_str.
1985 (const_str_type_node): New #define.
1986 * config/rs6000/rs6000.md (copysign<mode>3 for IEEE128): Convert
1987 to a define_expand that dispatches to either copysign<mode>3_soft
1988 or copysign<mode>3_hard.
1989 (copysign<mode>3_hard): Rename from copysign<mode>3.
1990 (copysign<mode>3_soft): New define_insn.
1991 * doc/extend.texi: Document new builtins.
1992
1993 2016-06-24 Jakub Jelinek <jakub@redhat.com>
1994
1995 * cfgloop.c (flow_loop_dump): Cast nit to uint64_t and print it using
1996 PRIu64 instead of lu.
1997
1998 2016-06-24 Eric Botcazou <ebotcazou@adacore.com>
1999
2000 PR debug/71642
2001 * tree-inline.c (remap_decl): When fixing up DECL_ORIGINAL_TYPE, just
2002 copy the type name.
2003
2004 2016-06-24 Jakub Jelinek <jakub@redhat.com>
2005
2006 PR tree-optimization/71647
2007 * omp-low.c (lower_rec_input_clauses): Convert
2008 omp_clause_aligned_alignment (c) to size_type_node for the
2009 last argument of __builtin_assume_aligned.
2010
2011 2016-06-24 H.J. Lu <hongjiu.lu@intel.com>
2012
2013 * configure.ac (calling ___tls_get_addr via GOT): New
2014 assembler/linker check.
2015 (HAVE_AS_IX86_TLS_GET_ADDR_GOT): New. Defined to 1 if 32-bit
2016 assembler and linker supports calling ___tls_get_addr via GOT.
2017 Otherise, defined to 0.
2018 * config.in: Regenerated.
2019 * configure: Likewise.
2020 * config/i386/constraints.md (Yb): New constraint.
2021 * config/i386/i386.h (reg_class): Add TLS_GOTBASE_REGS.
2022 (REG_CLASS_NAMES): Likewise.
2023 (REG_CLASS_CONTENTS): Likewise.
2024 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Replace
2025 the b constraint with the Yb constraint. Call ___tls_get_addr
2026 via GOT for GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT
2027 is 1.
2028 (*tls_local_dynamic_base_32_gnu): Likewise.
2029 (*tls_global_dynamic_64_<mode>): Call _tls_get_addr via GOT for
2030 GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT is 1.
2031 (*tls_local_dynamic_base_64_<mode>): Likewise.
2032
2033 2016-06-24 Martin Liska <mliska@suse.cz>
2034
2035 * cfgloop.c (flow_loop_dump): Dump average number of loop iterations.
2036 * cfgloop.h: Change 'struct loop' to 'const struct loop' for a
2037 few functions.
2038 * cfgloopanal.c (expected_loop_iterations_unbounded): Set a new
2039 argument to true if the expected number of iterations is
2040 loop-based.
2041
2042 2016-06-24 Uros Bizjak <ubizjak@gmail.com>
2043
2044 * configure.ac (HAVE_AS_GOTOF_IN_DATA): Use $as_ix86_gas_32_opt to
2045 assemble for 32bit target.
2046 (HAVE_AS_IX86_TLSGDPLT): Use $as_ix86_gas_32_opt to assemble
2047 and $ld_ix86_gld_32_opt to link for 32bit target.
2048 (HAVE_AS_IX86_TLSLDMPLT): Ditto.
2049 * configure: Regenerate.
2050
2051 2016-06-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2052
2053 * config/arm/arm.c (int_log2): Delete definition and prototype.
2054 (shift_op): Use exact_log2 instead of int_log2.
2055 (vfp3_const_double_for_fract_bits): Likewise.
2056
2057 2016-06-24 Jakub Jelinek <jakub@redhat.com>
2058
2059 * internal-fn.c (expand_arith_set_overflow): New function.
2060 (expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow):
2061 Use it.
2062 (expand_arith_overflow_result_store): Likewise. Handle precision
2063 smaller than mode precision.
2064 * tree-vrp.c (extract_range_basic): For imag part, handle
2065 properly signed 1-bit precision result.
2066 * doc/extend.texi (__builtin_add_overflow): Document that last
2067 argument can't be pointer to enumerated or boolean type.
2068 (__builtin_add_overflow_p): Document that last argument can't
2069 have enumerated or boolean type.
2070
2071 2016-06-23 Michael Meissner <meissner@linux.vnet.ibm.com>
2072 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2073
2074 * config/rs6000/predicates.md (splat_input_operand): Rework.
2075 Don't allow constants, since the insns that use this predicate
2076 don't support constants. Constants are handled by other insns
2077 that are created via combine. During and after register
2078 allocation, only allow indexed or indirect addresses, and not
2079 general addresses. Only allow modes supported by the hardware.
2080 * config/rs6000/rs6000.c (xxsplitb_constant_p): Update usage
2081 comment. Move check for using VSPLTIS<x> to a common location,
2082 instead of doing it in two different places.
2083
2084 2016-06-23 Jocelyn Mayer <l_indien@magic.fr>
2085
2086 * config/i386/driver-i386.c (host_detect_local_cpu): Set
2087 PROCESSOR_PENTIUMPRO for signature_CENTAUR_ebx family >= 9.
2088 <case PROCESSOR_PENTIMUMPRO>: Pass c7 or nehemiah for
2089 signature_CENTAUR_ebx.
2090
2091 2016-06-23 H.J. Lu <hongjiu.lu@intel.com>
2092
2093 PR target/66232
2094 PR target/67400
2095 * configure.ac (as_ix86_tls_ldm_opt): Renamed to ...
2096 (as_ix86_gas_32_opt): This.
2097 (ld_ix86_tls_ldm_opt): Renamed to ...
2098 (ld_ix86_gld_32_opt): This.
2099 (R_386_TLS_LDM reloc): Updated.
2100 (R_386_GOT32X reloc): New assembler/linker check.
2101 (HAVE_AS_IX86_GOT32X): New. Defined to 1 if 32-bit assembler and
2102 linker support "jmp *_start@GOT" and "cmpl $0, bar@GOT". Otherise,
2103 defined to 0.
2104 * config.in: Regenerated.
2105 * configure: Likewise.
2106 * config/i386/i386.c (ix86_force_load_from_GOT_p): Return
2107 true if HAVE_AS_IX86_GOT32X is 1 in 32-bit mode.
2108 (ix86_legitimate_address_p): Allow UNSPEC_GOT for -fno-plt
2109 if ix86_force_load_from_GOT_p returns true.
2110 (ix86_print_operand_address_as): Also support UNSPEC_GOT if
2111 ix86_force_load_from_GOT_p returns true.
2112 (ix86_expand_move): Generate UNSPEC_GOT in 32-bit mode to load
2113 the external function address via the GOT slot.
2114 (ix86_nopic_noplt_attribute_p): Check both TARGET_64BIT and
2115 HAVE_AS_IX86_GOT32X before returning false.
2116 (ix86_output_call_insn): Generate "%!jmp/call\t*%p0@GOT" in
2117 32-bit mode if ix86_nopic_noplt_attribute_p returns true.
2118
2119 2016-06-23 Eric Botcazou <ebotcazou@adacore.com>
2120
2121 * tree-inline.c (remap_decl): Preserve DECL_ORIGINAL_TYPE invariant.
2122
2123 2016-06-23 Andi Kleen <ak@linux.intel.com>
2124
2125 * Makefile.in: Regenerate.
2126 * doc/install.texi: Document autoprofiledbootstrap.
2127
2128 2016-06-23 Andi Kleen <ak@linux.intel.com>
2129
2130 * config/i386/gcc-auto-profile: New file.
2131
2132 2016-06-23 Martin Liska <mliska@suse.cz>
2133
2134 PR middle-end/71619
2135 * predict.c (predict_loops): Revert the hunk that was removed
2136 in r237103.
2137
2138 2016-06-23 Jakub Sejdak <jakub.sejdak@phoesys.com>
2139
2140 * config.gcc: Add support for arm*-*-phoenix* targets.
2141 * config/arm/t-phoenix: New.
2142 * config/phoenix.h: New.
2143
2144 2016-06-23 Uros Bizjak <ubizjak@gmail.com>
2145 H.J. Lu <hongjiu.lu@intel.com>
2146
2147 PR target/67400
2148 * config/i386/i386-protos.h (ix86_force_load_from_GOT_p): New.
2149 * config/i386/i386.c (ix86_force_load_from_GOT_p): New function.
2150 (ix86_legitimate_constant_p): Do not allow UNSPEC_GOTPCREL if
2151 ix86_force_load_from_GOT_p returns true.
2152 (ix86_legitimate_address_p): Allow UNSPEC_GOTPCREL if
2153 ix86_force_load_from_GOT_p returns true.
2154 (ix86_print_operand_address_as): Support UNSPEC_GOTPCREL if
2155 ix86_force_load_from_GOT_p returns true.
2156 (ix86_expand_move): Load the external function address via the
2157 GOT slot if ix86_force_load_from_GOT_p returns true.
2158 * config/i386/predicates.md (x86_64_immediate_operand): Return
2159 false for SYMBOL_REFs where ix86_force_load_from_GOT_p returns true.
2160 (x86_64_zext_immediate_operand): Ditto.
2161
2162 2016-06-22 Uros Bizjak <ubizjak@gmail.com>
2163
2164 * config/i386/i386.c (ix86_expand_move): Simplify SYMBOL_REF handling.
2165
2166 2016-06-22 David Malcolm <dmalcolm@redhat.com>
2167
2168 PR c/70339
2169 * diagnostic-core.h (pedwarn_at_rich_loc): New prototype.
2170 * diagnostic.c (pedwarn_at_rich_loc): New function.
2171 * spellcheck.h (best_match::best_match): Add a
2172 "best_distance_so_far" optional parameter.
2173 (best_match::set_best_so_far): New method.
2174 (best_match::get_best_distance): New accessor.
2175 (best_match::get_best_candidate_length): New accessor.
2176
2177 2016-06-22 Nick Clifton <nickc@redhat.com>
2178
2179 * dwarf2out.c (scompare_loc_descriptor): Use SCALAR_INT_MODE_P() in
2180 place of GET_MODE_CLASS() == MODE_INT, so that partial integer
2181 modes are accepted as well.
2182 (ucompare_loc_descriptor): Likewise.
2183 (minmax_loc_descriptor): Likewise.
2184 (clz_loc_descriptor): Likewise.
2185 (popcount_loc_descriptor): Likewise.
2186 (bswap_loc_descriptor): Likewise.
2187 (rotate_loc_descriptor): Likewise.
2188 (mem_loc_descriptor): Likewise.
2189 (loc_descriptor): Likewise.
2190
2191 2016-06-22 David Malcolm <dmalcolm@redhat.com>
2192
2193 * common.opt (fdiagnostics-parseable-fixits): New option.
2194 * diagnostic.c: Include "selftest.h".
2195 (print_escaped_string): New function.
2196 (print_parseable_fixits): New function.
2197 (diagnostic_report_diagnostic): Call print_parseable_fixits.
2198 (selftest::assert_print_escaped_string): New function.
2199 (ASSERT_PRINT_ESCAPED_STRING_STREQ): New macro.
2200 (selftest::test_print_escaped_string): New function.
2201 (selftest::test_print_parseable_fixits_none): New function.
2202 (selftest::test_print_parseable_fixits_insert): New function.
2203 (selftest::test_print_parseable_fixits_remove): New function.
2204 (selftest::test_print_parseable_fixits_replace): New function.
2205 (selftest::diagnostic_c_tests): New function.
2206 * diagnostic.h (struct diagnostic_context): Add field
2207 "parseable_fixits_p".
2208 * doc/invoke.texi (Diagnostic Message Formatting Options): Add
2209 -fdiagnostics-parseable-fixits.
2210 (-fdiagnostics-parseable-fixits): New option.
2211 * opts.c (common_handle_option): Handle
2212 -fdiagnostics-parseable-fixits.
2213 * selftest-run-tests.c (selftest::run_tests): Call
2214 selftest::diagnostic_c_tests.
2215 * selftest.h (selftest::diagnostic_c_tests): New prototype.
2216
2217 2016-06-22 Ilya Enkovich <ilya.enkovich@intel.com>
2218
2219 PR tree-optimization/71488
2220 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Support
2221 comparison of boolean vectors.
2222 * tree-vect-stmts.c (vectorizable_comparison): Vectorize comparison
2223 of boolean vectors using bitwise operations.
2224
2225 2016-06-22 Andreas Schwab <schwab@suse.de>
2226
2227 * config/aarch64/aarch64-protos.h (aarch64_elf_asm_named_section):
2228 Remove declaration.
2229
2230 2016-06-22 Eric Botcazou <ebotcazou@adacore.com>
2231
2232 * function.c (assign_parm_setup_reg): Prevent sharing in another case.
2233
2234 2016-06-22 Bernd Edlinger <bernd.edlinger@hotmail.de>
2235
2236 * config/i386/i386.c (print_reg): Emit an error message on attempt to
2237 print FLAGS_REG.
2238
2239 2016-06-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2240
2241 * config/arm/arm.c (arm_cortex_a73_tune): New struct.
2242 * config/arm/arm-cores.def (cortex-a73): New entry.
2243 (cortex-a73.cortex-a35): Likewise.
2244 (cortex-a73.cortex-a53): Likewise.
2245 * config/arm/arm-tables.opt: Regenerate.
2246 * config/arm/arm-tune.md: Likewise.
2247 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle mcpu=cortex-a73,
2248 mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
2249 * config/arm/t-aprofile: Handle mcpu=cortex-a73,
2250 mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
2251 * doc/invoke.texi (ARM Options): Document cortex-a73,
2252 cortex-a73.cortex-a35 and cortex-a73.cortex-a53.
2253
2254 2016-06-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2255
2256 * config/aarch64/aarch64.c (cortexa73_tunings): New struct.
2257 * config/aarch64/aarch64-cores.def (cortex-a73): New entry.
2258 (cortex-a73.cortex-a35): Likewise.
2259 (cortex-a73.cortex-a53): Likewise.
2260 * config/aarch64/aarch64-tune.md: Regenerate.
2261 * doc/invoke.texi (AArch64 Options): Document cortex-a73,
2262 cortex-a73.cortex-a35 and cortex-a73.cortex-a53 arguments to
2263 -mcpu and -mtune.
2264
2265 2016-06-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2266
2267 * configure.ac (gcc_cv_as_compress_debug): Remove
2268 --compress-debug-sections as extra as switch.
2269 Handle gas --compress-debug-sections=type.
2270 (gcc_cv_ld_compess_debug): Remove bogus ld_date check.
2271 Handle gld --compress-debug-sections=type.
2272 * configure: Regenerate.
2273
2274 2016-06-21 Andrew Burgess <andrew.burgess@embecosm.com>
2275
2276 * bb-reorder.c (pass_partition_blocks::gate): Update comment.
2277
2278 2016-06-21 John David Anglin <danglin@gcc.gnu.org>
2279
2280 * gcov-tool.c (profile_rewrite): Use int64_t instead of long long.
2281 (do_rewrite): likewise.
2282
2283 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2284
2285 * common/config/mep/mep-common.c: Remove.
2286 * config.gcc: Remove mep-* support.
2287 * config/mep/constraints.md: Remove.
2288 * config/mep/default.h: Remove.
2289 * config/mep/intrinsics.h: Remove.
2290 * config/mep/intrinsics.md: Remove.
2291 * config/mep/ivc2-template.h: Remove.
2292 * config/mep/mep-c5.cpu: Remove.
2293 * config/mep/mep-core.cpu: Remove.
2294 * config/mep/mep-default.cpu: Remove.
2295 * config/mep/mep-ext-cop.cpu: Remove.
2296 * config/mep/mep-intrin.h: Remove.
2297 * config/mep/mep-ivc2.cpu: Remove.
2298 * config/mep/mep-pragma.c: Remove.
2299 * config/mep/mep-protos.h: Remove.
2300 * config/mep/mep.c: Remove.
2301 * config/mep/mep.cpu: Remove.
2302 * config/mep/mep.h: Remove.
2303 * config/mep/mep.md: Remove.
2304 * config/mep/mep.opt: Remove.
2305 * config/mep/predicates.md: Remove.
2306 * config/mep/t-mep: Remove.
2307 * doc/install.texi: Remove mep-* documentation.
2308 * doc/md.texi: Likewise.
2309
2310 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2311
2312 * config.gcc: Remove support for avr-rtems.
2313 * config/avr/gen-avr-mmcu-specs.c: Likewise.
2314 * config/avr/rtems.h: Remove.
2315 * config/avr/t-rtems: Remove.
2316
2317 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2318
2319 * config.gcc: Remove m32r-rtems support.
2320 * config/m32r/rtems.h: Remove.
2321
2322 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2323
2324 * config.gcc: Remove h8300-rtems support.
2325 * config/h8300/rtems.h: Remove.
2326 * config/h8300/t-rtems: Remove.
2327
2328 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2329
2330 * config.gcc: Remove support for knetbsd.
2331 * configure.ac: Likewise.
2332 * config/i386/knetbsd-gnu.h: Remove. * config/i386/knetbsd-gnu64.h: Remove.
2333 * config/knetbsd-gnu.h: Remove.
2334 * configure: Regenerate.
2335
2336 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2337
2338 * config.gcc: Remove support for openbsd 2 and 3.
2339 * config/openbsd-oldgas.h: Remove.
2340
2341 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2342
2343 * config.gcc: Remove interix support.
2344 * config/i386/i386-interix.h: Remove.
2345 * config/i386/interix.opt: Remove.
2346 * config/i386/t-interix: Remove.
2347 * configure: Regenerate.
2348 * configure.ac: Remove interix support.
2349 * doc/install.texi: Remove interix documentation.
2350
2351 2016-06-21 Kelvin Nilsen <kelvin@gcc.gnu.org>
2352
2353 * config/rs6000/rs6000.h: Add conditional preprocessing directives
2354 to disable Power9-specific compiler features if HAVE_AS_POWER9 is
2355 not defined.
2356
2357 2016-06-21 Eric Botcazou <ebotcazou@adacore.com>
2358
2359 * tree.c (verify_type_variant): Skip TYPE_SIZE and TYPE_SIZE_UNIT if
2360 they are both PLACEHOLDER_EXPRs.
2361
2362 2016-06-21 Michael Meissner <meissner@linux.vnet.ibm.com>
2363
2364 * stor-layout.c (layout_type): Move setting complex MODE to
2365 layout_type, instead of setting it ahead of time by the caller.
2366 * tree.c (build_complex_type): Likewise.
2367
2368 2016-06-21 Martin Liska <mliska@suse.cz>
2369
2370 * predict.c (force_edge_cold): Replace imposisble with
2371 impossible.
2372
2373 2016-06-21 Ilya Verbin <ilya.verbin@intel.com>
2374
2375 * config/i386/i386.c (ix86_emit_swsqrtsf): Emit vrsqrt28ps.
2376 * config/i386/sse.md (define_expand "rsqrtv16sf2"): New.
2377
2378 2016-06-21 Ilya Verbin <ilya.verbin@intel.com>
2379
2380 * config/i386/i386.c (ix86_emit_swdivsf): Emit vrcp28ps.
2381
2382 2016-06-21 H.J. Lu <hongjiu.lu@intel.com>
2383 Ilya Enkovich <ilya.enkovich@intel.com>
2384
2385 PR target/71549
2386 * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
2387 New member function to convert V1TImode register to SUBREG
2388 TImode in debug insn.
2389 (timode_scalar_chain::convert_insn): Call fix_debug_reg_uses
2390 after changing register mode to V1TImode.
2391
2392 2016-06-21 Virendra Pathak <virendra.pathak@broadcom.com>
2393
2394 * config/aarch64/aarch64-cores.def (vulcan): New core.
2395 * config/aarch64/aarch64-tune.md: Regenerate.
2396 * doc/invoke.texi: Document vulcan as an available option.
2397
2398 2016-06-21 Eric Botcazou <ebotcazou@adacore.com>
2399
2400 * cse.c (canon_asm_operands): New function extracted from...
2401 (canonicalize_insn): ...here. Call it to canonicalize an ASM_OPERANDS
2402 either standalone or member of a PARALLEL.
2403
2404 2016-06-21 Georg-Johann Lay <avr@gjlay.de>
2405
2406 PR target/30417
2407 * config/avr/gen-avr-mmcu-specs.c (print_mcu):
2408 [*link_data_start]: Wrap -Tdata into %{!Tdata:...}.
2409 [*link_text_start]: Wrap -Ttext into %{!Ttext:...}.
2410
2411 2016-06-21 Georg-Johann Lay <avr@gjlay.de>
2412
2413 PR target/71103
2414 * config/avr/avr.md (movqi): Only handle loading subreg:qi of
2415 constant addresses if can_create_pseudo_p.
2416
2417 2016-06-21 Jakub Jelinek <jakub@redhat.com>
2418
2419 PR tree-optimization/71588
2420 * tree-ssa-strlen.c (valid_builtin_call): New function.
2421 (adjust_last_stmt, handle_builtin_memset, strlen_optimize_stmt): Use
2422 it.
2423
2424 2016-06-20 Jakub Jelinek <jakub@redhat.com>
2425
2426 PR middle-end/71581
2427 * tree-ssa-uninit.c (warn_uninit): If EXPR and VAR are NULL,
2428 see if T isn't anonymous SSA_NAME with COMPLEX_EXPR created
2429 for conversion of scalar user var to complex type and use the
2430 underlying SSA_NAME_VAR in that case. If EXPR is still NULL,
2431 punt.
2432
2433 PR rtl-optimization/71591
2434 * toplev.c (toplev::run_self_tests): If no_backend, complain and
2435 don't run any tests.
2436
2437 2016-06-20 Hans-Peter Nilsson <hp@axis.com>
2438
2439 PR target/71571
2440 * config/cris/cris.c (cris_asm_output_mi_thunk): Add missing "ba"
2441 delay-slot "nop" for PIC with CRIS v32. Also add missing leading
2442 space for PIC with non-v32 and the common non-PIC "jump".
2443
2444 2016-06-20 Jakub Jelinek <jakub@redhat.com>
2445
2446 PR target/71559
2447 * config/i386/i386.c (ix86_fp_cmp_code_to_pcmp_immediate): Fix up
2448 returned values and add UN*/LTGT/*ORDERED cases with values matching
2449 D operand modifier on vcmp for AVX.
2450
2451 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com>
2452
2453 * config/aarch64/aarch64.opt
2454 (mpc-relative-literal-loads): Rename internal option name.
2455 * config/aarch64/aarch64.c
2456 (aarch64_nopcrelative_literal_loads): Rename to
2457 aarch64_pcrelative_literal_loads.
2458 (aarch64_expand_mov_immediate): Likewise.
2459 (aarch64_secondary_reload): Likewise.
2460 (aarch64_can_use_per_function_literal_pools_p): Likewise.
2461 (aarch64_override_options_after_change_1): Rename and simplify logic.
2462 (aarch64_classify_symbol): Merge large model checks into switch,
2463 remove pc-relative load check.
2464
2465 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
2466
2467 * config/arm/aarch-cost-tables.h (cortexa53_extra_costs): Make FP
2468 costs relative to the cost of a register move.
2469
2470 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
2471
2472 * config/aarch64/arm_neon.h (vcvt_n_f64_s64): New.
2473 (vcvt_n_f64_u64): Likewise.
2474 (vcvt_n_s64_f64): Likewise.
2475 (vcvt_n_u64_f64): Likewise.
2476 (vcvt_f64_s64): Likewise.
2477 (vrecpe_f64): Likewise.
2478 (vcvt_f64_u64): Likewise.
2479 (vrecps_f64): Likewise.
2480
2481 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
2482
2483 * config/aarch64/aarch64.md
2484 (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3): Add attributes to
2485 iterators.
2486 (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>3): Likewise. Correct
2487 attributes.
2488 * config/aarch64/aarch64-builtins.c
2489 (aarch64_types_binop_uss_qualifiers): Delete.
2490 (TYPES_BINOP_USS): Likewise.
2491 (aarch64_types_binop_sus_qualifiers): Likewise.
2492 (TYPES_BINOP_SUS): Likewise.
2493 (aarch64_types_fcvt_from_unsigned_qualifiers): New.
2494 (TYPES_FCVTIMM_SUS): Likewise.
2495 * config/aarch64/aarch64-simd-builtins.def (scvtf): Use SHIFTIMM
2496 rather than BINOP.
2497 (ucvtf): Use FCVTIMM_SUS rather than BINOP_SUS.
2498 (fcvtzs): Use SHIFTIMM rather than BINOP.
2499 (fcvtzu): Use SHIFTIMM_USS rather than BINOP_USS.
2500
2501 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
2502
2503 * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): Make FP
2504 costs relative to the cost of a register move.
2505
2506 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com>
2507
2508 * config/aarch64/aarch64.c (aarch64_modes_tieable_p):
2509 Allow scalar/single vector modes to be tieable.
2510
2511 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com>
2512
2513 * config/arm/cortex-a57.md (cortex_a57_fp_cpys): Add fcsel.
2514
2515 2016-06-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2516
2517 * params.def (PARAM_ALIGN_LOOP_ITERATIONS): Use "alignment" instead of
2518 "alignement".
2519 * tree.h (TYPE_ALIGN): Likewise.
2520
2521 2016-06-20 Georg-Johann Lay <avr@gjlay.de>
2522
2523 PR target/71103
2524 * config/avr/avr.md (movqi): Handle loading subreg:qi (const).
2525
2526 2016-06-20 Georg-Johann Lay <avr@gjlay.de>
2527
2528 * config/avr/avr.c (avr_print_operand): Fix "format not a string
2529 literal" build warnings.
2530 (avr_print_operand_address): Dito.
2531
2532 2016-06-19 David Edelsohn <dje.gcc@gmail.com>
2533
2534 PR target/71375
2535 * config/rs6000/aix51.h (TARGET_EXTRA_BUILTINS): Define as 0.
2536 * config/rs6000/aix43.h (TARGET_EXTRA_BUILTINS): Same.
2537
2538 2016-06-18 John David Anglin <danglin@gcc.gnu.org>
2539
2540 * config/pa/pa.h (TARGET_LONG_PIC_PCREL_CALL): Remove.
2541
2542 2016-06-18 Eric Botcazou <ebotcazou@adacore.com>
2543
2544 PR bootstrap/71435
2545 * reload1.c (reload): Pass 0 to finish_spills when called because
2546 update_eliminables_and_spill returns true and remove did_spill.
2547 (finish_spills): Adjust comment and document GLOBAL parameter.
2548
2549 2016-06-17 DJ Delorie <dj@redhat.com>
2550
2551 PR target/71338
2552 * config/rl78/rl78-expand.c (umulqihi3): Enable for G10.
2553 * config/rl78/rl78-virtual.c (umulhi3_shift_virt): Likewise.
2554 (umulqihi3_virt): Likewise.
2555 * config/rl78/rl78-real.c (umulhi3_shift_real): Likewise.
2556 (umulqihi3_real): Likewise.
2557
2558 2016-06-17 Martin Liska <mliska@suse.cz>
2559
2560 * tree-ssa-reassoc.c (transform_add_to_multiply): Use auto_vec.
2561
2562 2016-06-17 Martin Liska <mliska@suse.cz>
2563
2564 * predict.def: PRED_LOOP_EXIT from 92 to 85.
2565
2566 2016-06-17 James Greenhalgh <james.greenhalgh@arm.com>
2567
2568 * config/arm/arm_neon.h (vadd_f32): replace __FAST_MATH with
2569 __FAST_MATH__.
2570 (vaddq_f32): Likewise.
2571 (vmul_f32): Likewise.
2572 (vmulq_f32): Likewise.
2573 (vsub_f32): Likewise.
2574 (vsubq_f32): Likewise.
2575
2576 2016-06-17 Bin Cheng <bin.cheng@arm.com>
2577
2578 PR tree-optimization/71347
2579 * tree-ssa-loop-ivopts.c (determine_group_iv_cost_address): Compute
2580 cost for all uses in group.
2581
2582 2016-06-17 Bin Cheng <bin.cheng@arm.com>
2583
2584 * tree-vect-loop.c (vect_create_epilog_for_reduction): Only
2585 insert gimple seq if it's not empty.
2586
2587 2016-06-17 Bin Cheng <bin.cheng@arm.com>
2588
2589 * tree-vectorizer.h (struct dr_with_seg_len): Remove class
2590 member OFFSET.
2591 * tree-vect-data-refs.c (operator ==): Handle DR_OFFSET directly,
2592 rather than OFFSET.
2593 (comp_dr_with_seg_len_pair): Ditto.
2594 (vect_prune_runtime_alias_test_list): Ditto. Also Canonicalize
2595 struct dr_with_seg_len_pair against DR_OFFSET.
2596 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Handle
2597 DR_OFFSET directly.
2598
2599 2016-06-17 Szabolcs Nagy <szabolcs.nagy@arm.com>
2600
2601 * config/aarch64/geniterators.sh: Handle parenthesised conditions.
2602
2603 2016-06-16 John David Anglin <danglin@gcc.gnu.org>
2604
2605 * config/pa/pa.c (pa_output_pic_pcrel_sequence): New.
2606 (pa_output_lbranch): Use pa_output_pic_pcrel_sequence.
2607 (pa_output_millicode_call): Likewise.
2608 (pa_output_call): Likewise.
2609 (pa_output_indirect_call): Likewise.
2610 (pa_asm_output_mi_thunk): Likewise.
2611
2612 2016-06-16 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2613
2614 * doc/invoke.texi (x86 Options): Fix -mno-fp-ret-in-387 typo.
2615
2616 2016-06-16 Martin Liska <mliska@suse.cz>
2617
2618 * predict.c (combine_predictions_for_insn): When we find a first
2619 match predictor, we should consider just predictors with
2620 PRED_FLAG_FIRST_MATCH. Print either first match (if any) or
2621 DS theory predictor.
2622 (combine_predictions_for_bb): Likewise.
2623
2624 2016-06-16 Jakub Jelinek <jakub@redhat.com>
2625
2626 * gimplify.c (gimplify_scan_omp_clauses): Handle COMPONENT_REFs
2627 with base of reference to struct.
2628
2629 2016-06-16 Uros Bizjak <ubizjak@gmail.com>
2630
2631 * doc/invoke.texi (x86 Options): Document -m80387 and -mhard-float.
2632
2633 2016-06-16 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
2634
2635 PR target/71151
2636 * config/avr/avr.c (avr_asm_init_sections): Remove setup of
2637 progmem_swtable_section.
2638 (progmem_swtable_section): Remove.
2639 (avr_asm_function_rodata_section): Remove.
2640 (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
2641 * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION: Define to 1.
2642
2643 2016-06-16 Jocelyn Mayer <l_indien@magic.fr>
2644
2645 * config/i386/driver-i386.c (host_detect_local_cpu): Set
2646 PROCESSOR_K8 for signature_CENTAUR_ebx with has_longmode.
2647 <case PROCESSOR_K8>: Pass nano-3000, nano, eden-x2 or k8 for
2648 signature_CENTAUR_ebx.
2649 * config/i386/i386.c (ix86_option_override_internal): Add
2650 definitions for VIA c7, samuel-2, nehemiah, esther, eden-x2, eden-x4,
2651 nano, nano-1000, nano-2000, nano-3000, nano-x2 and nano-x4.
2652 * doc/invoke.texi (x86 Options): Document new VIA -march entries.
2653
2654 2016-06-16 Martin Liska <mliska@suse.cz>
2655
2656 * predict.def: Add fortran loop preheader predictor.
2657 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Properly
2658 fold IFN_BUILTIN_EXPECT with a known constant argument.
2659
2660 2016-06-16 Martin Liska <mliska@suse.cz>
2661
2662 * predict.def: Add 'Fortran' to display text of all
2663 PRED_FORTRAN_* predictors.
2664
2665 2016-06-16 Uros Bizjak <ubizjak@gmail.com>
2666
2667 PR target/71242
2668 * config/ia64/ia64.c (enum ia64_builtins) [IA64_BUILTIN_NANQ]: New.
2669 [IA64_BUILTIN_NANSQ]: Ditto.
2670 (ia64_fold_builtin): New function.
2671 (TARGET_FOLD_BUILTIN): New define.
2672 (ia64_init_builtins) Declare const_string_type node.
2673 Add __builtin_nanq and __builtin_nansq builtin functions.
2674 (ia64_expand_builtin): Handle IA64_BUILTIN_NANQ and IA64_BUILTIN_NANSQ.
2675
2676 2016-06-16 Nick Clifton <nickc@redhat.com>
2677
2678 * config/msp430/msp430-opts.h (msp430_hwmult_types): Add
2679 MSP430_HWMULT_ prefix to enum values.
2680 (msp430_regions): Add MSP430_REGION_ prefix to enum values.
2681 * config/msp430/msp430.c: Update use of enum values.
2682 * config/msp430/msp430.md: Likewise.
2683 * config/msp430/msp430.opt: Likewise.
2684
2685 2016-06-16 Jan Hubicka <hubicka@ucw.cz>
2686
2687 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Fix estimation
2688 of comparsions in the last iteration.
2689
2690 2016-06-16 Claudiu Zissulescu <claziss@synopsys.com>
2691 Joern Rennecke <joern.rennecke@embecosm.com>
2692
2693 * config/arc/arc.c (arc_print_operand_address): Handle pc-relative
2694 addresses.
2695 (arc_needs_pcl_p): Add GOTOFFPC.
2696 (arc_legitimate_pic_addr_p): Likewise.
2697 (arc_output_pic_addr_const): Likewise.
2698 (arc_legitimize_pic_address): Generate a pc-relative address using
2699 GOTOFFPC.
2700 (arc_output_libcall): Use @pcl syntax.
2701 (arc_delegitimize_address_0): Delegitimize ARC_UNSPEC_GOTOFFPC.
2702 * config/arc/arc.md ("unspec"): Add ARC_UNSPEC_GOTOFFPC.
2703 (*movsi_insn): Use @pcl syntax.
2704 (doloop_begin_i): Likewise.
2705
2706 2016-06-16 Martin Liska <mliska@suse.cz>
2707
2708 * predict.def: Define a new predictor.
2709
2710 2016-06-16 Claudiu Zissulescu <claziss@synopsys.com>
2711
2712 * config/arc/arc.opt (mtp-regno): Update text.
2713
2714 2016-06-16 Renlin Li <renlin.li@arm.com>
2715
2716 * config/aarch64/aarch64.c (aarch64_legitimize_address): Fix a typo.
2717
2718 2016-06-16 Jakub Jelinek <jakub@redhat.com>
2719
2720 PR target/71554
2721 * config/i386/i386.md (setcc + movzbl peephole2): Use reg_set_p.
2722 (setcc + and peephole2): Likewise.
2723
2724 PR rtl-optimization/71532
2725 * cse.c (cse_insn): For const/pure calls, invalidate argument passing
2726 memory slots.
2727
2728 2016-06-15 Michael Meissner <meissner@linux.vnet.ibm.com>
2729
2730 * config/rs6000/vsx.md (VSINT_84): Add DImode to enable loading
2731 DImode constants with XXSPLTIB in vector registers.
2732 (vsx_extract_<mode>, V2DImode/V2DFmode): Combine both
2733 vsx_extract_<mode>_internal{1,2} into a single insn that handles
2734 direct move (both ISA 2.07 and ISA 3.0 versions), and optimizes
2735 extraction of the element at the top of the register as a scalar
2736 value.
2737 (vsx_extract_<mode>_internal1): Likewise.
2738 (vsx_extract_<mode>_internal2): Likewise.
2739 * config/rs6000/constraints.md (wi constraint): Remove a comment
2740 about DImode not being allowed in Altivec registers.
2741 (wB constraint): New constraint for constants that can be
2742 generated in Altivec registers with VSPLTISW/VUPKHSW.
2743 * config/rs6000/predicates.md (xxspltib_constant_split): Update
2744 comments.
2745 (xxspltib_constant_nosplit): Likewise.
2746 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Add
2747 support for -mupper-regs-di to enable DImode to go into Altivec
2748 registers.
2749 (POWERPC_MASKS): Likewise.
2750 (power7 cpu): Likewise.
2751 * config/rs6000/rs6000.opt (-mupper-regs-di): Likewise.
2752 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
2753 for DImode being allowed in Altivec registers. Update wi/wj
2754 constraints. Set scalar_in_vmx_p flag.
2755 (rs6000_option_override_internal): Add checks for -mupper-regs-di.
2756 (xxspltib_constant_p): Allow CONST_INT's with VOIDmode. Don't
2757 return true if we could use VSPLTISW/VUPKHSW instead of XXSPLTIB.
2758 (rs6000_opt_masks): Add -mupper-regs-di.
2759 * config/rs6000/rs6000.md (lfiwax): Update clobbers that don't use
2760 direct move to use wi and not wj.
2761 (lfiwzx): Likewise.
2762 (floatsi<mode>2_lfiwax_mem): Combine alternatives into a single
2763 alternative.
2764 (floatunssi<mode>2_lfiwzx_mem): Likewise.
2765 (fix_trunc<mode>di2_fctidz): Change second alternative to allow
2766 any VSX register, instead of just Altivec registers, to allow
2767 either operand to be an Altivec register or both.
2768 (fixuns_trunc<mode>di2_fctiduz): Likewise.
2769 (movdi_internal32): Add support for -mupper-regs-di. Add support
2770 to load constants via XXSPLTIB or VSPLTISW. Add spacing to allow
2771 the alternatives and attributes to be lined up to be easier to
2772 read.
2773 (movdi_internal64): Likewise.
2774 (64-bit DImode splitters): Change predicates to only split loading
2775 up GPR registers. Add splits for using XXSPLTIB or VSPLTISW to
2776 load constants in ISA 3.0 or ISA 2.07 respectively.
2777 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
2778 -mupper-regs-di. Update -mupper-regs-df and -mupper-regs-sf to
2779 mention -mcpu=power9 sets these options.
2780 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document the
2781 wB constraint.
2782
2783 2016-06-15 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
2784
2785 PR target/67353
2786 * config/avr/avr.c (avr_set_current_function): Warn misspelled
2787 interrupt/ signal handler if -Wmisspelled-isr flag is enabled.
2788 * config/avr/avr.opt (Wmisspelled-isr): New warning flag. Enabled
2789 by default to warn misspelled interrupt/ signal handler.
2790 * doc/invoke.texi (AVR Options): Document it. Update description
2791 for -nodevicelib option.
2792
2793 2016-06-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2794
2795 * config/aarch64/aarch64-simd.md (aarch64_<sur>shll_n<mode>): Clean
2796 up parentheses. Use GET_MODE_UNIT_BITSIZE.
2797 (aarch64_<sur>shll2_n<mode>): Likewise.
2798
2799 2016-06-15 Ilya Enkovich <ilya.enkovich@intel.com>
2800
2801 PR middle-end/71529
2802 * ipa-chkp.c (chkp_build_instrumented_fndecl): Fix
2803 DECL_CONTEXT for copied arguments.
2804
2805 2016-06-15 Alan Hayward <alan.hayward@arm.com>
2806
2807 PR tree-optimization/71483
2808 * tree-vect-loop.c (vectorizable_live_operation): Pick correct index
2809 for slp
2810
2811 2016-06-15 Martin Liska <mliska@suse.cz>
2812
2813 * predict.c (tree_predict_by_opcode): Call predict_edge_def
2814 instead of predict_edge w/o a probability.
2815
2816 2016-06-15 Alan Hayward <alan.hayward@arm.com>
2817
2818 PR tree-optimization/71439
2819 * tree-vect-loop.c (vect_analyze_loop_operations): Additional check for
2820 live PHIs.
2821
2822 2016-06-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2823
2824 * ifcvt.c (bb_ok_for_noce_multiple_sets): Allow simple lowpart
2825 register subregs in SET_SRC.
2826
2827 2016-06-15 Richard Biener <rguenther@suse.de>
2828
2829 * tree-vect-stmts.c (vectorizable_store): Remove strided grouped
2830 store restrictions.
2831
2832 2016-06-15 Richard Biener <rguenther@suse.de>
2833
2834 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Do
2835 not consider dependences between accesses that belong to the
2836 same group.
2837 (vect_analyze_data_ref_dependences): Do not analyze read-read
2838 or self-dependences.
2839
2840 2016-06-14 David Malcolm <dmalcolm@redhat.com>
2841
2842 * spellcheck-tree.c: Include spellcheck-tree.h rather than
2843 spellcheck.h.
2844 (find_closest_identifier): Reimplement in terms of
2845 best_match<tree,tree>.
2846 * spellcheck-tree.h: New file.
2847 * spellcheck.c (struct edit_distance_traits<const char *>): New
2848 struct.
2849 (find_closest_string): Reimplement in terms of
2850 best_match<const char *, const char *>.
2851 * spellcheck.h (levenshtein_distance): Move prototype of tree-based
2852 overload to spellcheck-tree.h.
2853 (find_closest_identifier): Likewise.
2854 (struct edit_distance_traits<T>): New template.
2855 (class best_match): New class.
2856
2857 2016-06-14 David Malcolm <dmalcolm@redhat.com>
2858
2859 * selftest-run-tests.c (selftest::run_tests): Call
2860 selftest::spellcheck_tree_c_tests.
2861 * selftest.h (selftest::spellcheck_tree_c_tests): New decl.
2862 * spellcheck-tree.c: Include selftest.h and stringpool.h.
2863 (selftest::test_find_closest_identifier): New function.
2864 (selftest::spellcheck_tree_c_tests): New function.
2865 * spellcheck.c (selftest::test_find_closest_string): Verify that
2866 the order of the vec does not affect the results for this case.
2867 (selftest::test_data): New array.
2868 (selftest::test_metric_conditions): New function.
2869 (selftest::spellcheck_c_tests): Add a test of case-comparison.
2870 Call selftest::test_metric_conditions.
2871
2872 2016-06-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2873
2874 * config/rs6000/rs6000-builtin.def (commentary): Typo.
2875 (BU_P9_MISC_1): Likewise.
2876 (BU_P9_64BIT_MISC_0): Likewise.
2877 (BU_P9_MISC_0): Likewise.
2878
2879 2016-06-14 David Malcolm <dmalcolm@redhat.com>
2880
2881 * gcc-rich-location.c
2882 (gcc_rich_location::add_fixit_misspelled_id): New method.
2883 * gcc-rich-location.h
2884 (gcc_rich_location::add_fixit_misspelled_id): Add decl.
2885
2886 2016-06-14 Andreas Tobler <andreast@gcc.gnu.org>
2887
2888 * config/arm/freebsd.h: Only enable unaligned access for armv6 on
2889 FreeBSD 11 and above.
2890
2891 2016-06-14 Uros Bizjak <ubizjak@gmail.com>
2892
2893 * config/i386/i386.md (signbittf2): Emit sse_movmskps for TARGET_SSE.
2894
2895 2016-06-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2896
2897 * expmed.h: Close parenthesis in "at your option" in copyright
2898 boilerplate.
2899 * lower-subreg.h: Likewise.
2900
2901 2016-06-14 Richard Biener <rguenther@suse.de>
2902
2903 PR middle-end/71526
2904 * genmatch.c (expr::gen_transform): Use in_type for comparisons
2905 if available.
2906
2907 2015-06-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2908
2909 * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
2910 New function.
2911 (aarch64_rtx_costs): Use it. Rewrite CONST_INT_P (op1) case to handle
2912 mask+shift version.
2913 * config/aarch64/aarch64-protos.h (aarch64_mask_and_shift_for_ubfiz_p):
2914 New prototype.
2915 * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Replace
2916 matching condition with aarch64_mask_and_shift_for_ubfiz_p.
2917
2918 2016-06-14 Richard Biener <rguenther@suse.de>
2919
2920 PR tree-optimization/71522
2921 * tree-ssa.c (non_rewritable_lvalue_p): Do not rewrite non-float
2922 copying into float copying.
2923
2924 2016-06-14 Jakub Jelinek <jakub@redhat.com>
2925
2926 PR tree-optimization/71520
2927 * tree-ssa-tail-merge.c (find_duplicate): Handle labels.
2928 (replace_block_by): Move user labels from bb1 to bb2.
2929
2930 2016-06-14 Richard Biener <rguenther@suse.de>
2931
2932 PR middle-end/71310
2933 PR bootstrap/71510
2934 * expr.h (get_bit_range): Declare.
2935 * expr.c (get_bit_range): Export.
2936 * fold-const.c (optimize_bit_field_compare): Use get_bit_range and
2937 word_mode again to constrain the bitfield access.
2938
2939 2016-06-14 Richard Biener <rguenther@suse.de>
2940
2941 PR tree-optimization/71521
2942 * tree-vrp.c (extract_range_from_binary_expr_1): Guard
2943 division int_const_binop against zero divisor.
2944
2945 2016-06-13 Uros Bizjak <ubizjak@gmail.com>
2946
2947 * config/i386/i386.md (signbittf2): New expander.
2948 * config/i386/sse.md (ptesttf2): New insn pattern.
2949
2950 2016-06-13 David Malcolm <dmalcolm@redhat.com>
2951
2952 PR bootstrap/71481
2953 * input.c (selftest::test_reading_source_line): Avoid reading from
2954 __FILE__ by creating a tempfile with known content and reading
2955 from that instead.
2956
2957 2016-06-13 David Malcolm <dmalcolm@redhat.com>
2958
2959 * pretty-print.c (assert_pp_format_colored): Skip the test if
2960 GCC_COLORS is set.
2961 (test_pp_format): Remove comment about GCC_COLORS.
2962
2963 2016-06-13 David Malcolm <dmalcolm@redhat.com>
2964
2965 * input.c (test_reading_source_line): Use SELFTEST_LOCATION.
2966 * pretty-print.c (assert_pp_format_va): Add location param and use
2967 it with ASSERT_STREQ_AT.
2968 (assert_pp_format): Add location param and pass it to
2969 assert_pp_format_va.
2970 (assert_pp_format_colored): Likewise.
2971 (ASSERT_PP_FORMAT_1): New.
2972 (ASSERT_PP_FORMAT_2): New.
2973 (ASSERT_PP_FORMAT_3): New.
2974 (test_pp_format): Provide SELFTEST_LOCATION throughout, either
2975 explicitly, or implicitly via the above macros.
2976 * selftest.c (selftest::pass): Use a selftest::location rather
2977 than file and line.
2978 (selftest::fail): Likewise. Print the function name.
2979 (selftest::fail_formatted): Likewise.
2980 (selftest::assert_streq): Use a selftest::location rather than
2981 file and line.
2982 * selftest.h (selftest::location): New struct.
2983 (SELFTEST_LOCATION): New macro.
2984 (selftest::pass): Accept a const location & rather than file
2985 and line.
2986 (selftest::fail): Likewise.
2987 (selftest::fail_formatted): Likewise.
2988 (selftest::assert_streq): Likewise.
2989 (ASSERT_TRUE): Update for above changes, using SELFTEST_LOCATION.
2990 (ASSERT_FALSE): Likewise.
2991 (ASSERT_EQ): Likewise.
2992 (ASSERT_NE): Likewise.
2993 (ASSERT_STREQ): Likewise.
2994 (ASSERT_PRED1): Likewise.
2995 (ASSERT_STREQ_AT): New macro.
2996
2997 2016-06-13 David Malcolm <dmalcolm@redhat.com>
2998
2999 * selftest.c (selftest::fail_formatted): New function.
3000 (selftest::assert_streq): New function.
3001 * selftest.h (selftests::fail_formatted): New decl.
3002 (selftest::assert_streq): New decl.
3003 (ASSERT_STREQ): Reimplement in terms of selftest::assert_streq.
3004
3005 2016-06-13 Jeff Law <law@redhat.com>
3006
3007 PR tree-optimization/71403
3008 * tree-ssa-threadbackward.c
3009 (convert_and_register_jump_thread_path): No longer accept reference
3010 to path. Do not pop items off the path anymore.
3011 (fsm_find_control_statement_thread_paths): Do not allow threading
3012 to a deeper loop nest. Pop the last item off the path here rather
3013 than in convert_and_register_jump_thread_path.
3014
3015 2016-06-13 Evandro Menezes <e.menezes@samsung.com>
3016 Wilco Dijkstra <Wilco.Dijkstra@arm.com>
3017
3018 [AArch64] Emit division using the Newton series
3019
3020 * config/aarch64/aarch64-protos.h
3021 (cpu_approx_modes): Add new member "division".
3022 (aarch64_emit_approx_div): Declare new function.
3023 * config/aarch64/aarch64.c
3024 (generic_approx_modes): New member "division".
3025 (exynosm1_approx_modes): Likewise.
3026 (xgene1_approx_modes): Likewise.
3027 (aarch64_emit_approx_div): Define new function.
3028 * config/aarch64/aarch64.md ("div<mode>3"): New expansion.
3029 * config/aarch64/aarch64-simd.md ("div<mode>3"): Likewise.
3030 * config/aarch64/aarch64.opt (-mlow-precision-div): Add new option.
3031 * doc/invoke.texi (-mlow-precision-div): Describe new option.
3032
3033 2016-06-13 Evandro Menezes <e.menezes@samsung.com>
3034 Wilco Dijkstra <wilco.dijkstra@arm.com>
3035
3036 [AArch64] Emit square root using the Newton series
3037
3038 * config/aarch64/aarch64-protos.h
3039 (aarch64_emit_approx_rsqrt): Replace with new function
3040 "aarch64_emit_approx_sqrt".
3041 (cpu_approx_modes): New member "sqrt".
3042 * config/aarch64/aarch64.c
3043 (generic_approx_modes): New member "sqrt".
3044 (exynosm1_approx_modes): Likewise.
3045 (xgene1_approx_modes): Likewise.
3046 (aarch64_emit_approx_rsqrt): Replace with new function
3047 "aarch64_emit_approx_sqrt".
3048 (aarch64_override_options_after_change_1): Handle new option.
3049 * config/aarch64/aarch64-simd.md
3050 (rsqrt<mode>2): Use new function instead.
3051 (sqrt<mode>2): New expansion and insn definitions.
3052 * config/aarch64/aarch64.md: Likewise.
3053 * config/aarch64/aarch64.opt
3054 (mlow-precision-sqrt): Add new option description.
3055 * doc/invoke.texi (mlow-precision-sqrt): Likewise.
3056
3057 2016-06-13 Evandro Menezes <e.menezes@samsung.com>
3058
3059 [AArch64] Add more choices for the reciprocal square root approximation
3060
3061 Allow a target to prefer such operation depending on the operation mode.
3062
3063 * config/aarch64/aarch64-protos.h
3064 (AARCH64_APPROX_MODE): New macro.
3065 (AARCH64_APPROX_{NONE,ALL}): Likewise.
3066 (cpu_approx_modes): New structure.
3067 (tune_params): New member "approx_modes".
3068 * config/aarch64/aarch64-tuning-flags.def
3069 (AARCH64_EXTRA_TUNE_APPROX_RSQRT): Remove macro.
3070 * config/aarch64/aarch64.c
3071 (generic_approx_modes): New core "cpu_approx_modes" structure.
3072 (exynosm1_approx_modes): Likewise.
3073 (xgene1_approx_modes): Likewise.
3074 (generic_tunings): New member "approx_modes".
3075 (cortexa35_tunings): Likewise.
3076 (cortexa53_tunings): Likewise.
3077 (cortexa57_tunings): Likewise.
3078 (cortexa72_tunings): Likewise.
3079 (exynosm1_tunings): Likewise.
3080 (thunderx_tunings): Likewise.
3081 (xgene1_tunings): Likewise.
3082 (use_rsqrt_p): New argument for the mode and use new member from
3083 "tune_params".
3084 (aarch64_builtin_reciprocal): Devise mode from builtin.
3085 (aarch64_optab_supported_p): New argument for the mode.
3086 * doc/invoke.texi (-mlow-precision-recip-sqrt): Reword description.
3087
3088 2016-06-13 Kelvin Nilsen <kelvin@gcc.gnu.org>
3089
3090 * config/rs6000/rs6000.h (RS6000_BTM_COMMON): Add the
3091 RS6000_BTM_MODULO flag into the set of flags that are considered
3092 to be part of the common configuration.
3093
3094 2016-06-13 Kelvin Nilsen <kelvin@gcc.gnu.org>
3095
3096 * config/rs6000/altivec.h (vec_absd): New macro for vector absolute
3097 difference unsigned.
3098 (vec_absdb): New macro for vector absolute difference unsigned
3099 byte.
3100 (vec_absdh): New macro for vector absolute difference unsigned
3101 half-word.
3102 (vec_absdw): New macro for vector absolute difference unsigned word.
3103 * config/rs6000/altivec.md (UNSPEC_VADU): New value.
3104 (vadu<mode>3): New insn.
3105 (*p9_vadu<mode>3): New insn.
3106 * config/rs6000/rs6000-builtin.def (vadub): New built-in
3107 definition.
3108 (vaduh): New built-in definition.
3109 (vaduw): New built-in definition.
3110 (vadu): New overloaded built-in definition.
3111 (vadub): New overloaded built-in definition.
3112 (vaduh): New overloaded built-in definition.
3113 (vaduw): New overloaded built-in definition.
3114 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
3115 overloaded vector absolute difference unsigned functions.
3116 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
3117 the ISA 3.0 vector absolute difference unsigned built-in functions.
3118
3119 2016-06-13 Eric Botcazou <ebotcazou@adacore.com>
3120
3121 * tree-ssa-sccvn.c (vn_reference_lookup_3): Use a uniform test and
3122 update shared_lookup_references only once after changing operands.
3123
3124 2016-06-13 Thomas Schwinge <thomas@codesourcery.com>
3125
3126 PR middle-end/71373
3127 * tree-nested.c (convert_nonlocal_omp_clauses)
3128 (convert_local_omp_clauses): Document missing OMP_CLAUSE_*.
3129
3130 * tree-cfg.c (edge_to_cases_cleanup): Fix CASE_CHAIN typo.
3131 * tree.def (CASE_LABEL_EXPR): Likewise.
3132
3133 2016-06-13 Bernd Edlinger <bernd.edlinger@hotmail.de>
3134
3135 PR bootstrap/71481
3136 * input.c (test_builtins): Fix an assertion.
3137
3138 2016-06-13 Uros Bizjak <ubizjak@gmail.com>
3139
3140 * config/i386/i386.md (paritydi2): Use ix86_expand_setcc.
3141 (paritysi2): Ditto.
3142 (isinfxf2): Ditto.
3143 (isinf<mode>2): Ditto.
3144
3145 2016-06-13 Uros Bizjak <ubizjak@gmail.com>
3146
3147 * ggc-tests.c (test_finalization): Only test need_finalization_p
3148 for GCC_VERSION >= 4003.
3149
3150 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3151
3152 * config/s390/vecintrin.h: Fix file description in comment.
3153
3154 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3155
3156 * config/s390/s390-builtin-types.def: Change builtin type naming
3157 scheme to match builtin-types.def.
3158
3159 2016-06-13 Marc Glisse <marc.glisse@inria.fr>
3160
3161 * fold-const.c (optimize_minmax_comparison): Remove.
3162 (fold_comparison): Remove call to the above.
3163 * match.pd (MIN (X, Y) == X, MIN (X, 5) == 0, MIN (X, C1) < C2):
3164 New transformations.
3165
3166 2016-06-13 Alan Hayward <alan.hayward@arm.com>
3167
3168 PR tree-optimization/71416
3169 * tree-vect-loop.c (vectorizable_live_operation): Let worklist have
3170 multiple entries
3171
3172 2016-06-13 Martin Liska <mliska@suse.cz>
3173
3174 * predict.c (enum predictor_reason): Prefix enum with REASON_.
3175 (combine_predictions_for_insn): Likewise.
3176 (prune_predictions_for_bb): Likewise.
3177 (combine_predictions_for_bb): Likewise.
3178
3179 2016-06-13 Richard Biener <rguenther@suse.de>
3180
3181 PR tree-optimization/71505
3182 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Make
3183 assert match comment.
3184
3185 2016-06-13 Marek Polacek <polacek@redhat.com>
3186
3187 PR middle-end/71476
3188 * gimplify.c (maybe_warn_switch_unreachable): Factored out of
3189 gimplify_switch_expr.
3190 (warn_switch_unreachable_r): New function.
3191
3192 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3193
3194 PR target/71379
3195 * config/s390/s390.c (s390_expand_builtin): Increase MAX_ARGS by
3196 one.
3197
3198 2016-06-13 Richard Biener <rguenther@suse.de>
3199
3200 PR middle-end/64516
3201 * fold-const.c (fold_unary_loc): Preserve alignment when
3202 folding a VIEW_CONVERT_EXPR into a MEM_REF.
3203
3204 2016-06-13 Martin Liska <mliska@suse.cz>
3205
3206 PR sanitizer/71458
3207 * toplev.c (process_options): Do not enable -fcheck-pointer-bounds
3208 w/ -fsanitize=bounds.
3209
3210 2016-06-12 Uros Bizjak <ubizjak@gmail.com>
3211
3212 * config/i386/i386.c (ix86_init_builtins): Calculate
3213 FLOAT128_FTYPE_CONST_STRING function type only once.
3214 * doc/extend.texi (x86 Built-in Functions): Update text, __float128
3215 built-in functions are available for x86-32 and x86-64 targets.
3216
3217 2016-06-12 Uros Bizjak <ubizjak@gmail.com>
3218
3219 PR target/71241
3220 * config/i386/i386.i386-builtin-types.def (CONST_STRING):
3221 New primitive type.
3222 (FLOAT128_FTYPE_CONST_STRING): New function type.
3223 * config/i386/i386.c (enum ix86_builtins) [IX86_BUILTIN_NANQ]: New.
3224 [IX86_BUILTIN_NANSQ]: Ditto.
3225 (ix86_fold_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
3226 (ix86_init_builtin_types): Declare const_string_type_node.
3227 (ix86_init_builtins): Add __builtin_nanq and __builtin_nansq
3228 builtin functions.
3229 (ix86_expand_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
3230 * doc/extend.texi (x86 Built-in Functions): Document
3231 __builtin_nanq and __builtin_nansq.
3232
3233 2016-06-11 Jiong Wang <jiong.wang@arm.com>
3234
3235 PR target/71061
3236 * config/arm/arm-protos.h (arm_attr_length_pop_multi): New declaration.
3237 * config/arm/arm.c (arm_attr_length_pop_multi): New function to return
3238 length for pop patterns.
3239 (arm_attr_length_push_multi): Update comments.
3240 * config/arm/arm.md (*load_multiple_with_writeback): Set "length"
3241 attribute.
3242 (*pop_multiple_with_writeback_and_return): Likewise.
3243 (*pop_multiple_with_return): Likewise.
3244
3245 2016-06-11 Segher Boessenkool <segher@kernel.crashing.org>
3246
3247 PR middle-end/71310
3248 * fold-const.c (optimize_bit_field_compare): Don't try to use
3249 word_mode unconditionally for reading the bit field, look at
3250 DECL_BIT_FIELD_REPRESENTATIVE instead.
3251
3252 2016-06-11 Kugan Vivekanandarajah <kuganv@linaro.org>
3253
3254 PR middle-end/71478
3255 * tree-ssa-reassoc.c (reassociate_bb): Remove (-1) from ops list for
3256 vector integer type.
3257
3258 2016-06-10 Jakub Jelinek <jakub@redhat.com>
3259
3260 PR middle-end/71494
3261 * tree-nested.c (convert_nonlocal_reference_stmt): For GIMPLE_GOTO
3262 without LABEL_DECL, set *handled_ops_p to false instead of true.
3263
3264 2016-06-10 Martin Sebor <msebor@redhat.com>
3265
3266 PR c/71392
3267 * builtin-attrs.def (ATTR_NOTHROW_NONNULL_LEAF_LIST): New macro.
3268 (ATTR_NOTHROW_NONNULL_TYPEGENERIC_LEAF): Same.
3269 * builtins.def (BUILT_IN_SADD_OVERFLOW, BUILT_IN_SADDL_OVERFLOW): Use
3270 them.
3271 (BUILT_IN_SADDLL_OVERFLOW, BUILT_IN_SSUB_OVERFLOW): Same.
3272 (BUILT_IN_SSUBL_OVERFLOW, BUILT_IN_SSUBLL_OVERFLOW): Same.
3273 (BUILT_IN_SMUL_OVERFLOW, BUILT_IN_SMULL_OVERFLOW): Same.
3274 (BUILT_IN_SMULLL_OVERFLOW, BUILT_IN_UADD_OVERFLOW): Same.
3275 (BUILT_IN_UADDL_OVERFLOW, BUILT_IN_UADDLL_OVERFLOW): Same.
3276 (BUILT_IN_USUB_OVERFLOW, BUILT_IN_USUBL_OVERFLOW): Same.
3277 (BUILT_IN_USUBLL_OVERFLOW, BUILT_IN_UMUL_OVERFLOW): Same.
3278 (BUILT_IN_UMULL_OVERFLOW, BUILT_IN_UMULLL_OVERFLOW): Same.
3279
3280 2016-06-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
3281
3282 * config/arm/arm.h (pool_vector_label,
3283 return_used_this_function): Remove.
3284
3285 2016-06-10 Jeff Law <law@redhat.com>
3286
3287 PR tree-optimization/71335
3288 * tree-ssa-threadbackward.c (profitable_jump_thread_path): Filter out
3289 zero length paths here.
3290 (convert_and_register_jump_thread_path): Remove hacks related to
3291 duplicated blocks in the jump thread path.
3292 (fsm_find_control_statement_thread_paths): Avoid putting the same
3293 block on the thread path twice, but ensure the thread path is
3294 unchanged from the caller's point of view.
3295
3296 2016-06-10 Jan Hubicka <hubicka@ucw.cz>
3297
3298 * predict.c (predict_loops): Remove PRED_LOOP_BRANCH.
3299 * predict.def (PRED_LOOP_BRANCH): Remove.
3300
3301 2016-06-10 David Malcolm <dmalcolm@redhat.com>
3302
3303 * Makefile.in (OBJS): Add ggc-tests.o.
3304 (GTFILES): Add ggc-tests.c.
3305 * ggc-tests.c: New file.
3306 * selftest-run-tests.c (selftest::run_tests): Call
3307 selftest::ggc_tests_c_tests.
3308 * selftest.h (selftest::ggc_tests_c_tests): New prototype.
3309
3310 2016-06-10 Alexander Monakov <amonakov@ispras.ru>
3311
3312 * match.pd (-1 / B < A): Use :c to avoid pattern duplication.
3313
3314 2016-06-10 Maxim Ostapenko <m.ostapenko@samsung.com>
3315
3316 PR sanitizer/71480
3317 * varasm.c (place_block_symbol): Adjust alignment for asan protected
3318 STRING_CSTs even if TREE_CONSTANT_POOL_ADDRESS_P.
3319
3320 2016-06-10 Jan Hubicka <hubicka@ucw.cz>
3321
3322 * profile.c: Include cfgloop.h.
3323 (branch_prob): Compute estimated number of iterations.
3324 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Do not
3325 recompute estimate number of iterations from profile.
3326
3327 2016-06-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
3328
3329 PR inline-asm/68843
3330 * reg-stack.c (check_asm_stack_operands): Explicit input arguments
3331 must be grouped on top of stack. Don't force early clobber
3332 on ordinary reg outputs.
3333
3334 2016-06-10 Richard Biener <rguenther@suse.de>
3335
3336 * targhooks.c (default_builtin_vectorization_cost): Adjust
3337 vec_construct cost.
3338
3339 2016-06-10 Richard Biener <rguenther@suse.de>
3340
3341 * gimple-fold.c (gimple_fold_builtin_memory_op): Make sure
3342 to fold the RHS to a constant if possible.
3343
3344 2016-06-10 Thomas Schwinge <thomas@codesourcery.com>
3345
3346 PR middle-end/71373
3347 * tree-nested.c (convert_nonlocal_omp_clauses)
3348 (convert_local_omp_clauses): Handle OMP_CLAUSE_ASYNC,
3349 OMP_CLAUSE_WAIT, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
3350 OMP_CLAUSE__CACHE_, OMP_CLAUSE_TILE.
3351
3352 * gimplify.c (gimplify_adjust_omp_clauses): Discard
3353 OMP_CLAUSE_TILE.
3354 * omp-low.c (scan_sharing_clauses): Don't expect OMP_CLAUSE_TILE.
3355
3356 * omp-low.c (scan_sharing_clauses): Don't expect
3357 OMP_CLAUSE__CACHE_.
3358
3359 2016-06-10 Alan Hayward <alan.hayward@arm.com>
3360
3361 PR tree-optimization/71407
3362 PR tree-optimization/71416
3363 * tree-vect-loop.c (vectorizable_live_operation): Use vectype for
3364 BIT_FIELD_REF type.
3365
3366 2016-06-10 Richard Biener <rguenther@suse.de>
3367
3368 PR middle-end/71477
3369 * cfgloop.c (alloc_loop): Initialize nb_iterations_likely_upper_bound.
3370
3371 2016-06-09 Eric Botcazou <ebotcazou@adacore.com>
3372
3373 * df-problems.c (df_note_bb_compute): Guard use of DF_INSN_INFO_GET.
3374
3375 2016-06-09 Vladimir Makarov <vmakarov@redhat.com>
3376 Jiong Wang <jiong.wang@arm.com>
3377
3378 PR rtl-optimization/70751
3379 * lra-constraints.c (process_alt_operands): Recognize Non-pseudo
3380 spilled into memory.
3381
3382 2016-06-09 Jonathan Yong <10walls@gmail.com>
3383
3384 Revert:
3385 2015-09-21 Jonathan Yong <10walls@gmail.com>
3386
3387 * config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search
3388 sysroot/usr/lib/32api for additional win32 libraries,
3389 fixes failing Cygwin bootstrapping.
3390
3391 2016-06-09 Marcin Baczyński <marbacz@gmail.com>
3392
3393 * diagnostic.h (diagnostic_line_cutoff, diagnostic_flush_buffer):
3394 Delete.
3395
3396 2016-06-09 David Malcolm <dmalcolm@redhat.com>
3397
3398 PR bootstrap/71471
3399 * pretty-print.c (pp_indent): Specify that %p is printed in a
3400 host-dependent manner.
3401 (test_pp_format): Remove the test for %p.
3402
3403 2016-06-09 Maciej W. Rozycki <macro@imgtec.com>
3404
3405 * config/mips/mips.c (mips_output_jump): Fix formatting.
3406
3407 2016-06-09 Richard Biener <rguenther@suse.de>
3408
3409 PR tree-optimization/71462
3410 * tree-ssa-loop-manip.c (find_uses_to_rename): Guard against
3411 removed blocks.
3412
3413 2016-06-09 Martin Liska <mliska@suse.cz>
3414
3415 * predict.c (dump_prediction): Add new argument.
3416 (enum predictor_reason): New enum.
3417 (struct predictor_hash): New struct.
3418 (predictor_hash::hash): New function.
3419 (predictor_hash::equal): Likewise.
3420 (not_removed_prediction_p): New function.
3421 (prune_predictions_for_bb): Likewise.
3422 (combine_predictions_for_bb): Prune predictions.
3423
3424 2016-06-09 Martin Liska <mliska@suse.cz>
3425
3426 * predict.c (filter_predictions): New function.
3427 (remove_predictions_associated_with_edge): Use the filter
3428 function.
3429 (equal_edge_p): New function.
3430
3431 2016-06-09 Stefan Bruens <stefan.bruens@rwth-aachen.de>
3432
3433 * doc/invoke.texi (ARM Options): Use lexicographical ordering.
3434 Correct usage of @samp vs @option, add @samp where appropriate.
3435 Add -march={armv6k,armv6z,arm6zk}, remove -march=ep9312.
3436 Add armv6s-m and document it, as it is no official ARM name.
3437
3438 2016-06-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3439
3440 * ifcvt.c (struct noce_if_info): Add transform_name field.
3441 (noce_try_move): Set if_info->transform_name to the function name.
3442 (noce_try_ifelse_collapse): Likewise.
3443 (noce_try_store_flag): Likewise.
3444 (noce_try_inverse_constants): Likewise.
3445 (noce_try_store_flag_constants): Likewise.
3446 (noce_try_addcc): Likewise.
3447 (noce_try_store_flag_mask): Likewise.
3448 (noce_try_cmove): Likewise.
3449 (noce_try_cmove_arith): Likewise.
3450 (noce_try_minmax): Likewise.
3451 (noce_try_abs): Likewise.
3452 (noce_try_sign_mask): Likewise.
3453 (noce_try_bitop): Likewise.
3454 (noce_convert_multiple_sets): Likewise.
3455 (noce_process_if_block): Print if_info->transform_name to
3456 dump_file if transformation succeeded.
3457
3458 2016-06-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3459
3460 * config/arm/cortex-a57.md (cortex_a57_alu):
3461 Handle csel type.
3462
3463 2016-06-08 Martin Sebor <msebor@redhat.com>
3464 Jakub Jelinek <jakub@redhat.com>
3465
3466 PR c++/70507
3467 PR c/68120
3468 * builtins.def (BUILT_IN_ADD_OVERFLOW_P, BUILT_IN_SUB_OVERFLOW_P,
3469 BUILT_IN_MUL_OVERFLOW_P): New builtins.
3470 * builtins.c: Include gimple-fold.h.
3471 (fold_builtin_arith_overflow): Handle
3472 BUILT_IN_{ADD,SUB,MUL}_OVERFLOW_P.
3473 (fold_builtin_3): Likewise.
3474 * doc/extend.texi (Integer Overflow Builtins): Document
3475 __builtin_{add,sub,mul}_overflow_p.
3476
3477 2016-06-08 Jose E. Marchesi <jose.marchesi@oracle.com>
3478
3479 * config/sparc/driver-sparc.c (cpu_names): Fix the entry for the
3480 SPARC-M7 and add an entry for SPARC-S7 cpus (Sonoma).
3481
3482 2016-06-08 Alan Lawrence <alan.lawrence@arm.com>
3483
3484 * config/aarch64/aarch64.c (aarch64_function_arg_alignment):
3485 Rewrite, looking one level down for records and arrays.
3486
3487 2016-06-08 David Malcolm <dmalcolm@redhat.com>
3488
3489 * pretty-print.c: Include "selftest.h".
3490 (pp_format): Fix comment.
3491 (identifier_to_locale): Likewise.
3492 (selftest::test_basic_printing): New function.
3493 (selftest::assert_pp_format): New function.
3494 (selftest::test_pp_format): New function.
3495 (selftest::pretty_print_c_tests): New function.
3496 * selftest-run-tests.c (selftest::run_tests): Call
3497 selftest::pretty_print_c_tests.
3498 * selftest.h (pretty_print_c_tests): New declaration.
3499
3500 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
3501
3502 * invoke.texi (max-loop-headers-insns): Document.
3503 * params.def (PARAM_MAX_LOOP_HEADER_INSNS): New.
3504 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Update comment.
3505 (ch_base::copy_headers): Use PARAM_MAX_LOOP_HEADER_INSNS.
3506
3507 2016-06-08 Richard Biener <rguenther@suse.de>
3508
3509 * tree-vect-stmts.c (vectorizable_load): Remove restrictions
3510 on strided SLP loads and fall back to scalar loads in case
3511 we can't chunk them.
3512
3513 2016-06-08 Richard Biener <rguenther@suse.de>
3514
3515 PR tree-optimization/71452
3516 * tree-ssa.c (non_rewritable_lvalue_p): Make sure that the
3517 type used for the SSA rewrite has enough precision to cover
3518 the dynamic type of the location.
3519
3520 2016-06-08 Jakub Jelinek <jakub@redhat.com>
3521 Richard Biener <rguenther@suse.de>
3522
3523 PR c++/71448
3524 * fold-const.c (fold_comparison): Handle CONSTANT_CLASS_P (base0)
3525 the same as DECL_P (base0) for indirect_base0. Use equality_code
3526 in one further place.
3527
3528 2016-06-08 Richard Sandiford <richard.sandiford@arm.com>
3529
3530 * expmed.c (store_bit_field_1): Do not restrict a multiword op0
3531 to one word if the field is known to overlap other words.
3532 (extract_bit_field_1): Likewise.
3533 (store_split_bit_field): Remove compensating code.
3534 (extract_split_bit_field): Likewise.
3535
3536 2016-06-08 Bernd Schmidt <bschmidt@redhat.com>
3537
3538 PR debug/71432
3539 PR ada/71413
3540 * tree-ssa-strlen.c (handle_builtin_memcmp): Ignore debug insns.
3541
3542 2016-06-08 Jiong Wang <jiong.wang@arm.com>
3543
3544 * config/aarch64/aarch64-builtins.def (faddp): New builtins for modes in
3545 VDQF.
3546 * config/aarch64/aarch64-simd.md (aarch64_faddp<mode>): New.
3547 (arch64_addpv4sf): Delete.
3548 (reduc_plus_scal_v4sf): Use "gen_aarch64_faddpv4sf" instead of
3549 "gen_aarch64_addpv4sf".
3550 * config/aarch64/arm_neon.h (vpadd_f32): Remove inline assembly. Use
3551 builtin.
3552 (vpadds_f32): Likewise.
3553 (vpaddq_f32): Likewise.
3554 (vpaddq_f64): Likewise.
3555
3556 2016-06-08 Jiong Wang <jiong.wang@arm.com>
3557
3558 * config/aarch64/aarch64-builtins.def (fabd): New builtins for modes
3559 VALLF.
3560 * config/aarch64/aarch64-simd.md (fabd<mode>_3): Extend modes from VDQF
3561 to VALLF. Rename to "fabd<mode>3".
3562 "*fabd_scalar<mode>3): Delete.
3563 * config/aarch64/arm_neon.h (vabds_f32): Remove inline assembly.
3564 Use builtin.
3565 (vabdd_f64): Likewise.
3566 (vabd_f32): Likewise.
3567 (vabd_f64): Likewise.
3568 (vabdq_f32): Likewise.
3569 (vabdq_f64): Likewise.
3570
3571 2016-06-08 Jiong Wang <jiong.wang@arm.com>
3572
3573 * config/aarch64/aarch64-builtins.def (rsqrts): New builtins for modes
3574 VALLF.
3575 * config/aarch64/aarch64-simd.md (aarch64_rsqrts_<mode>3): Rename to
3576 "aarch64_rsqrts<mode>".
3577 * config/aarch64/aarch64.c (get_rsqrts_type): Update gen* name.
3578 * config/aarch64/arm_neon.h (vrsqrtss_f32): Remove inline assembly. Use
3579 builtin.
3580 (vrsqrtsd_f64): Likewise.
3581 (vrsqrts_f32): Likewise.
3582 (vrsqrts_f64): Likewise.
3583 (vrsqrtsq_f32): Likewise.
3584 (vrsqrtsq_f64): Likewise.
3585
3586 2016-06-08 Jiong Wang <jiong.wang@arm.com>
3587
3588 * config/aarch64/aarch64-builtins.def (rsqrte): New builtins for modes
3589 VALLF.
3590 * config/aarch64/aarch64-simd.md (aarch64_rsqrte_<mode>2): Rename to
3591 "aarch64_rsqrte<mode>".
3592 * config/aarch64/aarch64.c (get_rsqrte_type): Update gen* name.
3593 * config/aarch64/arm_neon.h (vrsqrts_f32): Remove inline assembly. Use
3594 builtin.
3595 (vrsqrted_f64): Likewise.
3596 (vrsqrte_f32): Likewise.
3597 (vrsqrte_f64): Likewise.
3598 (vrsqrteq_f32): Likewise.
3599 (vrsqrteq_f64): Likewise.
3600
3601 2016-06-08 Jiong Wang <jiong.wang@arm.com>
3602
3603 * config/aarch64/aarch64-builtins.def (scvtf): Register vector modes.
3604 (ucvtf): Likewise.
3605 (fcvtzs): Likewise.
3606 (fcvtzu): Likewise.
3607 * config/aarch64/aarch64-simd.md
3608 (<FCVT_F2FIXED:fcvt_fixed_insn><VDQF:mode>3): New.
3609 (<FCVT_FIXED2F:fcvt_fixed_insn><VDQ_SDI:mode>3): Likewise.
3610 * config/aarch64/arm_neon.h (vcvt_n_f32_s32): Remove inline assembly.
3611 Use builtin.
3612 (vcvt_n_f32_u32): Likewise.
3613 (vcvt_n_s32_f32): Likewise.
3614 (vcvt_n_u32_f32): Likewise.
3615 (vcvtq_n_f32_s32): Likewise.
3616 (vcvtq_n_f32_u32): Likewise.
3617 (vcvtq_n_f64_s64): Likewise.
3618 (vcvtq_n_f64_u64): Likewise.
3619 (vcvtq_n_s32_f32): Likewise.
3620 (vcvtq_n_s64_f64): Likewise.
3621 (vcvtq_n_u32_f32): Likewise.
3622 (vcvtq_n_u64_f64): Likewise.
3623 * config/aarch64/iterators.md (VDQ_SDI): New mode iterator.
3624 (VSDQ_SDI): Likewise.
3625 (fcvt_target): Support V4DI, V4SI and V2SI.
3626 (FCVT_TARGET): Likewise.
3627
3628 2016-06-08 Jiong Wang <jiong.wang@arm.com>
3629
3630 * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New
3631 (TYPES_BINOP_SUS): Likewise.
3632 (aarch64_simd_builtin_data): Update include file name.
3633 (aarch64_builtins): Likewise.
3634 * config/aarch64/aarch64-simd-builtins.def (scvtf): New entries
3635 for conversion between scalar float-point and fixed-point.
3636 (ucvtf): Likewise.
3637 (fcvtzs): Likewise.
3638 (fcvtzu): Likewise.
3639 * config/aarch64/aarch64.md
3640 (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3: New
3641 pattern for conversion between scalar float to fixed-pointer.
3642 (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>: Likewise.
3643 (UNSPEC_FCVTZS): New UNSPEC enumeration.
3644 (UNSPEC_FCVTZU): Likewise.
3645 (UNSPEC_SCVTF): Likewise.
3646 (UNSPEC_UCVTF): Likewise.
3647 * config/aarch64/arm_neon.h (vcvtd_n_f64_s64): Remove inline assembly.
3648 Use builtin.
3649 (vcvtd_n_f64_u64): Likewise.
3650 (vcvtd_n_s64_f64): Likewise.
3651 (vcvtd_n_u64_f64): Likewise.
3652 (vcvtd_n_f32_s32): Likewise.
3653 (vcvts_n_f32_u32): Likewise.
3654 (vcvtd_n_s32_f32): Likewise.
3655 (vcvts_n_u32_f32): Likewise.
3656 * config/aarch64/iterators.md (fcvt_target): Support integer to float
3657 mapping.
3658 (FCVT_TARGET): Likewise.
3659 (FCVT_FIXED2F): New iterator.
3660 (FCVT_F2FIXED): Likewise.
3661 (fcvt_fixed_insn): New define_int_attr.
3662
3663 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
3664
3665 * predict.c (pass_strip_predict_hints::execute): Cleanup CFG if
3666 some statements was removed.
3667
3668 2016-06-08 Alan Hayward <alan.hayward@arm.com>
3669
3670 * tree-vect-data-refs.c (vect_analyze_data_refs): Remove debug newline.
3671 * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): likewise.
3672 (vect_can_advance_ivs_p): likewise.
3673 (vect_update_ivs_after_vectorizer): likewise.
3674 * tree-vect-loop.c (vect_determine_vectorization_factor): likewise.
3675 (vect_analyze_scalar_cycles_1): likewise.
3676 (vect_analyze_loop_operations): likewise.
3677 (report_vect_op): likewise.
3678 (vect_is_slp_reduction): likewise.
3679 (vect_is_simple_reduction): likewise.
3680 (get_initial_def_for_induction): likewise.
3681 (vect_transform_loop): likewise.
3682 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): likewise.
3683 (vect_recog_sad_pattern): likewise.
3684 (vect_recog_widen_sum_pattern): likewise.
3685 (vect_recog_widening_pattern): likewise.
3686 (vect_recog_divmod_pattern): likewise.
3687 * tree-vect-slp.c (vect-build-slp_tree_1): likewise.
3688 (vect_analyze_slp_instance): likewise.
3689 (vect_transform_slp_perm_load): likewise.
3690 (vect_schedule_slp_instance): likewise.
3691
3692 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
3693
3694 * predict.c (predict_iv_comparison): Mention that heuristics is broken.
3695 (return_prediction): PRED_CONST_RETURN predict return as not taken.
3696 * predict.def (PRED_CONTINUE): Change hitrate 50->67
3697 (PRED_LOOP_BRANCH): Document predictor as broken.
3698 (PRED_LOOP_EXIT): Change hitrate 91->92.
3699 (PRED_LOOP_EXTRA_EXIT): Change hitrate 91->83.
3700 (PRED_POINTER, PRED_TREE_POINTER): Change hitrate 85->70.
3701 (PRED_OPCODE_POSITIVE): Change hitrate 79->64.
3702 (PRED_OPCODE_NONEQUAL): Change hitrate 91->66.
3703 (PRED_TREE_OPCODE_POSITIVE): Change hitrate 73->64
3704 (PRED_TREE_OPCODE_NONEQUAL): Chnage hitrate 72->66
3705 (PRED_CALL): Chane hitrate 71->67.
3706 (PRED_TREE_EARLY_RETURN): Document issues, change hitrate 61->54.
3707 (PRED_GOTO): Document as unused right now.
3708 (PRED_CONST_RETURN): Change hitrate 67->69
3709 (PRED_NEGATIVE_RETURN): Change hitrate 96->98
3710 (PRED_NULL_RETURN): Change hitrate 91->90.
3711 (PRED_LOOP_IV_COMPARE_GUESS): Change hitrate to 98.
3712 (PRED_FORTRAN_FAIL_ALLOC): Change hitrate to 62; document issues.
3713 (PRED_FORTRAN_SIZE_ZERO): Change hitrate to 99.
3714
3715 2016-06-07 Bill Seurer <seurer@linux.vnet.ibm.com>
3716
3717 * config/rs6000/altivec.h: Add __builtin_vec_mul.
3718 * config/rs6000/rs6000-builtin.def (vec_mul): Change vec_mul to a
3719 special case Altivec builtin.
3720 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
3721 VSX_BUILTIN_VEC_MUL (replaced with special case code).
3722 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
3723 code for ALTIVEC_BUILTIN_VEC_MUL.
3724 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
3725 for __builtin_vec_mul.
3726
3727 2016-06-07 Peter Bergner <bergner@vnet.ibm.com>
3728
3729 * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mhtm and
3730 -mno-htm.
3731
3732 2016-06-07 David Malcolm <dmalcolm@redhat.com>
3733
3734 * spellcheck.c (selftest::test_find_closest_string): New function.
3735 (spellcheck_c_tests): Call the above.
3736
3737 2016-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3738
3739 * simplify-rtx.c (simplify_cond_clz_ctz): Delete 'mode' local variable.
3740
3741 2016-06-07 Jakub Jelinek <jakub@redhat.com>
3742
3743 * config/i386/sse.md (avx_vec_concat<mode>): Add v=v,vm and
3744 Yv=Yv,C alternatives.
3745
3746 2016-06-07 Richard Biener <rguenther@suse.de>
3747
3748 PR c/61564
3749 * common.opt (ffast-math): Make Optimization.
3750
3751 2016-06-07 Simon Dardis <simon.dardis@imgtec.com>
3752 Prachi Godbole <prachi.godbole@imgtec.com>
3753
3754 * config/mips/p5600.md (p5600_fpu_fadd): Remove checking for
3755 `fabs' and `fneg' type attributes.
3756 (p5600_fpu_fabs): Add `fmove' to the comment.
3757
3758 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
3759
3760 * gimple.c: Include builtins.h
3761 (gimple_inexpensive_call_p): New function.
3762 * gimple.h (gimple_inexpensive_call_p): Declare.
3763 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use it.
3764 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise;
3765 fix formatting.
3766
3767 2016-06-07 Paolo Carlini <paolo.carlini@oracle.com>
3768
3769 * diagnostic.c (diagnostic_impl, diagnostic_n_impl): New.
3770 (inform, inform_at_rich_loc, inform_n, warning, warning_at,
3771 warning_at_rich_loc, warning_n, pedwarn, permerror,
3772 permerror_at_rich_loc, error, error_n, error_at, error_at_rich_loc,
3773 sorry, fatal_error, internal_error, internal_error_no_backtrace):
3774 Use the above.
3775
3776 2016-06-07 Richard Biener <rguenther@suse.de>
3777
3778 PR tree-optimization/71428
3779 * tree-ssa-math-opts.c (perform_symbolic_merge): Properly distinguish
3780 BIT_FIELD_REF op vs. load.
3781
3782 2016-06-07 Richard Biener <rguenther@suse.de>
3783
3784 PR middle-end/71423
3785 * match.pd ((X | ~Y) -> Y <= X): Properly invert the comparison
3786 for signed ops.
3787
3788 2016-06-06 John David Anglin <danglin@gcc.gnu.org>
3789
3790 * config/pa/pa.md (call): Generate indirect long calls to non-local
3791 functions on TARGET_64BIT.
3792 (call_value): Likewise.
3793
3794 2016-06-06 John David Anglin <danglin@gcc.gnu.org>
3795
3796 * config/pa/pa.md (call_val_reg_64bit): Remove "reg: DI " clobber from
3797 pattern and subsequent splitters.
3798 (call_val_reg_64bit_post_reload): Likewise.
3799
3800 2016-06-07 Kugan Vivekanandarajah <kuganv@linaro.org>
3801
3802 PR middle-end/71408
3803 * tree-ssa-reassoc.c (zero_one_operation): Fix NEGATE_EXPR operand for
3804 propagate_op_to_single_use.
3805
3806 2016-06-07 Kugan Vivekanandarajah <kuganv@linaro.org>
3807
3808 PR middle-end/71281
3809 * tree-ssa-reassoc.c (reassociate_bb): Set uid for negate stmt.
3810
3811 2016-06-07 Uros Bizjak <ubizjak@gmail.com>
3812
3813 * config/i386/i386.h (enum ix86_enitity): Add X86_DIRFLAG.
3814 (enum x86_dirflag_state): New enum.
3815 (NUM_MODES_FOR_MODE_SWITCHING): Add X86_DIRFLAG_ANY.
3816 (machine_function): Remove needs_cld.
3817 (ix86_current_function_needs_cld): Remove.
3818 * config/i386/i386.c (ix86_set_func_type): Set
3819 ix86_optimize_mode_switching[X86_DIRFLAG] to 1.
3820 (ix86_expand_prologue): Do not emit CLD here.
3821 (ix86_dirflag_mode_needed): New function.
3822 (ix86_dirflag_mode_entry): Ditto.
3823 (ix86_mode_needed): Handle X86_DIRFLAG entity.
3824 (ix86_mode_after): Ditto.
3825 (ix86_mode_entry): Ditto.
3826 (ix86_mode_exit): Ditto.
3827 (ix86_emit_mode_set): Ditto.
3828 * config/i386/i386.md (strmov_singleop): Set
3829 ix86_optimize_mode_switching[X86_DIRFLAG] to 1 for TARGET_CLD.
3830 Do not set ix86_current_function_needs_cld.
3831 (rep_mov): Ditto.
3832 (strset_singleop): Ditto.
3833 (rep_stos): Ditto.
3834 (cmpstrnqi_nz_1): Ditto.
3835 (cmpstrnqi_1): Ditto.
3836 (strlenqi_1): Ditto.
3837
3838 2016-06-06 Jakub Jelinek <jakub@redhat.com>
3839
3840 PR tree-optimization/71259
3841 * tree-vect-slp.c (vect_get_constant_vectors): For
3842 VECTOR_BOOLEAN_TYPE_P, return all ones constant instead of
3843 one for constant op, and use COND_EXPR for non-constant.
3844
3845 2016-06-06 David Malcolm <dmalcolm@redhat.com>
3846
3847 * Makefile.in (OBJS): Add function-tests.o,
3848 hash-map-tests.o, hash-set-tests.o, rtl-tests.o,
3849 selftest-run-tests.o.
3850 (OBJS-libcommon): Add selftest.o.
3851 (OBJS-libcommon-target): Add selftest.o.
3852 (all.internal): Add "selftest".
3853 (all.cross): Likewise.
3854 (selftest): New phony target.
3855 (s-selftest): New target.
3856 (selftest-gdb): New phony target.
3857 (COLLECT2_OBJS): Add selftest.o.
3858 * bitmap.c: Include "selftest.h".
3859 (selftest::test_gc_alloc): New function.
3860 (selftest::test_set_range): New function.
3861 (selftest::test_clear_bit_in_middle): New function.
3862 (selftest::test_copying): New function.
3863 (selftest::test_bitmap_single_bit_set_p): New function.
3864 (selftest::bitmap_c_tests): New function.
3865 * common.opt (fself-test): New.
3866 * diagnostic-show-locus.c: Include "selftest.h".
3867 (make_range): New function.
3868 (test_range_contains_point_for_single_point): New function.
3869 (test_range_contains_point_for_single_line): New function.
3870 (test_range_contains_point_for_multiple_lines): New function.
3871 (assert_eq): New function.
3872 (test_get_line_width_without_trailing_whitespace): New function.
3873 (selftest::diagnostic_show_locus_c_tests): New function.
3874 * et-forest.c: Include "selftest.h".
3875 (selftest::test_single_node): New function.
3876 (selftest::test_simple_tree): New function.
3877 (selftest::test_disconnected_nodes): New function.
3878 (selftest::et_forest_c_tests): New function.
3879 * fold-const.c: Include "selftest.h".
3880 (selftest::assert_binop_folds_to_const): New function.
3881 (selftest::assert_binop_folds_to_nonlvalue): New function.
3882 (selftest::test_arithmetic_folding): New function.
3883 (selftest::fold_const_c_tests): New function.
3884 * function-tests.c: New file.
3885 * gimple.c: Include "selftest.h".
3886 Include "gimple-pretty-print.h".
3887 (selftest::verify_gimple_pp): New function.
3888 (selftest::test_assign_single): New function.
3889 (selftest::test_assign_binop): New function.
3890 (selftest::test_nop_stmt): New function.
3891 (selftest::test_return_stmt): New function.
3892 (selftest::test_return_without_value): New function.
3893 (selftest::gimple_c_tests): New function.
3894 * hash-map-tests.c: New file.
3895 * hash-set-tests.c: New file.
3896 * input.c: Include "selftest.h".
3897 (selftest::assert_loceq): New function.
3898 (selftest::test_accessing_ordinary_linemaps): New function.
3899 (selftest::test_unknown_location): New function.
3900 (selftest::test_builtins): New function.
3901 (selftest::test_reading_source_line): New function.
3902 (selftest::input_c_tests): New function.
3903 * rtl-tests.c: New file.
3904 * selftest-run-tests.c: New file.
3905 * selftest.c: New file.
3906 * selftest.h: New file.
3907 * spellcheck.c: Include "selftest.h".
3908 (selftest::levenshtein_distance_unit_test_oneway): New function,
3909 adapted from testsuite/gcc.dg/plugin/levenshtein_plugin.c.
3910 (selftest::levenshtein_distance_unit_test): Likewise.
3911 (selftest::spellcheck_c_tests): Likewise.
3912 * toplev.c: Include selftest.h.
3913 (toplev::run_self_tests): New.
3914 (toplev::main): Handle -fself-test.
3915 * toplev.h (toplev::run_self_tests): New.
3916 * tree.c: Include "selftest.h".
3917 (selftest::test_integer_constants): New function.
3918 (selftest::test_identifiers): New function.
3919 (selftest::test_labels): New function.
3920 (selftest::tree_c_tests): New function.
3921 * tree-cfg.c: Include "selftest.h".
3922 (selftest::push_fndecl): New function.
3923 (selftest::test_linear_chain): New function.
3924 (selftest::test_diamond): New function.
3925 (selftest::test_fully_connected): New function.
3926 (selftest::tree_cfg_c_tests): New function.
3927 * vec.c: Include "selftest.h".
3928 (selftest::safe_push_range): New function.
3929 (selftest::test_quick_push): New function.
3930 (selftest::test_safe_push): New function.
3931 (selftest::test_truncate): New function.
3932 (selftest::test_safe_grow_cleared): New function.
3933 (selftest::test_pop): New function.
3934 (selftest::test_safe_insert): New function.
3935 (selftest::test_ordered_remove): New function.
3936 (selftest::test_unordered_remove): New function.
3937 (selftest::test_block_remove): New function.
3938 (selftest::reverse_cmp): New function.
3939 (selftest::test_qsort): New function.
3940 (selftest::vec_c_tests): New function.c.
3941 * wide-int.cc: Include selftest.h and wide-int-print.h.
3942 (selftest::from_int <wide_int>): New function.
3943 (selftest::from_int <offset_int>): New function.
3944 (selftest::from_int <widest_int>): New function.
3945 (selftest::assert_deceq): New function.
3946 (selftest::assert_hexeq): New function.
3947 (selftest::test_printing <VALUE_TYPE>): New function template.
3948 (selftest::test_ops <VALUE_TYPE>): New function template.
3949 (selftest::test_comparisons <VALUE_TYPE>): New function template.
3950 (selftest::run_all_wide_int_tests <VALUE_TYPE>): New function
3951 template.
3952 (selftest::wide_int_cc_tests): New function.
3953
3954 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3955
3956 PR middle-end/37780
3957 * ifcvt.c (noce_try_ifelse_collapse): New function.
3958 Declare prototype.
3959 (noce_process_if_block): Call noce_try_ifelse_collapse.
3960 * simplify-rtx.c (simplify_cond_clz_ctz): New function.
3961 (simplify_ternary_operation): Use the above to simplify
3962 conditional CLZ/CTZ expressions.
3963
3964 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3965
3966 PR middle-end/37780
3967 * config/aarch64/aarch64.md (ctz<mode>2): Convert to
3968 define_insn_and_split.
3969
3970 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3971
3972 PR middle-end/37780
3973 * config/arm/arm.md (ctzsi2): Convert to define_insn_and_split.
3974
3975 2016-06-06 Bernd Edlinger <bernd.edlinger@hotmail.de>
3976
3977 PR c/24414
3978 * cfgexpand.c (expand_asm_loc): Remove handling for ADDR_EXPR.
3979 Implicitly clobber memory for basic asm with non-empty assembler
3980 string. Use targetm.md_asm_adjust also here.
3981 * compare-elim.c (arithmetic_flags_clobber_p): Use asm_noperands here.
3982 * final.c (final_scan_insn): Handle basic asm in PARALLEL block.
3983 * gimple.c (gimple_asm_clobbers_memory_p): Handle basic asm with
3984 non-empty assembler string.
3985 * ira.c (compute_regs_asm_clobbered): Use asm_noperands here.
3986 * recog.c (asm_noperands): Handle basic asm in PARALLEL block.
3987 (decode_asm_operands): Handle basic asm in PARALLEL block.
3988 (extract_insn): Handle basic asm in PARALLEL block.
3989 * doc/extend.texi: Mention new behavior of basic asm.
3990 * config/ia64/ia64 (rtx_needs_barrier): Handle ASM_INPUT here.
3991 * config/pa/pa.c (branch_to_delay_slot_p, branch_needs_nop_p,
3992 branch_needs_nop_p): Use asm_noperands.
3993
3994 2016-06-06 Jose E. Marchesi <jose.marchesi@oracle.com>
3995
3996 * config/sparc/sparc.md (cpu): Add niagara7 cpu type.
3997 Include the M7 SPARC DFA scheduler.
3998 New attribute v3pipe.
3999 Annotate insns with v3pipe where appropriate.
4000 Define cpu_feature vis4.
4001 Add lzd instruction type and set it on clzdi_sp64 and clzsi_sp64.
4002 Add (V8QI "8") to vbits.
4003 Add insns {add,sub}v8qi3
4004 Add insns ss{add,sub}v8qi3
4005 Add insns us{add,sub}{v8qi,v4hi}3
4006 Add insns {min,max}{v8qi,v4hi,v2si}3
4007 Add insns {minu,maxu}{v8qi,v4hi,v2si}3
4008 Add insns fpcmp{le,gt,ule,ug,ule,ugt}{8,16,32}_vis.
4009 * config/sparc/niagara4.md: Add a comment explaining the
4010 discrepancy between the documented latenty numbers and the
4011 implemented ones.
4012 * config/sparc/niagara7.md: New file.
4013 * configure.ac (HAVE_AS_SPARC5_VIS4): Define if the assembler
4014 supports SPARC5 and VIS 4.0 instructions.
4015 * configure: Regenerate.
4016 * config.in: Likewise.
4017 * config.gcc: niagara7 is a supported cpu in sparc*-*-* targets.
4018 * config/sparc/sol2.h (ASM_CPU32_DEFAUILT_SPEC): Set for
4019 TARGET_CPU_niagara7.
4020 (ASM_CPU64_DEFAULT_SPEC): Likewise.
4021 (CPP_CPU_SPEC): Handle niagara7.
4022 (ASM_CPU_SPEC): Likewise.
4023 * config/sparc/sparc-opts.h (processor_type): Add
4024 PROCESSOR_NIAGARA7.
4025 (mvis4): New option.
4026 * config/sparc/sparc.h (TARGET_CPU_niagara7): Define.
4027 (AS_NIAGARA7_FLAG): Define.
4028 (ASM_CPU64_DEFAULT_SPEC): Set for niagara7.
4029 (CPP_CPU64_DEFAULT_SPEC): Likewise.
4030 (CPP_CPU_SPEC): Handle niagara7.
4031 (ASM_CPU_SPEC): Likewise.
4032 * config/sparc/sparc.c (niagara7_costs): Define.
4033 (sparc_option_override): Handle niagara7 and adjust cache-related
4034 parameters with better values for niagara cpus. Also support VIS4.
4035 (sparc32_initialize_trampoline): Likewise.
4036 (sparc_use_sched_lookahead): Likewise.
4037 (sparc_issue_rate): Likewise.
4038 (sparc_register_move_cost): Likewise.
4039 (dump_target_flag_bits): Support VIS4.
4040 (sparc_vis_init_builtins): Likewise.
4041 (sparc_builtins): Likewise.
4042 * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__ for
4043 VIS4 4.0.
4044 * config/sparc/driver-sparc.c (cpu_names): Add SPARC-M7 and
4045 UltraSparc M7.
4046 * config/sparc/sparc.opt (sparc_processor_type): New value
4047 niagara7.
4048 * config/sparc/visintrin.h (__attribute__): Prototypes for the
4049 VIS4 builtins.
4050 * doc/invoke.texi (SPARC Options): Document -mcpu=niagara7 and
4051 -mvis4.
4052 * doc/extend.texi (SPARC VIS Built-in Functions): Document the
4053 VIS4 builtins.
4054
4055 2016-06-06 Jonathan Wakely <jwakely@redhat.com>
4056
4057 * doc/sourcebuild.texi (Directives): Remove extra closing braces.
4058
4059 2016-06-06 Richard Biener <rguenther@suse.de>
4060
4061 PR tree-optimization/71398
4062 * tree-ssa-loop-ivcanon.c (unloop_loops): First unloop, then
4063 remove edges.
4064
4065 2016-06-05 James Bowman <james.bowman@ftdichip.com>
4066
4067 * config/ft32/ft32.c (ft32_setup_incoming_varargs,
4068 ft32_expand_prolog, ft32_expand_epilogue):
4069 Handle pretend_args.
4070 * config/ft32/ft32.h: Remove OUTGOING_REG_PARM_STACK_SPACE.
4071 * config/ft32/ft32.md: Add pretend_returner.
4072
4073 2016-06-06 Uros Bizjak <ubizjak@gmail.com>
4074
4075 PR target/71389
4076 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
4077 Copy op1 RTX to avoid invalid sharing.
4078 (ix86_expand_vector_move_misalign): Ditto.
4079
4080 2016-06-05 John David Anglin <danglin@gcc.gnu.org>
4081
4082 * expr.c (move_by_pieces_d::generate): Mark mode parameter with
4083 ATTRIBUTE_UNUSED.
4084
4085 2016-06-05 Jan Hubicka <hubicka@ucw.cz>
4086
4087 * predict.c (predicted_by_loop_heuristics_p): New function.
4088 (predict_iv_comparison): Use it.
4089 (predict_loops): Walk from innermost loops; do not predict edges
4090 leaving multiple loops multiple times; implement
4091 PRED_LOOP_ITERATIONS_MAX heuristics.
4092 * predict.def (PRED_LOOP_ITERATIONS_MAX): New predictor.
4093
4094 2016-06-05 Jan Hubicka <hubicka@ucw.cz>
4095
4096 * cfg.c (check_bb_profile): Do not report mismatched profiles when
4097 only edges out of BB are EH edges.
4098
4099 2016-06-04 Martin Sebor <msebor@redhat.com>
4100 Marcin Baczyński <marbacz@gmail.com>
4101
4102 PR c/48116
4103 * doc/invoke.texi (-Wreturn-type): Mention not warning on return with
4104 a void expression in a void function.
4105
4106 2016-06-03 Jan Hubicka <hubicka@ucw.cz>
4107
4108 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Do not check
4109 aux; dump reasons of decisions.
4110 (should_duplicate_loop_header_p): Likewise.
4111 (do_while_loop_p): Likewise.
4112 (ch_base::copy_headers): Dump asi num insns duplicated.
4113
4114 2016-06-04 Jakub Jelinek <jakub@redhat.com>
4115
4116 PR tree-optimization/71405
4117 * tree-ssa.c (execute_update_addresses_taken): For clobber with
4118 incompatible type, build a new clobber with the right type instead
4119 of building a VIEW_CONVERT_EXPR around it.
4120
4121 2016-06-04 Oleg Endo <olegendo@gcc.gnu.org>
4122
4123 PR tree-optimization/52171
4124 * config/sh/sh.c (sh_use_by_pieces_infrastructure_p): Use
4125 by_pieces_ninsns instead of move_by_pieces_ninsns.
4126
4127 2016-06-04 Oleg Endo <olegendo@gcc.gnu.org>
4128
4129 * config/sh/sh.c (sh_print_operand_address): Don't use hardcoded 'r0'
4130 for reg+reg addressing mode.
4131
4132 2016-06-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4133
4134 * rs6000-c.c (c/c-tree.h): Add #include.
4135 (altivec_resolve_overloaded_builtin): Handle ARRAY_TYPE arguments
4136 in C++ when found in the base position of vec_ld or vec_st.
4137
4138 2016-06-03 Jan Hubicka <hubicka@ucw.cz>
4139
4140 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Avoid
4141 use of profile unless profile status is PROFILE_READ.
4142 * profile.c (compute_branch_probabilities): Set profile status
4143 only after reporting predictor hitrates.
4144
4145 2016-06-03 Joseph Myers <joseph@codesourcery.com>
4146
4147 PR target/71276
4148 PR target/71277
4149 * common.opt (ffp-int-builtin-inexact): New option.
4150 * doc/invoke.texi (-fno-fp-int-builtin-inexact): Document.
4151 * doc/md.texi (floor@var{m}2, btrunc@var{m}2, round@var{m}2)
4152 (ceil@var{m}2): Document dependence on this option.
4153 * ipa-inline-transform.c (inline_call): Handle
4154 flag_fp_int_builtin_inexact.
4155 * ipa-inline.c (can_inline_edge_p): Likewise.
4156 * config/i386/i386.md (rintxf2): Do not test
4157 flag_unsafe_math_optimizations.
4158 (rint<mode>2_frndint): New define_insn.
4159 (rint<mode>2): Do not test flag_unsafe_math_optimizations for 387
4160 or !flag_trapping_math for SSE. Just use gen_rint<mode>2_frndint
4161 for 387 instead of extending and truncating.
4162 (frndintxf2_<rounding>): Test flag_fp_int_builtin_inexact ||
4163 !flag_trapping_math instead of flag_unsafe_math_optimizations.
4164 Change to frndint<mode>2_<rounding>.
4165 (frndintxf2_<rounding>_i387): Likewise. Change to
4166 frndint<mode>2_<rounding>_i387.
4167 (<rounding_insn>xf2): Likewise.
4168 (<rounding_insn><mode>2): Test flag_fp_int_builtin_inexact ||
4169 !flag_trapping_math instead of flag_unsafe_math_optimizations for
4170 x87. Test TARGET_ROUND || !flag_trapping_math ||
4171 flag_fp_int_builtin_inexact instead of !flag_trapping_math for
4172 SSE. Use ROUND_NO_EXC in constant operand of
4173 gen_sse4_1_round<mode>2. Just use gen_frndint<mode>2_<rounding>
4174 for 387 instead of extending and truncating.
4175
4176 2016-06-03 H.J. Lu <hongjiu.lu@intel.com>
4177 Julia Koval <julia.koval@intel.com>
4178
4179 PR target/66960
4180 PR target/67630
4181 PR target/67634
4182 PR target/67841
4183 PR target/68037
4184 PR target/68618
4185 PR target/68661
4186 PR target/69575
4187 PR target/69596
4188 PR target/69734
4189 * config/i386/i386-protos.h (ix86_epilogue_uses): New prototype.
4190 * config/i386/i386.c (ix86_conditional_register_usage): Preserve
4191 all registers, except for function return registers if there are
4192 no caller-saved registers.
4193 (ix86_set_func_type): New function.
4194 (ix86_set_current_function): Call ix86_set_func_type to set
4195 no_caller_saved_registers and func_type. Call reinit_regs if
4196 caller-saved registers are changed. Don't allow MPX, SSE, MMX
4197 nor x87 instructions in interrupt handler nor function with
4198 no_caller_saved_registers attribute.
4199 (ix86_function_ok_for_sibcall): Return false if there are no
4200 caller-saved registers.
4201 (type_natural_mode): Don't warn ABI change for MMX in interrupt
4202 handler.
4203 (ix86_function_arg_advance): Skip for callee in interrupt handler.
4204 (ix86_function_arg): Return special arguments in interrupt handler.
4205 (ix86_promote_function_mode): Promote pointer to word_mode only
4206 for normal functions.
4207 (ix86_can_use_return_insn_p): Don't use `ret' instruction in
4208 interrupt handler.
4209 (ix86_epilogue_uses): New function.
4210 (ix86_hard_regno_scratch_ok): Likewise.
4211 (ix86_save_reg): Preserve all registers in interrupt handler
4212 after reload. Preserve all registers, except for function return
4213 registers, if there are no caller-saved registers after reload.
4214 (find_drap_reg): Always use callee-saved register if there are
4215 no caller-saved registers.
4216 (ix86_minimum_incoming_stack_boundary): Return MIN_STACK_BOUNDARY
4217 for interrupt handler.
4218 (ix86_expand_prologue): Don't allow DRAP in interrupt handler.
4219 Emit cld instruction if stringops are used in interrupt handler
4220 or interrupt handler isn't a leaf function.
4221 (ix86_expand_epilogue): Generate interrupt return for interrupt
4222 handler and pop the 'ERROR_CODE' off the stack before interrupt
4223 return in exception handler.
4224 (ix86_expand_call): Disallow calling interrupt handler directly.
4225 If there are no caller-saved registers, mark all registers that
4226 are clobbered by the call which returns as clobbered.
4227 (ix86_handle_no_caller_saved_registers_attribute): New function.
4228 (ix86_handle_interrupt_attribute): Likewise.
4229 (ix86_attribute_table): Add interrupt and no_caller_saved_registers
4230 attributes.
4231 (TARGET_HARD_REGNO_SCRATCH_OK): Likewise.
4232 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use argument
4233 accumulation in interrupt function if stack may be realigned to
4234 avoid DRAP.
4235 (EPILOGUE_USES): New.
4236 (function_type): New enum.
4237 (machine_function): Add func_type and no_caller_saved_registers.
4238 * config/i386/i386.md (UNSPEC_INTERRUPT_RETURN): New.
4239 (interrupt_return): New pattern.
4240 * doc/extend.texi: Document x86 interrupt and
4241 no_caller_saved_registers attributes.
4242
4243 2016-06-03 Bernd Schmidt <bschmidt@redhat.com>
4244
4245 PR tree-optimization/52171
4246 * builtins.c (expand_cmpstrn_or_cmpmem): Delete, moved elsewhere.
4247 (expand_builtin_memcmp): New arg RESULT_EQ. All callers changed.
4248 Look for constant strings. Move some code to emit_block_cmp_hints
4249 and use it.
4250 * builtins.def (BUILT_IN_MEMCMP_EQ): New.
4251 * defaults.h (COMPARE_MAX_PIECES): New macro.
4252 * expr.c (move_by_pieces_d, store_by_pieces_d): Remove old structs.
4253 (move_by_pieces_1, store_by_pieces_1, store_by_pieces_2): Remvoe.
4254 (clear_by_pieces_1): Don't declare. Move definition before use.
4255 (can_do_by_pieces): New static function.
4256 (can_move_by_pieces): Use it. Return bool.
4257 (by_pieces_ninsns): Renamed from move_by_pieces_ninsns. New arg
4258 OP. All callers changed. Handle COMPARE_BY_PIECES.
4259 (class pieces_addr); New.
4260 (pieces_addr::pieces_addr, pieces_addr::decide_autoinc,
4261 pieces_addr::adjust, pieces_addr::increment_address,
4262 pieces_addr::maybe_predec, pieces_addr::maybe_postinc): New member
4263 functions for it.
4264 (class op_by_pieces_d): New.
4265 (op_by_pieces_d::op_by_pieces_d, op_by_pieces_d::run): New member
4266 functions for it.
4267 (class move_by_pieces_d, class compare_by_pieces_d,
4268 class store_by_pieces_d): New subclasses of op_by_pieces_d.
4269 (move_by_pieces_d::prepare_mode, move_by_pieces_d::generate,
4270 move_by_pieces_d::finish_endp, store_by_pieces_d::prepare_mode,
4271 store_by_pieces_d::generate, store_by_pieces_d::finish_endp,
4272 compare_by_pieces_d::generate, compare_by_pieces_d::prepare_mode,
4273 compare_by_pieces_d::finish_mode): New member functions.
4274 (compare_by_pieces, emit_block_cmp_via_cmpmem): New static
4275 functions.
4276 (expand_cmpstrn_or_cmpmem): Moved here from builtins.c.
4277 (emit_block_cmp_hints): New function.
4278 (move_by_pieces, store_by_pieces, clear_by_pieces): Rewrite to just
4279 use the newly defined classes.
4280 * expr.h (by_pieces_constfn): New typedef.
4281 (can_store_by_pieces, store_by_pieces): Use it in arg declarations.
4282 (emit_block_cmp_hints, expand_cmpstrn_or_cmpmem): Declare.
4283 (move_by_pieces_ninsns): Don't declare.
4284 (can_move_by_pieces): Change return value to bool.
4285 * target.def (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Update docs.
4286 (compare_by_pieces_branch_ratio): New hook.
4287 * target.h (enum by_pieces_operation): Add COMPARE_BY_PIECES.
4288 (by_pieces_ninsns): Declare.
4289 * targethooks.c (default_use_by_pieces_infrastructure_p): Handle
4290 COMPARE_BY_PIECES.
4291 (default_compare_by_pieces_branch_ratio): New function.
4292 * targhooks.h (default_compare_by_pieces_branch_ratio): Declare.
4293 * doc/tm.texi.in (STORE_MAX_PIECES, COMPARE_MAX_PIECES): Document.
4294 * doc/tm.texi: Regenerate.
4295 * tree-ssa-strlen.c: Include "builtins.h".
4296 (handle_builtin_memcmp): New static function.
4297 (strlen_optimize_stmt): Call it for BUILT_IN_MEMCMP.
4298 * tree.c (build_common_builtin_nodes): Create __builtin_memcmp_eq.
4299
4300 2016-06-03 Alan Hayward <alan.hayward@arm.com>
4301
4302 * tree-vect-stmts.c (vect_stmt_relevant_p): Do not vectorize non live
4303 relevant stmts which are simple and invariant.
4304 * tree-vect-loop.c (vectorizable_live_operation): Check relevance
4305 instead of simple and invariant
4306
4307 2016-06-03 Alan Hayward <alan.hayward@arm.com>
4308
4309 * tree-vect-loop.c (vect_analyze_loop_operations): Allow live stmts.
4310 (vectorizable_reduction): Check for new relevant state.
4311 (vectorizable_live_operation): vectorize live stmts using
4312 BIT_FIELD_REF. Remove special case for gimple assigns stmts.
4313 * tree-vect-stmts.c (is_simple_and_all_uses_invariant): New function.
4314 (vect_stmt_relevant_p): Check for stmts which are only used live.
4315 (process_use): Use of a stmt does not inherit it's live value.
4316 (vect_mark_stmts_to_be_vectorized): Simplify relevance inheritance.
4317 (vect_analyze_stmt): Check for new relevant state.
4318 * tree-vectorizer.h (vect_relevant): New entry for a stmt which is used
4319 outside the loop, but not inside it.
4320
4321 2016-06-03 Alan Hayward <alan.hayward@arm.com>
4322
4323 * tree-vectorizer.h (vect_get_vec_def_for_operand_1): New.
4324 * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): New.
4325 (vect_get_vec_def_for_operand): Split out code.
4326
4327 2016-06-03 Segher Boessenkool <segher@kernel.crashing.org>
4328
4329 * config/rs6000/rs6000.md (define_peepholes for two mfcr's): Delete.
4330
4331 2016-06-03 Alan Hayward <alan.hayward@arm.com>
4332
4333 * tree-vect-stmts.c (vectorizable_call) Remove GOMP_SIMD_LANE code.
4334
4335 2016-06-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4336
4337 * config/arm/thumb1.md (*thumb1_mulsi3): Fix typos in comment.
4338
4339 2016-06-03 Jakub Jelinek <jakub@redhat.com>
4340
4341 PR middle-end/71387
4342 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): If redirecting
4343 to noreturn e->callee->decl that has void return type and void
4344 arguments, adjust gimple_call_fntype and remove lhs even if it had
4345 previously addressable type.
4346
4347 2016-06-02 Jeff Law <law@redhat.com>
4348
4349 PR tree-optimization/71328
4350 * tree-ssa-threadupdate.c (duplicate_thread_path): Fix off-by-one
4351 error when checking for a jump back onto the copied path.
4352
4353 2016-06-02 David Malcolm <dmalcolm@redhat.com>
4354
4355 * config/microblaze/microblaze.c (get_branch_target): Add return
4356 NULL_RTX for the non-CALL_P case.
4357 (insert_wic_for_ilb_runout): Remove unused local "wic_addr1".
4358 (insert_wic): Remove unused local "j".
4359
4360 2016-06-02 Martin Liska <mliska@suse.cz>
4361
4362 * predict.def: Fix typo in PRED_FORTRAN_FAIL_IO display name.
4363
4364 2016-06-02 H.J. Lu <hongjiu.lu@intel.com>
4365 Julia Koval <julia.koval@intel.com>
4366
4367 * function.c (assign_parm_setup_stack): Force source into a
4368 register if needed.
4369 * target.def (function_incoming_arg): Update documentation to
4370 allow arbitrary address computation based on hard register.
4371 * doc/tm.texi: Regenerated.
4372
4373 2016-06-02 Martin Liska <mliska@suse.cz>
4374
4375 * predict.c (combine_predictions_for_bb): Fix first match in
4376 cases where a first predictor contains more than one occurence
4377 in list of predictors. Take the best value in such case.
4378
4379 2016-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4380
4381 PR rtl-optimization/71295
4382 * rtlanal.c (subreg_get_info): If taking a subreg at the requested
4383 offset would go over the size of the inner mode reject it.
4384
4385 2016-06-02 Jakub Jelinek <jakub@redhat.com>
4386
4387 * config/i386/sse.md (*vec_concatv4si): Use v=v,v instead of
4388 x=x,x and v=v,m instead of x=x,m.
4389
4390 * config/i386/sse.md (*vec_concatv2si_sse4_1): Add avx512dq v=Yv,rm
4391 alternative. Change x=x,x alternative to v=Yv,Yv and x=rm,C
4392 alternative to v=rm,C.
4393
4394 * config/i386/sse.md (*vec_concatv2di): Add x86_avx512dq v=Yv,rm
4395 alternative. Change x=xm,C alternative to v=vm,C, x=x,x alternative
4396 to v=Yv,Yv and x=x,m to v=v,m. Use maybe_evex prefix attribute
4397 instead of vex for the last two above mentioned alternatives.
4398
4399 2016-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4400
4401 PR target/70830
4402 * config/arm/arm.c (arm_output_multireg_pop): Guard "pop" on update.
4403
4404 2016-06-02 Segher Boessenkool <segher@kernel.crashing.org>
4405
4406 * config/rs6000/dfp.md (trunctddd2): Correct the "length" attribute.
4407
4408 2016-06-01 David Malcolm <dmalcolm@redhat.com>
4409
4410 * config/rl78/rl78.c (rl78_expand_prologue): Convert local
4411 from int to unsigned.
4412
4413 2016-05-31 Michael Meissner <meissner@linux.vnet.ibm.com>
4414
4415 * config/rs6000/vsx.md (vsx_splat_<mode>, V2DI/V2DF): Simplify
4416 alternatives, eliminating preferred register class. Add support
4417 for the MTVSRDD instruction in ISA 3.0.
4418 (vsx_splat_v4si_internal): Use splat_input_operand instead of
4419 reg_or_indexed_operand.
4420 (vsx_splat_v4sf_internal): Likewise.
4421
4422 2016-05-31 Michael Meissner <meissner@linux.vnet.ibm.com>
4423
4424 PR target/71186
4425 * config/rs6000/vsx.md (xxspltib_<mode>_nosplit): Add alternatives
4426 for loading up all 0's or all 1's.
4427
4428 2016-06-01 Thomas Preud'homme <thomas.preudhomme@arm.com>
4429
4430 * doc/sourcebuild.texi (arm_acq_rel): Document new effective target.
4431
4432 2016-06-01 Eduard Sanou <dhole@openmailbox.org>
4433
4434 * doc/cppenv.texi: Note that the `%s` in `date` is a non-standard
4435 extension.
4436 * gcc.c (driver_handle_option): Call set_source_date_epoch_envvar.
4437 * gcc.c (set_source_date_epoch_envvar): New function, sets
4438 the SOURCE_DATE_EPOCH environment variable to the current time.
4439
4440 2016-06-01 Eric Botcazou <ebotcazou@adacore.com>
4441
4442 * tree-vect-loop.c (vect_determine_vectorization_factor): Also compute
4443 the factor for live Phi nodes.
4444
4445 2016-06-01 Jan Hubicka <hubicka@ucw.cz>
4446
4447 * loop-dolop.c (doloop_optimize): Us likely max iteration bound.
4448 * tree-parloops.c (parallelize_loops): likewise.
4449 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop,
4450 tree_unswitch_outer_loop): likewise.
4451
4452 2016-06-01 Jakub Jelinek <jakub@redhat.com>
4453
4454 PR middle-end/71371
4455 * gimplify.c (gimplify_omp_for): Temporarily clear gimplify_omp_ctxp
4456 around creation of the temporary.
4457
4458 2016-06-01 Richard Biener <rguenther@suse.de>
4459
4460 PR tree-optimization/71366
4461 * tree-ssa-loop-ivcanon.c (edges_to_remove): New global.
4462 (unloop_loops): Move removing edges here ...
4463 (try_unroll_loop_completely): ... from here.
4464 (try_peel_loop): ... and here.
4465 (tree_unroll_loops_completely_1): Track parent loops via
4466 bitmap of header BBs.
4467 (tree_unroll_loops_completely): Adjust for that.
4468
4469 2016-06-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
4470
4471 * config/rs6000/altivec.h (vec_slv): New macro.
4472 (vec_srv): New macro.
4473 * config/rs6000/altivec.md (UNSPEC_VSLV): New value.
4474 (UNSPEC_VSRV): New value.
4475 (vslv): New insn.
4476 (vsrv): New insn.
4477 * config/rs6000/rs6000-builtin.def (vslv): New builtin definition.
4478 (vsrv): New builtin definition.
4479 * config/rs6000/rs6000-c.c (P9V_BUILTIN_VSLV): Macro expansion to
4480 define argument types for new builtin.
4481 (P9V_BUILTIN_VSRV): Macro expansion to define argument types for
4482 new builtin.
4483 * doc/extend.texi: Document the new vec_vslv and vec_srv built-in
4484 functions.
4485
4486 2016-06-01 Uros Bizjak <ubizjak@gmail.com>
4487 Jocelyn Mayer <l_indien@magic.fr>
4488
4489 PR target/67310
4490 * config/i386/driver-i386.c (host_detect_local_cpu): Correctly
4491 detect processor family for signature_CENTAUR_ebx.
4492 <case PROCESSOR_I486>: Pass c3, winchip2 or winchip-c6 for
4493 signature_CENTAUR_ebx.
4494 <case PROCESSOR _PENTIUMPRO>: Pass c3-2 for signature_CENTAUR_ebx.
4495 <default>: Pass x86-64 for has_longmode.
4496
4497 2016-06-01 Nathan Sidwell <nathan@acm.org>
4498
4499 * config/nvptx/nvptx.c (nvptx_assemble_undefined_decl): Reject
4500 undefined weak.
4501
4502 2016-06-01 Richard Biener <rguenther@suse.de>
4503
4504 PR tree-optimization/71261
4505 * tree-vect-patterns.c (check_bool_pattern): Gather a hash-set
4506 of stmts successfully put in the bool pattern. Remove
4507 single-use restriction.
4508 (adjust_bool_pattern_cast): Add cast at the use site via the
4509 pattern def sequence.
4510 (adjust_bool_pattern): Remove recursion, maintain a hash-map
4511 of patterned defs. Use the pattern def seqence instead of
4512 multiple independent patterns.
4513 (sort_after_uid): New qsort compare function.
4514 (adjust_bool_stmts): New function to process stmts in the bool
4515 pattern in IL order.
4516 (vect_recog_bool_pattern): Adjust.
4517 * tree-if-conv.c (ifcvt_split_def_stmt): Remove.
4518 (ifcvt_walk_pattern_tree): Likewise.
4519 (stmt_is_root_of_bool_pattern): Likewise.
4520 (ifcvt_repair_bool_pattern): Likewise.
4521 (tree_if_conversion): Do not call ifcvt_repair_bool_pattern.
4522
4523 2016-06-01 Jan Hubicka <hubicka@ucw.cz>
4524
4525 * loop-unroll.c (decide_unroll_constant_iterations,
4526 decide_unroll_runtime_iterations, decide_unroll_stupid): Use
4527 likely upper bounds.
4528 * loop-iv.c (find_simple_exit): Dump likely upper bounds.
4529
4530 2016-06-01 Thomas Schwinge <thomas@codesourcery.com>
4531
4532 * tree-core.h (enum omp_clause_code): Remove
4533 OMP_CLAUSE_DEVICE_RESIDENT. Adjust all users.
4534
4535 2016-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4536
4537 * config/arm/sync.md (arm_store_exclusive<mode>):
4538 Use 'H' output modifier on operands[2] rather than creating a new
4539 entry in out-of-bounds memory of the operands array.
4540 (arm_store_release_exclusivedi): Likewise.
4541
4542 2016-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4543
4544 * config/arm/arm.c (arm_fusion_enabled_p): New function.
4545 * config/arm/arm-protos.h (arm_fusion_enabled_p): Declare prototype.
4546 * config/arm/crypto.md (crypto_<crypto_pattern>, CRYPTO_UNARY):
4547 Add "=w,0" alternative. Enable it when AES/AESMC fusion is enabled.
4548
4549 2016-06-01 Eric Botcazou <ebotcazou@adacore.com>
4550
4551 * tree-vect-loop.c (vect_determine_vectorization_factor): Also take
4552 into account live statements for mask producers.
4553
4554 2016-06-01 Richard Biener <rguenther@suse.de>
4555
4556 PR tree-optimization/71311
4557 * match.pd (@0 < @1 && @0 < @2 -> @0 < min(@1,@2)): Add :c and
4558 restrict to non-INTEGER_CST @0.
4559
4560 2016-06-01 Richard Biener <rguenther@suse.de>
4561
4562 * match.pd ((A & B) - (A & ~B) -> B - (A ^ B)): Add missing :c.
4563 (relational patterns): Use :c to avoid pattern duplications.
4564
4565 2016-06-01 Richard Biener <rguenther@suse.de>
4566
4567 * genmatch.c (comparison_code_p): New predicate.
4568 (swap_tree_comparison): New function.
4569 (commutate): Add for_vec parameter to append new for entries.
4570 Support commutating relational operators by swapping it alongside
4571 operands.
4572 (lower_commutative): Adjust.
4573 (dt_simplify::gen): Do not pass artificial operators to gen
4574 functions.
4575 (decision_tree::gen): Do not add artificial operators as parameters.
4576 (parser::parse_expr): Verify operator commutativity when :c is
4577 applied. Allow :C to override this.
4578 * match.pd: Adjust patterns to use :C instead of :c where required.
4579
4580 2016-06-01 Patrick Palka <ppalka@gcc.gnu.org>
4581
4582 PR tree-optimization/71077
4583 * tree-ssa-threadedge.c (simplify_control_stmt_condition_1): In
4584 the combining step, use boolean_false_node and boolean_true_node
4585 as the designated false/true return values.
4586
4587 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
4588
4589 * predict.def (PRED_LOOP_EXTRA_EXIT): Define.
4590 * predict.c (predict_iv_comparison): Also check PRED_LOOP_EXTRA_EXIT.
4591 (predict_extra_loop_exits): Use PRED_LOOP_EXTRA_EXIT instead of
4592 PRED_LOOP_EXIT.
4593
4594 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
4595
4596 * doc/invoke.texi (-frename-registers): Drop -fpeel-loops from list
4597 of flags impliying the register renaming.
4598 * toplev.c (process_options): Do not imply flag_rename_registers with
4599 loop peeling.
4600
4601 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
4602
4603 * config/sh/sh.h (ASM_OUTPUT_SYMBOL_REF): Remove macro and use the
4604 default implementation.
4605
4606 2016-05-31 Nathan Sidwell <nathan@acm.org>
4607
4608 * dwarf2out.c (cur_line_info_table): Add GTY marker.
4609
4610 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
4611
4612 * config/sh/constraints.md (b): Remove constraint.
4613 * config/sh/predicates.md (arith_reg_operand): Remove
4614 TARGET_REGISTER_P.
4615 * config/sh/sh-modes.def (PDI): Remove.
4616 * config/sh/sh.c (sh_target_reg_class,
4617 sh_optimize_target_register_callee_saved): Remove functions.
4618 (sh_option_override): Don't set MASK_SAVE_ALL_TARGET_REGS.
4619 (sh_expand_epilogue): Update comment.
4620 (sh_hard_regno_mode_ok, sh_register_move_cost, calc_live_regs,
4621 sh_secondary_reload): Remove TARGET_REGS related code.
4622 * config/sh/sh.h (FIRST_TARGET_REG, LAST_TARGET_REG,
4623 TARGET_REGISTER_P): Remove macros.
4624 (SH_DBX_REGISTER_NUMBER, REG_ALLOC_ORDER): Remove target regs.
4625 * config/sh/sh.md (PR_MEDIA_REG, T_MEDIA_REG, FR23_REG, TR0_REG,
4626 TR1_REG, TR2_REG): Remove constants.
4627 * config/sh/sh.opt (SAVE_ALL_TARGET_REGS): Remove.
4628
4629 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
4630
4631 * config/sh/sh.md (adddi3, subdi3, negdi2, abs<mode>2): Remove
4632 define_expand patterns.
4633 (adddi3_compact): Rename to adddi3.
4634 (subdi3_compact): Rename to subdi3.
4635 (*negdi2): Rename to negdi2.
4636 (*abs<mode>2): Rename to abs<mode>2.
4637
4638 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
4639
4640 * config/rx/rx.md (FETCHOP_NO_MINUS): New code iterator.
4641 (atomic_<fetchop_name>_fetchsi): Extract minus operator into ...
4642 (atomic_sub_fetchsi): ... this new pattern.
4643 (mvtc): Add CC_REG clobber.
4644
4645 2016-05-31 Marek Polacek <polacek@redhat.com>
4646
4647 * gimplify.c (gimplify_switch_expr): Also handle GIMPLE_TRY.
4648
4649 2016-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4650
4651 * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Use
4652 aarch64_fusion_enabled_p to check for fusion capabilities.
4653
4654 2016-05-31 Richard Biener <rguenther@suse.de>
4655
4656 PR tree-optimization/71352
4657 * tree-ssa-reassoc.c (zero_one_operation): Handle op equal to
4658 minus one and a negate.
4659
4660 2016-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4661
4662 * config/aarch64/aarch64.c (aarch64_simd_attr_length_move): Delete.
4663 * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
4664 Delete prototype.
4665 * config/aarch64/iterators.md (insn_count): Add descriptive comment.
4666 * config/aarch64/aarch64-simd.md (*aarch64_mov<mode>, VSTRUCT modes):
4667 Remove use of aarch64_simd_attr_length_move, set length attribute
4668 directly.
4669 (*aarch64_be_movoi): Likewise.
4670 (*aarch64_be_movci): Likewise.
4671 (*aarch64_be_movxi): Likewise.
4672
4673 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
4674
4675 * loop-init.c (gate): Do not enale RTL loop unroller with -fpeel-loops.
4676 It no longer does that.
4677 * toplev.c (process_options): Do not enable flag_web with -fpeel-loops.
4678
4679 2016-05-31 Wladimir J. van der Laan <laanwj@gmail.com>
4680
4681 * config/aarch64/arm_neon.h (vdupb_laneq_s8): Remove spurious
4682 attribute __unused__.
4683
4684 2016-05-31 Thomas Preud'homme <thomas.preudhomme@arm.com>
4685
4686 * config/arm/arm-protos.h (arm_arch_thumb1): Declare.
4687 * config/arm/arm.c (arm_arch_thumb1): Define.
4688 (arm_option_override): Initialize arm_arch_thumb1.
4689 * config/arm/arm.h (arm_arch_thumb1): Declare.
4690 (TARGET_ARM_ARCH_ISA_THUMB): Use arm_arch_thumb to determine if target
4691 support Thumb-1 ISA.
4692
4693 2016-05-31 Kirill Yukhin <kirill.yukhin@intel.com>
4694
4695 PR target/71346
4696 * config/i386/sse.md (define_insn_and_split "*vec_extractv4sf_0"): Use
4697 `Yv' for scalar operand.
4698
4699 2016-05-31 Tom de Vries <tom@codesourcery.com>
4700
4701 PR tree-optimization/69068
4702 * graphite-isl-ast-to-gimple.c (copy_bb_and_scalar_dependences): Handle
4703 phis with more than two args.
4704
4705 2016-05-30 Andreas Tobler <andreast@gcc.gnu.org>
4706
4707 * config.gcc: Move hard float support for arm*hf*-*-freebsd* into
4708 armv6*-*-freebsd* for FreeBSD 11. Eliminate the arm*hf*-*-freebsd*
4709 target.
4710
4711 2016-05-30 Jose E. Marchesi <jose.marchesi@oracle.com>
4712
4713 * config.gcc (sparc*-*-*): Support cpu_32, cpu_64, tune_32 and
4714 tune_64.
4715 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
4716 support on SPARC.
4717 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Add entries for
4718 cpu_32, cpu_64, tune_32 and tune_64.
4719 * config/sparc/sol2.h (OPTION_DEFAULT_SPECS): Likewise.
4720
4721 2016-05-30 Uros Bizjak <ubizjak@gmail.com>
4722
4723 * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
4724
4725 2016-05-30 Andi Kleen <ak@linux.intel.com>
4726
4727 * auto-profile.c (read_profile): Replace asserts with errors
4728 when file does not exist.
4729 * gcov-io.c (gcov_read_words): Dito.
4730
4731 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
4732
4733 * tree-cfg.c (print_loop): Print likely upper bounds.
4734
4735 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
4736
4737 * doc/invoke.texi (-fpeel-loops,-O3): Update documentation.
4738 * opts.c (default_options): Enable peel loops at -O3.
4739 * tree-ssa-loop-ivcanon.c (peeled_loops): New static var.
4740 (try_peel_loop): Do not re-peel already peeled loops;
4741 use likely upper bounds; fix profile updating.
4742 (pass_complete_unroll::execute): Initialize peeled_loops.
4743
4744 2016-05-30 Martin Liska <mliska@suse.cz>
4745
4746 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Scale
4747 computed costs by frequency of BB they belong to.
4748 (get_scaled_computation_cost_at): New function.
4749
4750 2016-05-30 Alexander Monakov <amonakov@ispras.ru>
4751 Marc Glisse <marc.glisse@inria.fr>
4752
4753 PR tree-optimization/71289
4754 * match.pd (-1 / B < A, A > -1 / B): New transformations.
4755
4756 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
4757
4758 * tree-vect-loop.c (vect_transform_loop): Update likely bounds.
4759
4760 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
4761
4762 * tree-ssa-loop-ivcanon.c (try_peel_loop): Correctly set wont_exit
4763 for peeled copies; avoid underflow when updating estimates; correctly
4764 scale loop profile.
4765
4766 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
4767
4768 * tree-ssa-reassoc.ci (swap_ops_for_binary_stmt): Fix typo from commit
4769 r236875. Corrected oe3 to oe2 as obvious.
4770
4771 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
4772
4773 PR middle-end/71269
4774 PR middle-end/71252
4775 * tree-ssa-reassoc.c (insert_stmt_before_use): Use find_insert_point so
4776 that inserted stmt will not dominate stmts that defines its operand.
4777 (rewrite_expr_tree): Add stmt_to_insert before adding the use stmt.
4778 (rewrite_expr_tree_parallel): Likewise.
4779
4780 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
4781
4782 PR middle-end/71252
4783 * tree-ssa-reassoc.c (swap_ops_for_binary_stmt): Fix swap such that
4784 all fields including stmt_to_insert are swapped.
4785
4786 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
4787
4788 * predict.h (force_edge_cold): Declare.
4789 * predict.c (force_edge_cold): New function.
4790 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Fix profile
4791 updating.
4792 (canonicalize_loop_induction_variables): Fix formating.
4793
4794 2016-05-30 Eric Botcazou <ebotcazou@adacore.com>
4795
4796 * config/visium/visium.c (visium_split_double_add): Minor tweaks.
4797 (visium_expand_copysign): Use gen_int_mode directly.
4798 (visium_compute_frame_size): Minor tweaks.
4799
4800 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
4801
4802 * tree-vect-loop.c (vect_analyze_loop_2): Use
4803 likely_max_stmt_executions_int.
4804
4805 2016-05-30 Tom de Vries <tom@codesourcery.com>
4806
4807 PR tree-optimization/69067
4808 * graphite-isl-ast-to-gimple.c (get_def_bb_for_const): Remove assert.
4809
4810 2016-05-29 Uros Bizjak <ubizjak@gmail.com>
4811
4812 PR target/71245
4813 * config/i386/sync.md (define_peephole2 atomic_storedi_fpu):
4814 New peepholes to remove unneeded fild/fistp pairs.
4815 (define_peephole2 atomic_loaddi_fpu): Ditto.
4816
4817 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
4818
4819 * predict.c (maybe_hot_frequency_p): Avoid division.
4820
4821 2016-05-28 Gerald Pfeifer <gerald@pfeifer.com>
4822
4823 * doc/install.texi: Use https for shop.fsf.org.
4824
4825 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
4826
4827 * tree-ssa-loop-ivopts.c (estimated_stmt_executions_int): Use
4828 likely_max_stmt_executions_int.
4829
4830 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
4831
4832 * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
4833 likely_max_stmt_executions_int.
4834
4835 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
4836
4837 * profile.c (compute_branch_probabilities): Do not report hitrates
4838 here.
4839 (branch_prob): Report hitrates here.
4840 * predict.c (gimple_predict_edge): Do not assert profile status;
4841 fix formatting issues.
4842
4843 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
4844
4845 * predict.c (edge_predicted_by_p): New function.
4846 (predict_paths_for_bb): Do not put multiple predictions of the same type
4847 on one edge.
4848
4849 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
4850
4851 * tree-ssa-loop-niter.c (number_of_iterations_exit): Revert accidental
4852 commit.
4853
4854 2016-05-28 Alan Modra <amodra@gmail.com>
4855
4856 * dominance.c (verify_dominators): Don't segfault on NULL imm_bb.
4857
4858 2016-05-28 Alan Modra <amodra@gmail.com>
4859
4860 PR rtl-optimization/71275
4861 * ira.c (ira): Free dominance info.
4862
4863 2016-05-27 Gerald Pfeifer <gerald@pfeifer.com>
4864
4865 * doc/sourcebuild.texi: New address for upstream Go repository.
4866
4867 2016-05-27 Thomas Preud'homme <thomas.preudhomme@arm.com>
4868
4869 * config/arm/arm.h (TARGET_ARM_V6M): Remove.
4870 (TARGET_ARM_V7M): Likewise.
4871
4872 2016-05-26 Jeff Law <law@redhat.com>
4873
4874 * tree-ssa-threadedge.c: Remove include of tree-ssa-threadbackward.h.
4875 (thread_across_edge): Remove calls to find_jump_threads_backwards.
4876 * passes.def: Add jump threading passes before DOM/VRP.
4877 * tree-ssa-threadbackward.c (find_jump_threads_backwards): Change
4878 argument to a basic block from an edge. Remove tests which are
4879 handled elsewhere.
4880 (pass_data_thread_jumps, class pass_thread_jumps): New.
4881 (pass_thread_jumps::gate, pass_thread_jumps::execute): New.
4882 (make_pass_thread_jumps): Likewise.
4883 * tree-pass.h (make_pass_thread_jumps): Declare.
4884
4885 2016-05-27 Eric Botcazou <ebotcazou@adacore.com>
4886
4887 * config/visium/visium-protos.h (split_double_move): Rename into...
4888 (visium_split_double_move): ...this.
4889 (visium_split_double_add): Declare.
4890 * config/visium/visium.c (split_double_move): Rename into...
4891 (visium_split_double_move): ...this.
4892 (visium_split_double_add): New function.
4893 (visium_expand_copysign): Renumber operands for consistency.
4894 * config/visium/visium.md (DImode move splitter): Adjust to renaming.
4895 (DFmode move splitter): Likewise.
4896 (*addi3_insn): Split by means of visium_split_double_add.
4897 (*adddi3_insn_flags): Delete.
4898 (*plus_plus_sltu<subst_arith>): New insn.
4899 (*subdi3_insn): Split by means of visium_split_double_add.
4900 (subdi3_insn_flags): Delete.
4901 (*minus_minus_sltu<subst_arith>): New insn.
4902 (*negdi2_insn): Split by means of visium_split_double_add.
4903 (*negdi2_insn_flags): Delete.
4904
4905 2016-05-27 Ulrich Weigand <uweigand@de.ibm.com>
4906
4907 * configure.ac: Treat a --with-headers option without argument
4908 the same as the default (i.e. consult sys-include directory).
4909 * configure: Regenerate.
4910
4911 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4912
4913 * config/aarch64/aarch64.c (aarch64_fusion_enabled_p): New function.
4914 * config/aarch64/aarch64-protos.h (aarch64_fusion_enabled_p): Declare
4915 prototype.
4916 * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aesmc_op>v16qi):
4917 Add "=w,0" alternative. Enable it when AES/AESMC fusion is enabled.
4918
4919 2016-05-27 Jiong Wang <jiong.wang@arm.com>
4920
4921 PR target/63596
4922 * config/aarch64/aarch64.c (aarch64_expand_builtin_va_start): Honor
4923 tree-stdarg analysis results.
4924 (aarch64_setup_incoming_varargs): Likewise.
4925
4926 2016-05-27 Jiong Wang <jiong.wang@arm.com>
4927
4928 * config/aarch64/aarch64.c (aarch64_build_builtin_va_list): Initialize
4929 va_list_gpr_counter_field and va_list_fpr_counter_field.
4930
4931 2016-05-27 Wilco Dijkstra <wdijkstr@arm.com>
4932
4933 PR67609
4934 * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Remove.
4935 * config/aarch64/aarch64.c
4936 (aarch64_cannot_change_mode_class): Remove function.
4937 * config/aarch64/aarch64-protos.h
4938 (aarch64_cannot_change_mode_class): Remove.
4939
4940 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
4941
4942 * cfgloop.c (record_niter_bound): Record likely upper bounds.
4943 (likely_max_stmt_executions_int, get_likely_max_loop_iterations,
4944 get_likely_max_loop_iterations_int): New.
4945 * cfgloop.h (struct loop): Add nb_iterations_likely_upper_bound,
4946 any_likely_upper_bound.
4947 (get_likely_max_loop_iterations_int, get_likely_max_loop_iterations):
4948 Declare.
4949 * cfgloopmanip.c (copy_loop_info): Copy likely upper bounds.
4950 * loop-unroll.c (unroll_loop_constant_iterations): Update likely
4951 upper bound.
4952 (unroll_loop_constant_iterations): Likewise.
4953 (unroll_loop_runtime_iterations): Likewise.
4954 * lto-streamer-in.c (input_cfg): Stream likely upper bounds.
4955 * lto-streamer-out.c (output_cfg): Likewise.
4956 * tree-ssa-loop-ivcanon.c (try_peel_loop): Update likely upper
4957 bounds.
4958 (canonicalize_loop_induction_variables): Dump likely upper bounds.
4959 * tree-ssa-loop-niter.c (record_estimate): Record likely upper bounds.
4960 (likely_max_loop_iterations): New.
4961 (likely_max_loop_iterations_int): New.
4962 (likely_max_stmt_executions): New.
4963 * tree-ssa-loop-niter.h (likely_max_loop_iterations,
4964 likely_max_loop_iterations_int, likely_max_stmt_executions_int,
4965 likely_max_stmt_executions): Declare.
4966
4967 2016-05-27 Marek Polacek <polacek@redhat.com>
4968
4969 PR middle-end/71308
4970 * gimple-fold.c (gimple_fold_call): Check that LHS is not null.
4971
4972 2016-05-27 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
4973
4974 * config/s390/s390.md (2x risbg splitters): Use
4975 reg_overlap_mentioned_p instead of rtx_equal_p.
4976
4977 2016-05-27 Dominik Vogt <vogt@linux.vnet.ibm.com>
4978
4979 * combine.c (make_compound_operation): Take known zero bits into
4980 account when checking for possible zero_extend.
4981
4982 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4983
4984 * config/aarch64/aarch64.md (ashl<mode>3, SHORT modes):
4985 Use const_int_operand for operand 2 predicate. Simplify expand code
4986 as a result.
4987
4988 2016-05-27 Ilya Enkovich <ilya.enkovich@intel.com>
4989
4990 PR middle-end/71279
4991 * fold-const.c (fold_ternary_loc): Don't fold VEC_COND_EXPR
4992 into comparison.
4993
4994 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4995
4996 * config/aarch64/aarch64-modes.def (CC_ZESWP, CC_SESWP): Delete.
4997 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Remove condition
4998 that returns CC_SESWPmode and CC_ZESWPmode.
4999 (aarch64_get_condition_code_1): Remove handling of CC_SESWPmode
5000 and CC_SESWPmode.
5001 (aarch64_rtx_costs): Likewise.
5002
5003 2016-05-26 Michael Meissner <meissner@linux.vnet.ibm.com>
5004
5005 * config/rs6000/rs6000.c (rs6000_emit_p9_fp_minmax): New function
5006 for ISA 3.0 min/max support.
5007 (rs6000_emit_p9_fp_cmove): New function for ISA 3.0 floating point
5008 conditional move support.
5009 (rs6000_emit_cmove): Call rs6000_emit_p9_fp_minmax and
5010 rs6000_emit_p9_fp_cmove if the ISA 3.0 instructions are
5011 available.
5012 * config/rs6000/rs6000.md (SFDF2): New iterator to allow doing
5013 conditional moves where the comparison type is different from move
5014 type.
5015 (fp_minmax): New code iterator for smin/smax.
5016 (minmax): New code attributes for min/max.
5017 (SMINMAX): Likewise.
5018 (smax<mode>3): Combine min, max insns into one insn using the
5019 fp_minmax code iterator. Add support for ISA 3.0 min/max
5020 instructions that don't need -ffast-math.
5021 (s<minmax><mode>3): Likewise.
5022 (smax<mode>3_vsx): Likewise.
5023 (smin<mode>3): Likewise.
5024 (s<minmax><mode>3_vsx): Likewise.
5025 (smin<mode>3_vsx): Likewise.
5026 (pre-VSX min/max splitters): Likewise.
5027 (s<minmax><mode>3_fpr): Likewise.
5028 (movsfcc): Rewrite floating point conditional moves to combine
5029 SFmode/DFmode into a single insn.
5030 (mov<mode>cc): Likewise.
5031 (movdfcc): Likewise.
5032 (fselsfsf4): Combine FSEL cases into a single insn, using SFDF and
5033 SFDF2 iterators to handle all combinations.
5034 (fseldfsf4): Likewise.
5035 (fsel<SFDF:mode><SFDF2:mode>4): Likewise.
5036 (fseldfdf4): Likewise.
5037 (fselsfdf4): Likewise.
5038 (mov<SFDF:mode><SFDF2:mode>cc_p9): Add support for the ISA 3.0
5039 comparison instructions that set a 0/-1 mask, and use it for
5040 floating point conditional move via XXSEL.
5041 (fpmask<mode>): Likewise.
5042 (xxsel<mode>): Likewise.
5043 * config/rs6000/predicates.md (min_max_operator): Delete, no
5044 longer used.
5045 (fpmask_comparison_operaton): New insn for ISA 3.0 comparison
5046 instructions that generate a 0/-1 mask for use with XXSEL.
5047 * config/rs6000/rs6000.h (TARGET_MINMAX_SF): New helper macros to
5048 say whether floating point min/max is available, either through
5049 FSEL, ISA 2.06 min/max, and ISA 3.0 min/max instrucitons.
5050 (TARGET_MINMAX_DF): Likewise.
5051
5052 2016-05-27 Alan Modra <amodra@gmail.com>
5053
5054 PR rtl-optimization/71275
5055 * ira.c (ira): Call loop_optimizer_init to set up bb_loop_depth
5056 for update_equiv_regs and combine_and_move_insns.
5057
5058 2016-05-26 Uros Bizjak <ubizjak@gmail.com>
5059
5060 * config/i386/i386.md (*movqi_internal) <attr "isa">: Use
5061 if_then_else or cond RTXes to calculate attribute value.
5062 * config/i386/mmx.md (*vec_extractv2sf_1) <attr "prefix_rep">: Ditto.
5063 <attr "length_immediate>: Ditto.
5064 (*vec_extractv2sf_1) <attr "length_immediate">: Ditto.
5065 * config/i386/sse.md (sse_loadlps) <attr "length_immediate">: Ditto.
5066 (*vec_concatv2sf_sse4_1) <attr "isa">: Ditto.
5067 <attr "type">: Ditto.
5068 <attr "prefix_data16">: Ditto.
5069 <attr "prefix_extra">: Ditto.
5070 <attr "length_immediate">: Ditto.
5071 <attr "prefix">: Ditto.
5072 (vec_set<mode>_0) <attr "isa">: Ditto.
5073 <attr "prefix_extra">: Ditto.
5074 <attr "length_immediate">: Ditto.
5075 <attr "prefix">: Ditto.
5076 (*vec_interleave_highv2df) <attr "prefix_data16">: Ditto.
5077 (*vec_interleave_lowv2df) <attr "prefix_data16">: Ditto.
5078 (sse2_storelpd) <attr "prefix_data16">: Ditto.
5079 (sse2_loadhpd) <attr "prefix_data16">: Ditto.
5080 (sse2_loadlpd) <attr "prefix_data16">: Ditto.
5081 <attr "length_immediate">: Ditto.
5082 <attr "prefix">: Ditto.
5083 (sse2_movsd) <attr "length_immediate">: Ditto.
5084 <attr "prefix">: Ditto.
5085 (vec_concatv2df) <attr "isa">: Ditto.
5086 <attr "prefix">: Ditto.
5087 (*vec_extractv4si) <attr "prefix_extra">: Ditto.
5088 (*vec_extractv2di_1) <attr "isa">: Ditto.
5089 <attr "type">: Ditto.
5090 <attr "length_immediate">: Ditto.
5091 <attr "prefix_rex">: Ditto.
5092 <attr "prefix_extra">: Ditto.
5093 (*vec_concatv2si_sse4_1) <attr "type">: Ditto.
5094 <attr "prefix_extra">: Ditto.
5095 <attr "length_immediate">: Ditto.
5096 (vec_concatv2di) <attr "isa">: Ditto.
5097 <attr "prefix_extra">: Ditto.
5098 <attr "length_immediate">: Ditto.
5099 <attr "prefix">: Ditto.
5100
5101 2016-05-26 Martin Liska <mliska@suse.cz>
5102
5103 * tree-ssa-loop-ivopts.c (comp_cost::infinite_cost_p): New
5104 function.
5105 (operator+): Likewise.
5106 (operator-): Likewise.
5107 (comp_cost::operator+=): Likewise.
5108 (comp_cost::operator-=): Likewise.
5109 (comp_cost::operator/=): Likewise.
5110 (comp_cost::operator*=): Likewise.
5111 (operator<): Likewise.
5112 (operator==): Likewise.
5113 (operator<=): Likewise.
5114 (new_cost): Remove.
5115 (infinite_cost_p): Likewise.
5116 (add_costs): Likewise.
5117 (sub_costs): Likewise.
5118 (compare_costs): Likewise.
5119 (set_group_iv_cost): Use the newly introduced functions.
5120 (get_address_cost): Likewise.
5121 (get_shiftadd_cost): Likewise.
5122 (force_expr_to_var_cost): Likewise.
5123 (split_address_cost): Likewise.
5124 (ptr_difference_cost): Likewise.
5125 (difference_cost): Likewise.
5126 (get_computation_cost_at): Likewise.
5127 (determine_group_iv_cost_generic): Likewise.
5128 (determine_group_iv_cost_address): Likewise.
5129 (determine_group_iv_cost_cond): Likewise.
5130 (autoinc_possible_for_pair): Likewise.
5131 (determine_group_iv_costs): Likewise.
5132 (cheaper_cost_pair): Likewise.
5133 (iv_ca_recount_cost): Likewise.
5134 (iv_ca_set_no_cp): Likewise.
5135 (iv_ca_set_cp): Likewise.
5136 (iv_ca_cost): Likewise.
5137 (iv_ca_new): Likewise.
5138 (iv_ca_dump): Likewise.
5139 (iv_ca_narrow): Likewise.
5140 (iv_ca_prune): Likewise.
5141 (iv_ca_replace): Likewise.
5142 (try_add_cand_for): Likewise.
5143 (try_improve_iv_set): Likewise.
5144 (find_optimal_iv_set): Likewise.
5145
5146 2016-05-26 Richard Sandiford <richard.sandiford@arm.com>
5147
5148 * tree-ssa-loop-ivopts.c (loop_body_includes_call): Don't assume
5149 that internal functions will clobber all caller-saved registers.
5150
5151 2016-05-26 Wilco Dijkstra <wdijkstr@arm.com>
5152
5153 * config/aarch64/aarch64.c (aarch64_case_values_threshold):
5154 Return a better case_values_threshold when optimizing.
5155
5156 2016-05-26 Wilco Dijkstra <wdijkstr@arm.com>
5157
5158 * config/aarch64/aarch64-simd.md (aarch64_combinez):
5159 Add ? to integer variant.
5160 (aarch64_combinez_be): Likewise.
5161
5162 2016-05-26 Jakub Jelinek <jakub@redhat.com>
5163
5164 * config/i386/sse.md (*vcvtps2ph_store<mask_name>): Use v constraint
5165 instead of x constraint.
5166 (vcvtps2ph256<mask_name>): Likewise.
5167
5168 * config/i386/sse.md (*ssse3_palignr<mode>_perm): Add avx512bw
5169 alternative. Formatting fix.
5170
5171 * config/i386/sse.md
5172 (<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Rename
5173 to ...
5174 (avx512vl_shuf_<shuffletype>32x4_1<mask_name>): ... this.
5175 (*avx_vperm_broadcast_v4sf): Use v constraint instead of x. Use
5176 maybe_evex prefix instead of vex.
5177 (*avx_vperm_broadcast_<mode>): Use v constraint instead of x. Handle
5178 EXT_REX_SSE_REG_P (op0) case in the splitter.
5179
5180 2016-05-25 Jeff Law <law@redhat.com>
5181
5182 PR tree-optimization/71272
5183 * tree-ssa-threadbackward.c (convert_and_register_jump_thread_path):
5184 Update comments. Add test for empty path.
5185
5186 2016-05-25 Bill Seurer <seurer@linux.vnet.ibm.com>
5187
5188 * config/rs6000/altivec.h (vec_cmpne): Add #define for vec_cmpne.
5189 * config/rs6000/rs6000-builtin.def (vec_cmpne): Add vec_cmpne as a
5190 special case builtin.
5191 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
5192 code for ALTIVEC_BUILTIN_VEC_CMPNE.
5193 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
5194 for __builtin_vec_cmpne.
5195
5196 2016-05-25 Eric Botcazou <ebotcazou@adacore.com>
5197
5198 * tree-ssa-phiopt.c (factor_out_conditional_conversion): Remove
5199 redundant test and bail out if the type of the new operand is not
5200 a GIMPLE register type after stripping a VIEW_CONVERT_EXPR.
5201
5202 2016-05-25 Uros Bizjak <ubizjak@gmail.com>
5203
5204 * config/i386/i386.opt (ix86_target_flags_explicit): Remove.
5205 (x_ix86_target_flags_explicit): Remove.
5206 * config/i386/i386.c (ix86_function_specific_save): Do not copy
5207 x_ix86_target_flags_explicit.
5208 (ix86_function_specific_restore): Ditto.
5209
5210 2016-05-25 Uros Bizjak <ubizjak@gmail.com>
5211 H.J. Lu <hongjiu.lu@intel.com>
5212
5213 PR target/70738
5214 * common/config/i386/i386-common.c
5215 (OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): New.
5216 (ix86_handle_option) <case OPT_mgeneral_regs_only>: Disable
5217 MPX, MMX, SSE and x87 instructions for -mgeneral-regs-only.
5218 * config/i386/i386.opt (ix86_target_flags): Add new Variable.
5219 (-mgeneral-regs-only): Add new option.
5220 * config/i386/i386.c (ix86_option_override_internal): Don't enable
5221 x87 instructions if only general registers are allowed.
5222 (ix86_target_string): Add ix86_flags argument. Handle additional
5223 flags options through ix86_flags argument. Update all callers.
5224 * doc/invoke.texi (x86 Options): Document -mgeneral-regs-only.
5225
5226 2016-05-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5227
5228 PR rtl-optimization/66940
5229 * ifcvt.c (noce_get_alt_condition): Check that incrementing or
5230 decrementing desired_val will not overflow before performing these
5231 operations.
5232
5233 2016-05-25 Ilya Verbin <ilya.verbin@intel.com>
5234
5235 * config/i386/i386-builtin-types.def: Add V16SI_FTYPE_V16SF,
5236 V8DF_FTYPE_V8DF_ROUND, V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND.
5237 * config/i386/i386.c (enum ix86_builtins): Add
5238 IX86_BUILTIN_CVTPS2DQ512_MASK, IX86_BUILTIN_FLOORPS512,
5239 IX86_BUILTIN_FLOORPD512, IX86_BUILTIN_CEILPS512, IX86_BUILTIN_CEILPD512,
5240 IX86_BUILTIN_TRUNCPS512, IX86_BUILTIN_TRUNCPD512,
5241 IX86_BUILTIN_CVTPS2DQ512, IX86_BUILTIN_VEC_PACK_SFIX512,
5242 IX86_BUILTIN_FLOORPS_SFIX512, IX86_BUILTIN_CEILPS_SFIX512,
5243 IX86_BUILTIN_ROUNDPS_AZ_SFIX512.
5244 (builtin_description bdesc_args): Add __builtin_ia32_floorps512,
5245 __builtin_ia32_ceilps512, __builtin_ia32_truncps512,
5246 __builtin_ia32_floorpd512, __builtin_ia32_ceilpd512,
5247 __builtin_ia32_truncpd512, __builtin_ia32_cvtps2dq512,
5248 __builtin_ia32_vec_pack_sfix512, __builtin_ia32_roundps_az_sfix512,
5249 __builtin_ia32_floorps_sfix512, __builtin_ia32_ceilps_sfix512.
5250 Change IX86_BUILTIN_CVTPS2DQ512 to IX86_BUILTIN_CVTPS2DQ512_MASK for
5251 __builtin_ia32_cvtps2dq512_mask.
5252 (ix86_expand_args_builtin): Handle V8DF_FTYPE_V8DF_ROUND,
5253 V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF.
5254 (ix86_builtin_vectorized_function): Handle builtins mentioned above.
5255 * config/i386/sse.md
5256 (<mask_codefor>avx512f_fix_notruncv16sfv16si<mask_name><round_name>):
5257 Rename to ...
5258 (avx512f_fix_notruncv16sfv16si<mask_name><round_name>): ... this.
5259 (<mask_codefor>avx512f_cvtpd2dq512<mask_name><round_name>): Rename
5260 to ...
5261 (avx512f_cvtpd2dq512<mask_name><round_name>): ... this.
5262 (avx512f_vec_pack_sfix_v8df): New define_expand.
5263 (avx512f_roundpd512): Rename to ...
5264 (avx512f_round<castmode>512): ... this. Change iterator.
5265 (avx512f_roundps512_sfix): New define_expand.
5266 (round<mode>2_sfix): Change iterator.
5267
5268 2016-05-25 Nick Clifton <nickc@redhat.com>
5269
5270 * config/msp430/msp430.c (msp430_attr): Produce an error if a
5271 static interrupt handler is detected.
5272 * config/msp430/msp430.h (LIB_SPEC): Do not use msp430.ld as the
5273 default linker script.
5274 * config/msp430/msp430.md (movpsihi2_lo): New pattern for loading
5275 the low part of a symbolic pointer.
5276
5277 2016-05-25 Richard Biener <rguenther@suse.de>
5278
5279 PR tree-optimization/71261
5280 * tree-if-conv.c (ifcvt_split_def_stmt): Walk uses on the
5281 interesting stmt instead of immediate uses when looking
5282 for the use operand to replace.
5283
5284 2016-05-25 Martin Liska <mliska@suse.cz>
5285
5286 * ipa-inline.c (edge_badness): Use 'w/' instead of 'w'.
5287
5288 2016-05-25 Richard Biener <rguenther@suse.de>
5289
5290 PR tree-optimization/71264
5291 * tree-vect-stmts.c (vect_init_vector): Properly deal with
5292 vector type val.
5293
5294 2016-05-25 Martin Liska <mliska@suse.cz>
5295
5296 PR tree-optimization/71239
5297 * tree.c (array_at_struct_end_p): Do not call operand_equal_p
5298 if DECL_SIZE is NULL.
5299
5300 2016-05-25 Richard Biener <rguenther@suse.de>
5301
5302 * timevar.def (TV_TREE_LOOP_IFCVT): Add.
5303 * tree-if-conv.c (pass_data_if_conversion): Use it.
5304
5305 2016-05-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
5306
5307 * cgraph.c (cgraph_node::get_availability): Fix typo in comment.
5308 * symtab.c (symtab_node::binds_to_current_def_p): Likewise.
5309 * varpool.c (varpool_node::get_availability): Likewise.
5310
5311 2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
5312
5313 * config/rs6000/altivec.md (VNEG iterator): New iterator for
5314 VNEGW/VNEGD instructions.
5315 (p9_neg<mode>2): New insns for ISA 3.0 VNEGW/VNEGD.
5316 (neg<mode>2): Add expander for V2DImode added in ISA 2.07, and
5317 support for ISA 3.0 VNEGW/VNEGD instructions.
5318
5319 2016-05-24 Cesar Philippidis <cesar@codesourcery.com>
5320
5321 * gimplify.c (omp_notice_variable): Use zero-length arrays for data
5322 pointers inside OACC_DATA regions.
5323 (gimplify_scan_omp_clauses): Prune firstprivate clause associated
5324 with OACC_DATA, OACC_ENTER_DATA and OACC_EXIT data regions.
5325 (gimplify_adjust_omp_clauses): Fix typo in comment.
5326
5327 2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
5328
5329 * config/rs6000/altivec.md (VParity): New mode iterator for vector
5330 parity built-in functions.
5331 (p9v_ctz<mode>2): Add support for ISA 3.0 vector count trailing
5332 zeros.
5333 (p9v_parity<mode>2): Likewise.
5334 * config/rs6000/vector.md (VEC_IP): New mode iterator for vector
5335 parity.
5336 (ctz<mode>2): ISA 3.0 expander for vector count trailing zeros.
5337 (parity<mode>2): ISA 3.0 expander for vector parity.
5338 * config/rs6000/rs6000-builtin.def (BU_P9_MISC_1): New macros for
5339 power9 built-ins.
5340 (BU_P9_64BIT_MISC_0): Likewise.
5341 (BU_P9_MISC_0): Likewise.
5342 (BU_P9V_AV_1): Likewise.
5343 (BU_P9V_AV_2): Likewise.
5344 (BU_P9V_AV_3): Likewise.
5345 (BU_P9V_AV_P): Likewise.
5346 (BU_P9V_VSX_1): Likewise.
5347 (BU_P9V_OVERLOAD_1): Likewise.
5348 (BU_P9V_OVERLOAD_2): Likewise.
5349 (BU_P9V_OVERLOAD_3): Likewise.
5350 (VCTZB): Add vector count trailing zeros support.
5351 (VCTZH): Likewise.
5352 (VCTZW): Likewise.
5353 (VCTZD): Likewise.
5354 (VPRTYBD): Add vector parity support.
5355 (VPRTYBQ): Likewise.
5356 (VPRTYBW): Likewise.
5357 (VCTZ): Add overloaded vector count trailing zeros support.
5358 (VPRTYB): Add overloaded vector parity support.
5359 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
5360 overloaded vector count trailing zeros and parity instructions.
5361 * config/rs6000/rs6000.md (wd mode attribute): Add V1TI and TI for
5362 vector parity support.
5363 * config/rs6000/altivec.h (vec_vctz): Add ISA 3.0 vector count
5364 trailing zeros support.
5365 (vec_cntlz): Likewise.
5366 (vec_vctzb): Likewise.
5367 (vec_vctzd): Likewise.
5368 (vec_vctzh): Likewise.
5369 (vec_vctzw): Likewise.
5370 (vec_vprtyb): Add ISA 3.0 vector parity support.
5371 (vec_vprtybd): Likewise.
5372 (vec_vprtybw): Likewise.
5373 (vec_vprtybq): Likewise.
5374 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
5375 the ISA 3.0 vector count trailing zeros and vector parity built-in
5376 functions.
5377
5378 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
5379
5380 * tree-ssa-reassoc.c (sort_by_operand_rank): Skip checking gimple_bb
5381 when there is stmt_to_insert.
5382
5383 2016-05-24 Martin Sebor <msebor@redhat.com>
5384
5385 PR c++/71147
5386 * tree.h (complete_or_array_type_p): New inline function.
5387
5388 2016-05-24 Jakub Jelinek <jakub@redhat.com>
5389
5390 * config/i386/i386.h (TARGET_AVOID_4BYTE_PREFIXES): Define.
5391 * config/i386/constraints.md (Yr): Test TARGET_AVOID_4BYTE_PREFIXES
5392 rather than X86_TUNE_AVOID_4BYTE_PREFIXES.
5393
5394 * config/i386/sse.md (<sse4_1>_round<ssemodesuffix><avxsizesuffix>):
5395 Limit 1st alternative to noavx isa, split 2nd alternative into one
5396 noavx and one avx alternative, use *x and Bm in the former and
5397 x and m in the latter.
5398
5399 * config/i386/sse.md (vec_set<mode>_0): Use sse4_noavx isa instead
5400 of sse4 for the first alternative, drop %v from the template
5401 and d operand modifier. Split second alternative into one sse4_noavx
5402 and one avx alternative, use *x instead of *v in the former and v
5403 instead of *v in the latter.
5404 (*sse4_1_extractps): Use noavx isa instead of * for the first
5405 alternative, drop %v from the template. Split second alternative into
5406 one noavx and one avx alternative, use *x instead of *v in the
5407 former and v instead of *v in the latter.
5408 (<vi8_sse4_1_avx2_avx512>_movntdqa): Guard the first 2 alternatives
5409 with noavx and the last one with avx.
5410 (sse4_1_phminposuw): Guard first alternative with noavx isa,
5411 split the second one into one noavx and one avx alternative,
5412 use *x and Bm in the former and x and m in the latter one.
5413 (<sse4_1>_ptest<mode>): Use noavx instead of * for the first two
5414 alternatives.
5415
5416 * config/i386/sse.md (sse4_1_<code>v8qiv8hi2<mask_name>): Limit
5417 first two alternatives to noavx, use *x instead of *v in the second
5418 one, add avx alternative without *.
5419 (sse4_1_<code>v4qiv4si2<mask_name>, sse4_1_<code>v4hiv4si2<mask_name>,
5420 sse4_1_<code>v2qiv2di2<mask_name>, sse4_1_<code>v2hiv2di2<mask_name>,
5421 sse4_1_<code>v2siv2di2<mask_name>): Likewise.
5422
5423 2016-05-24 Jeff Law <law@redhat.com>
5424
5425 * tree-ssa-threadbackwards.c (convert_and_register_jump_thread_path):
5426 New function, extracted from...
5427 (fsm_find_control_statement_thread_paths): Here. Use the new function.
5428 Allow simple copies and constant initializations in the SSA chain.
5429
5430 2016-05-24 Marek Polacek <polacek@redhat.com>
5431
5432 PR c/71249
5433 * gimplify.c (gimplify_switch_expr): Look into the innermost lexical
5434 scope.
5435
5436 2016-05-24 Jakub Jelinek <jakub@redhat.com>
5437
5438 PR c++/71257
5439 * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
5440 SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
5441 SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP. Add
5442 SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP and
5443 SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP cases explicitly.
5444
5445 2016-05-24 Richard Biener <rguenther@suse.de>
5446
5447 PR tree-optimization/71240
5448 * tree-ssa-math-opts.c (init_symbolic_number): Verify the source
5449 has integral type.
5450
5451 2016-05-24 Richard Biener <rguenther@suse.de>
5452
5453 PR tree-optimization/71230
5454 * tree-ssa-reassoc.c (zero_one_operation): Handle negate special ops.
5455
5456 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
5457
5458 * tree-vectorizer.h (vectorizable_comparison): Delete.
5459 * tree-vect-loop.c (vectorizable_reduction): Remove redundant
5460 PURE_SLP_STMT check.
5461 * tree-vect-stmts.c (vectorizable_call): Likewise.
5462 (vectorizable_simd_clone_call): Likewise.
5463 (vectorizable_conversion): Likewise.
5464 (vectorizable_assignment): Likewise.
5465 (vectorizable_shift): Likewise.
5466 (vectorizable_operation): Likewise.
5467 (vectorizable_load): Likewise.
5468 (vectorizable_condition): Likewise.
5469 (vectorizable_store): Likewise. Assert that we don't have
5470 hybrid SLP.
5471 (vectorizable_comparison): Make static. Remove redundant
5472 PURE_SLP_STMT check.
5473 (vect_transform_stmt): Assert that we always have an slp_node
5474 if PURE_SLP_STMT.
5475
5476 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5477
5478 * config/arm/neon.md (ashldi3_neon): Replace comparison of INTVAL of
5479 operands[2] against 1 with comparison against CONST1_RTX.
5480 (<shift>di3_neon): Likewise.
5481 * config/arm/predicates.md (const0_operand): Replace with comparison
5482 against CONST0_RTX.
5483
5484 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5485
5486 * config/arm/arm.md (ashldi3): Replace comparison of INTVAL of
5487 operands[2] against 1 with comparison against CONST1_RTX.
5488 (ashrdi3): Likewise.
5489 (lshrdi3): Likewise.
5490 (ashlsi3): Replace cast of INTVAL to unsigned HOST_WIDE_INT with
5491 UINTVAL.
5492 (ashrsi3): Likewise.
5493 (lshrsi3): Likewise.
5494 (rotrsi3): Likewise.
5495 (define_split above *compareqi_eq0): Likewise.
5496 (define_split above "prologue"): Likewise.
5497 * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
5498 * config/arm/predicates.md (shift_operator): Likewise.
5499 (shift_nomul_operator): Likewise.
5500 (sat_shift_operator): Likewise.
5501 (thumb1_cmp_operand): Likewise.
5502 (const_neon_scalar_shift_amount_operand): Replace manual range
5503 check with IN_RANGE.
5504 * config/arm/thumb1.md (define_peephole2 above *thumb_subdi3):
5505 Replace cast of INTVAL to unsigned HOST_WIDE_INT with UINTVAL.
5506
5507 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5508
5509 * config/arm/arm.md (andsi3): Replace cast of 1 to HOST_WIDE_INT
5510 with HOST_WIDE_INT_1.
5511 (insv): Likewise.
5512 * config/arm/arm.c (optimal_immediate_sequence): Replace cast of
5513 1 to unsigned HOST_WIDE_INT with HOST_WIDE_INT_1U.
5514 (arm_canonicalize_comparison): Likewise.
5515 (thumb1_rtx_costs): Replace cast of 1 to HOST_WIDE_INT with
5516 HOST_WIDE_INT_1.
5517 (thumb1_size_rtx_costs): Likewise.
5518 (vfp_const_double_index): Replace cast of 1 to unsigned
5519 HOST_WIDE_INT with HOST_WIDE_INT_1U.
5520 (get_jump_table_size): Replace cast of 1 to HOST_WIDE_INT with
5521 HOST_WIDE_INT_1.
5522 (arm_asan_shadow_offset): Replace cast of 1 to unsigned
5523 HOST_WIDE_INT with HOST_WIDE_INT_1U.
5524 * config/arm/neon.md (vec_set<mode>): Replace cast of 1 to
5525 HOST_WIDE_INT with HOST_WIDE_INT_1.
5526
5527 2016-05-24 Marek Polacek <polacek@redhat.com>
5528
5529 * tree-cfg.h (should_remove_lhs_p): New predicate.
5530 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
5531 * gimplify.c (gimplify_modify_expr): Likewise.
5532 * tree-cfg.c (verify_gimple_call): Likewise.
5533 * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
5534 * gimple-fold.c: Include "tree-cfg.h".
5535 (gimple_fold_call): Use should_remove_lhs_p.
5536
5537 2016-05-24 Richard Biener <rguenther@suse.de>
5538
5539 PR tree-optimization/71253
5540 * cfganal.h (control_dependences): Make robust against edge
5541 and BB removal.
5542 (control_dependences::control_dependences): Remove edge_list argument.
5543 (control_dependences::get_edge): Remove.
5544 (control_dependences::get_edge_src): Add.
5545 (control_dependences::get_edge_dest): Likewise.
5546 (control_dependences::m_el): Make a vector of edge src/dest index.
5547 * cfganal.c (control_dependences::find_control_dependence): Adjust.
5548 (control_dependences::control_dependences): Likewise.
5549 (control_dependences::~control_dependence): Likewise.
5550 (control_dependences::get_edge): Remove.
5551 (control_dependences::get_edge_src): Add.
5552 (control_dependences::get_edge_dest): Likewise.
5553 * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Use
5554 get_edge_src.
5555 (perform_tree_ssa_dce): Adjust.
5556 * tree-loop-distribution.c (create_edge_for_control_dependence): Use
5557 get_edge_src.
5558 (pass_loop_distribution::execute): Adjust. Do loop destroying
5559 conditional on changed.
5560
5561 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5562
5563 PR target/69857
5564 * config/arm/arm.c (gen_operands_ldrd_strd): Remove bogus early
5565 return. Reindent transformation comment and mention the ARM state
5566 behavior.
5567
5568 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
5569
5570 PR middle-end/71252
5571 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Add stmt_to_insert
5572 after build_and_add_sum creates new use stmt.
5573
5574 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
5575
5576 * tree-vect-stmts.c (vectorizable_load): Reorder checks so that
5577 load_lanes/grouped_load classification comes first. Don't check
5578 whether the vectorization factor is a multiple of the group size
5579 for load_lanes.
5580
5581 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
5582
5583 * tree-vect-data-refs.c (vect_analyze_group_access_1): Set
5584 GROUP_GAP for single-element interleaving.
5585 * tree-vect-stmts.c (vectorizable_load): Remove force_peeling
5586 variable.
5587
5588 2016-05-24 Richard Biener <rguenther@suse.de>
5589
5590 PR middle-end/70434
5591 PR c/69504
5592 * tree-ssa.c (non_rewritable_mem_ref_base): Make sure to mark
5593 bases which are accessed with non-invariant indices.
5594 * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Re-write
5595 constant index ARRAY_REFs of vectors into BIT_FIELD_REFs.
5596
5597 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
5598
5599 PR middle-end/71170
5600 * tree-ssa-reassoc.c (struct operand_entry): Add field stmt_to_insert.
5601 (add_to_ops_vec): Add stmt_to_insert.
5602 (add_repeat_to_ops_vec): Init stmt_to_insert.
5603 (insert_stmt_before_use): New.
5604 (transform_add_to_multiply): Remove mult_stmt insertion and add it
5605 to ops vector.
5606 (get_ops): Init stmt_to_insert.
5607 (maybe_optimize_range_tests): Likewise.
5608 (rewrite_expr_tree): Insert stmt_to_insert before use stmt.
5609 (rewrite_expr_tree_parallel): Likewise.
5610 (reassociate_bb): Likewise.
5611
5612 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
5613
5614 PR target/71201
5615 * config/rs6000/altivec.md (altivec_vperm_<mode>_internal): Drop
5616 ISA 3.0 xxperm fusion alternative.
5617 (altivec_vperm_v8hiv16qi): Likewise.
5618 (altivec_vperm_<mode>_uns_internal): Likewise.
5619 (vperm_v8hiv4si): Likewise.
5620 (vperm_v16qiv8hi): Likewise.
5621
5622 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
5623 Kelvin Nilsen <kelvin@gcc.gnu.org>
5624
5625 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate
5626 vpermr/xxpermr on ISA 3.0.
5627 (altivec_expand_vec_perm_le): Likewise.
5628 * config/rs6000/altivec.md (UNSPEC_VPERMR): New unspec.
5629 (altivec_vpermr_<mode>_internal): Add VPERMR/XXPERMR support for
5630 ISA 3.0.
5631
5632 2016-05-23 Uros Bizjak <ubizjak@gmail.com>
5633
5634 * config/i386/i386.h (IS_STACK_MODE): Enable for
5635 TARGET_MIX_SSE_I387. Rewrite using X87_FLOAT_MODE_P and
5636 SSE_FLOAT_MODE_P macros.
5637 * config/i386/i386.c (ix86_preferred_reload_class): Use
5638 IS_STACK_MODE, INTEGER_CLASS_P, FLOAT_CLASS_P and Q_CLASS_P macros.
5639 Cleanup regclass processing for CONST_DOUBLE_P.
5640 (ix86_preferred_output_reload_class): Use IS_STACK_MODE macro.
5641 (ix86_rtx_costs): Remove redundant TARGET_80387 check
5642 with IS_STACK_MODE macro.
5643 * config/i386/i386.md: Replace SSE_FLOAT_MODE_P (DFmode)
5644 with TARGET_SSE2.
5645 (*movdf_internal): Use IS_STACK_MODE macro.
5646 (*movsf_internal): Ditto.
5647
5648 2016-05-23 Marc Glisse <marc.glisse@inria.fr>
5649
5650 * match.pd (a * (1 << b), ~x & ~y, ~X ^ ~Y, (X ^ Y) ^ Y, ~ (-A),
5651 ~ (A - 1), ~(~X >> Y), ~(~X >>r Y)): Relax constraints.
5652
5653 2016-05-23 Jeff Law <law@redhat.com>
5654
5655 * tree-ssa-threadbackward.c (profitable_jump_thread_path): New function
5656 extracted from ...
5657 (fsm_find_control_statement_thread_paths): Call it.
5658
5659 2016-05-23 Martin Jambor <mjambor@suse.cz>
5660
5661 PR ipa/71234
5662 * ipa-cp.c (ipa_get_indirect_edge_target_1): Only check value of
5663 from_global_constant if t is not NULL.
5664
5665 2016-05-23 Marek Polacek <polacek@redhat.com>
5666
5667 PR c/49859
5668 * common.opt (Wswitch-unreachable): New option.
5669 * doc/invoke.texi: Document -Wswitch-unreachable.
5670 * gimplify.c (gimplify_switch_expr): Implement the -Wswitch-unreachable
5671 warning.
5672
5673 2016-05-23 Bin Cheng <bin.cheng@arm.com>
5674
5675 * tree-ssa-address.c (copy_ref_info): Check NULL TMR_STEP when
5676 TMR_INDEX is non-NULL.
5677
5678 2016-05-23 Richard Biener <rguenther@suse.de>
5679
5680 PR tree-optimization/71230
5681 * tree-ssa-reassoc.c (acceptable_pow_call): Move initial condition...
5682 (try_special_add_to_ops): ... here. Always test for single-use.
5683
5684 2016-05-23 Martin Jambor <mjambor@suse.cz>
5685
5686 * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Create an empty
5687 default block if a PHI node in the original one would be resized.
5688
5689 2016-05-23 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
5690
5691 PR tree-optimization/58135
5692 * tree-vect-slp.c: When group size is not multiple
5693 of vector size, allow splitting of store group at
5694 vector boundary.
5695
5696 2016-05-23 Christophe Lyon <christophe.lyon@linaro.org>
5697
5698 * config/arm/arm_neon.h (vtst_p16, vtstq_p16): New.
5699
5700 2016-05-22 Jakub Jelinek <jakub@redhat.com>
5701
5702 * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
5703 vec_set_hi_<mode><mask_name>): Add && <mask_avx512dq_condition>
5704 condition. For !TARGET_AVX512DQ, emit 32x4 instruction instead
5705 of 64x2.
5706
5707 * config/i386/sse.md (vec_set_lo_v16hi, vec_set_hi_v16hi,
5708 vec_set_lo_v32qi, vec_set_hi_v32qi): Add alternative with
5709 v constraint instead of x and vinserti32x4 insn.
5710
5711 * config/i386/sse.md (i128vldq): New mode iterator.
5712 (avx2_vbroadcasti128_<mode>, avx_vbroadcastf128_<mode>): Add
5713 avx512dq and avx512vl alternatives.
5714
5715 * config/i386/sse.md (avx2_vec_dupv4df): Use v instead of x
5716 constraint, use maybe_evex prefix instead of vex.
5717 (vec_dupv4sf): Use v constraint instead of x for output
5718 operand except for noavx alternative, use Yv constraint
5719 instead of x for input. Use maybe_evex prefix instead of vex.
5720 (*vec_dupv4si): Likewise.
5721 (*vec_dupv2di): Likewise.
5722
5723 2016-05-22 Kugan Vivekanandarajah <kuganv@linaro.org>
5724
5725 PR middle-end/40921
5726 * tree-ssa-reassoc.c (try_special_add_to_ops): New.
5727 (linearize_expr_tree): Call try_special_add_to_ops.
5728 (reassociate_bb): Convert MULT_EXPR by (-1) to NEGATE_EXPR.
5729
5730 2016-05-21 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
5731
5732 * config/avr/avr.c (avr_expand_prologue): Add INCOMING_FRAME_SP_OFFSET
5733 to computed stack_usage.
5734
5735 2016-05-21 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
5736
5737 PR target/71103
5738 * config/avr/avr.md (define_expand "mov<mode>"): If the source
5739 operand is subreg (symbol_ref) then move the symbol ref to register.
5740
5741 2016-05-21 Jan Hubicka <hubicka@ucw.cz>
5742
5743 * tree.c (array_at_struct_end_p): Look through MEM_REF.
5744
5745 2016-05-21 Kugan Vivekanandarajah <kuganv@linaro.org>
5746
5747 PR middle-end/71179
5748 * tree-ssa-reassoc.c (transform_add_to_multiply): Disallow float
5749 VECTOR type.
5750
5751 2016-05-20 Eric Botcazou <ebotcazou@adacore.com>
5752
5753 * tree-vrp.c (compare_values_warnv): Simplify handling of symbolic
5754 ranges by calling get_single_symbol and tidy up. Look more closely
5755 into NAME + CST1 vs CST2 comparisons if type overflow is undefined.
5756
5757 2016-05-20 Jeff Law <law@redhat.com>
5758
5759 * bitmap.c (bitmap_find_bit): Remove useless test.
5760
5761 2016-05-20 Segher Boessenkool <segher@kernel.crashing.org>
5762
5763 * function.c (thread_prologue_and_epilogue_insns): Commit the
5764 insertion of the epilogue.
5765
5766 2016-05-20 Martin Jambor <mjambor@suse.cz>
5767
5768 PR tree-optimization/70884
5769 * tree-sra.c (initialize_constant_pool_replacements): Do not check
5770 should_scalarize_away_bitmap and cannot_scalarize_away_bitmap bits.
5771 (sort_and_splice_var_accesses): Do not consider multiple scalar reads
5772 of constant pool data as a reason for scalarization.
5773
5774 2016-05-20 Eric Botcazou <ebotcazou@adacore.com>
5775
5776 * config/arm/arm.c (arm_expand_prologue): Set the stack usage to 0
5777 for naked functions.
5778 (thumb1_expand_prologue): Likewise.
5779
5780 2016-05-20 Nathan Sidwell <nathan@acm.org>
5781
5782 * config/nvptx/nptx.c (nvptx_option_override): Only set
5783 flag_toplevel_reorder, if not explicitly specified. Set
5784 flag_no_common, unless explicitly specified.
5785
5786 2016-05-20 David Malcolm <dmalcolm@redhat.com>
5787
5788 * calls.c (can_implement_as_sibling_call_p): Mark param
5789 reg_parm_stack_space with ATTRIBUTE_UNUSED.
5790
5791 2016-05-20 Uros Bizjak <ubizjak@gmail.com>
5792
5793 * config/i386/i386.c (ix86_rtx_costs) <case CONST_DOUBLE>:
5794 Use IS_STACK_MODE when calculating cost of standard 80387 constants.
5795 Fallthru to CONST_VECTOR case to calculate cost of standard SSE
5796 constants.
5797 <case CONST_WIDE_INT>: Calculate cost of (MEM (SYMBOL_REF)).
5798 (ix86_legitimate_constant_p): Use CASE_CONST_SCALAR_INT
5799 and CASE_CONST_ANY.
5800
5801 2016-05-20 Cesar Philippidis <cesar@codesourcery.com>
5802
5803 * config/nvptx/nvptx.md (sincossf3): New pattern.
5804
5805 2016-05-20 David Malcolm <dmalcolm@redhat.com>
5806
5807 * calls.c (maybe_complain_about_tail_call): New function.
5808 (initialize_argument_information): Call
5809 maybe_complain_about_tail_call when clearing *may_tailcall.
5810 (can_implement_as_sibling_call_p): Call
5811 maybe_complain_about_tail_call when returning false.
5812 (expand_call): Read CALL_EXPR_MUST_TAIL_CALL and, if set,
5813 ensure try_tail_call is set. Call maybe_complain_about_tail_call
5814 if tail-call optimization fails.
5815 * cfgexpand.c (expand_call_stmt): Initialize
5816 CALL_EXPR_MUST_TAIL_CALL from gimple_call_must_tail_p.
5817 * gimple-pretty-print.c (dump_gimple_call): Dump
5818 gimple_call_must_tail_p.
5819 * gimple.c (gimple_build_call_from_tree): Call
5820 gimple_call_set_must_tail with the value of
5821 CALL_EXPR_MUST_TAIL_CALL.
5822 * gimple.h (enum gf_mask): Add GF_CALL_MUST_TAIL_CALL.
5823 (gimple_call_set_must_tail): New function.
5824 (gimple_call_must_tail_p): New function.
5825 * print-tree.c (print_node): Update printing of TREE_STATIC
5826 to reflect its use for CALL_EXPR_MUST_TAIL_CALL.
5827 * tree-core.h (struct tree_base): Add MUST_TAIL_CALL to the
5828 trailing comment listing applicable flags.
5829 * tree.h (CALL_EXPR_MUST_TAIL_CALL): New macro.
5830
5831 2016-05-20 David Malcolm <dmalcolm@redhat.com>
5832
5833 * calls.c (expand_call): Move "Rest of purposes for tail call
5834 optimizations to fail" to...
5835 (can_implement_as_sibling_call_p): ...this new function, and
5836 split into multiple "if" statements.
5837
5838 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
5839
5840 * cfgloop.h (expected_loop_iterations_unbounded,
5841 expected_loop_iterations): Unconstify.
5842 * cfgloopanal.c (expected_loop_iterations_unbounded): Sanity check the
5843 profile with known upper bound; return 3 when profile is absent.
5844 (expected_loop_iterations): Update.
5845
5846 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
5847
5848 * loop-doloop.c (doloop_optimize): Use get_estimated_loop_iterations_int
5849 and get_max_loop_iterations_int.
5850
5851 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
5852
5853 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can not produce
5854 realistic upper bounds here.
5855
5856 2016-05-20 Jakub Jelinek <jakub@redhat.com>
5857
5858 PR c++/71210
5859 * gimple-fold.c (gimple_fold_call): Do not remove lhs of noreturn
5860 calls if the LHS is variable length or has addressable type.
5861 If targets[0]->decl is a noreturn call with void return type and
5862 zero arguments, adjust fntype and remove lhs in that case.
5863
5864 2016-05-20 Marc Glisse <marc.glisse@inria.fr>
5865
5866 PR tree-optimization/71079
5867 PR tree-optimization/71206
5868 * match.pd ((X ^ Y) ^ (X ^ Z)): Convert the arguments.
5869
5870 2016-05-20 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
5871
5872 * tree-vectorizer.c (get_vec_alignment_for_decl): New static function.
5873 (get_vec_alignment_for_array_decl): Likewise.
5874 (get_vec_alignment_for_record_decl): Likewise.
5875 (increase_alignment::execute): Move code to find alignment to
5876 get_vec_alignment_for_array_decl and call get_vec_alignment_for_decl.
5877 (type_align_map): New hash_map.
5878
5879 2016-05-20 Richard Guenther <rguenther@suse.de>
5880
5881 PR tree-optimization/29756
5882 * tree.def (BIT_INSERT_EXPR): New tcc_expression tree code.
5883 * expr.c (expand_expr_real_2): Handle BIT_INSERT_EXPR.
5884 * fold-const.c (operand_equal_p): Likewise.
5885 (fold_ternary_loc): Add constant folding of BIT_INSERT_EXPR.
5886 * gimplify.c (gimplify_expr): Handle BIT_INSERT_EXPR.
5887 * tree-inline.c (estimate_operator_cost): Likewise.
5888 * tree-pretty-print.c (dump_generic_node): Likewise.
5889 * tree-ssa-operands.c (get_expr_operands): Likewise.
5890 * cfgexpand.c (expand_debug_expr): Likewise.
5891 * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
5892 * gimple.c (get_gimple_rhs_num_ops): Handle BIT_INSERT_EXPR.
5893 * tree-cfg.c (verify_gimple_assign_ternary): Verify BIT_INSERT_EXPR.
5894 * tree-ssa.c (non_rewritable_lvalue_p): We can rewrite
5895 vector inserts using BIT_FIELD_REF or MEM_REF on the lhs.
5896 (execute_update_addresses_taken): Do it.
5897
5898 2016-05-20 Richard Biener <rguenther@suse.de>
5899
5900 PR tree-optimization/71185
5901 * tree-ssa-loop-prefetch.c (gather_memory_references): Drop
5902 register operations.
5903
5904 2016-05-20 Richard Biener <rguenther@suse.de>
5905
5906 * tree-if-conv.c (add_bb_predicate_gimplified_stmts): Use
5907 gimple_seq_add_seq_without_update.
5908 (release_bb_predicate): Assert we have no operands to free.
5909 (if_convertible_loop_p_1): Calculate post dominators later.
5910 Do not free BB predicates here.
5911 (combine_blocks): Do not recompute BB predicates.
5912 (version_loop_for_if_conversion): Save BB predicates around
5913 loop versioning.
5914
5915 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org>
5916
5917 * function.c (make_epilogue_seq): Remove epilogue_end parameter.
5918 (thread_prologue_and_epilogue_insns): Remove bb_flags. Restructure
5919 code. Ignore sibcalls on EDGE_IGNORE edges.
5920 * shrink-wrap.c (handle_simple_exit): New function. Set EDGE_IGNORE
5921 on edges for sibcalls that run without prologue. The rest of the
5922 function is combined from...
5923 (fix_fake_fallthrough_edge): ... this, and ...
5924 (try_shrink_wrapping): ... a part of this. Remove the bb_with
5925 function argument, make it a local variable.
5926
5927 2016-05-19 Sandra Loosemore <sandra@codesourcery.com>
5928
5929 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Allow
5930 --disable-sjlj-exceptions for TARGET_BI_ARCH to select DWARF-2 EH
5931 for 32-bit mode and SEH for 64-bit.
5932 * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): Handle
5933 TARGET_64BIT_DEFAULT.
5934
5935 2016-05-19 Ryan Burn <contact@rnburn.com>
5936
5937 * Makefile.in (GTFILES): Add cilk.h and cilk-common.c.
5938 * gengtype.c (open_base_files): Add cilk.h to ifiles.
5939
5940 2016-05-19 Uros Bizjak <ubizjak@gmail.com>
5941
5942 * sched-deps.c (sched_analyze_2) <case TRAP_IF>: Also
5943 force pending loads from memory.
5944
5945 2016-05-19 Kelvin Nilsen <kelvin@gcc.gnu.org>
5946
5947 * config/rs6000/altivec.md (UNSPEC_DARN): New unspec constant.
5948 (UNSPEC_DARN_32): New unspec constant.
5949 (UNSPEC_DARN_RAW): New unspec constant.
5950 (darn_32): New instruction.
5951 (darn_raw): New instruction.
5952 (darn): New instruction.
5953 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_0): Add
5954 support and documentation for this macro.
5955 (BU_P9_MISC_1): New macro definition.
5956 (BU_P9_64BIT_MISC_0): New macro definition.
5957 (BU_P9_MISC_0): New macro definition.
5958 (darn_32): New builtin definition.
5959 (darn_raw): New builtin definition.
5960 (darn): New builtin definition.
5961 * config/rs6000/rs6000.c: Add #define RS6000_BUILTIN_0 and #undef
5962 RS6000_BUILTIN_0 directives to surround each occurrence of
5963 #include "rs6000-builtin.def".
5964 (rs6000_builtin_mask_calculate): Add in the RS6000_BTM_MODULO and
5965 RS6000_BTM_64BIT flags to the returned mask, depending on
5966 configuration.
5967 (def_builtin): Correct an error in the assignments made to the
5968 debugging variable attr_string.
5969 (rs6000_expand_builtin): Add support for no-operand built-in
5970 functions.
5971 (builtin_function_type): Remove fatal_error assertion that is no
5972 longer valid.
5973 (rs6000_common_init_builtins): Add support for no-operand built-in
5974 functions.
5975 * config/rs6000/rs6000.h (RS6000_BTM_MODULO): New macro
5976 definition.
5977 (RS6000_BTM_PURE): Enhance comment to clarify intent of this flag
5978 definition.
5979 (RS6000_BTM_64BIT): New macro definition.
5980 * doc/extend.texi: Document __builtin_darn (void),
5981 __builtin_darn_raw (void), and __builtin_darn_32 (void) built-in
5982 functions.
5983
5984 2016-05-19 Jan Hubicka <hubicka@ucw.cz>
5985
5986 * tree-vect-loop.c (vect_analyze_loop_2): Use also
5987 max_loop_iterations_int.
5988
5989 2016-05-19 Marek Polacek <polacek@redhat.com>
5990
5991 PR tree-optimization/71031
5992 * tree-vrp.c (extract_range_from_binary_expr_1): Turn assert into a
5993 condition and adjust the code a bit.
5994
5995 2016-05-19 Martin Liska <mliska@suse.cz>
5996
5997 * tree-vect-stmts.c (vectorizable_simd_clone_call): Utilize
5998 auto_vec instead of vec.
5999
6000 2016-05-19 Martin Liska <mliska@suse.cz>
6001
6002 * tree-parloops.c (oacc_entry_exit_ok): Release a vector.
6003
6004 2016-05-19 Martin Liska <mliska@suse.cz>
6005
6006 * tree-if-conv.c (ifcvt_repair_bool_pattern): Utilize auto_vecs.
6007
6008 2016-05-19 Martin Liska <mliska@suse.cz>
6009
6010 * ipa-pure-const.c (set_function_state): Remove an existing
6011 funct_state.
6012 (remove_node_data): Do not free it as it's released
6013 in set_function_state.
6014
6015 2016-05-19 Martin Liska <mliska@suse.cz>
6016
6017 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Release
6018 bitmap.
6019
6020 2016-05-19 Martin Liska <mliska@suse.cz>
6021
6022 * omp-simd-clone.c (simd_clone_adjust): Release vector.
6023
6024 2016-05-19 Martin Liska <mliska@suse.cz>
6025
6026 * tree-ssa-reassoc.c (eliminate_duplicate_pair): Truncate
6027 an auto_vec instead of re-creating it.
6028
6029 2016-05-19 Martin Liska <mliska@suse.cz>
6030
6031 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Use
6032 auto_vec instead of vec.
6033
6034 2016-05-19 Martin Liska <mliska@suse.cz>
6035
6036 * lto-section-in.c (lto_get_section_data): Call
6037 lto_check_version with additional argument.
6038 * lto-streamer.c (lto_check_version): Add new argument.
6039 * lto-streamer.h (lto_check_version): Likewise.
6040
6041 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6042
6043 * config/arm/arm.c (arm_new_rtx_costs, SIGN_EXTEND case):
6044 Don't add cost of inner memory when handling sign-extended loads.
6045
6046 2016-05-19 Ilya Enkovich <ilya.enkovich@intel.com>
6047
6048 PR rtl-optimization/71148
6049 * cse.c (cse_main): Free dominance info.
6050 (rest_of_handle_cse): Don't free dominance info.
6051 (rest_of_handle_cse2): Likewise.
6052 (rest_of_handle_cse_after_global_opts): Likewise.
6053
6054 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6055
6056 PR target/71056
6057 * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Return
6058 NULL_TREE early if NEON is not available. Remove now redundant check
6059 in ARM_CHECK_BUILTIN_MODE.
6060
6061 2016-05-19 Maxim Ostapenko <m.ostapenko@samsung.com>
6062
6063 PR sanitizer/64354
6064 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add new
6065 builtin __SANITIZE_THREAD__ macros for fsanitize=thread switch.
6066 * doc/cpp.texi: Document new macros.
6067
6068 2016-05-19 Bin Cheng <bin.cheng@arm.com>
6069
6070 PR tree-optimization/69848
6071 * tree-vect-loop.c (vectorizable_reduction): Don't factor
6072 comparison expr out of VEC_COND_EXPR for COND_REDUCTION.
6073
6074 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org>
6075
6076 * function.c (thread_prologue_and_epilogue_insn): Move the
6077 "goto epilogue_done" one block later.
6078
6079 2016-05-19 Richard Biener <rguenther@suse.de>
6080
6081 PR tree-optimization/70729
6082 * passes.def: Move LIM pass before PRE. Remove no longer
6083 required copyprop and move first DCE out of the loop pipeline.
6084
6085 2016-05-18 David Malcolm <dmalcolm@redhat.com>
6086
6087 PR driver/69265
6088 * Makefile.in (GCC_OBJS): Move spellcheck.o to...
6089 (OBJS-libcommon-target): ...here.
6090 * opts-common.c: Include spellcheck.h.
6091 (cmdline_handle_error): Build a vec of valid options and use it
6092 to suggest provide hints for misspelled arguments.
6093
6094 2016-05-18 Jakub Jelinek <jakub@redhat.com>
6095
6096 PR c++/71100
6097 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Don't drop
6098 lhs if it has TREE_ADDRESSABLE type.
6099
6100 2016-05-18 Uros Bizjak <ubizjak@gmail.com>
6101
6102 PR target/71145
6103 * config/alpha/alpha.md (trap): Add (use (reg:DI 29)).
6104 (*exception_receiver_1): Return "#" for TARGET_EXPLICIT_RELOCS.
6105
6106 2016-05-18 Martin Jambor <mjambor@suse.cz>
6107
6108 PR ipa/69708
6109 * ipa-cp.c (ipa_get_jf_pass_through_result): Allow non-ip constant
6110 input for NOP_EXPR pass-through functions.
6111 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Allow
6112 aggregate global constant VAR_DECLs in constant jump functions.
6113
6114 2016-05-18 Martin Jambor <mjambor@suse.cz>
6115
6116 PR ipa/69708
6117 * ipa-prop.c (parm_preserved_before_stmt_p): Return true for loads
6118 from TREE_READONLY parameters.
6119
6120 2016-05-18 Martin Jambor <mjambor@suse.cz>
6121
6122 PR ipa/69708
6123 * cgraph.h (cgraph_indirect_call_info): New field
6124 guaranteed_unmodified.
6125 * ipa-cp.c (ipa_get_indirect_edge_target_1): Also pass parameter value
6126 to ipa_find_agg_cst_for_param, check guaranteed_unmodified when
6127 appropriate.
6128 * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Also
6129 pass the parameter value to ipa_find_agg_cst_for_param.
6130 * ipa-prop.c (ipa_load_from_parm_agg): New parameter
6131 guaranteed_unmodified, store AA results there instead of bailing out
6132 if present.
6133 (ipa_note_param_call): Also initialize guaranteed_unmodified flag.
6134 (ipa_analyze_indirect_call_uses): Also set guaranteed_unmodified flag.
6135 (find_constructor_constant_at_offset): New function.
6136 (ipa_find_agg_cst_from_init): Likewise.
6137 (ipa_find_agg_cst_for_param): Also seearch for aggregate values in
6138 static initializers of contants, report back through a new paameter
6139 from_global_constant if that was the case.
6140 (try_make_edge_direct_simple_call): Also pass parameter value to
6141 ipa_find_agg_cst_for_param, check guaranteed_unmodified when
6142 appropriate.
6143 (ipa_write_indirect_edge_info): Stream new flag guaranteed_unmodified.
6144 (ipa_read_indirect_edge_info): Likewise.
6145 * ipa-prop.h (ipa_find_agg_cst_for_param): Update declaration.
6146 (ipa_load_from_parm_agg): Likewise.
6147
6148 2016-05-18 Jiong Wang <jiong.wang@arm.com>
6149
6150 PR rtl-optimization/71150
6151 * lra-constraint (process_addr_reg): Guard "in_class_p" with REG_P
6152 check.
6153
6154 2016-05-18 Michael Meissner <meissner@linux.vnet.ibm.com>
6155
6156 PR target/70915
6157 * config/rs6000/constraints.md (wE constraint): New constraint
6158 for a vector constant that can be loaded with XXSPLTIB.
6159 (wM constraint): New constraint for a vector constant of a 1's.
6160 (wS constraint): New constraint for a vector constant that can be
6161 loaded with XXSPLTIB and a vector sign extend instruction.
6162 * config/rs6000/predicates.md (xxspltib_constant_split): New
6163 predicates for wE/wS constraints.
6164 (xxspltib_constant_nosplit): Likewise.
6165 (easy_vector_constant): Add support for constants that can be
6166 loaded via XXSPLTIB.
6167 (all_ones_constant): New predicate for vector constant with all
6168 1's set.
6169 (splat_input_operand): Add support for ISA 3.0 word splat operations.
6170 * config/rs6000/rs6000.c (xxspltib_constant_p): New function to
6171 return if a constant can be loaded with the ISA 3.0 XXSPLTIB
6172 instruction and possibly with a sign extension.
6173 (output_vec_const_move): Add support for XXSPLTIB. If we are
6174 loading up 0/-1 into Altivec registers, prefer using VSPLTISW
6175 instead of XXLXOR/XXLORC.
6176 (rs6000_expand_vector_init): Add support for ISA 3.0 word splat
6177 operations.
6178 (rs6000_legitimize_reload_address): Likewise.
6179 (rs6000_output_move_128bit): Use output_vec_const_move to emit
6180 constants.
6181 * config/rs6000/vsx.md (VSX_M): Add TImode (if -mvsx-timode) and
6182 combine VSX_M and VSX_M2 into one iterator.
6183 (VSX_M2): Likewise.
6184 (VSINT_84): New iterators for loading constants with XXSPLTIB.
6185 (VSINT_842): Likewise.
6186 (UNSPEC_VSX_SIGN_EXTEND): New UNSPEC.
6187 (xxspltib_v16qi): New insns to load up constants with the ISA 3.0
6188 XXSPLTIB instruction.
6189 (xxspltib_<mode>_nosplit): Likewise.
6190 (xxspltib_<mode>_split): New insn to load up constants with
6191 XXSPLTIB and a sign extend instruction.
6192 (vsx_mov<mode>): Replace single move that handled all vector types
6193 with separate 32-bit and 64-bit moves. Combine the movti_<bit>
6194 moves (when -mvsx-timode is in effect) into the main vector
6195 moves. Eliminate separate moves for <VSr> <VSa>, where the
6196 preferred register class (<VSr>) is listed first, and the
6197 secondary register class (<VSa>) is listed second with a '?' to
6198 discourage use. Prefer loading 0/-1 in any VSX register for ISA
6199 3.0, and Altivec registers for ISA 2.06/2.07 (PR target/70915) so
6200 that if the register was involved in a slow operation, the
6201 clear/set operation does not wait for the slow operation to
6202 finish. Adjust the length attributes for 32-bit mode. Use
6203 rs6000_output_move_128bit and drop the use of the string
6204 instructions for 32-bit movti when -mvsx-timode is in effect. Use
6205 spacing so that the alternatives and attributes don't generate
6206 long lines, and put things in columns, so that it is easier to
6207 match up the operands and attributes with the insn alternatives.
6208 (vsx_mov<mode>_64bit): Likewise.
6209 (vsx_mov<mode>_32bit): Likewise.
6210 (vsx_movti_64bit): Fold movti into normal vector moves.
6211 (vsx_movti_32bit): Likewise.
6212 (vsx_splat_<mode>, V4SI/V4SF modes): Add support for ISA 3.0 word
6213 splat instructions.
6214 (vsx_splat_v4si_internal): Likewise.
6215 (vsx_splat_v4sf_internal): Likewise.
6216 (vector fusion peepholes): Use VSX_M instead of VSX_M2.
6217 (vsx_sign_extend_qi_<mode>): New ISA 3.0 instructions to sign
6218 extend vector elements.
6219 (vsx_sign_extend_hi_<mode>): Likewise.
6220 (vsx_sign_extend_si_v2di): Likewise.
6221 * config/rs6000/rs6000-protos.h (xxspltib_constant_p): Add
6222 declaration.
6223 * doc/md.texi (PowerPC constraints): Document the wE, wM, and wS
6224 constraints. Add trailing period to wL documentation.
6225
6226 2016-05-18 Richard Sandiford <richard.sandiford@arm.com>
6227
6228 PR middle-end/71020
6229 * tree-dfa.h (replace_abnormal_ssa_names): Declare.
6230 * tree-dfa.c (replace_abnormal_ssa_names): New function.
6231 * tree-call-cdce.c: Include tree-dfa.h.
6232 (can_guard_call_p): New function, extracted from...
6233 (can_use_internal_fn): ...here.
6234 (shrink_wrap_one_built_in_call_with_conds): Remove failure path
6235 and return void.
6236 (shrink_wrap_one_built_in_call): Likewise.
6237 (use_internal_fn): Likewise.
6238 (shrink_wrap_conditional_dead_built_in_calls): Update accordingly
6239 and return void. Call replace_abnormal_ssa_names.
6240 (pass_call_cdce::execute): Check can_guard_call_p during the
6241 initial walk. Assume shrink_wrap_conditional_dead_built_in_calls
6242 will always change something.
6243
6244 2016-05-18 Martin Jambor <mjambor@suse.cz>
6245
6246 PR ipa/70646
6247 * ipa-prop.c (determine_locally_known_aggregate_parts): Bail out early
6248 if parameter PARAM_IPA_MAX_AGG_ITEMS is zero.
6249
6250 2016-05-18 Martin Jambor <mjambor@suse.cz>
6251
6252 PR ipa/70646
6253 * ipa-inline.h (condition): New field size.
6254 * ipa-inline-analysis.c (add_condition): New parameter SIZE, use it
6255 for comaprison and store it into the new condition.
6256 (evaluate_conditions_for_known_args): Use condition size to check
6257 access sizes for all but CHANGED conditions.
6258 (unmodified_parm_1): New parameter size_p, store access size into it.
6259 (unmodified_parm): Likewise.
6260 (unmodified_parm_or_parm_agg_item): Likewise.
6261 (eliminated_by_inlining_prob): Pass NULL to unmodified_parm as size_p.
6262 (set_cond_stmt_execution_predicate): Extract access sizes and store
6263 them to conditions.
6264 (set_switch_stmt_execution_predicate): Likewise.
6265 (will_be_nonconstant_expr_predicate): Likewise.
6266 (will_be_nonconstant_predicate): Likewise.
6267 (inline_read_section): Stream condition size.
6268 (inline_write_summary): Likewise.
6269
6270 2016-05-18 Richard Biener <rguenther@suse.de>
6271
6272 * tree-ssa-loop-im.c (determine_max_movement): Properly add
6273 condition cost to PHI cost instead of total_cost.
6274
6275 2016-05-18 Martin Liska <mliska@suse.cz>
6276
6277 PR fortran/70856
6278 * ipa-icf.c (sem_variable::merge): Set DECL_PT_UID for
6279 merged variables.
6280
6281 2016-05-18 Richard Biener <rguenther@suse.de>
6282
6283 * lto-streamer.h (LTO_major_version): Bump to 6.
6284
6285 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org>
6286
6287 * function.c (make_split_prologue_seq, make_prologue_seq,
6288 make_epilogue_seq): New functions, factored out from...
6289 (thread_prologue_and_epilogue_insns): Here.
6290
6291 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org>
6292
6293 * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
6294 cleanup_cfg with CLEANUP_EXPENSIVE after shrink-wrapping instead
6295 of before. Add a comment.
6296
6297 2016-05-18 Bin Cheng <bin.cheng@arm.com>
6298
6299 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check invariant
6300 expression pointer, not pointer to the pointer.
6301
6302 2016-05-18 Jakub Jelinek <jakub@redhat.com>
6303
6304 * config/i386/sse.md (pbroadcast_evex_isa): New mode attr.
6305 (avx2_pbroadcast<mode>): Add another alternative with v instead
6306 of x constraints in it, using <pbroadcast_evex_isa> isa.
6307 (avx2_pbroadcast<mode>_1): Similarly, add two such alternatives.
6308
6309 * config/i386/sse.md (<ssse3_avx2>_palignr<mode>): Use
6310 constraint x instead of v in second alternative, add avx512bw
6311 alternative.
6312
6313 * config/i386/sse.md (<ssse3_avx2>_pshufb<mode>3<mask_name>): Use
6314 constraint x instead of v in second alternative, add avx512bw
6315 alternative.
6316
6317 * config/i386/sse.md (*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>): Use
6318 constraint x instead of v in second alternative, add avx512bw
6319 alternative.
6320
6321 * config/i386/sse.md (avx2_pmaddubsw256, ssse3_pmaddubsw128): Add
6322 avx512bw alternative.
6323
6324 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
6325
6326 * config/i386/sse.md (define_insn "*andnot<mode>3"): Extend static
6327 array to 128 chars.
6328 (define_insn "*andnottf3"): Ditto.
6329 (define_insn "*<code><mode>3"/any_logic): Ditto.
6330 (define_insn "*<code>tf3"/any_logic): Ditto.
6331 (define_insn "sse2_storehpd"): Use Yv constraint for scalar
6332 operand to block AVX-512VL insn variant emit when it is not enabled.
6333
6334 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
6335
6336 * config/i386/sse.md (define_insn "*vec_concatv2sf_sse4_1"): Use 'Yv'
6337 constraint fot SF mode.
6338
6339 2016-05-18 Petr Murzin <petr.murzin@intel.com>
6340 Kirill Yukhin <kirill.yukhin@intel.com>
6341
6342 * config/i386/sse.md (define_insn "srcp14<mode>"): Use proper operand
6343 modifiers.
6344 (define_insn "rsqrt14<mode>"): Ditto.
6345 (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
6346 (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
6347 (define_insn "avx512f_<code>v8div16qi2_mask_store"): Ditto.
6348 (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
6349 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"):
6350 Ditto.
6351 (define_insn "*avx512f_gatherdi<mode>"): Ditto.
6352 (define_insn "*avx512f_scatterdi<mode>"): Ditto.
6353 * config/i386/i386.c (ix86_print_operand): Expand check for size
6354 override codes for Intel syntax.
6355
6356 2016-05-18 Richard Biener <rguenther@suse.de>
6357
6358 PR tree-optimization/71168
6359 * tree-loop-distribution.c (distribute_loop): Move *destroy_p
6360 initialization earlier.
6361
6362 2016-05-18 James Greenhalgh <james.greenhalgh@arm.com>
6363
6364 * config/aarch64/aarch64-simd.md
6365 (aarch64_reduc_plus_internal<mode>): Rename to...
6366 (reduc_plus_scal): ...This, and remove previous implementation.
6367
6368 2016-05-18 Richard Biener <rguenther@suse.de>
6369
6370 * passes.def: Put late dse and cd_dce in canonical order.
6371
6372 2016-05-17 Jan Hubicka <hubicka@ucw.cz>
6373
6374 * ipa-inline-transform.c (preserve_function_body_p): Look for
6375 first non-thunk clone.
6376 (save_function_body): Save into first non-thunk.
6377 * lto-cgraph.c (lto_output_edge): When streaming thunk do not look
6378 up call stmt id.
6379 (lto_output_node): Inline thunks don't need body in every
6380 partition.
6381 * lto-streamer-in.c: Do not fixup thunk clones.
6382 * cgraphclones.c (cgraph_node::create_edge_including_clone): Skip
6383 thunks.
6384 * tree-inline.c (copy_bb): Be prepared for target node to be new after
6385 folding suceeds.
6386
6387 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org>
6388
6389 PR middle-end/63586
6390 * tree-ssa-reassoc.c (transform_add_to_multiply): New.
6391 (reassociate_bb): Call transform_add_to_multiply.
6392
6393 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org>
6394
6395 * config/aarch64/aarch64.c (all_extensions): Removed unused
6396 static variable.
6397
6398 2016-05-17 Nathan Sidwell <nathan@acm.org>
6399
6400 * config/nvptx/nvptx.c (nvptx_function_arg_boundary): New.
6401 (TARGET_FUNCTION_ARG_BOUNDARY): Override.
6402
6403 2016-05-17 Mikhail Maltsev <maltsevm@gmail.com>
6404
6405 PR tree-optimization/54579
6406 PR middle-end/55299
6407 * match.pd (~(~X >> Y), ~(~X >>r Y), ~(~X <<r Y)): New patterns.
6408
6409 2016-05-17 Marek Polacek <polacek@redhat.com>
6410
6411 PR ipa/71146
6412 * tree-inline.c (expand_call_inline): Call
6413 maybe_remove_unused_call_args.
6414
6415 2016-05-17 Jim Wilson <jim.wilson@linaro.org>
6416
6417 * doc/cpp.texi (__GNUC__): Major version changes are no longer rare.
6418 * doc/invoke.texi (-mnan=2008): Change signalling to signaling.
6419 * doc/md.texi (fmin@var{m}3): Likewise.
6420
6421 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
6422
6423 * match.pd (X & C): New transformation.
6424
6425 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
6426
6427 * match.pd (~X & Y): New transformation.
6428
6429 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
6430
6431 * tree-vrp.c (simplify_truth_ops_using_ranges): Set range
6432 information for new SSA_NAME.
6433 (simplify_conversion_using_ranges): Get range through get_range_info
6434 instead of get_value_range.
6435
6436 2016-05-17 Jiong Wang <jiong.wang@arm.com>
6437
6438 * config/aarch64/arm_neon.h (vmvn_s8): Reimplement using C operator.
6439 Remove inline assembly.
6440 (vmvn_s16): Likewise.
6441 (vmvn_s32): Likewise.
6442 (vmvn_u8): Likewise.
6443 (vmvn_u16): Likewise.
6444 (vmvn_u32): Likewise.
6445 (vmvnq_s8): Likewise.
6446 (vmvnq_s16): Likewise.
6447 (vmvnq_s32): Likewise.
6448 (vmvnq_u8): Likewise.
6449 (vmvnq_u16): Likewise.
6450 (vmvnq_u32): Likewise.
6451 (vmvn_p8): Likewise.
6452 (vmvnq_p16): Likewise.
6453
6454 2016-05-17 Jiong Wang <jiong.wang@arm.com>
6455
6456 * config/aarch64/aarch64-simd.md (vmul_n_f32): Remove inline assembly.
6457 Use builtin.
6458 (vmul_n_s16): Likewise.
6459 (vmul_n_s32): Likewise.
6460 (vmul_n_u16): Likewise.
6461 (vmul_n_u32): Likewise.
6462 (vmulq_n_f32): Likewise.
6463 (vmulq_n_f64): Likewise.
6464 (vmulq_n_s16): Likewise.
6465 (vmulq_n_s32): Likewise.
6466 (vmulq_n_u16): Likewise.
6467 (vmulq_n_u32): Likewise.
6468
6469 2016-05-17 Jiong Wang <jiong.wang@arm.com>
6470
6471 * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_to_128df): Extend
6472 to all supported modes. Rename to "*aarch64_mul3_elt_from_dup".
6473
6474 2016-05-17 Jiong Wang <jiong.wang@arm.com>
6475
6476 * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_to_128df): Rename
6477 to *aarch64_fma4_elt_from_dup<mode>.
6478 (*aarch64_fnma4_elt_to_128df): Rename to
6479 *aarch64_fnma4_elt_from_dup<mode>.
6480 * config/aarch64/arm_neon.h (vfma_n_f64): New.
6481 (vfms_n_f32): Likewise.
6482 (vfms_n_f64): Likewise.
6483 (vfmsq_n_f32): Likewise.
6484 (vfmsq_n_f64): Likewise.
6485
6486 2016-05-17 Gerald Pfeifer <gerald@pfeifer.com>
6487
6488 * wide-int.h: Change fixed_wide_int_storage from class to struct.
6489
6490 2016-05-17 Richard Biener <rguenther@suse.de>
6491
6492 PR tree-optimization/71132
6493 * tree-loop-distribution.c (create_rdg_cd_edges): Pass in loop.
6494 Only add control dependences for blocks in the loop.
6495 (build_rdg): Adjust.
6496 (generate_code_for_partition): Return whether loop should
6497 be destroyed and delay that.
6498 (distribute_loop): Likewise.
6499 (pass_loop_distribution::execute): Record loops to be destroyed
6500 and perform delayed destroying of loops.
6501
6502 2016-05-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6503
6504 PR target/70809
6505 * config/aarch64/aarch64-simd.md (aarch64_vmls<mode>): Delete.
6506
6507 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
6508
6509 * config/aarch64/aarch64-elf.h (ASM_OUTPUT_DEF): Delete.
6510
6511 2016-05-17 Ilya Enkovich <ilya.enkovich@intel.com>
6512
6513 PR target/71114
6514 * config/i386/i386.c (dimode_scalar_chain::convert_op): Fix
6515 insertion point for instructions generated by validize_mem.
6516
6517 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
6518
6519 * config/aarch64/aarch64.c (SHIFT_COUNT_TRUNCATED): Wrap definition
6520 in brackets.
6521
6522 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
6523
6524 * config/aarch64/aarch64.c
6525 (aarch64_output_simd_mov_immediate): Make "buf_size" a variable
6526 rather than a macro.
6527
6528 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
6529
6530 * doc/invoke.texi (AArch64 Options): Various updates.
6531
6532 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
6533
6534 * ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig
6535 into instrumentation thunks.
6536 * cif-code.def (CIF_CHKP): New.
6537
6538 2016-05-16 Uros Bizjak <ubizjak@gmail.com>
6539
6540 * config/i386/xopintrin.h: Correct "unsinged" typo in the comments.
6541
6542 2016-05-16 Martin Jambor <mjambor@suse.cz>
6543
6544 * hsa-gen.c (fillup_for_decl): Increase alignment to natural one.
6545 (get_symbol_for_decl): Sorry if a global symbol in under-aligned.
6546
6547 2016-05-16 Marek Polacek <polacek@redhat.com>
6548
6549 * gimple.c (maybe_remove_unused_call_args): Fix typos in the
6550 commentary.
6551
6552 2016-05-16 Martin Jambor <mjambor@suse.cz>
6553
6554 PR hsa/70857
6555 * omp-low.c (grid_expand_target_grid_body): Copy RESULT_DECL of
6556 the outlined kernel function.
6557
6558 2016-05-16 Robert Suchanek <robert.suchanek@imgtec.com>
6559
6560 * config/mips/mips.h (ISA_HAS_LSA): Enable for -mmsa.
6561 (ISA_HAS_DLSA): Ditto.
6562
6563 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com>
6564
6565 * config/mips/m5100.md (m51_int_load): Update the latency to 2.
6566
6567 2016-05-16 Nathan Sidwell <nathan@acm.org>
6568
6569 * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): Revert.
6570 (nvptx_name_replacement): Restore. Add comment.
6571 (write_fn_proto, write_fn_proto_from_insn,
6572 nvptx_output_call_insn): Restore
6573 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Delete.
6574
6575 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
6576
6577 * config/aarch64/aarch64.md
6578 (add<mode>3_compareC_cconly_imm): Remove use of %w.
6579 (add<mode>3_compareC_imm): Likewise.
6580 (<optab>si3_uxtw): Split into register and immediate variants.
6581 (andsi3_compare0_uxtw): Likewise.
6582 (and<mode>3_compare0): Likewise.
6583 (and<mode>3nr_compare0): Likewise.
6584 (stack_protect_test_<mode>): Don't use %x for memory operands.
6585
6586 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com>
6587
6588 * config/mips/mips-cpus.def (p5600): Add multi-line brackets.
6589
6590 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
6591
6592 * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
6593 Split integer shifts into shift_reg and bfm.
6594 (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
6595 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
6596 (ror<mode>3_insn): Likewise.
6597 (<optab>si3_insn_uxtw): Likewise.
6598 (<optab><mode>3_insn): Change to rotate_imm.
6599 (extr<mode>5_insn_alt): Likewise.
6600 (extrsi5_insn_uxtw): Likewise.
6601 (extrsi5_insn_uxtw_alt): Likewise.
6602
6603 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
6604
6605 * doc/tm.texi: Regenerate.
6606 * doc/tm.texi.in (TARGET_INVALID_PARAMETER_TYPE): Remove.
6607 (TARGET_INVALID_RETURN_TYPE): Remove.
6608 * system.h: Poison TARGET_INVALID_PARAMETER_TYPE and
6609 TARGET_INVALID_RETURN_TYPE.
6610 * target.def (invalid_parameter_type): Remove.
6611 (invalid_return_type): Remove.
6612
6613 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
6614
6615 * ipa-inline-analysis.c (compute_inline_parameters): Be more reailistic
6616 on estimating thunk bodies; do not set inline_failed to CIF_THUNK for
6617 calls from thunk.
6618 * ipa-inline-transform.c (inline_call): When inlining into thunk produce
6619 gimple body.
6620 (preserve_function_body_p): No need to preserve function body
6621 * cif-codes.def (CIF_THUNK): Remove.
6622 * cgraphclones.c (duplicate_thunk_for_node): Thunks calls are inlinable.
6623
6624 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
6625
6626 * tree-inline.c (expand_call_inline): recurse after inlining thunk.
6627
6628 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
6629
6630 * tree.c (free_lang_data_in_decl): Also set target/optimization flags
6631 for thunks.
6632
6633 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
6634
6635 * ipa-inline.c (report_inline_failed_reason): Look into thunks, too
6636 (inline_small_functions): Do not look for function symbol when
6637 resetting caches.
6638
6639 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
6640
6641 * lto-cgraph.c (compute_ltrans_boundary, output_symtab): Fix handling
6642 of inline thunks
6643
6644 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
6645 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6646 Jiong Wang <jiong.wang@arm.com>
6647
6648 * config/arm/arm-c.c (arm_cpu_builtins): Use def_or_undef_macro
6649 for __ARM_FP16_FORMAT_IEEE and __ARM_FP16_FORMAT_ALTERNATIVE.
6650 Define __ARM_FP16_ARGS when appropriate.
6651 * config/arm/arm.c (arm_invalid_parameter_type): Remove
6652 declaration.
6653 (arm_invalid_return_type): Likewise.
6654 (TARGET_INVALID_PARAMETER_TYPE): Remove.
6655 (TARGET_INVALID_RETURN_TYPE): Remove.
6656 (aapcs_vfp_sub_candidate): Allow HFmode.
6657 (aapcs_vfp_allocate): Add comment. Support HFmode.
6658 (aapcs_vfp_allocate_return_reg): Likewise.
6659 (struct aapcs_cp_arg_layout): Slightly reword comments for
6660 is_return_candidate and allocate_return_reg.
6661 (output_mov_vfp): Update assert.
6662 (arm_hard_regno_mode_ok): Remove comment, update HF-mode
6663 condition.
6664 (arm_invalid_parameter_type): Remove.
6665 (amr_invalid_return_type): Remove.
6666 * config/arm/arm.h (TARGET_NEON_FP16): Fix definition.
6667 * config/arm/arm.md (*arm32_movhf): Disable for TARGET_VFP.
6668 * config/arm/vfp.md (*movhf_vfp): Enable for TARGET_VFP.
6669
6670 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
6671
6672 * config/aarch64/aarch64.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
6673 * config/aarch64/arch64-protos.h
6674 (aarch64_legitimize_reload_address): Remove.
6675 * config/aarch64/aarch64.c (aarch64_legitimize_reload_address):
6676 Remove.
6677
6678 2016-05-16 Eric Botcazou <ebotcazou@adacore.com>
6679
6680 * configure.ac: Add ACX_NONCANONICAL_HOST.
6681 * configure: Regenerate.
6682 * Makefile.in: Set host_noncanonical.
6683
6684 2016-05-14 Uros Bizjak <ubizjak@gmail.com>
6685
6686 PR target/71097
6687 * config/i386/i386.md (*movtf_internal): Before register allocation,
6688 do not allow FP constants for CM_MEDIUM memory model, allow only
6689 standard FP constants for CM_LARGE and CM_LARGE_PIC models.
6690 (*movxf_internal): Ditto.
6691 (*movdf_internal): Ditto.
6692 (*movsf_internal): Ditto.
6693
6694 2016-05-13 Segher Boessenkool <segher@kernel.crashing.org>
6695
6696 PR rtl-optimization/67483
6697 * combine.c (make_compound_operation): Don't call extract_left_shift
6698 with negative shift amounts.
6699
6700 2016-05-13 Jakub Jelinek <jakub@redhat.com>
6701
6702 PR bootstrap/71071
6703 * fold-const.c (fold_checksum_tree): Allow modification
6704 of TYPE_ALIAS_SET during folding.
6705
6706 * config/i386/i386.c (ix86_compute_frame_layout, ix86_expand_prologue,
6707 ix86_expand_split_stack_prologue): Use HOST_WIDE_INT_C macro.
6708 (ix86_split_to_parts): Likewise. Fix up formatting.
6709
6710 2016-05-13 H.J. Lu <hongjiu.lu@intel.com>
6711
6712 * tree-ssa-loop-ivopts.c (create_new_ivs): Cast to
6713 unsigned HOST_WIDE_INT with HOST_WIDE_INT_PRINT_UNSIGNED in
6714 printf format.
6715
6716 2016-05-13 Nathan Sidwell <nathan@acm.org>
6717
6718 * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): New.
6719 (nvptx_name_replacement): Delete.
6720 (write_fn_proto, write_fn_proto_from_insn,
6721 nvptx_output_call_insn): Remove nvptx_name_replacement call.
6722 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Override.
6723 * langhooks.c (add_builtin_funcction_common): Call
6724 targetm.mangle_decl_assembler_name.
6725
6726 * config/nvptx/nvptx.c (write_fn_proto): Handle
6727 BUILT_IN_ATOMIC_COMPARE_EXCHANGE_n oddity.
6728
6729 2016-05-13 Martin Liska <mliska@suse.cz>
6730
6731 * tree-ssa-loop-ivopts.c (create_new_ivs): Use HOST_WIDE_INT_PRINT_DEC
6732 and PRIu64 in printf format.
6733
6734 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6735
6736 * tree-ssa-loop-ivanon.c (try_unroll_loop_completely): Typo fix in
6737 comment.
6738
6739 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6740
6741 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
6742 Change --param max-completely-peeled-times to
6743 --param max-completely-peel-times in dump file printing.
6744
6745 2016-05-13 Richard Biener <rguenther@suse.de>
6746
6747 PR tree-optimization/42587
6748 * tree-ssa-math-opts.c (perform_symbolic_merge): Handle BIT_FIELD_REF.
6749 (find_bswap_or_nop_1): Likewise.
6750 (bswap_replace): Likewise.
6751
6752 2016-05-13 Martin Liska <mliska@suse.cz>
6753
6754 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
6755 Initialize a variable with default value.
6756
6757 2016-05-13 Martin Liska <mliska@suse.cz>
6758
6759 * doc/invoke.texi: Enhance explanation of error recovery
6760 of sanitizers.
6761
6762 2016-05-13 Martin Liska <mliska@suse.cz>
6763
6764 * tree-ssa-loop-ivopts.c (avg_loop_niter): Fix coding style.
6765 (struct cost_pair): Change inv_expr_id (int) to inv_expr
6766 (iv_inv_expr_ent *).
6767 (struct iv_inv_expr_ent): Comment struct fields.
6768 (sort_iv_inv_expr_ent): New function.
6769 (struct ivopts_data): Rename inv_expr_id to max_inv_expr_id.
6770 (struct iv_ca): Replace used_inv_expr and num_used_inv_expr with
6771 a hash_map between iv_inv_expr_ent and number of usages.
6772 (niter_for_exit): Fix coding style.
6773 (tree_ssa_iv_optimize_init): Use renamed variable.
6774 (determine_base_object): Fix coding style.
6775 (alloc_iv): Likewise.
6776 (find_interesting_uses_outside): Likewise.
6777 (add_candidate_1): Likewise.
6778 (add_standard_iv_candidates): Likewise.
6779 (set_group_iv_cost): Replace inv_expr_id with inv_expr.
6780 (prepare_decl_rtl): Fix coding style.
6781 (get_address_cost): Likewise.
6782 (get_shiftadd_cost): Likewise.
6783 (force_expr_to_var_cost): Likewise.
6784 (compare_aff_trees): Likewise.
6785 (get_expr_id): Restructure the function.
6786 (get_loop_invariant_expr_id): Renamed to
6787 get_loop_invariant_expr.
6788 (get_computation_cost_at): Replace usage of inv_expr_id with
6789 inv_expr.
6790 (get_computation_cost): Likewise.
6791 (determine_group_iv_cost_generic): Likewise.
6792 (determine_group_iv_cost_address): Likewise.
6793 (iv_period): Fix coding style.
6794 (iv_elimination_compare_lt): Likewise.
6795 (may_eliminate_iv): Likewise.
6796 (determine_group_iv_cost_cond): Replace usage of inv_expr_id with
6797 inv_expr.
6798 (determine_group_iv_costs): Dump invariant expressions.
6799 (iv_ca_recount_cost): Use the newly added hash_map.
6800 (iv_ca_set_remove_invariants): Fix coding style.
6801 (iv_ca_set_add_invariants): Fix coding style.
6802 (iv_ca_set_no_cp): Utilize the newly added hash_map for used
6803 invariants.
6804 (iv_ca_set_cp): Likewise.
6805 (iv_ca_new): Initialize the newly added hash_map and remove
6806 initialization of fields.
6807 (iv_ca_free): Delete the hash_map.
6808 (iv_ca_dump): Dump invariant expressions.
6809 (iv_ca_extend): Fix coding style.
6810 (try_add_cand_for): Likewise.
6811 (create_new_ivs): Dump information about # of avg iterations and
6812 # of used invariant expressions.
6813 (rewrite_use_compare): Fix coding style.
6814 (free_loop_data): Set default value for max_inv_expr_id.
6815
6816 2016-05-13 Ilya Enkovich <ilya.enkovich@intel.com>
6817
6818 * cse.c (rest_of_handle_cse): Use cleanup_cfg
6819 returned value cse_cfg_altered computation.
6820 (rest_of_handle_cse2): Likewise.
6821 (rest_of_handle_cse_after_global_opts): Likewise.
6822
6823 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6824
6825 PR target/53440
6826 * config/arm/arm.c (arm32_output_mi_thunk): New.
6827 (arm_output_mi_thunk): Rename to arm_thumb1_mi_thunk. Rework
6828 to split Thumb1 vs TARGET_32BIT functionality.
6829 (arm_thumb1_mi_thunk): New.
6830
6831 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6832
6833 * config/aarch64/aarch64.c (TARGET_OMIT_STRUCT_RETURN_REG): Set
6834 to true.
6835
6836 2016-05-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6837
6838 PR target/71080
6839 * config/i386/i386.c (ix86_in_large_data_p): Guard against NULL exp.
6840
6841 2016-05-13 Eric Botcazou <ebotcazou@adacore.com>
6842
6843 * builtins.c (expand_builtin_memcmp): Do not emit the call here.
6844 (expand_builtin_trap): Emit a regular call.
6845 (set_builtin_user_assembler_name): Remove obsolete cases.
6846 * dse.c (scan_insn): Adjust.
6847 * except.c: Include calls.h.
6848 (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is defined,
6849 emit a regular call to setjmp.
6850 * expr.c (emit_block_move_hints): Call emit_block_copy_via_libcall.
6851 (block_move_libcall_safe_for_call_parm): Use memcpy builtin.
6852 (emit_block_move_via_libcall): Delete.
6853 (block_move_fn): Delete.
6854 (init_block_move_fn): Likewise.
6855 (emit_block_move_libcall_fn): Likewise.
6856 (emit_block_op_via_libcall): New function.
6857 (set_storage_via_libcall): Tidy up and use memset builtin.
6858 (block_clear_fn): Delete.
6859 (init_block_clear_fn): Likewise.
6860 (clear_storage_libcall_fn): Likewise.
6861 (expand_assignment): Call emit_block_move_via_libcall.
6862 Do not include gt-expr.h.
6863 * expr.h (emit_block_op_via_libcall): Declare.
6864 (emit_block_copy_via_libcall): New inline function.
6865 (emit_block_move_via_libcall): Likewise.
6866 (emit_block_comp_via_libcall): Likewise.
6867 (block_clear_fn): Delete.
6868 (init_block_move_fn): Likewise.
6869 (init_block_clear_fn): Likewise.
6870 (emit_block_move_via_libcall): Likewise.
6871 (set_storage_via_libcall): Add default parameter value.
6872 * libfuncs.h (enum libfunc_index): Remove obsolete values.
6873 (abort_libfunc): Delete.
6874 (memcpy_libfunc): Likewise.
6875 (memmove_libfunc): Likewise.
6876 (memcmp_libfunc): Likewise.
6877 (memset_libfunc): Likewise.
6878 (setbits_libfunc): Likewise.
6879 (setjmp_libfunc): Likewise.
6880 (longjmp_libfunc): Likewise.
6881 (profile_function_entry_libfunc): Likewise.
6882 (profile_function_exit_libfunc): Likewise.
6883 (gcov_flush_libfunc): Likewise.
6884 * optabs-libfuncs.c (build_libfunc_function): Set DECL_ARTIFICIAL
6885 and DECL_VISIBILITY on the declaration.
6886 (init_optabs): Do not initialize obsolete libfuncs.
6887 * optabs.c (prepare_cmp_insn): Call emit_block_comp_via_libcall.
6888 * tree-core.h (ECF_RET1): Define.
6889 (ECF_TM_PURE): Adjust.
6890 (ECF_TM_BUILTIN): Likewise.
6891 * tree.c (set_call_expr_flags): Deal with ECF_RET1.
6892 (build_common_builtin_nodes): Initialize abort builtin.
6893 Add ECF_RET1 on memcpy, memmove and memset builtins.
6894 Pass final flags for alloca and alloca_with_align builtins.
6895 * config/alpha/alpha.c (alpha_init_libfuncs): Do not initialize
6896 obsolete builtins.
6897 * config/ia64/ia64.c (ia64_vms_init_libfuncs): Likewise.
6898 * config/i386/i386.c (ix86_expand_set_or_movmem): Adjust call to
6899 set_storage_via_libcall and call emit_block_copy_via_libcall.
6900
6901 2016-05-12 Uros Bizjak <ubizjak@gmail.com>
6902
6903 * config/i386/i386.md (*call_got_x32): Change operand 0 to
6904 DImode before it is passed to ix86_output_call_operand.
6905 (*call_value_got_x32): Ditto for operand 1.
6906
6907 2016-05-12 Jiong Wang <jiong.wang@arm.com>
6908
6909 PR rtl-optimization/70904
6910 * lra-constraint.c (process_addr_reg): Relax the restriction on subreg
6911 reload for wide mode.
6912
6913 2016-05-12 Marek Polacek <polacek@redhat.com>
6914
6915 PR c/70756
6916 * langhooks-def.h (lhd_incomplete_type_error): Adjust declaration.
6917 * langhooks.c (lhd_incomplete_type_error): Add location parameter.
6918 * langhooks.h (incomplete_type_error): Likewise.
6919 * tree.c (size_in_bytes_loc): Renamed from size_in_bytes. Add location
6920 parameter, pass it down to incomplete_type_error.
6921 * tree.h (size_in_bytes): New inline overload.
6922 (size_in_bytes_loc): Renamed from size_in_bytes.
6923
6924 2016-05-12 Richard Biener <rguenther@suse.de>
6925
6926 PR tree-optimization/71059
6927 * tree-ssa-pre.c (phi_translate_1): Fully fold translated
6928 nary before looking up or entering the expression into the VN
6929 hashes.
6930 * tree-ssa-sccvn.c (vn_nary_build_or_lookup): Fix comment typo.
6931 Make sure to re-use NARYs without result as inserted by
6932 phi-translation.
6933
6934 2016-05-12 Richard Biener <rguenther@suse.de>
6935
6936 PR tree-optimization/71062
6937 * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
6938 field.
6939 * tree-ssa-structalias.c (set_uids_in_ptset): Set
6940 vars_contains_restrict if the var is a restrict tag.
6941 * tree-ssa-alias.c (ptrs_compare_unequal): If vars_contains_restrict
6942 do not disambiguate pointers against it.
6943 (dump_points_to_solution): Re-structure and adjust for new
6944 vars_contains_restrict flag.
6945 * gimple-pretty-print.c (pp_points_to_solution): Likewise.
6946
6947 2016-05-12 Martin Liska <mliska@suse.cz>
6948
6949 * doc/invoke.texi: Explain connection between
6950 -fsanitize-recover=address and ASAN_OPTIONS="halt_on_error=1".
6951
6952 2016-05-12 Ilya Enkovich <ilya.enkovich@intel.com>
6953
6954 PR tree-optimization/71006
6955 * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
6956 consider COND_EXPR as a mask producer.
6957
6958 2016-05-12 Marek Polacek <polacek@redhat.com>
6959
6960 PR driver/71063
6961 * opts.c (common_handle_option): Detect missing argument for --help^.
6962
6963 2016-05-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6964
6965 PR target/70830
6966 * config/arm/arm.c (arm_output_multireg_pop): Avoid POP instruction
6967 when popping the PC and within an interrupt handler routine.
6968 Add missing tab to output of "ldmfd".
6969 (output_return_instruction): Output LDMFD with SP update rather
6970 than POP when returning from interrupt handler.
6971
6972 2016-05-12 Jakub Jelinek <jakub@redhat.com>
6973
6974 * config/i386/i386.md (isa): Add x64_avx512dq, enable if
6975 TARGET_64BIT && TARGET_AVX512DQ.
6976 * config/i386/sse.md (*vec_extract<mode>): Add avx512bw alternatives.
6977 (*vec_extract<PEXTR_MODE12:mode>_zext): Add avx512bw alternative.
6978 (*vec_extract<ssevecmodelower>_0, *vec_extractv4si_0_zext,
6979 *vec_extractv2di_0_sse): Use v constraint instead of x constraint.
6980 (*vec_extractv4si): Add avx512dq and avx512bw alternatives.
6981 (*vec_extractv4si_zext): Add avx512dq alternative.
6982 (*vec_extractv2di_1): Add x64_avx512dq and avx512bw alternatives,
6983 use v instead of x constraint in other alternatives where possible.
6984
6985 * config/i386/sse.md (sse2_loadld): Use v instead of x
6986 constraint in alternatives 0,1,4.
6987
6988 * config/i386/sse.md (pinsr_evex_isa): New mode attr.
6989 (<sse2p4_1>_pinsr<ssemodesuffix>): Add 2 alternatives with
6990 v constraints instead of x and <pinsr_evex_isa> isa attribute.
6991
6992 PR target/71019
6993 * config/i386/sse.md (<sse2_avx2>_packssdw<mask_name>,
6994 <sse4_1_avx2>_packusdw<mask_name>): Make sure EVEX encoded insn
6995 is not emitted unless TARGET_AVX512BW.
6996 (<sse2_avx2>_packuswb<mask_name>, <sse2_avx2>_packsswb<mask_name>):
6997 Likewise. For TARGET_AVX512BW, use "=v" constraint instead of "=x"
6998 for the result operand.
6999
7000 * config/i386/sse.md (*vec_setv4sf_sse4_1, sse4_1_insertps): Use v
7001 constraint instead of x in avx alternatives. Use maybe_evex instead
7002 of vex prefix.
7003
7004 * config/i386/constraints.md (Yv): New constraint.
7005 * config/i386/i386.h (VALID_AVX512VL_128_REG_MODE): Allow
7006 TFmode and V1TImode in xmm16+ registers for TARGET_AVX512VL.
7007 * config/i386/i386.md (avx512fvecmode): New mode attr.
7008 (*pushtf): Use v constraint instead of x.
7009 (*movtf_internal): Likewise. For TARGET_AVX512VL and
7010 xmm16+ registers, use vmovdqu64 or vmovdqa64 instructions.
7011 (*absneg<mode>2): Use Yv constraint instead of x constraint.
7012 (*absnegtf2_sse): Likewise.
7013 (copysign<mode>3_const, copysign<mode>3_var): Likewise.
7014 * config/i386/sse.md (*andnot<mode>3): Add avx512vl and
7015 avx512f alternatives.
7016 (*andnottf3, *<code><mode>3, *<code>tf3): Likewise.
7017
7018 2016-05-12 Richard Biener <rguenther@suse.de>
7019
7020 PR tree-optimization/71060
7021 * tree-data-ref.c (initialize_data_dependence_relation): Do not
7022 require exact match of DR_BASE_OBJECT but only matching address and
7023 type.
7024
7025 2016-05-12 Richard Biener <rguenther@suse.de>
7026
7027 PR tree-optimization/70986
7028 * cfganal.c: Include cfgloop.h.
7029 (dfs_find_deadend): Prefer to take edges exiting loops.
7030
7031 2016-05-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7032
7033 * gcc.target/powerpc/pr70963.c: Require at least power8 at both
7034 compile and run time.
7035
7036 2016-05-11 Mikhail Maltsev <maltsevm@gmail.com>
7037
7038 PR c/43651
7039 * doc/invoke.texi (Wduplicate-decl-specifier): Document new option.
7040
7041 2016-05-11 Uros Bizjak <ubizjak@gmail.com>
7042
7043 * config/i386/i386.c (legitimize_pic_address): Use
7044 copy_to_suggested_reg instead of gen_movsi.
7045
7046 2016-05-11 Michael Meissner <meissner@linux.vnet.ibm.com>
7047
7048 * config/rs6000/predicates.md (quad_memory_operand): Move most of
7049 the code into quad_address_p and call it to share code with
7050 vsx_quad_dform_memory_operand.
7051 (vsx_quad_dform_memory_operand): New predicate for ISA 3.0 vector
7052 d-form support.
7053 * config/rs6000/rs6000.opt (-mlra): Switch to being an option mask
7054 bit instead of being a separate word. Split -mpower9-dform into
7055 two switches, -mpower9-dform-scalar and -mpower9-dform-vector.
7056 * config/rs6000/rs6000.c (RELOAD_REG_QUAD_OFFSET): New addr_mask
7057 for the register class supporting 128-bit quad word memory offsets.
7058 (mode_supports_vsx_dform_quad): Helper function to return if the
7059 register class uses quad word memory offsets.
7060 (rs6000_debug_addr_mask): Add support for quad word memory offsets.
7061 (rs6000_debug_reg_global): Always print if we are using LRA or not.
7062 (rs6000_setup_reg_addr_masks): If ISA 3.0 vector d-form
7063 instructions are enabled, set up the appropriate addr_masks for
7064 128-bit types.
7065 (rs6000_init_hard_regno_mode_ok): wb constraint is now based on
7066 -mpower9-dform-scalar, instead of -mpower9-dform.
7067 (rs6000_option_override_internal): Split -mpower9-dform into two
7068 switches, -mpower9-dform-scalar and -mpower9-dform-vector. The
7069 -mpower9-dform switch sets or clears both. If we are not using
7070 the LRA register allocator, do not enable -mpower9-dform-vector by
7071 default. If we are using LRA, enable -mpower9-dform-vector and
7072 -mvsx-timode if it is appropriate. Issue a warning if either
7073 -mpower9-dform-vector or -mvsx-timode are explicitly used without
7074 enabling LRA.
7075 (quad_address_offset_p): New helper function to return if the
7076 offset is legal for quad word memory instructions.
7077 (quad_address_p): New function to determin if GPR or vector
7078 register quad word memory addresses are legal.
7079 (mem_operand_gpr): Validate quad word address offsets.
7080 (reg_offset_addressing_ok_p): Add support for ISA 3.0 vector
7081 d-form (register + offset) instructions.
7082 (offsettable_ok_by_alignment): Likewise.
7083 (rs6000_legitimate_offset_address_p): Likewise.
7084 (legitimate_lo_sum_address_p): Likewise.
7085 (rs6000_legitimize_address): Likewise.
7086 (rs6000_legitimize_reload_address): Add more debug statements for
7087 -mdebug=addr.
7088 (rs6000_legitimate_address_p): Add support for ISA 3.0 vector
7089 d-form instructions.
7090 (rs6000_secondary_reload_memory): Add support for ISA 3.0 vector
7091 d-form instructions. Distinguish different cases in debug
7092 output. (rs6000_secondary_reload_inner): Add support for ISA 3.0 vector
7093 d-form instructions.
7094 (rs6000_preferred_reload_class): Likewise.
7095 (rs6000_output_move_128bit): Add support for ISA 3.0 d-form
7096 instructions. If ISA 3.0 is available, generate lxvx/stxvx instead
7097 of the ISA 2.06 indexed memory instructions.
7098 (rs6000_emit_prologue): If we have ISA 3.0 d-form instructions,
7099 use them to save/restore the saved vector registers instead of
7100 using Altivec instructions.
7101 (rs6000_emit_epilogue): Likewise.
7102 (rs6000_lra_p): Use TARGET_LRA instead of the old option word.
7103 (rs6000_opt_masks): Split -mpower9-dform into
7104 -mpower9-dform-scalar and -mpower9-dform-vector.
7105 (rs6000_print_options_internal): Print -mno-<switch> if <switch>
7106 was not selected.
7107 * config/rs6000/vsx.md (p9_vecload_<mode>): Delete hack to emit
7108 ISA 3.0 vector indexed memory instructions, and fold the code into
7109 the normal mov<mode> patterns.
7110 (p9_vecstore_<mode>): Likewise.
7111 (vsx_mov<mode>): Add support for ISA 3.0 vector d-form
7112 instructions.
7113 (vsx_movti_64bit): Likewise.
7114 (vsx_movti_32bit): Likewise.
7115 * config/rs6000/constraints.md (wO constraint): New constraint for
7116 ISA 3.0 vector d-form support.
7117 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Use
7118 -mpower9-dform-scalar instead of -mpower9-dform. Add note not to
7119 include -mpower9-dform-vector until we switch over to LRA.
7120 (POWERPC_MASKS): Add -mlra. Split -mpower9-dform into two.
7121 switches, -mpower9-dform-scalar and -mpower9-dform-vector.
7122 * config/rs6000/rs6000-protos.h (quad_address_p): Add declaration.
7123 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
7124 for -mpower9-dform and -mlra.
7125 * doc/md.texi (wO constraint): Document wO constraint.
7126
7127 2016-05-11 Alexander Monakov <amonakov@ispras.ru>
7128
7129 * genattr.c (main): Change 'rtx' to 'rtx_insn *' in prototypes of
7130 'insn_latency', 'maximal_insn_latency', 'min_insn_conflict_delay'.
7131 * genautomata.c (output_internal_insn_code_evaluation): Simplify.
7132 Move handling of non-insn arguments inline into the sole user:
7133 (output_trans_func): ...here.
7134 (output_min_insn_conflict_delay_func): Change 'rtx' to 'rtx_insn *'
7135 in emitted function prototype.
7136 (output_internal_insn_latency_func): Ditto. Simplify.
7137 (output_internal_maximal_insn_latency_func): Ditto. Delete
7138 always-unused argument.
7139 (output_insn_latency_func): Ditto.
7140 (output_maximal_insn_latency_func): Ditto.
7141
7142 2016-05-11 Richard Biener <rguenther@suse.de>
7143
7144 PR tree-optimization/71055
7145 * tree-ssa-sccvn.c (vn_reference_lookup_3): When native-interpreting
7146 sth with precision not equal to access size verify we don't chop
7147 off bits.
7148
7149 2016-05-11 Richard Biener <rguenther@suse.de>
7150
7151 PR debug/71057
7152 * dwarf2out.c (retry_incomplete_types): Set early_dwarf.
7153 (dwarf2out_finish): Move retry_incomplete_types call ...
7154 (dwarf2out_early_finish): ... here.
7155
7156 2016-05-11 Richard Biener <rguenther@suse.de>
7157
7158 PR middle-end/71002
7159 * alias.c (reference_alias_ptr_type): Preserve alias-set zero
7160 if the langhook insists on it.
7161 * fold-const.c (make_bit_field_ref): Add arg for the original
7162 reference and preserve its alias-set.
7163 (decode_field_reference): Take exp by reference and adjust it
7164 to the original memory reference.
7165 (optimize_bit_field_compare): Adjust callers.
7166 (fold_truth_andor_1): Likewise.
7167 * gimplify.c (gimplify_expr): Adjust in-SSA form test.
7168
7169 2016-05-11 Ilya Enkovich <ilya.enkovich@intel.com>
7170
7171 PR middle-end/70807
7172 * cfgrtl.h (delete_insn_and_edges): Now return bool.
7173 * cfgrtl.c (delete_insn_and_edges): Likewise.
7174 * config/i386/i386.c (convert_scalars_to_vector): Remove
7175 redundant code.
7176 * cse.c (cse_insn): Compute cse_cfg_altered.
7177 (delete_trivially_dead_insns): Likewise.
7178 (cse_cc_succs): Likewise.
7179 (rest_of_handle_cse): Free dominance info if required.
7180 (rest_of_handle_cse2): Likewise.
7181 (rest_of_handle_cse_after_global_opts): Likewise.
7182
7183 2016-05-11 Alan Modra <amodra@gmail.com>
7184
7185 * config/rs6000/rs6000.c (is_complex_IBM_long_double,
7186 abi_v4_pass_in_fpr): New functions.
7187 (rs6000_function_arg_boundary): Exclude complex IBM long double
7188 from 64-bit alignment when ABI_V4.
7189 (rs6000_function_arg, rs6000_function_arg_advance_1,
7190 rs6000_gimplify_va_arg): Use abi_v4_pass_in_fpr.
7191
7192 2016-05-10 Segher Boessenkool <segher@kernel.crashing.org>
7193
7194 PR rtl-optimization/71028
7195 * cfgcleanup.c (try_optimize_cfg): Do not flip a conditional
7196 jump with just a return in the fallthrough block if the branch
7197 block contains just a return as well.
7198
7199 2016-05-10 Marc Glisse <marc.glisse@inria.fr>
7200
7201 * fold-const.c (fold_binary_loc) [(X ^ Y) & Y]: Remove and merge with...
7202 * match.pd ((X & Y) ^ Y): ... this.
7203 ((X & Y) & Y, (X | Y) | Y, (X ^ Y) ^ Y, (X & Y) & (X & Z), (X | Y)
7204 | (X | Z), (X ^ Y) ^ (X ^ Z)): New transformations.
7205
7206 2016-05-10 David Malcolm <dmalcolm@redhat.com>
7207
7208 * read-md.c (require_char_ws): New function.
7209 (read_string): Simplify using require_char_ws.
7210 (handle_constants): Likewise.
7211 (handle_enum): Likewise.
7212 (handle_file): Likewise.
7213 * read-md.h (require_char_ws): New declaration.
7214 * read-rtl.c (read_conditions): Simplify using require_char_ws.
7215 (read_mapping): Likewise.
7216 (read_rtx_code): Likewise.
7217 (read_nested_rtx): Likewise.
7218
7219 2016-05-10 James Norris <jnorris@codesourcery.com>
7220
7221 * config/rs6000/sysv4.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o
7222 if offloading is enabled and -fopenacc or -fopenmp is specified.
7223 (CRTOFFLOADEND): Likewise.
7224 (STARTFILE_LINUX_SPEC): Add CRTOFFLOADBEGIN.
7225 (ENDFILE_LINUX_SPEC): Add CRTOFFLOADEND.
7226
7227 2016-05-10 Uros Bizjak <ubizjak@gmail.com>
7228
7229 * config/i386/i386.c (legitimize_pic_address): Merge 64-bit and 32-bit
7230 gotoff_operand code paths. Use copy_to_suggested_regs and
7231 expand_simple_binop where appropriate. Cleanup.
7232
7233 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
7234
7235 PR target/70799
7236 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Allow
7237 integer constants.
7238 (dimode_scalar_chain::vector_const_cost): New.
7239 (dimode_scalar_chain::compute_convert_gain): Handle constants.
7240 (dimode_scalar_chain::convert_op): Likewise.
7241 (dimode_scalar_chain::convert_insn): Likewise.
7242
7243 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com>
7244
7245 * dwarf2out.c (resolve_args_picking_1): Consider DW_OP_neg as an
7246 unary operation, not a binary one.
7247
7248 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
7249
7250 PR middle-end/70877
7251 * tree-chkp.c (chkp_add_bounds_to_call_stmt): Handle
7252 calls with type casted fndecl.
7253
7254 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
7255
7256 PR tree-optimization/70786
7257 * tree-chkp.c (chkp_find_bounds_1): Support WITH_SIZE_EXPR.
7258 * calls.c (initialize_argument_information): Bind bounds
7259 with corresponding args passed by reference.
7260
7261 2016-05-10 Jakub Jelinek <jakub@redhat.com>
7262
7263 PR target/70927
7264 * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>),
7265 *<code><mode>3<mask_name>): For !TARGET_AVX512DQ and EVEX encoding,
7266 use vp*[dq] instead of v*p[sd] instructions and adjust mode attribute
7267 accordingly.
7268
7269 2016-05-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7270
7271 PR target/70963
7272 * config/rs6000/vsx.md (vsx_xvcvdpsxds_scale): Generate correct
7273 code for a zero scale factor.
7274 (vsx_xvcvdpuxds_scale): Likewise.
7275
7276 2016-05-10 David Malcolm <dmalcolm@redhat.com>
7277
7278 * diagnostic-show-locus.c (layout::layout): Call show_ruler
7279 if show_ruler_p was set on the context.
7280 (layout::show_ruler): New method.
7281 * diagnostic.h (struct diagnostic_context): Add field
7282 "show_ruler_p".
7283
7284 2016-05-10 Richard Biener <rguenther@suse.de>
7285
7286 PR tree-optimization/71039
7287 * tree-ssa-phiprop.c: Include tree-ssa-loop.h.
7288 (chk_uses): New function.
7289 (propagate_with_phi): Verify we can safely replicate the lhs of an
7290 aggregate assignment on all incoming edges.
7291
7292 2016-05-10 Oleg Endo <olegendo@gcc.gnu.org>
7293
7294 * config/rx/rx-protos.h (is_interrupt_func, is_fast_interrupt_func):
7295 Forward declare.
7296 (rx_atomic_sequence): New class.
7297 * config/rx/rx.c (rx_print_operand): Use symbolic names for PSW bits.
7298 (is_interrupt_func, is_fast_interrupt_func): Make non-static and
7299 non-inline.
7300 (rx_atomic_sequence::rx_atomic_sequence,
7301 rx_atomic_sequence::~rx_atomic_sequence): New functions.
7302 * config/rx/rx.md (CTRLREG_PSW, CTRLREG_USP, CTRLREG_FPSW, CTRLREG_CPEN,
7303 CTRLREG_BPSW, CTRLREG_BPC, CTRLREG_ISP, CTRLREG_FINTV,
7304 CTRLREG_INTB): New constants.
7305 (FETCHOP): New code iterator.
7306 (fethcop_name, fetchop_name2): New iterator code attributes.
7307 (QIHI): New mode iterator.
7308 (atomic_exchange<mode>, atomic_exchangesi, xchg_mem<mode>,
7309 atomic_fetch_<fetchop_name>si, atomic_fetch_nandsi,
7310 atomic_<fetchop_name>_fetchsi, atomic_nand_fetchsi): New patterns.
7311
7312 2016-05-10 Martin Liska <mliska@suse.cz>
7313
7314 * tree-inline.c (remap_dependence_clique): Do not remap
7315 debugging statements.
7316
7317 2016-05-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7318
7319 * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly")
7320 ("*fixuns_truncdfdi2_z13")
7321 ("*fixuns_trunc<FP:mode><GPR:mode>2_z196")
7322 ("*fix_truncdfdi2_bfp_z13", "*floatunsdidf2_z13")
7323 ("*extendsfdf2_z13"): Replace TARGET_Z13 with TARGET_VX.
7324
7325 2016-05-10 Richard Biener <rguenther@suse.de>
7326
7327 PR tree-optimization/70497
7328 PR tree-optimization/28367
7329 * tree-ssa-sccvn.c (vn_nary_build_or_lookup): New function
7330 split out from ...
7331 (visit_reference_op_load): ... here.
7332 (vn_reference_lookup_3): Use it to handle subreg-like accesses
7333 with simplified BIT_FIELD_REFs.
7334 * tree-ssa-pre.c (eliminate_insert): Handle inserting BIT_FIELD_REFs.
7335 * tree-complex.c (extract_component): Handle BIT_FIELD_REFs
7336 correctly.
7337
7338 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com>
7339
7340 * dwarf2out.c (add_abstract_origin_attribute): Adjust
7341 documentation comment. For BLOCK nodes, add a
7342 DW_AT_abstract_origin attribute that points to the DIE generated
7343 for the origin BLOCK.
7344 (gen_lexical_block_die): Call add_abstract_origin_attribute for
7345 blocks from inlined functions.
7346
7347 2016-05-10 Alan Modra <amodra@gmail.com>
7348
7349 PR target/70947
7350 * config/rs6000/rs6000.c (rs6000_expand_split_stack_prologue): Stop
7351 regrename modifying insns saving lr before __morestack call.
7352 * config/rs6000/rs6000.md (split_stack_return): Similarly for
7353 insns restoring lr after __morestack call.
7354
7355 2016-05-09 Jakub Jelinek <jakub@redhat.com>
7356
7357 * config/i386/i386.md (set_got, set_got_labelled, lwp_llwpcb,
7358 lwp_lwpval<mode>3, lwp_lwpins<mode>3): Remove constraints from
7359 expanders.
7360 * config/i386/sse.md (vec_interleave_high<mode>,
7361 vec_interleave_low<mode>, <avx512>_vpermi2var<mode>3_maskz,
7362 <avx512>_vpermt2var<mode>3_maskz): Likewise.
7363
7364 2016-05-04 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
7365
7366 * config/rs6000/rs6000.c (rs6000_reassociation_width): Add
7367 function for TARGET_SCHED_REASSOCIATION_WIDTH to enable
7368 parallel reassociation for power8 and forward.
7369
7370 2016-05-09 Uros Bizjak <ubizjak@gmail.com>
7371
7372 * config/i386/i386.md (absneg splitters with general regs): Use
7373 general_reg_operand predicate.
7374 (btsq peephole2): Use x86_64_immediate_operand to check if new
7375 value is suitable for immediate operand. Generate emitted insn
7376 using RTL expressions.
7377 (btcq peephole2): Ditto.
7378 (btrq peephole2): Ditto. Generate correct immediate operand
7379 for AND masking.
7380
7381 2016-05-09 Richard Sandiford <richard.sandiford@arm.com>
7382
7383 * cfgexpand.c (expand_debug_expr): Fix address offset for negative
7384 bitpos.
7385
7386 2016-05-09 Richard Sandiford <richard.sandiford@arm.com>
7387
7388 * tree-affine.c (wide_int_constant_multiple_p): Add missing
7389 pointer dereference.
7390
7391 2016-05-09 Richard Biener <rguenther@suse.de>
7392
7393 PR tree-optimization/70985
7394 * match.pd (BIT_FIELD_REF -> (type)): Disable on GIMPLE when
7395 op0 isn't a gimple register.
7396
7397 2016-05-09 Prachi Godbole <prachi.godbole@imgtec.com>
7398
7399 * config/mips/i6400.md (i6400_fpu_intadd, i6400_fpu_logic)
7400 (i6400_fpu_div, i6400_fpu_cmp, i6400_fpu_float, i6400_fpu_store)
7401 (i6400_fpu_long_pipe, i6400_fpu_logic_l, i6400_fpu_float_l)
7402 (i6400_fpu_mult): New cpu units.
7403 (i6400_msa_add_d, i6400_msa_int_add, i6400_msa_short_logic3)
7404 (i6400_msa_short_logic2, i6400_msa_short_logic, i6400_msa_move)
7405 (i6400_msa_cmp, i6400_msa_short_float2, i6400_msa_div_d)
7406 (i6400_msa_div_w, i6400_msa_div_h, i6400_msa_div_b)
7407 (i6400_msa_copy, i6400_msa_branch, i6400_fpu_msa_store)
7408 (i6400_fpu_msa_load, i6400_fpu_msa_move, i6400_msa_long_logic1)
7409 (i6400_msa_long_logic2, i6400_msa_mult, i6400_msa_long_float2)
7410 (i6400_msa_long_float4, i6400_msa_long_float5)
7411 (i6400_msa_long_float8, i6400_msa_fdiv_df)
7412 (i6400_msa_fdiv_sf): New reservations.
7413 * config/mips/p5600.md (p5600_fpu_intadd, p5600_fpu_cmp)
7414 (p5600_fpu_float, p5600_fpu_logic_a, p5600_fpu_logic_b)
7415 (p5600_fpu_div, p5600_fpu_logic, p5600_fpu_float_a)
7416 (p5600_fpu_float_b, p5600_fpu_float_c, p5600_fpu_float_d)
7417 (p5600_fpu_mult, p5600_fpu_fdiv, p5600_fpu_load): New cpu units.
7418 (msa_short_int_add, msa_short_logic, msa_short_logic_move_v)
7419 (msa_short_cmp, msa_short_float2, msa_short_logic3)
7420 (msa_short_store4, msa_long_load, msa_short_store)
7421 (msa_long_logic, msa_long_float2, msa_long_float4)
7422 (msa_long_float5, msa_long_float8, msa_long_mult)
7423 (msa_long_fdiv, msa_long_div): New reservations.
7424
7425 2016-05-09 Robert Suchanek <robert.suchanek@imgtec.com>
7426 Sameera Deshpande <sameera.deshpande@imgtec.com>
7427 Matthew Fortune <matthew.fortune@imgtec.com>
7428 Graham Stott <graham.stott@imgtec.com>
7429 Chao-ying Fu <chao-ying.fu@imgtec.com>
7430
7431 * config.gcc: Add MSA header file for mips*-*-* target.
7432 * config/mips/constraints.md (YI, YC, YZ, Unv5, Uuv5, Usv5, Uuv6)
7433 (Ubv8i, Urv8): New constraints.
7434 * config/mips/mips-ftypes.def: Add function types for MSA
7435 builtins.
7436 * config/mips/mips-modes.def (V16QI, V8HI, V4SI, V2DI, V4SF)
7437 (V2DF, V32QI, V16HI, V8SI, V4DI, V8SF, V4DF): New modes.
7438 * config/mips/mips-msa.md: New file.
7439 * config/mips/mips-protos.h
7440 (mips_split_128bit_const_insns): New prototype.
7441 (mips_msa_idiv_insns): Likewise.
7442 (mips_split_128bit_move): Likewise.
7443 (mips_split_128bit_move_p): Likewise.
7444 (mips_split_msa_copy_d): Likewise.
7445 (mips_split_msa_insert_d): Likewise.
7446 (mips_split_msa_fill_d): Likewise.
7447 (mips_expand_msa_branch): Likewise.
7448 (mips_const_vector_same_val_p): Likewise.
7449 (mips_const_vector_same_bytes_p): Likewise.
7450 (mips_const_vector_same_int_p): Likewise.
7451 (mips_const_vector_shuffle_set_p): Likewise.
7452 (mips_const_vector_bitimm_set_p): Likewise.
7453 (mips_const_vector_bitimm_clr_p): Likewise.
7454 (mips_msa_vec_parallel_const_half): Likewise.
7455 (mips_msa_output_division): Likewise.
7456 (mips_ldst_scaled_shift): Likewise.
7457 (mips_expand_vec_cond_expr): Likewise.
7458 * config/mips/mips.c (enum mips_builtin_type): Add
7459 MIPS_BUILTIN_MSA_TEST_BRANCH.
7460 (mips_gen_const_int_vector_shuffle): New prototype.
7461 (mips_const_vector_bitimm_set_p): New function.
7462 (mips_const_vector_bitimm_clr_p): Likewise.
7463 (mips_const_vector_same_val_p): Likewise.
7464 (mips_const_vector_same_bytes_p): Likewise.
7465 (mips_const_vector_same_int_p): Likewise.
7466 (mips_const_vector_shuffle_set_p): Likewise.
7467 (mips_symbol_insns): Forbid loading symbols via immediate for
7468 MSA.
7469 (mips_valid_offset_p): Limit offset to 10-bit for MSA loads and
7470 stores.
7471 (mips_valid_lo_sum_p): Forbid loadings symbols via %lo(base) for
7472 MSA.
7473 (mips_lx_address_p): Add support load indexed address for MSA.
7474 (mips_address_insns): Add calculation of instructions needed for
7475 stores and loads for MSA.
7476 (mips_const_insns): Move CONST_DOUBLE below CONST_VECTOR. Handle
7477 CONST_VECTOR for MSA and let it fall through.
7478 (mips_ldst_scaled_shift): New function.
7479 (mips_subword_at_byte): Likewise.
7480 (mips_msa_idiv_insns): Likewise.
7481 (mips_legitimize_move): Validate MSA moves.
7482 (mips_rtx_costs): Add UNGE, UNGT, UNLE, UNLT cases. Add
7483 calculation of costs for MSA division.
7484 (mips_split_move_p): Check if MSA moves need splitting.
7485 (mips_split_move): Split MSA moves if necessary.
7486 (mips_split_128bit_move_p): New function.
7487 (mips_split_128bit_move): Likewise.
7488 (mips_split_msa_copy_d): Likewise.
7489 (mips_split_msa_insert_d): Likewise.
7490 (mips_split_msa_fill_d): Likewise.
7491 (mips_output_move): Handle MSA moves.
7492 (mips_expand_msa_branch): New function.
7493 (mips_print_operand): Add 'E', 'B', 'w', 'v' and 'V' modifiers.
7494 Reinstate 'y' modifier.
7495 (mips_file_start): Add MSA .gnu_attribute.
7496 (mips_hard_regno_mode_ok_p): Allow TImode and 128-bit vectors in
7497 FPRs.
7498 (mips_hard_regno_nregs): Always return 1 for MSA supported mode.
7499 (mips_class_max_nregs): Add register size for MSA supported mode.
7500 (mips_cannot_change_mode_class): Allow conversion between MSA
7501 vector modes and TImode.
7502 (mips_mode_ok_for_mov_fmt_p): Allow MSA to use move.v
7503 instruction.
7504 (mips_secondary_reload_class): Force MSA loads/stores via memory.
7505 (mips_preferred_simd_mode): Add preffered modes for MSA.
7506 (mips_vector_mode_supported_p): Add MSA supported modes.
7507 (mips_autovectorize_vector_sizes): New function.
7508 (mips_msa_output_division): Likewise.
7509 (MSA_BUILTIN, MIPS_BUILTIN_DIRECT_NO_TARGET)
7510 (MSA_NO_TARGET_BUILTIN, MSA_BUILTIN_TEST_BRANCH): New macros.
7511 (CODE_FOR_msa_adds_s_b, CODE_FOR_msa_adds_s_h)
7512 (CODE_FOR_msa_adds_s_w, CODE_FOR_msa_adds_s_d)
7513 (CODE_FOR_msa_adds_u_b, CODE_FOR_msa_adds_u_h)
7514 (CODE_FOR_msa_adds_u_w, CODE_FOR_msa_adds_u_du
7515 (CODE_FOR_msa_addv_b, CODE_FOR_msa_addv_h, CODE_FOR_msa_addv_w)
7516 (CODE_FOR_msa_addv_d, CODE_FOR_msa_and_v, CODE_FOR_msa_bmnz_v)
7517 (CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bmz_v, CODE_FOR_msa_bmzi_b)
7518 (CODE_FOR_msa_bnz_v, CODE_FOR_msa_bz_v, CODE_FOR_msa_bsel_v)
7519 (CODE_FOR_msa_bseli_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w)
7520 (CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b)
7521 (CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w)
7522 (CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clti_u_b)
7523 (CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w)
7524 (CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_s_b)
7525 (CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w)
7526 (CODE_FOR_msa_clei_s_d, CODE_FOR_msa_clei_u_b)
7527 (CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w)
7528 (CODE_FOR_msa_clei_u_d, CODE_FOR_msa_div_s_b)
7529 (CODE_FOR_msa_div_s_h, CODE_FOR_msa_div_s_w)
7530 (CODE_FOR_msa_div_s_d, CODE_FOR_msa_div_u_b)
7531 (CODE_FOR_msa_div_u_h, CODE_FOR_msa_div_u_w)
7532 (CODE_FOR_msa_div_u_d, CODE_FOR_msa_fadd_w, CODE_FOR_msa_fadd_d)
7533 (CODE_FOR_msa_fexdo_w, CODE_FOR_msa_ftrunc_s_w)
7534 (CODE_FOR_msa_ftrunc_s_d, CODE_FOR_msa_ftrunc_u_w)
7535 (CODE_FOR_msa_ftrunc_u_d, CODE_FOR_msa_ffint_s_w)
7536 (CODE_FOR_msa_ffint_s_d, CODE_FOR_msa_ffint_u_w)
7537 (CODE_FOR_msa_ffint_u_d, CODE_FOR_msa_fsub_w)
7538 (CODE_FOR_msa_fsub_d, CODE_FOR_msa_fmsub_d, CODE_FOR_msa_fmadd_w)
7539 (CODE_FOR_msa_fmadd_d, CODE_FOR_msa_fmsub_w, CODE_FOR_msa_fmul_w)
7540 (CODE_FOR_msa_fmul_d, CODE_FOR_msa_fdiv_w, CODE_FOR_msa_fdiv_d)
7541 (CODE_FOR_msa_fmax_w, CODE_FOR_msa_fmax_d, CODE_FOR_msa_fmax_a_w)
7542 (CODE_FOR_msa_fmax_a_d, CODE_FOR_msa_fmin_w, CODE_FOR_msa_fmin_d)
7543 (CODE_FOR_msa_fmin_a_w, CODE_FOR_msa_fmin_a_d)
7544 (CODE_FOR_msa_fsqrt_w, CODE_FOR_msa_fsqrt_d)
7545 (CODE_FOR_msa_max_s_b, CODE_FOR_msa_max_s_h)
7546 (CODE_FOR_msa_max_s_w, CODE_FOR_msa_max_s_d)
7547 (CODE_FOR_msa_max_u_b, CODE_FOR_msa_max_u_h)
7548 (CODE_FOR_msa_max_u_w, CODE_FOR_msa_max_u_d)
7549 (CODE_FOR_msa_min_s_b, CODE_FOR_msa_min_s_h)
7550 (CODE_FOR_msa_min_s_w, CODE_FOR_msa_min_s_d)
7551 (CODE_FOR_msa_min_u_b, CODE_FOR_msa_min_u_h)
7552 (CODE_FOR_msa_min_u_w, CODE_FOR_msa_min_u_d)
7553 (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
7554 (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
7555 (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
7556 (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
7557 (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
7558 (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
7559 (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
7560 (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
7561 (CODE_FOR_msa_mulv_b, CODE_FOR_msa_mulv_h, CODE_FOR_msa_mulv_w)
7562 (CODE_FOR_msa_mulv_d, CODE_FOR_msa_nlzc_b, CODE_FOR_msa_nlzc_h)
7563 (CODE_FOR_msa_nlzc_w, CODE_FOR_msa_nlzc_d, CODE_FOR_msa_nor_v)
7564 (CODE_FOR_msa_or_v, CODE_FOR_msa_ori_b, CODE_FOR_msa_nori_b)
7565 (CODE_FOR_msa_pcnt_b, CODE_FOR_msa_pcnt_h, CODE_FOR_msa_pcnt_w)
7566 (CODE_FOR_msa_pcnt_d, CODE_FOR_msa_xor_v, CODE_FOR_msa_xori_b)
7567 (CODE_FOR_msa_sll_b, CODE_FOR_msa_sll_h, CODE_FOR_msa_sll_w)
7568 (CODE_FOR_msa_sll_d, CODE_FOR_msa_slli_b, CODE_FOR_msa_slli_h)
7569 (CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d, CODE_FOR_msa_sra_b)
7570 (CODE_FOR_msa_sra_h, CODE_FOR_msa_sra_w, CODE_FOR_msa_sra_d)
7571 (CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w)
7572 (CODE_FOR_msa_srai_d, CODE_FOR_msa_srl_b, CODE_FOR_msa_srl_h)
7573 (CODE_FOR_msa_srl_w, CODE_FOR_msa_srl_d, CODE_FOR_msa_srli_b)
7574 (CODE_FOR_msa_srli_h, CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d)
7575 (CODE_FOR_msa_subv_b, CODE_FOR_msa_subv_h, CODE_FOR_msa_subv_w)
7576 (CODE_FOR_msa_subv_d, CODE_FOR_msa_subvi_b, CODE_FOR_msa_subvi_h)
7577 (CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d, CODE_FOR_msa_move_v)
7578 (CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h, CODE_FOR_msa_vshf_w)
7579 (CODE_FOR_msa_vshf_d, CODE_FOR_msa_ilvod_d, CODE_FOR_msa_ilvev_d)
7580 (CODE_FOR_msa_pckod_d, CODE_FOR_msa_pckdev_d, CODE_FOR_msa_ldi_b)
7581 (CODE_FOR_msa_ldi_hi, CODE_FOR_msa_ldi_w)
7582 (CODE_FOR_msa_ldi_d): New code_aliasing macros.
7583 (mips_builtins): Add MSA sll_b, sll_h, sll_w, sll_d, slli_b,
7584 slli_h, slli_w, slli_d, sra_b, sra_h, sra_w, sra_d, srai_b,
7585 srai_h, srai_w, srai_d, srar_b, srar_h, srar_w, srar_d, srari_b,
7586 srari_h, srari_w, srari_d, srl_b, srl_h, srl_w, srl_d, srli_b,
7587 srli_h, srli_w, srli_d, srlr_b, srlr_h, srlr_w, srlr_d, srlri_b,
7588 srlri_h, srlri_w, srlri_d, bclr_b, bclr_h, bclr_w, bclr_d,
7589 bclri_b, bclri_h, bclri_w, bclri_d, bset_b, bset_h, bset_w,
7590 bset_d, bseti_b, bseti_h, bseti_w, bseti_d, bneg_b, bneg_h,
7591 bneg_w, bneg_d, bnegi_b, bnegi_h, bnegi_w, bnegi_d, binsl_b,
7592 binsl_h, binsl_w, binsl_d, binsli_b, binsli_h, binsli_w,
7593 binsli_d, binsr_b, binsr_h, binsr_w, binsr_d, binsri_b, binsri_h,
7594 binsri_w, binsri_d, addv_b, addv_h, addv_w, addv_d, addvi_b,
7595 addvi_h, addvi_w, addvi_d, subv_b, subv_h, subv_w, subv_d,
7596 subvi_b, subvi_h, subvi_w, subvi_d, max_s_b, max_s_h, max_s_w,
7597 max_s_d, maxi_s_b, maxi_s_h, maxi_s_w, maxi_s_d, max_u_b,
7598 max_u_h, max_u_w, max_u_d, maxi_u_b, maxi_u_h, maxi_u_w,
7599 maxi_u_d, min_s_b, min_s_h, min_s_w, min_s_d, mini_s_b, mini_s_h,
7600 mini_s_w, mini_s_d, min_u_b, min_u_h, min_u_w, min_u_d, mini_u_b,
7601 mini_u_h, mini_u_w, mini_u_d, max_a_b, max_a_h, max_a_w, max_a_d,
7602 min_a_b, min_a_h, min_a_w, min_a_d, ceq_b, ceq_h, ceq_w, ceq_d,
7603 ceqi_b, ceqi_h, ceqi_w, ceqi_d, clt_s_b, clt_s_h, clt_s_w,
7604 clt_s_d, clti_s_b, clti_s_h, clti_s_w, clti_s_d, clt_u_b,
7605 clt_u_h, clt_u_w, clt_u_d, clti_u_b, clti_u_h, clti_u_w,
7606 clti_u_d, cle_s_b, cle_s_h, cle_s_w, cle_s_d, clei_s_b, clei_s_h,
7607 clei_s_w, clei_s_d, cle_u_b, cle_u_h, cle_u_w, cle_u_d, clei_u_b,
7608 clei_u_h, clei_u_w, clei_u_d, ld_b, ld_h, ld_w, ld_d, st_b, st_h,
7609 st_w, st_d, sat_s_b, sat_s_h, sat_s_w, sat_s_d, sat_u_b, sat_u_h,
7610 sat_u_w, sat_u_d, add_a_b, add_a_h, add_a_w, add_a_d, adds_a_b,
7611 adds_a_h, adds_a_w, adds_a_d, adds_s_b, adds_s_h, adds_s_w,
7612 adds_s_d, adds_u_b, adds_u_h, adds_u_w, adds_u_d, ave_s_b,
7613 ave_s_h, ave_s_w, ave_s_d, ave_u_b, ave_u_h, ave_u_w, ave_u_d,
7614 aver_s_b, aver_s_h, aver_s_w, aver_s_d, aver_u_b, aver_u_h,
7615 aver_u_w, aver_u_d, subs_s_b, subs_s_h, subs_s_w, subs_s_d,
7616 subs_u_b, subs_u_h, subs_u_w, subs_u_d, subsuu_s_b, subsuu_s_h,
7617 subsuu_s_w, subsuu_s_d, subsus_u_b, subsus_u_h, subsus_u_w,
7618 subsus_u_d, asub_s_b, asub_s_h, asub_s_w, asub_s_d, asub_u_b,
7619 asub_u_h, asub_u_w, asub_u_d, mulv_b, mulv_h, mulv_w, mulv_d,
7620 maddv_b, maddv_h, maddv_w, maddv_d, msubv_b, msubv_h, msubv_w,
7621 msubv_d, div_s_b, div_s_h, div_s_w, div_s_d, div_u_b, div_u_h,
7622 div_u_w, div_u_d, hadd_s_h, hadd_s_w, hadd_s_d, hadd_u_h,
7623 hadd_u_w, hadd_u_d, hsub_s_h, hsub_s_w, hsub_s_d, hsub_u_h,
7624 hsub_u_w, hsub_u_d, mod_s_b, mod_s_h, mod_s_w, mod_s_d, mod_u_b,
7625 mod_u_h, mod_u_w, mod_u_d, dotp_s_h, dotp_s_w, dotp_s_d,
7626 dotp_u_h, dotp_u_w, dotp_u_d, dpadd_s_h, dpadd_s_w, dpadd_s_d,
7627 dpadd_u_h, dpadd_u_w, dpadd_u_d, dpsub_s_h, dpsub_s_w, dpsub_s_d,
7628 dpsub_u_h, dpsub_u_w, dpsub_u_d, sld_b, sld_h, sld_w, sld_d,
7629 sldi_b, sldi_h, sldi_w, sldi_d, splat_b, splat_h, splat_w,
7630 splat_d, splati_b, splati_h, splati_w, splati_d, pckev_b,
7631 pckev_h, pckev_w, pckev_d, pckod_b, pckod_h, pckod_w, pckod_d,
7632 ilvl_b, ilvl_h, ilvl_w, ilvl_d, ilvr_b, ilvr_h, ilvr_w, ilvr_d,
7633 ilvev_b, ilvev_h, ilvev_w, ilvev_d, ilvod_b, ilvod_h, ilvod_w,
7634 ilvod_d, vshf_b, vshf_h, vshf_w, vshf_d, and_v, andi_b, or_v,
7635 ori_b, nor_v, nori_b, xor_v, xori_b, bmnz_v, bmnzi_b, bmz_v,
7636 bmzi_b, bsel_v, bseli_b, shf_b, shf_h, shf_w, bnz_v, bz_v,
7637 fill_b, fill_h, fill_w, fill_d, pcnt_b, pcnt_h, pcnt_w,
7638 pcnt_d, nloc_b, nloc_h, nloc_w, nloc_d, nlzc_b, nlzc_h, nlzc_w,
7639 nlzc_d, copy_s_b, copy_s_h, copy_s_w, copy_s_d, copy_u_b,
7640 copy_u_h, copy_u_w, copy_u_d, insert_b, insert_h, insert_w,
7641 insert_d, insve_b, insve_h, insve_w, insve_d, bnz_b, bnz_h,
7642 bnz_w, bnz_d, bz_b, bz_h, bz_w, bz_d, ldi_b, ldi_h, ldi_w, ldi_d,
7643 fcaf_w, fcaf_d, fcor_w, fcor_d, fcun_w, fcun_d, fcune_w, fcune_d,
7644 fcueq_w, fcueq_d, fceq_w, fceq_d, fcne_w, fcne_d, fclt_w, fclt_d,
7645 fcult_w, fcult_d, fcle_w, fcle_d, fcule_w, fcule_d, fsaf_w,
7646 fsaf_d, fsor_w, fsor_d, fsun_w, fsun_d, fsune_w, fsune_d,
7647 fsueq_w, fsueq_d, fseq_w, fseq_d, fsne_w, fsne_d, fslt_w,
7648 fslt_d, fsult_w, fsult_d, fsle_w, fsle_d, fsule_w, fsule_d,
7649 fadd_w, fadd_d, fsub_w, fsub_d, fmul_w, fmul_d, fdiv_w, fdiv_d,
7650 fmadd_w, fmadd_d, fmsub_w, fmsub_d, fexp2_w, fexp2_d, fexdo_h,
7651 fexdo_w, ftq_h, ftq_w, fmin_w, fmin_d, fmin_a_w, fmin_a_d,
7652 fmax_w, fmax_d, fmax_a_w, fmax_a_d, mul_q_h, mul_q_w, mulr_q_h,
7653 mulr_q_w, madd_q_h, madd_q_w, maddr_q_h, maddr_q_w, msub_q_h,
7654 msub_q_w, msubr_q_h, msubr_q_w, fclass_w, fclass_d, fsqrt_w,
7655 fsqrt_d, frcp_w, frcp_d, frint_w, frint_d, frsqrt_w, frsqrt_d,
7656 flog2_w, flog2_d, fexupl_w, fexupl_d, fexupr_w, fexupr_d, ffql_w,
7657 ffql_d, ffqr_w, ffqr_d, ftint_s_w, ftint_s_d, ftint_u_w,
7658 ftint_u_d, ftrunc_s_w, ftrunc_s_d, ftrunc_u_w, ftrunc_u_d,
7659 ffint_s_w, ffint_s_d, ffint_u_w, ffint_u_d, ctcmsa, cfcmsa,
7660 move_v builtins.
7661 (mips_get_builtin_decl_index): New array.
7662 (MIPS_ATYPE_QI, MIPS_ATYPE_HI, MIPS_ATYPE_V2DI, MIPS_ATYPE_V4SI)
7663 (MIPS_ATYPE_V8HI, MIPS_ATYPE_V16QI, MIPS_ATYPE_V2DF)
7664 (MIPS_ATYPE_V4SF, MIPS_ATYPE_UV2DI, MIPS_ATYPE_UV4SI)
7665 (MIPS_ATYPE_UV8HI, MIPS_ATYPE_UV16QI): New.
7666 (mips_init_builtins): Initialize mips_get_builtin_decl_index
7667 array.
7668 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
7669 hook.
7670 (mips_expand_builtin_insn): Prepare operands for
7671 CODE_FOR_msa_addvi_b, CODE_FOR_msa_addvi_h, CODE_FOR_msa_addvi_w,
7672 CODE_FOR_msa_addvi_d, CODE_FOR_msa_clti_u_b,
7673 CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w,
7674 CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_u_b,
7675 CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w,
7676 CODE_FOR_msa_clei_u_d, CODE_FOR_msa_maxi_u_b,
7677 CODE_FOR_msa_maxi_u_h, CODE_FOR_msa_maxi_u_w,
7678 CODE_FOR_msa_maxi_u_d, CODE_FOR_msa_mini_u_b,
7679 CODE_FOR_msa_mini_u_h, CODE_FOR_msa_mini_u_w,
7680 CODE_FOR_msa_mini_u_d, CODE_FOR_msa_subvi_b,
7681 CODE_FOR_msa_subvi_h, CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d,
7682 CODE_FOR_msa_ceqi_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w,
7683 CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b,
7684 CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w,
7685 CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clei_s_b,
7686 CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w,
7687 CODE_FOR_msa_clei_s_d, CODE_FOR_msa_maxi_s_b,
7688 CODE_FOR_msa_maxi_s_h, CODE_FOR_msa_maxi_s_w,
7689 CODE_FOR_msa_maxi_s_d, CODE_FOR_msa_mini_s_b,
7690 CODE_FOR_msa_mini_s_h, CODE_FOR_msa_mini_s_w,
7691 CODE_FOR_msa_mini_s_d, CODE_FOR_msa_andi_b, CODE_FOR_msa_ori_b,
7692 CODE_FOR_msa_nori_b, CODE_FOR_msa_xori_b, CODE_FOR_msa_bmzi_b,
7693 CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bseli_b, CODE_FOR_msa_fill_b,
7694 CODE_FOR_msa_fill_h, CODE_FOR_msa_fill_w, CODE_FOR_msa_fill_d,
7695 CODE_FOR_msa_ilvl_b, CODE_FOR_msa_ilvl_h, CODE_FOR_msa_ilvl_w,
7696 CODE_FOR_msa_ilvl_d, CODE_FOR_msa_ilvr_b, CODE_FOR_msa_ilvr_h,
7697 CODE_FOR_msa_ilvr_w, CODE_FOR_msa_ilvr_d, CODE_FOR_msa_ilvev_b,
7698 CODE_FOR_msa_ilvev_h, CODE_FOR_msa_ilvev_w, CODE_FOR_msa_ilvod_b,
7699 CODE_FOR_msa_ilvod_h, CODE_FOR_msa_ilvod_w, CODE_FOR_msa_pckev_b,
7700 CODE_FOR_msa_pckev_h, CODE_FOR_msa_pckev_w, CODE_FOR_msa_pckod_b,
7701 CODE_FOR_msa_pckod_h, CODE_FOR_msa_pckod_w, CODE_FOR_msa_slli_b,
7702 CODE_FOR_msa_slli_h, CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d,
7703 CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w,
7704 CODE_FOR_msa_srai_d, CODE_FOR_msa_srli_b, CODE_FOR_msa_srli_h,
7705 CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d, CODE_FOR_msa_insert_b,
7706 CODE_FOR_msa_insert_h, CODE_FOR_msa_insert_w,
7707 CODE_FOR_msa_insert_d, CODE_FOR_msa_insve_b,
7708 CODE_FOR_msa_insve_h, CODE_FOR_msa_insve_w, CODE_FOR_msa_insve_d,
7709 CODE_FOR_msa_shf_b, CODE_FOR_msa_shf_h, CODE_FOR_msa_shf_w,
7710 CODE_FOR_msa_shf_w_f, CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h,
7711 CODE_FOR_msa_vshf_w, CODE_FOR_msa_vshf_d.
7712 (mips_expand_builtin): Add case for MIPS_BULTIN_MSA_TEST_BRANCH.
7713 (mips_set_compression_mode): Disallow MSA with MIPS16 code.
7714 (mips_option_override): -mmsa requires -mfp64 and -mhard-float.
7715 These are set implicitly and an error is reported if overridden.
7716 (mips_expand_builtin_msa_test_branch): New function.
7717 (mips_expand_msa_shuffle): Likewise.
7718 (MAX_VECT_LEN): Increase maximum length of a vector to 16 bytes.
7719 (TARGET_SCHED_REASSOCIATION_WIDTH): Define target hook.
7720 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Likewise.
7721 (mips_expand_vec_unpack): Add support for MSA.
7722 (mips_expand_vector_init): Likewise.
7723 (mips_expand_vi_constant): Use CONST0_RTX (element_mode)
7724 instead of const0_rtx.
7725 (mips_msa_vec_parallel_const_half): New function.
7726 (mips_gen_const_int_vector): Likewise.
7727 (mips_gen_const_int_vector_shuffle): Likewise.
7728 (mips_expand_msa_cmp): Likewise.
7729 (mips_expand_vec_cond_expr): Likewise.
7730 * config/mips/mips.h
7731 (TARGET_CPU_CPP_BUILTINS): Add __mips_msa and __mips_msa_width.
7732 (OPTION_DEFAULT_SPECS): Ignore --with-fp-32 if -mmsa is
7733 specified.
7734 (ASM_SPEC): Pass mmsa and mno-msa to the assembler.
7735 (ISA_HAS_MSA): New macro.
7736 (UNITS_PER_MSA_REG): Likewise.
7737 (BITS_PER_MSA_REG): Likewise.
7738 (BIGGEST_ALIGNMENT): Redefine using ISA_HAS_MSA.
7739 (MSA_REG_FIRST): New macro.
7740 (MSA_REG_LAST): Likewise.
7741 (MSA_REG_NUM): Likewise.
7742 (MSA_REG_P): Likewise.
7743 (MSA_REG_RTX_P): Likewise.
7744 (MSA_SUPPORTED_MODE_P): Likewise.
7745 (HARD_REGNO_CALL_PART_CLOBBERED): Redefine using TARGET_MSA.
7746 (ADDITIONAL_REGISTER_NAMES): Add named registers $w0-$w31.
7747 * config/mips/mips.md: Include mips-msa.md.
7748 (alu_type): Add simd_add.
7749 (mode): Add V2DI, V4SI, V8HI, V16QI, V2DF, V4SF.
7750 (type): Add simd_div, simd_fclass, simd_flog2, simd_fadd,
7751 simd_fcvt, simd_fmul, simd_fmadd, simd_fdiv, simd_bitins,
7752 simd_bitmov, simd_insert, simd_sld, simd_mul, simd_fcmp,
7753 simd_fexp2, simd_int_arith, simd_bit, simd_shift, simd_splat,
7754 simd_fill, simd_permute, simd_shf, simd_sat, simd_pcnt,
7755 simd_copy, simd_branch, simd_cmsa, simd_fminmax, simd_logic,
7756 simd_move, simd_load, simd_store. Choose "multi" for moves
7757 for "qword_mode".
7758 (qword_mode): New attribute.
7759 (insn_count): Add instruction count for quad moves.
7760 Increase the count for MIPS SIMD division.
7761 (UNITMODE): Add UNITMODEs for vector types.
7762 (addsub): New code iterator.
7763 * config/mips/mips.opt (mmsa): New option.
7764 * config/mips/msa.h: New file.
7765 * config/mips/mti-elf.h: Don't infer -mfpxx if -mmsa is
7766 specified.
7767 * config/mips/mti-linux.h: Likewise.
7768 * config/mips/predicates.md
7769 (const_msa_branch_operand): New constraint.
7770 (const_uimm3_operand): Likewise.
7771 (const_uimm4_operand): Likewise.
7772 (const_uimm5_operand): Likewise.
7773 (const_uimm8_operand): Likewise.
7774 (const_imm5_operand): Likewise.
7775 (aq10b_operand): Likewise.
7776 (aq10h_operand): Likewise.
7777 (aq10w_operand): Likewise.
7778 (aq10d_operand): Likewise.
7779 (const_m1_operand): Likewise.
7780 (reg_or_m1_operand): Likewise.
7781 (const_exp_2_operand): Likewise.
7782 (const_exp_4_operand): Likewise.
7783 (const_exp_8_operand): Likewise.
7784 (const_exp_16_operand): Likewise.
7785 (const_vector_same_val_operand): Likewise.
7786 (const_vector_same_simm5_operand): Likewise.
7787 (const_vector_same_uimm5_operand): Likewise.
7788 (const_vector_same_uimm6_operand): Likewise.
7789 (const_vector_same_uimm8_operand): Likewise.
7790 (par_const_vector_shf_set_operand): Likewise.
7791 (reg_or_vector_same_val_operand): Likewise.
7792 (reg_or_vector_same_simm5_operand): Likewise.
7793 (reg_or_vector_same_uimm6_operand): Likewise.
7794 * doc/extend.texi (MIPS SIMD Architecture Functions): New
7795 section.
7796 * doc/invoke.texi (-mmsa): Document new option.
7797
7798 2016-05-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7799
7800 * configure.ac (enable_vtable_verify): Handle --enable-vtable-verify.
7801 * configure: Regenerate.
7802 * config.in: Regenerate.
7803 * gcc.c (VTABLE_VERIFICATION_SPEC) [!ENABLE_VTABLE_VERIFY]: Error
7804 on -fvtable-verify.
7805 * config/sol2.h [!ENABLE_VTABLE_VERIFY] (STARTFILE_VTV_SPEC): Define.
7806 (ENDFILE_VTV_SPEC): Define.
7807
7808 2016-05-09 Kaushik Phatak <kaushik.phatak@kpit.com>
7809
7810 * config/rl78/rl78.c (rl78_expand_prologue): Save the MDUC related
7811 registers in all interrupt handlers if necessary.
7812 (rl78_option_override): Add warning.
7813 (MUST_SAVE_MDUC_REGISTERS): New macro.
7814 (rl78_expand_epilogue): Restore the MDUC registers if necessary.
7815 * config/rl78/rl78.c (check_mduc_usage): New function.
7816 (mduc_regs): New structure to hold MDUC register data.
7817 * config/rl78/rl78.md (is_g13_muldiv_insn): New attribute.
7818 (mulsi3_g13): Add is_g13_muldiv_insn attribute.
7819 (udivmodsi4_g13): Add is_g13_muldiv_insn attribute.
7820 (mulhi3_g13): Add is_g13_muldiv_insn attribute.
7821 * config/rl78/rl78.opt (msave-mduc-in-interrupts): New option.
7822 * doc/invoke.texi (RL78 Options): Add -msave-mduc-in-interrupts.
7823
7824 2016-05-09 Bin Cheng <bin.cheng@arm.com>
7825
7826 * tree-if-conv.c (tree-ssa-loop.h): Include header file.
7827 (tree-ssa-loop-niter.h): Ditto.
7828 (idx_within_array_bound, ref_within_array_bound): New functions.
7829 (ifcvt_memrefs_wont_trap): Check if array ref is within bound.
7830 Factor out check on writable base object to ...
7831 (base_object_writable): ... here.
7832
7833 2016-05-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7834
7835 * config/arm/arm.md (probe_stack): Add modes to set source
7836 and destination.
7837
7838 2016-05-09 Bernd Schmidt <bschmidt@redhat.com>
7839
7840 * regrename.c (base_reg_class_for_rename): New static function.
7841 (scan_rtx_address, scan_rtx): Use it instead of base_reg_class.
7842
7843 2016-05-08 Jan Hubicka <hubicka@ucw.cz>
7844
7845 * cgraph.c (thunk_adjust): Export.
7846 * cgraphclones.c (cgraph_node::create_clone): Clone thunk info.
7847 * cgraphunit.c (thunk_adjust): Export.
7848 (cgraph_node::assemble_thunks_and_aliases): Do not assemble inlined
7849 thunks.
7850 * ipa-inline-analyssi.c (compute_inline_parameters): Thunks are
7851 inlinable.
7852 * tree-inline.c (expand_call_inline): Expand thunks inline.
7853
7854 2016-05-08 Uros Bizjak <ubizjak@gmail.com>
7855
7856 PR target/70998
7857 * config/i386/sse.md (*sse2_vd_cvtsd2ss): New insn pattern.
7858 (*sse2_vd_cvtss2sd): Ditto.
7859 * config/i386/i386.md
7860 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf splitter):
7861 Generate *sse2_vd_cvtsd2ss pattern.
7862 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df splitter):
7863 Generate *sse2_vd_cvtss2sd pattern.
7864
7865 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
7866
7867 * config/sh/sh.h (GET_SH_ARG_CLASS): Convert macro into ...
7868 * config/sh/sh.c (get_sh_arg_class): ... this new function. Update its
7869 users.
7870
7871 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
7872
7873 * config/sh/sh-protos.h (sh_media_register_for_return): Remove.
7874 * config/sh/sh.c: Define and declare variables on first use throughout
7875 the file.
7876 (current_function_interrupt): Change to bool type.
7877 (frame_insn): Rename to emit_frame_insn and update users.
7878 (push_regs): Use bool for 'interrupt_handler' argument.
7879 (save_schedule_s): Remove.
7880 (TARGET_ASM_UNALIGNED_DI_OP, TARGET_ASM_ALIGNED_DI_OP): Remove.
7881 (sh_option_override): Don't nullify targetm.asm_out.aligned_op.di and
7882 targetm.asm_out.unaligned_op.di.
7883 (gen_far_branch): Remove redundant forward declaration.
7884 (sh_media_register_for_return, MAX_SAVED_REGS, save_entry_s, save_entry,
7885 MAX_TEMPS, save_schedule_ssave_schedule): Remove.
7886 (sh_set_return_address, sh_function_ok_for_sibcall,
7887 scavenge_reg): Update comments.
7888 (sh_builtin_saveregs): Use TRAGET_FPU_ANY condition.
7889 (sh2a_get_function_vector_number, sh2a_function_vector_p): Use for loop.
7890 (sh_attr_renesas_p): Remove unnecessary parentheses.
7891 (branch_dest): Simplify.
7892 * config/sh/sh.h (sh_args): Remove byref, byref_regs, stack_regs fields.
7893 Change force_mem, prototype_p, outgoing, renesas_abi fields to bool.
7894 (CUMULATIVE_ARGS): Change macro to typedef.
7895 (current_function_interrupt): Change to bool type.
7896 (sh_arg_class, sh_args, CUMULATIVE_ARGS, current_function_interrupt):
7897 Surround with __cplusplus ifdef.
7898 (sh_compare_op0, sh_compare_op1): Remove.
7899 (EPILOGUE_USES): Use TARGET_FPU_ANY condition.
7900
7901 2016-05-07 Jim Wilson <jim.wilson@linaro.org>
7902
7903 * config/arm/arm.md: (arch): Add neon.
7904 (arch_enabled): Return yes for arch neon when TARGET_NEON.
7905 * config/arm/vfp.md (movdf_vfp): Add w/G as alternative 3. Add
7906 neon_move as type for alt 3. Add arch attr enabling alt 3 for neon.
7907 Emit vmov.i64 for alt 3. Renumber alternatives 3 to 8. Adjust
7908 attributes for alt renumbering. Mark alt 3 as non-predicable.
7909 (thumb2_movdf_vfp): Likewise.
7910
7911 2016-05-07 Uros Bizjak <ubizjak@gmail.com>
7912
7913 * config/i386/i386.md (*addqi_1): Add preferred_for_speed attribute
7914 to disparage alternatives 3 and 4 for TARGET_PARTIAL_REG_STALL targets.
7915 (*andqi_1): Add preferred_for_speed attribute to disparage
7916 alternative 2 for TARGET_PARTIAL_REG_STALL targets.
7917 (*<code>qi_1): Ditto.
7918 (*one_cmplqi2_1): Add preferred_for_speed attribute to disparage
7919 alternative 1 for TARGET_PARTIAL_REG_STALL targets.
7920 (*ashlqi3_1): Ditto.
7921 (*swap<mode>): Merge from *swap<mode>_1 and *swap<mode>_2 patterns.
7922 Add preferred_for_size attribute to disparage alternative 0 and
7923 preferred_for_speed attribute to disparage alternative 1 for
7924 TARGET_PARTIAL_REG_STALL targets.
7925
7926 2016-05-07 Tom de Vries <tom@codesourcery.com>
7927
7928 PR tree-optimization/70956
7929 * graphite-scop-detection.c (build_cross_bb_scalars_def): Handle NULL
7930 def.
7931
7932 2016-05-07 Oleg Endo <olegendo@gcc.gnu.org>
7933
7934 * config/sh/sh-protos.h (sh_cbranch_distance): Declare new function.
7935 * config/sh/sh.c (sh_cbranch_distance): Implement it.
7936 * config/sh/sh.md (branch_zero): Remove define_attr.
7937 (define_delay): Disable delay slot if branch distance is one insn.
7938
7939 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
7940
7941 * config/i386/i386.md (LEAMODE): New mode attribute.
7942 (plus to LEA splitter): Rewrite splitter using LEAMODE mode attribute.
7943 (ashift to LEA splitter): Rewrte splitter using SWI mode iterator
7944 and LEAMODE mode attribute. Use VOIDmode const_0_to_3_operand as
7945 operand 2 predicate.
7946 (*lea<mode>_general_2): Use VOIDmode for const248_operand.
7947 (*lea<mode>_general_3): Ditto.
7948 (*lea<mode>_general_4): Use VOIDmode for const_0_to_3_operand.
7949
7950 2016-05-06 Jakub Jelinek <jakub@redhat.com>
7951
7952 * genmddump.c (main): Convert argv from char ** to const char **.
7953
7954 2016-05-06 David Malcolm <dmalcolm@redhat.com>
7955
7956 * coretypes.h (OVERRIDE): New macro.
7957 (FINAL): New macro.
7958
7959 2016-05-06 Eric Botcazou <ebotcazou@adacore.com>
7960
7961 * tree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case,
7962 allow coalescing if the types are compatible.
7963
7964 2016-05-06 David Malcolm <dmalcolm@redhat.com>
7965
7966 * pass_manager.h (pass_manager::register_pass_name): New method.
7967 (pass_manager::get_pass_by_name): New method.
7968 (pass_manager::create_pass_tab): New method.
7969 (pass_manager::m_name_to_pass_map): New field.
7970 * passes.c (name_to_pass_map): Delete global in favor of field
7971 "m_name_to_pass_map" of pass_manager.
7972 (register_pass_name): Rename from a function to...
7973 (pass_manager::register_pass_name): ...this method, updating
7974 for renaming of global "name_to_pass_map" to field
7975 "m_name_to_pass_map".
7976 (create_pass_tab): Rename from a function to...
7977 (pass_manager::create_pass_tab): ...this method, updating
7978 for renaming of global "name_to_pass_map" to field.
7979 (get_pass_by_name): Rename from a function to...
7980 (pass_manager::get_pass_by_name): ...this method.
7981 (enable_disable_pass): Convert use of get_pass_by_name to
7982 a method call, locating the pass_manager singleton.
7983
7984 2016-05-06 David Malcolm <dmalcolm@redhat.com>
7985
7986 * genattr-common.c (main): Convert argv from char ** to const char **.
7987 * genattr.c (main): Likewise.
7988 * genattrtab.c (main): Likewise.
7989 * genautomata.c (initiate_automaton_gen): Likewise.
7990 (main): Likewise.
7991 * gencodes.c (main): Likewise.
7992 * genconditions.c (main): Likewise.
7993 * genconfig.c (main): Likewise.
7994 * genconstants.c (main): Likewise.
7995 * genemit.c (main): Likewise.
7996 * genenums.c (main): Likewise.
7997 * genextract.c (main): Likewise.
7998 * genflags.c (main): Likewise.
7999 * genmddeps.c (main): Likewise.
8000 * genopinit.c (main): Likewise.
8001 * genoutput.c (main): Likewise.
8002 * genpeep.c (main): Likewise.
8003 * genpreds.c (main): Likewise.
8004 * genrecog.c (main): Likewise.
8005 * gensupport.c (init_rtx_reader_args_cb): Likewise.
8006 (init_rtx_reader_args): Likewise.
8007 * gensupport.h (init_rtx_reader_args_cb): Likewise.
8008 (init_rtx_reader_args): Likewise.
8009 * gentarget-def.c (main): Likewise.
8010 * read-md.c (read_md_files): Likewise.
8011 * read-md.h (read_md_files): Likewise.
8012
8013 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
8014
8015 * config/i386/i386.md (int cmove peephole2s): Use general_reg_operand
8016 instead of register_and_not_any_fp_reg_operand as operand 0 predicate.
8017 * config/i386/predicates.md (register_and_not_any_fp_reg_operand):
8018 Remove unused predicate.
8019 (register_and_not_fp_reg_operand): Ditto.
8020
8021 2016-05-06 Martin Liska <mliska@suse.cz>
8022
8023 * tree-if-conv.c (ifcvt_split_critical_edges): Use auto_vec
8024 instead of vec as the vector is local to the function.
8025
8026 2016-05-06 Jakub Jelinek <jakub@redhat.com>
8027
8028 * config/i386/sse.md (*<code>v8hi3, *<code>v16qi3): Add
8029 avx512bw alternative.
8030
8031 * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>): Move
8032 before the ashr<mode>3 pattern.
8033
8034 * config/i386/sse.md (*avx2_pmaddwd, *sse2_pmaddwd): Use
8035 v instead of x in vex or maybe_vex alternatives, use
8036 maybe_evex instead of vex in prefix.
8037
8038 * config/i386/sse.md (*vec_extractv4sf_0, *sse4_1_extractps,
8039 *vec_extractv4sf_mem, vec_extract_lo_v16hi, vec_extract_hi_v16hi,
8040 vec_extract_lo_v32qi, vec_extract_hi_v32qi): Use v instead of x
8041 in vex or maybe_vex alternatives, use maybe_evex instead of vex
8042 in prefix.
8043
8044 * config/i386/sse.md (*vec_concatv2sf_sse4_1, *vec_concatv4sf): Use
8045 v instead of x in vex or maybe_vex alternatives, use
8046 maybe_evex instead of vex in prefix.
8047
8048 * config/i386/sse.md (sse_shufps_<mode>, sse_storehps, sse_loadhps,
8049 sse_storelps, sse_movss, avx2_vec_dup<mode>, avx2_vec_dupv8sf_1,
8050 sse2_shufpd_<mode>, sse2_storehpd, sse2_storelpd, sse2_loadhpd,
8051 sse2_loadlpd, sse2_movsd): Use v instead of x in vex or maybe_vex
8052 alternatives, use maybe_evex instead of vex in prefix.
8053
8054 * config/i386/sse.md (vec_interleave_lowv4sf,
8055 *vec_interleave_highv2df, *vec_interleave_lowv2df): Use
8056 v instead of x in vex or maybe_vex alternatives, use
8057 maybe_evex instead of vex in prefix.
8058
8059 * config/i386/sse.md (sse_movhlps, sse_movlhps): Use
8060 v instead of x in vex or maybe_vex alternatives, use
8061 maybe_evex instead of vex in prefix.
8062
8063 * config/i386/sse.md (*avx_cvtpd2dq256_2, *avx_cvtps2pd256_2): Use
8064 v constraint instead of x.
8065
8066 2016-05-06 Nathan Sidwell <nathan@codesourcery.com>
8067
8068 * gimple.c (gimple_call_same_target_p): Unique functions are eq.
8069 * tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
8070 equality first.
8071
8072 2016-05-06 Richard Biener <rguenther@suse.de>
8073
8074 PR tree-optimization/70948
8075 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
8076 Properly clobber all fields of va_list for __builtin_va_start.
8077
8078 2016-05-06 Yuri Rumyantsev <ysrumyan@gmail.com>
8079
8080 PR debug/70935
8081 * tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
8082 loop latch destination.
8083
8084 2016-05-06 Martin Liska <mliska@suse.cz>
8085
8086 * tree-ssa-uninit.c: Apply manual changes
8087 to the GNU coding style.
8088 (prune_uninit_phi_opnds): Rename from
8089 prune_uninit_phi_opnds_in_unrealizable_paths.
8090
8091 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
8092
8093 * config/sh/sh.opt (madjust-unroll, minvalid-symbols, msoft-atomic,
8094 mspace): Remove deprecated options.
8095 * doc/invoke.texi (SH options): Remove -mspace.
8096
8097 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
8098
8099 * config/sh/sh.md (ic_invalidate_line_sh4a): Fix insn length.
8100
8101 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
8102
8103 * config/sh/sh.md (*cmpeqsi_t): Remove combine insn pattern and similar
8104 corresponding combine split pattern.
8105
8106 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
8107
8108 PR target/58219
8109 * config/sh/predicates.md (long_displacement_mem_operand): New.
8110 * config/sh/sh.md (movsi_i): Allow for SH2A, disallow for any FPU.
8111 Add movi20, movi20s alternatives. Adjust length attribute for
8112 alternatives.
8113 (movsi_ie): Allow for any FPU. Adjust length attribute for
8114 alternatives.
8115 (movsi_i_lowpart): Add movi20, movi20s alternatives. Adjust length
8116 attribute for alternatives.
8117 (*mov<mode>): Use long_displacement_mem_operand for length attribute.
8118 (*movdi_i, movdf_k, movdf_i4, movsf_i, movsf_ie, movsf_ie_ra): Adjust
8119 length attribute for alternatives.
8120
8121 2016-05-06 Richard Biener <rguenther@suse.de>
8122
8123 PR tree-optimization/70960
8124 * tree-if-conv.c (ifcvt_walk_pattern_tree): Handle non-SSA ops.
8125
8126 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
8127
8128 PR target/52933
8129 * config/sh/sh.md (*cmp_div0s_7, *cmp_div0s_8): Add div0s variants.
8130 * config/sh/sh.c (sh_rtx_costs): Add another div0s case.
8131
8132 2016-05-06 Marek Polacek <polacek@redhat.com>
8133
8134 PR sanitizer/70875
8135 * ubsan.c (get_ubsan_type_info_for_type): Remove assert.
8136
8137 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
8138
8139 PR target/54089
8140 * config/sh/sh.md (*rotcr): Add another variant.
8141
8142 2016-05-06 Richard Biener <rguenther@suse.de>
8143
8144 PR middle-end/70931
8145 * dwarf2out.c (native_encode_initializer): Skip zero-sized fields.
8146
8147 2016-05-06 Richard Biener <rguenther@suse.de>
8148
8149 PR middle-end/70941
8150 * fold-const.c (split_tree): Always convert to the original type
8151 before negating.
8152
8153 2016-05-06 Richard Biener <rguenther@suse.de>
8154
8155 * fwprop.c (fwprop): Remove duplicate cleanup_cfg call.
8156 (fwprop_addr): Likewise.
8157
8158 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
8159
8160 PR target/70873
8161 * config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p):
8162 New prototype.
8163 * config/i386/i386.c (ix86_standard_x87sse_constant_load_p): New.
8164 * config/i386/i386.md (push mem splitter): Use find_constant_src in
8165 the splitter condition.
8166 (FP load splitter): Use ix86_standard_x87sse_constant_load_p in
8167 the splitter condition.
8168 (FP float_extend load splitter): Ditto.
8169
8170 2016-05-05 Uros Bizjak <ubizjak@gmail.com>
8171
8172 * config/i386/i386.md (peehole2 patterns): Change true_regnum
8173 to REGNO in all peephole2 patterns.
8174 (post-reload splitters): Change true_regnum to REGNO in
8175 post-reload splitters.
8176 (zero_extend splitters): Use general_reg_operand and
8177 nonimmediate_gr_operand predicates.
8178
8179 2016-05-05 Jakub Jelinek <jakub@redhat.com>
8180
8181 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use
8182 v constraint instead of x.
8183
8184 2016-05-05 Alan Modra <amodra@gmail.com>
8185
8186 PR target/68662
8187 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
8188 set OPTION_MASK_RELOCATABLE when flag_pic == 2. Set
8189 TARGET_NO_FP_IN_TOC for -mrelocatable.
8190 (MINIMAL_TOC_SECTION_ASM_OP): Remove redundant
8191 TARGET_RELOCATABLE test.
8192 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
8193 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
8194 * config/rs6000/linux64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
8195 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
8196 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
8197 * config/rs6000/freebsd64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
8198 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
8199 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
8200 * config/rs6000/predicates.md (easy_fp_constant): Likewise.
8201 * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
8202 Likewise.
8203 (rs6000_assemble_integer): Update TARGET_RELOCATABLE test.
8204 (rs6000_stack_info): Likewise.
8205 (rs6000_elf_asm_out_constructor): Likewise.
8206 (rs6000_elf_asm_out_destructor): Likewise.
8207 (rs6000_elf_declare_function_name): Likewise.
8208 * config/rs6000/rs6000.md (load_toc_aix_di): Likewise.
8209 * config/rs6000/rs6000.h (MASK_RELOCATABLE, MASK_MINIMAL_TOC):
8210 Don't define.
8211
8212 2016-05-05 Alan Modra <amodra@gmail.com>
8213
8214 * config/rs6000/rs6000.c (rs6000_frame_related): Rewrite.
8215
8216 2016-05-05 Alan Modra <amodra@gmail.com>
8217
8218 * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
8219 out-of-line gpr restore for one or two regs if that would add
8220 a save of lr.
8221
8222 2016-05-04 Uros Bizjak <ubizjak@gmail.com>
8223
8224 PR target/70873
8225 * config/i386/i386.md
8226 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df peephole2):
8227 Change to post-epilogue_completed late splitter. Use sse_reg_operand
8228 as operand 0 predicate.
8229 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf peephole2):
8230 Ditto.
8231 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2):
8232 Ditto. Emit the pattern using RTX.
8233
8234 (TARGET_USE_VECTOR_FP_CONVERTS float_extend sf->df splitter):
8235 Use sse_reg_opreand as operand 0 predicate. Do not use true_regnum in
8236 the post-reload splitter. Use lowpart_subreg instead of gen_rtx_REG.
8237 (TARGET_USE_VECTOR_FP_CONVERTS float_truncate df->sf splitter):
8238 Ditto.
8239 (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use
8240 sse_reg_operand as operand 0 predicate.
8241
8242 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_extend sf->df peephole2):
8243 Use sse_reg_opreand as operand 0 predicate. Use lowpart_subreg
8244 instead of gen_rtx_REG.
8245 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_truncate sf->df peephole2):
8246 Ditto.
8247
8248 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
8249
8250 * function.c (emit_use_return_register_into_block): Delete.
8251 (gen_return_pattern): Delete.
8252 (emit_return_into_block): Delete.
8253 (active_insn_between): Delete.
8254 (convert_jumps_to_returns): Delete.
8255 (emit_return_for_exit): Delete.
8256 (thread_prologue_and_epilogue_insns): Delete all code dealing with
8257 simple_return for shrink-wrapped blocks.
8258 * shrink-wrap.c (try_shrink_wrapping): Insert simple_return at the
8259 end of blocks that need one.
8260 (get_unconverted_simple_return): Delete.
8261 (convert_to_simple_return): Delete.
8262 * shrink-wrap.c (get_unconverted_simple_return): Delete declaration.
8263 (convert_to_simple_return): Ditto.
8264
8265 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
8266
8267 * cfgcleanup.c (bb_is_just_return): New function.
8268 (try_optimize_cfg): Simplify jumps to return, branches to return,
8269 and branches around return.
8270
8271 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
8272
8273 * cfgcleanup.c (try_simplify_condjump): Don't try to simplify a
8274 branch to a return.
8275
8276 2016-05-04 Jakub Jelinek <jakub@redhat.com>
8277
8278 PR c++/70906
8279 PR c++/70933
8280 * tree-core.h (enum operand_equal_flag): Add OEP_HASH_CHECK.
8281 * tree.c (inchash::add_expr): If !IS_EXPR_CODE_CLASS (tclass),
8282 assert flags & OEP_HASH_CHECK, instead of asserting it
8283 never happens. Handle TARGET_EXPR.
8284 * fold-const.c (operand_equal_p): For hash verification,
8285 or in OEP_HASH_CHECK into flags.
8286
8287 2016-05-04 Eric Botcazou <ebotcazou@adacore.com>
8288
8289 * tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
8290 comment.
8291 (compute_samebase_partition_bases): Fix typo.
8292
8293 2016-05-04 Jakub Jelinek <jakub@redhat.com>
8294
8295 * config/i386/sse.md (vec_interleave_highv8sf,
8296 vec_interleave_lowv8sf, vec_interleave_highv4df,
8297 vec_interleave_lowv4df): Remove constraints from expanders.
8298
8299 * config/i386/sse.md (sse2_movq128): Use v constraint instead of x.
8300
8301 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
8302
8303 * tree-inline.c (expand_call_inline): Fix path dealing with
8304 making lhs of call statement undefined.
8305
8306 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
8307
8308 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
8309 Check availability on NODE, too.
8310 * cgraph.h (symtab_node::call_for_symbol_and_aliases): Likewise.
8311 (cgraph_node::call_for_symbol_and_aliases): Likewise.
8312 (varpool_node::call_for_symbol_and_aliase): Likewise.
8313 * ipa-pure-const.c (add_new_function): Analyze all bodies.
8314 (propagate_pure_const): Propagate across interposable functions, too.
8315 (skip_function_for_local_pure_const): Do not skip interposable bodies
8316 with aliases.
8317 (pass_local_pure_const::execute): Update.
8318
8319 2016-05-04 Marek Polacek <polacek@redhat.com>
8320
8321 * doc/invoke.texi: Document -Wdangling-else.
8322
8323 2016-05-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
8324
8325 * config.gcc: Error out when conflicting multilib is detected. Do not
8326 loop over multilibs since no combination is legal.
8327
8328 2016-05-04 Alan Modra <amodra@gmail.com>
8329
8330 * config/rs6000/rs6000.h (PIC_OFFSET_TABLE_REGNUM): Correct.
8331 * config/rs6000/sysv4.h (TARGET_TOC): Simplify.
8332 * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
8333 Align .toc.
8334
8335 2016-05-04 Matthew Fortune <matthew.fortune@imgtec.com>
8336
8337 * config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
8338 Clean up p5600 comments.
8339
8340 2016-05-04 Richard Biener <rguenther@suse.de>
8341
8342 * match.pd: Add BIT_FIELD_REF canonicalizations and vector
8343 constructor simplifications.
8344 * fold-const.c (fold_ternary_loc): Remove duplicate functionality here.
8345
8346 2016-05-04 Oleg Endo <olegendo@gcc.gnu.org>
8347
8348 * config/sh/predicates (post_inc_mem, pre_dec_mem): New predicates.
8349 * config/sh/sh-protos.h (sh_find_set_of_reg): Return null result if
8350 result.set_rtx is null instead of aborting.
8351 * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT):
8352 Always enable.
8353 (USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT): Enable for SH2A.
8354 * config/sh/sh.md (*extend<mode>si2_predec, *mov<mode>_load_predec,
8355 *mov<mode>_store_postinc): New patterns.
8356
8357 2016-05-04 Marc Glisse <marc.glisse@inria.fr>
8358
8359 * match.pd ((A | B) & (A | C)): Generalize to BIT_XOR_EXPR. Mark
8360 as commutative. Check both conversions are NOP.
8361 ((A & B) OP (C & B)): Remove.
8362
8363 2016-05-04 Alan Modra <amodra@gmail.com>
8364
8365 * combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.
8366
8367 2016-05-04 Alan Modra <amodra@gmail.com>
8368
8369 PR target/70866
8370 * config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
8371 when cr2,3,4 are all fixed regs.
8372
8373 2016-05-04 Bernd Schmidt <bschmidt@redhat.com>
8374
8375 PR rtl-optimization/57193
8376 * opts.c (default_options_table): Revert OPT_frename_registers change.
8377 * doc/invoke.texi (-frename-registers, -O2): Likewise.
8378
8379 2016-05-03 Martin Sebor <msebor@redhat.com>
8380
8381 PR c++/66561
8382 * builtins.c (fold_builtin_FILE): New function.
8383 (fold_builtin_FUNCTION, fold_builtin_LINE): New functions.
8384 (fold_builtin_0): Call them.
8385 * gimplify.c (gimplify_call_expr): Remove the handling of
8386 BUILT_IN_FILE, BUILT_IN_FUNCTION, and BUILT_IN_LINE.
8387
8388 PR c++/66561
8389 * doc/extend.texi (Other Builtins): Update __builtin_FILE,
8390 __builtin_FUNCTION, and __builtin_LINE to reflect they yield
8391 constants.
8392
8393 PR c++/66639
8394 * doc/extend.texi (Function Names as Strings): Update __func__,
8395 __FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
8396 constants.
8397
8398 2016-05-03 Jakub Jelinek <jakub@redhat.com>
8399 Richard Biener <rguenther@suse.de>
8400
8401 PR tree-optimization/70916
8402 * tree-if-conv.c: Include cfganal.h.
8403 (pass_if_conversion::execute): Call connect_infinite_loops_to_exit
8404 and remove_fake_exit_edges around the optimization pass.
8405
8406 2016-05-03 Jan Hubicka <hubicka@ucw.cz>
8407
8408 * cgraph.c (symbol_table::create_edge): Set inline_failed.
8409 (cgraph_edge::make_direct): Likewise.
8410 (cgraph_edge::dump_edge_flags): Dump call_stmt_cannot_inline_p.
8411 * cgraphclones.c (duplicate_thunk_for_node): Set inline_failed.
8412 * cif-code.def (CIF_LTO_MISMATCHED_DECLARATIONS): New code
8413 (CIF_THUNK): New code.
8414 * ipa-inline-analysis.c (initialize_inline_failed): Preserve
8415 CIF_FINAL_ERROR codes; do not deal with call_stmt_cannot_inline_p.
8416 (compute_inline_parameters): Set inline_failed for thunks.
8417 (inline_analyze_function): Cleanup.
8418 * ipa-inline.c (can_inline_edge_p): Do not deal with
8419 call_stmt_cannot_inline_p.
8420 (can_early_inline_edge_p): Likewise.
8421 (early_inliner): Initialize inline_failed.
8422 * lto-cgraph.c (lto_output_edge): Sanity check inline_failed.
8423
8424 2016-05-03 Uros Bizjak <ubizjak@gmail.com>
8425
8426 * config/i386/predicates.md (x87nonimm_ssenomem_operand): Rename
8427 from nonimm_ssenomem_operand.
8428 (nonimm_ssenomem_operand): New predicate.
8429 * config/i386/i386.md (extendsfdf2): Use nonimm_ssenomem_operand
8430 as operand 0 predicate.
8431 (*extendsfdf2): Merge from *extendsfdf2_mixed and *extendsfdf2_i387.
8432 Disable unsupported alternatives using "enabled" attribute.
8433 Use register_ssemem_operand as operand 0 predicate.
8434 (*fop_<mode>_1): Use x87nonimm_ssenomem_operand as operand 1 predicate.
8435
8436 2016-05-03 Marek Polacek <polacek@redhat.com>
8437
8438 PR c/70859
8439 * input.c (expansion_point_location): New function.
8440 * input.h (expansion_point_location): Declare.
8441
8442 2016-05-03 Pierre-Marie de Rodat <derodat@adacore.com>
8443
8444 * dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
8445 occurence with frame_offset_ ones.
8446
8447 2016-05-03 Alan Modra <amodra@gmail.com>
8448
8449 PR rtl-optimization/70890
8450 * ira.c (combine_and_move_insns): When moving def_insn, remove
8451 equivs on use_insn.
8452
8453 2016-05-03 Dominik Vogt <vogt@linux.vnet.ibm.com>
8454
8455 * config/s390/s390.md ("*r<noxa>sbg_<mode>_sll")
8456 ("*r<noxa>sbg_<mode>_srl"): New define_insns.
8457 ("*r<noxa>sbg_<mode>_srl_bitmask"): Rename by adding "_bitmask".
8458 ("*r<noxa>sbg_<mode>_sll_bitmask"): Likewise.
8459
8460 2016-05-03 Alan Modra <amodra@gmail.com>
8461
8462 * config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
8463 for SAVE_MULTIPLE/STORE_MULTIPLE.
8464
8465 2016-05-03 Jakub Jelinek <jakub@redhat.com>
8466
8467 * config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
8468 *truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead of x.
8469
8470 2016-05-03 Richard Biener <rguenther@suse.de>
8471
8472 * gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
8473 default true.
8474 (gimplify_arg): Likewise.
8475 * gimplify.c (gimplify_expr): Add overload with allow_ssa parameter,
8476 re-writing the result to a decl if required.
8477 (internal_get_tmp_var): Add allow_ssa parameter
8478 and override into_ssa with it.
8479 (get_formal_tmp_var): Adjust.
8480 (get_initialized_tmp_var): Add allow_ssa parameter.
8481 (gimplify_arg): Add allow_ssa parameter and avoid generating
8482 SSA names for the result false.
8483 (gimplify_call_expr): If the call may return twice do not
8484 gimplify parameters into SSA.
8485 (prepare_gimple_addressable): Do not allow an SSA name as temporary.
8486 (gimplify_modify_expr): Adjust assert. For noreturn calls
8487 with a SSA name LHS adjust its def.
8488 (gimplify_save_expr): Do not allow an SSA name as save-expr result.
8489 (gimplify_one_sizepos): Do not allow an SSA name as a sizepos.
8490 (gimplify_body): Init GIMPLE SSA data structures and gimplify into-SSA.
8491 (gimplify_scan_omp_clauses): Make sure OMP_CLAUSE_SIZE is not
8492 an SSA name. Likewise for OMP_CLAUSE_REDUCTION operands.
8493 (gimplify_omp_for): Likewise for OMP_CLAUSE_DECL. Likewise
8494 for OMP_FOR_COND, OMP_FOR_INCR and OMP_CLAUSE_LINEAR_STEP.
8495 (optimize_target_teams): Do not allow SSA names for clause operands.
8496 (gimplify_expr): Likewise for where we mark the result addressable.
8497 * passes.def (pass_init_datastructures): Remove.
8498 * tree-into-ssa.c (mark_def_sites): Ignore existing SSA names.
8499 (rewrite_stmt): Likewise.
8500 * tree-inline.c (initialize_cfun): Properly transfer SSA state.
8501 (replace_locals_op): Replace SSA names.
8502 (copy_gimple_seq_and_replace_locals): Init src_cfun.
8503 * gimple-low.c (lower_builtin_setjmp): Deal with SSA.
8504 * cgraph.c (release_function_body): Free CFG annotations only
8505 when we have a CFG. Simplify.
8506 * gimple-fold.c (gimplify_and_update_call_from_tree): Use
8507 force_gimple_operand instead of get_initialized_tmp_var.
8508 * tree-pass.h (make_pass_init_datastructures): Remove.
8509 * tree-ssa.c (execute_init_datastructures): Remove.
8510 (pass_data_init_datastructures): Likewise.
8511 (class pass_init_datastructures): Likewise.
8512 (make_pass_init_datastructures): Likewise.
8513 * omp-low.c (create_omp_child_function): Init SSA data structures.
8514 (grid_expand_target_grid_body): Likewise.
8515 * tree-cfg.c (move_block_to_fn): Double-check the DEF is an SSA
8516 name before adding it to names_to_release.
8517 (remove_bb): Always release SSA defs.
8518 * tree-ssa-ccp.c (get_default_value): Check SSA_NAME_VAR
8519 before dereferencing it.
8520 * cgraphunit.c (init_lowered_empty_function): Always
8521 int SSA data structures.
8522 * tree-ssanames.c (release_defs): Remove assert that we are in
8523 SSA form.
8524 * trans-mem.c (diagnose_tm_1): Handle SSA name function.
8525
8526 2016-05-03 Jakub Jelinek <jakub@redhat.com>
8527 Uros Bizjak <ubizjak@gmail.com>
8528
8529 PR rtl-optimization/70467
8530 * config/i386/predicates.md (x86_64_hilo_int_operand,
8531 x86_64_hilo_general_operand): New predicates.
8532 * config/i386/constraints.md (Wd): New constraint.
8533 * config/i386/i386.md (mode attr di): Use Wd instead of e.
8534 (general_hilo_operand): New mode attr.
8535 (add<mode>3, sub<mode>3): Use <general_hilo_operand>
8536 instead of <general_operand>.
8537 (*add<dwi>3_doubleword, *sub<dwi>3_doubleword): Use
8538 x86_64_hilo_general_operand instead of <general_operand>.
8539
8540 2016-05-03 Jakub Jelinek <jakub@redhat.com>
8541
8542 PR tree-optimization/70916
8543 * tree-if-conv.c (constant_or_ssa_name): Removed.
8544 (fold_build_cond_expr): Use is_gimple_val instead of
8545 constant_or_ssa_name.
8546
8547 PR tree-optimization/70916
8548 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
8549 if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.
8550
8551 PR target/49244
8552 * tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h.
8553 (optimize_atomic_bit_test_and): New function.
8554 (pass_fold_builtins::execute): Use it.
8555 * optabs.def (atomic_bit_test_and_set_optab,
8556 atomic_bit_test_and_complement_optab,
8557 atomic_bit_test_and_reset_optab): New optabs.
8558 * internal-fn.def (ATOMIC_BIT_TEST_AND_SET,
8559 ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_BIT_TEST_AND_RESET): New ifns.
8560 * builtins.h (expand_ifn_atomic_bit_test_and): New prototype.
8561 * builtins.c (expand_ifn_atomic_bit_test_and): New function.
8562 * internal-fn.c (expand_ATOMIC_BIT_TEST_AND_SET,
8563 expand_ATOMIC_BIT_TEST_AND_COMPLEMENT,
8564 expand_ATOMIC_BIT_TEST_AND_RESET): New functions.
8565 * doc/md.texi (atomic_bit_test_and_set@var{mode},
8566 atomic_bit_test_and_complement@var{mode},
8567 atomic_bit_test_and_reset@var{mode}): Document.
8568 * config/i386/sync.md (atomic_bit_test_and_set<mode>,
8569 atomic_bit_test_and_complement<mode>,
8570 atomic_bit_test_and_reset<mode>): New expanders.
8571 (atomic_bit_test_and_set<mode>_1,
8572 atomic_bit_test_and_complement<mode>_1,
8573 atomic_bit_test_and_reset<mode>_1): New insns.
8574
8575 2016-05-03 Richard Sandiford <richard.sandiford@arm.com>
8576
8577 PR rtl-optimization/70687
8578 * combine.c (change_zero_ext): Check for scalar modes. Use wide_int
8579 instead of unsigned HOST_WIDE_INT.
8580
8581 2016-05-03 Bernd Schmidt <bschmidt@redhat.com>
8582
8583 PR rtl-optimization/44281
8584 * hard-reg-set.h (struct target_hard_regs): New field
8585 x_fixed_nonglobal_reg_set.
8586 (fixed_nonglobal_reg_set): New macro.
8587 * reginfo.c (init_reg_sets_1): Initialize it.
8588 * ira.c (setup_alloc_regs): Use fixed_nonglobal_reg_set instead
8589 of fixed_reg_set.
8590 * df-scan.c (df_insn_refs_collect): Asms may reference global regs.
8591
8592 2016-05-03 Bin Cheng <bin.cheng@arm.com>
8593
8594 PR tree-optimization/56541
8595 * doc/invoke.texi (@item max-tree-if-conversion-phi-args): New item.
8596 * params.def (PARAM_MAX_TREE_IF_CONVERSION_PHI_ARGS): new param.
8597 * tree-if-conv.c (MAX_PHI_ARG_NUM): new macro.
8598 (any_complicated_phi): new static variable.
8599 (aggressive_if_conv): delete.
8600 (if_convertible_phi_p): support phis with more than two arguments.
8601 (if_convertible_bb_p): remvoe check on aggressive_if_conv and
8602 critical pred edges.
8603 (ifcvt_split_critical_edges): support phis with more than two
8604 arguments by checking new parameter. only split critical edges
8605 if needed.
8606 (tree_if_conversion): handle simd pragma marked loop using new
8607 local variable aggressive_if_conv. check any_complicated_phi.
8608
8609 2016-05-03 Bin Cheng <bin.cheng@arm.com>
8610
8611 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
8612 before using it.
8613
8614 2016-05-03 Bin Cheng <bin.cheng@arm.com>
8615
8616 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
8617 cbase.
8618
8619 2016-05-03 Oleg Endo <olegendo@gcc.gnu.org>
8620
8621 * config/sh/sh.md (udivsi3, divsi3, mulsi3): Simplify.
8622 (mulhisi3, umulhisi3, (smulsi3_highpart, umulsi3_highpart): Convert to
8623 define_insn_and_split.
8624 (mulsi3_i): New define_insn_and_split.
8625 (mulsi3_call): Convert to define_insn.
8626 (mulsidi3, mulsidi3_compact, umulsidi3, umulsidi3_compact):
8627 Remove constraints.
8628
8629 2016-05-02 Michael Meissner <meissner@linux.vnet.ibm.com>
8630
8631 * machmode.h (mode_complex): Add support to give the complex mode
8632 for a given mode.
8633 (GET_MODE_COMPLEX_MODE): Likewise.
8634 * stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
8635 stored by build_complex_type and gfc_build_complex_type instead of
8636 trying to figure out the appropriate mode based on the size. Raise
8637 an assertion error, if the type was not set.
8638 * genmodes.c (struct mode_data): Add field for the complex type of
8639 the given type.
8640 (blank_mode): Likewise.
8641 (make_complex_modes): Remember the complex mode created in the
8642 base type.
8643 (emit_mode_complex): Write out the mode_complex array to map a
8644 type mode to the complex version.
8645 (emit_insn_modes_c): Likewise.
8646 * tree.c (build_complex_type): Set the complex type to use before
8647 calling layout_type.
8648 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
8649 support for __float128 complex datatypes.
8650 (rs6000_hard_regno_mode_ok): Likewise.
8651 (rs6000_setup_reg_addr_masks): Likewise.
8652 (rs6000_complex_function_value): Likewise.
8653 * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
8654 __float128 and __ibm128 complex.
8655 (FLOAT128_IBM_P): Likewise.
8656 (ALTIVEC_ARG_MAX_RETURN): Likewise.
8657 * doc/extend.texi (Additional Floating Types): Document that
8658 -mfloat128 must be used to enable __float128. Document complex
8659 __float128 and __ibm128 support.
8660
8661 2016-05-02 Jakub Jelinek <jakub@redhat.com>
8662
8663 PR target/49244
8664 * gimple.c (gimple_builtin_call_types_compatible_p): Allow
8665 char/short arguments promoted to int because of promote_prototypes.
8666
8667 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
8668
8669 * config/i386/predicates.md (register_ssemem_operand): New predicate.
8670 * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Merge from
8671 *cmpi<FPCMP:unord><MODEF:mode>_mixed and
8672 *cmpi<FPCMP:unord><X87MODEF:mode>_i387. Disable unsupported
8673 alternatives using "enabled" attribute. Use register_ssemem_operand
8674 as operand 1 predicate.
8675 (*cmpi<unord>xf_i387): Split XFmode pattern from
8676 *cmpi<FPCMP:unord><X87MODEF:mode>_i387.
8677 (*absneg<mode>2): Merge from *absneg<mode>2_mixed and
8678 *absneg<mode>2_i387. Disable unsupported alternatives using
8679 "enabled" attribute.
8680 (*absnegxf2_i387): Split XFmode pattern from *absneg<mode>2_i387.
8681
8682 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
8683
8684 * omp-low.c (lower_oacc_head_tail): Assert there is at least one
8685 marker.
8686 (oacc_loop_process): Check mask for loop termination.
8687
8688 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
8689
8690 * cif-code.def (CIF_THUNK): Add.
8691 * ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
8692 accidental change.
8693
8694 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
8695
8696 * ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
8697 (dump_inline_summary): Dump it.
8698 (fp_expression_p): New predicate.
8699 (estimate_function_body_sizes): Use it.
8700 (inline_merge_summary): Merge fp_expressions.
8701 (inline_read_section): Read fp_expressions.
8702 (inline_write_summary): Write fp_expressions.
8703 * ipa-inline.c (can_inline_edge_p): Permit inlining across fp math
8704 codegen boundary if either caller or callee is !fp_expressions.
8705 * ipa-inline.h (inline_summary): Add fp_expressions.
8706 * ipa-inline-transform.c (inline_call): When inlining !fp_expressions
8707 to fp_expressions be sure the fp generation flags are updated.
8708
8709 2016-05-02 Jakub Jelinek <jakub@redhat.com>
8710
8711 PR rtl-optimization/70467
8712 * cse.c (cse_insn): Handle no-op MEM moves after folding.
8713
8714 PR rtl-optimization/70467
8715 * ipa-pure-const.c (check_call): Handle internal calls even in
8716 ipa mode like in local mode.
8717
8718 2016-05-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
8719
8720 * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.
8721
8722 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
8723
8724 * match.pd (X u< X, X u> X): New transformations.
8725
8726 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
8727
8728 * flag-types.h (enum warn_strict_overflow_code): Move ...
8729 * coretypes.h: ... here.
8730 * fold-const.h (fold_overflow_warning): Declare.
8731 * fold-const.c (fold_overflow_warning): Make non-static.
8732 (fold_comparison): Move the transformation of X +- C1 CMP C2
8733 into X CMP C2 -+ C1 ...
8734 * match.pd: ... here.
8735 * gimple-fold.c (fold_stmt_1): Protect with
8736 fold_defer_overflow_warnings.
8737
8738 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
8739
8740 * omp-low.c (struct oacc_loop): Add 'inner' field.
8741 (new_oacc_loop_raw): Initialize it to zero.
8742 (oacc_loop_fixed_partitions): Initialize it.
8743 (oacc_loop_auto_partitions): Partition outermost loop to outermost
8744 available partitioning.
8745
8746 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
8747
8748 * config/arc/arc.md (mulsidi3): Change operand 0 predicate to
8749 register_operand.
8750 (umulsidi3): Likewise.
8751 (indirect_jump): Fix jump instruction assembly patterns.
8752
8753 2016-05-02 Thomas Schwinge <thomas@codesourcery.com>
8754
8755 PR target/70860
8756 * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
8757 (nvptx_function_value): Assert non-NULL cfun.
8758
8759 2016-05-02 Eric Botcazou <ebotcazou@adacore.com>
8760
8761 PR rtl-optimization/70886
8762 * sched-deps.c (estimate_dep_weak): Canonicalize cselib values.
8763
8764 * cselib.h (rtx_equal_for_cselib_1): Declare.
8765 (rtx_equal_for_cselib_p: New inline function.
8766 * cselib.c (rtx_equal_for_cselib_p): Delete.
8767 (rtx_equal_for_cselib_1): Make public.
8768
8769 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
8770
8771 * config/i386/predicates.md (nonimm_ssenomem_operand): New predicate.
8772 (register_mixssei387nonimm_operand): Remove predicate.
8773 * config/i386/i386.md (*fop_<mode>_comm): Merge from
8774 *fop_<mode>_comm_mixed and *fop_<mode>_comm_i387. Disable unsupported
8775 alternatives using "enabled" attribute. Also check X87_ENABLE_ARITH
8776 for TARGET_MIX_SSE_I387 alternatives.
8777 (*fop_<mode>_1): Merge from *fop_<mode>_1_mixed and *fop_<mode>_1_i387.
8778 Disable unsupported alternatives using "enabled" attribute. Use
8779 nonimm_ssenomem_operand as operand 1 predicate. Also check
8780 X87_ENABLE_ARITH for TARGET_MIX_SSE_I387 alternatives.
8781
8782 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
8783
8784 * tree.c (cst_and_fits_in_hwi): Simplify.
8785
8786 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
8787
8788 * tree.h (wi::to_wide): New function.
8789 * expr.c (expand_expr_real_1): Use wi::to_wide.
8790 * fold-const.c (int_const_binop_1): Likewise.
8791 (extract_muldiv_1): Likewise.
8792
8793 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
8794
8795 * wide-int.h: Update offset_int and widest_int documentation.
8796 (WI_SIGNED_SHIFT_RESULT): New macro.
8797 (wi::binary_shift): Define signed_shift_result_type for
8798 shifts on offset_int- and widest_int-like types.
8799 (generic_wide_int): Support <<= and >>= if << and >> are supported.
8800 * tree.h (int_bit_position): Use shift operators instead of wi::
8801 shifts.
8802 * alias.c (adjust_offset_for_component_ref): Likewise.
8803 * expr.c (get_inner_reference): Likewise.
8804 * fold-const.c (fold_comparison): Likewise.
8805 * gimple-fold.c (fold_nonarray_ctor_reference): Likewise.
8806 * gimple-ssa-strength-reduction.c (restructure_reference): Likewise.
8807 * tree-dfa.c (get_ref_base_and_extent): Likewise.
8808 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
8809 (stmt_kills_ref_p): Likewise.
8810 * tree-ssa-ccp.c (bit_value_binop_1): Likewise.
8811 * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
8812 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
8813 (ao_ref_init_from_vn_reference): Likewise.
8814
8815 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
8816
8817 * wide-int.h: Update offset_int and widest_int documentation.
8818 (WI_SIGNED_BINARY_PREDICATE_RESULT): New macro.
8819 (wi::binary_traits): Allow ordered comparisons between offset_int and
8820 offset_int, between widest_int and widest_int, and between either
8821 of these types and basic C types.
8822 (operator <, <=, >, >=): Define for the same combinations.
8823 * tree.h (tree_int_cst_lt): Use comparison operators instead
8824 of wi:: comparisons.
8825 (tree_int_cst_le): Likewise.
8826 * gimple-fold.c (fold_array_ctor_reference): Likewise.
8827 (fold_nonarray_ctor_reference): Likewise.
8828 * gimple-ssa-strength-reduction.c (record_increment): Likewise.
8829 * tree-affine.c (aff_comb_cannot_overlap_p): Likewise.
8830 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Likewise.
8831 * tree-sra.c (completely_scalarize): Likewise.
8832 * tree-ssa-alias.c (stmt_kills_ref_p): Likewise.
8833 * tree-ssa-reassoc.c (extract_bit_test_mask): Likewise.
8834 * tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
8835 (check_for_binary_op_overflow): Likewise.
8836 (search_for_addr_array): Likewise.
8837 * ubsan.c (ubsan_expand_objsize_ifn): Likewise.
8838
8839 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
8840
8841 * config/arc/arc.c (arc_preferred_simd_mode): Remove enum keyword.
8842 (arc_save_restore): Likewise.
8843 (arc_dwarf_register_span): Likewise.
8844 (arc_output_pic_addr_const): Initialize suffix variable.
8845
8846 2016-05-02 Martin Liska <mliska@suse.cz>
8847
8848 * symbol-summary.h (function_summary::function_summary):
8849 Remove checking assert for all cgraph nodes.
8850 (function_summary::get): Check summary_uid.
8851 (symtab_insertion): Check summary_uid.
8852
8853 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
8854
8855 * config/arc/arc-protos.h (compact_memory_operand_p): Declare.
8856 * config/arc/arc.c (arc_output_commutative_cond_exec): Consider
8857 bmaskn instruction.
8858 (arc_dwarf_register_span): Remove enum keyword.
8859 (compact_memory_operand_p): New function.
8860 * config/arc/arc.h (reg_class): Add code density register classes.
8861 (REG_CLASS_NAMES): Likewise.
8862 (REG_CLASS_CONTENTS): Likewise.
8863 * config/arc/arc.md (*movqi_insn): Add code density instructions.
8864 (*movhi_insn, *movsi_insn, *movsf_insn): Likewise.
8865 (*extendhisi2_i, andsi3_i, cmpsi_cc_insn_mixed): Likewise.
8866 (*cmpsi_cc_c_insn, *movsi_ne): Likewise.
8867 * config/arc/constraints.md (C2p, Uts, Cm1, Cm3, Ucd): New
8868 constraints.
8869 (h, Rcd, Rsd, Rzd): New register constraints.
8870 (T): Use compact_memory_operand_p function.
8871 * config/arc/predicates.md (compact_load_memory_operand): Remove.
8872
8873 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
8874
8875 * config/sh/sh.md (*negnegt, *movtt): Remove.
8876
8877 2016-05-02 Marek Polacek <polacek@redhat.com>
8878 Tom de Vries <tom@codesourcery.com>
8879
8880 PR tree-optimization/70700
8881 * tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids
8882 bigger than FIRST_REF_NODE.
8883
8884 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
8885
8886 PR target/52898
8887 * config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4,
8888 TARGET_CMPEQDI_T.
8889 (prepare_cbranch_operands): Don't use scratch register. Assume that
8890 function is used when pseudos can be created.
8891 (expand_cbranchdi4): Likewise. Remove unused TARGET_CMPEQDI_T paths.
8892 * config/sh/sh.md (cbranchsi4): Allow only when pseudos can be created.
8893 (cbranchdi4, cbranchdi4_i): Simplify to single cbranchdi4
8894 define_expand. Allow it only when pseudos can be created.
8895 * config/sh/sh.opt (mcbranchdi, mcmpeqdi): Delete.
8896
8897 2016-05-01 Uros Bizjak <ubizjak@gmail.com>
8898
8899 * config/i386/constraints.md (BC): Only allow -1 operands.
8900 * config/i386/sse.md (mov<mode>_internal): Add (v,C) alternative.
8901 Add "enabled" attribute. Update XI mode attribute calculation.
8902 * config/i386/i386.md (*movxi_internal_avx512f): Add (v,C) alternative.
8903 (*movoi_internal_avx): Update XI mode attribute calculation.
8904 (*movti_internal): Ditto.
8905
8906 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
8907
8908 * config/sh/sh.md (push, pop, ic_invalidate_line, cstoresi4, cstoredi4,
8909 cstoresf4, cstoredf4, fix_truncsfsi2): Remove constraints.
8910
8911 2016-05-01 Eric Botcazou <ebotcazou@adacore.com>
8912
8913 * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Do not use switch
8914 statement on instruction code. Remove trailing spaces.
8915 (altivec_expand_stv_builtin): Likewise.
8916
8917 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
8918
8919 * config/sh/sh.h (TARGET_SH4): Remove and use default implementation.
8920 (TARGET_FPU_DOUBLE): Simplify.
8921 (BASE_ARG_REG, DOUBLE_TYPE_SIZE, OPTIMIZE_MODE_SWITCHING): Replace
8922 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions with 'TARGET_FPU_DOUBLE'.
8923 * config/sh/sh.c: Replace 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions
8924 with 'TARGET_FPU_DOUBLE'.
8925 * config/sh/sh.md: Likewise.
8926
8927 2016-05-01 Yoshinori Sato <ysato@users.sourceforge.jp>
8928
8929 * config/sh/linux.h (SH_DIV_STRATEGY_DEFAULT,
8930 SH_DIV_STR_FOR_SIZE): Remove.
8931 * config/sh/netbsd-elf.h (SH_DIV_STRATEGY_DEFAULT,
8932 SH_DIV_STR_FOR_SIZE): Remove.
8933
8934 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
8935
8936 * config/sh/predicates.md (any_register_operand, zero_extend_operand,
8937 logical_reg_operand): Delete.
8938 (arith_operand, arith_reg_dest, arith_or_int_operand, cmpsi_operand,
8939 arith_reg_or_0_operand, arith_reg_or_0_or_1_operand, logical_operand,
8940 logical_and_operand, movsrc_no_disp_mem_operand): Rewrite using
8941 match_operand and match_test.
8942 (sh_const_vec, sh_1el_vec): Remove redundant checks. Declare local
8943 variables on their first use. Return bool values.
8944 * config/sh/sh.h (LOAD_EXTEND_OP): Update comment.
8945 * config/sh/sh.md (andsi3, iorsi3): Use arith_reg_dest for result and
8946 arith_reg_operand for input operand. Remove empty constraints.
8947 (xorsi3): Delete.
8948 (*xorsi3_compact): Rename to xorsi3.
8949 (zero_extend<mode>si2): Use arith_reg_operand for input operand.
8950 (*zero_extend<mode>si2_disp_mem): Update comment.
8951 (mov_nop): Delete.
8952
8953 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
8954
8955 * config/sh/t-sh: Remove SH5 support.
8956 * config.gcc: Likewise.
8957 * configure: Likewise.
8958
8959 2016-04-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8960
8961 * config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus.
8962
8963 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
8964
8965 * config/sh/sh.c (register_sh_passes, sh_option_override,
8966 sh_print_operand, prepare_move_operands,
8967 sh_can_follow_jump): Remove TARGET_SH1 checks.
8968 * config/sh/sh.h (TARGET_VARARGS_PRETEND_ARGS, VALID_REGISTER_P,
8969 PROMOTE_MODE): Likewise.
8970 * config/sh/sh.md (adddi3, addsi3, subdi3, subsi3, andsi3,
8971 movdi): Likewise.
8972
8973 2016-04-30 Alan Modra <amodra@gmail.com>
8974
8975 * config/rs6000/rs6000.c (rs6000_savres_strategy): Force inline
8976 restoring when fixed_reg_p, but allow out-of-line or stmw save.
8977 Check for user regs later to avoid unnecessary looping over regs.
8978 Merge user reg check with non-saved reg check. Don't force
8979 inline VR restore when static chain used.
8980 (rs6000_frame_related): Omit eh_frame info for user regs when
8981 saving.
8982 (fixed_regs_p): Delete.
8983
8984 2016-04-30 Alan Modra <amodra@gmail.com>
8985
8986 * config/rs6000/rs6000.c (SAVRES_MULTIPLE): Replace with..
8987 (SAVE_STRATEGY, REST_STRATEGY): ..this. Renumber and sort enum.
8988 Update all uses.
8989
8990 2016-04-30 Alan Modra <amodra@gmail.com>
8991
8992 PR target/69645
8993 * config/rs6000/rs6000.c (fixed_reg_p): New function.
8994 (fixed_regs_p): Rename from global_regs_p. Call fixed_reg_p.
8995 Update all uses.
8996
8997 2016-04-30 Alan Modra <amodra@gmail.com>
8998
8999 * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
9000 Remove redundant PIC_OFFSET_TABLE_REGNUM test. Replace with
9001 flag_pic test for Darwin.
9002
9003 2016-04-30 Alan Modra <amodra@gmail.com>
9004
9005 * regs.h (struct reg_info_t): Delete freq_calls_crossed and
9006 throw_calls_crossed.
9007 (REG_FREQ_CALLS_CROSSED): Delete.
9008 (REG_N_THROWING_CALLS_CROSSED): Delete.
9009 * regstat.c (regstat_bb_compute_ri): Don't calculate
9010 REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED.
9011 (dump_reg_info): Don't print call cross frequency.
9012 * ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED
9013 and REG_N_THROWING_CALLS_CROSSED.
9014
9015 2016-04-30 Alan Modra <amodra@gmail.com>
9016
9017 * regs.h (struct reg_info_t): Delete live_length.
9018 (REG_LIVE_LENGTH): Delete macro.
9019 * regstat.c (regstat_bb_compute_ri): Delete artificial_uses,
9020 local_live, local_processed and local_live_last_luid params.
9021 Replace bb_index param with bb. Don't set REG_LIVE_LENGTH.
9022 Formatting fixes.
9023 (regstat_compute_ri): Adjust for above. Don't set
9024 REG_LIVE_LENGTH.
9025 (dump_reg_info): Don't print live length.
9026 * ira.c (update_equiv_regs): Replace test of REG_LIVE_LENGTH
9027 with test of setjmp_crosses. Don't set REG_LIVE_LENGTH.
9028 Localize loop_depth var.
9029
9030 2016-04-30 Alan Modra <amodra@gmail.com>
9031
9032 * ira.c (enum valid_equiv): New.
9033 (validate_equiv_mem): Return enum.
9034 (update_equiv_mem): Create replacement in more cases.
9035 (add_store_equivs): Update validate_equiv_mem call.
9036
9037 2016-04-30 Alan Modra <amodra@gmail.com>
9038
9039 * ira.c (combine_and_move_insns): Rather than scanning insns,
9040 use DF infrastucture to find use and def insns.
9041
9042 2016-04-30 Alan Modra <amodra@gmail.com>
9043
9044 ira.c (combine_and_move_insns): Move invariant conditions..
9045 (ira.c): ..to here. Call combine_and_move_insns before
9046 add_store_equivs. Call grow_reg_equivs later. Allocate
9047 req_equiv later using max_reg_num() rather than global max_regno.
9048 (contains_replace_regs): Delete.
9049 (add_store_equivs): Remove contains_replace_regs test.
9050
9051 2016-04-30 Alan Modra <amodra@gmail.com>
9052
9053 * ira.c (struct equiv_mem_data): New.
9054 (equiv_mem, equiv_mem_modified): Delete static vars.
9055 (validate_equiv_mem_from_store): Use "data" param to communicate..
9056 (validate_equiv_mem): ..from here.
9057
9058 2016-04-30 Alan Modra <amodra@gmail.com>
9059
9060 * ira.c (add_store_equivs, combine_and_move_insns): New functions,
9061 split out from..
9062 (update_reg_equivs): ..here. Move allocation and freeing of
9063 reg_equiv, and calls to grow_reg_equivs, init_alias_analysis,
9064 end_alias_analysis to..
9065 (ira): ..here.
9066
9067 2016-04-30 Alan Modra <amodra@gmail.com>
9068
9069 * ira.c (pdx_subregs): Delete.
9070 (struct equivalence): Add pdx_subregs field.
9071 (set_paradoxical_subreg): Remove pdx_subregs param. Update
9072 pdx_subregs access.
9073 (update_equiv_regs): Don't create or free pdx_subregs. Update
9074 pdx_subregs access.
9075
9076 2016-04-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9077
9078 * config/rs6000/altivec.h: Change definitions of vec_xl and
9079 vec_xst.
9080 * config/rs6000/rs6000-builtin.def (LD_ELEMREV_V2DF): New.
9081 (LD_ELEMREV_V2DI): New.
9082 (LD_ELEMREV_V4SF): New.
9083 (LD_ELEMREV_V4SI): New.
9084 (LD_ELEMREV_V8HI): New.
9085 (LD_ELEMREV_V16QI): New.
9086 (ST_ELEMREV_V2DF): New.
9087 (ST_ELEMREV_V2DI): New.
9088 (ST_ELEMREV_V4SF): New.
9089 (ST_ELEMREV_V4SI): New.
9090 (ST_ELEMREV_V8HI): New.
9091 (ST_ELEMREV_V16QI): New.
9092 (XL): New.
9093 (XST): New.
9094 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
9095 descriptions for VSX_BUILTIN_VEC_XL and VSX_BUILTIN_VEC_XST.
9096 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Map from
9097 TARGET_P9_VECTOR to RS6000_BTM_P9_VECTOR.
9098 (altivec_expand_builtin): Add handling for
9099 VSX_BUILTIN_ST_ELEMREV_<MODE> and VSX_BUILTIN_LD_ELEMREV_<MODE>.
9100 (rs6000_invalid_builtin): Add error-checking for
9101 RS6000_BTM_P9_VECTOR.
9102 (altivec_init_builtins): Define builtins used to implement vec_xl
9103 and vec_xst.
9104 (rs6000_builtin_mask_names): Define power9-vector.
9105 * config/rs6000/rs6000.h (MASK_P9_VECTOR): Define.
9106 (RS6000_BTM_P9_VECTOR): Define.
9107 (RS6000_BTM_COMMON): Include RS6000_BTM_P9_VECTOR.
9108 * config/rs6000/vsx.md (vsx_ld_elemrev_v2di): New define_insn.
9109 (vsx_ld_elemrev_v2df): Likewise.
9110 (vsx_ld_elemrev_v4sf): Likewise.
9111 (vsx_ld_elemrev_v4si): Likewise.
9112 (vsx_ld_elemrev_v8hi): Likewise.
9113 (vsx_ld_elemrev_v16qi): Likewise.
9114 (vsx_st_elemrev_v2df): Likewise.
9115 (vsx_st_elemrev_v2di): Likewise.
9116 (vsx_st_elemrev_v4sf): Likewise.
9117 (vsx_st_elemrev_v4si): Likewise.
9118 (vsx_st_elemrev_v8hi): Likewise.
9119 (vsx_st_elemrev_v16qi): Likewise.
9120 * doc/extend.texi: Add prototypes for vec_xl and vec_xst. Correct
9121 grammar.
9122
9123 2016-04-29 Patrick Palka <ppalka@gcc.gnu.org>
9124
9125 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Split
9126 out into ...
9127 (simplify_control_stmt_condition_1): ... here. Recurse into
9128 BIT_AND_EXPRs and BIT_IOR_EXPRs.
9129
9130 2016-04-29 David Edelsohn <dje.gcc@gmail.com>
9131
9132 PR target/69810
9133 * config/rs6000/rs6000.md (EXTQI): Don't allow extension to HImode.
9134 (zero_extendqi<mode>2_dot): Revert earlier conversion from
9135 define_insn_and_split to define_insn.
9136 (zero_extendqi<mode>2_dot2): Same.
9137 (extendqi<mode>2_dot): Same.
9138 (extendqi<mode>2_dot2): Same.
9139
9140 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
9141
9142 * config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK.
9143 (probe_stack): New expander.
9144 (probe_stack_<mode>): New insn pattern.
9145
9146 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
9147
9148 * config/i386/i386.md
9149 (operations with memory inputs setting flags peephole2):
9150 Remove uneeded REG_P checks. Cleanup pattern generation.
9151
9152 2016-04-29 Ilya Enkovich <ilya.enkovich@intel.com>
9153
9154 * tree-vect-loop.c (vect_transform_loop): Fix
9155 nb_iterations_upper_bound computation for vectorized loop.
9156
9157 2016-04-29 Marek Polacek <polacek@redhat.com>
9158 Jakub Jelinek <jakub@redhat.com>
9159
9160 PR sanitizer/70342
9161 * fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
9162 TARGET_EXPR_SLOT as a base.
9163
9164 2016-04-29 Andrew Burgess <andrew.burgess@embecosm.com>
9165
9166 * config/arc/arc.md (*loadqi_update): Replace use of 'rI' constraint
9167 with 'rCm2' constraints to limit possible immediate size.
9168 (*load_zeroextendqisi_update): Likewise.
9169 (*load_signextendqisi_update): Likewise.
9170 (*loadhi_update): Likewise.
9171 (*load_zeroextendhisi_update): Likewise.
9172 (*load_signextendhisi_update): Likewise.
9173 (*loadsi_update): Likewise.
9174 (*loadsf_update): Likewise.
9175
9176 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
9177
9178 * config/i386/predicates.md (constm1_operand): Fix comparison.
9179
9180 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
9181
9182 * testsuite/gcc.target/arc/ieee_eq.c: New test.
9183
9184 2016-04-29 Oleg Endo <olegendo@gcc.gnu.org>
9185
9186 * common/config/sh/sh-common.c (sh_option_optimization_table): Remove
9187 remaining SH5 related settings.
9188 * config/sh/sh-protos.h (shmedia_cleanup_truncate,
9189 shmedia_prepare_call_address): Delete.
9190 * config/sh/sh.c (sh_print_operand, output_stack_adjust,
9191 DWARF_CIE_DATA_ALIGNMENT, LOCAL_ALIGNMENT): Update comments.
9192 * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC,
9193 UNSUPPORTED_SH2A): Remove m5 checks.
9194 (sh_divide_strategy_e): Remove SH5 division strategies.
9195 (TARGET_PTRMEMFUNC_VBIT_LOCATION): Remove and use default.
9196 * config/sh/sh.md (divsf3): Reinstate define_expand pattern.
9197
9198 2016-04-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
9199
9200 * config/s390/s390.c (s390_rtx_costs): Update documentation.
9201
9202 2016-04-29 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9203
9204 * config/s390/2964.md ("z13_unit_fxu", "z13_0"): Remove lder.
9205 * config/s390/s390.md ("movsi_larl", "*movsi_esa", "mov<mode>"):
9206 Change lder to ldr.
9207 * config/s390/vector.md ("mov<mode>"): Likewise.
9208
9209 2016-04-29 Ulrich Weigand <uweigand@de.ibm.com>
9210
9211 * config/s390/constraints.md ("U", "W"): Invoke
9212 s390_mem_constraint with "ZR" and "ZT".
9213 * config/s390/s390.c (s390_check_qrst_address): Reject invalid
9214 addresses when using LRA. Accept also short displacements for S
9215 and T constraints. Do not check for long displacement target for
9216 S and T constraints.
9217 (s390_mem_constraint): Remove handling of U and W constraints.
9218 * config/s390/s390.md (various patterns): Remove the short
9219 displacement constraints (Q and R) if a long displacement
9220 constraint is present. Add longdisp as required CPU capability.
9221 * config/s390/vector.md: Likewise.
9222 * config/s390/vx-builtins.md: Likewise.
9223
9224 2016-04-29 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
9225
9226 PR target/60040
9227 * reload1.c (reload): Call finish_spills before
9228 restarting reload loop. Skip select_reload_regs
9229 if update_eliminables_and_spill returns true.
9230
9231 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
9232
9233 * config/arc/arc.h (UNSIGNED_INT12, UNSIGNED_INT16): Define.
9234 * config/arc/arc.md (umulhisi3): Use arc_short_operand predicate.
9235 (umulhisi3_imm): Update predicates and constraint letters.
9236 (umulhisi3_reg): Declare instruction as commutative.
9237 * config/arc/constraints.md (J12, J16): New constraints.
9238 * config/arc/predicates.md (short_unsigned_const_operand): New
9239 predicate.
9240 (arc_short_operand): Likewise.
9241 * testsuite/gcc.target/arc/umulsihi3_z.c: New file.
9242
9243 2016-04-29 Richard Biener <rguenther@suse.de>
9244
9245 PR tree-optimization/13962
9246 PR tree-optimization/65686
9247 * tree-ssa-alias.h (ptrs_compare_unequal): Declare.
9248 * tree-ssa-alias.c (ptrs_compare_unequal): New function
9249 using PTA to compare pointers.
9250 * match.pd: Add pattern for pointer equality compare simplification
9251 using ptrs_compare_unequal.
9252
9253 2016-04-29 Richard Biener <rguenther@suse.de>
9254
9255 * stor-layout.c (layout_type): Do not build a pointer-to-element
9256 type for arrays.
9257
9258 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
9259
9260 * config/i386/i386.md (Load+RegOp to Mov+MemOp peephole2):
9261 Use SWI mode iterator. Use general_reg_operand predicate.
9262 (Load+RegOp to Mov+MemOp peephole2 with vector regs): Split
9263 peephole to MMX and SSE part. Use mmx_reg_operand and sse_reg_operand
9264 predicates.
9265
9266 2016-04-29 Jakub Jelinek <jakub@redhat.com>
9267
9268 PR middle-end/70843
9269 * fold-const.c (operand_equal_p): Don't verify hash value equality
9270 if arg0 == arg1.
9271 * tree.c (inchash::add_expr): Handle STATEMENT_LIST. Ignore BLOCK
9272 and OMP_CLAUSE.
9273
9274 2016-04-28 Jakub Jelinek <jakub@redhat.com>
9275
9276 PR target/70858
9277 * config/i386/i386.c (bdesc_special_args): Add | OPTION_MASK_ISA_64BIT
9278 to __builtin_ia32_lwpval64 and __builtin_ia32_lwpins64.
9279 (bdesc_args): Add | OPTION_MASK_ISA_64BIT to __builtin_ia32_bextr_u64,
9280 __builtin_ia32_bextri_u64, __builtin_ia32_bzhi_di,
9281 __builtin_ia32_pdep_di and __builtin_ia32_pext_di.
9282
9283 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
9284
9285 * config/rs6000/rs6000.c (compute_save_world_info): Rename info_ptr
9286 to info. Don't initialize separate fields to 0. Clean up
9287 formatting a bit.
9288
9289 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
9290
9291 * config/i386/i386.md (peephole2s for operations with memory inputs):
9292 Use SWI mode iterator.
9293 (peephole2s for operations with memory outputs): Ditto.
9294 Do not check for stack checking probe.
9295
9296 (probe_stack): Remove expander.
9297
9298 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
9299 Andrew Burgess <andrew.burgess@embecosm.com>
9300
9301 * config/arc/arc.c (arc_print_operand): Print integer 'H' / 'L'
9302 operands as 32-bits.
9303
9304 2016-04-28 Jason Merrill <jason@redhat.com>
9305
9306 * gdbinit.in: Skip line-map.h.
9307
9308 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
9309 Andrew Burgess <andrew.burgess@embecosm.com>
9310
9311 * config/arc/arc.c (arc_conditional_register_usage): Take
9312 TARGET_RRQ_CLASS into account.
9313 (arc_print_operand): Support printing 'p' and 's' operands.
9314 * config/arc/arc.h (TARGET_NPS_BITOPS_DEFAULT): Provide default
9315 as 0.
9316 (TARGET_RRQ_CLASS): Define.
9317 (IS_POWEROF2_OR_0_P): Define.
9318 * config/arc/arc.md (*movsi_insn): Add w/Clo, w/Chi, and w/Cbi
9319 alternatives.
9320 (*tst_movb): New define_insn.
9321 (*tst): Avoid recognition if it could prevent '*tst_movb'
9322 combination; replace c/CnL with c/Chs alternative.
9323 (*tst_bitfield_tst): New define_insn.
9324 (*tst_bitfield_asr): New define_insn.
9325 (*tst_bitfield): New define_insn.
9326 (andsi3_i): Add Rrq variant.
9327 (extzv): New define_expand.
9328 (insv): New define_expand.
9329 (*insv_i): New define_insn.
9330 (*movb): New define_insn.
9331 (*movb_signed): New define_insn.
9332 (*movb_high): New define_insn.
9333 (*movb_high_signed): New define_insn.
9334 (*movb_high_signed + 1): New define_split pattern.
9335 (*mrgb): New define_insn.
9336 (*mrgb + 1): New define_peephole2 pattern.
9337 (*mrgb + 2): New define_peephole2 pattern.
9338 * config/arc/arc.opt (mbitops): New option for nps400, uses
9339 TARGET_NPS_BITOPS_DEFAULT.
9340 * config/arc/constraints.md (q): Make register class conditional.
9341 (Rrq): New register constraint.
9342 (Chs): New constraint.
9343 (Clo): New constraint.
9344 (Chi): New constraint.
9345 (Cbf): New constraint.
9346 (Cbn): New constraint.
9347 (C18): New constraint.
9348 (Cbi): New constraint.
9349
9350 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
9351
9352 * cfganal.c (bitmap_intersection_of_succs): Delete assert checking
9353 dst->popcount.
9354 (bitmap_intersection_of_preds): Ditto.
9355 (bitmap_union_of_succs): Ditto.
9356 (bitmap_union_of_preds): Ditto.
9357 * sbitmap.c (do_popcount): Delete.
9358 (BITMAP_DEBUGGING): Delete.
9359 (sbitmap_verify_popcount): Delete.
9360 (sbitmap_alloc): Don't initialize the popcount field.
9361 (sbitmap_alloc_with_popcount): Delete.
9362 (sbitmap_resize): Don't resize the popcount array.
9363 (sbitmap_vector_alloc): Don't initialize the popcount field.
9364 (bitmap_copy): Don't copy the popcount array.
9365 (bitmap_clear): Don't clear the popcount array.
9366 (bitmap_clear): Delete the popcount array handling.
9367 (bitmap_ior_and_compl): Delete the popcount assert.
9368 (bitmap_not): Ditto.
9369 (bitmap_and_compl): Ditto.
9370 (bitmap_and): Delete the popcount array handling.
9371 (bitmap_xor): Ditto.
9372 (bitmap_ior): Ditto.
9373 (bitmap_or_and): Delete the popcount assert.
9374 (bitmap_and_or): Ditto.
9375 (popcount_table): Delete.
9376 (sbitmap_elt_popcount): Delete.
9377 * sbitmap.h (simple_bitmap_def): Delete the popcount field.
9378 (bitmap_set_bit): Delete the popcount assert.
9379 (bitmap_clear_bit): Ditto.
9380 (sbitmap_free): Don't free the popcount array.
9381 (sbitmap_alloc_with_popcount): Delete declaration.
9382 (sbitmap_popcount): Ditto.
9383
9384 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
9385 Andrew Burgess <andrew.burgess@embecosm.com>
9386
9387 * config/arc/arc.h (SYMBOL_FLAG_CMEM): Define.
9388 (TARGET_NPS_CMEM_DEFAULT): Provide default definition.
9389 * config/arc/arc.c (arc_address_cost): Return 0 for cmem_address.
9390 (arc_encode_section_info): Set SYMBOL_FLAG_CMEM where indicated.
9391 * config/arc/arc.opt (mcmem): New option.
9392 * config/arc/arc.md (*extendqihi2_i): Add r/Uex alternative,
9393 supply length for r/m alternative.
9394 (*extendqisi2_ac): Likewise.
9395 (*extendhisi2_i): Add r/Uex alternative, supply length for r/m and
9396 r/Uex alternative.
9397 (movqi_insn): Add r/Ucm and Ucm/?Rac alternatives.
9398 (movhi_insn): Likewise.
9399 (movsi_insn): Add r/Ucm,Ucm/w alternatives.
9400 (*zero_extendqihi2_i): Add r/Ucm alternative.
9401 (*zero_extendqisi2_ac): Likewise.
9402 (*zero_extendhisi2_i): Likewise.
9403 * config/arc/constraints.md (Uex): New memory constraint.
9404 (Ucm): New define_constraint.
9405 * config/arc/predicates.md (long_immediate_loadstore_operand):
9406 Return 0 for MEM with cmem_address address.
9407 (cmem_address_0): New predicates.
9408 (cmem_address_1): Likewise.
9409 (cmem_address_2): Likewise.
9410 (cmem_address): Likewise.
9411
9412 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
9413
9414 * config/rs6000/rs6000.c (machine_function): Rename
9415 insn_chain_scanned_p to spe_insn_chain_scanned_p.
9416 (rs6000_stack_info): Adjust.
9417
9418 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
9419 Andrew Burgess <andrew.burgess@embecosm.com>
9420
9421 * config/arc/constraints.md (Usd): Convert to define_constraint.
9422 (Us<): Likewise.
9423 (Us>): Likewise.
9424
9425 2016-04-28 Jakub Jelinek <jakub@redhat.com>
9426
9427 PR target/70821
9428 * config/i386/sync.md (define_peephole2 *atomic_fetch_add_cmp<mode>):
9429 Add new peephole2 where the first insn is *mov<mode>_or instead of
9430 *mov<mode>_internal.
9431
9432 2016-04-28 Segher Boesssenkool <segher@kernel.crashing.org>
9433
9434 * tracer.c (bb_seen): Make static.
9435
9436 2016-04-28 Andrew Burgess <andrew.burgess@embecosm.com>
9437
9438 * common/config/arc/arc-common.c (arc_handle_option): Add NPS400
9439 support, setup defaults.
9440 * config/arc/arc-opts.h (enum processor_type): Add NPS400.
9441 * config/arc/arc.c (arc_init): Add NPS400 support.
9442 * config/arc/arc.h (CPP_SPEC): Add NPS400 defines.
9443 (TARGET_ARC700): NPS400 is also an ARC700.
9444 * config/arc/arc.opt: Add NPS400 options to -mcpu=.
9445
9446 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
9447
9448 PR target/70668
9449 * config/nds32/nds32.md (casesi): Don't access the operands array
9450 out of bounds.
9451
9452 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
9453
9454 * config/i386/i386.md (zeroing peephole2): Use general_reg_operand.
9455 (or $-1,reg peephole2): Ditto.
9456 (strict_low_part zeroing peephole2): Use SWI12 mode iterator.
9457
9458 2016-04-28 Markus Trippelsdorf <markus@trippelsdorf.de>
9459
9460 * doc/extend.texi (Common Function Attributes) [optimize]:
9461 Discourage use of the optimize attribute.
9462
9463 2016-04-28 Bill Seurer <seurer@linux.vnet.ibm.com>
9464
9465 * config/rs6000/rs6000-builtin.def (vec_adde): Change vec_adde to a
9466 special case builtin.
9467 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
9468 ALTIVEC_BUILTIN_VEC_ADDE.
9469 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
9470 support for ALTIVEC_BUILTIN_VEC_ADDE.
9471 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
9472 for __builtin_vec_adde.
9473
9474 2016-04-28 Jakub Jelinek <jakub@redhat.com>
9475
9476 * config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
9477 * config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise.
9478
9479 2016-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9480
9481 PR testsuite/70595
9482 * doc/sourcebuild.texi (Effective-Target Keywords, Other
9483 attributes): Document cilkplus_runtime.
9484
9485 2016-04-28 Martin Jambor <mjambor@suse.cz>
9486
9487 * tree-cfg.c (verify_expr): Verify that local declarations belong to
9488 this function. Call verify_expr on MEM_REFs and bases of other
9489 handled_components.
9490
9491 2016-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9492
9493 * internal-fn.c (expand_arith_overflow): Convert preprocessor check
9494 for WORD_REGISTER_OPERATIONS to runtime check.
9495
9496 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
9497
9498 * config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.
9499
9500 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
9501
9502 * config/arc/arc.c (arc_process_double_reg_moves): Fix for
9503 big-endian compilation.
9504 * config/arc/arc.md (addf3): Likewise.
9505 (subdf3): Likewise.
9506 (muldf3): Likewise.
9507
9508 2016-04-28 Richard Biener <rguenther@suse.de>
9509
9510 PR tree-optimization/70840
9511 * match.pd: powi(-x, y) and powi(|x|,y) -> powi(x,y) if y is even;
9512 Fix pow(copysign(x, y), z) -> pow(x, z) and add powi variant;
9513 Mark x * pow(x,c) -> pow(x,c+1) commutative.
9514 Add powi(x,y) * powi(z,y) -> powi(x*z,y).
9515
9516 2015-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9517
9518 * config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
9519 and explain why in a comment.
9520
9521 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
9522
9523 * config/arc/arc.md (cpu_facility): Add fpx variant.
9524 (subdf3): Prohibit use reverse sub when assist operations option
9525 is enabled.
9526 * config/arc/fpx.md (subdf3_insn, *dsubh_peep2_insn): Allow drsub
9527 instructions only when FPX is enabled.
9528 * testsuite/gcc.target/arc/trsub.c: New test.
9529
9530 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
9531
9532 * config/i386/i386.md (*fop_<mode>_1_mixed): Do not check for
9533 mult_operator when calculating "type" attribute.
9534 (*fop_<mode>_1_i387): Ditto.
9535 (*fop_xf_1_i387): Ditto.
9536 (x87 stack loads peephole2): Add "reg = op (mem, reg)" peephole2.
9537 Use std::swap to swap operands. Use RTL expressions to generate
9538 converted pattern.
9539
9540 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
9541 Joern Rennecke <joern.rennecke@embecosm.com>
9542
9543 * config/arc/arc-protos.h (arc_legitimize_pic_address): Remove
9544 declaration.
9545 (emit_pic_move): Remove.
9546 (arc_eh_uses, insn_is_tls_gd_dispatch): Declare.
9547 * config/arc/arc.c (emit_pic_move): Removed.
9548 (TARGET_HAVE_TLS): Define.
9549 (arc_conditional_register_usage): Test for arc_tp_regno.
9550 (arc_print_operand, arc_print_operand_address): Handle TLS
9551 unspecs.
9552 (arc_needs_pcl_p): New function.
9553 (arc_legitimate_pc_offset_p): Use arc_needs_pcl_p.
9554 (arc_legitimate_pic_addr_p): Handle TLS unspecs.
9555 (arc_raw_symbolic_reference_mentioned_p): Likewise.
9556 (arc_get_tp, arc_emit_call_tls_get_addr): New function.
9557 (arc_legitimize_tls_address): Likewise.
9558 (DTPOFF_ZERO_SYM): Define.
9559 (arc_legitimize_pic_address): Make it static, handle TLS cases.
9560 (arc_output_pic_addr_const): Print TLS unspecs.
9561 (prepare_pic_move): New function, replaces emit_pic_move.
9562 (arc_legitimate_constant_p): Handle TLS unspecs.
9563 (arc_legitimate_address_p): Likewise.
9564 (arc_rewrite_small_data_p): Use assert for TLS constants.
9565 (prepare_move_operands): Use prepare_pic_move.
9566 (arc_legitimize_address): Legitimize tls addresses.
9567 (arc_epilogue_uses): Check for arc_tp_regno.
9568 (arc_eh_uses, insn_is_tls_gd_dispatch): New function.
9569 * config/arc/arc.h [DEFAULT_LIBC != LIBC_UCLIBC] (EXTRA_SPECS):
9570 Define.
9571 [DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC):
9572 Likewise.
9573 [DEFAULT_LIBC != LIBC_UCLIBC] (STARTFILE_SPEC): Add
9574 %(arc_tls_extra_start_spec).
9575 (TARGET_CPU_CPP_BUILTINS): Define __ARC_TLS_REGNO__.
9576 (REGNO_OK_FOR_BASE_P): Check for arc_tp_regno.
9577 (EH_USES): Define.
9578 (INSN_REFERENCES_ARE_DELAYED): Use insn_is_tls_gd_dispatch.
9579 * config/arc/arc.md (UNSPEC_TLS_GD, UNSPEC_TLS_LD, UNSPEC_TLS_IE)
9580 (UNSPEC_TLS_OFF): Add.
9581 (R10_REG): Define.
9582 (tls_load_tp_soft, tls_gd_load, tls_gd_get_addr, tls_gd_dispatch)
9583 (get_thread_pointersi): New patterns.
9584 * config/arc/arc.opt (mtp-regno): New option.
9585 * config/arc/predicates.md (move_src_operand): Handle TLS symbols.
9586 (move_dest_operand): Likewise.
9587 * configure: Regenerate.
9588 * configure.ac: Add arc*-*-* case to test for tls.
9589 * doc/invoke.texi (ARC options): Document mtp-regno.
9590
9591 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
9592
9593 * config/arc/arc.c (arc_vector_mode_supported_p): Add support for
9594 the new ARC HS SIMD instructions.
9595 (arc_preferred_simd_mode): New function.
9596 (arc_autovectorize_vector_sizes): Likewise.
9597 (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
9598 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
9599 (arc_init_reg_tables): Accept new ARC HS SIMD modes.
9600 (arc_init_builtins): Add new SIMD builtin types.
9601 (arc_split_move): Handle 64 bit vector moves.
9602 * config/arc/arc.h (TARGET_PLUS_DMPY, TARGET_PLUS_MACD)
9603 (TARGET_PLUS_QMACW): Define.
9604 * config/arc/builtins.def (QMACH, QMACHU, QMPYH, QMPYHU, DMACH)
9605 (DMACHU, DMPYH, DMPYHU, DMACWH, DMACWHU, VMAC2H, VMAC2HU, VMPY2H)
9606 (VMPY2HU, VADDSUB2H, VSUBADD2H, VADDSUB, VSUBADD, VADDSUB4H)
9607 (VSUBADD4H): New builtins.
9608 * config/arc/simdext.md: Add new ARC HS SIMD instructions.
9609 * testsuite/gcc.target/arc/builtin_simdarc.c: New file.
9610
9611 2016-04-28 Eduard Sanou <dhole@openmailbox.org>
9612 Matthias Klose <doko@debian.org>
9613
9614 * doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable.
9615
9616 2016-04-28 Richard Biener <rguenther@suse.de>
9617
9618 PR middle-end/70777
9619 * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
9620 canonicalization.
9621
9622 2016-04-28 Oleg Endo <olegendo@gcc.gnu.org>
9623
9624 * common/config/sh/sh-common.c: Remove SH5 support.
9625 * config/sh/constraints.md: Likewise.
9626 * config/sh/config/sh/elf.h: Likewise.
9627 * config/sh/linux.h: Likewise.
9628 * config/sh/netbsd-elf.h: Likewise.
9629 * config/sh/predicates.md: Likewise.
9630 * config/sh/sh-c.c: Likewise.
9631 * config/sh/sh-protos.h: Likewise.
9632 * config/sh/sh.c: Likewise.
9633 * config/sh/sh.h: Likewise.
9634 * config/sh/sh.md: Likewise.
9635 * config/sh/sh.opt: Likewise.
9636 * config/sh/sync.md: Likewise.
9637 * config/sh/sh64.h: Delete.
9638 * config/sh/shmedia.h: Likewise.
9639 * config/sh/shmedia.md: Likewise.
9640 * config/sh/sshmedia.h: Likewise.
9641 * config/sh/t-netbsd-sh5-64: Likewise.
9642 * config/sh/t-sh64: Likewise.
9643 * config/sh/ushmedia.h: Likewise.
9644
9645 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
9646
9647 * config/i386/i386.md (sign_extend to memory peephole2s): Use
9648 general_reg_operand instead of register_operand predicate.
9649
9650 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
9651
9652 * params.def (MIN_PARTITION_SIZE): Set default value to 10000.
9653
9654 2016-04-27 Marc Glisse <marc.glisse@inria.fr>
9655
9656 * match.pd (A - B > A, A + B < A): New transformations.
9657
9658 2016-04-27 Patrick Palka <ppalka@gcc.gnu.org>
9659
9660 * genattrtab.c (write_test_expr): New parameter EMIT_PARENS
9661 which defaults to true. Emit an outer pair of parentheses only if
9662 EMIT_PARENS. When continuing a chain of && or || (or & or |),
9663 don't emit parentheses for the right-hand operand.
9664
9665 2016-04-27 Jeff Law <law@redhat.com>
9666
9667 * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.
9668
9669 2016-04-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9670
9671 * config/rs6000/altivec.md (altivec_lvx_<mode>): Remove.
9672 (altivec_lvx_<mode>_internal): Document.
9673 (altivec_lvx_<mode>_2op): New define_insn.
9674 (altivec_lvx_<mode>_1op): Likewise.
9675 (altivec_lvx_<mode>_2op_si): Likewise.
9676 (altivec_lvx_<mode>_1op_si): Likewise.
9677 (altivec_stvx_<mode>): Remove.
9678 (altivec_stvx_<mode>_internal): Document.
9679 (altivec_stvx_<mode>_2op): New define_insn.
9680 (altivec_stvx_<mode>_1op): Likewise.
9681 (altivec_stvx_<mode>_2op_si): Likewise.
9682 (altivec_stvx_<mode>_1op_si): Likewise.
9683 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
9684 Expand vec_ld and vec_st during parsing.
9685 * config/rs6000/rs6000.c (altivec_expand_lvx_be): Commentary
9686 changes.
9687 (altivec_expand_stvx_be): Likewise.
9688 (altivec_expand_lv_builtin): Expand lvx built-ins to expose the
9689 address-masking behavior in RTL.
9690 (altivec_expand_stv_builtin): Expand stvx built-ins to expose the
9691 address-masking behavior in RTL.
9692 (altivec_expand_builtin): Change builtin code arguments for calls
9693 to altivec_expand_stv_builtin and altivec_expand_lv_builtin.
9694 (insn_is_swappable_p): Avoid incorrect swap optimization in the
9695 presence of lvx/stvx patterns.
9696 (alignment_with_canonical_addr): New function.
9697 (alignment_mask): Likewise.
9698 (find_alignment_op): Likewise.
9699 (recombine_lvx_pattern): Likewise.
9700 (recombine_stvx_pattern): Likewise.
9701 (recombine_lvx_stvx_patterns): Likewise.
9702 (rs6000_analyze_swaps): Perform a pre-pass to recognize lvx and
9703 stvx patterns from expand.
9704 * config/rs6000/vector.md (vector_altivec_load_<mode>): Use new
9705 expansions.
9706 (vector_altivec_store_<mode>): Likewise.
9707
9708 2016-04-26 Evandro Menezes <e.menezes@samsung.com>
9709
9710 * config/aarch64/aarch64.md
9711 (*movhf_aarch64): Add "movi %0, #0" to zero up register and
9712 remove the "fp" attributes.
9713 (*movsf_aarch64): Add "movi %0, #0" to zero up register and
9714 add the "simd" attributes.
9715 (*movdf_aarch64): Likewise.
9716 (*movtf_aarch64): Remove the "fp" attributes.
9717 * testsuite/gcc.target/aarch64/fmovf-zero-reg.c: Update accordingly.
9718 * testsuite/gcc.target/aarch64/fmovd-zero-reg.c: Likewise.
9719
9720 2016-04-27 David Malcolm <dmalcolm@redhat.com>
9721
9722 * emit-rtl.c (maybe_set_first_label_num): Strengthen param from
9723 rtx to rtx_code_label *.
9724 * rtl.h (maybe_set_first_label_num): Likewise.
9725
9726 2016-04-27 David Malcolm <dmalcolm@redhat.com>
9727
9728 * df-core.c (df_add_problem): Make the problem param be const.
9729 (df_remove_problem): Make local "problem" be const.
9730 * df-problems.c (problem_RD): Make const.
9731 (problem_LR): Likewise.
9732 (problem_LIVE): Likewise.
9733 (problem_MIR): Likewise.
9734 (problem_CHAIN): Likewise.
9735 (problem_WORD_LR): Likewise.
9736 (problem_NOTE): Likewise.
9737 (problem_MD): Likewise.
9738 * df-scan.c (problem_SCAN): Likewise.
9739 * df.h (struct df_problem): Make field "dependent_problem" be
9740 const.
9741 (struct dataflow): Likewise for field "problem".
9742 (df_add_problem): Make param const.
9743
9744 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
9745
9746 * config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when
9747 inter-unit moves to/from vector registers are enabled. Do not disable
9748 for TARGET_MMX.
9749
9750 2016-04-27 David Malcolm <dmalcolm@redhat.com>
9751
9752 * df.h (DF_SCAN, DF_LR, DF_LIVE, DF_RD, DF_CHAIN, DF_WORD_LR,
9753 DF_NOTE, DF_MD, DF_MIR, DF_LAST_PROBLEM_PLUS1): Convert from
9754 #define to...
9755 (enum df_problem_id): ...this new enum.
9756 (struct df_problem): Convert field "id" from "int" to
9757 enum df_problem_id.
9758
9759 2016-04-27 David Malcolm <dmalcolm@redhat.com>
9760
9761 * rtl.def: Update comment for "things in the instruction chain" to
9762 reflect the removal of the leading "i" field for INSN_UID in
9763 r210360. Fix bogus apostrophe.
9764
9765 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
9766
9767 * config/i386/i386.md
9768 (lea arith with mem operand + setcc peephole2): Set operator mode.
9769
9770 2016-04-27 H.J. Lu <hongjiu.lu@intel.com>
9771
9772 PR target/70155
9773 * config/i386/i386.c (scalar_to_vector_candidate_p): Renamed to ...
9774 (dimode_scalar_to_vector_candidate_p): This.
9775 (timode_scalar_to_vector_candidate_p): New function.
9776 (scalar_to_vector_candidate_p): Likewise.
9777 (timode_check_non_convertible_regs): Likewise.
9778 (timode_remove_non_convertible_regs): Likewise.
9779 (remove_non_convertible_regs): Likewise.
9780 (remove_non_convertible_regs): Renamed to ...
9781 (dimode_remove_non_convertible_regs): This.
9782 (scalar_chain::~scalar_chain): Make it virtual.
9783 (scalar_chain::compute_convert_gain): Make it pure virtual.
9784 (scalar_chain::mark_dual_mode_def): Likewise.
9785 (scalar_chain::convert_insn): Likewise.
9786 (scalar_chain::convert_registers): Likewise.
9787 (scalar_chain::add_to_queue): Make it protected.
9788 (scalar_chain::emit_conversion_insns): Likewise.
9789 (scalar_chain::replace_with_subreg): Likewise.
9790 (scalar_chain::replace_with_subreg_in_insn): Likewise.
9791 (scalar_chain::convert_op): Likewise.
9792 (scalar_chain::convert_reg): Likewise.
9793 (scalar_chain::make_vector_copies): Likewise.
9794 (scalar_chain::convert_registers): New pure virtual function.
9795 (class dimode_scalar_chain): New class.
9796 (class timode_scalar_chain): Likewise.
9797 (scalar_chain::mark_dual_mode_def): Renamed to ...
9798 (dimode_scalar_chain::mark_dual_mode_def): This.
9799 (timode_scalar_chain::mark_dual_mode_def): New function.
9800 (timode_scalar_chain::convert_insn): Likewise.
9801 (dimode_scalar_chain::convert_registers): Likewise.
9802 (scalar_chain::compute_convert_gain): Renamed to ...
9803 (dimode_scalar_chain::compute_convert_gain): This.
9804 (scalar_chain::replace_with_subreg): Renamed to ...
9805 (dimode_scalar_chain::replace_with_subreg): This.
9806 (scalar_chain::replace_with_subreg_in_insn): Renamed to ...
9807 (dimode_scalar_chain::replace_with_subreg_in_insn): This.
9808 (scalar_chain::make_vector_copies): Renamed to ...
9809 (dimode_scalar_chain::make_vector_copies): This.
9810 (scalar_chain::convert_reg): Renamed to ...
9811 (dimode_scalar_chain::convert_reg ): This.
9812 (scalar_chain::convert_op): Renamed to ...
9813 (dimode_scalar_chain::convert_op): This.
9814 (scalar_chain::convert_insn): Renamed to ...
9815 (dimode_scalar_chain::convert_insn): This.
9816 (scalar_chain::convert): Call convert_registers.
9817 (convert_scalars_to_vector): Change to scalar_chain pointer to
9818 use timode_scalar_chain in 64-bit mode and dimode_scalar_chain
9819 in 32-bit mode. Delete scalar_chain pointer. Call
9820 free_dominance_info in 64-bit mode.
9821 (pass_stv::gate): Remove TARGET_64BIT check.
9822 (ix86_option_override): Put the 64-bit STV pass before the CSE
9823 pass.
9824
9825 2016-04-27 Pierre-Marie de Rodat <derodat@adacore.com>
9826
9827 * dwarf2out.h (struct dw_loc_descr_node): Remove the
9828 dw_loc_frame_offset field.
9829 * dwarf2out.c (new_loc_descr): Likewise.
9830 (resolve_args_picking_1): Turn the VISITED hash set into a
9831 FRAME_OFFSET hash map. Use it to associate a frame offset to
9832 visited nodes. Remove uses of the CHECKING_P macro.
9833 (resolve_args_picking): Update call to resolve_args_picking_1.
9834
9835 2016-04-27 Martin Liska <mliska@suse.cz>
9836
9837 * tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
9838 (free_loop_data): Release vuses of groups.
9839
9840 2016-04-27 Bin Cheng <bin.cheng@arm.com>
9841
9842 * tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use
9843 instead of redundant use_id and boolean have_use_for.
9844 (struct iv_use): Change sub_id into group_id. Remove field next.
9845 Move fields: related_cands, n_map_members, cost_map and selected
9846 to ...
9847 (struct iv_group): ... here. New structure.
9848 (struct iv_common_cand): Use structure declaration directly.
9849 (struct ivopts_data, iv_ca, iv_ca_delta): Rename fields.
9850 (MAX_CONSIDERED_USES): Rename macro to ...
9851 (MAX_CONSIDERED_GROUPS): ... here.
9852 (n_iv_uses, iv_use, n_iv_cands, iv_cand): Delete.
9853 (dump_iv, dump_use, dump_cand): Refactor format of dump information.
9854 (dump_uses): Rename to ...
9855 (dump_groups): ... here. Update all uses.
9856 (tree_ssa_iv_optimize_init, alloc_iv): Update all uses.
9857 (find_induction_variables): Refactor format of dump information.
9858 (record_sub_use): Delete.
9859 (record_use): Update all uses.
9860 (record_group): New function.
9861 (record_group_use, find_interesting_uses_op): Call above functions.
9862 Update all uses.
9863 (find_interesting_uses_cond): Ditto.
9864 (group_compare_offset): New function.
9865 (split_all_small_groups): Rename to ...
9866 (split_small_address_groups_p): ... here. Update all uses.
9867 (split_address_groups): Update all uses.
9868 (find_interesting_uses): Refactor format of dump information.
9869 (add_candidate_1): Update all uses. Remove redundant check on iv,
9870 base and step.
9871 (add_candidate, record_common_cand): Remove redundant assert.
9872 (add_iv_candidate_for_biv): Update use.
9873 (add_iv_candidate_derived_from_uses): Update all uses.
9874 (add_iv_candidate_for_groups, record_important_candidates): Ditto.
9875 (alloc_use_cost_map): Ditto.
9876 (set_use_iv_cost, get_use_iv_cost): Rename to ...
9877 (set_group_iv_cost, get_group_iv_cost): ... here. Update all uses.
9878 (determine_use_iv_cost_generic): Ditto.
9879 (determine_group_iv_cost_generic): Ditto.
9880 (determine_use_iv_cost_address): Ditto.
9881 (determine_group_iv_cost_address): Ditto.
9882 (determine_use_iv_cost_condition): Ditto.
9883 (determine_group_iv_cost_cond): Ditto.
9884 (determine_use_iv_cost): Ditto.
9885 (determine_group_iv_cost): Ditto.
9886 (set_autoinc_for_original_candidates): Update all uses.
9887 (find_iv_candidates): Update all uses. Refactor dump information.
9888 (determine_use_iv_costs): Ditto.
9889 (determine_iv_costs): Ditto.
9890 (iv_ca_cand_for_use): Rename to ...
9891 (iv_ca_cand_for_group): ... here. Update all uses.
9892 (iv_ca_add_use, iv_ca_add_group): Ditto.
9893 (iv_ca_set_cp, iv_ca_cost, iv_ca_delta_add): Update all uses.
9894 (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_delta_free): Ditto.
9895 (iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow): Ditto.
9896 (iv_ca_prune, cheaper_cost_with_cand, iv_ca_replace): Ditto.
9897 (try_add_cand_for, try_improve_iv_set, find_optimal_iv_set): Ditto.
9898 (create_new_iv, adjust_iv_update_pos): Ditto.
9899 (rewrite_use_address): Delete.
9900 (rewrite_use_address_1): Rename to ...
9901 (rewrite_use_address): ... here.
9902 (rewrite_use_compare): Update all uses.
9903 (rewrite_use): Delete.
9904 (rewrite_uses): Rename to ...
9905 (rewrite_groups): ... here. Update all uses.
9906 (remove_unused_ivs, free_loop_data): Update all uses.
9907 (tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize_loop): Ditto.
9908
9909 2016-04-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9910
9911 * rtlanal.c (nonzero_bits1): Convert preprocessor check
9912 for WORD_REGISTER_OPERATIONS to runtime check.
9913
9914 2016-04-27 Richard Biener <rguenther@suse.de>
9915
9916 PR ipa/70760
9917 * tree-ssa-structalias.c (find_func_aliases_for_call): Use
9918 aggregate_value_p to determine if a function result is
9919 returned by reference.
9920 (ipa_pta_execute): Functions having their address taken are
9921 not automatically nonlocal.
9922
9923 2016-04-27 Jakub Jelinek <jakub@redhat.com>
9924
9925 PR sanitizer/70683
9926 * tree-core.h (enum operand_equal_flag): Add OEP_NO_HASH_CHECK.
9927 * fold-const.c (operand_equal_p): If flag_checking and
9928 OEP_NO_HASH_CHECK is not set in flag, recurse with OEP_NO_HASH_CHECK
9929 and if it returns non-zero, assert iterative_hash_expr on both
9930 args is the same.
9931
9932 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
9933
9934 * doc/invoke.texi (-frename-registers): Also enabled at -Os.
9935
9936 2016-04-27 Nick Clifton <nickc@redhat.com>
9937
9938 PR middle-end/49889
9939 * varasm.c (merge_weak): Generate an error if an attempt is made
9940 to convert a non-weak static function into a weak, public function.
9941
9942 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
9943
9944 * params.def (MAX_PARTITION_SIZE): New param.
9945 * doc/invoke.texi: Document lto-max-partition.
9946
9947 2016-04-27 Richard Biener <rguenther@suse.de>
9948
9949 PR ipa/70785
9950 * tree-ssa-structalias.c (refered_from_nonlocal_fn): New
9951 function cummulating used_from_other_partition, externally_visible
9952 and force_output from aliases.
9953 (refered_from_nonlocal_var): Likewise.
9954 (ipa_pta_execute): Use call_for_symbol_and_aliases to cummulate
9955 node flags properly.
9956
9957 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
9958
9959 * doc/invoke.texi (Warning Options): Add -Wmemset-elt-size.
9960 (-Wmemset-elt-size): New item.
9961
9962 2016-04-27 Eric Botcazou <ebotcazou@adacore.com>
9963
9964 PR ada/70759
9965 * stor-layout.h (internal_reference_types): Delete.
9966 * stor-layout.c (reference_types_internal): Likewise.
9967 (internal_reference_types): Likewise.
9968 (layout_type) <REFERENCE_TYPE>: Adjust.
9969
9970 2016-04-27 Jakub Jelinek <jakub@redhat.com>
9971
9972 PR sanitizer/70683
9973 * tree.h (inchash::add_expr): Add FLAGS argument.
9974 * tree.c (inchash::add_expr): Likewise. If not OEP_ADDRESS_OF,
9975 use STRIP_NOPS first. For INTEGER_CST assert not OEP_ADDRESS_OF.
9976 For REAL_CST and !HONOR_SIGNED_ZEROS (t) hash +/- 0 the same.
9977 Formatting fix. Adjust recursive calls. For tcc_comparison,
9978 if swap_tree_comparison (code) is smaller than code, hash that
9979 and arguments in the other order. Hash CONVERT_EXPR the same
9980 as NOP_EXPR. For OEP_ADDRESS_OF hash MEM_REF with 0 offset
9981 of ADDR_EXPR of decl as the decl itself. Add or remove
9982 OEP_ADDRESS_OF from recursive flags as needed. For
9983 FMA_EXPR, WIDEN_MULT_{PLUS,MINUS}_EXPR hash the first two
9984 operands commutatively and only the third one normally.
9985 For internal CALL_EXPR hash in CALL_EXPR_IFN.
9986
9987 2016-04-27 Sebastian Huber <sebastian.huber@embedded-brains.de>
9988
9989 * config/rtems.h (LIB_SPEC): Add -latomic.
9990
9991 2016-04-27 Joel Sherrill <joel@rtems.org>
9992
9993 * config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
9994 xilink.ld and flags not relevant to RTEMS.
9995
9996 2016-04-26 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
9997
9998 * toplev.c (backend_init_target): Avoid calling init_reload when using
9999 LRA.
10000
10001 2016-04-26 Jakub Jelinek <jakub@redhat.com>
10002
10003 * reorg.c (try_merge_delay_insns): Declare i and j inside the
10004 for loops rather than one for the whole function.
10005
10006 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
10007
10008 * match.pd (X + CST CMP X): New transformation.
10009
10010 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
10011
10012 * genmatch.c (write_predicate): Add ATTRIBUTE_UNUSED.
10013 * fold-const.c (fold_binary_loc): Remove 2 transformations
10014 superseded by match.pd.
10015 * match.pd (x+x -> x*2): Generalize to integers.
10016
10017 2016-04-26 Bernd Schmidt <bschmidt@redhat.com>
10018
10019 * config/i386/i386.md (operation on memory peephole): Duplicate an
10020 existing peephole and adapt it to match lea rather than an operation
10021 that clobbers CC.
10022
10023 PR rtl-optimization/57193
10024 * opts.c (default_options_table): Add OPT_frename_registers at -O2
10025 and above.
10026 * doc/invoke.texi (-frename-registers, -O2): Update documentation.
10027
10028 2016-04-26 Bin Cheng <bin.cheng@arm.com>
10029
10030 * tree-if-conv.c (any_pred_load_store): New static variable.
10031 (if_convertible_gimple_assign_stmt_p): Remove parameter. Use
10032 any_pred_load_store instead of and_mask_load_store.
10033 (if_convertible_stmt_p, if_convertible_loop_p_1): Ditto.
10034 (if_convertible_loop_p, insert_gimplified_predicates): Ditto.
10035 (combine_blocks, tree_if_conversion): Ditto.
10036
10037 2016-04-26 Bin Cheng <bin.cheng@arm.com>
10038
10039 PR tree-optimization/70771
10040 PR tree-optimization/70775
10041 * tree-if-conv.c (if_convertible_phi_p): Remove check on special
10042 virtual PHI nodes. Delete parameter.
10043 (if_convertible_loop_p_1): Delete argument to above function.
10044 (predicate_all_scalar_phis): Delete code handling single-argument
10045 PHIs.
10046 (tree_if_conversion): Mark and update virtual SSA.
10047
10048 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10049
10050 PR target/61821
10051 * config/i386/i386.c (LARGECOMM_SECTION_ASM_OP): Define default.
10052 (x86_elf_aligned_common): Rename to ...
10053 (x86_elf_aligned_decl_common): ... this.
10054 Add decl arg. Switch to .lbss for largecomm object. Use
10055 LARGECOMM_SECTION_ASM_OP.
10056 * config/i386/i386-protos.h (x86_elf_aligned_common): Reflect
10057 renaming.
10058 * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_COMMON): Rename to ...
10059 (ASM_OUTPUT_ALIGNED_DECL_COMMON): ... this.
10060 Pass new decl arg.
10061 * config/i386/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
10062 [!USE_GAS] (LARGECOMM_SECTION_ASM_OP): Define.
10063
10064 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10065
10066 PR target/59407
10067 * config/i386/i386.c (SECTION_LARGE): Define.
10068 (x86_64_elf_select_section): Set it for large data/bss sections.
10069 Only clear SECTION_WRITE for .lrodata.
10070 (x86_64_elf_section_type_flags): Set SECTION_LARGE for large
10071 data/bss sections.
10072 * config/i386/sol2.h (MACH_DEP_SECTION_ASM_FLAG): Define.
10073 * varasm.c (default_elf_asm_named_section): Grow flagchars.
10074 [MACH_DEP_SECTION_ASM_FLAG] Emit MACH_DEP_SECTION_ASM_FLAG for
10075 SECTION_MACH_DEP.
10076 * doc/tm.texi.in (Sections, MACH_DEP_SECTION_ASM_FLAG): Describe.
10077 * doc/tm.texi: Regenerate.
10078
10079 2016-04-26 Jakub Jelinek <jakub@redhat.com>
10080
10081 PR bootstrap/70704
10082 * configure.ac (--enable-checking): Document extra flag, for
10083 non-release builds default to --enable-checking=yes,extra.
10084 If misc checking and extra checking, define CHECKING_P to 2 instead
10085 of 1.
10086 * common.opt (fchecking=): Add.
10087 * doc/invoke.texi (-fchecking=): Document.
10088 * doc/install.texi: Document --enable-checking changes.
10089 * configure: Regenerated.
10090 * config.in: Regenerated.
10091
10092 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
10093
10094 * config/i386/i386.md (*movxi_internal_avx512f): Use insn type
10095 attribute instead of which_alternative.
10096 * config/i386/sse.md (*mov<mode>_internal): Ditto.
10097 Use EXT_REX_SSE_REG_P where appropriate.
10098
10099 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
10100
10101 * config/i386/predicates.md (const0_operand): Do not match
10102 const_wide_int code.
10103 (const1_operand): Ditto.
10104
10105 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
10106
10107 * config/i386/i386.md (*movoi_internal_avx): Set mode attribute to XI
10108 for SSE constm1 operands and TARGET_AVX512VL.
10109 (*movti_internal): Ditto.
10110 (*mov<mode>_or): Use constm1_operand predicate.
10111 * config/i386/sse.md (*mov<mode>_internal): Set mode attribute to XI
10112 for SSE vector_all_ones operands and TARGET_AVX512VL.
10113 * config/i386/predicates.md (constm1_operand): New predicate.
10114 * config/i386/i386.c (standard_sse_constant_opcode): Simplify
10115 emission of constant -1 load.
10116
10117 2016-04-25 Jason Merrill <jason@redhat.com>
10118
10119 * gdbinit.in: Skip is-a.h.
10120
10121 * attribs.c (register_scoped_attributes): Fix logic.
10122 * attribs.h: Declare register_scoped_attributes.
10123
10124 2016-04-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10125
10126 * config/rs6000/rs6000-builtin.def: Correct pasto error for
10127 stxvd2x and stxvw4x built-in functions.
10128
10129 2016-04-25 DJ Delorie <dj@redhat.com>
10130
10131 * config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
10132 (ashrhi3): Likewise.
10133 (lshrhi3): Likewise.
10134
10135 2016-04-25 Richard Biener <rguenther@suse.de>
10136
10137 PR tree-optimization/70780
10138 * tree-ssa-pre.c (compute_antic_aux): Also return true if the block
10139 wasn't visited yet.
10140 (compute_antic): Mark blocks with abnormal preds as visited as
10141 they have a final empty antic-in solution already.
10142
10143 2016-04-25 Michael Collison <michael.collison@linaro.org>
10144
10145 * ChangeLog(2016-04-25): Fix ChangeLog formatting.
10146
10147 2016-04-25 Michael Collison <michael.collison@linaro.org>
10148
10149 * config/arm/neon.md (widen_<us>sum<mode>): New patterns where
10150 mode is VQI to improve mixed mode vectorization.
10151 * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3): New
10152 define_insn to match low half of signed vaddw.
10153 * config/arm/neon.md (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): New
10154 define_insn to match high half of signed vaddw.
10155 * config/arm/neon.md (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): New
10156 define_insn to match low half of unsigned vaddw.
10157 * config/arm/neon.md (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): New
10158 define_insn to match high half of unsigned vaddw.
10159 * config/arm/arm.c (arm_simd_vect_par_cnst_half): New function.
10160 (arm_simd_check_vect_par_cnst_half_p): Likewise.
10161 * config/arm/arm-protos.h (arm_simd_vect_par_cnst_half): Prototype
10162 for new function.
10163 (arm_simd_check_vect_par_cnst_half_p): Likewise.
10164 * config/arm/predicates.md (vect_par_constant_high): Support
10165 big endian and simplify by calling
10166 arm_simd_check_vect_par_cnst_half
10167 (vect_par_constant_low): Likewise.
10168
10169 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
10170
10171 * config/i386/i386.md (*lea<mode>_general_4): Use const_0_to_3_operand
10172 predicate for operand 2.
10173
10174 2016-04-24 Uros Bizjak <ubizjak@gmail.com>
10175 H.J. Lu <hongjiu.lu@intel.com>
10176
10177 * config/i386/i386-protos.h (standard_sse_constant_p): Add
10178 machine_mode argument.
10179 * config/i386/i386.c (standard_sse_constant_p): Return 2 for
10180 constm1_rtx operands. For VOIDmode constants, get mode from
10181 pred_mode. Check mode size if the mode is supported by ABI.
10182 (standard_sse_constant_opcode): Do not use standard_constant_p.
10183 Strictly check ABI support for all-ones operands.
10184 (ix86_legitimate_constant_p): Handle TImode, OImode and XImode
10185 immediates. Update calls to standard_sse_constant_p.
10186 (ix86_expand_vector_move): Update calls to standard_sse_constant_p.
10187 (ix86_rtx_costs): Ditto.
10188 * config/i386/i386.md (*movxi_internal_avx512f): Use
10189 nonimmediate_or_sse_const_operand instead of vector_move_operand.
10190 Use (v,BC) alternative instead of (v,C). Use register_operand
10191 checks instead of MEM_P.
10192 (*movoi_internal_avx): Use nonimmediate_or_sse_const_operand instead
10193 of vector_move_operand. Add (v,BC) alternative and corresponding avx2
10194 isa attribute. Use register_operand checks instead of MEM_P.
10195 (*movti_internal): Use nonimmediate_or_sse_const_operand for
10196 TARGET_SSE. Improve TARGET_SSE insn constraint. Add (v,BC)
10197 alternative and corresponding sse2 isa attribute.
10198 (*movtf_internal, *movdf_internal, *movsf_interal): Update calls
10199 to standard_sse_constant_p.
10200 (FP constant splitters): Ditto.
10201 * config/i386/constraints.md (BC): Do not use standard_sse_constant_p.
10202 (C): Ditto.
10203 * config/i386/predicates.md (constm1_operand): Remove.
10204 (nonimmediate_or_sse_const_operand): Rewrite using RTX.
10205 * config/i386/sse.md (*<avx512>_cvtmask2<ssemodesuffix><mode>): Use
10206 vector_all_ones_operand instead of constm1_operand.
10207
10208 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10209
10210 * print-rtl.c (print_rtx_insn_vec): New function.
10211 * print-rtl.h: New prototype.
10212 * store-motion.c (struct st_expr): Make avail_stores a vector.
10213 (st_expr_entry): Adjust.
10214 (free_st_expr_entry): Likewise.
10215 (print_store_motion_mems): Likewise.
10216 (find_moveable_store): Likewise.
10217 (compute_store_table): Likewise.
10218 (delete_store): Likewise.
10219 (build_store_vectors): Likewise.
10220
10221 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10222
10223 * reorg.c (try_merge_delay_insns): Make merged_insns a vector.
10224
10225 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10226
10227 * vec.h (vec_safe_contains): New function.
10228 (vec::contains): Likewise.
10229 (vec::begin): Likewise.
10230 (vec::end): Likewise.
10231
10232 2016-04-23 Jakub Jelinek <jakub@redhat.com>
10233
10234 PR sanitizer/70712
10235 * cfgexpand.c (expand_stack_vars): Fix typo.
10236
10237 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
10238
10239 * system.h (list, map, set, vector): Include conditionally.
10240 * auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define.
10241 * graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define.
10242 * ipa-icf.c (INCLUDE_LIST): Define.
10243 * config/aarch64/cortex-a57-fma-steering.c (INCLUDE_LIST): Define.
10244 * config/sh/sh.c (INCLUDE_VECTOR): Define.
10245 * config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define.
10246 (INCLUDE_LIST, INCLUDE_VECTOR): Define.
10247 * cp/logic.cc (INCLUDE_LIST): Define.
10248 * fortran/trans-common.c (INCLUDE_MAP): Define.
10249
10250 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
10251
10252 * auto-profile.c: Remove <string.h> include.
10253 * ipa-icf-gimple.c: Remove <list> include.
10254 * diagnostic.c: Remove <new> include.
10255 * genmatch.c: Likewise.
10256 * pretty-print.c: Likewise.
10257 * toplev.c: Likewise
10258 * c/c-objc-common.c: Likewise.
10259 * cp/error.c: Likewise.
10260 * fortran/error.c: Likewise.
10261
10262 2016-04-22 Richard Biener <rguenther@suse.de>
10263
10264 * lto-streamer-in.c (input_ssa_names): Do not allocate
10265 GIMPLE_NOP for all SSA names.
10266 * lto-streamer-out.c (output_ssa_names): Do not output
10267 SSA names that should have been released.
10268
10269 2016-04-22 Richard Biener <rguenther@suse.de>
10270
10271 PR tree-optimization/70740
10272 * tree-ssa-phiprop.c (propagate_with_phi): Handle inserted
10273 VDEF.
10274
10275 2016-04-21 H.J. Lu <hongjiu.lu@intel.com>
10276
10277 PR target/70750
10278 * config/i386/predicates.md (call_insn_operand): Replace
10279 sibcall_memory_operand with memory_operand.
10280
10281 2016-04-21 Patrick Palka <ppalka@gcc.gnu.org>
10282
10283 * tree-vrp.c (register_edge_assert_for_2): Remove redundant
10284 has_single_use() tests.
10285 (register_edge_assert_for_1): Likewise.
10286 (find_assert_locations_1): Check the liveness bitmap instead of
10287 checking has_single_use().
10288
10289 2016-04-21 Kirill Yukhin <kirill.yukhin@intel.com>
10290
10291 PR target/70728
10292 * config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
10293 Extract AVX-512BW constraint from AVX.
10294
10295 2016-04-21 Richard Biener <rguenther@suse.de>
10296
10297 PR tree-optimization/70725
10298 * tree-if-conv.c (if_convertible_phi_p): Adjust guard
10299 for phi_convertible_by_degenerating_args.
10300 (predicate_all_scalar_phis): Handle single-argument PHIs.
10301
10302 2016-04-21 Richard Biener <rguenther@suse.de>
10303
10304 PR middle-end/70747
10305 * fold-const.c (fold_comparison): Return properly typed
10306 constant boolean.
10307
10308 2016-04-21 Bin Cheng <bin.cheng@arm.com>
10309
10310 PR tree-optimization/70715
10311 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
10312 after expanding BASE using expand_simple_operations.
10313
10314 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
10315
10316 * match.pd (min(-x, -y), max(-x, -y), min(~x, ~y), max(~x, ~y)):
10317 New transformations.
10318
10319 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
10320
10321 * match.pd (min(int_max, x), max(int_min, x)): New transformations.
10322
10323 2016-04-20 Jan Hubicka <jh@suse.cz>
10324
10325 * ipa-inline.c (can_inline_edge_p): Pass caller info to
10326 ultiimate_alias_target.
10327 (update_callee_keys): Likewise.
10328 (lookup_recursive_calls): Likewise.
10329 (speculation_useful_p): Likewise.
10330
10331 2016-04-20 Jan Hubicka <jh@suse.cz>
10332
10333 PR ipa/70018
10334 * cgraph.c (cgraph_set_nothrow_flag_1): Rename to ...
10335 (set_nothrow_flag_1): ... this; handle interposition correctly;
10336 recurse on aliases and thunks.
10337 (cgraph_node::set_nothrow_flag): New.
10338 * ipa-pure-const.c (ignore_edge_for_nothrow): Ignore calls to
10339 functions compiled with non-call exceptions that binds to current
10340 def.
10341 (propagate_nothrow): Be safe WRT interposition.
10342 * cgraph.h (set_nothrow_flag): Update prototype.
10343
10344 2016-04-18 Jan Hubicka <jh@suse.cz>
10345
10346 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
10347 max_loop_iterations_int.
10348 (tree_unswitch_outer_loop): Likewise.
10349
10350 2016-04-20 Bin Cheng <bin.cheng@arm.com>
10351
10352 PR tree-optimization/69489
10353 * tree-if-conv.c (phi_convertible_by_degenerating_args): New.
10354 (if_convertible_phi_p): Call phi_convertible_by_degenerating_args.
10355 Revise dump message.
10356 (if_convertible_bb_p): Remove check on edge count of basic block's
10357 predecessors.
10358
10359 2016-04-20 Bin Cheng <bin.cheng@arm.com>
10360
10361 PR tree-optimization/56625
10362 PR tree-optimization/69489
10363 * tree-data-ref.h (DR_INNERMOST): New macro.
10364 * tree-if-conv.c (innermost_loop_behavior_hash): New class for
10365 hashing struct innermost_loop_behavior.
10366 (ref_DR_map): Remove.
10367 (innermost_DR_map): New map.
10368 (baseref_DR_map): Revise comment.
10369 (hash_memrefs_baserefs_and_store_DRs_read_written_info): Store DR
10370 to innermost_DR_map accroding to its innermost loop behavior.
10371 (ifcvt_memrefs_wont_trap): Get DR from innermost_DR_map according
10372 to its innermost loop behavior.
10373 (if_convertible_loop_p_1): Remove intialization for ref_DR_map.
10374 Add initialization for innermost_DR_map. Record memory reference
10375 in DR_BASE_ADDRESS if the reference is compound one or it doesn't
10376 have innermost loop behavior.
10377 (if_convertible_loop_p): Remove release for ref_DR_map. Release
10378 innermost_DR_map.
10379
10380 2016-04-20 Uros Bizjak <ubizjak@gmail.com>
10381
10382 * config/i386/i386.md (*lea<mode>_general_1): Rename from
10383 *lea_general_1. Use explicit SWI12 mode interator.
10384 (*lea<mode>_general_2): Rename from *lea_general_2.
10385 Use explicit SWI12 mode interator.
10386 (*lea<mode>_general_3): Rename from *lea_general_3.
10387 Use explicit SWI12 mode interator.
10388 (*lea<SWI12:mode>_general_4): Split from *lea_general_4.
10389 Use explicit SWI12 mode interator.
10390 (*lea<SWI48:mode>_general_4): Split from *lea_general_4.
10391 Use explicit SWI48 mode interator.
10392
10393 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
10394
10395 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
10396 Short-cut unaligned load and store cases. Handle all integer
10397 vector modes.
10398 (ix86_expand_vector_move_misalign): Short-cut unaligned load
10399 and store cases. Call ix86_avx256_split_vector_move_misalign
10400 directly without checking mode class.
10401
10402 2016-04-20 Andrew Pinski <apinski@cavium.com>
10403 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10404
10405 PR target/64971
10406 * config/aarch64/aarch64.md (sibcall): Force call
10407 address to be DImode for ILP32.
10408 (sibcall_value): Likewise.
10409
10410 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
10411
10412 * doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.
10413
10414 2016-04-20 Richard Biener <rguenther@suse.de>
10415
10416 * gimple-match.h (maybe_build_generic_op): Adjust prototype.
10417 * gimple-match-head.c (maybe_build_generic_op): Pass all ops
10418 by reference, clear op1 and op2 when GENERICizing BIT_FIELD_REF.
10419 (maybe_push_res_to_seq): Adjust.
10420 * gimple-fold.c (maybe_build_generic_op): Likewise.
10421
10422 2016-04-20 Marek Polacek <polacek@redhat.com>
10423
10424 * tree-if-conv.c (is_false_predicate): For NULL_TREE return false
10425 rather than true.
10426
10427 2016-04-20 Ilya Enkovich <ilya.enkovich@intel.com>
10428
10429 * config/i386/sse.md (vec_unpacks_lo_hi): Always
10430 use kmovw to support AVX512F target.
10431
10432 2016-04-20 Bin Cheng <bin.cheng@arm.com>
10433
10434 * tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
10435
10436 2016-04-20 Marek Polacek <polacek@redhat.com>
10437
10438 PR tree-optimization/70725
10439 * tree-if-conv.c (is_false_predicate): New function.
10440 (predicate_mem_writes): Use it.
10441
10442 2016-04-20 Richard Biener <rguenther@suse.de>
10443
10444 PR tree-optimization/70726
10445 * tree-vect-stmts.c (vectorizable_shift): Do not use scalar
10446 shift amounts from a pattern stmt operand.
10447
10448 2016-04-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10449
10450 PR target/70674
10451 * config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new
10452 stack_restore_from_fpr pattern when restoring r15.
10453 (s390_optimize_prologue): Strip away the memory barrier in the
10454 parallel when trying to get rid of restore insns.
10455 * config/s390/s390.md ("stack_restore_from_fpr"): New insn
10456 definition for loading the stack pointer from an FPR. Compared to
10457 the normal move insn this pattern includes a full memory barrier.
10458
10459 2016-04-19 Jakub Jelinek <jakub@redhat.com>
10460
10461 PR middle-end/70680
10462 * gimplify.c (gimplify_omp_for): Call omp_notice_variable for
10463 implicitly linear or lastprivate iterator on the outer context.
10464
10465 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
10466
10467 * config/i386/i386.c (ix86_legitimate_combined_insn): Remove
10468 alignment check.
10469 * config/i386/i386.md (ssememalign): Removed.
10470 * config/i386/sse.md: Remove ssememalign attribute from patterns.
10471
10472 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
10473
10474 PR target/69201
10475 * config/i386/avx512bwintrin.h (_mm512_mask_loadu_epi16): Pass
10476 const short * to __builtin_ia32_loaddquhi512_mask.
10477 (_mm512_maskz_loadu_epi16): Likewise.
10478 (_mm512_mask_storeu_epi16): Pass short * to
10479 __builtin_ia32_storedquhi512_mask.
10480 (_mm512_mask_loadu_epi8): Pass const char * to
10481 __builtin_ia32_loaddquqi512_mask.
10482 (_mm512_maskz_loadu_epi8): Likewise.
10483 (_mm512_mask_storeu_epi8): Pass char * to
10484 __builtin_ia32_storedquqi512_mask.
10485 * config/i386/avx512fintrin.h (_mm512_loadu_pd): Pass
10486 const double * to __builtin_ia32_loadupd512_mask.
10487 (_mm512_mask_loadu_pd): Likewise.
10488 (_mm512_maskz_loadu_pd): Likewise.
10489 (_mm512_storeu_pd): Pass double * to
10490 __builtin_ia32_storeupd512_mask.
10491 (_mm512_mask_storeu_pd): Likewise.
10492 (_mm512_loadu_ps): Pass const float * to
10493 __builtin_ia32_loadups512_mask.
10494 (_mm512_mask_loadu_ps): Likewise.
10495 (_mm512_maskz_loadu_ps): Likewise.
10496 (_mm512_storeu_ps): Pass float * to
10497 __builtin_ia32_storeups512_mask.
10498 (_mm512_mask_storeu_ps): Likewise.
10499 (_mm512_mask_loadu_epi64): Pass const long long * to
10500 __builtin_ia32_loaddqudi512_mask.
10501 (_mm512_maskz_loadu_epi64): Likewise.
10502 (_mm512_mask_storeu_epi64): Pass long long *
10503 to __builtin_ia32_storedqudi512_mask.
10504 (_mm512_loadu_si512): Pass const int * to
10505 __builtin_ia32_loaddqusi512_mask.
10506 (_mm512_mask_loadu_epi32): Likewise.
10507 (_mm512_maskz_loadu_epi32): Likewise.
10508 (_mm512_storeu_si512): Pass int * to
10509 __builtin_ia32_storedqusi512_mask.
10510 (_mm512_mask_storeu_epi32): Likewise.
10511 * config/i386/avx512vlbwintrin.h (_mm256_mask_storeu_epi8): Pass
10512 char * to __builtin_ia32_storedquqi256_mask.
10513 (_mm_mask_storeu_epi8): Likewise.
10514 (_mm256_mask_loadu_epi16): Pass const short * to
10515 __builtin_ia32_loaddquhi256_mask.
10516 (_mm256_maskz_loadu_epi16): Likewise.
10517 (_mm_mask_loadu_epi16): Pass const short * to
10518 __builtin_ia32_loaddquhi128_mask.
10519 (_mm_maskz_loadu_epi16): Likewise.
10520 (_mm256_mask_loadu_epi8): Pass const char * to
10521 __builtin_ia32_loaddquqi256_mask.
10522 (_mm256_maskz_loadu_epi8): Likewise.
10523 (_mm_mask_loadu_epi8): Pass const char * to
10524 __builtin_ia32_loaddquqi128_mask.
10525 (_mm_maskz_loadu_epi8): Likewise.
10526 (_mm256_mask_storeu_epi16): Pass short * to.
10527 __builtin_ia32_storedquhi256_mask.
10528 (_mm_mask_storeu_epi16): Pass short * to.
10529 __builtin_ia32_storedquhi128_mask.
10530 * config/i386/avx512vlintrin.h (_mm256_mask_loadu_pd): Pass
10531 const double * to __builtin_ia32_loadupd256_mask.
10532 (_mm256_maskz_loadu_pd): Likewise.
10533 (_mm_mask_loadu_pd): Pass onst double * to
10534 __builtin_ia32_loadupd128_mask.
10535 (_mm_maskz_loadu_pd): Likewise.
10536 (_mm256_mask_storeu_pd): Pass double * to
10537 __builtin_ia32_storeupd256_mask.
10538 (_mm_mask_storeu_pd): Pass double * to
10539 __builtin_ia32_storeupd128_mask.
10540 (_mm256_mask_loadu_ps): Pass const float * to
10541 __builtin_ia32_loadups256_mask.
10542 (_mm256_maskz_loadu_ps): Likewise.
10543 (_mm_mask_loadu_ps): Pass const float * to
10544 __builtin_ia32_loadups128_mask.
10545 (_mm_maskz_loadu_ps): Likewise.
10546 (_mm256_mask_storeu_ps): Pass float * to
10547 __builtin_ia32_storeups256_mask.
10548 (_mm_mask_storeu_ps): ass float * to
10549 __builtin_ia32_storeups128_mask.
10550 (_mm256_mask_loadu_epi64): Pass const long long * to
10551 __builtin_ia32_loaddqudi256_mask.
10552 (_mm256_maskz_loadu_epi64): Likewise.
10553 (_mm_mask_loadu_epi64): Pass const long long * to
10554 __builtin_ia32_loaddqudi128_mask.
10555 (_mm_maskz_loadu_epi64): Likewise.
10556 (_mm256_mask_storeu_epi64): Pass long long * to
10557 __builtin_ia32_storedqudi256_mask.
10558 (_mm_mask_storeu_epi64): Pass long long * to
10559 __builtin_ia32_storedqudi128_mask.
10560 (_mm256_mask_loadu_epi32): Pass const int * to
10561 __builtin_ia32_loaddqusi256_mask.
10562 (_mm256_maskz_loadu_epi32): Likewise.
10563 (_mm_mask_loadu_epi32): Pass const int * to
10564 __builtin_ia32_loaddqusi128_mask.
10565 (_mm_maskz_loadu_epi32): Likewise.
10566 (_mm256_mask_storeu_epi32): Pass int * to
10567 __builtin_ia32_storedqusi256_mask.
10568 (_mm_mask_storeu_epi32): Pass int * to
10569 __builtin_ia32_storedqusi128_mask.
10570 * config/i386/i386-builtin-types.def (PCSHORT): New.
10571 (PINT64): Likewise.
10572 (V64QI_FTYPE_PCCHAR_V64QI_UDI): Likewise.
10573 (V32HI_FTYPE_PCSHORT_V32HI_USI): Likewise.
10574 (V32QI_FTYPE_PCCHAR_V32QI_USI): Likewise.
10575 (V16SF_FTYPE_PCFLOAT_V16SF_UHI): Likewise.
10576 (V8DF_FTYPE_PCDOUBLE_V8DF_UQI): Likewise.
10577 (V16SI_FTYPE_PCINT_V16SI_UHI): Likewise.
10578 (V16HI_FTYPE_PCSHORT_V16HI_UHI): Likewise.
10579 (V16QI_FTYPE_PCCHAR_V16QI_UHI): Likewise.
10580 (V8SF_FTYPE_PCFLOAT_V8SF_UQI): Likewise.
10581 (V8DI_FTYPE_PCINT64_V8DI_UQI): Likewise.
10582 (V8SI_FTYPE_PCINT_V8SI_UQI): Likewise.
10583 (V8HI_FTYPE_PCSHORT_V8HI_UQI): Likewise.
10584 (V4DF_FTYPE_PCDOUBLE_V4DF_UQI): Likewise.
10585 (V4SF_FTYPE_PCFLOAT_V4SF_UQI): Likewise.
10586 (V4DI_FTYPE_PCINT64_V4DI_UQI): Likewise.
10587 (V4SI_FTYPE_PCINT_V4SI_UQI): Likewise.
10588 (V2DF_FTYPE_PCDOUBLE_V2DF_UQI): Likewise.
10589 (V2DI_FTYPE_PCINT64_V2DI_UQI): Likewise.
10590 (VOID_FTYPE_PDOUBLE_V8DF_UQI): Likewise.
10591 (VOID_FTYPE_PDOUBLE_V4DF_UQI): Likewise.
10592 (VOID_FTYPE_PDOUBLE_V2DF_UQI): Likewise.
10593 (VOID_FTYPE_PFLOAT_V16SF_UHI): Likewise.
10594 (VOID_FTYPE_PFLOAT_V8SF_UQI): Likewise.
10595 (VOID_FTYPE_PFLOAT_V4SF_UQI): Likewise.
10596 (VOID_FTYPE_PINT64_V8DI_UQI): Likewise.
10597 (VOID_FTYPE_PINT64_V4DI_UQI): Likewise.
10598 (VOID_FTYPE_PINT64_V2DI_UQI): Likewise.
10599 (VOID_FTYPE_PINT_V16SI_UHI): Likewise.
10600 (VOID_FTYPE_PINT_V8SI_UHI): Likewise.
10601 (VOID_FTYPE_PINT_V4SI_UHI): Likewise.
10602 (VOID_FTYPE_PSHORT_V32HI_USI): Likewise.
10603 (VOID_FTYPE_PSHORT_V16HI_UHI): Likewise.
10604 (VOID_FTYPE_PSHORT_V8HI_UQI): Likewise.
10605 (VOID_FTYPE_PCHAR_V64QI_UDI): Likewise.
10606 (VOID_FTYPE_PCHAR_V32QI_USI): Likewise.
10607 (VOID_FTYPE_PCHAR_V16QI_UHI): Likewise.
10608 (V64QI_FTYPE_PCV64QI_V64QI_UDI): Removed.
10609 (V32HI_FTYPE_PCV32HI_V32HI_USI): Likewise.
10610 (V32QI_FTYPE_PCV32QI_V32QI_USI): Likewise.
10611 (V16HI_FTYPE_PCV16HI_V16HI_UHI): Likewise.
10612 (V16QI_FTYPE_PCV16QI_V16QI_UHI): Likewise.
10613 (V8HI_FTYPE_PCV8HI_V8HI_UQI): Likewise.
10614 (VOID_FTYPE_PV32HI_V32HI_USI): Likewise.
10615 (VOID_FTYPE_PV16HI_V16HI_UHI): Likewise.
10616 (VOID_FTYPE_PV8HI_V8HI_UQI): Likewise.
10617 (VOID_FTYPE_PV64QI_V64QI_UDI): Likewise.
10618 (VOID_FTYPE_PV32QI_V32QI_USI): Likewise.
10619 (VOID_FTYPE_PV16QI_V16QI_UHI): Likewise.
10620 * config/i386/i386.c (ix86_emit_save_reg_using_mov): Don't
10621 use UNSPEC_STOREU.
10622 (ix86_emit_restore_sse_regs_using_mov): Don't use UNSPEC_LOADU.
10623 (ix86_avx256_split_vector_move_misalign): Don't use unaligned
10624 load nor store.
10625 (ix86_expand_vector_move_misalign): Likewise.
10626 (bdesc_special_args): Use CODE_FOR_movvNXY_internal and pointer
10627 to scalar function prototype for unaligned load/store builtins.
10628 (ix86_expand_special_args_builtin): Updated.
10629 * config/i386/sse.md (UNSPEC_LOADU): Removed.
10630 (UNSPEC_STOREU): Likewise.
10631 (VI_ULOADSTORE_BW_AVX512VL): Likewise.
10632 (VI_ULOADSTORE_F_AVX512VL): Likewise.
10633 (ssescalarsize): Handle V4TI, V2TI and V1TI.
10634 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
10635 (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
10636 (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Likewise.
10637 (<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask): Likewise.
10638 (<sse2_avx_avx512f>_loaddqu<mode><mask_name>): Likewise.
10639 (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"): Likewise.
10640 (sse2_avx_avx512f>_storedqu<mode>): Likewise.
10641 (<avx512>_storedqu<mode>_mask): Likewise.
10642 (*sse4_2_pcmpestr_unaligned): Likewise.
10643 (*sse4_2_pcmpistr_unaligned): Likewise.
10644 (*mov<mode>_internal): Renamed to ...
10645 (mov<mode>_internal): This. Remove check of AVX and IAMCU on
10646 misaligned operand. Replace vmovdqu64 with vmovdqu<ssescalarsize>.
10647 (movsd/movhpd to movupd peephole): Don't use UNSPEC_LOADU.
10648 (movlpd/movhpd to movupd peephole): Don't use UNSPEC_STOREU.
10649
10650 2016-04-19 Richard Biener <rguenther@suse.de>
10651
10652 PR tree-optimization/70171
10653 * tree-ssa-phiprop.c: Include stor-layout.h.
10654 (phiprop_insert_phi): Handle the aggregate copy case.
10655 (propagate_with_phi): Likewise.
10656
10657 2016-04-19 Uros Bizjak <ubizjak@gmail.com>
10658
10659 * config/i386/i386.c (ix86_decompose_address): Use lowpart_subreg
10660 instead of simplify_gen_subreg (... , 0).
10661 (ix86_delegitimize_address): Ditto.
10662 (ix86_split_divmod): Ditto.
10663 (ix86_split_copysign_const): Ditto.
10664 (ix86_split_copysign_var): Ditto.
10665 (ix86_expand_args_builtin): Ditto.
10666 (ix86_expand_round_builtin): Ditto.
10667 (ix86_expand_special_args_builtin): Ditto.
10668 * config/i386/i386.md (TARGET_USE_VECTOR_FP_CONVERTS splitters): Ditto.
10669 (TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters and peephole2s): Ditto.
10670 (udivmodqi4): Ditto.
10671 (absneg splitters): Ditto.
10672 (*jcc_bt<mode>_1): Ditto.
10673
10674 2016-04-19 Richard Biener <rguenther@suse.de>
10675
10676 PR tree-optimization/70724
10677 * tree-ssa-sccvn.c (scc_vn_restore_ssa_info): Split SSA info
10678 restoring out from ...
10679 (free_scc_vn): ... here.
10680 * tree-ssa-sccvn.h (scc_vn_restore_ssa_info): Declare.
10681 * tres-ssa-pre.c (pass_pre::execute): Restore SSA info before
10682 tail merging.
10683 (pass_fre::execute): Restore SSA info.
10684
10685 2016-04-19 Richard Biener <rguenther@suse.de>
10686
10687 * gimple-walk.h (struct walk_stmt_info): Add stmt member.
10688 * gimple-walk.c (walk_gimple_op): Initialize it.
10689 (walk_gimple_asm): Set wi->is_lhs before each callback invocation.
10690 * tree-inline.c (remap_gimple_op_r): Set SSA_NAME_DEF_STMT when
10691 remapping SSA names of defs.
10692 (copy_bb): Remove walk over all SSA defs and SSA_NAME_DEF_STMT
10693 adjustment.
10694
10695 2016-04-18 Vladimir Makarov <vmakarov@redhat.com>
10696
10697 PR middle-end/70689
10698 * lra-constraints.c (equiv_substition_p): New.
10699 (process_alt_operands): Use it.
10700 (swap_operands): Swap it.
10701 (curr_insn_transform): Update it.
10702
10703 2016-04-18 Michael Matz <matz@suse.de>
10704
10705 * tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount.
10706 (SET_TYPE_ALIGN, SET_DECL_ALIGN): New.
10707 * tree-core.h (tree_type_common.align): Use bit-field.
10708 (tree_type_common.spare): New.
10709 (tree_decl_common.off_align): Make smaller.
10710 (tree_decl_common.align): Use bit-field.
10711
10712 * expr.c (expand_expr_addr_expr_1): Use SET_TYPE_ALIGN.
10713 * omp-low.c (install_var_field): Use SET_DECL_ALIGN.
10714 (scan_sharing_clauses): Ditto.
10715 (finish_taskreg_scan): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
10716 (omp_finish_file): Ditto.
10717 * stor-layout.c (do_type_align): Use SET_DECL_ALIGN.
10718 (layout_decl): Ditto.
10719 (relayout_decl): Ditto.
10720 (finalize_record_size): Use SET_TYPE_ALIGN.
10721 (finalize_type_size): Ditto.
10722 (finish_builtin_struct): Ditto.
10723 (layout_type): Ditto.
10724 (initialize_sizetypes): Ditto.
10725 * targhooks.c (std_gimplify_va_arg_expr): Use SET_TYPE_ALIGN.
10726 * tree-nested.c (insert_field_into_struct): Use SET_TYPE_ALIGN.
10727 (lookup_field_for_decl): Use SET_DECL_ALIGN.
10728 (get_chain_field): Ditto.
10729 (get_trampoline_type): Ditto.
10730 (get_nl_goto_field): Ditto.
10731 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
10732 SET_DECL_ALIGN.
10733 (unpack_ts_type_common_value_fields): Use SET_TYPE_ALIGN.
10734 * gimple-expr.c (copy_var_decl): Use SET_DECL_ALIGN.
10735 * tree.c (make_node_stat): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
10736 (build_qualified_type): Use SET_TYPE_ALIGN.
10737 (build_aligned_type, build_range_type_1): Ditto.
10738 (build_atomic_base): Ditto.
10739 (build_common_tree_nodes): Ditto.
10740 * cfgexpand.c (align_local_variable): Use SET_DECL_ALIGN.
10741 (expand_one_stack_var_at): Ditto.
10742 * coverage.c (build_var): Use SET_DECL_ALIGN.
10743 * except.c (init_eh): Ditto.
10744 * function.c (assign_parm_setup_block): Ditto.
10745 * symtab.c (increase_alignment_1): Ditto.
10746 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Ditto.
10747 * tree-vect-stmts.c (ensure_base_align): Ditto.
10748 * varasm.c (align_variable): Ditto.
10749 (assemble_variable): Ditto.
10750 (build_constant_desc): Ditto.
10751 (output_constant_def_contents): Ditto.
10752
10753 * config/arm/arm.c (arm_relayout_function): Use SET_DECL_ALIGN.
10754 * config/avr/avr.c (avr_adjust_type_node): Use SET_TYPE_ALIGN.
10755 * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Ditto.
10756 * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Ditto.
10757 * config/spu/spu.c (spu_build_builtin_va_list): Use SET_DECL_ALIGN.
10758
10759 2016-04-18 H.J. Lu <hongjiu.lu@intel.com>
10760
10761 PR target/70708
10762 * config/i386/sse.md (sse2_loadlpd): Accept load from "xm" and
10763 replace %vmovsd with "%vmovq".
10764 (vec_concatv2df): Likewise.
10765
10766 2016-04-18 Uros Bizjak <ubizjak@gmail.com>
10767
10768 * config/i386/mmx.md (*vec_extractv2sf_0): Use gen_lowpart.
10769 (*vec_extractv2si_0): Ditto.
10770 * config/i386/sse.md (*vec_extractv4sf_0): Ditto.
10771 (zero_extended_scalar_load_operand splitters): Ditto.
10772 (vec_extract splitters): Ditto.
10773 (*vec_extractv4si_0_zext): Ditto.
10774 (avx_<castmode><avxsizesuffix>_<castmode>): Use gen_lowpart
10775 and lowpart_subreg.
10776 (avx512f_<castmode><avxsizesuffix>_<castmode>): Ditto.
10777 (avx512f_<castmode><avxsizesuffix>_256<castmode>): Ditto.
10778 (*sse4_1_extractps): Use lowpart_subreg.
10779 * config/i386/i386.md (x87 floatsplitter): Use gen_lowpart.
10780
10781 2016-04-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10782
10783 * doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
10784 gld requirements.
10785 (Specific, *-*-solaris2*): Update Solaris 11 bundled gcc versions.
10786 Mention Solaris 11 packaging changes.
10787 Update gas and gld requirements.
10788 Remove reference to pre-Solaris 10 bug.
10789 (Specific, sparc-sun-solaris2*): Remove reference to pre-Solaris 10
10790 systems and bugs.
10791 (Specific, sparc64-*-solaris2*): Remove reference to bootstrap
10792 with cc.
10793
10794 2016-04-17 Jan Hubicka <jh@suse.cz>
10795
10796 * tree-ssa-loop-ivopts.c (avg_loop_niter): Use also
10797 max_loop_iterations_int.
10798
10799 2016-04-18 Richard Biener <rguenther@suse.de>
10800
10801 PR tree-optimization/43434
10802 * tree-ssa-structalias.c (struct vls_data): New.
10803 (visit_loadstore): Handle all pointer-based accesses.
10804 (compute_dependence_clique): Compute a bitmap of restrict tags
10805 assigned bases and pass it to visit_loadstore.
10806
10807 2016-04-18 Matthew Wahab <matthew.wahab@arm.com>
10808
10809 PR target/70711
10810 * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc,
10811 armv8.1-a and armv8.1-a+crc.
10812
10813 2016-04-18 Richard Biener <rguenther@suse.de>
10814
10815 PR tree-optimization/70701
10816 * tree-ssa-sccvn.c (vn_reference_lookup_3): Resolve fully constant
10817 references after translating through a memcpy.
10818
10819 2016-04-18 Richard Biener <rguenther@suse.de>
10820
10821 * tree-ssa-pre.c (postorder, postorder_num): Make locals ...
10822 (compute_antic): ... here. For partial antic use regular
10823 postorder and scrap iteration.
10824 (compute_partial_antic_aux): Remove unused return value.
10825 (init_pre): Do not allocate postorder.
10826 (fini_pre): Do not free postorder.
10827
10828 2016-04-18 Richard Biener <rguenther@suse.de>
10829
10830 PR middle-end/37870
10831 * expmed.c (extract_bit_field_1): Remove broken case
10832 using a wider MODE_INT mode.
10833
10834 2016-04-18 Segher Boessenkool <segher@kernel.crashing.org>
10835
10836 * has-brig.c (lendian16): Don't try to use __builtin_bswap16
10837 unless compiling with at least GCC-4.8.
10838
10839 2016-04-17 Jan Hubicka <jh@suse.cz>
10840
10841 PR bootstrap/70706
10842 * graphite.c (graphite_finalize): Update call to
10843 tree_estimate_probability.
10844 * predict.h (tree_estimate_probability): Update prototype.
10845
10846 2016-04-17 Jan Hubicka <jh@suse.cz>
10847
10848 * predict.c (combine_predictions_for_bb): Add dry_run parmaeter.
10849 (tree_estimate_probability): Likewise.
10850 (pass_profile::execute): Update.
10851 (report_predictor_hitrates): New function.
10852 * profile.c (compute_branch_probabilities): Use it.
10853 * predict.h (report_predictor_hitrates): Declare.
10854
10855 2016-04-17 Jan Hubicka <jh@suse.cz>
10856
10857 PR ipa/70018
10858 * cgraph.h (cgraph_node::set_const_flag,
10859 cgraph_node::set_pure_flag): Update prototype to return bool;
10860 update comment.
10861 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Thunks
10862 of interposable symbol are interposable, too.
10863 (cgraph_set_const_flag_1): Rename to ...
10864 (set_const_flag_1): ... this one; change to self recursive function
10865 instead of call_for_symbol_thunks_and_aliases. Handle correctly
10866 clearnig the flag in all variants and also virtual thunks of const
10867 functions are pure; track if any change was done.
10868 (cgraph_node::set_const_flag): Update.
10869 (struct set_pure_flag_info): New struct.
10870 (cgraph_set_pure_flag_1): Rename to ...
10871 (set_pure_flag_1): ... this one; take set_pure_flag_info parameter
10872 rather than pointer encoded flags; track if any changes was done;
10873 handle correctly clearning flag and setting flag of aliases already
10874 declared const.
10875 (cgraph_node::set_pure_flag): Update.
10876 (cgraph_node::set_nothrow_flag): Handle correctly clearning the flag.
10877
10878 2016-04-17 Tom de Vries <tom@codesourcery.com>
10879
10880 PR other/70433
10881 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Escape
10882 backslash in label.
10883
10884 2016-04-17 Tom de Vries <tom@codesourcery.com>
10885
10886 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Classify chars
10887 '{}<> ' as escape-for-record.
10888
10889 2016-04-17 Tom de Vries <tom@codesourcery.com>
10890
10891 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Simplify loop
10892 structure.
10893
10894 2016-04-17 Tom de Vries <tom@codesourcery.com>
10895
10896 PR other/70185
10897 * tree-pass.h (class opt_pass): Remove graph_dump_initialized member.
10898 * dumpfile.h (struct dump_file_info): Add graph_dump_initialized field.
10899 * dumpfile.c (dump_files): Initialize graph_dump_initialized field.
10900 * passes.c (finish_optimization_passes): Only call
10901 finish_graph_dump_file if dfi->graph_dump_initialized.
10902 (execute_function_dump, pass_init_dump_file): Use
10903 dfi->graph_dump_initialized instead of pass->graph_dump_initialized.
10904
10905 2016-04-17 Tom de Vries <tom@codesourcery.com>
10906
10907 PR tree-optimization/70256
10908 * tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap)
10909 (debug_varmap): New function.
10910
10911 2016-04-17 Tom de Vries <tom@codesourcery.com>
10912
10913 PR other/70183
10914 * passes.c (pass_manager::register_pass): Propagate pflags.
10915
10916 2016-04-17 Tom de Vries <tom@codesourcery.com>
10917
10918 PR other/68875
10919 * pass_manager.h (TERMINATE_PASS_LIST): Add pass argument.
10920 * passes.c (pass_manager::pass_manager): Declare and init p_start in
10921 INSERT_PASSES_AFTER. Add pass parameter to TERMINATE_PASS_LIST, and
10922 check if it's equal to p_start.
10923 * passes.def: Add arguments to TERMINATE_PASS_LISTs.
10924
10925 2016-04-15 Jan Hubicka <jh@suse.cz>
10926
10927 PR ipa/70018
10928 * cgraph.c (cgraph_set_const_flag_1): Only set as pure if
10929 function does not bind to current def.
10930 * ipa-pure-const.c (worse_state): Add FROM and TO parameters;
10931 handle conservatively calls to functions that does not need to bind
10932 to current def.
10933 (check_call): Update call of worse_state.
10934 (ignore_edge_for_nothrow): Update.
10935 (ignore_edge_for_pure_const): Likewise.
10936 (propagate_pure_const): Update calls to worse_state.
10937 (skip_function_for_local_pure_const): Reformat comments.
10938
10939 2016-04-15 Jan Hubicka <jh@suse.cz>
10940
10941 PR ipa/70018
10942 * cgraph.c (cgraph_node::get_availability): Add REF parameter.
10943 (cgraph_node::function_symbol): Likewise.
10944 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
10945 * cgraph.h (symtab_node::get_availabbility): Add REF parameter.
10946 (symtab_node::ultimate_alias_target): Add REF parameter.
10947 (symtab_node::binds_to_current_def_p): Declare.
10948 (symtab_node;:ultimate_alias_target_1): Add REF parameter.
10949 (cgraph_node::function_symbol): Likewise.
10950 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
10951 (cgraph_node::get_availability): Likewise.
10952 (cgraph_edge::binds_to_current_def_p): New inline function.
10953 (varpool_node::get_availability): Add REF parameter.
10954 (varpool_node::ultimate_alias_target): Likewise.
10955 * symtab.c (symtab_node::ultimate_alias_target_1): Likewise.
10956 (symtab_node::binds_to_current_def_p): Likewise.
10957 * varpool.c (varpool_node::get_availability): Likewise.
10958
10959 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
10960
10961 PR target/70662
10962 * config/i386/sse.md(define_insn "<avx512>_vec_dup<mode><mask_name>"):
10963 Fix mode size check.
10964
10965 2016-04-15 Jakub Jelinek <jakub@redhat.com>
10966
10967 * BASE-VER: Set to 7.0.0.
10968
10969 2016-04-15 Alexander Monakov <amonakov@ispras.ru>
10970
10971 * config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.
10972
10973 2016-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10974
10975 * doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T
10976 architecture revisions.
10977
10978 2016-04-15 Bernd Schmidt <bschmidt@redhat.com>
10979
10980 * config/i386/i386-protos.h (ix86_using_red_zone): Declare.
10981 * config/i386/i386.c (ix86_using_red_zone): No longer static.
10982 * config/i386/i386.md (stack decrement to push peepholes): Guard
10983 with !x86_using_red_zone ().
10984
10985 2016-04-15 Jakub Jelinek <jakub@redhat.com>
10986
10987 PR c++/70675
10988 * tree-pretty-print.c (do_niy): Add FLAGS argument, pass it down
10989 to dump_generic_node.
10990 (NIY): Pass also flags to do_niy.
10991
10992 2016-04-15 Thomas Schwinge <thomas@codesourcery.com>
10993
10994 * omp-low.c (simd_clone_struct_alloc, simd_clone_struct_copy)
10995 (simd_clone_vector_of_formal_parm_types)
10996 (simd_clone_clauses_extract, simd_clone_compute_base_data_type)
10997 (simd_clone_mangle, simd_clone_create)
10998 (simd_clone_adjust_return_type, create_tmp_simd_array)
10999 (simd_clone_adjust_argument_types, simd_clone_init_simd_arrays)
11000 (struct modify_stmt_info, ipa_simd_modify_stmt_ops)
11001 (ipa_simd_modify_function_body, simd_clone_linear_addend)
11002 (simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone)
11003 (pass_data_omp_simd_clone, class pass_omp_simd_clone)
11004 (pass_omp_simd_clone::gate, make_pass_omp_simd_clone): Move into...
11005 * omp-simd-clone.c: ... this new file.
11006 (simd_clone_vector_of_formal_parm_types): Make it static.
11007 * Makefile.in (OBJS): Add omp-simd-clone.o.
11008
11009 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
11010
11011 PR target/70662
11012 * config/i386/sse.md: Use proper memory operand modifiers.
11013
11014
11015 2016-04-15 Richard Biener <rguenther@suse.de>
11016 Alan Modra <amodra@gmail.com>
11017
11018 PR tree-optimization/70130
11019 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Detect
11020 when alignment stays not the same and no not use the realign
11021 scheme then.
11022
11023 2016-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
11024
11025 PR target/70669
11026 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
11027 direct move handlers for KFmode. Change TFmode handlers test from
11028 FLOAT128_IEEE_P to FLOAT128_VECTOR_P.
11029
11030 2016-04-14 Jakub Jelinek <jakub@redhat.com>
11031
11032 PR c++/70594
11033 * ipa-utils.h (polymorphic_ctor_dtor_p): New prototype.
11034 * ipa-polymorphic-call.c (polymorphic_ctor_dtor_p): New function.
11035 (inlined_polymorphic_ctor_dtor_block_p): Use it.
11036 * tree-ssa-live.c (remove_unused_scope_block_p): When
11037 in_ctor_dtor_block, avoid discarding not just BLOCKs with
11038 BLOCK_ABSTRACT_ORIGIN being FUNCTION_DECL, but even when
11039 block_ultimate_origin is FUNCTION_DECL.
11040 (remove_unused_locals): If current_function_decl is
11041 polymorphic_ctor_dtor_p, pass initial true to
11042 remove_unused_scope_block_p' is_ctor_dtor_block.
11043
11044 2016-04-14 Martin Sebor <msebor@redhat.com>
11045
11046 PR c++/69517
11047 PR c++/70019
11048 PR c++/70588
11049 * doc/extend.texi (Variable Length): Revert.
11050
11051 2016-04-14 Marek Polacek <polacek@redhat.com>
11052 Jan Hubicka <hubicka@ucw.cz>
11053
11054 PR c++/70029
11055 * tree.c (verify_type): Disable the canonical type of main variant
11056 check.
11057
11058 2016-04-14 Jason Merrill <jason@redhat.com>
11059
11060 * cfgexpand.c, expr.c: Revert previous change.
11061
11062 2016-04-14 Cesar Philippidis <cesar@codesourcery.com>
11063
11064 PR middle-end/70643
11065 * omp-low.c (lower_oacc_reductions): Check for TREE_CONSTANT
11066 when building a mem ref for the incoming reduction variable.
11067
11068 2016-04-14 Richard Biener <rguenther@suse.de>
11069
11070 PR tree-optimization/70614
11071 * tree-scalar-evolution.c (analyze_evolution_in_loop): Terminate
11072 loop if the evolution dropped to chrec_dont_know.
11073 (interpret_condition_phi): Likewise.
11074
11075 2016-04-14 Richard Biener <rguenther@suse.de>
11076
11077 PR tree-optimization/70623
11078 * tree-ssa-pre.c (changed_blocks): Make global ...
11079 (compute_antic): ... local here. Move and fix worklist
11080 handling here. Do not clear EDGE_DFS_BACK or call mark_dfs_back_edges.
11081 (compute_antic_aux): Add dumping for MAX assumed succs. Remove
11082 worklist handling, dump when ANTIC_IN changed.
11083 (compute_partial_antic_aux): Remove worklist handling.
11084 (init_pre): Do not compute post dominators. Add a comment about
11085 the CFG order chosen.
11086 (fini_pre): Do not free post dominators.
11087
11088 2016-04-13 Martin Sebor <msebor@redhat.com>
11089
11090 PR c++/69517
11091 PR c++/70019
11092 PR c++/70588
11093 * doc/extend.texi (Variable Length): Document C++ specifics.
11094
11095 2016-04-13 Jakub Jelinek <jakub@redhat.com>
11096
11097 PR c++/70641
11098 * ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt
11099 on all recursive call stmts. Return TODO_cleanup_cfg if any dead
11100 eh edges have been purged.
11101
11102 PR c++/70594
11103 * tree-sra.c (create_access_replacement,
11104 get_replaced_param_substitute): Set DECL_NAMELESS on repl if it
11105 gets fancy name.
11106 * tree-pretty-print.c (dump_fancy_name): New function.
11107 (dump_decl_name, dump_generic_node): Use it.
11108
11109 2016-04-13 Jason Merrill <jason@redhat.com>
11110
11111 * cfgexpand.c (pass_expand::execute): Handle attribute "abi warning".
11112 * expr.c (expand_expr_real_1): Likewise.
11113
11114 2016-04-13 Ilya Enkovich <ilya.enkovich@intel.com>
11115
11116 * config/i386/i386.md (kunpckhi): Swap operands.
11117 (kunpcksi): Likewise.
11118 (kunpckdi): Likewise.
11119 * config/i386/sse.md (vec_pack_trunc_qi): Likewise.
11120 (vec_pack_trunc_<mode>): Likewise.
11121
11122 2016-04-13 Jakub Jelinek <jakub@redhat.com>
11123
11124 PR debug/70628
11125 * explow.c (convert_memory_address_addr_space_1): Formatting fix.
11126
11127 PR middle-end/70633
11128 * gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
11129 gimplification turns some element into non-constant.
11130
11131 PR debug/70628
11132 * rtl.h (convert_memory_address_addr_space_1): New prototype.
11133 * explow.c (convert_memory_address_addr_space_1): No longer static,
11134 add NO_EMIT argument and don't call convert_modes if true, pass
11135 it down recursively, remove break after return.
11136 (convert_memory_address_addr_space): Adjust caller.
11137 * simplify-rtx.c (simplify_unary_operation_1): Call
11138 convert_memory_address_addr_space_1 instead of convert_memory_address,
11139 if it returns NULL, don't simplify.
11140
11141 2016-04-12 Eric Botcazou <ebotcazou@adacore.com>
11142
11143 PR target/70630
11144 * config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.
11145
11146 2016-04-12 Jakub Jelinek <jakub@redhat.com>
11147
11148 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
11149 Bump the upper SIMDLEN limits, so that if the return type or
11150 characteristic type if the return type is void can be passed in
11151 all available SSE2/AVX/AVX2/AVX512-F registers, the SIMDLEN is
11152 allowed.
11153
11154 2016-04-12 Michael Meissner <meissner@linux.vnet.ibm.com>
11155
11156 PR target/70640
11157 * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2_internal):
11158 Do not use "=" constraint on an input constraint.
11159 (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
11160 (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
11161 (ieee_128bit_vsx_nabs<mode>2): Correct splitter so that it
11162 generates (neg (abs ...)) instead of (abs ...).
11163
11164 2016-04-12 Jakub Jelinek <jakub@redhat.com>
11165
11166 PR rtl-optimization/70596
11167 * lra-spills.c (spill_pseudos): Don't delete debug insns, instead
11168 just invalidate LRA data and reset them. Adjust dump wording.
11169
11170 2016-04-12 Martin Liska <mliska@suse.cz>
11171
11172 Revert
11173 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
11174
11175 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
11176 estimates here.
11177 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
11178 max_loop_iterations_int.
11179 (tree_unswitch_outer_loop): Likewise.
11180 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
11181 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
11182
11183 2016-04-12 Tom de Vries <tom@codesourcery.com>
11184
11185 PR tree-optimization/68756
11186 * graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr
11187 instead of new_name.
11188
11189 2016-04-12 Jakub Jelinek <jakub@redhat.com>
11190
11191 PR tree-optimization/70602
11192 * tree-sra.c (generate_subtree_copies): Don't write anything into
11193 constant pool decls.
11194
11195 * omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
11196 regardless whether there are depend clauses or not.
11197
11198 2016-04-11 Michael Meissner <meissner@linux.vnet.ibm.com>
11199
11200 PR target/70381
11201 * config/rs6000/rs6000.c (rs6000_opt_masks): Disable using the
11202 target attribute and pragma from changing the -mfloat128
11203 and -mfloat128-hardware options.
11204
11205 * doc/extend.texi (Additional Floating Types): Document PowerPC
11206 __float128 restrictions.
11207
11208 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
11209
11210 PR target/70133
11211 * config/aarch64/driver-aarch64.c
11212 (aarch64_get_extension_string_for_isa_flags): New.
11213 (arch_extension): Rename to...
11214 (aarch64_arch_extension): ...This.
11215 (ext_to_feat_string): Rename to...
11216 (aarch64_extensions): ...This.
11217 (aarch64_core_data): Keep track of architecture extension flags.
11218 (cpu_data): Rename to...
11219 (aarch64_cpu_data): ...This.
11220 (aarch64_arch_driver_info): Keep track of architecture extension
11221 flags.
11222 (get_arch_name_from_id): Rename to...
11223 (get_arch_from_id): ...This, change return type.
11224 (host_detect_local_cpu): Update and reformat for renames, handle
11225 extensions through common infrastructure.
11226
11227 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
11228
11229 PR target/70133
11230 * config/aarch64/aarch64-common.c (aarch64_option_extension): Keep
11231 track of a canonical flag name.
11232 (all_extensions): Likewise.
11233 (arch_to_arch_name): Also track extension flags enabled by the arch.
11234 (all_architectures): Likewise.
11235 (aarch64_parse_extension): Move to here.
11236 (aarch64_get_extension_string_for_isa_flags): Take a new argument,
11237 rework.
11238 (aarch64_rewrite_selected_cpu): Update for above change.
11239 * config/aarch64/aarch64-option-extensions.def: Rework the way flags
11240 are handled, such that the single explicit value enabled by an
11241 extension is kept seperate from the implicit values it also enables.
11242 * config/aarch64/aarch64-protos.h (aarch64_parse_opt_result): Move
11243 to here.
11244 (aarch64_parse_extension): New.
11245 * config/aarch64/aarch64.c (aarch64_parse_opt_result): Move from
11246 here to config/aarch64/aarch64-protos.h.
11247 (aarch64_parse_extension): Move from here to
11248 common/config/aarch64/aarch64-common.c.
11249 (aarch64_option_print): Update.
11250 (aarch64_declare_function_name): Likewise.
11251 (aarch64_start_file): Likewise.
11252 * config/aarch64/driver-aarch64.c (arch_extension): Keep track of
11253 the canonical flag for extensions.
11254 * config.gcc (aarch64*-*-*): Extend regex for capturing extension
11255 flags.
11256
11257 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
11258
11259 * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
11260 AARCH64_FL_CRC.
11261
11262 2016-04-09 Tom de Vries <tom@codesourcery.com>
11263
11264 PR tree-optimization/68953
11265 * graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from
11266 first to last subscript.
11267
11268 2016-04-09 Jakub Jelinek <jakub@redhat.com>
11269
11270 PR tree-optimization/70586
11271 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false
11272 for any calls.
11273
11274 2016-04-08 Cesar Philippidis <cesar@codesourcery.com>
11275
11276 PR lto/70289
11277 PR ipa/70348
11278 PR tree-optimization/70373
11279 PR middle-end/70533
11280 PR middle-end/70534
11281 PR middle-end/70535
11282 * gimplify.c (gimplify_adjust_omp_clauses): Add or adjust data
11283 clauses for acc parallel reductions as necessary. Error on those
11284 that are private.
11285 * omp-low.c (scan_sharing_clauses): Don't install variables which
11286 are used in acc parallel reductions.
11287 (lower_rec_input_clauses): Remove dead code.
11288 (lower_oacc_reductions): Add support for reference reductions.
11289 (lower_reduction_clauses): Remove dead code.
11290 (lower_omp_target): Don't remap variables appearing in acc parallel
11291 reductions.
11292 * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro.
11293
11294 2016-04-08 Jakub Jelinek <jakub@redhat.com>
11295
11296 PR middle-end/70593
11297 * tree-ssa-coalesce.c (build_ssa_conflict_graph): For stmt
11298 with multiple SSA_NAME defs, force the outputs other than first
11299 to be live before calling live_track_process_def on each output.
11300
11301 PR rtl-optimization/70574
11302 * fwprop.c (forward_propagate_and_simplify): Don't add
11303 REG_EQUAL note if DF_REF_REG (use) is a paradoxical subreg.
11304 (try_fwprop_subst): Don't add REG_EQUAL note if there are any
11305 paradoxical subregs within *loc.
11306
11307 2016-04-08 Thomas Schwinge <thomas@codesourcery.com>
11308
11309 * config/arc/arc.h (LINK_COMMAND_SPEC): Use gt to ignore
11310 -ftree-parallelize-loops={0,1}.
11311 * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
11312 * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
11313 * config/ia64/hpux.h (LIB_SPEC): Likewise.
11314 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
11315 * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
11316
11317 2016-04-08 Maxim Ostapenko <m.ostapenko@samsung.com>
11318
11319 PR sanitizer/70541
11320 * asan.c (instrument_derefs): If we get unknown location, extract it
11321 with EXPR_LOCATION.
11322 (maybe_instrument_call): Instrument gimple_call's arguments if needed.
11323
11324 2016-04-08 Tom de Vries <tom@codesourcery.com>
11325
11326 * omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc
11327 implicit firstprivate clause.
11328
11329 2016-04-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11330
11331 PR target/70566
11332 * config/arm/thumb2.md (tst + branch-> lsls + branch
11333 peephole below *orsi_not_shiftsi_si): Require that condition
11334 register is dead after the peephole.
11335 (second peephole after the above): Likewise.
11336
11337 2016-04-08 Alan Modra <amodra@gmail.com>
11338
11339 PR target/70117
11340 * builtins.c (fold_builtin_classify): For IBM extended precision,
11341 look at just the high-order double to test for NaN.
11342 (fold_builtin_interclass_mathfn): Similarly for Inf. For isnormal
11343 test just the high double for Inf but both doubles for subnormal
11344 limit.
11345
11346 2016-04-07 Jakub Jelinek <jakub@redhat.com>
11347
11348 * cgraph.h (struct cgraph_simd_clone): Add mask_mode field.
11349 * omp-low.c (simd_clone_init_simd_arrays, simd_clone_adjust): Handle
11350 node->simdclone->mask_mode != VOIDmode masks.
11351 (simd_clone_adjust_argument_types): Likewise. Move sc var definition
11352 earlier, use it instead of node->simdclone.
11353 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
11354 Set clonei->mask_mode.
11355
11356 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
11357
11358 PR c/70436
11359 * parser.c (cp_parser_iteration_statement): New parameter IF_P.
11360 Pass it through to cp_parser_already_scoped_statement.
11361 (cp_parser_already_scoped_statement): New parameter IF_P. Pass
11362 it through to cp_parser_statement.
11363 (cp_parser_statement): Pass IF_P through to
11364 cp_parser_iteration_statement.
11365 (cp_parser_pragma): Adjust call to
11366 cp_parser_iteration_statement.
11367
11368 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
11369
11370 PR c/70436
11371 * gimplify.c (gimplify_omp_ordered): Add explicit braces to
11372 resolve a future -Wparentheses warning.
11373 * omp-low.c (scan_sharing_clauses): Likewise.
11374 * tree-parloops.c (eliminate_local_variables): Likewise.
11375
11376 2016-04-06 Vladimir Makarov <vmakarov@redhat.com>
11377
11378 PR rtl-optimization/70398
11379 * lra-constraints.c (process_address_1): Check zero scale and code
11380 for reloading with zero scale.
11381
11382 2016-04-06 Uros Bizjak <ubizjak@gmail.com>
11383
11384 * config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
11385 (ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.
11386
11387 2016-04-06 Jakub Jelinek <jakub@redhat.com>
11388
11389 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
11390 Add support for AVX512F clones, include them by default for
11391 exported OpenMP declare simd functions. For AVX2 allow simdlen 32
11392 and use it if charasteric type is 8-bit, for AVX512F allow simdlen
11393 up to 128.
11394
11395 PR middle-end/70550
11396 * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define.
11397 * gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit
11398 firstprivate clauses.
11399 * omp-low.c (lower_send_clauses): Set TREE_NO_WARNING for
11400 OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT !by_ref vars in task contexts.
11401 (lower_omp_target): Set TREE_NO_WARNING for
11402 non-addressable possibly uninitialized vars which are copied into
11403 addressable temporaries or copied for GOMP_MAP_FIRSTPRIVATE_INT.
11404
11405 2016-04-05 John David Anglin <danglin@gcc.gnu.org>
11406
11407 * config/pa/predicates.md (integer_store_memory_operand): Accept
11408 REG+D operands with a large offset when reload_in_progress is true.
11409 (floating_point_store_memory_operand): Likewise.
11410
11411 2016-04-05 Jakub Jelinek <jakub@redhat.com>
11412
11413 PR c++/70336
11414 * match.pd (nested int casts): Limit to GIMPLE.
11415
11416 2016-04-05 Jan Hubicka <hubicka@ucw.cz>
11417
11418 PR ipa/66223
11419 * ipa-devirt.c (maybe_record_node): Fix comment; use
11420 SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.
11421
11422 2016-04-05 Jakub Jelinek <jakub@redhat.com>
11423
11424 PR rtl-optimization/70542
11425 * ree.c (add_removable_extension): For VECTOR_MODE_P punt
11426 if there are any uses other than insn or debug insns.
11427
11428 2016-04-05 Marc Glisse <marc.glisse@inria.fr>
11429 Jakub Jelinek <jakub@redhat.com>
11430
11431 PR tree-optimization/70509
11432 * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SELECT>:
11433 Shift HOST_WIDE_INT_1U instead of 1.
11434
11435 2016-04-05 Zdenek Sojka <zsojka@seznam.cz>
11436
11437 PR tree-optimization/70509
11438 * tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int instead
11439 of the vector base type for index.
11440
11441 2016-04-05 Uros Bizjak <ubizjak@gmail.com>
11442
11443 PR target/70510
11444 * config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.
11445
11446 2016-04-05 Richard Biener <rguenther@suse.de>
11447
11448 PR tree-optimization/70526
11449 * tree-sra.c (build_ref_for_offset): Use prev_base to
11450 extract the alias pointer type.
11451
11452 2016-04-05 Richard Biener <rguenther@suse.de>
11453
11454 * dse.c (struct store_info): Remove alias_set member.
11455 (struct read_info_type): Likewise.
11456 (clear_alias_group, clear_alias_mode_table, clear_alias_mode_holder,
11457 spill_deleted, clear_alias_set_lookup): Remove.
11458 (get_group_info): Remove dead base == NULL_RTX case.
11459 (dse_step0): Remove initialization of removed variables.
11460 (delete_dead_store_insn): Reomve alias set dumping.
11461 (free_read_records): Remove alias_set handling.
11462 (canon_address): Remove alias_set_out parameter.
11463 (record_store): Remove spill_alias_set, it's always zero.
11464 (check_mem_read_rtx): Likewise.
11465 (dse_step2): Rename from ...
11466 (dse_step2_nospill): ... this. Adjust.
11467 (scan_stores): Rename from ...
11468 (scan_stores_nospill): ... this.
11469 (scan_reads): Rename from ...
11470 (scan_reads_nospill): ... this.
11471 (scan_stores_spill, scan_reads_spill): Remove.
11472 (dse_step3_scan): Remove for_spills argument which is always false.
11473 (dse_step3): Likewise.
11474 (dse_step5): Rename from ...
11475 (dse_step5_nospill): ... this. Remove alias_set handling.
11476 (rest_of_handle_dse): Adjust.
11477
11478 2016-04-05 Jakub Jelinek <jakub@redhat.com>
11479
11480 PR target/70525
11481 * config/i386/sse.md (*andnot<mode>3): Simplify assertions.
11482 Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for
11483 V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting.
11484 (*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator.
11485
11486 2016-04-05 Richard Biener <rguenther@suse.de>
11487
11488 PR middle-end/70499
11489 * gimplify-me.c (gimple_regimplify_operands): Do not rewrite
11490 non-register type temporaries into SSA.
11491
11492 2016-04-04 Jan Hubicka <hubicka@ucw.cz>
11493
11494 PR ipa/66223
11495 * ipa-devirt.c (maybe_record_node): Do not optimize cxa_pure_virtual
11496 calls when sanitizing.
11497 (possible_polymorphic_call_target_p): Fix formatting.
11498
11499 2016-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11500 Jakub Jelinek <jakub@redhat.com>
11501
11502 PR middle-end/70457
11503 * tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p
11504 to ensure a call statement is compatible with a built-in's
11505 prototype.
11506 * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
11507 Likewise.
11508
11509 2016-04-04 Richard Biener <rguenther@suse.de>
11510
11511 PR rtl-optimization/70484
11512 * rtl.h (canon_output_dependence): Declare.
11513 * alias.c (canon_output_dependence): New function.
11514 * dse.c (record_store): Use canon_output_dependence rather
11515 than canon_true_dependence.
11516
11517 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
11518
11519 PR ipa/68881
11520 * cgraph.h (symtab_node::copy_visibility_from): New function.
11521 * symtab.c (symtab_node::copy_visibility_from): New function.
11522 * ipa-visibility.c (optimize_weakref): New function.
11523 (function_and_variable_visibility): Use it.
11524
11525 2016-04-04 Martin Liska <mliska@suse.cz>
11526
11527 PR hsa/70402
11528 * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Guard index
11529 value that is really in range handled by SBR instruction.
11530 * hsa-brig.c (emit_switch_insn): Do not emit unconditional jump.
11531 * hsa-dump.c (dump_hsa_insn_1): Do not dump default BB.
11532 * hsa.h (hsa_insn_sbr::m_default_bb): Remove field.
11533
11534 2016-04-03 Oleg Endo <olegendo@gcc.gnu.org>
11535
11536 PR target/70416
11537 PR target/67391
11538 * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
11539 set, but not for SP_REG operands.
11540
11541 2016-04-02 Martin Sebor <msebor@redhat.com>
11542
11543 PR c++/67376
11544 * fold-const.c (maybe_nonzero_address): New function.
11545 (fold_comparison): Call it. Fold equality and relational
11546 expressions involving null pointers.
11547 (tree_single_nonzero_warnv_p): Call maybe_nonzero_address.
11548
11549 2016-03-31 Evandro Menezes <e.menezes@samsung.com>
11550
11551 Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
11552 the "Y" constraint (scalar FP 0.0 immediate).
11553
11554 * config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
11555 Add the "const_double" to the list of operand constraints.
11556
11557 2016-04-01 Jakub Jelinek <jakub@redhat.com>
11558
11559 PR rtl-optimization/70467
11560 * config/i386/i386.md (*add<dwi>3_doubleword, *sub<dwi>3_doubleword):
11561 If low word of the last operand is 0, just emit addition/subtraction
11562 for the high word.
11563
11564 2016-04-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
11565
11566 PR target/70404
11567 * config/s390/s390.c (s390_expand_insv): Check for everything
11568 constant instead of just VOIDmode stuff.
11569
11570 2016-04-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11571
11572 PR target/70496
11573 * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB.
11574
11575 2016-04-01 Nathan Sidwell <nathan@acm.org>
11576
11577 * tree.def (TRY_CATCH_EXPR): Correct documentation.
11578
11579 2016-03-31 Vladimir Makarov <vmakarov@redhat.com>
11580
11581 PR rtl-optimization/70461
11582 * ira-color.c (allocno_copy_cost_saving): Use allocno class if it
11583 is necessary.
11584
11585 2016-03-31 Martin Liska <mliska@suse.cz>
11586
11587 PR hsa/70399
11588 * hsa-brig.c (hsa_op_immed::emit_to_buffer): Emit either
11589 a tree value or an immediate integer value to a buffer
11590 that is eventually copied to a BRIG section.
11591 (emit_immediate_operand): Call the function here.
11592 * hsa-dump.c (dump_hsa_immed): Remove checking assert.
11593 * hsa-gen.c (hsa_op_immed::hsa_op_immed): Remove initialization
11594 of class' fields that are removed.
11595 (hsa_op_immed::~hsa_op_immed): Remove deinitialization.
11596 * hsa.h (class hsa_op_immed): Remove m_brig_repr and
11597 m_brig_repr_size fields.
11598
11599 2016-03-31 Martin Liska <mliska@suse.cz>
11600
11601 PR hsa/70391
11602 * hsa-gen.c (hsa_function_representation::update_dominance): New
11603 function.
11604 (convert_addr_to_flat_segment): Likewise.
11605 (gen_hsa_memory_set): New alignment argument.
11606 (gen_hsa_ctor_assignment): Likewise.
11607 (gen_hsa_insns_for_single_assignment): Provide alignment
11608 to gen_hsa_ctor_assignment.
11609 (gen_hsa_insns_for_direct_call): Add new argument.
11610 (expand_lhs_of_string_op): New function.
11611 (expand_string_operation_builtin): Likewise.
11612 (expand_memory_copy): New function.
11613 (expand_memory_set): New function.
11614 (gen_hsa_insns_for_call): Use HOST_WIDE_INT.
11615 (convert_switch_statements): Change signature.
11616 (generate_hsa): Use a return value of the function.
11617 (pass_gen_hsail::execute): Do not call
11618 convert_switch_statements here.
11619 * hsa-regalloc.c (hsa_regalloc): Call update_dominance.
11620 * hsa.h (hsa_function_representation::m_modified_cfg): New flag.
11621 (hsa_function_representation::update_dominance): New function.
11622
11623 2016-03-31 Martin Liska <mliska@suse.cz>
11624
11625 PR hsa/70391
11626 * hsa-brig.c (emit_directive_variable): Emit alignment
11627 according to hsa_symbol::m_align.
11628 * hsa-dump.c (hsa_byte_alignment): Move the function to another file.
11629 (dump_hsa_symbol): Dump alignment of HSA symbols.
11630 * hsa-gen.c (get_symbol_for_decl): Set-up alignment of a symbol.
11631 (gen_hsa_addr_with_align): New function.
11632 (hsa_bitmemref_alignment): Use newly added function.
11633 (gen_hsa_insns_for_load): Likewise.
11634 (gen_hsa_insns_for_store): Likewise.
11635 (gen_hsa_memory_copy): New argument added.
11636 (gen_hsa_insns_for_single_assignment): Respect
11637 alignment for assignments processed via gen_hsa_memory_copy.
11638 (gen_hsa_insns_for_direct_call): Likewise.
11639 (gen_hsa_insns_for_return): Likewise.
11640 (gen_function_def_parameters): Set default alignment.
11641 * hsa.c (hsa_object_alignment): New function.
11642 (hsa_byte_alignment): Pasted function.
11643 * hsa.h (hsa_symbol::m_align): New field.
11644
11645 2016-03-31 Bin Cheng <bin.cheng@arm.com>
11646
11647 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
11648 scratch field for goto case.
11649
11650 2016-03-31 James Greenhalgh <james.greenhalgh@arm.com>
11651
11652 * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.
11653
11654 2016-03-31 Ilya Enkovich <enkovich.gnu@gmail.com>
11655
11656 PR target/70442
11657 * config/i386/i386.c (scalar_chain::convert_op): Fix description.
11658 (scalar_chain::convert_insn): Call convert_op for reg
11659 moves to handle undefined registers.
11660
11661 2016-03-31 Nathan Sidwell <nathan@acm.org>
11662
11663 PR c++/70393
11664 * varasm.c (output_constructor_regular_field): Flush bitfield earlier.
11665 Assert we don't want to move backwards.
11666
11667 2016-03-31 Kirill Yukhin <kirill.yukhin@intel.com>
11668
11669 PR target/70453
11670 * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
11671
11672 2016-03-31 Jakub Jelinek <jakub@redhat.com>
11673
11674 PR rtl-optimization/70460
11675 * ira.c (indirect_jump_optimize): Don't substitute LABEL_REF
11676 with operand from REG_LABEL_OPERAND, instead substitute
11677 SET_SRC or REG_EQUAL note content if it is a LABEL_REF.
11678 Don't do anything for REG_NON_LOCAL_GOTO jumps.
11679
11680 2016-03-31 Martin Liska <mliska@suse.cz>
11681
11682 * passes.c (execute_one_pass): Do not call
11683 todo_after for a discarded function.
11684
11685 2016-03-31 Bin Cheng <bin.cheng@arm.com>
11686
11687 * tree-ssa-loop-ivopts.c (struct comp_cost): New scrach field.
11688 (no_cost, infinite_cost): Initialize the new field.
11689 (get_computation_cost_at): Record setup cost.
11690 (determine_use_iv_cost_address): Skip cost computation for sub
11691 uses if we can estimate it without losing accuracy.
11692
11693 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
11694
11695 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
11696 estimates here.
11697 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
11698 max_loop_iterations_int.
11699 (tree_unswitch_outer_loop): Likewise.
11700 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
11701 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
11702
11703 2016-03-30 Richard Biener <rguenther@suse.de>
11704
11705 PR middle-end/70450
11706 * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage.
11707
11708 2016-03-30 Jakub Jelinek <jakub@redhat.com>
11709
11710 PR target/70421
11711 * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
11712 in gen_blendm expander.
11713
11714 2016-03-30 Nick Clifton <nickc@redhat.com>
11715
11716 PR target/62254
11717 * config/arm/arm.c (arm_reload_out_hi): Add code to handle the
11718 case where we are already provided with an SImode SUBREG.
11719
11720 2016-03-30 H.J. Lu <hongjiu.lu@intel.com>
11721
11722 PR target/70439
11723 * config/i386/i386.c (ix86_expand_epilogue): Properly check
11724 conflict between DRAP register and __builtin_eh_return.
11725
11726 2016-03-30 Michael Matz <matz@suse.de>
11727 Richard Biener <rguenther@suse.de>
11728
11729 PR ipa/12392
11730 * ipa-polymorphic-call.c (struct type_change_info): Change
11731 speculative to an unsigned allowing to limit the work we do.
11732 (csftc_abort_walking_p): New inline function..
11733 (check_stmt_for_type_change): Limit the number of may-defs
11734 skipped for speculative devirtualization to
11735 max-speculative-devirt-maydefs.
11736 * params.def (max-speculative-devirt-maydefs): New param.
11737 * doc/invoke.texi (--param max-speculative-devirt-maydefs): Document.
11738
11739 2016-03-30 Mike Stump <mrs@gcc.gnu.org>
11740
11741 PR target/63890
11742 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
11743 and TARGET_MACHO.
11744
11745 2016-03-30 Patrick Palka <ppalka@gcc.gnu.org>
11746
11747 PR tree-optimization/59124
11748 * tree-vrp.c (register_edge_assert_for_2): For NAME != CST1
11749 where NAME = A +- CST2 add the assertion A != (CST1 -+ CST2).
11750
11751 2016-03-29 Jeff Law <law@redhat.com>
11752
11753 * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment.
11754
11755 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
11756
11757 * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
11758 to HOST_WIDE_INT.
11759
11760 2016-03-29 Thomas Schwinge <thomas@codesourcery.com>
11761
11762 * config/gnu.h (CPP_SPEC, LIB_SPEC): Don't override.
11763 * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt1.o instead of
11764 gcrt0.o if linking dynamically.
11765
11766 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
11767
11768 PR ipa/70283
11769 * ipa-devirt.c (methods_equal_p): New function.
11770 (compare_virtual_tables): Use it.
11771 * cgraph.h (symbol_table::symbol_suffix_separator): Declare.
11772 * cgraphclones.c (clone_function_name_1): Use
11773 symbol_table::symbol_suffix_separator.
11774 * coverage.c (build_var): Likewise.
11775 * symtab.c (symbol_table::symbol_suffix_separator): New.
11776
11777 2016-03-29 Jakub Jelinek <jakub@redhat.com>
11778
11779 PR rtl-optimization/70429
11780 * combine.c (simplify_shift_const_1): For ASHIFTRT don't optimize
11781 (cst1 >> count) >> cst2 into (cst1 >> cst2) >> count if
11782 mode != result_mode.
11783
11784 PR c++/70353
11785 * tree-inline.c (remap_decls): Don't add_local_decl if cfun is null.
11786
11787 PR tree-optimization/70405
11788 * ssa-iterators.h (num_imm_uses): Add missing braces.
11789
11790 2016-03-29 Vladimir Makarov <vmakarov@redhat.com>
11791
11792 PR rtl-optimization/68695
11793 * ira-color.c (allocno_copy_cost_saving): New.
11794 (improve_allocation): Use it.
11795
11796 2016-03-29 Richard Henderson <rth@redhat.com>
11797
11798 PR middle-end/70355
11799 * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.
11800
11801 2016-03-29 Richard Biener <rguenther@suse.de>
11802
11803 PR middle-end/70424
11804 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
11805 use alignment returned by get_pointer_alignment_1 if it is
11806 bigger than BITS_PER_UNIT.
11807 * builtins.c (get_pointer_alignment_1): Do not return true
11808 for alignment extracted from SSA info.
11809
11810 2016-03-28 James Bowman <james.bowman@ftdichip.com>
11811
11812 * config/ft32/ft32.opt (mnodiv): New.
11813 * config/ft32/ft32.md (*divsi3, *modsi3): Qualify with TARGET_NODIV.
11814 * doc/invoke.texi (FT32 Options -mnodiv): New.
11815
11816 2016-03-28 Kirill Yukhin <kirill.yukhin@intel.com>
11817
11818 PR target/70406
11819 * config/i386/i386.md (define_split, andn): Fix modes.
11820
11821 2016-03-26 Richard Biener <rguenther@suse.de>
11822 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
11823
11824 PR ipa/70366
11825 * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
11826 instead of
11827 TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
11828 as 2nd argument to cl_optimization_restore().
11829
11830 2016-03-25 Richard Henderson <rth@redhat.com>
11831
11832 PR target/70120
11833 * config/aarch64/aarch64.c (aarch64_asm_output_pool_epilogue): New.
11834 * config/aarch64/aarch64-protos.h: Declare it.
11835 * config/aarch64/aarch64.h (ASM_OUTPUT_POOL_EPILOGUE): New.
11836
11837 2016-03-25 Alan Modra <amodra@gmail.com>
11838
11839 PR target/70052
11840 * config/rs6000/constraints.md (j): Simplify.
11841 * config/rs6000/predicates.md (easy_fp_constant): Exclude
11842 decimal float 0.D.
11843 * config/rs6000/rs6000.md (zero_fp): New mode_attr.
11844 (mov<mode>_hardfloat, mov<mode>_hardfloat32, mov<mode>_hardfloat64,
11845 mov<mode>_64bit_dm, mov<mode>_32bit): Use zero_fp in place of j
11846 in all constraint alternatives.
11847 (movtd_64bit_nodm): Delete "j" constraint alternative.
11848
11849 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
11850
11851 * tree-ssa-propagate.c: Enhance docs for
11852 SSA_PROP_NOT_INTERESTING.
11853
11854 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
11855
11856 * doc/extend.texi: Fix typo in documentation to pure attribute.
11857
11858 2016-03-24 John David Anglin <danglin@gcc.gnu.org>
11859
11860 PR target/70319
11861 * config/pa/pa.md (bswapdi2): Use a scratch register.
11862
11863 2016-03-24 Richard Henderson <rth@redhat.com>
11864
11865 PR middle-end/69845
11866 * fold-const.c (extract_muldiv_1): Correct test for multiplication
11867 overflow.
11868
11869 2016-03-24 Uros Bizjak <ubizjak@gmail.com>
11870
11871 * config/i386/i386.md (*anddi3_doubleword): Generate AND insn
11872 using ix86_expand_binary_operator instead of gen_andsi3.
11873
11874 2016-03-24 Richard Biener <rguenther@suse.de>
11875
11876 PR tree-optimization/70396
11877 * tree-vect-stmts.c (vectorizable_comparison): Use
11878 get_vectype_for_scalar_type.
11879
11880 2016-03-24 Richard Biener <rguenther@suse.de>
11881
11882 PR middle-end/70370
11883 * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
11884 with register bases.
11885
11886 2016-03-24 Richard Biener <rguenther@suse.de>
11887
11888 PR tree-optimization/70372
11889 * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Use
11890 build_all_ones_cst to also handle vector types correctly.
11891
11892 2016-03-23 Michael Meissner <meissner@linux.vnet.ibm.com>
11893
11894 PR target/70381
11895 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
11896 -mfloat128 here.
11897
11898 2016-03-23 Marek Polacek <polacek@redhat.com>
11899
11900 PR c++/69884
11901 * doc/invoke.texi: Document -Wignored-attributes.
11902
11903 2016-03-23 Bin Cheng <bin.cheng@arm.com>
11904
11905 PR tree-optimization/69042
11906 * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
11907 parameter from 30 to 40.
11908
11909 2016-03-23 Bin Cheng <bin.cheng@arm.com>
11910
11911 PR tree-optimization/69042
11912 * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Add IV cand
11913 for use with constant offset stripped in base.
11914
11915 2016-03-23 Richard Biener <rguenther@suse.de>
11916
11917 PR middle-end/70251
11918 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust
11919 mode compatibility check.
11920 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
11921
11922 2016-03-23 Jeff Law <law@redhat.com>
11923
11924 PR tree-optimization/64058
11925 * tree-ssa-coalesce.c (struct coalesce_pair): Add new field
11926 CONFLICT_COUNT.
11927 (struct ssa_conflicts): Move up earlier in the file.
11928 (conflicts_, var_map_): New static variables.
11929 (initialize_conflict_count): New function to initialize the
11930 CONFLICT_COUNT field for each conflict pair.
11931 (compare_pairs): Lazily initialize the conflict count and use it
11932 as the first tie-breaker.
11933 (sort_coalesce_list): Add new arguments conflicts, map. Initialize
11934 and wipe conflicts_ and map_ around the call to qsort. Remove
11935 special case for 2 coalesce pairs.
11936 * bitmap.c (bitmap_count_unique_bits): New function.
11937 (bitmap_count_bits_in_word): New function, extracted from
11938 bitmap_count_bits.
11939 (bitmap_count_bits): Use bitmap_count_bits_in_word.
11940 * bitmap.h (bitmap_count_unique_bits): Declare it.
11941
11942 2016-03-23 Ilya Enkovich <enkovich.gnu@gmail.com>
11943
11944 PR target/69917
11945 * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
11946 transparent alias chain for decl assembler name.
11947 * config/sol2.c (solaris_assemble_visibility): Likewise.
11948
11949 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11950
11951 * config/arm/arm1020e.md (1020call_op): Reduce reservation
11952 duration.
11953 (v10_fdivs): Likewise.
11954 (v10_fdivd): Likewise.
11955
11956 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11957
11958 PR driver/70132
11959 * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
11960 to not call fclose twice on file.
11961
11962 2016-03-23 Jakub Jelinek <jakub@redhat.com>
11963
11964 PR tree-optimization/70354
11965 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
11966 oprnd0 is wider than oprnd1 and there is a cast from the wider
11967 type to oprnd1, mask it with the mask of the narrower type.
11968
11969 PR target/70321
11970 * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
11971 Optimize TARGET_STV splitters, if high or low word of last argument
11972 is 0 or -1.
11973
11974 2016-03-22 Jeff Law <law@redhat.com>
11975
11976 PR target/70232
11977 tree-ssa-threadbackward.c
11978 (fsm_find_control_statement_thread_paths): Correctly distinguish
11979 between old style jump threads vs FSM jump threads.
11980
11981 2016-03-22 Ilya Enkovich <enkovich.gnu@gmail.com>
11982
11983 PR target/70302
11984 * config/i386/i386.c (scalar_chain::convert_op): Support
11985 uninitialized register usage case.
11986
11987 2016-03-22 Richard Biener <rguenther@suse.de>
11988
11989 PR middle-end/70251
11990 * genmatch.c (gen_transform): Adjust last parameter to a three-state
11991 int...
11992 (capture::gen_transform): ... to change behavior when substituting
11993 a condition into cond or not-cond expr context.
11994 (dt_simplify::gen_1): Adjust.
11995 * gimple-match-head.c: Include gimplify.h for unshare_expr.
11996 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Revert
11997 last change and instead change to
11998 A + (B vcmp C ? 1 : 0) -> A - (B vcmp C ? -1 : 0).
11999 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
12000
12001 2016-03-22 Anthony Green <green@moxielogic.com>
12002
12003 * config/moxie/moxiebox.h (CC1_SPEC): Define. Fix endianness
12004 issue for moxiebox targets.
12005 (CC1PLUS_SPEC): Ditto.
12006
12007 2016-03-22 Richard Biener <rguenther@suse.de>
12008
12009 PR middle-end/70333
12010 * fold-const.c (extract_muldiv_1): Properly perform multiplication
12011 in the wide type.
12012
12013 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
12014
12015 * config/i386/i386.c (def_builtin): Remove duplicated functionality.
12016
12017 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
12018
12019 PR target/70325
12020 * config/i386/i386.c (def_builtin): Handle
12021 OPTION_MASK_ISA_AVX512VL to be and-ed with other
12022 bits.
12023 (const struct builtin_description bdesc_special_args[]):
12024 Remove duplicate ISA bits.
12025
12026 2016-03-22 Jakub Jelinek <jakub@redhat.com>
12027
12028 PR target/70329
12029 * config/i386/i386.c (ix86_expand_vecop_qihi): Don't bother computing
12030 d.perm[i] for i >= d.nelt. If not full_interleave, compute d.perm[i]
12031 in a way that works also for AVX512BW.
12032
12033 PR target/70300
12034 * config/i386/i386.md (cvtsd2ss splitter): Unpack in destination
12035 instead of source if operands[1] is xmm16 and above and
12036 !TARGET_AVX512VL. Use avx512f_vec_dupv16sf_1 instead of
12037 vec_interleave_lowv4sf if we need to unpack xmm16 and above.
12038
12039 PR c++/70295
12040 * gimplify.c (gimplify_modify_expr): Call gimple_set_no_warning
12041 on assign if (*from_p) is a comparison, set it to
12042 TREE_NO_WARNING (*from_p).
12043
12044 2016-03-21 Jakub Jelinek <jakub@redhat.com>
12045
12046 PR middle-end/70326
12047 * lra.c (restore_scratches): Ignore deleted insns.
12048
12049 2016-03-21 Marc Glisse <marc.glisse@inria.fr>
12050 Jakub Jelinek <jakub@redhat.com>
12051
12052 PR tree-optimization/70317
12053 * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
12054 to HONOR_NANS.
12055
12056 2016-03-21 Uros Bizjak <ubizjak@gmail.com>
12057
12058 PR target/70327
12059 * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
12060 of ix86_expand_move.
12061 (movoi): Ditto.
12062 (movti): Use general_operand for operand 1 predicate.
12063
12064 2016-03-21 Martin Liska <mliska@suse.cz>
12065
12066 * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
12067 insns.
12068 (dump_hsa_symbol): Dump BRIG offset of hsa_symbols.
12069
12070 2016-03-21 Martin Liska <mliska@suse.cz>
12071
12072 PR ipa/70306
12073 * ipa-icf.c (sem_function::parse): Skip static
12074 constructors and destructors.
12075
12076 2016-03-21 Jakub Jelinek <jakub@redhat.com>
12077
12078 PR target/70296
12079 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If IDENT is
12080 function-like macro, peek following token(s) if it is followed
12081 by CPP_OPEN_PAREN token with optional padding in between, and
12082 if not, don't treat it like a macro.
12083
12084 2016-03-21 Thomas Schwinge <thomas@codesourcery.com>
12085 Alexander Monakov <amonakov@ispras.ru>
12086
12087 * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
12088 for the stabs debug format.
12089
12090 2016-03-21 Richard Biener <rguenther@suse.de>
12091
12092 PR tree-optimization/70310
12093 * tree-vect-generic.c (expand_vector_condition): Fold the built
12094 condition.
12095
12096 2016-03-21 Kirill Yukhin <kirill.yukhin@intel.com>
12097
12098 PR target/70293
12099 * config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2):
12100 Block third alternative for AVX-512VL target,
12101
12102 2016-03-21 Martin Liska <mliska@suse.cz>
12103
12104 PR hsa/70234
12105 * hsa-brig.c (emit_function_directives): Mark unemitted
12106 global variables for emission.
12107 * hsa-gen.c (hsa_symbol::hsa_symbol): Initialize a new flag.
12108 (get_symbol_for_decl): Likewise.
12109 * hsa.h (struct hsa_symbol): New flag.
12110
12111 2016-03-21 Richard Biener <rguenther@suse.de>
12112
12113 PR tree-optimization/70288
12114 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Make sure
12115 we do not estimate unsimplified all-constant conditionals or
12116 switches as optimized away.
12117
12118 2016-03-21 Andrey Belevantsev <abel@ispras.ru>
12119
12120 PR rtl-optimization/69102
12121 * sched-deps.c (sched_analyze_insn): Do not set last_args_size field
12122 when we have a readonly dependency context.
12123
12124 2016-03-18 Jeff Law <law@redhat.com>
12125
12126 PR rtl-optimization/70263
12127 * ira.c (memref_used_between_p): Assert we found END in the insn chain.
12128 (update_equiv_regs): When trying to move a store to after the insn
12129 that sets the source of the store, make sure the store occurs after
12130 the insn that sets the source of the store. When successful note
12131 the REG_EQUIV note created in the dump file.
12132
12133 2016-03-16 David Wohlferd <dw@LimeGreenSocks.com>
12134 Bernd Schmidt <bschmidt@redhat.com>
12135
12136 * doc/extend.texi: Document more potential problems with basic asms.
12137
12138 2016-03-18 Bernd Schmidt <bschmidt@redhat.com>
12139
12140 PR rtl-optimization/70278
12141 * lra-constraints.c (split_reg): Handle the case where biggest_mode is
12142 VOIDmode.
12143
12144 2016-03-18 Jason Merrill <jason@redhat.com>
12145
12146 * calls.c (load_register_parameters): Fix zero size sibcall logic.
12147
12148 2016-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
12149
12150 * config/i386/sse.md: Use vpbroadcastq for broadcasting DF
12151 values to 128b regs.
12152
12153 2016-03-18 Ilya Enkovich <enkovich.gnu@gmail.com>
12154
12155 PR tree-optimization/70252
12156 * tree-vect-stmts.c (supportable_widening_operation): Check resulting
12157 boolean vector has a proper number of elements.
12158 (supportable_narrowing_operation): Likewise.
12159
12160 2016-03-18 Tom de Vries <tom@codesourcery.com>
12161
12162 PR ipa/70269
12163 * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.
12164
12165 2016-03-18 Jakub Jelinek <jakub@redhat.com>
12166
12167 * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
12168 instead of replace_rtx for DEBUG_INSNs.
12169
12170 2016-03-18 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
12171
12172 * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
12173 load type reservations.
12174
12175 2016-03-17 John David Anglin <danglin@gcc.gnu.org>
12176
12177 PR target/70188
12178 * config/pa/constraints.md: Revert 2015-02-13 change. Use
12179 define_constraint for "Q" and "T" constraints.
12180
12181 2016-03-17 Evandro Menezes <e.menezes@samsung.com>
12182
12183 Tweak the pipeline model for Exynos M1
12184
12185 * config/aarch64/aarch64.c (exynosm1_tunings): Enable weak prefetching
12186 model.
12187
12188 2016-03-17 David Malcolm <dmalcolm@redhat.com>
12189
12190 PR c/70264
12191 * diagnostic-show-locus.c (compatible_locations_p): Handle the case
12192 where one or both locations aren't within a line_map.
12193
12194 2016-03-17 H.J. Lu <hongjiu.lu@intel.com>
12195
12196 PR driver/70192
12197 * opts.c (finish_options): Don't set flag_pie to the default if
12198 -fpic, -fPIC, -fno-pic or -fno-PIC is used. Set flag_pic to 0
12199 if it is -1.
12200
12201 2016-03-17 Joern Rennecke <joern.rennecke@embecosm.com>
12202
12203 * config/i386/i386.md (*movv4qicc_insn+1..36): Pass
12204 true as ALL_REGS argument to replace_rtx.
12205
12206 2016-03-17 Richard Biener <rguenther@suse.de>
12207
12208 PR debug/70271
12209 * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
12210 last.
12211
12212 2016-03-17 Jakub Jelinek <jakub@redhat.com>
12213
12214 PR target/70245
12215 * rtl.h (replace_rtx): Add ALL_REGS argument.
12216 * rtlanal.c (replace_rtx): Likewise. If true, use REGNO
12217 equality and assert mode is the same, instead of just rtx pointer
12218 equality.
12219 * config/i386/i386.md (mov + arithmetics with load peephole): Pass
12220 true as ALL_REGS argument to replace_rtx.
12221
12222 2016-03-17 Ilya Enkovich <enkovich.gnu@gmail.com>
12223
12224 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply
12225 for boolean vector with vector mode only.
12226 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
12227
12228 2016-03-17 Nick Clifton <nickc@redhat.com>
12229
12230 PR target/70162
12231 * config/rx/rx.c (rx_print_integer): Print negative constants in
12232 decimal.
12233
12234 2016-03-17 Jakub Jelinek <jakub@redhat.com>
12235
12236 PR target/70261
12237 * rtlanal.c (replace_rtx): Revert 2016-03-16 change.
12238
12239 2016-03-16 Richard Henderson <rth@redhat.com>
12240 Richard Biener <rguenth@suse.de>
12241
12242 PR middle-end/70240
12243 PR middle-end/68215
12244 PR tree-opt/68714
12245 * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
12246 first operand as is_gimple_condexpr.
12247
12248 PR middle-end/70240
12249 PR middle-end/68215
12250 Revert r231575
12251 2015-12-11 Eric Botcazou <ebotcazou@adacore.com>
12252 * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter.
12253 Do not gimplify the result.
12254 (do_unop): Adjust call to tree_vec_extract.
12255 (do_binop): Likewise.
12256 (do_compare): Likewise.
12257 (do_plus_minus): Likewise.
12258 (do_negate): Likewise.
12259 (expand_vector_condition): Likewise.
12260 (do_cond): Likewise.
12261
12262 2016-03-16 Richard Henderson <rth@redhat.com>
12263
12264 PR target/70048
12265 * config/aarch64/aarch64.c (virt_or_elim_regno_p): New.
12266 (aarch64_classify_address): Use it.
12267 (aarch64_legitimize_address): Force all subexpressions of PLUS
12268 into registers. Simplify as (sfp+const)+reg or (reg+reg)+const.
12269
12270 2016-03-16 Jakub Jelinek <jakub@redhat.com>
12271 Richard Biener <rguenth@suse.de>
12272
12273 PR target/70245
12274 * rtlanal.c (replace_rtx): For REG, if from is a REG,
12275 return to even if only REGNO is equal, and assert
12276 mode is the same.
12277
12278 2016-03-11 Jeff Law <law@redhat.com>
12279
12280 PR rtl-optimization/70224
12281 * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
12282
12283 2016-03-16 Richard Henderson <rth@redhat.com>
12284
12285 PR middle-end/70199
12286 * function.h (struct function): Add has_forced_label_in_static.
12287 * gimplify.c (force_labels_r): Set it.
12288 * lto-streamer-in.c (input_struct_function_base): Read it.
12289 * lto-streamer-out.c (output_struct_function_base): Write it.
12290 * tree-inline.c (has_label_address_in_static_1): Remove.
12291 (copy_forbidden): Remove fndecl parameter; test
12292 has_forced_label_in_static.
12293 (inline_forbidden_p): Update call to copy_forbidden.
12294 (tree_versionable_function_p): Likewise.
12295 * ipa-chkp.c (chkp_instrumentable_p): Likewise.
12296 (chkp_versioning): Likewise.
12297 * tree-inline.h (copy_forbidden): Update decl.
12298
12299 2016-03-16 Marek Polacek <polacek@redhat.com>
12300
12301 PR c/70093
12302 * cgraphunit.c (cgraph_node::expand_thunk): Also build call to the
12303 function being thunked if the result type doesn't have fixed size.
12304 * gimplify.c (gimplify_modify_expr): Also set LHS if the result type
12305 doesn't have fixed size.
12306
12307 2016-03-16 Bin Cheng <bin.cheng@arm.com>
12308
12309 * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
12310 reporting malformed loop nest.
12311
12312 2016-03-16 Tom de Vries <tom@codesourcery.com>
12313
12314 PR lto/70187
12315 * ipa-devirt.c (possible_polymorphic_call_targets): Move
12316 nodes.length () == 1 test to before first nodes[0] access.
12317
12318 2016-03-16 Tom de Vries <tom@codesourcery.com>
12319
12320 PR tree-optimization/68715
12321 * graphite-scop-detection.c (scop_detection::merge_sese): Add missing
12322 single_pred_p test.
12323
12324 2016-03-16 Tom de Vries <tom@codesourcery.com>
12325
12326 PR tree-optimization/68809
12327 * graphite-scop-detection.c (same_close_phi_node): Test if result types
12328 are the same.
12329
12330 2016-03-16 Carlos O'Donell <carlos@redhat.com>
12331 Sandra Loosemore <sandra@codesourcery.com>
12332
12333 * doc/extend.texi (Common Function Attributes): Describe ifunc impact
12334 on leaf attribute. Mention ELF interposition problems.
12335
12336 2016-03-16 Alan Modra <amodra@gmail.com>
12337
12338 PR rtl-optimization/69195
12339 PR rtl-optimization/47992
12340 * ira.c (indirect_jump_optimize): Ignore artificial defs.
12341 Add comments.
12342
12343 2016-03-15 Eric Botcazou <ebotcazou@adacore.com>
12344
12345 PR bootstrap/69513
12346 * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.
12347
12348 2016-03-15 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
12349
12350 * config/avr/avr.md (rotl<mode>3): Set mode for operand 2.
12351
12352 2016-03-15 Jakub Jelinek <jakub@redhat.com>
12353
12354 PR rtl-optimization/70222
12355 * combine.c (simplify_shift_const_1): For A >> B >> C LSHIFTRT
12356 optimization if mode is different from result_mode, queue up masking
12357 of the result in outer_op. Formatting fix.
12358
12359 PR middle-end/70239
12360 * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
12361 of safe_grow.
12362
12363 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
12364
12365 PR rtl-optimization/69032
12366 * sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
12367 looping backwards over basic block insns.
12368
12369 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
12370
12371 PR target/66660
12372 * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
12373 to non-speculative when propagating trap bits.
12374
12375 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
12376
12377 PR rtl-optimization/63384
12378 * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
12379 DEBUG_INSN_P insns.
12380
12381 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
12382
12383 PR target/64411
12384 * sched-deps.c (get_implicit_reg_pending_clobbers): New function,
12385 factored out from ...
12386 (sched_analyze_insn): ... here.
12387 * sched-int.h (get_implicit_reg_pending_clobbers): Declare it.
12388 * sel-sched-ir.c (setup_id_implicit_regs): New function, use
12389 get_implicit_reg_pending_clobbers in it.
12390 (setup_id_reg_sets): Use setup_id_implicit_regs.
12391 (deps_init_id): Ditto.
12392
12393 2016-03-15 Tom de Vries <tom@codesourcery.com>
12394
12395 PR ipa/70161
12396 * cgraph.c (cgraph_node::get_body): Save, reset and restore
12397 dump_file_name.
12398 * passes.c (execute_one_ipa_transform_pass): Add missing argument to
12399 execute_function_dump.
12400 (execute_one_pass): Don't dump function if it will be dumped after ipa
12401 transform.
12402
12403 2016-03-15 Segher Boessenkool <segher@kernel.crashing.org>
12404
12405 * genrecog.c (match_pattern_2): If pred is NULL don't call
12406 safe_predicate_mode on it.
12407
12408 2016-03-14 Jakub Jelinek <jakub@redhat.com>
12409
12410 PR middle-end/70219
12411 * lra-constraints.c (delete_move_and_clobber): Change assertion
12412 to also allow dregno == 0.
12413
12414 2016-03-14 Richard Henderson <rth@redhat.com>
12415
12416 PR tree-opt/68714
12417 * tree-ssa-reassoc.c (ovce_extract_ops, optimize_vec_cond_expr): New.
12418 (can_reassociate_p): Allow ANY_INTEGRAL_TYPE_P.
12419 (reassociate_bb): Use optimize_vec_cond_expr; avoid
12420 optimize_range_tests, attempt_builtin_copysign and attempt_builtin_powi
12421 on vectors.
12422
12423 2016-03-14 Bernd Schmidt <bschmidt@redhat.com>
12424
12425 PR target/70083
12426 * lra-lives.c (process_bb_lives): Also update biggest mode for hard
12427 regs.
12428 (lra_create_live_ranges_1): initialize hard register biggest_mode to
12429 VOIDmode.
12430 * lra-constraints.c (split_reg): For hard regs, try to find the
12431 biggest single-register mode used in the function.
12432
12433 2016-03-14 Richard Biener <rguenther@suse.de>
12434
12435 PR tree-optimization/56365
12436 * tree-ssa-phiopt.c (minmax_replacement): Handle alternate
12437 constants to compare against.
12438
12439 2016-03-14 Segher Boessenkool <segher@kernel.crashing.org>
12440
12441 PR target/70098
12442 * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
12443 *ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output.
12444 (define_split for the GPR case): Use int_reg_operand instead of
12445 gpc_reg_operand for the output.
12446
12447 2016-03-14 Tom de Vries <tom@codesourcery.com>
12448
12449 PR tree-optimization/70045
12450 * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Unshare
12451 create_empty_if_region_on_edge argument.
12452
12453 2016-03-13 Eric Botcazou <ebotcazou@adacore.com>
12454
12455 * config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define.
12456 (STACK_CHECK_PROTECT): Likewise.
12457 * config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
12458 (STACK_CHECK_PROTECT): Likewise.
12459 * config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
12460 (STACK_CHECK_PROTECT): Likewise.
12461 * config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise.
12462 * config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
12463 (STACK_CHECK_PROTECT): Likewise.
12464
12465 2016-03-12 Andrey Belevantsev <abel@ispras.ru>
12466
12467 PR rtl-optimization/69307
12468 * sel-sched.c (choose_best_pseudo_reg): Properly check for hard
12469 registers in modes that span more than one register.
12470
12471 2016-03-12 Vladimir Makarov <vmakarov@redhat.com>
12472
12473 PR target/69614
12474 * lra-constraints.c (delete_move_and_clobber): New.
12475 (remove_inheritance_pseudos): Use it.
12476
12477 2016-03-12 Eric Botcazou <ebotcazou@adacore.com>
12478
12479 PR ada/70017
12480 * calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if
12481 the libcall is LCT_THROW.
12482 * explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call
12483 for the checking routine.
12484
12485 2016-03-11 Michael Meissner <meissner@linux.vnet.ibm.com>
12486
12487 PR target/70131
12488 * config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the
12489 optimization if we have direct move.
12490 (roundu32<mode>2_fprs): Likewise.
12491
12492 2016-03-11 Bernd Schmidt <bschmidt@redhat.com>
12493
12494 PR target/70123
12495 * lra-remat.c (operand_to_remat): Disallow hard regs in the value t
12496 be rematerialized.
12497 (reg_overlap_for_remat_p): Renamed from input_regno_present_p.
12498 Arguments swapped. All callers changed. Take reg_renumber into
12499 account, and Calculate and compare register ranges for hard regs.
12500
12501 2016-03-11 Jeff Law <law@redhat.com>
12502
12503 PR tree-optimization/70190
12504 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
12505 Handle cases where we can not extract the taken edge, even though we
12506 found a constant value.
12507
12508 PR tree-optimization/64058
12509 * tree-ssa-coalesce.c (struct coalesce_pair): Add new field INDEX.
12510 (num_coalesce_pairs): Move up earlier in file.
12511 (find_coalesce_pair): Initialize the INDEX field for each pair
12512 discovered.
12513 (compare_pairs): No longer sort on the elements in each pair.
12514 Instead break ties with the index of the coalesce pair.
12515
12516 2016-03-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12517
12518 PR target/70002
12519 * config/aarch64/aarch64-protos.h
12520 (aarch64_save_restore_target_globals): New prototype.
12521 * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
12522 Call the above when popping pragma.
12523 * config/aarch64/aarch64.c (aarch64_save_restore_target_globals):
12524 New function.
12525 (aarch64_set_current_function): Rewrite using the above.
12526
12527 2016-03-11 Jakub Jelinek <jakub@redhat.com>
12528
12529 PR tree-optimization/70177
12530 * gimple-expr.h (extract_ops_from_tree_1): Renamed to ...
12531 (extract_ops_from_tree): ... this. In the 2 argument
12532 overload remove _1 suffix.
12533 * gimple-expr.c (extract_ops_from_tree_1): Renamed to ...
12534 (extract_ops_from_tree): ... this.
12535 * gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree):
12536 Adjust callers.
12537 * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
12538 * tree-ssa-forwprop.c (defcodefor_name): Call 3 operand
12539 extract_ops_from_tree instead of 2 operand one.
12540
12541 2016-03-11 Alan Lawrence <alan.lawrence@arm.com>
12542
12543 PR tree-optimization/70013
12544 * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
12545 for constant-pool entries.
12546
12547 2016-03-11 Jakub Jelinek <jakub@redhat.com>
12548
12549 PR rtl-optimization/70174
12550 * expmed.c (store_bit_field_using_insv): Use gen_lowpart_if_possible
12551 followed by gen_lowpart on force_reg instead of just gen_lowpart.
12552
12553 PR tree-optimization/70169
12554 * tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and
12555 LABEL_DECL like VAR_DECL. Emit nothing instead of gcc_unreachable
12556 for unknown codes.
12557
12558 2016-03-11 Ilya Enkovich <enkovich.gnu@gmail.com>
12559 Jakub Jelinek <jakub@redhat.com>
12560
12561 PR target/70160
12562 * config/i386/i386.c (scalar_chain::convert_reg): Skip uses
12563 of uninitialized values.
12564
12565 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
12566
12567 * config/s390/s390.md ("trunctddd2"): Turn former define_insn into
12568 define_expand.
12569 ("*trunctddd2"): New pattern definition.
12570 ("trunctdsd2"): Set prep_for_short_prec rounding mode for the
12571 TD->DD truncation.
12572
12573 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
12574
12575 * config/s390/s390.md (BFP_RND_*, DFP_RND_*): Add new constant
12576 definitions for BFP and DFP rounding modes.
12577 ("fixuns_truncdddi2", "fixuns_trunctddi2")
12578 ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2")
12579 ("fix_trunc<DSF:mode><GPR:mode>2", "fix_trunc<mode>di2")
12580 ("fix_trunctf<mode>2"): Use the new constants instead of magic
12581 numbers.
12582
12583 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
12584
12585 * config/s390/constraints.md: Adjust comment.
12586 ("Y"): Adjust comment. Rename s390_decompose_shift_count to
12587 s390_decompose_addrstyle_without_index.
12588 * config/s390/predicates.md (shift_count_or_setmem_operand):
12589 Rename to setmem_operand.
12590 * config/s390/s390-protos.h
12591 (s390_decompose_shift_count): Rename to
12592 s390_decompose_addrstyle_without_index.
12593 * config/s390/s390.c (s390_decompose_shift_count)
12594 (s390_mem_constraint, print_shift_count_operand)
12595 (print_operand_address, print_operand): Rename
12596 s390_decompose_shift_count to
12597 s390_decompose_addrstyle_without_index and rename
12598 print_shift_count_operand to print_addrstyle_operand troughout the
12599 file.
12600 * config/s390/s390.md ("setmem_long_<P:mode>", "*setmem_long")
12601 ("*setmem_long_and", "*setmem_long_31z", "*setmem_long_and_31z"):
12602 Rename shift_count_or_setmem_operand to setmem_operand.
12603 * config/s390/vx-builtins.md ("vec_insert<mode>")
12604 ("vec_promote<mode>"): Replace shift_count_or_setmem_operand with
12605 nonmemory_operand.
12606
12607 2016-03-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12608
12609 PR target/70168
12610 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
12611 Handle overlapping retval and newval.
12612
12613 2016-03-10 Nick Clifton <nickc@redhat.com>
12614
12615 PR target/7044
12616 * config/aarch64/aarch64.c
12617 (aarch64_override_options_after_change_1): When forcing
12618 flag_omit_frame_pointer to be true, use a special value that can
12619 be detected if this function is called again, thus preventing
12620 flag_omit_leaf_frame_pointer from being forced to be false.
12621
12622 2016-03-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12623
12624 * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
12625 Set x_flag_omit_leaf_frame_pointer when handling
12626 -momit-leaf-frame-pointer.
12627
12628 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
12629
12630 PR lto/69589
12631 * cgraph.c (cgraph_node::dump): Dump split_part and
12632 indirect_call_target.
12633 * cgraph.h (cgraph_node): Add indirect_call_target flag.
12634 * ipa.c (has_addr_references_p): Cleanup.
12635 (is_indirect_call_target_p): New.
12636 (walk_polymorphic_call_targets): Do not mark virtuals that may be
12637 called indirectly as local.
12638 (symbol_table::remove_unreachable_nodes): Compute indirect_call_target.
12639
12640 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
12641
12642 PR ipa/69630
12643 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
12644 on cxa_pure_virtual.
12645
12646 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
12647
12648 PR lto/69589
12649 * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
12650
12651 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
12652
12653 PR lto/69589
12654 * tree.c (need_assembler_name_p): Only record main variant type names.
12655
12656 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
12657
12658 PR target/70113.
12659 * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_843419_DEFAULT):
12660 Always define to 0 or 1.
12661 (TARGET_FIX_ERR_A53_843419): New macro.
12662 * config/aarch64/aarch64-elf-raw.h
12663 (TARGET_FIX_ERR_A53_843419_DEFAULT): Update for above changes.
12664 * config/aarch64/aarch64-linux.h: Likewise.
12665 * config/aarch64/aarch64.c
12666 (aarch64_override_options_after_change_1): Do not default
12667 aarch64_nopcrelative_literal_loads to true if Cortex-A53 erratum
12668 843419 is on.
12669 (aarch64_attributes): Handle fix-cortex-a53-843419.
12670 (aarch64_can_inline_p): Likewise.
12671 * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.
12672
12673 2016-03-10 Alan Lawrence <alan.lawrence@arm.com>
12674 Jakub Jelinek <jakub@redhat.com>
12675
12676 * common.opt (funconstrained-commons, flag_unconstrained_commons): New.
12677 * tree.c (array_at_struct_end_p): Do not limit to size of decl for
12678 DECL_COMMONS if flag_unconstrained_commons is set.
12679 * tree-dfa.c (get_ref_base_and_extent): Likewise.
12680 * doc/invoke.texi (Optimize Options): Add -funconstrained-commons.
12681 (funconstrained-commons): Document.
12682
12683 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
12684
12685 * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
12686 aarch64-fusion-pairs.def and aarch64-tuning-flags.def
12687
12688 2016-03-10 Ilya Enkovich <enkovich.gnu@gmail.com>
12689
12690 * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
12691 has a proper number of elements.
12692
12693 2016-03-10 Alan Modra <amodra@gmail.com>
12694
12695 PR rtl-optimization/69195
12696 PR rtl-optimization/47992
12697 * ira.c (recorded_label_ref): Delete.
12698 (update_equiv_regs): Return void.
12699 (indirect_jump_optimize): New function.
12700 (ira): Call indirect_jump_optimize and delete_trivially_dead_insns
12701 before regstat_compute_ri. Don't rebuild_jump_labels here.
12702 Delete update_regstat.
12703
12704 2016-03-10 Richard Biener <rguenther@suse.de>
12705
12706 PR tree-optimization/70128
12707 * tree-ssa-structalias.c (set_uids_in_ptset): Set
12708 vars_contains_nonlocal for any FUNCTION_DECL or LABEL_DECL.
12709
12710 2016-03-09 Jakub Jelinek <jakub@redhat.com>
12711
12712 PR tree-optimization/70152
12713 * tree-sra.c (replace_removed_params_ssa_names): Copy over
12714 SSA_NAME_OCCURS_IN_ABNORMAL_PHI from old_name to new_name.
12715
12716 PR target/70086
12717 * config/i386/i386.md (truncdfsf2 splitter): Use gen_vec_concatv2df
12718 instead of gen_sse2_loadlpd.
12719 * config/i386/sse.md (*vec_concatv2df): Rename to...
12720 (vec_concatv2df): ... this.
12721
12722 PR tree-optimization/70127
12723 * fold-const.c (operand_equal_p): Revert the 2015-10-28 change.
12724
12725 2016-03-09 David Malcolm <dmalcolm@redhat.com>
12726
12727 PR c/68473
12728 PR c++/70105
12729 * diagnostic-show-locus.c (compatible_locations_p): New function.
12730 (layout::layout): Sanitize ranges using compatible_locations_p.
12731
12732 2016-03-09 David Malcolm <dmalcolm@redhat.com>
12733
12734 PR c/68473
12735 PR c++/70105
12736 * diagnostic-show-locus.c (layout_range::layout_range): Replace
12737 location_range param with three const expanded_locations * and a
12738 bool.
12739 (layout::layout): Replace call to
12740 rich_location::lazily_expand_location with get_expanded_location.
12741 Extract the range and perform location expansion here, passing
12742 the results to the layout_range ctor.
12743 * diagnostic.c (source_range::debug): Delete.
12744 * diagnostic.h (diagnostic_expand_location): Reimplement in terms
12745 of rich_location::get_expanded_location.
12746 * gcc-rich-location.c (get_range_for_expr): Delete.
12747 (gcc_rich_location::add_expr): Reimplement to avoid the
12748 rich_location::add_range overload that took a location_range,
12749 passing a location_t instead.
12750
12751 2016-03-09 Richard Biener <rguenther@suse.de>
12752 Jakub Jelinek <jakub@redhat.com>
12753
12754 PR tree-optimization/70138
12755 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
12756 Also skip vect_double_reduction_def.
12757
12758 2016-03-09 Jakub Jelinek <jakub@redhat.com>
12759
12760 PR target/70049
12761 * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
12762 if the operand is "m".
12763
12764 2016-03-09 Nathan Sidwell <nathan@acm.org>
12765
12766 * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.
12767
12768 2016-03-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
12769
12770 * config/i386/i386.c (processor_target_table): Fix cost table
12771 intialization order for znver1.
12772
12773 2016-03-08 Jakub Jelinek <jakub@redhat.com>
12774
12775 * ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling
12776 - becuase -> because.
12777 * ipa-reference.c (ignore_module_statics): Likewise.
12778 * cgraph.c (cgraph_node::get_body): Likewise.
12779 * ipa-inline.c (early_inliner): Likewise.
12780 * ipa-devirt.c (types_same_for_odr): Likewise.
12781 * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
12782 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Likewise.
12783
12784 2016-03-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12785
12786 * tree-ssa-math-opts.c: Fix typo in comment.
12787
12788 2016-03-08 Jakub Jelinek <jakub@redhat.com>
12789
12790 PR target/70110
12791 * config/i386/i386.c (scalar_chain::make_vector_copies,
12792 scalar_chain::convert_reg): Call end_sequence in between
12793 get_insns and emit_conversion_insns rather than after both
12794 calls.
12795
12796 2016-03-07 Uros Bizjak <ubizjak@gmail.com>
12797
12798 PR target/70064
12799 * config/i386/i386.h (machine_function): Add
12800 pc_thunk_call_expanded flag.
12801 (ix86_pc_thunk_call_expanded): New define.
12802 * config/i386/i386.md (set_got, set_got_labelled): New expanders.
12803 (*set_got): Rename insn pattern from set_got.
12804 (*set_got_labelled): Rename inst pattern from set_got_labelled.
12805 * config/i386/i386.c (ix86_compute_frame_layout): Use
12806 ix86_pc_thunk_call_expanded to prevent red-zone.
12807
12808 2016-03-07 Martin Jambor <mjambor@suse.cz>
12809
12810 * hsa.h (hsa_get_ctor_statements): Declare.
12811 (hsa_get_dtor_statements): Likewise.
12812 (hsa_get_kernel_dispatch_type): Likewise.
12813 * hsa.c (hsa_get_ctor_statements): New function.
12814 (hsa_get_dtor_statements): Likewise.
12815 (hsa_get_kernel_dispatch_type): Likewise.
12816 * hsa-brig.c (hsa_cdtor_statements): Removed.
12817 (hsa_output_libgomp_mapping): Use hsa_get_ctor_statements and
12818 hsa_get_dtor_statements.
12819 * hsa-gen.c (hsa_kernel_dispatch_type): Removed.
12820 (get_hsa_kernel_dispatch_offset): Use hsa_get_kernel_dispatch_type.
12821
12822 2016-03-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
12823
12824 * config/arm/arm-cores.def (cortex-r8): New.
12825 * config/arm/arm-tables.opt (cortex-r8): Regenerate.
12826 * config/arm/arm-tune.md: Likewise.
12827 * doc/invoke.texi: Add cortex-r8 to list of cpu values.
12828
12829 2016-03-07 Martin Sebor <msebor@redhat.com>
12830
12831 PR rtl-optimization/19705
12832 * doc/invoke.texi (Options That Control Optimization): Clarify
12833 -fno-branch-count-reg.
12834
12835 2016-02-26 Richard Biener <rguenther@suse.de>
12836 Jeff Law <law@redhat.com>
12837
12838 PR tree-optimization/69740
12839 * cfghooks.c (remove_edge): Request loop fixups if we delete
12840 an edge that might turn an irreducible loop into a natural
12841 loop.
12842 * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
12843 Move after definition of loops_state_clear.
12844
12845 2016-03-07 Bin Cheng <bin.cheng@arm.com>
12846
12847 PR rtl-optimization/69052
12848 * rtlanal.c (commutative_operand_precedence): Set higher precedence
12849 to CONST_WIDE_INT.
12850
12851 2016-03-07 Tom de Vries <tom@codesourcery.com>
12852
12853 PR tree-optimization/70116
12854 * tree-ssa-tail-merge.c (merge_stmts_p): New function, handling
12855 is_tm_ending stmts and ubsan/asan internal functions.
12856 (find_duplicate): Use it. Don't test is_tm_ending here.
12857
12858 2016-03-07 Richard Biener <rguenther@suse.de>
12859
12860 PR tree-optimization/70115
12861 * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
12862 (propagate_constants_for_unrolling): Use replace_uses_by.
12863
12864 2016-03-07 Nathan Sidwell <nathan@codesourcery.com>
12865
12866 PR middle-end/69916
12867 * omp-low.c (struct oacc_loop): Add ifns.
12868 (new_oacc_loop_raw): Initialize it.
12869 (finish_oacc_loop): Clear mask & flags if no ifns.
12870 (oacc_loop_discover_walk): Count IFN_GOACC_LOOP calls.
12871 (oacc_loop_xform_loop): Add ifns arg & adjust.
12872 (oacc_loop_process): Adjust oacc_loop_xform_loop call.
12873
12874 2016-03-07 Richard Henderson <rth@redhat.com>
12875
12876 PR rtl-opt/70061
12877 * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
12878 (insert_value_copy_on_edge): Likewise.
12879
12880 2016-03-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12881
12882 * config/arm/arm_neon.h: Show error if using with soft-float ABI.
12883
12884 2016-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12885
12886 PR target/62281
12887 * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
12888
12889 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
12890
12891 * config/i386/i386.c (znver1_cost): Fix Multiply cost.
12892
12893 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
12894
12895 Fix sseimul type attribute.
12896 * config/i386/znver1.md
12897 (znver1_sseimul, znver1_sseimul_avx256, znver1_sseimul_load,
12898 znver1_sseimul_avx256_load) : Fix the type attribute.
12899 (znver1_sseimul_di, znver1_sseimul_load_di): Fix type attribute,
12900 pipe usage and latency.
12901
12902 2016-03-05 Jakub Jelinek <jakub@redhat.com>
12903
12904 PR c++/70084
12905 * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
12906 of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
12907 to the right type.
12908
12909 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
12910
12911 PR c/69973
12912 * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
12913
12914 PR rtl-optimization/69941
12915 * postreload.c (reload_combine_recognize_pattern): Ensure all uses of
12916 the reg share its mode.
12917
12918 2016-03-04 Jeff Law <law@redhat.com>
12919
12920 PR tree-optimization/69196
12921 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
12922 If the both SSA_NAMEs are anonymous, then consider them unassociated
12923 and include the PHI in the statement count.
12924
12925 2016-03-05 Tom de Vries <tom@codesourcery.com>
12926
12927 * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
12928 construct in oacc routine. Check for oacc region in oacc routine.
12929
12930 2016-03-04 Jakub Jelinek <jakub@redhat.com>
12931
12932 PR target/70062
12933 * config/i386/i386.c (decide_alg): Add RECUR argument. Revert
12934 2016-02-22 changes, instead don't recurse if RECUR is already true.
12935 Don't change *dynamic_check if RECUR. Adjust recursive caller
12936 to pass true to the new argument.
12937 (ix86_expand_set_or_movmem): Adjust decide_alg caller.
12938
12939 PR target/70059
12940 * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
12941 <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
12942 fixes.
12943 (vec_set_hi_<mode><mask_name>): Likewise. Swap VEC_CONCAT operands.
12944
12945 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
12946
12947 PR rtl-optimization/57676
12948 * lra-assigns.c (lra_assign): Guard test for maximum iterations
12949 with flag_checking.
12950
12951 2016-03-04 Ilya Enkovich <enkovich.gnu@gmail.com>
12952
12953 * tree-vect-patterns.c (search_type_for_mask): Handle
12954 comparison of booleans.
12955
12956 2016-03-04 Jakub Jelinek <jakub@redhat.com>
12957
12958 * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
12959 Fix @xref usage.
12960
12961 PR debug/69947
12962 * dwarf2out.c (prune_unused_types_walk_loc_descr): Handle
12963 all other ops that have dw_val_class_die_ref operands,
12964 and DW_OP_GNU_entry_value.
12965
12966 2016-03-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12967
12968 PR rtl-optimization/69904
12969 * config/arm/arm.c (arm_cannot_copy_insn_p):
12970 Return true for load-exclusive instructions.
12971
12972 2016-03-03 Jakub Jelinek <jakub@redhat.com>
12973
12974 PR target/70021
12975 * tree-vect-stmts.c (vect_mark_relevant): Remove USED_IN_PATTERN
12976 argument, if STMT_VINFO_IN_PATTERN_P (stmt_info), always mark
12977 the pattern no matter if it is used just by non-pattern, pattern
12978 or mix thereof.
12979 (process_use, vect_mark_stmts_to_be_vectorized): Adjust callers.
12980 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
12981 oprnd1 def_stmt is in pattern, don't look through it.
12982
12983 2016-03-03 Marek Polacek <polacek@redhat.com>
12984
12985 PR middle-end/70050
12986 * match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
12987
12988 2016-03-03 Martin Liska <mliska@suse.cz>
12989
12990 PR tree-optimization/70043
12991 * tree-vect-loop.c (optimize_mask_stores): Move iterator to
12992 previous statement if we see a debug statement.
12993
12994 2016-03-03 Richard Biener <rguenther@suse.de>
12995
12996 PR tree-optimization/55936
12997 * tree-vrp.c (compare_name_with_value): Add use_equiv_p
12998 parameter and guard unsafe equivalence use.
12999 (vrp_evaluate_conditional_warnv_with_ops): Always use
13000 safe equivalences but not via the quadratic compare_names
13001 helper.
13002
13003 2016-03-03 Michael Collison <michael.collison@linaro.org>
13004
13005 PR target/70014
13006 * config/arm/arm.md (*subsi3_carryin_const): Change predicate
13007 for operand 1 to s_register_operand. Change predicate for operand
13008 2 to arm_not_immediate_operand.
13009
13010 2016-03-02 H.J. Lu <hongjiu.lu@intel.com>
13011
13012 * doc/tm.texi: Regenerated.
13013
13014 2016-03-02 Richard Henderson <rth@redhat.com>
13015
13016 PR rtl-opt/67145
13017 * simplify-rtx.c (simplify_plus_minus): Allow reassoc without
13018 simplification when all args are positive non-fixed registers.
13019
13020 2016-03-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
13021
13022 * target.def (lra_p): Specify that new ports should use LRA.
13023
13024 2016-03-02 Jakub Jelinek <jakub@redhat.com>
13025
13026 PR libgomp/69555
13027 * gimplify.c (gimplify_decl_expr): For decls with REFERENCE_TYPE, also
13028 gimplify_type_sizes the type they refer to.
13029 (omp_notice_variable): Handle reference vars to VLAs.
13030 * omp-low.c (lower_omp_target): Emit setup of OMP_CLAUSE_PRIVATE
13031 reference to VLA decls in the second pass instead of first pass.
13032
13033 2016-03-02 Tom de Vries <tom@codesourcery.com>
13034
13035 PR tree-optimization/68659
13036 * graphite-isl-ast-to-gimple.c (collect_all_ssa_names): Handle
13037 new_expr == NULL_TREE.
13038 (get_new_name): Handle ADDR_EXPR.
13039
13040 2016-03-02 Bin Cheng <bin.cheng@arm.com>
13041
13042 PR rtl-optimization/69052
13043 * loop-invariant.c (canonicalize_address): New function.
13044 (inv_can_prop_to_addr_use): Check validity of address expression
13045 which is canonicalized by above function.
13046
13047 2016-03-02 Alan Modra <amodra@gmail.com>
13048
13049 PR ipa/69990
13050 * ipa-icf.c (sem_variable::merge): Do not merge an alias with
13051 larger alignment.
13052
13053 2016-03-02 Jakub Jelinek <jakub@redhat.com>
13054
13055 PR target/70028
13056 * config/i386/i386.md (kmovw): Move m constraint to 2nd alternative.
13057 (*movhi_internal): Put mask moves from and to memory separately
13058 from moves from/to GPRs.
13059
13060 2016-03-02 Richard Biener <rguenther@suse.de>
13061
13062 * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
13063 GENERIC expressions in GIMPLE.
13064
13065 2016-03-02 Richard Biener <rguenther@suse.de>
13066
13067 * config/i386/i386.c (type_natural_mode): Fix typo.
13068
13069 2016-03-02 Nick Clifton <nickc@redhat.com>
13070
13071 * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.
13072
13073 2016-03-02 Richard Biener <rguenther@suse.de>
13074 Uros Bizjak <ubizjak@gmail.com>
13075
13076 PR target/67278
13077 * config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
13078
13079 2016-03-02 Richard Biener <rguenther@suse.de>
13080
13081 PR middle-end/67278
13082 * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
13083
13084 2016-03-02 Marek Polacek <polacek@redhat.com>
13085
13086 PR c/67854
13087 * gimplify.c (gimplify_va_arg_expr): Use expanded location for the
13088 "is promoted to" warning.
13089
13090 2016-03-01 DJ Delorie <dj@redhat.com>
13091
13092 * config.gcc: Deprecate mep-*.
13093
13094 2016-03-01 Vladimir Makarov <vmakarov@redhat.com>
13095
13096 PR middle-end/70025
13097 * lra-constraints.c (regno_val_use_in): New.
13098 (match_reload): Use it instead of regno_use_in.
13099
13100 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
13101
13102 PR rtl-optimization/70007
13103 * gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
13104 references present in REG_EQUAL notes attached to non-SET patterns.
13105
13106 2016-03-01 Jeff Law <law@redhat.com>
13107
13108 PR tree-optimization/69196
13109 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
13110 Appropriately clamp the number of statements to copy when the
13111 thread path does not traverse a loop backedge.
13112
13113 PR tree-optimization/69196
13114 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
13115 Do count some PHIs in the thread path against the insn count. Decrease
13116 final statement count by one as the control statement in the last
13117 block will get removed. Remove special cased code for handling PHIs
13118 in the last block.
13119
13120 2016-03-01 Uros Bizjak <ubizjak@gmail.com>
13121
13122 PR target/70027
13123 * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
13124 asm dialect alternatives to explicit GOTPCREL calls.
13125
13126 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
13127
13128 PR ada/70017
13129 * ira.c (do_reload): Issue warning for generic stack checking here...
13130 * reload1.c (reload): ...instead of here and streamline it.
13131
13132 2016-03-01 Nick Clifton <nickc@redhat.com>
13133
13134 * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
13135
13136 2016-03-01 Richard Biener <rguenther@suse.de>
13137
13138 PR tree-optimization/69983
13139 * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
13140 types and fall back to operand_equal_p.
13141
13142 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13143
13144 Revert
13145 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13146
13147 * config/s390/constraints.md ("jm8"): New constraint.
13148 * config/s390/predicates.md ("const_int_8bitset_operand"): New
13149 predicate.
13150 * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
13151 into ...
13152 ("*setmem_long<setmem_and>"): New pattern.
13153 ("*setmem_long_31z", "*setmem_long_and_31z"): Merge
13154 into ...
13155 ("*setmem_long_31z<setmem_and>"): New pattern.
13156 * config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
13157 New substitution rules with the required attributes.
13158
13159
13160 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13161
13162 Revert
13163 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13164
13165 * gensupport.c (process_substs_on_one_elem): Split loop to
13166 complete mark_operands_used_in_match_dup on all expressions in the
13167 vector first.
13168 (adjust_operands_numbers): Inline into process_substs_on_one_elem
13169 and remove function.
13170
13171 2016-03-01 Richard Biener <rguenther@suse.de>
13172
13173 PR middle-end/70022
13174 * fold-const.c (fold_indirect_ref_1): Fix range checking for
13175 vector BIT_FIELD_REF extract.
13176
13177 2016-03-01 Richard Biener <rguenther@suse.de>
13178
13179 PR tree-optimization/69994
13180 * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
13181
13182 2016-03-01 Ilya Enkovich <enkovich.gnu@gmail.com>
13183
13184 PR tree-optimization/69956
13185 * tree-vect-stmts.c (supportable_widening_operation): Support
13186 multi-step conversion of boolean vectors.
13187 (supportable_narrowing_operation): Likewise.
13188
13189 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13190
13191 * config/s390/s390.c (s390_decompose_address): Don't accept SImode
13192 anymore.
13193
13194 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13195
13196 * config/s390/subst.md (DSI_VI): New mode iterator.
13197 ("addr_style_op_subst"): Use DSI_VI instead of DSI.
13198 * config/s390/vector.md ("vec_set<mode>"): Move expander before
13199 the insn definition.
13200 ("*vec_set<mode>"): Change predicate and add alternative to
13201 support only either register or const_int operands as element
13202 selector.
13203 ("*vec_set<mode>_plus"): New pattern to support reg + const_int
13204 operands.
13205 ("vec_extract<mode>"): New expander.
13206 ("*vec_extract<mode>"): New insn definition supporting reg and
13207 const_int element selectors.
13208 ("*vec_extract<mode>_plus"): New insn definition supporting
13209 reg+const_int element selectors.
13210 ("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
13211 following expander+insn definition.
13212 ("<vec_shifts_name><mode>3"): New expander.
13213 ("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.
13214
13215 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13216
13217 * config/s390/s390.md ("*tabort_1"): Change predicate to
13218 nonmemory_operand. Add a second alternative to cover
13219 register as well as const int operands.
13220 ("*tabort_1_plus"): New pattern definition.
13221
13222 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13223
13224 * config/s390/s390.md ("*ashrdi3_cc_31")
13225 ("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
13226 ("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
13227 Merge insn definitions into ...
13228 ("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
13229 New pattern definition.
13230 ("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
13231 ("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
13232 ("*ashr<mode>3_and"): Merge insn definitions into ...
13233 ("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
13234 New pattern definition.
13235 * config/s390/subst.md ("addr_style_op_cc_subst")
13236 ("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
13237 substitutions patterns plus attributes.
13238 Add ashiftrt to SUBST iterator.
13239
13240 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13241
13242 * config/s390/s390.md ("<shift><mode>3"): Change predicate of
13243 op2 to nonmemory_operand.
13244 ("*<shift>di3_31", "*<shift>di3_31_and"):
13245 Merge into single pattern definition ...
13246 ("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
13247 ("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
13248 pattern definition ...
13249 ("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
13250 * config/s390/subst.md: Add ashift and lshiftrt to SUBST
13251 iterator.
13252
13253 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13254
13255 * config/s390/predicates.md (const_int_6bitset_operand): New
13256 predicate.
13257 * config/s390/s390.md: Include subst.md.
13258 ("rotl<mode>3"): New expander.
13259 ("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
13260 ...
13261 ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
13262 * config/s390/subst.md: New file.
13263
13264 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13265
13266 * config/s390/s390.md ("op_type", "atype", "length" attributes):
13267 Remove RRR type. It doesn't really exist.
13268 ("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
13269 attributes.
13270 ("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
13271 ("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
13272 ("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
13273 ("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
13274 ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
13275 ("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
13276 `enabled' attribute.
13277
13278 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13279
13280 * gensupport.c (process_substs_on_one_elem): Split loop to
13281 complete mark_operands_used_in_match_dup on all expressions in the
13282 vector first.
13283 (adjust_operands_numbers): Inline into process_substs_on_one_elem
13284 and remove function.
13285
13286 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
13287
13288 PR target/69706
13289 * config/sparc/sparc.c (NWORDS_UP): Rename to...
13290 (CEIL_NWORDS): ...this. Use CEIL macro.
13291 (compute_fp_layout): Adjust to above renaming.
13292 (function_arg_union_value): Likewise.
13293 (sparc_arg_partial_bytes): Likewise.
13294 (sparc_function_arg_advance): Likewise.
13295
13296 2016-02-29 Jeff Law <law@redhat.com>
13297
13298 PR tree-optimization/70005
13299 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
13300 where an object with a boolean range is compared against a value
13301 outside [0..1].
13302
13303 PR tree-optimization/69999
13304 * gimple-ssa-split-paths.c (split_paths): When duplicating a block
13305 with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule
13306 loop cleanups.
13307
13308 2016-02-29 Richard Biener <rguenther@suse.de>
13309
13310 PR tree-optimization/69994
13311 * tree-ssa-reassoc.c (gimple_nop_conversion_p): New function.
13312 (get_unary_op): Look through nop conversions.
13313 (ops_equal_values_p): New function, look for equality diregarding
13314 nop conversions.
13315 (eliminate_plus_minus_pair): Use ops_equal_values_p
13316 (repropagate_negates): Do not use get_unary_op here.
13317
13318 2016-02-29 Martin Liska <mliska@suse.cz>
13319
13320 * system.h: Poison ENABLE_CHECKING macro.
13321
13322 2016-02-29 Martin Liska <mliska@suse.cz>
13323
13324 * hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS
13325 is presented in dump flags.
13326 * hsa-regalloc.c (linear_scan_regalloc): Likewise.
13327 (hsa_regalloc): Likewise.
13328
13329 2016-02-19 Richard Biener <rguenther@suse.de>
13330
13331 PR tree-optimization/69980
13332 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
13333 permutation of those we need to keep.
13334
13335 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
13336
13337 PR target/69706
13338 * config/sparc/sparc.c (ROUND_ADVANCE): Rename to...
13339 (NWORDS_UP): ...this
13340 (init_cumulative_args): Minor tweaks.
13341 (sparc_promote_function_mode): Likewise.
13342 (scan_record_type): Delete.
13343 (traverse_record_type): New function template.
13344 (classify_data_t): New structure type.
13345 (classify_registers): New inline function.
13346 (function_arg_slotno): In 64-bit mode, bail out early if FP slots are
13347 exhausted. Instantiate traverse_record_type on classify_registers and
13348 deal with the case of a structure passed in slot #15 with no FP field
13349 in the first word.
13350 (assign_data_t): New structure type.
13351 (compute_int_layout): New static function.
13352 (compute_fp_layout): Likewise.
13353 (count_registers): New inline function.
13354 (assign_int_registers): New static function.
13355 (assign_fp_registers): Likewise.
13356 (assign_registers): New inline function.
13357 (function_arg_record_value_1): Delete.
13358 (function_arg_record_value_2): Likewise.
13359 (function_arg_record_value_3): Likewise.
13360 (function_arg_record_value): Adjust to above changes. Instantiate
13361 traverse_record_type on count_registers to first count the number of
13362 registers to be used and then on assign_registers to assign them.
13363 (function_arg_union_value): Adjust to above renaming.
13364 (sparc_function_arg_1); Minor tweaks. Remove commented out code.
13365 (sparc_arg_partial_bytes): Adjust to above renaming. Deal with the
13366 case of a structure passed in slot #15
13367 (sparc_function_arg_advance): Likewise.
13368 (function_arg_padding): Minor tweak.
13369
13370 2016-02-29 Richard Biener <rguenther@suse.de>
13371
13372 PR tree-optimization/69720
13373 * tree-vect-loop.c (get_initial_def_for_reduction): Avoid
13374 the adjustment_def path for possibly vectorized defs.
13375 (vect_create_epilog_for_reduction): Handle vectorized initial
13376 defs properly.
13377
13378 2016-02-28 Eric Botcazou <ebotcazou@adacore.com>
13379
13380 * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
13381
13382 2016-02-27 Jeff Law <law@redhat.com>
13383
13384 Revert
13385 2016-02-26 Richard Biener <rguenther@suse.de>
13386 Jeff Law <law@redhat.com>
13387
13388 PR tree-optimization/69740
13389 * cfghooks.c (remove_edge): Request loop fixups if we delete
13390 an edge that might turn an irreducible loop into a natural
13391 loop.
13392
13393 2016-02-27 Jakub Jelinek <jakub@redhat.com>
13394
13395 PR rtl-optimization/69896
13396 * tree-vect-generic.c (get_compute_type): Avoid single element
13397 vector types.
13398
13399 2016-02-26 Evandro Menezes <e.menezes@samsung.com>
13400
13401 Rename the AArch64 tuning option and related functions to enable the
13402 Newton series for the reciprocal square root to reflect its
13403 approximative characteristic.
13404
13405 * config/aarch64/aarch64-protos.h (aarch64_emit_swrsqrt): Rename
13406 function to "aarch64_emit_approx_rsqrt".
13407 * config/aarch64/aarch64-tuning-flags.def: Rename tuning flag to
13408 AARCH64_EXTRA_TUNE_APPROX_RSQRT.
13409 * config/aarch64/aarch64.c (exynosm1_tunigs): Use new flag name.
13410 (xgene1_tunings): Likewise.
13411 (use_rsqrt_p): Likewise.
13412 (aarch64_emit_swrsqrt): Use new function name.
13413 * config/aarch64/aarch64-simd.md (aarch64_rsqrts_*): Likewise.
13414 * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): Reword the
13415 text explaining this option.
13416 * doc/invoke.texi (-mlow-precision-recip-sqrt): Likewise.
13417
13418 2016-02-26 Jakub Jelinek <jakub@redhat.com>
13419
13420 PR target/69969
13421 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
13422 complain about -mallow-movmisalign without -mvsx if
13423 TARGET_ALLOW_MOVMISALIGN was not set explicitly.
13424
13425 2016-02-26 Joel Sherrill <joel@rtems.org>
13426
13427 * config.gcc: Add x86_64-*-rtems*.
13428 * config/i386/rtems-64.h: New file.
13429
13430 2016-02-26 Joel Sherrill <joel@rtems.org>
13431
13432 * config.gcc: Add aarch64-*-rtems*.
13433 * config/aarch64/rtems.h: New file.
13434
13435 2016-02-26 Segher Boessenkool <segher@kernel.crashing.org>
13436
13437 PR target/69946
13438 * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
13439 shift amount using %h. Add comment.
13440
13441 2016-02-26 Richard Biener <rguenther@suse.de>
13442 Jeff Law <law@redhat.com>
13443
13444 PR tree-optimization/69740
13445 * cfghooks.c (remove_edge): Request loop fixups if we delete
13446 an edge that might turn an irreducible loop into a natural
13447 loop.
13448
13449 2016-02-26 Martin Jambor <mjambor@suse.cz>
13450
13451 PR middle-end/69920
13452 * tree-sra.c (sra_modify_assign): Do not remove loads of
13453 uninitialized aggregates to SSA_NAMEs.
13454
13455 2016-02-26 Richard Henderson <rth@redhat.com>
13456
13457 PR target/69709
13458 * config/s390/s390.md (risbg and risbgn splitters): Allocate new
13459 pseudo in case the target rtx matches the source of the left
13460 shift.
13461
13462 2016-02-26 Martin Jambor <mjambor@suse.cz>
13463
13464 PR hsa/69568
13465 * hsa.h (hsa_type_packed_p): Declare.
13466 * hsa.c (hsa_type_packed_p): New function.
13467 * hsa-gen.c (mem_type_for_type): Use unsigned type for packed
13468 loads.
13469 (gen_hsa_insns_for_store): Use hsa_type_packed_p.
13470 * hsa-brig.c (emit_basic_insn): Likewise.
13471
13472 2016-02-26 Martin Jambor <mjambor@suse.cz>
13473
13474 pr hsa/69674
13475 * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
13476 pointers.
13477 (gen_hsa_addr): Allow integer constants in TMR_INDEX2.
13478
13479 2016-02-26 Martin Jambor <mjambor@suse.cz>
13480
13481 * hsa.h (is_a_helper): New overload for hsa_op_immed for
13482 hsa_op_with_type operands.
13483 (hsa_unsigned_type_for_type): Declare.
13484 * hsa.c (hsa_unsigned_type_for_type): New function.
13485 * hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type.
13486 (gen_hsa_insns_for_operation_assignment): Satisfy constrains of
13487 the finalizer. Do not emit extra move.
13488
13489 2016-02-26 Martin Jambor <mjambor@suse.cz>
13490
13491 * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
13492 atomic operations in private segment.
13493
13494 2016-02-26 Martin Jambor <mjambor@suse.cz>
13495
13496 * omp-low.c (grid_find_ungridifiable_statement): Store problematic
13497 statements to wi->info. Also disallow omp simd constructs.
13498 (grid_target_follows_gridifiable_pattern): Use wi.info to dump reason
13499 for not gridifying. Dump special string for omp_for.
13500
13501 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13502
13503 PR target/69245
13504 * config/aarch64/aarch64.c (aarch64_set_current_function):
13505 Save/restore target globals when switching to
13506 target_option_default_node.
13507
13508 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13509
13510 PR target/69613
13511 * config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
13512 Return 0 if !SHIFT_COUNT_TRUNCATED.
13513
13514 2016-02-26 Jakub Jelinek <jakub@redhat.com>
13515 Eric Botcazou <ebotcazou@adacore.com>
13516
13517 PR rtl-optimization/69891
13518 * dse.c (scan_insn): If we can't figure out memset arguments
13519 or they are non-constant, call clear_rhs_from_active_local_stores.
13520
13521 2016-02-26 Martin Liska <mliska@suse.cz>
13522
13523 * doc/extend.texi: Mention clog10, clog10f an clog10l
13524 in Builtins section.
13525
13526 2016-02-26 Martin Liska <mliska@suse.cz>
13527
13528 * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
13529 CHECKING_P.
13530 (resolve_args_picking_1): Likewise.
13531 * dwarf2out.h (struct GTY): Likewise.
13532
13533 2016-02-26 Martin Liska <mliska@suse.cz>
13534
13535 * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
13536 with flag_checking.
13537 * hsa-regalloc.c (linear_scan_regalloc): Likewise.
13538
13539 2016-02-26 Markus Trippelsdorf <markus@trippelsdorf.de>
13540 Martin Liska <mliska@suse.cz>
13541
13542 * doc/install.texi: Mention --enable-valgrind-annotations.
13543
13544 2016-02-26 Richard Biener <rguenther@suse.de>
13545
13546 PR tree-optimization/69551
13547 * tree-ssa-structalias.c (get_constraint_for_ssa_var): When
13548 looking through aliases adjust DECL_PT_UID to refer to the
13549 ultimate alias target.
13550
13551 2016-02-25 Martin Liska <mliska@suse.cz>
13552
13553 PR middle-end/69919
13554 * alloc-pool.c (after_memory_report): New variable.
13555 * alloc-pool.h (base_pool_allocator ::release): Do not use
13556 the infrastructure if after_memory_report.
13557 * toplev.c (toplev::main): Mark after memory report.
13558
13559 2016-02-25 Richard Biener <rguenther@suse.de>
13560
13561 PR tree-optimization/48795
13562 * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
13563
13564 2016-02-25 Ilya Verbin <ilya.verbin@intel.com>
13565
13566 PR driver/68463
13567 * config/gnu-user.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o if
13568 offloading is enabled and -fopenacc or -fopenmp is specified.
13569 (CRTOFFLOADEND): Likewise.
13570 (GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
13571 (GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
13572 * lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
13573 (offload_objects_file_name): New static var.
13574 (tool_cleanup): Remove offload_objects_file_name file.
13575 (find_offloadbeginend): Replace with ...
13576 (find_crtoffloadtable): ... this.
13577 (run_gcc): Remove offload_argc and offload_argv.
13578 Get offload_objects_file_name from -foffload-objects=... option.
13579 Read names of object files with offload from this file, pass them to
13580 compile_images_for_offload_targets. Don't call find_offloadbeginend and
13581 don't pass offloadbegin and offloadend to the linker. Don't pass
13582 offload non-LTO files to the linker, because now they're not claimed.
13583
13584 2016-02-25 Jan Hubicka <hubicka@ucw.cz>
13585
13586 PR ipa/69630
13587 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
13588 on builtin_unreachable.
13589
13590 2016-02-25 Jakub Jelinek <jakub@redhat.com>
13591
13592 PR rtl-optimization/69896
13593 * regcprop.c: Include cfgrtl.h.
13594 (copyprop_hardreg_forward_1): If noop_p insn uses narrower
13595 than remembered mode, either delete it (if noop_move_p), or
13596 treat like copy_p but not noop_p instruction.
13597
13598 2016-02-24 Jakub Jelinek <jakub@redhat.com>
13599
13600 PR debug/69705
13601 * dwarf2out.c (gen_variable_die): Work around buggy LTO
13602 - allow NULL decl for Fortran DW_TAG_common_block variables.
13603
13604 2016-02-24 Jason Merrill <jason@redhat.com>
13605
13606 * common.opt (flifetime-dse): Add -flifetime-dse=1.
13607
13608 2016-02-24 Richard Biener <rguenther@suse.de>
13609 Jakub Jelinek <jakub@redhat.com>
13610
13611 PR middle-end/69760
13612 * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
13613 conditionally executed ops to well-defined overflow behavior.
13614
13615 2016-02-24 Jakub Jelinek <jakub@redhat.com>
13616
13617 PR middle-end/69915
13618 * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
13619 elements.
13620
13621 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13622
13623 PR rtl-optimization/69886
13624 * gcse.c (can_assign_to_reg_without_clobbers_p): Accept mode
13625 argument. Use it when checking validity of set instructions.
13626 (want_to_gcse_p): Pass mode to can_assign_to_reg_without_clobbers_p.
13627 (compute_ld_motion_mems): Update can_assign_to_reg_without_clobbers_p
13628 callsite.
13629 * rtl.h (can_assign_to_reg_without_clobbers_p): Update prototype.
13630 * store-motion.c (find_moveable_store): Update
13631 can_assign_to_reg_without_clobbers_p callsite.
13632
13633 2016-02-24 Richard Biener <rguenther@suse.de>
13634
13635 PR middle-end/68963
13636 * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
13637 bogus check.
13638 (record_nonwrapping_iv): Do not fall back to the low/high bound
13639 for non-constant IV bases if the stmt is not always executed.
13640
13641 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13642
13643 * config/arm/arm-cores.def (cortex-a32): New entry.
13644 * config/arm/arm-tables.opt: Regenerate.
13645 * config/arm/arm-tune.md: Regenerate.
13646 * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a32.
13647 * config/arm/t-aprofile: Handle mcpu=cortex-a32.
13648 * doc/invoke.texi (ARM Options): Document cortex-a32 as value
13649 for -mcpu and -mtune.
13650
13651 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13652
13653 PR target/69875
13654 * config/arm/arm.h (TARGET_HAVE_LPAE): Define.
13655 * config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value.
13656 * config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern.
13657 (atomic_loaddi_1): Delete.
13658 (atomic_loaddi): Rewrite expander using the above changes.
13659
13660 2016-02-24 Jakub Jelinek <jakub@redhat.com>
13661
13662 PR c/69918
13663 * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
13664 2 to 3.
13665
13666 2016-02-24 Jakub Jelinek <jakub@redhat.com>
13667 Richard Biener <rguenth@suse.de>
13668
13669 PR middle-end/69909
13670 * expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid
13671 set_mem_attributes if tem is SSA_NAME which got expanded
13672 as a MEM.
13673
13674 2016-02-24 Richard Biener <rguenther@suse.de>
13675
13676 PR tree-optimization/69907
13677 * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
13678 end of permutations for BB vectorization.
13679
13680 2016-02-24 Christian Bruel <christian.bruel@st.com>
13681
13682 * config/arm/arm-c.c (arm_option_override): Initialize
13683 target_option_current_node.
13684 * config/arm/arm.c (arm_pragma_target_parse): Replace
13685 build_target_option_node call by target_option_current_node.
13686 Set target_option_current_node.
13687 Fix comments.
13688
13689 2016-02-23 David Edelsohn <dje.gcc@gmail.com>
13690
13691 PR target/69810
13692 * config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
13693 define_insn_and_split to define_insn.
13694 (zero_extendqi<mode>2_dot2): Same.
13695 (extendqi<mode>2_dot): Same.
13696 (extendqi<mode>2_dot2): Same.
13697
13698 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
13699
13700 * config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores
13701 and add bypass for AES{D,E} and AESMC pairs.
13702 * config/aarch64/aarch64.c (exynosm1_tunings): Enable fusion of AES{D,E}
13703 and AESMC pairs.
13704
13705 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
13706
13707 * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
13708 series for reciprocal square root in Exynos M1.
13709
13710 2016-02-23 Martin Sebor <msebor@redhat.com>
13711
13712 PR c/69759
13713 * doc/extend.texi (Other Builtins): Document __builtin_alloca and
13714 __builtin_alloca_with_align.
13715
13716 2016-02-23 Richard Henderson <rth@redhat.com>
13717
13718 * config/i386/i386-c.c (ix86_target_macros): Remove __SEG_TLS.
13719 (ix86_register_pragmas): Remove __seg_tls.
13720 * config/i386/i386-protos.h (ADDR_SPACE_SEG_TLS): Remove.
13721 * config/i386/i386.c (ix86_print_operand_address_as): Don't handle it.
13722 (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): Remove.
13723 (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): Remove.
13724 (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): Remove.
13725 * doc/extend.texi (__seg_tls): Remove item.
13726
13727 2016-02-23 Richard Biener <rguenther@suse.de>
13728
13729 * alloc-pool.h (struct allocation_object): Make id member
13730 conditional on CHECKING_P again.
13731 (get_instance): Adjust.
13732 (base_pool_allocator): Likewise.
13733
13734 2016-02-23 Thomas Schwinge <thomas@codesourcery.com>
13735
13736 * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
13737 (parallelize_loops): In OpenACC kernels mode, set n_threads to
13738 zero.
13739 (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
13740 flag_openacc.
13741 * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
13742
13743 2016-02-23 Richard Biener <rguenther@suse.de>
13744
13745 * mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
13746 * bitmap.h (struct bitmap_usage): Likewise.
13747 (bitmap_move): Declare.
13748 * bitmap.c (register_overhead): Take size_t argument.
13749 (bitmap_move): New function.
13750 * df-problems.c (df_rd_transfer_function): Use bitmap_move
13751 to properly account overhead.
13752 * tree.c (free_node): Use tree_size.
13753
13754 2016-02-23 Jakub Jelinek <jakub@redhat.com>
13755
13756 PR c++/69902
13757 * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
13758 when inverting comparison.
13759
13760 PR c/69900
13761 * common.opt (Wunreachable-code): Add Warning flag.
13762
13763 2016-02-23 Mark Wielaard <mjw@redhat.com>
13764 Jakub Jelinek <jakub@redhat.com>
13765
13766 PR c/69911
13767 * cgraphunit.c (check_global_declaration): Check main_input_filename
13768 and DECL_SOURCE_FILE are not NULL.
13769
13770 2016-02-23 Martin Jambor <mjambor@suse.cz>
13771
13772 PR tree-optimization/69666
13773 * tree-sra.c (sra_modify_assign): Do not attempt to create
13774 default_def replacements for unscalarizable regions.
13775
13776 2016-02-20 Mark Wielaard <mjw@redhat.com>
13777
13778 PR c/28901
13779 * cgraphunit.c (check_global_declaration): Check level of
13780 warn_unused_const_variable and main_input_filename.
13781 * doc/invoke.texi (Warning Options): Add -Wunused-const-variable=.
13782 (-Wunused-variable): For C implies -Wunused-const-variable=1.
13783 (-Wunused-const-variable): Explain levels 1 and 2.
13784
13785 2016-02-22 Jakub Jelinek <jakub@redhat.com>
13786
13787 PR target/69888
13788 * config/i386/i386.c (decide_alg): Ensure we don't recurse with
13789 identical arguments. Formatting and spelling fixes.
13790
13791 PR target/69885
13792 * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
13793 be specified.
13794
13795 PR target/69894
13796 PR target/69895
13797 * config/m68k/t-opts (OPTIONS_H_EXTRA): Add m68k-microarchs.def
13798 and m68k-devices.def.
13799 * config/c6x/t-c6x (OPTIONS_H_EXTRA): Add c6x-isas.def.
13800 * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add aarch64-arches.def.
13801
13802 2016-02-22 Cesar Philippidis <cesar@codesourcery.com>
13803
13804 * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
13805 and HImode registers.
13806
13807 2016-02-22 Richard Biener <rguenther@suse.de>
13808
13809 PR tree-optimization/69882
13810 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Properly
13811 preserve permutations present because of gaps.
13812 (vect_supported_load_permutation_p): Always continue checking
13813 permutations after vect_attempt_slp_rearrange_stmts.
13814
13815 2016-02-22 Bin Cheng <bin.cheng@arm.com>
13816
13817 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
13818 min_profitable_estimate, rather than min_profitable_iters.
13819
13820 2016-02-22 Jakub Jelinek <jakub@redhat.com>
13821
13822 PR target/69885
13823 * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
13824 SImode for last match_operand.
13825
13826 2016-02-22 Martin Liska <mliska@suse.cz>
13827
13828 * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
13829 return bitsize - 1 as the return value.
13830
13831 2016-02-22 Oleg Endo <olegendo@gcc.gnu.org>
13832
13833 PR target/69806
13834 PR target/54089
13835 * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
13836 Handle negative shift counts.
13837 * config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
13838 force_reg on the shift constant.
13839 (lshrsi3): Likewise. Expand into lshrsi3_n* instead of lshrsi3_d.
13840 (lshrsi3_d): Handle negative shift counts.
13841
13842 2016-02-22 Richard Biener <rguenther@suse.de>
13843 Tom de Vries <tom@codesourcery.com>
13844
13845 * graph.c: Include dumpfile.h.
13846 (print_graph_cfg): Split into three overloads.
13847 * gdbhooks.py (class DotFn): Add and instantiate, adding command dot-fn.
13848
13849 2016-02-22 Tom de Vries <tom@codesourcery.com>
13850
13851 * gdbhooks.py (class DumpFn): Add and instantiate, adding command
13852 dump-fn.
13853
13854 2016-02-22 Richard Biener <rguenther@suse.de>
13855
13856 PR ipa/37448
13857 * ipa-inline-transform.c (inline_call): When not updating
13858 overall summaries adjust self size by the growth estimate.
13859 * ipa-inline.c (inline_to_all_callers_1): Add to the callers
13860 hash-set, do not update overall summaries here. Renamed from ...
13861 (inline_to_all_callers): ... this which is now wrapping the
13862 above and performing delayed overall summary update.
13863 (early_inline_small_functions): Delay updating of the overall
13864 summary.
13865
13866 2016-02-21 Markus Trippelsdorf <markus@trippelsdorf.de>
13867
13868 * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
13869 variable.
13870
13871 2016-02-19 Jakub Jelinek <jakub@redhat.com>
13872
13873 PR driver/69805
13874 * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use
13875 :%* in %:gt() argument.
13876 (greater_than_spec_func): Adjust for expecting only numbers,
13877 if there are more than two numbers, compare the last two.
13878
13879 2016-02-19 Jonathan Wakely <jwakely@redhat.com>
13880
13881 * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
13882 -Wnarrowing with -std.
13883
13884 2016-02-19 Jakub Jelinek <jakub@redhat.com>
13885
13886 PR c++/69851
13887 * expr.c (store_field): Don't use bit-field path if exp is
13888 COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is
13889 different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize
13890 and the assignment can be performed by bitwise copy. Formatting
13891 fix.
13892
13893 PR middle-end/69838
13894 * lra.c (lra_process_new_insns): If non-call exceptions are enabled,
13895 call copy_reg_eh_region_note_forward on before and/or after sequences
13896 and remove note from insn if it no longer can throw.
13897
13898 PR target/69820
13899 * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
13900 if TARGET_AVX512BW.
13901
13902 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13903
13904 * config/s390/vector.md: Add missing commutative operand markers
13905 to the patterns which qualify for one.
13906 * config/s390/vx-builtins.md: Likewise.
13907
13908 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13909
13910 * config/s390/vector.md (VI, VI_QHS): Add single element vector
13911 types to mode iterators.
13912 (vec_double): ... and mode attribute.
13913 * config/s390/vx-builtins.md (non_vec_int): Likewise.
13914
13915 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13916
13917 * config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
13918 Change the predicate of op2 from nonimmediate to general and let
13919 reload fix it if necessary.
13920
13921 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13922
13923 * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
13924
13925 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13926
13927 * config/s390/s390.c (s390_expand_vcond): Use the compare operand
13928 mode.
13929
13930 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13931
13932 * config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
13933 * config/s390/s390.c (s390_expand_vec_movstr): New function.
13934 * config/s390/s390.md ("movstr<P:mode>"): Call
13935 s390_expand_vec_movstr.
13936
13937 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13938
13939 * config/s390/s390.md: Add missing output modifier for operand 1
13940 to print it as address properly.
13941
13942 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13943
13944 * config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
13945 * config/s390/2964.md: New file.
13946 * config/s390/s390.c (s390_get_sched_attrmask): Use the right set
13947 of insn grouping attributes depending on the CPU level.
13948 (s390_get_unit_mask): New function.
13949 (s390_sched_score): Remove the OOO from the scheduling macros.
13950 Add loop to calculate a score for the instruction mix.
13951 (s390_sched_reorder): Likewise plus improve debug output.
13952 (s390_sched_variable_issue): Rename macros as above. Calculate
13953 the unit distances after actually scheduling an insn. Improve
13954 debug output.
13955 (s390_sched_init): Clear last_scheduled_unit_distance array.
13956 * config/s390/s390.md: Include 2964.md.
13957
13958 2016-02-18 Jakub Jelinek <jakub@redhat.com>
13959
13960 PR target/69671
13961 * config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
13962 *avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
13963 *avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
13964 *avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
13965 *avx512f_<code>v8div16qi2_mask_1): New insns.
13966
13967 2016-02-18 Michael Meissner <meissner@linux.vnet.ibm.com>
13968
13969 PR target/68404
13970 * config/rs6000/predicates.md (fusion_gpr_addis): Revert
13971 2016-02-09 change.
13972
13973 * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
13974 earlyclobber from target. Use wF constraint for fused memory
13975 address.
13976 (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
13977
13978 2016-02-18 Jakub Jelinek <jakub@redhat.com>
13979 Martin Liska <mliska@suse.cz>
13980
13981 PR sanitizer/69863
13982 * cfgexpand.c (asan_sanitize_stack_p): New function.
13983 (partition_stack_vars): Use the function.
13984 (expand_stack_vars): Likewise.
13985 (defer_stack_allocation): Likewise.
13986 (expand_used_vars): Likewise.
13987
13988 2016-02-18 Richard Biener <rguenther@suse.de>
13989
13990 PR middle-end/69553
13991 * fold-const.c (operand_equal_p): Properly compare offsets for
13992 IMAGPART_EXPR and ARRAY_REF.
13993
13994 2016-02-18 Nick Clifton <nickc@redhat.com>
13995
13996 PR target/62254
13997 PR target/69610
13998 * config/arm/arm.c (arm_option_override_internal): Disable
13999 interworking if the target does not support thumb instructions.
14000 (arm_reload_in_hi): Handle the case where a register to register
14001 move needs reloading because there is no simple pattern to handle
14002 it.
14003 (arm_reload_out_hi): Likewise.
14004
14005 2016-02-18 Richard Biener <rguenther@suse.de>
14006
14007 PR middle-end/69854
14008 * match.pd: Don't use fold_binary or fold_unary for folding
14009 constants.
14010
14011 2016-02-17 Jakub Jelinek <jakub@redhat.com>
14012
14013 PR c++/69850
14014 * gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
14015 on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
14016 * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
14017 warn on gimple_no_warning_p statements.
14018
14019 2016-02-17 Jonathan Wakely <jwakely@redhat.com>
14020
14021 * doc/extend.texi (C++ Attributes): Correct description of
14022 warn_unused type attribute.
14023
14024 2016-02-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14025
14026 * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
14027 correct instruction.
14028
14029 2016-02-17 Richard Biener <rguenther@suse.de>
14030
14031 PR rtl-optimization/69609
14032 * bb-reorder.c (struct bbro_basic_block_data): Add priority member.
14033 (find_traces_1_round): When ending a trace update cached priority
14034 of successors.
14035 (bb_to_key): Use cached priority when available.
14036 (copy_bb): Initialize cached priority.
14037 (reorder_basic_blocks_software_trace_cache): Likewise.
14038
14039 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14040
14041 PR target/69161
14042 * config/aarch64/predicates.md (aarch64_comparison_operator_mode):
14043 New predicate.
14044 (aarch64_comparison_operator): Break overly long line into two.
14045 (aarch64_comparison_operation): Likewise.
14046 * config/aarch64/aarch64.md (cstorecc4): Use
14047 aarch64_comparison_operator_mode instead of
14048 aarch64_comparison_operator.
14049 (cstore<mode>4): Likewise.
14050 (aarch64_cstore<mode>): Likewise.
14051 (*cstoresi_insn_uxtw): Likewise.
14052 (cstore<mode>_neg): Likewise.
14053 (*cstoresi_neg_uxtw): Likewise.
14054
14055 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14056
14057 PR target/69161
14058 * config/arm/predicates.md (arm_comparison_operator_mode):
14059 New predicate.
14060 * config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode
14061 instead of arm_comparison_operator.
14062 (*mov_negscc): Likewise.
14063 (*mov_notscc): Likewise.
14064 * config/arm/thumb2.md (*thumb2_mov_scc): Likewise.
14065 (*thumb2_mov_negscc): Likewise.
14066 (*thumb2_mov_negscc_strict_it): Likewise.
14067 (*thumb2_mov_notscc): Likewise.
14068 (*thumb2_mov_notscc_strict_it): Likewise.
14069
14070 2016-02-17 Wilco Dijkstra <wdijkstr@arm.com>
14071
14072 * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
14073 Add missing return.
14074
14075 2016-02-17 Eric Botcazou <ebotcazou@adacore.com>
14076
14077 * config/visium/visium.c (machine_libfunc_index): New enum.
14078 (machine_libfuncs): New structure.
14079 (visium_libfuncs): New static variable.
14080 (TARGET_INIT_LIBFUNCS): Define to...
14081 (visium_init_libfuncs): ...this. New function.
14082 (expand_block_move_4): Use the appropriate libfunc.
14083 (expand_block_move_2): Likewise.
14084 (expand_block_move_1): Likewise.
14085 (expand_block_set_4): Likewise.
14086 (expand_block_set_2): Likewise.
14087 (expand_block_set_1): Likewise.
14088 (visium_trampoline_init): Likewise.
14089
14090 2016-02-17 Nick Clifton <nickc@redhat.com>
14091
14092 * config/msp430/msp430.c (msp430_mcu_data): Sync with data from
14093 TI's devices.csv file as of March 2016.
14094
14095 2016-02-16 Kelvin Nilsen <kelvin@gcc.gnu.org>
14096
14097 PR Target/48344
14098 * opts-global.c (handle_common_deferred_options): Introduce and
14099 initialize two global variables to remember command-line options
14100 specifying a stack-limiting register.
14101 * opts.h: Add extern declarations of the two new global variables.
14102 * emit-rtl.c (init_emit_once): Initialize the stack_limit_rtx
14103 variable based on the values of the two new global variables.
14104
14105 2016-02-16 Jakub Jelinek <jakub@redhat.com>
14106
14107 PR c/69835
14108 * common.opt (Wnonnull-compare): New warning.
14109 * doc/invoke.texi (-Wnonnull): Remove text about comparison
14110 of arguments against NULL.
14111 (-Wnonnull-compare): Document.
14112 * Makefile.in (OBJS): Add gimple-ssa-nonnull-compare.o.
14113 * tree-pass.h (make_pass_warn_nonnull_compare): Declare.
14114 * passes.def (pass_warn_nonnull_compare): Add.
14115 * gimple-ssa-nonnull-compare.c: New file.
14116
14117 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
14118
14119 * config/aarch64/aarch64.c (cortexa57_tunings): Remove
14120 AARCH64_EXTRA_TUNE_RECIP_SQRT.
14121
14122 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
14123
14124 * config/aarch64/aarch64.c (use_rsqrt_p): Always use software
14125 reciprocal sqrt for -mlow-precision-recip-sqrt.
14126
14127 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
14128 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
14129
14130 * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
14131 always use lane loads to construct non-constant vectors.
14132
14133 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
14134
14135 * config/aarch64/aarch64.md
14136 (arch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Fix register
14137 constraints for operand 3.
14138 (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
14139
14140 2016-02-16 Jakub Jelinek <jakub@redhat.com>
14141 Richard Biener <rguenther@suse.de>
14142
14143 PR tree-optimization/69820
14144 * tree-vect-patterns.c (type_conversion_p): Return false if
14145 *orig_type is unsigned single precision or boolean.
14146 (vect_recog_dot_prod_pattern, vect_recog_widen_mult_pattern):
14147 Formatting fix.
14148
14149 2016-02-16 Jakub Jelinek <jakub@redhat.com>
14150
14151 PR rtl-optimization/69764
14152 PR rtl-optimization/69771
14153 * optabs.c (expand_binop): Ensure for shift optabs invalid CONST_INT
14154 op1 is valid for GET_MODE_INNER (mode) and force it into a reg.
14155
14156 2016-02-16 Richard Biener <rguenther@suse.de>
14157
14158 PR tree-optimization/69776
14159 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
14160 sets from caller.
14161 (indirect_refs_may_alias_p): Likewise.
14162 (refs_may_alias_p_1): Pass alias sets as from ao_ref.
14163 * tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set
14164 according to tbaa_p.
14165 * tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag.
14166 (optimize_stmt): For redundant store discovery do not allow tbaa.
14167
14168 2016-02-16 Bernd Schmidt <bschmidt@redhat.com>
14169
14170 PR tree-optimization/69714
14171 * tree-ssa-math-opts.c (find_bswap_or_nop): Revert previous change.
14172 Return NULL if we have irrelevant high bytes on BIG_ENDIAN.
14173
14174 2016-02-16 Claudiu Zissulescu <claziss@synopsys.com>
14175
14176 * config/arc/arc-modes.def (CC_FPU, CC_FPU_UNEQ): New modes.
14177 * config/arc/arc-opts.h (FPU_SP, FPU_SF, FPU_SC, FPU_SD, FPU_DP)
14178 (FPU_DF, FPU_DC, FPU_DD, FXP_DP): Define.
14179 * config/arc/arc.c (arc_init): Check FPU options.
14180 (get_arc_condition_code): Handle new CC_FPU* modes.
14181 (arc_select_cc_mode): Likewise.
14182 (arc_conditional_register_usage): Allow 64 bit datum into even-odd
14183 register pair only. Allow access for ARCv2 accumulator.
14184 (gen_compare_reg): Whenever we have FPU support use FPU compare
14185 instructions.
14186 (arc_reorg): Don't generate brcc insns when FPU compare
14187 instructions are involved.
14188 * config/arc/arc.h (TARGET_DPFP): Add TARGET_FP_DPAX condition.
14189 (TARGET_OPTFPE): Add condition when ARC EM can use optimized
14190 floating point emulation.
14191 (ACC_REG_FIRST, ACC_REG_LAST, ACCL_REGNO, ACCH_REGNO): Define.
14192 (REVERSE_CONDITION): Add new CC_FPU* modes.
14193 (TARGET_FP_SP_BASE): Define.
14194 (TARGET_FP_DP_BASE): Likewise.
14195 (TARGET_FP_SP_FUSED): Likewise.
14196 (TARGET_FP_DP_FUSED): Likewise.
14197 (TARGET_FP_SP_CONV): Likewise.
14198 (TARGET_FP_DP_CONV): Likewise.
14199 (TARGET_FP_SP_SQRT): Likewise.
14200 (TARGET_FP_DP_SQRT): Likewise.
14201 (TARGET_FP_DP_AX): Likewise.
14202 * config/arc/arc.md (ARCV2_ACC): New constant.
14203 (type): New fpu type attribute.
14204 (SDF): Conditional iterator.
14205 (cstore<mode>, cbranch<mode>): Change expand condition.
14206 (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3): New expands,
14207 handles FPU/FPX cases as well.
14208 * config/arc/arc.opt (mfpu): New option.
14209 * config/arc/fpx.md (addsf3_fpx, subsf3_fpx, mulsf3_fpx):
14210 Renamed.
14211 (adddf3, muldf3, subdf3): Removed.
14212 * config/arc/predicates.md (proper_comparison_operator): Recognize
14213 CC_FPU* modes.
14214 * config/arc/fpu.md: New file.
14215 * doc/invoke.texi (ARC Options): Document mfpu option.
14216
14217 2016-02-16 Richard Biener <rguenther@suse.de>
14218
14219 PR rtl-optimization/69291
14220 * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
14221 noce_operand_ok check.
14222
14223 2016-02-16 Tom de Vries <tom@codesourcery.com>
14224
14225 PR lto/67709
14226 * omp-low.c (simd_clone_create): Remove call to
14227 symtab->call_cgraph_insertion_hooks.
14228
14229 2016-02-16 Jakub Jelinek <jakub@redhat.com>
14230
14231 PR tree-optimization/69802
14232 * tree-ssa-reassoc.c (update_range_test): If op is
14233 SSA_NAME_IS_DEFAULT_DEF, give up unless tem is a positive
14234 op == 1 test of precision 1 integral op, otherwise handle
14235 that case as op itself. Fix up formatting.
14236 (optimize_range_tests_to_bit_test, optimize_range_tests): Fix
14237 up formatting.
14238
14239 2016-02-16 Richard Biener <rguenther@suse.de>
14240
14241 PR tree-optimization/69586
14242 * tree-vrp.c (register_edge_assert_for_2): Handle all integral
14243 types for conversion sources.
14244
14245 2016-02-16 Richard Biener <rguenther@suse.de>
14246
14247 PR middle-end/69801
14248 * fold-const.c (operand_equal_p): For COND_EXPR zero operand
14249 mask OEP_ADDRESS_OF.
14250
14251 2016-02-16 Alan Modra <amodra@gmail.com>
14252
14253 PR target/68973
14254 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter.
14255 (p8_mtvsrd_df, p8_mtvsrd_sf): New.
14256 (p8_mtvsrd_1, p8_mtvsrd_2): Delete.
14257 (p8_mtvsrwz): New.
14258 (p8_mtvsrwz_1, p8_mtvsrwz_2): Delete.
14259 (p8_xxpermdi_<mode>): Take two DF inputs rather than one TF.
14260 (p8_fmrgow_<mode>): Likewise.
14261 (reload_vsx_from_gpr<mode>): Make clobber IF. Adjust for above
14262 changes.
14263 (reload_fpr_from_gpr<mode>): Similarly. Use "d" for op0 constraint.
14264 (reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting
14265 to use movdi_internal64. Remove op0_di.
14266 * config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode.
14267
14268 2016-02-15 Evandro Menezes <e.menezes@samsung.com>
14269
14270 Add support for the FCCMP insn types
14271
14272 * config/aarch64/aarch64.md (fccmp): Change insn type.
14273 (fccmpe): Likewise.
14274 * config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types.
14275 * config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise.
14276 * config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise.
14277 * config/arm/xgene1.md (xgene1_fcmp): Likewise.
14278 * config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation.
14279 * config/arm/types.md (fccmps): Add new insn type.
14280 (fccmpd): Likewise.
14281
14282 2016-02-15 Bernd Edlinger <bernd.edlinger@hotmail.de>
14283
14284 * alias.c (get_alias_set): Fix a typo in comment.
14285
14286 2016-02-15 Richard Biener <rguenther@suse.de>
14287
14288 PR tree-optimization/69595
14289 * match.pd: Complete range test simplification to true.
14290
14291 2016-02-15 Bernd Schmidt <bschmidt@redhat.com>
14292
14293 PR rtl-optimization/69648
14294 * lra-constraints.c (update_ebb_live_info): Don't remove sets of
14295 pic_offset_table_rtx.
14296
14297 PR rtl-optimization/69752
14298 * ira.c (update_equiv_regs): When looking for more than a single SET,
14299 also take other side effects into account.
14300
14301 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
14302
14303 * config/s390/s390.c (s390_function_profiler): Add a new sequence
14304 for z900+ CPUs in 31-bit mode.
14305
14306 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
14307
14308 * common/config/s390/s390-common.c (s390_supports_split_stack):
14309 New function.
14310 (TARGET_SUPPORTS_SPLIT_STACK): New macro.
14311 * config/s390/s390-protos.h: Add s390_expand_split_stack_prologue.
14312 * config/s390/s390.c (struct machine_function): New field
14313 split_stack_varargs_pointer.
14314 (s390_register_info): Mark r12 as clobbered if it'll be used as temp
14315 in s390_emit_prologue.
14316 (s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack
14317 vararg pointer.
14318 (morestack_ref): New global.
14319 (SPLIT_STACK_AVAILABLE): New macro.
14320 (s390_expand_split_stack_prologue): New function.
14321 (s390_live_on_entry): New function.
14322 (s390_va_start): Use split-stack vararg pointer if appropriate.
14323 (s390_asm_file_end): Emit the split-stack note sections.
14324 (TARGET_EXTRA_LIVE_ON_ENTRY): New macro.
14325 * config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec.
14326 (UNSPECV_SPLIT_STACK_CALL): New unspec.
14327 (UNSPECV_SPLIT_STACK_DATA): New unspec.
14328 (split_stack_prologue): New expand.
14329 (split_stack_space_check): New expand.
14330 (split_stack_data): New insn.
14331 (split_stack_call): New expand.
14332 (split_stack_call_*): New insn.
14333 (split_stack_cond_call): New expand.
14334 (split_stack_cond_call_*): New insn.
14335
14336 2016-02-15 Richard Biener <rguenther@suse.de>
14337
14338 PR tree-optimization/69783
14339 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
14340 Add trivially correct cases.
14341
14342 2016-02-15 Tom de Vries <tom@codesourcery.com>
14343
14344 PR lto/69655
14345 * lto-cgraph.c (input_offload_tables): Add and handle bool parameter
14346 do_force_output.
14347 * lto-streamer.h (input_offload_tables): Add and handle bool parameter.
14348
14349 2016-02-15 Richard Biener <rguenther@suse.de>
14350
14351 PR tree-optimization/69776
14352 * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
14353 * tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to
14354 indicate whether we can use TBAA to disambiguate against stores.
14355 Use alias-set zero if not.
14356 (visit_reference_op_store): Do not use TBAA when looking up
14357 redundant stores.
14358 * tree-ssa-pre.c (compute_avail): Use TBAA here.
14359 (eliminate_dom_walker::before_dom_children): But not when looking
14360 up redundant stores.
14361
14362 2016-02-14 John David Anglin <danglin@gcc.gnu.org>
14363
14364 * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.
14365
14366 2016-02-14 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
14367
14368 * config/i386/znver1.md
14369 (znver1_pop, znver1_pop_mem,
14370 znver1_load_imov_double_store,
14371 znver1_load_imov_direct_store,
14372 znver1_load_imov_direct_load,
14373 znver1_load_imov_double_load): Add new.
14374 (znver1_insn, znver1_insn_load): Add icmov type.
14375 (znver1_sseavx_fma,
14376 znver1_sseavx_fma_load,
14377 znver1_avx256_fma,
14378 znver1_avx256_fma_load): Fix pipe usage.
14379
14380 2016-02-14 Alan Modra <amodra@gmail.com>
14381
14382 PR target/68973
14383 * reloads.c (find_reloads_address_1): For pre/post-inc/dec
14384 with an invalid hard reg, reload just the reg not the entire
14385 pre/post-inc/dec address expression.
14386
14387 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
14388
14389 PR target/67260
14390 * config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with
14391 fixed R1_REG scratch reg.
14392 (sibcall_value_pcrel_fdpic): Likewise.
14393
14394 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
14395
14396 PR target/67636
14397 PR target/64345
14398 * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.
14399
14400 2016-02-12 Walter Lee <walt@tilera.com>
14401
14402 * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
14403 * config/tilegx/t-tilegx: Likewise.
14404
14405 2016-02-12 David Malcolm <dmalcolm@redhat.com>
14406
14407 PR other/69554
14408 * diagnostic-show-locus.c (struct line_span): New struct.
14409 (layout::get_first_line): Delete.
14410 (layout::get_last_line): Delete.
14411 (layout::get_num_line_spans): New member function.
14412 (layout::get_line_span): Likewise.
14413 (layout::print_heading_for_line_span_index_p): Likewise.
14414 (layout::get_expanded_location): Likewise.
14415 (layout::calculate_line_spans): Likewise.
14416 (layout::m_first_line): Delete.
14417 (layout::m_last_line): Delete.
14418 (layout::m_line_spans): New field.
14419 (layout::layout): Update comment. Replace m_first_line and
14420 m_last_line with m_line_spans, replacing their initialization
14421 with a call to calculate_line_spans.
14422 (diagnostic_show_locus): When printing source lines and
14423 annotations, rather than looping over a single span
14424 of lines, instead loop over each line_span within
14425 the layout, with an inner loop over the lines within them.
14426 Call the context's start_span callback when changing line spans.
14427 * diagnostic.c (diagnostic_initialize): Initialize start_span.
14428 (diagnostic_build_prefix): Break out the building of the location
14429 part of the string into...
14430 (diagnostic_get_location_text): ...this new function, rewriting
14431 it from nested ternary expressions to a sequence of "if"
14432 statements.
14433 (default_diagnostic_start_span_fn): New function.
14434 * diagnostic.h (diagnostic_start_span_fn): New typedef.
14435 (diagnostic_context::start_span): New field.
14436 (default_diagnostic_start_span_fn): New prototype.
14437
14438 2016-02-12 David Malcolm <dmalcolm@redhat.com>
14439
14440 PR driver/69779
14441 * gcc.c (driver::finalize): Fix cleanup of "specs".
14442
14443 2016-02-12 David Malcolm <dmalcolm@redhat.com>
14444
14445 PR driver/69265
14446 PR driver/69453
14447 * gcc.c (driver::driver): Initialize m_option_suggestions.
14448 (driver::~driver): Clean up m_option_suggestions.
14449 (suggest_option): Convert to...
14450 (driver::suggest_option): ...this, and split out into
14451 driver::build_option_suggestions and find_closest_string.
14452 (driver::build_option_suggestions): New function, from
14453 first half of suggest_option. Special-case
14454 OPT_fsanitize_ and OPT_fsanitize_recover_, making use of
14455 the sanitizer_opts array. For options of enum types, add the
14456 various enum values to the candidate strings.
14457 (driver::handle_unrecognized_options): Remove "const".
14458 * gcc.h (driver::handle_unrecognized_options): Likewise.
14459 (driver::build_option_suggestions): New decl.
14460 (driver::suggest_option): New decl.
14461 (driver::m_option_suggestions): New field.
14462 * opts-common.c (add_misspelling_candidates): New function.
14463 * opts.c (sanitizer_opts): Remove decl of struct sanitizer_opts_s
14464 and make non-static.
14465 * opts.h (sanitizer_opts): New array decl.
14466 (add_misspelling_candidates): New function decl.
14467 * spellcheck.c (find_closest_string): New function.
14468 * spellcheck.h (find_closest_string): New function decl.
14469
14470 2016-02-12 Jakub Jelinek <jakub@redhat.com>
14471
14472 PR rtl-optimization/69764
14473 PR rtl-optimization/69771
14474 * optabs.c (expand_binop_directly): For shift_optab_p, force
14475 convert_modes with VOIDmode if xop1 has VOIDmode.
14476
14477 2016-02-12 Ilya Enkovich <enkovich.gnu@gmail.com>
14478
14479 PR target/69729
14480 * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
14481 to correctly determine instrumentation thunks.
14482
14483 2016-02-12 Jakub Jelinek <jakub@redhat.com>
14484
14485 PR ipa/69241
14486 * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
14487 type by reference, force lhs on the call.
14488
14489 PR ipa/68672
14490 * ipa-split.c (split_function): Don't compute/use main_part_return_p.
14491 Compute retval and retbnd early in all cases if split_part_return_p
14492 and return_bb is not EXIT. Remove all clobber stmts and reset
14493 all debug stmts that refer to SSA_NAMEs defined in split part,
14494 except if it is retval, in that case replace the old retval with the
14495 lhs of the call to the split part.
14496
14497 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
14498
14499 revert:
14500 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
14501
14502 PR middle-end/66726
14503 * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
14504 whose result is used in PHI.
14505 (maybe_optimize_range_tests): Likewise.
14506 (final_range_test_p): Likweise.
14507
14508 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
14509
14510 PR middle-end/66726
14511 * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
14512 whose result is used in PHI.
14513 (maybe_optimize_range_tests): Likewise.
14514 (final_range_test_p): Likweise.
14515
14516 2016-02-12 Jakub Jelinek <jakub@redhat.com>
14517
14518 * cgraph.c: Spelling fixes - behaviour -> behavior and
14519 neighbour -> neighbor.
14520 * target.def: Likewise.
14521 * sel-sched.c: Likewise.
14522 * config/mips/mips.c: Likewise.
14523 * config/arc/arc.md: Likewise.
14524 * config/arm/cortex-a57.md: Likewise.
14525 * config/arm/arm.c: Likewise.
14526 * config/arm/neon.md: Likewise.
14527 * config/arm/arm-c.c: Likewise.
14528 * config/vms/vms-c.c: Likewise.
14529 * config/s390/s390.c: Likewise.
14530 * config/i386/znver1.md: Likewise.
14531 * config/i386/i386.c: Likewise.
14532 * config/ia64/hpux-unix2003.h: Likewise.
14533 * config/msp430/msp430.md: Likewise.
14534 * config/rx/rx.c: Likewise.
14535 * config/rx/rx.md: Likewise.
14536 * config/aarch64/aarch64-simd.md: Likewise.
14537 * config/aarch64/aarch64.c: Likewise.
14538 * config/nvptx/nvptx.c: Likewise.
14539 * config/bfin/bfin.c: Likewise.
14540 * config/cris/cris.opt: Likewise.
14541 * config/rs6000/rs6000.c: Likewise.
14542 * target.h: Likewise.
14543 * spellcheck.c: Likewise.
14544 * ira-build.c: Likewise.
14545 * tree-inline.c: Likewise.
14546 * builtins.c: Likewise.
14547 * lra-constraints.c: Likewise.
14548 * explow.c: Likewise.
14549 * hwint.h: Likewise.
14550 * targhooks.c: Likewise.
14551 * tree-vect-data-refs.c: Likewise.
14552 * expr.c: Likewise.
14553 * doc/tm.texi: Likewise.
14554 * doc/extend.texi: Likewise.
14555 * doc/install.texi: Likewise.
14556 * doc/md.texi: Likewise.
14557 * tree-ssa-tail-merge.c: Likewise.
14558 * sched-int.h: Likewise.
14559 * match.pd: Likewise.
14560 * sched-ebb.c: Likewise.
14561 * target.def (omit_struct_return_reg): Likewise.
14562 * gimple-ssa-isolate-paths.c: Likewise.
14563 (find_implicit_erroneous_behaviour): Renamed to...
14564 (find_implicit_erroneous_behavior): ... this.
14565 (find_explicit_erroneous_behaviour): Renamed to...
14566 (find_explicit_erroneous_behavior): ... this.
14567 (gimple_ssa_isolate_erroneous_paths): Adjust caller.
14568
14569 2016-02-11 Segher Boessenkool <segher@kernel.crashing.org>
14570
14571 PR rtl-optimization/64682
14572 PR rtl-optimization/69567
14573 PR rtl-optimization/69737
14574 * combine.c (distribute_notes) <REG_DEAD>: If the register is set
14575 in I2 as well, just lose it.
14576
14577 2016-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14578
14579 * config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
14580 New variable.
14581 (aarch64_last_printed_tune_string): Likewise.
14582 (aarch64_declare_function_name): Only output .arch assembler
14583 directive if it will be different from the previously output
14584 directive. Same for .tune comment but only if -dA is set.
14585 (aarch64_start_file): New function.
14586 (TARGET_ASM_FILE_START): Define.
14587
14588 2016-02-11 David Malcolm <dmalcolm@redhat.com>
14589
14590 PR plugins/69758
14591 * Makefile.in (PLUGIN_HEADERS): Add params.list.
14592
14593 2016-02-11 Jakub Jelinek <jakub@redhat.com>
14594
14595 PR target/65313
14596 * tree-vect-slp.c (vect_schedule_slp_instance): Avoid
14597 -Wmaybe-uninitialized warning.
14598
14599 2016-02-11 Oleg Endo <olegendo@gcc.gnu.org>
14600
14601 PR target/69713
14602 * config/sh/sh.md (casesi_worker_0): Add T_REG use.
14603
14604 2016-02-11 Richard Biener <rguenther@suse.de>
14605
14606 PR rtl-optimization/69291
14607 * ifcvt.c (noce_try_store_flag_constants): Do not allow
14608 subexpressions affected by changing the result.
14609
14610 2016-02-10 Vladimir Makarov <vmakarov@redhat.com>
14611
14612 PR target/69148
14613 * lra-constraints.c (curr_insn_transform): Find in/out operands
14614 for secondary memory moves. Update dups.
14615
14616 2016-02-10 Yuri Rumyantsev <ysrumyan@gmail.com>
14617
14618 PR tree-optimization/69652
14619 * tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1
14620 to nested loop, did source re-formatting, skip debug statements,
14621 add check on statement with volatile operand, remove dead scalar
14622 statements.
14623
14624 2016-02-10 Jakub Jelinek <jakub@redhat.com>
14625 Patrick Palka <ppalka@gcc.gnu.org>
14626
14627 PR ipa/69241
14628 PR c++/69649
14629 * gimplify.c (gimplify_modify_expr): Set lhs even for noreturn
14630 calls if the return type is TREE_ADDRESSABLE.
14631 * cgraphunit.c (cgraph_node::expand_thunk): Likewise.
14632 * ipa-split.c (split_function): Fix doubled "we" in comment.
14633 Use void return type for the split part even if
14634 !split_point->split_part_set_retval.
14635
14636 2016-02-10 Bin Cheng <bin.cheng@arm.com>
14637
14638 PR tree-optimization/68021
14639 * tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if
14640 when computing the value of biv cand by itself.
14641
14642 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
14643
14644 * config/aarch64/aarch64.c (cortexa53_tunings): Enable AES fusion.
14645 (cortexa57_tunings): Likewise.
14646 (cortexa72_tunings): Likewise.
14647 (arch_macro_fusion_pair_p): Add support for AES fusion.
14648 * config/aarch64/aarch64-fusion-pairs.def: Add AES_AESMC entry.
14649 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
14650 Allow virtual registers before reload so early scheduling works.
14651 * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Use
14652 correct latency and pipeline.
14653 (cortex_a57_crypto_complex): Likewise.
14654 (cortex_a57_crypto_xor): Likewise.
14655 (define_bypass): Add AES bypass.
14656
14657 2016-02-10 Richard Biener <rguenther@suse.de>
14658
14659 PR tree-optimization/69726
14660 * passes.def: Add DCE pass before late uninit.
14661 * match.pd: Add A ? B : (!A ? C : X) -> A ? B : C patterns to
14662 really fixup if-conversions job.
14663
14664 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
14665
14666 * config/arm/arm.c (arm_cortex_a53_tune): Enable AES fusion.
14667 (arm_cortex_a57_tune): Likewise.
14668 (aarch_macro_fusion_pair_p): Add support for AES fusion.
14669 * config/arm/arm-protos.h (fuse_ops): Add FUSE_AES_AESMC.
14670
14671 2016-02-10 Eric Botcazou <ebotcazou@adacore.com>
14672
14673 * timevar.def (TV_PHASE_DBGINFO): Delete.
14674 (TV_PHASE_CHECK_DBGINFO): Likewise.
14675 * varpool.c (varpool_node::assemble_decl): Do not change timevar.
14676
14677 2016-02-10 Richard Biener <rguenther@suse.de>
14678
14679 PR tree-optimization/69719
14680 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
14681 Adjust previous fix by ensuring that dr_a1 is left of dr_a2.
14682
14683 2016-02-09 Andrew Pinski <apinski@cavium.com>
14684
14685 PR tree-opt/69282
14686 * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
14687 get_vcond_mask_icode returns false.
14688
14689 2016-02-09 Michael Meissner <meissner@linux.vnet.ibm.com>
14690
14691 PR target/68404
14692 * config/rs6000/predicates.md (fusion_gpr_addis): Prevent fusing
14693 an ADDIS that adds a pointer to a large constant that sets the
14694 upper16 bits with a load operation.
14695
14696 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
14697
14698 PR target/68532
14699 * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
14700 order.
14701 * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
14702 endian.
14703 (vzipq_s16): Likewise.
14704 (vzipq_s32): Likewise.
14705 (vzipq_f32): Likewise.
14706 (vzipq_u8): Likewise.
14707 (vzipq_u16): Likewise.
14708 (vzipq_u32): Likewise.
14709 (vzipq_p8): Likewise.
14710 (vzipq_p16): Likewise.
14711
14712 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
14713
14714 PR target/68532
14715 * config/arm/arm.c (neon_endian_lane_map): New function.
14716 (neon_vector_pair_endian_lane_map): New function.
14717 (arm_evpc_neon_vuzp): Allow for big endian lane order.
14718 * config/arm/arm_neon.h (vuzpq_s8): Adjust shuffle patterns for big
14719 endian.
14720 (vuzpq_s16): Likewise.
14721 (vuzpq_s32): Likewise.
14722 (vuzpq_f32): Likewise.
14723 (vuzpq_u8): Likewise.
14724 (vuzpq_u16): Likewise.
14725 (vuzpq_u32): Likewise.
14726 (vuzpq_p8): Likewise.
14727 (vuzpq_p16): Likewise.
14728
14729 2016-02-11 Alexandre Oliva <aoliva@redhat.com>
14730
14731 PR target/69634
14732 * regstat.c (regstat_bb_compute_calls_crossed): Disregard
14733 debug insns.
14734
14735 2016-02-09 Uros Bizjak <ubizjak@gmail.com>
14736
14737 * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
14738 truncate const_int operand 1 to QImode.
14739
14740 2016-02-09 Eric Botcazou <ebotcazou@adacore.com>
14741
14742 * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
14743 corresponding to an abnormal edge.
14744
14745 2016-02-09 Tom de Vries <tom@codesourcery.com>
14746
14747 PR tree-optimization/69599
14748 * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
14749 function.
14750 (find_func_aliases_for_builtin_call, find_func_clobbers)
14751 (ipa_pta_execute): Handle case that foo and foo._0 are not in same lto
14752 partition.
14753
14754 2016-02-09 Richard Biener <rguenther@suse.de>
14755
14756 PR tree-optimization/69715
14757 * tree-ssa.c (execute_update_addresses_taken): Mark non-decl
14758 LHS on calls as non-rewritable.
14759
14760 2016-02-09 Tom de Vries <tom@codesourcery.com>
14761
14762 PR lto/69707
14763 * lto-wrapper.c (append_diag_options): New function.
14764 (compile_offload_image): Call append_diag_options.
14765
14766 2016-02-08 Sandra Loosemore <sandra@codesourcery.com>
14767
14768 PR other/69722
14769 * doc/extend.texi (Flag Output Operands): Correct sectioning.
14770 Minor copy-edit to fix verb tenses.
14771
14772 2016-02-08 Jakub Jelinek <jakub@redhat.com>
14773
14774 PR tree-optimization/69209
14775 * ipa-split.c (split_function): If split part is not
14776 returning retval, retval has gimple type but is not
14777 gimple value, force it into a SSA_NAME first.
14778
14779 2016-02-08 Nicklas Bo Jensen <nbjensen@gmail.com>
14780
14781 * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
14782 outdated section.
14783
14784 2016-02-08 Jason Merrill <jason@redhat.com>
14785
14786 PR c++/69631
14787 * convert.c (convert_to_integer_1): Check dofold on truncation
14788 distribution.
14789 (convert_to_pointer_maybe_fold, convert_to_real_maybe_fold)
14790 (convert_to_integer_maybe_fold, convert_to_complex_maybe_fold):
14791 Rename from *_nofold.
14792 * convert.h (convert_to_pointer_nofold, convert_to_integer_nofold)
14793 (convert_to_real_nofold, convert_to_complex_nofold): New inlines.
14794
14795 2016-02-08 Bernd Schmidt <bschmidt@redhat.com>
14796
14797 PR target/60410
14798 * tree.c (build_common_tree_nodes): Remove short_double argument.
14799 All callers changed.
14800 * tree.h (build_common_tree_nodes): Adjust declaration.
14801 * doc/invoke.texi (-fshort-double): Remove documentation.
14802 * config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
14803 MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
14804 * lto-wrapper.c (merge_and_complain, append_compiler_options)
14805 (append_linker_options): Don't handle OPT_fshort_double.
14806
14807 PR rtl-optimization/68730
14808 * lra-remat.c (insn_to_cand_activation): New static variable.
14809 (lra_remat): Allocate and free it.
14810 (create_cand): New arg activation. Initialize a field in
14811 insn_to_cand_activation if it is nonnull.
14812 (create_cands): Pass the activation insn to create_cand when making
14813 a candidate involving an output reload. Reorganize code a little.
14814 (do_remat): Keep track of active status of candidates in a separate
14815 bitmap.
14816
14817 2016-02-08 Richard Biener <rguenther@suse.de>
14818
14819 PR tree-optimization/69719
14820 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
14821 Properly use absolute of the difference of the two offsets to
14822 compare or adjust the segment length.
14823
14824 2016-02-08 Richard Biener <rguenther@suse.de>
14825 Jeff Law <law@redhat.com>
14826
14827 PR target/68273
14828 * tree-ssanames.c (make_ssa_name_fn): Always use unqualified
14829 types for anonymous SSA names.
14830
14831 2016-02-08 Richard Biener <rguenther@suse.de>
14832
14833 PR rtl-optimization/69274
14834 * ira.c (ira_setup_alts): Do not change recog_data.operand order.
14835
14836 2016-02-08 Jeff Law <law@redhat.com>
14837
14838 PR tree-optimization/65917
14839 * tree-ssa-dom.c (record_temporary_equivalences): Record both
14840 equivalences from if (x == y) style conditionals.
14841 (loop_depth_of_name): Remove.
14842 (record_equality): Remove loop depth check.
14843 * tree-ssa-scopedtables.h (const_and_copies): Refine comments.
14844 (const_and_copies::record_const_or_copy_raw): New member function.
14845 * tree-ssa-scopedtables.c
14846 (const_and_copies::record_const_or_copy_raw): New, factored out of
14847 (const_and_copies::record_const_or_copy): Call new member function.
14848
14849 2016-02-05 Jeff Law <law@redhat.com>
14850
14851 PR tree-optimization/68541
14852 * gimple-ssa-split-paths.c: Include tree-cfg.h and params.h.
14853 (count_stmts_in_block): New function.
14854 (poor_ifcvt_candidate_code): Likewise.
14855 (is_feasible_trace): Add some heuristics to determine when path
14856 splitting is profitable.
14857 (find_block_to_duplicate_for_splitting_paths): Make sure the graph
14858 is a diamond with a single exit.
14859
14860 2016-02-05 Martin Sebor <msebor@redhat.com>
14861
14862 PR c++/69662
14863 * doc/invoke.texi: Update -Wplacement-new to take an optional
14864 argument.
14865
14866 2016-02-06 Richard Henderson <rth@redhat.com>
14867
14868 PR c/69643
14869 * tree.c (tree_nop_conversion_p): Do not strip casts into or
14870 out of non-standard address spaces.
14871
14872 2016-02-05 Jakub Jelinek <jakub@redhat.com>
14873
14874 PR rtl-optimization/69691
14875 * lra-eliminations.c (move_plus_up): Don't add the addend twice.
14876
14877 2016-02-05 Pat Haugen <pthaugen@us.ibm.com>
14878
14879 * config/rs6000/crypto.md (crypto_vpermxor_<mode>): Correct insn type.
14880 * config/rs6000/rs6000.md (mov<mode>_hardfloat): Likewise.
14881 (*ieee128_mfvsrd_64bit): Likewise.
14882 (*ieee128_mfvsrd_32bit): Likewise.
14883
14884 2016-02-05 Ilya Enkovich <enkovich.gnu@gmail.com>
14885
14886 PR target/69369
14887 Revert r232560:
14888 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
14889
14890 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
14891 instrumented_version.
14892
14893 2016-01-05 Jeremy Bennett <jeremy.bennett@embecosm.com>
14894
14895 * doc/invoke.texi (Optimize Options): In table of --param options
14896 rename second occurrence of tracer-min-branch-ratio to
14897 tracer-min-branch-probability, rename
14898 tracer-min-branch-ratio-feedback to
14899 tracer-min-branch-probability-feedback and clarify description,
14900 rename sched-spec-state-edge-prob-cutoff to
14901 sched-state-edge-prob-cutoff, rename selsched-max-insns-to-rename
14902 to selsched-insns-to-rename, rename lto-minpartition to
14903 lto-min-partition, delete reorder-blocks-duplicate and
14904 reorder-blocks-duplicate-feedback.
14905
14906 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
14907
14908 * config/s390/s390.c (s390_register_info_set_ranges): Remove
14909 superfluous loops.
14910
14911 2016-02-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
14912
14913 * doc/extend.texi: S/390: Correct some typos.
14914
14915 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
14916
14917 * config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
14918
14919 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
14920
14921 PR target/69625
14922 * config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines.
14923 (s390_register_info_gprtofpr): Use new macros above.
14924 (s390_register_info_stdarg_fpr): Adjust max_fpr to better match
14925 its name.
14926 (s390_register_info_stdarg_gpr): Adjust max_gpr to better match
14927 its name. Adjust restore and save gpr ranges.
14928 (s390_register_info_set_ranges): New function.
14929 (s390_register_info): Use new macros above. Call
14930 s390_register_info_set_ranges.
14931 (s390_optimize_register_info): Likewise.
14932 (s390_hard_regno_rename_ok): Use new macros.
14933 (s390_hard_regno_scratch_ok): Likewise.
14934 (s390_emit_epilogue): Likewise.
14935 (s390_can_use_return_insn): Likewise.
14936 (s390_optimize_prologue): Likewise.
14937 * config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants.
14938
14939 2016-02-05 Jakub Jelinek <jakub@redhat.com>
14940
14941 PR bootstrap/69677
14942 * config/i386/i386.c (convert_scalars_to_vector): Readd stack
14943 alignment fixes.
14944 (ix86_option_override_internal): Disable TARGET_STV even for
14945 -m{incoming,preferred}-stack-boundary=3.
14946
14947 2016-02-03 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
14948
14949 * config.gcc: Mark deprecated rtems targets as obsolete.
14950
14951 2016-02-04 Segher Boessenkool <segher@kernel.crashing.org>
14952
14953 PR rtl-optimization/64682
14954 PR rtl-optimization/69567
14955 * combine.c (distribute_notes) <REG_DEAD>: Place the death note
14956 before I2 only if the register is both used and set in I2.
14957
14958 2016-02-04 DJ Delorie <dj@redhat.com>
14959
14960 * config/msp430/msp430.c (msp430_start_function): Add function type.
14961
14962 2016-02-04 Jakub Jelinek <jakub@redhat.com>
14963
14964 PR fortran/69368
14965 * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
14966
14967 2016-02-04 Uros Bizjak <ubizjak@gmail.com>
14968
14969 PR rtl-optimization/69577
14970 Revert:
14971 2015-10-29 Richard Henderson <rth@redhat.com>
14972
14973 PR target/68124
14974 PR rtl-opt/67609
14975 * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
14976 sse check to the exact conditions of PR 67609.
14977
14978 2016-02-04 Michael Meissner <meissner@linux.vnet.ibm.com>
14979
14980 PR target/69667
14981 * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Use 'd' constraint
14982 instead of 'ws', and 'wh' instead of 'wm' since TFmode/IFmode are
14983 not allowed into the traditional Altivec registers.
14984 (movtd_64bit_nodm): Likewise.
14985 (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
14986
14987 2016-02-04 David Malcolm <dmalcolm@redhat.com>
14988
14989 * config/aarch64/cortex-a57-fma-steering.c
14990 (aarch64_register_fma_steering): Remove "static" from arguments
14991 to register_pass.
14992
14993 2016-02-04 Wilco Dijkstra <wdijkstr@arm.com>
14994
14995 PR target/69619
14996 * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
14997 twice when complex.
14998
14999 2016-02-04 Mike Frysinger <vapier@gentoo.org>
15000
15001 * doc/invoke.texi: Delete -mno-fma4.
15002
15003 2016-02-04 Richard Sandiford <richard.sandiford@arm.com>
15004
15005 PR rtl-optimization/69577
15006 * reginfo.c (record_subregs_of_mode): Add a partial_def parameter.
15007 (find_subregs_of_mode): Update accordingly. Iterate over partial
15008 definitions.
15009
15010 2016-02-04 Alan Lawrence <alan.lawrence@arm.com>
15011
15012 * config/arm/arm-protos.h (neon_reinterpret): Remove.
15013 * config/arm/arm.c (neon_reinterpret): Remove.
15014 * config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi,
15015 vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi,
15016 vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di,
15017 vreinterpretti): Remove.
15018 * config/arm/neon.md (neon_vreinterpretv8qi<mode>,
15019 neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
15020 neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>,
15021 neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>,
15022 neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>,
15023 neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove.
15024 * config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32,
15025 vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64,
15026 vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32,
15027 vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32,
15028 vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64,
15029 vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8,
15030 vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8,
15031 vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8,
15032 vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64,
15033 vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16,
15034 vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16,
15035 vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16,
15036 vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64,
15037 vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32,
15038 vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32,
15039 vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32,
15040 vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8,
15041 vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8,
15042 vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8,
15043 vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64,
15044 vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16,
15045 vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16,
15046 vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16,
15047 vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64,
15048 vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32,
15049 vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32,
15050 vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32,
15051 vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64,
15052 vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8,
15053 vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8,
15054 vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64,
15055 vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8,
15056 vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16,
15057 vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16,
15058 vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64,
15059 vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16,
15060 vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32,
15061 vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32,
15062 vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64,
15063 vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32,
15064 vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8,
15065 vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64,
15066 vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8,
15067 vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8,
15068 vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32,
15069 vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64,
15070 vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16,
15071 vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16,
15072 vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32,
15073 vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64,
15074 vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16,
15075 vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16,
15076 vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16,
15077 vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64,
15078 vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16,
15079 vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16,
15080 vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16,
15081 vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64,
15082 vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16,
15083 vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16,
15084 vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16,
15085 vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64,
15086 vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16,
15087 vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16,
15088 vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16,
15089 vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128,
15090 vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16,
15091 vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16,
15092 vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16,
15093 vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128,
15094 vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16,
15095 vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16,
15096 vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16,
15097 vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128,
15098 vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16,
15099 vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16,
15100 vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16,
15101 vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128,
15102 vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8,
15103 vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16,
15104 vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16,
15105 vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64,
15106 vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64,
15107 vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8,
15108 vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8,
15109 vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64,
15110 vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64,
15111 vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32,
15112 vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8,
15113 vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64,
15114 vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64,
15115 vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32,
15116 vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8,
15117 vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64,
15118 vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64,
15119 vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32,
15120 vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts.
15121
15122 2016-02-04 Martin Liska <mliska@suse.cz>
15123
15124 PR sanitizer/69276
15125 * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
15126 that are gimple_store_p.
15127 (maybe_instrument_call): Likewise.
15128
15129 2016-02-04 Bin Cheng <bin.cheng@arm.com>
15130
15131 * config/aarch64/aarch64.c (aarch64_legitimize_address): Force
15132 register scaling out of memory reference and comment why.
15133
15134 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15135
15136 PR target/65932
15137 PR target/67714
15138 * cse.c (cse_insn): Pass NULL to fold_rtx when initially
15139 folding the source of a SET.
15140
15141 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15142
15143 PR target/65932
15144 PR target/67714
15145 * config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
15146 the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.
15147
15148 2016-02-04 Jim Wilson <jim.wilson@linaro.org>
15149
15150 PR target/65932
15151 PR target/67714
15152 * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
15153 HImode.
15154
15155 2016-02-04 Christian Bruel <christian.bruel@st.com>
15156
15157 * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
15158 * config/arm/arm.c (arm_set_current_function): Likewise.
15159
15160 2016-02-04 Jakub Jelinek <jakub@redhat.com>
15161 Ilya Enkovich <enkovich.gnu@gmail.com>
15162 H.J. Lu <hongjiu.lu@intel.com>
15163
15164 PR target/69454
15165 * config/i386/i386.c (convert_scalars_to_vector): Remove
15166 stack alignment fixes.
15167 (ix86_option_override_internal): Disable TARGET_STV if stack
15168 might not be aligned enough.
15169 (ix86_minimum_alignment): Assert that TARGET_STV is false.
15170
15171 2016-02-04 Victoria Stepanyan <victoria.stepanyan@amd.com>
15172
15173 * config/i386/x86-tune.def: Disable default prefetching
15174 for -march=znver1.
15175
15176 2016-02-03 Michael Meissner <meissner@linux.vnet.ibm.com>
15177 Vladimir Makarov <vmakarov@redhat.com>
15178
15179 PR target/69461
15180 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
15181 in validating fused toc addresses.
15182
15183 2016-02-03 Jakub Jelinek <jakub@redhat.com>
15184
15185 PR c/69627
15186 * diagnostic-show-locus.c (layout::get_state_at_point): Don't read
15187 range->m_caret fields if range->m_show_caret_p is false.
15188
15189 PR target/69644
15190 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
15191 Force oldval into register if it does not satisfy reg_or_short_operand
15192 predicate. Fix up formatting.
15193
15194 2016-02-03 Vladimir Makarov <vmakarov@redhat.com>
15195 Alexandre Oliva <aoliva@redhat.com>
15196
15197 PR target/69461
15198 * lra-constraints.c (simplify_operand_subreg): Check additionally
15199 address validity after potential reloading.
15200 (process_address_1): Check insns validity. In case of failure do
15201 nothing.
15202
15203 2016-02-03 Kirill Yukhin <kirill.yukhin@intel.com>
15204
15205 PR target/69118
15206 * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
15207 Fix target.
15208
15209 2016-02-02 Jakub Jelinek <jakub@redhat.com>
15210
15211 * wide-int.cc (canonize_uhwi): New function.
15212 (wi::divmod_internal): Use it.
15213
15214 2016-02-02 James Norris <jnorris@codesourcery.com
15215
15216 * gimplify.c (omp_notice_variable): Add usage check.
15217
15218 2016-02-02 Alexander Monakov <amonakov@ispras.ru>
15219
15220 * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
15221 like LE, GE, LT, GT when emitting relational operator.
15222
15223 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
15224
15225 * ira-costs.c (find_costs_and_classes): Add extra argument.
15226 * target.def (ira_change_pseudo_allocno_class): Add parameter.
15227 * targhooks.h (ira_change_pseudo_allocno_class): Likewise.
15228 * targhooks.c (ira_change_pseudo_allocno_class): Likewise.
15229 * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
15230 Add best_class parameter, and return it if not ALL_REGS.
15231 * config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
15232 Add parameter.
15233 * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
15234 Update target hook.
15235
15236 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
15237
15238 * config/aarch64/aarch64.c
15239 (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
15240 (aarch64_ira_change_pseudo_allocno_class): New function.
15241
15242 2016-02-02 Uros Bizjak <ubizjak@gmail.com>
15243
15244 PR target/67032
15245 * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
15246
15247 2016-02-02 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
15248
15249 * config/avr/avr.c (avr_option_override): Set
15250 PARAM_ALLOW_STORE_DATA_RACES to 1.
15251
15252 2016-02-02 Richard Biener <rguenther@suse.de>
15253
15254 PR tree-optimization/69595
15255 * match.pd: Add range test simplifications to true/false.
15256
15257 2016-02-02 Thomas Schwinge <thomas@codesourcery.com>
15258
15259 * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
15260 * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
15261 instead.
15262
15263 2016-02-02 Richard Biener <rguenther@suse.de>
15264
15265 PR tree-optimization/69606
15266 * tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
15267 info on the result before moving a stmt.
15268
15269 2016-02-02 Yuri Rumyantsev <ysrumyan@gmail.com>
15270
15271 PR middle-end/68542
15272 * config/i386/i386.c (ix86_expand_branch): Add support for conditional
15273 branch with vector comparison.
15274 * config/i386/sse.md (VI48_AVX): New mode iterator.
15275 (define_expand "cbranch<mode>4): Add support for conditional branch
15276 with vector comparison.
15277 * tree-vect-loop.c (optimize_mask_stores): New function.
15278 * tree-vect-stmts.c (vectorizable_mask_load_store): Initialize
15279 has_mask_store field of vect_info.
15280 * tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for
15281 vectorized loops having masked stores after vec_info destroy.
15282 * tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and
15283 correspondent macros.
15284 (optimize_mask_stores): Add prototype.
15285
15286 2016-02-02 Alan Modra <amodra@gmail.com>
15287
15288 PR target/69548
15289 * config/rs6000/predicates.md (quad_int_reg_operand): Don't
15290 allow subregs.
15291
15292 2016-02-02 Alan Modra <amodra@gmail.com>
15293
15294 PR target/68662
15295 * config/rs6000/rs6000.c (need_toc_init): New var, set it
15296 whenever toc_label_name used.
15297 (rs6000_file_start): Don't set up toc section here,
15298 (rs6000_output_function_epilogue): do so here instead,
15299 (rs6000_xcoff_file_start): and here.
15300 * config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init.
15301 (load_toc_aix_di): Likewise.
15302
15303 2016-02-01 Jakub Jelinek <jakub@redhat.com>
15304
15305 PR rtl-optimization/69592
15306 * rtlanal.c (nonzero_bits_binary_arith_p): New inline function.
15307 (cached_nonzero_bits): Use it instead of ARITHMETIC_P.
15308 (num_sign_bit_copies_binary_arith_p): New inline function.
15309 (cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P.
15310
15311 2016-02-01 Jeff Law <law@redhat.com>
15312
15313 PR tree-optimization/69580
15314 * params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param.
15315 * tree-ssa-threadbackward.c
15316 (fsm_find_control_statement_thread_paths): Do not try to walk
15317 through large PHI nodes.
15318
15319 2016-02-01 Jakub Jelinek <jakub@redhat.com>
15320
15321 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
15322 when count is incremented above limit, don't analyze further
15323 insns afterwards.
15324
15325 * omp-low.c (oacc_parse_default_dims): Avoid
15326 -Wsign-compare warning, make sure value fits into int
15327 rather than just unsigned int.
15328
15329 2016-02-01 Bin Cheng <bin.cheng@arm.com>
15330
15331 PR tree-optimization/67921
15332 * fold-const.c (split_tree): New parameters. Convert pointer
15333 type variable part to proper type before negating.
15334 (fold_binary_loc): Pass new arguments to split_tree.
15335
15336 2016-02-01 Nathan Sidwell <nathan@codesourcery.com>
15337
15338 * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New.
15339 (nvptx_goacc_validate_dims): Extend to handle global defaults.
15340 * target.def (OACC_VALIDATE_DIMS): Extend documentation.
15341 * doc/tm.texti: Rebuilt.
15342 * doc/invoke.texi (fopenacc-dim): Document.
15343 * lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case.
15344 (append_compiler_options): Likewise.
15345 * omp-low.c (oacc_default_dims, oacc_min_dims): New.
15346 (oacc_parse_default_dims): New.
15347 (oacc_validate_dims): Add USED arg. Select non-unity default when
15348 possible.
15349 (oacc_loop_fixed_partitions): Return mask of used partitions.
15350 (oacc_loop_auto_partitions): Emit dump info.
15351 (oacc_loop_partition): Return mask of used partitions.
15352 (execute_oacc_device_lower): Parse default dimension arg. Adjust
15353 loop partitioning and validation calls.
15354
15355 2016-02-01 Richard Biener <rguenther@suse.de>
15356
15357 PR middle-end/69556
15358 * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
15359
15360 2016-02-01 Richard Biener <rguenther@suse.de>
15361
15362 PR tree-optimization/69574
15363 * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
15364 of asserting return chrec_dont_know.
15365
15366 2016-02-01 Martin Liska <mliska@suse.cz>
15367
15368 * mem-stats-traits.h: Add copyright header.
15369 * mem-stats.h: Likewise.
15370
15371 2016-02-01 Richard Biener <rguenther@suse.de>
15372
15373 PR tree-optimization/69579
15374 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
15375 Do not propagate through abnormal PHI results.
15376
15377 2016-02-01 Eric Botcazou <ebotcazou@adacore.com>
15378
15379 * postreload.c (reload_cse_simplify): Remove dead code.
15380
15381 2016-02-01 Jakub Jelinek <jakub@redhat.com>
15382
15383 PR rtl-optimization/69570
15384 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only
15385 if there is more than one set, not if there is a single set.
15386
15387 2016-02-01 Richard Henderson <rth@redhat.com>
15388
15389 PR rtl-opt/69535
15390 * combine.c (make_compound_operation): When looking through a
15391 subreg, make sure to re-extend to the width of the outer mode.
15392
15393 2016-01-30 Jakub Jelinek <jakub@redhat.com>
15394
15395 PR tree-optimization/69546
15396 * wide-int.cc (wi::divmod_internal): For unsigned division
15397 where both operands fit into uhwi, if o1 is 1 and o0 has
15398 msb set, if divident_prec is larger than bits per hwi,
15399 clear another quotient word and return 2 instead of 1.
15400 Similarly for remainder with msb in HWI set, if dividend_prec
15401 is larger than bits per hwi.
15402
15403 2016-01-29 Martin Jambor <mjambor@suse.cz>
15404
15405 * hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK.
15406 Use short lowercase names.
15407 (get_memory_order): Mask with MEMMODEL_BASE_MASK. Support
15408 MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with
15409 acq_rel one. Protect warning agains segfaults if
15410 get_memory_order_name returns NULL.
15411 (gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST
15412 with release semantics. Do not warn if get_memory_order already did.
15413 (gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire
15414 semantics. Fix check for relaxed or acquire semantics. Do not warn
15415 if get_memory_order already did.
15416
15417 2016-01-29 Sebastian Pop <s.pop@samsung.com>
15418
15419 * doc/install.texi: Document that isl-0.16 is supported.
15420
15421 2016-01-29 Vladimir Makarov <vmakarov@redhat.com>
15422
15423 PR target/69299
15424 * config/i386/constraints.md (Bm): Describe as special memory
15425 constraint.
15426 * doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it.
15427 * genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
15428 * genpreds.c (struct constraint_data): Add is_special_memory.
15429 (have_special_memory_constraints, special_memory_start): New
15430 static vars.
15431 (special_memory_end): Ditto.
15432 (add_constraint): Add new arg is_special_memory. Add code to
15433 process its true value. Update have_special_memory_constraints.
15434 (process_define_constraint): Pass the new arg.
15435 (process_define_register_constraint): Ditto.
15436 (choose_enum_order): Process special memory.
15437 (write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and
15438 function insn_extra_special_memory_constraint.
15439 (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
15440 * gensupport.c (process_rtx): Process
15441 DEFINE_SPECIAL_MEMORY_CONSTRAINT.
15442 * ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY.
15443 * ira-lives.c (single_reg_class): Use
15444 insn_extra_special_memory_constraint.
15445 * ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY.
15446 * lra-constraints.c (process_alt_operands): Ditto.
15447 (curr_insn_transform): Use insn_extra_special_memory_constraint.
15448 * recog.c (asm_operand_ok, preprocess_constraints): Process
15449 CT_SPECIAL_MEMORY.
15450 * reload.c (find_reloads): Ditto.
15451 * rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New.
15452 * stmt.c (parse_input_constraint): Use
15453 insn_extra_special_memory_constraint.
15454
15455 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
15456
15457 PR target/69530
15458 * lra-splill.c (lra_final_code_change): Revert r229087 by
15459 removing all sub-registers.
15460
15461 2016-01-29 Steve Ellcey <sellcey@imgtec.com>
15462
15463 PR target/65604
15464 * config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
15465
15466 2016-01-29 Jakub Jelinek <jakub@redhat.com>
15467
15468 PR target/69551
15469 * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
15470 SSE1, copy target into the temporary reg first before recursing
15471 on it.
15472
15473 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
15474
15475 * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
15476 with vm.
15477
15478 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
15479
15480 * ginclude/stdarg.h: Test __cplusplus instead of
15481 __GXX_EXPERIMENTAL_CXX0X__.
15482
15483 2016-01-29 Richard Biener <rguenther@suse.de>
15484
15485 PR tree-optimization/69547
15486 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
15487 Do not mark clobbers necessary.
15488 (mark_all_reaching_defs_necessary_1): Likewise.
15489
15490 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
15491
15492 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
15493 declaration name with %qs and print it in both error messages.
15494 Also fix indentation.
15495
15496 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
15497
15498 PR other/69006
15499 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
15500 trailing blank line from error message.
15501
15502 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
15503
15504 PR c++/69462
15505 * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
15506 for C++-11.
15507
15508 2016-01-29 Richard Biener <rguenther@suse.de>
15509
15510 PR middle-end/69537
15511 * match.pd: Allow all integral types when simplifying a
15512 widening or sign-changing conversion.
15513
15514 2016-01-28 Sebastian Pop <s.pop@samsung.com>
15515
15516 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
15517 back to setting codegen_error to fail codegen.
15518
15519 2016-01-28 Uros Bizjak <ubizjak@gmail.com>
15520
15521 PR target/69459
15522 * config/i386/constraints.md (C): Only accept constant zero operand.
15523 (BC): New constraint.
15524 * config/i386/sse.md (*mov<mode>_internal): Use BC constraint
15525 instead of C constraint.
15526 * doc/md.texi (Machine Constraints): Update description
15527 of C constraint.
15528
15529 2016-01-28 Steve Ellcey <sellcey@imgtec.com>
15530
15531 PR target/68400
15532 * config/mips/mips.c (and_operands_ok): Add MIPS16 check.
15533
15534 2016-01-28 Jakub Jelinek <jakub@redhat.com>
15535
15536 PR middle-end/69542
15537 * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
15538 non-debug insns.
15539
15540 2016-01-28 Pat Haugen <pthaugen@us.ibm.com>
15541
15542 * config/rs6000/rs6000.c (output_cbranch): Don't statically predict
15543 branches if using guessed profile.
15544
15545 2016-01-28 H.J. Lu <hongjiu.lu@intel.com>
15546
15547 * graphite-optimize-isl.c (optimize_isl): Fix dump.
15548
15549 2016-01-28 Richard Henderson <rth@redhat.com>
15550
15551 PR target/69305
15552 * config/aarch64/aarch64-modes.def (CC_Cmode): New
15553 * config/aarch64/aarch64-protos.h: Update.
15554 * config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
15555 (aarch64_select_cc_mode): Add check for use of CC_Cmode.
15556 (aarch64_get_condition_code_1): Handle CC_Cmode.
15557 * config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
15558 (*add<mode>3_compareC_cconly_imm): New.
15559 (*add<mode>3_compareC_cconly): New.
15560 (*add<mode>3_compareC_imm): New.
15561 (add<mode>3_compareC): New.
15562 (add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
15563 to be first. Use aarch64_carry_operation.
15564 (*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
15565 (*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
15566 (*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
15567 (subti3): Use subdi3_compare1.
15568 (*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
15569 (sub<mode>3_compare1): New.
15570 (*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
15571 (*sub<mode>3_carryin): Use aarch64_borrow_operation.
15572 (*subsi3_carryin_uxtw): Likewise.
15573 (*ngc<mode>, *ngcsi_uxtw): Likewise.
15574 (*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
15575 * config/aarch64/iterators.md (DWI): New.
15576 * config/aarch64/predicates.md (aarch64_carry_operation): New.
15577 (aarch64_borrow_operation): New.
15578
15579 2016-01-28 Abderrazek Zaafrani <a.zaafrani@samsung.com>
15580
15581 * graphite-optimize-isl.c (optimize_isl): Print a different debug
15582 message when isl does not return a valid schedule.
15583
15584 2016-01-28 Sebastian Pop <s.pop@samsung.com>
15585
15586 * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
15587 Remove comments from class declarations: they are already in the code
15588 close by the defs.
15589
15590 2016-01-28 Sebastian Pop <s.pop@samsung.com>
15591
15592 * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
15593 codegen_error_p.
15594 (ternary_op_to_tree): Same.
15595 (unary_op_to_tree): Same.
15596 (nary_op_to_tree): Same.
15597 (gcc_expression_from_isl_expr_op): Same.
15598 (gcc_expression_from_isl_expression): Same.
15599 (graphite_create_new_loop): Same.
15600 (graphite_create_new_loop_guard): Same.
15601 (build_iv_mapping): Same.
15602 (graphite_create_new_guard): Same.
15603 (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same.
15604 (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same.
15605
15606 2016-01-28 Sebastian Pop <s.pop@samsung.com>
15607
15608 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
15609 instead of setting codegen_error to fail codegen.
15610
15611 2016-01-28 Jason Merrill <jason@redhat.com>
15612
15613 * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
15614
15615 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
15616
15617 * config/aarch64/aarch64.c (aarch64_if_then_else_costs):
15618 Remove CONST_INT_P check in CCMP cost calculation.
15619
15620 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
15621
15622 * config/aarch64/aarch64.c (generic_vector_cost):
15623 Set vec_permute_cost.
15624 (cortexa57_vector_cost): Likewise.
15625 (exynosm1_vector_cost): Likewise.
15626 (xgene1_vector_cost): Likewise.
15627 (aarch64_builtin_vectorization_cost): Use vec_permute_cost.
15628 * config/aarch64/aarch64-protos.h (cpu_vector_cost):
15629 Add vec_permute_cost entry.
15630
15631 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
15632
15633 * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
15634 immediate as %1.
15635 (add<mode>3_compare0): Likewise.
15636 (addsi3_compare0_uxtw): Likewise.
15637 (add<mode>3nr_compare0): Likewise.
15638 (compare_neg<mode>): Likewise.
15639 (<optab><mode>3): Likewise.
15640
15641 2016-01-28 Ilya Enkovich <enkovich.gnu@gmail.com>
15642
15643 * tree-vect-stmts.c (vectorizable_comparison): Add
15644 NULL check for vectype.
15645
15646 2016-01-28 Richard Biener <rguenther@suse.de>
15647
15648 PR tree-optimization/69466
15649 * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
15650 Account for PHIs we couldn't duplicate.
15651
15652 2016-01-28 Martin Liska <mliska@suse.cz>
15653
15654 PR pch/68758
15655 * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
15656 instead of ENABLE_VALGRIND_CHECKING.
15657
15658 2016-01-27 Richard Henderson <rth@redhat.com>
15659
15660 PR rtl-opt/69447
15661 * lra-remat.c (subreg_regs): New.
15662 (dump_candidates_and_remat_bb_data): Dump it.
15663 (operand_to_remat): Reject if operand in subreg_regs.
15664 (set_bb_regs): Collect subreg_regs.
15665 (lra_remat): Init and free subreg_regs. Compute
15666 calculate_local_reg_remat_bb_data before create_cands.
15667
15668 2016-01-27 H.J. Lu <hongjiu.lu@intel.com>
15669
15670 PR target/68986
15671 * config/i386/i386.c (ix86_update_stack_boundary): Don't
15672 change stack_alignment_needed for __tls_get_addr call.
15673
15674 2016-01-27 Segher Boessenkool <segher@kernel.crashing.org>
15675
15676 * config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
15677
15678 2016-01-27 Jeff Law <law@redhat.com>
15679
15680 PR tree-optimization/68398
15681 PR tree-optimization/69196
15682 * params.def (PARAM_FSM_SCALE_PATH_STMTS): New parameter.
15683 (PARAM_FSM_SCALE_PATH_BLOCKS): Likewise.
15684 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
15685 Only count PHIs in the last block in the path. The others will
15686 const/copy propagate away. Add heuristic to allow more irreducible
15687 subloops to be created when it is likely profitable to do so.
15688
15689 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
15690 Fix typo in comment. Use gsi_after_labels and remove the GIMPLE_LABEL
15691 check from within the loop. Use gsi_next_nondebug rather than gsi_next.
15692
15693 2016-01-27 Jakub Jelinek <jakub@redhat.com>
15694
15695 PR lto/69254
15696 * sanitizer.def: Add BEGIN_SANITIZER_BUILTINS and
15697 END_SANITIZER_BUILTINS markers using DEF_BUILTIN_STUB.
15698 * asan.c (DEF_BUILTIN_STUB): Temporarily define.
15699 * tree-streamer-in.c: Include asan.h.
15700 (streamer_get_builtin_tree): For builtins in sanitizer
15701 range call initialize_sanitizer_builtins and retry.
15702
15703 2016-01-27 Ian Lance Taylor <iant@google.com>
15704
15705 * common.opt (fkeep-gc-roots-live): New undocumented option.
15706 * tree-ssa-loop-ivopts.c (add_candidate_1): If
15707 -fkeep-gc-roots-live, skip pointers.
15708 (add_iv_candidate_for_biv): Handle add_candidate_1 returning
15709 NULL.
15710
15711 2016-01-27 Uros Bizjak <ubizjak@gmail.com>
15712
15713 PR target/69512
15714 * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
15715 (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.
15716
15717 2016-01-27 Thomas Klausner <wiz@NetBSD.org>
15718
15719 PR target/68380
15720 * configure.ac: NetBSD provides SSP in its C library.
15721 * configure: Updated.
15722
15723 2016-01-27 Richard Biener <rguenther@suse.de>
15724
15725 PR tree-optimization/69166
15726 * tree-vect-loop.c (vect_is_simple_reduction): Always check
15727 reduction code for commutativity / associativity.
15728
15729 2016-01-27 Martin Jambor <mjambor@suse.cz>
15730
15731 PR tree-optimization/69355
15732 * tree-sra.c (analyze_access_subtree): Correct hole detection when
15733 total_scalarization fails.
15734
15735 2016-01-27 David Edelsohn <dje.gcc@gmail.com>
15736
15737 * config/rs6000/driver-rs6000.c (detect_processor_aix): Add
15738 power9.
15739
15740 2016-01-27 Christian Bruel <christian.bruel@st.com>
15741
15742 PR target/69245
15743 * config/arm/arm-c.c (arm_pragma_target_parse): Add comments.
15744 Move arm_reset_previous_fndecl and set_target_option_current_node in
15745 the conditional part. Call save_restore_target_globals.
15746 * config/arm/arm.c (arm_set_current_function):
15747 Refactor to better support #pragma target and attribute mix.
15748 Call save_restore_target_globals.
15749 * config/arm/arm-protos.h (save_restore_target_globals): New function.
15750
15751 2016-01-27 Martin Liska <mliska@suse.cz>
15752
15753 * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
15754 reference for an HSA kernel and its host function.
15755
15756 2016-01-27 Jakub Jelinek <jakub@redhat.com>
15757
15758 PR tree-optimization/69399
15759 * wide-int.h (wi::lrshift): For larger precisions, only
15760 use fast path if shift is known to be < HOST_BITS_PER_WIDE_INT.
15761
15762 2016-01-27 Claudiu Zissulescu <claziss@synopsys.com>
15763
15764 * config/arc/predicates.md (proper_comparison_operator): Reject
15765 constant-constant comparison.
15766
15767 2016-01-26 Tom de Vries <tom@codesourcery.com>
15768
15769 PR tree-optimization/69110
15770 * tree-data-ref.c (initialize_data_dependence_relation): Handle
15771 DR_NUM_DIMENSIONS == 0.
15772
15773 2016-01-26 Abderrazek Zaafrani <a.zaafrani@samsung.com>
15774 Sebastian Pop <s.pop@samsung.com>
15775
15776 * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Handle
15777 isl_ast_op_cond and isl_ast_op_select.
15778 (gcc_expression_from_isl_expr_op): Same.
15779
15780 2016-01-26 Jason Merrill <jason@redhat.com>
15781
15782 PR c++/68782
15783 * tree.c (recompute_constructor_flags): Split out from
15784 build_constructor.
15785 (verify_constructor_flags): New.
15786 * tree.h: Declare them.
15787
15788 2016-01-26 Iain Buclaw <ibuclaw@gdcproject.org>
15789
15790 PR rtl-optimization/69217
15791 * var-tracking.c (tracked_record_parameter_p): Don't segfault if there
15792 are no TYPE_FIELDS set for the record type.
15793
15794 2016-01-26 Jakub Jelinek <jakub@redhat.com>
15795
15796 PR target/68662
15797 * config/rs6000/rs6000.c (rs6000_option_override_internal): Initialize
15798 toc_label_name unconditionally.
15799 (rs6000_emit_load_toc_table): Call ggc_strdup on toc_label_name for
15800 SYMBOL_REF string. Use toc_label_name instead of constructing
15801 LCTOC1.
15802 (rs6000_elf_declare_function_name): Use toc_label_name instead of
15803 constructing LCTOC1.
15804
15805 2016-01-26 Martin Sebor <msebor@redhat.com>
15806
15807 PR other/69477
15808 * doc/extend.texi (Common Type Attributes): Move text that talks about
15809 attribute packed from attribute aligned to the section discussing
15810 the former attribute for clarity.
15811
15812 2016-01-26 Richard Henderson <rth@redhat.com>
15813
15814 PR middle-end/60908
15815 * trans-mem.c (tm_region_init): Mark entry block as visited.
15816
15817 2016-01-26 David Malcolm <dmalcolm@redhat.com>
15818
15819 PR other/69006
15820 * diagnostic-show-locus.c (layout::print_source_line): Replace
15821 call to pp_newline with call to layout::print_newline.
15822 (layout::print_annotation_line): Likewise.
15823 (layout::move_to_column): Likewise.
15824 (layout::print_any_fixits): After printing any fixits, print a
15825 trailing newline, if necessary.
15826 (layout::print_newline): New method, resetting any colorization
15827 before a newline.
15828 (diagnostic_show_locus): Move the pp_newline to before the
15829 early bailout. Remove dummy block enclosing the layout instance.
15830 * diagnostic.c (default_diagnostic_finalizer): Replace invocation
15831 of pp_newline_and_flush with pp_flush.
15832 (diagnostic_append_note): Delete use of pp_newline.
15833 (diagnostic_append_note_at_rich_loc): Delete.
15834 * diagnostic.h (diagnostic_append_note_at_rich_loc): Delete.
15835 * pretty-print.h (output_buffer_append_r): Reset buff->line_length
15836 when newline characters are added to the buffer.
15837
15838 2016-01-26 Michael Matz <matz@suse.de>
15839
15840 * configure.ac (ac_cv_std_swap_in_utility): New test.
15841 * system.h (<algorithm>): Check HAVE_SWAP_IN_UTILITY as well.
15842 * configure: Regenerate.
15843 * config.in: Regenerate.
15844
15845 2016-01-26 Claudiu Zissulescu <claziss@synopsys.com>
15846
15847 * config/arc/arc.md (cstoresi4): Force operand into register.
15848 (arcset<code>): Fix predicate.
15849 (arcsetltu): Likewise.
15850 (arcsetgeu): Likewise.
15851 (arcsethi): Likewise.
15852 (arcsetls): Likewise.
15853
15854 2016-01-26 Jakub Jelinek <jakub@redhat.com>
15855
15856 PR tree-optimization/69483
15857 * gimple-fold.c (canonicalize_constructor_val): Return NULL
15858 if base has error_mark_node type.
15859
15860 2016-01-26 Christophe Lyon <christophe.lyon@linaro.org>
15861
15862 PR target/68620
15863 * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
15864 * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
15865 New helper macros.
15866 (vget_lane_f16): Handle big-endian.
15867 (vgetq_lane_f16): Likewise.
15868 (vset_lane_f16): Likewise.
15869 (vsetq_lane_f16): Likewise.
15870 * config/arm/iterators.md (VQXMOV): Add V8HF.
15871 (VDQ): Add V4HF and V8HF.
15872 (V_reg): Handle V4HF and V8HF.
15873 (Is_float_mode): Likewise.
15874 * config/arm/neon.md (movv4hf, movv8hf, neon_vdup_nv4hf,
15875 neon_vdup_nv8hf): New patterns.
15876 (vec_set<mode>_internal, vec_extract<mode>, neon_vld1_dup<mode>):
15877 Use VD_LANE iterator.
15878 (neon_vld1_dup<mode>): Use VQ2 iterator.
15879
15880 2016-01-26 Nathan Sidwell <nathan@acm.org>
15881
15882 * omp-low.h (oacc_fn_attrib_kernels_p): Declare.
15883 (set_oacc_fn_attrib): Add IS_KERNEL arg.
15884 * omp-low.c (set_oacc_fn_attrib): Add IS_KERNEL arg.
15885 (oacc_fn_attrib_kernels_p, oacc_fn_attrib_level): New.
15886 (expand_omp_target): Pass is_kernel to set_oacc_fn_attrib.
15887 (oacc_validate_dims): Add LEVEL arg, don't return level.
15888 (new_oacc_loop_routine): Use oacc_fn_attrib_level, not
15889 oacc_validate_dims.
15890 (execute_oacc_device_lower): Adjust, add more dump output.
15891 * tree-ssa-loop.c (gate_oacc_kernels): Use
15892 oacc_fn_attrib_kernels_p.
15893 * tree-parloops.c (create_parallel_loop): Adjust
15894 set_oacc_fn_attrib call.
15895
15896 2016-01-26 Jakub Jelinek <jakub@redhat.com>
15897
15898 PR lto/69254
15899 * lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
15900 (append_compiler_options): Handle -fcilkplus.
15901 (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.
15902
15903 2016-01-26 Nick Clifton <nickc@redhat.com>
15904
15905 PR target/66655
15906 * config/i386/winnt.c (i386_pe_binds_local_p): If a function has
15907 been marked as DECL_ONE_ONLY but we do not the means to make it
15908 so, then do not allow it to bind locally.
15909
15910 2016-01-26 Jakub Jelinek <jakub@redhat.com>
15911
15912 PR lto/69254
15913 * opts.h (parse_sanitizer_options): New prototype.
15914 * opts.c (sanitizer_opts): New array.
15915 (parse_sanitizer_options): New function.
15916 (common_handle_option): Use parse_sanitizer_options.
15917
15918 2016-01-26 H.J. Lu <hongjiu.lu@intel.com>
15919
15920 PR target/68986
15921 * config/i386/i386.c (ix86_compute_frame_layout): Move stack
15922 alignment adjustment to ...
15923 (ix86_update_stack_boundary): Here. Don't over-align stack for
15924 __tls_get_addr.
15925 (ix86_finalize_stack_realign_flags): Use stack_alignment_needed
15926 if __tls_get_addr is called.
15927
15928 2016-01-26 Christian Bruel <christian.bruel@st.com>
15929
15930 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.
15931
15932 2016-01-26 Eric Botcazou <ebotcazou@adacore.com>
15933
15934 * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.
15935
15936 2016-01-26 Richard Biener <rguenther@suse.de>
15937
15938 PR middle-end/69467
15939 * match.pd: Guard X * CST CMP 0 pattern with single_use.
15940
15941 2016-01-26 Richard Biener <rguenther@suse.de>
15942
15943 PR tree-optimization/69452
15944 * tree-ssa-loop-im.c (move_computations_dom_walker): Remove.
15945 (move_computations_dom_walker::before_dom_children): Rename
15946 to ...
15947 (move_computations_worker): This.
15948 (move_computations): Perform an RPO rather than a DOM walk.
15949
15950 2016-01-26 Jakub Jelinek <jakub@redhat.com>
15951
15952 PR target/69442
15953 * combine.c (combine_instructions): For REG_EQUAL note with
15954 SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST
15955 to the underlying register.
15956 * doc/rtl.texi (REG_EQUAL): Document the behavior of
15957 REG_EQUAL/REG_EQUIV notes if SET_DEST is ZERO_EXTRACT.
15958
15959 2016-01-26 Roger Ferrer Ibáñez <rofirrim@gmail.com>
15960
15961 PR target/67896
15962 * config/aarch64/aarch64-builtins.c
15963 (aarch64_init_simd_builtin_types): Do not set structural
15964 equality to __Poly{8,16,64,128}_t types.
15965
15966 2016-01-26 Richard Sandiford <richard.sandiford@arm.com>
15967
15968 PR tree-optimization/69400
15969 * wide-int.cc (wi_pack): Take the precision as argument and
15970 perform canonicalization here rather than in the callers.
15971 Use the main loop to handle all full-width HWIs. Add a
15972 zero HWI if in_len isn't a full result.
15973 (wi::divmod_internal): Update accordingly.
15974 (wi::mul_internal): Likewise. Simplify.
15975
15976 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
15977 Sebastian Pop <s.pop@samsung.com>
15978
15979 * graphite-poly.c (apply_poly_transforms): Simplify.
15980 (print_isl_set): Use more readable format: ISL_YAML_STYLE_BLOCK.
15981 (print_isl_map): Same.
15982 (print_isl_union_map): Same.
15983 (print_isl_schedule): New.
15984 (debug_isl_schedule): New.
15985 * graphite-dependences.c (scop_get_reads): Do not call
15986 isl_union_map_add_map that is undocumented isl functionality.
15987 (scop_get_must_writes): Same.
15988 (scop_get_may_writes): Same.
15989 (scop_get_original_schedule): Remove.
15990 (scop_get_dependences): Do not call isl_union_map_compute_flow that
15991 is deprecated in isl 0.15. Instead, use isl_union_access_* interface.
15992 (compute_deps): Remove.
15993 * graphite-isl-ast-to-gimple.c (print_schedule_ast): New.
15994 (debug_schedule_ast): New.
15995 (translate_isl_ast_to_gimple::scop_to_isl_ast): Call
15996 set_separate_option.
15997 (graphite_regenerate_ast_isl): Add dump.
15998 (translate_isl_ast_to_gimple::scop_to_isl_ast): Generate code
15999 from scop->transformed_schedule.
16000 (graphite_regenerate_ast_isl): Add more dump.
16001 * graphite-optimize-isl.c (optimize_isl): Set
16002 scop->transformed_schedule. Check whether schedules are equal.
16003 (apply_poly_transforms): Move here.
16004 * graphite-poly.c (apply_poly_transforms): ... from here.
16005 (free_poly_bb): Static.
16006 (free_scop): Static.
16007 (pbb_number_of_iterations_at_time): Remove.
16008 (print_isl_ast): New.
16009 (debug_isl_ast): New.
16010 (debug_scop_pbb): New.
16011 * graphite-scop-detection.c (print_edge): Move.
16012 (print_sese): Move.
16013 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
16014 (build_scop_scattering): Remove.
16015 (create_pw_aff_from_tree): Assert instead of bailing out.
16016 (add_condition_to_pbb): Remove unused code, do not fail.
16017 (add_conditions_to_domain): Same.
16018 (add_conditions_to_constraints): Remove.
16019 (build_scop_context): New.
16020 (add_iter_domain_dimension): New.
16021 (build_iteration_domains): Initialize pbb->iterators.
16022 Call add_conditions_to_domain.
16023 (nested_in): New.
16024 (loop_at): New.
16025 (index_outermost_in_loop): New.
16026 (index_pbb_in_loop): New.
16027 (outermost_pbb_in): New.
16028 (add_in_sequence): New.
16029 (add_outer_projection): New.
16030 (outer_projection_mupa): New.
16031 (add_loop_schedule): New.
16032 (build_schedule_pbb): New.
16033 (build_schedule_loop): New.
16034 (embed_in_surrounding_loops): New.
16035 (build_schedule_loop_nest): New.
16036 (build_original_schedule): New.
16037 (build_poly_scop): Call build_original_schedule.
16038 * graphite.h: Declare print_isl_schedule and debug_isl_schedule.
16039 (free_poly_dr): Remove.
16040 (struct poly_bb): Add iterators. Remove schedule, transformed, saved.
16041 (free_poly_bb): Remove.
16042 (debug_loop_vec): Remove.
16043 (print_isl_ast): Declare.
16044 (debug_isl_ast): Declare.
16045 (scop_do_interchange): Remove.
16046 (scop_do_strip_mine): Remove.
16047 (scop_do_block): Remove.
16048 (flatten_all_loops): Remove.
16049 (optimize_isl): Remove.
16050 (pbb_number_of_iterations_at_time): Remove.
16051 (debug_scop_pbb): Declare.
16052 (print_schedule_ast): Declare.
16053 (debug_schedule_ast): Declare.
16054 (struct scop): Remove schedule. Add original_schedule,
16055 transformed_schedule.
16056 (free_gimple_poly_bb): Remove.
16057 (print_generated_program): Remove.
16058 (debug_generated_program): Remove.
16059 (unify_scattering_dimensions): Remove.
16060 * sese.c (print_edge): ... here.
16061 (print_sese): ... here.
16062 (debug_edge): ... here.
16063 (debug_sese): ... here.
16064 * sese.h (print_edge): Declare.
16065 (print_sese): Declare.
16066 (dump_edge): Declare.
16067 (dump_sese): Declare.
16068
16069 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
16070 Sebastian Pop <s.pop@samsung.com>
16071
16072 * Makefile.in: Set ISLVER in site.exp.
16073
16074 2016-01-25 Jakub Jelinek <jakub@redhat.com>
16075
16076 * omp-low.c (lower_omp_target) <case USE_DEVICE_PTR>: Set
16077 DECL_VALUE_EXPR of new_var even for the non-array case. Look
16078 through DECL_VALUE_EXPR for expansion.
16079
16080 2016-01-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
16081
16082 * config/mips/mips.c (mips_compute_frame_info): Skip re-computing
16083 the frame info after reload completed.
16084
16085 2016-01-25 Jeff Law <law@redhat.com>
16086
16087 PR tree-optimization/69196
16088 PR tree-optimization/68398
16089 * tree-ssa-threadupdate.h (enum bb_dom_status): Moved here from
16090 tree-ssa-threadupdate.c.
16091 (determine_bb_domination_status): Prototype
16092 * tree-ssa-threadupdate.c (enum bb_dom_status): Remove
16093 (determine_bb_domination_status): No longer static.
16094 (valid_jump_thread_path): Remove code to detect characteristics
16095 of the jump thread path not associated with correctness.
16096 * tree-ssa-threadbackward.c (fsm_find_control_statment_thread_paths):
16097 Correct test for thread path length. Count PHIs for real operands as
16098 statements that need to be copied. Do not count ASSERT_EXPRs.
16099 Look at all the blocks in the thread path. Compute and selectively
16100 filter thread paths based on threading through the latch, threading
16101 a multiway branch or crossing a multiway branch.
16102
16103 2016-01-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16104
16105 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): Add
16106 decl with __attribute__ ((unused)) annotation.
16107
16108 2016-01-25 Ilya Enkovich <enkovich.gnu@gmail.com>
16109
16110 PR target/69421
16111 * tree-vect-stmts.c (vectorizable_condition): Check vectype
16112 of operands is compatible with a statement vectype.
16113
16114 2016-01-25 Eric Botcazou <ebotcazou@adacore.com>
16115
16116 * doc/extend.texi (scalar_storage_order type attribute): Fix typo and
16117 improve wording for mixed storage order support.
16118
16119 2016-01-25 Bilyan Borisov <bilyan.borisov@arm.com>
16120
16121 * config/aarch64/arm_neon.h (vcvt_s64_f64): New intrinsic.
16122 (vcvt_u64_f64): Likewise.
16123 (vcvta_s64_f64): Likewise.
16124 (vcvta_u64_f64): Likewise.
16125 (vcvtm_s64_f64): Likewise.
16126 (vcvtm_u64_f64): Likewise.
16127 (vcvtn_s64_f64): Likewise.
16128 (vcvtn_u64_f64): Likewise.
16129 (vcvtp_s64_f64): Likewise.
16130 (vcvtp_u64_f64): Likewise.
16131
16132 2016-01-25 Claudiu Zissulescu <claziss@synopsys.com>
16133
16134 * config/arc/arc.c (TARGET_DWARF_REGISTER_SPAN): Define.
16135 (arc_init): Check validity mll64 option.
16136 (arc_save_restore): Use double load/store instruction.
16137 (arc_expand_movmem): Likewise.
16138 (arc_split_move): Don't split if we have double load/store
16139 instructions. Returns a boolean.
16140 (arc_process_double_reg_moves): Change function to return boolean
16141 instead of a sequence of instructions.
16142 (arc_dwarf_register_span): New function.
16143 * config/arc/arc-protos.h (arc_split_move): Change prototype.
16144 * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __ARC_LL64__.
16145 * config/arc/arc.md (*movdi_insn): Emit ldd/std instructions.
16146 (*movdf_insn): Likewise.
16147 * config/arc/arc.opt (mll64): New option.
16148 * config/arc/predicates.md (even_register_operand): New predicate.
16149 * doc/invoke.texi (ARC Options): Add mll64 documentation.
16150
16151 2016-01-25 Richard Biener <rguenther@suse.de>
16152
16153 PR lto/69393
16154 * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
16155 * tree-streamer-out.c (pack_ts_base_value_fields): Stream
16156 DECL_NAMELESS.
16157 * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
16158
16159 2016-01-25 Richard Biener <rguenther@suse.de>
16160
16161 PR tree-optimization/69376
16162 * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
16163 flag.
16164 (VN_INFO_ANTI_RANGE_P): New inline.
16165 (VN_INFO_RANGE_TYPE): Likewise.
16166 * tree-ssa-sccvn.c (set_ssa_val_to): Also record and copy
16167 SSA_NAME_ANTI_RANGE_P.
16168 (free_scc_vn): Restore SSA_NAME_ANTI_RANGE_P.
16169 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
16170 Properly query VN_INFO_RANGE_TYPE.
16171
16172 2016-01-25 Nick Clifton <nickc@redhat.com>
16173
16174 PR target/66655
16175 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.
16176
16177 2016-01-23 Tom de Vries <tom@codesourcery.com>
16178
16179 PR tree-optimization/69426
16180 * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
16181 removed clobber.
16182
16183 2016-01-23 Jakub Jelinek <jakub@redhat.com>
16184
16185 * tree-ssanames.c (release_free_names_and_compact_live_names): Replace
16186 "the the" with "the" in the comments.
16187 * ipa-devirt.c (build_type_inheritance_graph,
16188 update_type_inheritance_graph): Likewise.
16189 * tree.c (build_function_type_list_1): Likewise.
16190 * cfgloopmanip.c (scale_loop_profile): Likewise.
16191 * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Likewise.
16192 * gimple-ssa-split-paths.c
16193 (find_block_to_duplicate_for_splitting_paths): Likewise.
16194 * tree-sra.c (init_subtree_with_zero, clobber_subtree): Likewise.
16195 * expr.c (convert_move): Likewise.
16196 * var-tracking.c (vt_stack_adjustments): Likewise.
16197 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
16198 * tree-vrp.c (test_for_singularity): Likewise.
16199
16200 * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
16201 directly instead of building a temporary tree.
16202
16203 PR bootstrap/69434
16204 * genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
16205 remove <algorithm> include.
16206
16207 2016-01-22 Jakub Jelinek <jakub@redhat.com>
16208
16209 PR target/69432
16210 * config/i386/i386.c: Include dojump.h.
16211 (expand_small_movmem_or_setmem,
16212 expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Spelling
16213 fixes.
16214 (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
16215 if dynamic_check != -1.
16216
16217 2016-01-21 Jeff Law <law@redhat.com>
16218
16219 PR middle-end/69347
16220 * tree-ssa-dom.c (back_propagate_equivalences): Factored out of
16221 record_temporary_equivalences. Rewritten to avoid unnecessary calls
16222 into dominated_by_p.
16223 (cprop_into_successor_phis): Avoid unnecessary tests.
16224
16225 2016-01-22 Richard Henderson <rth@redhat.com>
16226
16227 PR target/69416
16228 * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
16229 (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
16230
16231 2016-01-22 Michael Matz <matz@suse.de>
16232
16233 * system.h (string, algorithm): Include only conditionally.
16234 (new): Include always under C++.
16235 * bb-reorder.c (toplevel): Define INCLUDE_ALGORITHM.
16236 * final.c (toplevel): Ditto.
16237 * ipa-chkp.c (toplevel): Define INCLUDE_STRING.
16238 * genconditions.c (write_header): Make gencondmd.c define
16239 INCLUDE_STRING.
16240 * mem-stats.h (mem_usage::print_dash_line): Don't use std::string.
16241
16242 * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
16243 * common/config/aarch64/aarch64-common.c (toplevel): Ditto.
16244
16245 2016-01-22 Christian Bruel <christian.bruel@st.com>
16246
16247 PR target/68674
16248 * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.
16249
16250 2016-01-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16251
16252 PR target/69403
16253 * config/arm/thumb2.md (*thumb2_ior_scc_strict_it): Convert to
16254 define_insn_and_split. Ensure operands[1] and operands[0] do not
16255 get assigned the same register.
16256
16257 2016-01-22 Kugan Vivekanandarajah <kuganv@linaro.org>
16258
16259 * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.
16260
16261 2016-01-22 Christian Bruel <christian.bruel@st.com>
16262
16263 * config/arm/arm-c.c (arm_pragma_target_parse):
16264 Remove warn_builtin_macro_redefined overwrite.
16265
16266 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
16267
16268 * ipa-inline.c (can_inline_edge_p): Back out overzealous check on
16269 flag_non_call_exceptions compatibility.
16270
16271 2016-01-22 Jakub Jelinek <jakub@redhat.com>
16272
16273 PR debug/66668
16274 * dwarf2out.c (add_child_die_after): New function.
16275 (dwarf_qual_info_t): New type.
16276 (dwarf_qual_info): New variable.
16277 (qualified_die_p): New function.
16278 (modified_type_die): For -fdebug-types-section, ensure
16279 canonical order of qualifiers. Put qualified DIEs adjacent
16280 to the corresponding non-qualified type DIE and search there
16281 for existing qualified DIEs.
16282
16283 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
16284
16285 * doc/extend.texi (scalar_storage_order type attribute): Document
16286 restriction on type punning and aliasing, and remove future tense.
16287
16288 2016-01-21 Roman Zhuykov <zhroma@ispras.ru>
16289
16290 PR target/69252
16291 * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
16292 first stage.
16293
16294 2016-01-21 Jeff Law <law@redhat.com>
16295
16296 PR middle-end/69347
16297 * tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid
16298 useless call to record_temporary_equivalences.
16299 * tree-ssa-threadbackward.c (find_jump_threads_backwards): Just
16300 allocate 10 slots in the bb_path vector and let it grow as needed.
16301 (fsm_find_control_statement_thread_paths): Similarly for the next_path
16302 vector.
16303
16304 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
16305
16306 * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
16307 Detangle.
16308 * configure: Regenerate.
16309
16310 2016-01-21 Pat Haugen <pthaugen@us.ibm.com>
16311
16312 * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
16313 * config/rs6000/driver-rs6000.c (struct asm_names): Likewise.
16314
16315 2016-01-21 Bernd Schmidt <bschmidt@redhat.com>
16316
16317 PR middle-end/66178
16318 * expr.c (expand_expr_real_2) [PLUS_EXPR, MINUS_EXPR]: Don't
16319 drop EXPAND_INITIALIZER.
16320 * rtl.h (contains_symbolic_reference_p): Declare.
16321 * rtlanal.c (contains_symbolic_reference_p): New function.
16322 * simplify-rtx.c (simplify_binary_operation_1): Don't turn
16323 a subtraction into a NOT if symbolic constants are involved.
16324
16325 2016-01-21 Anton Blanchard <anton@samba.org>
16326 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16327
16328 PR target/63354
16329 * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
16330 #define.
16331 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
16332 function.
16333
16334 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
16335
16336 * config/microblaze/microblaze.c
16337 (get_branch_target): New.
16338 (insert_wic_for_ilb_runout): New.
16339 (insert_wic): New.
16340 (microblaze_machine_dependent_reorg): New.
16341 (TARGET_MACHINE_DEPENDENT_REORG): Define macro.
16342 * config/microblaze/microblaze.md
16343 (UNSPEC_IPREFETCH): Define.
16344 (iprefetch): New pattern
16345 * config/microblaze/microblaze.opt
16346 (mxl-prefetch): New flag.
16347
16348 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
16349
16350 * config/microblaze/microblaze.h
16351 (FIXED_REGISTERS): Update in macro.
16352 (CALL_USED_REGISTERS): Update in macro.
16353
16354 2016-01-21 Yuri Rumyantsev <ysrumyan@gmail.com>
16355
16356 PR rtl-optimization/68920
16357 * ifcvt.c (cond_move_process_if_block): Limit number of conditional
16358 moves.
16359
16360 2016-01-21 Vladimir Makarov <vmakarov@redhat.com>
16361
16362 PR rtl-optimization/68990
16363 * lra-coalesce.c (lra_coalesce): Invalidate value for the result
16364 pseudo instead of inheritance ones.
16365
16366 2016-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
16367 Nick Clifton <nickc@redhat.com>
16368
16369 PR target/69129
16370 PR target/69012
16371 * config/mips/mips.c (mips_compute_frame_info): Initialise
16372 args_size and hard_frame_pointer_offset fields of the frame
16373 structure before calling mips_global_pointer.
16374
16375 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
16376
16377 * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
16378 label reference.
16379 * configure: Regenerate.
16380
16381 2016-01-21 Richard Biener <rguenther@suse.de>
16382
16383 * graphite-optimize-isl.c (get_schedule_map): Fix typo.
16384
16385 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
16386
16387 * config/s390/s390.c (s390_asm_declare_function_size): Add code
16388 to actually emit the .size directive.
16389
16390 2016-01-21 Stefan Sørensen <stefan.sorensen@spectralink.com>
16391 Jakub Jelinek <jakub@redhat.com>
16392
16393 PR target/69187
16394 PR target/65624
16395 * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
16396 args array size by one to avoid buffer overflow.
16397
16398 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
16399
16400 * config/s390/s390.md (pool_section_start): Use switch_to_section
16401 to select proper read-only data section instead of hardcoding
16402 .rodata.
16403 (pool_section_end): Use switch_to_section to match the above.
16404
16405 2016-01-21 Richard Biener <rguenther@suse.de>
16406
16407 PR tree-optimization/69378
16408 * tree-ssa-sccvn.c (dominated_by_p_w_unex): New function.
16409 (set_ssa_val_to): Use it for dominance checks taking into
16410 account not executable edges.
16411
16412 2016-01-21 Jakub Jelinek <jakub@redhat.com>
16413
16414 PR c++/69355
16415 * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
16416 for bitsize instead of GET_MODE_PRECISION (mode).
16417
16418 2016-01-20 Martin Sebor <msebor@redhat.com>
16419
16420 PR c/52291
16421 * extend.texi (__sync Builtins): Clarify the semantics of
16422 __sync_fetch_and_OP built-ins on pointers.
16423 (__atomic Builtins): Same.
16424
16425 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
16426 Sebastian Pop <s.pop@samsung.com>
16427
16428 * graphite-isl-ast-to-gimple.c (enum phi_node_kind): New.
16429 (class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool.
16430 (is_valid_rename): Same.
16431 (translate_isl_ast_to_gimple::get_rename): Same.
16432 (translate_isl_ast_to_gimple::rename_all_uses): Same.
16433 (translate_isl_ast_to_gimple::rename_uses): Same.
16434 (get_new_name): Check for close_phi nodes.
16435 (copy_loop_phi_args): Use phi_node_kind.
16436 (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
16437 (translate_isl_ast_to_gimple::copy_cond_phi_args): Same.
16438
16439 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
16440 Sebastian Pop <s.pop@samsung.com>
16441
16442 Revert commit r229783.
16443 * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
16444 Remove use of parameter_rename_map.
16445 (copy_def): Remove.
16446 (copy_internal_parameters): Remove.
16447 (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
16448 * sese.c (new_sese_info): Do not initialize parameter_rename_map.
16449 (free_sese_info): Do not free parameter_rename_map.
16450 (set_rename): Do not use parameter_rename_map.
16451 (rename_uses): Update call to set_rename.
16452 (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
16453 * sese.h (parameter_rename_map_t): Remove.
16454 (struct sese_info_t): Remove field parameter_rename_map.
16455
16456 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
16457 Sebastian Pop <s.pop@samsung.com>
16458
16459 * graphite-isl-ast-to-gimple.c: Fix comment.
16460 * graphite-scop-detection.c (defined_in_loop_p): New.
16461 (canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
16462 names defined in loop.
16463
16464 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
16465 Sebastian Pop <s.pop@samsung.com>
16466
16467 * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
16468 Discard unstructured if-then-else regions.
16469
16470 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
16471 Sebastian Pop <s.pop@samsung.com>
16472
16473 * graphite-sese-to-poly.c (set_scop_parameter_dim): Remove.
16474 (cleanup_loop_iter_dom): Remove.
16475 (build_loop_iteration_domains): Remove.
16476 (build_scop_context): Remove.
16477 (build_scop_iteration_domain): Remove.
16478 (add_loop_constraints): New.
16479 (build_iteration_domains): New.
16480 (build_poly_scop): Call build_iteration_domains.
16481
16482 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
16483 Sebastian Pop <s.pop@samsung.com>
16484
16485 * graphite-scop-detection.c
16486 (scop_detection::harmful_loop_in_region): Free dom and loops.
16487 (scop_detection::loop_body_is_valid_scop): Free bbs.
16488
16489 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
16490 Sebastian Pop <s.pop@samsung.com>
16491
16492 * graphite-scop-detection.c (record_loop_in_sese): New.
16493 (gather_bbs::before_dom_children): Call record_loop_in_sese.
16494 (build_scops): Remove call to build_sese_loop_nests.
16495 * sese.c (sese_record_loop): Remove.
16496 (build_sese_loop_nests): Remove.
16497 (new_sese_info): Remove region->loops.
16498 (free_sese_info): Same.
16499 * sese.h (sese_contains_loop): Same.
16500 (build_sese_loop_nests): Remove.
16501 (sese_contains_loop): Remove.
16502
16503 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
16504 Sebastian Pop <s.pop@samsung.com>
16505
16506 * graphite-scop-detection.c (loop_is_valid_scop): Renamed
16507 loop_is_valid_in_scop.
16508 (scop_detection::harmful_stmt_in_region): Renamed
16509 harmful_loop_in_region.
16510 Call loop_is_valid_in_scop.
16511
16512 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
16513 Sebastian Pop <s.pop@samsung.com>
16514
16515 * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
16516 isl_ast_node_mark.
16517
16518 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
16519 Sebastian Pop <s.pop@samsung.com>
16520
16521 * graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION.
16522 * graphite.h (struct poly_bb): Remove field is_reduction.
16523 (PBB_IS_REDUCTION): Remove.
16524
16525 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
16526 Sebastian Pop <s.pop@samsung.com>
16527
16528 * graphite-dependences.c (constrain_domain): Add call to isl_*_coalesce.
16529 (add_pdr_constraints): Same.
16530 (scop_get_reads): Same.
16531 (scop_get_must_writes): Same.
16532 (scop_get_may_writes): Same.
16533 (scop_get_original_schedule): Same.
16534 (extend_schedule): Same.
16535 (apply_schedule_on_deps): Same.
16536 (carries_deps): Same.
16537 (compute_deps): Same.
16538 (scop_get_dependences): Same.
16539 * graphite-isl-ast-to-gimple.c
16540 (translate_isl_ast_to_gimple::generate_isl_schedule): Same.
16541 * graphite-optimize-isl.c (get_schedule_for_band): Same.
16542 (get_schedule_for_band_list): Same.
16543 (get_schedule_map): Same.
16544 (apply_schedule_map_to_scop): Same.
16545 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
16546 (build_loop_iteration_domains): Same.
16547 (add_condition_to_pbb): Same.
16548 (add_param_constraints): Same.
16549 (pdr_add_memory_accesses): Same.
16550 (pdr_add_data_dimensions): Same.
16551
16552 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
16553
16554 * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
16555 requirements.
16556
16557 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
16558
16559 * common.opt (feliminate-dwarf2-dups): Replace references to
16560 "DWARF 2" with just "DWARF".
16561 * config/ia64/ia64.opt (mdwarf2-asm): Likewise.
16562 * doc/extend.texi: Likewise.
16563 * doc/cpp.texi: Likewise.
16564 * doc/invoke.texi: Likewise.
16565 (Option Summary): Add -gdwarf to list of Debugging Options.
16566 (Debugging Options): Document -gdwarf.
16567 * doc/contrib.texi: Spell "DWARF" like that.
16568
16569 2016-01-21 Jakub Jelinek <jakub@redhat.com>
16570
16571 * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
16572 warning. Fix up formatting.
16573
16574 PR middle-end/67653
16575 * gimplify.c (gimplify_asm_expr): Warn if it is too late to
16576 attempt to mark memory input operand addressable and
16577 call prepare_gimple_addressable in that case. Don't adjust
16578 input_location for diagnostics, use error_at instead.
16579
16580 2016-01-20 Peter Bergner <bergner@vnet.ibm.com>
16581
16582 * config/rs6000/ppc-auxv.h: New file.
16583 * config/rs6000/rs6000-builtin.def (cpu_init): Add new builtin.
16584 (cpu_is): Likewise.
16585 (cpu_supports): Likewise.
16586 * config/rs6000/rs6000.c: include "ppc-auxv.h".
16587 (cpu_is_info): New variable.
16588 (cpu_supports_info): Likewise.
16589 (tcb_verification_symbol): Likewise.
16590 (cpu_builtin_p): Likewise.
16591 (cpu_expand_builtin): New function.
16592 (rs6000_expand_ternop_builtin): Add support for CPU builtin functions.
16593 (rs6000_init_builtins): Likewise.
16594 (rs6000_elf_file_end): Emit HWCAP in TCB verification symbol.
16595 * config/rs6000/rs6000.h (TLS_REGNUM): New define.
16596 * configure.ac (gcc_cv_libc_provides_hwcap_in_tcb): New test.
16597 * configure: Regenerate.
16598 * config.in: Likewise.
16599 * doc/extend.texi (PowerPC Built-in Functions): Document
16600 __builtin_cpu_init, __builtin_cpu_is and __builtin_cpu_supports.
16601
16602 2016-01-20 David Edelsohn <dje.gcc@gmail.com>
16603
16604 PR target/68609
16605 * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
16606 domain check.
16607 * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
16608 for V4SFmode.
16609
16610 2016-01-20 Richard Henderson <rth@redhat.com>
16611
16612 PR bootstrap/69343
16613 PR bootstrap/69339
16614 PR tree-opt/68964
16615 Revert:
16616 * tree.c (tm_define_builtin): New.
16617 (find_tm_vector_type): New.
16618 (build_tm_vector_builtins): New.
16619 (build_common_builtin_nodes): Call it.
16620
16621 2016-01-20 Christophe Lyon <christophe.lyon@linaro.org>
16622
16623 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
16624 (arm_fp_ok): Likewise.
16625 (arm_fp): Likewise.
16626 (arm_crypto): Likewise.
16627
16628 2016-01-20 Ilya Enkovich <enkovich.gnu@gmail.com>
16629 Richard Biener <rguenther@suse.de>
16630
16631 PR tree-optimization/69328
16632 * tree-vect-stmts.c (vect_is_simple_cond): Check compared
16633 vectors have same number of elements.
16634 (vectorizable_condition): Fix masked version recognition.
16635
16636 2016-01-20 Richard Biener <rguenther@suse.de>
16637
16638 PR tree-optimization/69345
16639 * tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function.
16640 (VN_INFO_PTR_INFO): Likewise.
16641 * tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to
16642 info when it is equal between non-dominating SSA names.
16643 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
16644 Make sure to look at original SSA infos.
16645
16646 2016-01-20 Jeff Law <law@redhat.com>
16647
16648 PR target/25114
16649 * config/m68k/predicates.md (pow2_m1_operand): New predicate
16650 extracted from ...
16651 (reg_or_pow2_m1_operand): Call pow2_m1_operand.
16652 (pc_or_label_operand): New predicate.
16653 * config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU
16654 tests for small integers that are 2^n - 1.
16655
16656 2016-01-20 Jonathan Wakely <jwakely@redhat.com>
16657
16658 * doc/invoke.texi (Options Summary): Add '.' after @xref.
16659
16660 2016-01-19 Jeff Law <law@redhat.com>
16661
16662 PR middle-end/69347
16663 * tree-ssa-threadbackwards.c
16664 (fsm_find_control_statement_thread_paths): Do not try to lookup
16665 FSM paths for SSA_NAMEs appearing in abnormal PHIs.
16666
16667 2016-01-20 Kugan Vivekanandarajah <kuganv@linaro.org>
16668
16669 * doc/lto.texi: Remove text that says only Gold has linker plugin
16670 support.
16671
16672 2016-01-19 Eric Botcazou <ebotcazou@adacore.com>
16673
16674 * dwarf2out.c (need_endianity_attribute_p): New inline predicate.
16675 (base_type_die): Add REVERSE parameter and attach DW_AT_endianity to
16676 the DIE accordingly.
16677 (modified_type_die): Add REVERSE parameter and pass it recursively,
16678 as well as to base_type_die. Adjust presence check accordingly.
16679 (base_type_for_mode): Adjust call to modified_type_die.
16680 (add_type_attribute): Add REVERSE parameter and pass it to
16681 modified_type_die.
16682 (generic_parameter_die): Adjust call to add_type_attribute.
16683 (add_scalar_info): Likewise.
16684 (add_subscript_info): Likewise.
16685 (gen_array_type_die): Likewise.
16686 (gen_descr_array_type_die): Likewise.
16687 (gen_entry_point_die): Likewise.
16688 (gen_enumeration_type_die): Likewise.
16689 (gen_formal_parameter_die): Likewise.
16690 (gen_subprogram_die): Likewise.
16691 (gen_variable_die ): Likewise.
16692 (gen_const_die): Likewise.
16693 (gen_field_die): Likewise.
16694 (gen_pointer_type_die): Likewise.
16695 (gen_reference_type_die): Likewise.
16696 (gen_ptr_to_mbr_type_die): Likewise.
16697 (gen_inheritance_die): Likewise.
16698 (gen_subroutine_type_die): Likewise.
16699 (gen_typedef_die): Likewise.
16700 (force_type_die): Adjust call to modified_type_die.
16701
16702 2016-01-19 Sandra Loosemore <sandra@codesourcery.com>
16703
16704 * doc/standards.texi: Copy-editing for grammar, markup, and sentence
16705 flow throughout the file. Fix broken link to Objective-C 2.0
16706 documentation.
16707 * doc/invoke.texi: More copy-editing; fix numerous typos and spelling
16708 errors.
16709
16710 2016-01-19 Wilco Dijkstra <wdijkstr@arm.com>
16711
16712 * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.
16713
16714 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
16715
16716 PR ipa/66223
16717 * ipa-devirt.c (is_cxa_pure_virtual_p): New function.
16718 (maybe_record_node): Record cxa_pure_virtual as the only possible
16719 target if there are not ohter candidates.
16720 (possible_polymorphic_call_target_p): Accept cxa_pure_virtual.
16721
16722 2016-01-19 Richard Biener <rguenther@suse.de>
16723
16724 * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
16725 (get_memory_order): Likewise.
16726
16727 2016-01-19 Kirill Yukhin <kirill.yukhin@intel.com>
16728
16729 * tree-vect-stmts.c (vectorizable_store): Check
16730 rhs vectype.
16731
16732 2016-01-19 David Malcolm <dmalcolm@redhat.com>
16733
16734 PR jit/68446
16735 * gcc.c (driver::decode_argv): Add call to
16736 init_opts_obstack before init_options_struct.
16737 * opts.c (init_opts_obstack): Remove idempotency.
16738 (init_options_struct): Replace call to init_opts_obstack
16739 with a gcc_assert to verify that it has already been called.
16740 * toplev.c (toplev::main): Add call to init_opts_obstack before
16741 calls to init_options_struct.
16742 (toplev::finalize): Move cleanup of opts_obstack next to
16743 cleanup of save_decoded_options, clearing the latter, and
16744 save_decoded_options_count.
16745
16746 2016-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16747
16748 PR target/69135
16749 * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
16750 attribute to unconditional. Remove %? from output template.
16751
16752 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
16753 Jiong Wang <jiong.wang@arm.com>
16754
16755 * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
16756 generated from different expand order.
16757
16758 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
16759
16760 * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
16761 Add support for CCMP costing.
16762
16763 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
16764
16765 * ccmp.c (ccmp_candidate_p): Remove integer-only restriction.
16766 * config/aarch64/aarch64.md (fccmp<mode>): New pattern.
16767 (fccmpe<mode>): Likewise.
16768 (fcmp): Rename to fcmp and globalize pattern.
16769 (fcmpe): Likewise.
16770 * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
16771 (aarch64_gen_ccmp_next): Add FP support.
16772
16773 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
16774
16775 * target.def (gen_ccmp_first): Update documentation.
16776 (gen_ccmp_next): Likewise.
16777 * doc/tm.texi (gen_ccmp_first): Update documentation.
16778 (gen_ccmp_next): Likewise.
16779 * ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of
16780 expand_ccmp_expr_1. Improve comments.
16781 * config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp.
16782 (ccmp_ior<mode>): Remove pattern.
16783 (cmp<mode>): Remove expand.
16784 (cmp): Globalize pattern.
16785 (cstorecc4): Use cc_register.
16786 (mov<mode>cc): Remove ccmp_cc_register check.
16787 * config/aarch64/aarch64.c (aarch64_get_condition_code_1):
16788 Simplify after removal of CC_DNE/* modes.
16789 (aarch64_ccmp_mode_to_code): Remove.
16790 (aarch64_print_operand): Remove 'K' case. Merge 'm' and 'M' cases.
16791 In 'k' case use integer as condition.
16792 (aarch64_nzcv_codes): Remove inverted cases.
16793 (aarch64_code_to_ccmode): Remove.
16794 (aarch64_gen_ccmp_first): Use cmp pattern directly. Return the correct
16795 comparison with CC register to be used in folowing CCMP/branch/CSEL.
16796 (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP
16797 pattern. Return the comparison with CC register. Invert conditions
16798 when bitcode is OR.
16799 * config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes.
16800 * config/aarch64/predicates.md (ccmp_cc_register): Remove.
16801
16802 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
16803
16804 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
16805 instrumented_version.
16806
16807 2016-01-19 Richard Biener <rguenther@suse.de>
16808
16809 PR tree-optimization/69336
16810 * tree-ssa-scopedtables.c (avail_expr_hash): Handle all
16811 handled components with get_ref_base_and_extent.
16812 (equal_mem_array_ref_p): Adjust.
16813
16814 2016-01-19 Jakub Jelinek <jakub@redhat.com>
16815
16816 PR debug/65779
16817 * shrink-wrap.c: Include valtrack.h.
16818 (move_insn_for_shrink_wrap): Add DEBUG argument. If
16819 MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs
16820 in between insn and where it will be moved to. Call
16821 dead_debug_insert_temp.
16822 (prepare_shrink_wrap): Adjust caller. Call dead_debug_local_init
16823 first and dead_debug_local_finish at the end.
16824 For uses and defs bitmap, handle all regs in between REGNO and
16825 END_REGNO, not just the first one.
16826
16827 2016-01-19 Richard Biener <rguenther@suse.de>
16828
16829 PR tree-optimization/69352
16830 * tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1.
16831 (equal_mem_array_ref_p): Constrain size and max size properly.
16832 Compare the reverse flag.
16833
16834 2016-01-19 Bernd Schmidt <bschmidt@redhat.com>
16835
16836 * ira.c (ira): Update regstat data if we deleted insns.
16837
16838 2016-01-19 Jakub Jelinek <jakub@redhat.com>
16839
16840 PR rtl-optimization/68955
16841 PR rtl-optimization/64557
16842 * dse.c (record_store, check_mem_read_rtx): Don't call get_addr
16843 here. Fix up formatting.
16844 * alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.
16845
16846 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
16847
16848 PR lto/69133
16849 * cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple
16850 assume that the node has body.
16851 * cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p
16852 check.
16853
16854 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
16855
16856 * lto-streamer-out.c (lto_output): Do not stream instrumentation
16857 thunks.
16858
16859 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
16860
16861 * symtab.c (symtab_node::asm_name): Do not call printable name directly.
16862 (symtab_node::name): Report name as unnamed if DECL_NAME is not set.
16863
16864 2016-01-19 Martin Jambor <mjambor@suse.cz>
16865 Martin Liska <mliska@suse.cz>
16866 Michael Matz <matz@suse.de>
16867
16868 * Makefile.in (OBJS): Add new source files.
16869 (GTFILES): Add hsa.c.
16870 * common.opt (disable_hsa): New variable.
16871 (-Whsa): New warning.
16872 * config.in (ENABLE_HSA): New.
16873 * configure.ac: Treat hsa differently from other accelerators.
16874 (OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
16875 $enable_offloading.
16876 (ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
16877 * doc/install.texi (Configuration): Document --with-hsa-runtime,
16878 --with-hsa-runtime-include, --with-hsa-runtime-lib and
16879 --with-hsa-kmt-lib.
16880 * doc/invoke.texi (-Whsa): Document.
16881 (hsa-gen-debug-stores): Likewise.
16882 * lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
16883 to invoke offload compiler for hsa acclerator.
16884 * opts.c (common_handle_option): Determine whether HSA offloading
16885 should be performed.
16886 * params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
16887 * builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
16888 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
16889 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
16890 * gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
16891 * gimple-pretty-print.c (dump_gimple_omp_for): Also handle
16892 GF_OMP_FOR_KIND_GRID_LOOP.
16893 (dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
16894 (pp_gimple_stmt_1): Likewise.
16895 * gimple-walk.c (walk_gimple_stmt): Likewise.
16896 * gimple.c (gimple_build_omp_grid_body): New function.
16897 (gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
16898 * gimple.def (GIMPLE_OMP_GRID_BODY): New.
16899 * gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
16900 GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
16901 GF_OMP_TEAMS_GRID_PHONY.
16902 (gimple_statement_omp_single_layout): Updated comments.
16903 (gimple_build_omp_grid_body): New function.
16904 (gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
16905 (gimple_omp_for_grid_phony): New function.
16906 (gimple_omp_for_set_grid_phony): Likewise.
16907 (gimple_omp_parallel_grid_phony): Likewise.
16908 (gimple_omp_parallel_set_grid_phony): Likewise.
16909 (gimple_omp_teams_grid_phony): Likewise.
16910 (gimple_omp_teams_set_grid_phony): Likewise.
16911 (gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
16912 * omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
16913 (BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
16914 (BUILT_IN_GOMP_TARGET): Updated type.
16915 * omp-low.c: Include symbol-summary.h, hsa.h and params.h.
16916 (adjust_for_condition): New function.
16917 (get_omp_for_step_from_incr): Likewise.
16918 (extract_omp_for_data): Moved parts to adjust_for_condition and
16919 get_omp_for_step_from_incr.
16920 (build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
16921 (fixup_child_record_type): Bail out if receiver_decl is NULL.
16922 (scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
16923 (scan_omp_parallel): Do not create child functions for phony
16924 constructs.
16925 (check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
16926 (scan_omp_1_op): Checking assert we are not remapping to
16927 ERROR_MARK. Also also handle GIMPLE_OMP_GRID_BODY.
16928 (parallel_needs_hsa_kernel_p): New function.
16929 (expand_parallel_call): Register apprpriate parallel child
16930 functions as HSA kernels.
16931 (grid_launch_attributes_trees): New type.
16932 (grid_attr_trees): New variable.
16933 (grid_create_kernel_launch_attr_types): New function.
16934 (grid_insert_store_range_dim): Likewise.
16935 (grid_get_kernel_launch_attributes): Likewise.
16936 (get_target_argument_identifier_1): Likewise.
16937 (get_target_argument_identifier): Likewise.
16938 (get_target_argument_value): Likewise.
16939 (push_target_argument_according_to_value): Likewise.
16940 (get_target_arguments): Likewise.
16941 (expand_omp_target): Call get_target_arguments instead of looking
16942 up for teams and thread limit.
16943 (grid_expand_omp_for_loop): New function.
16944 (grid_arg_decl_map): New type.
16945 (grid_remap_kernel_arg_accesses): New function.
16946 (grid_expand_target_kernel_body): New function.
16947 (expand_omp): Call it.
16948 (lower_omp_for): Do not emit phony constructs.
16949 (lower_omp_taskreg): Do not emit phony constructs but create for them
16950 a temporary variable receiver_decl.
16951 (lower_omp_taskreg): Do not emit phony constructs.
16952 (lower_omp_teams): Likewise.
16953 (lower_omp_grid_body): New function.
16954 (lower_omp_1): Call it.
16955 (grid_reg_assignment_to_local_var_p): New function.
16956 (grid_seq_only_contains_local_assignments): Likewise.
16957 (grid_find_single_omp_among_assignments_1): Likewise.
16958 (grid_find_single_omp_among_assignments): Likewise.
16959 (grid_find_ungridifiable_statement): Likewise.
16960 (grid_target_follows_gridifiable_pattern): Likewise.
16961 (grid_remap_prebody_decls): Likewise.
16962 (grid_copy_leading_local_assignments): Likewise.
16963 (grid_process_kernel_body_copy): Likewise.
16964 (grid_attempt_target_gridification): Likewise.
16965 (grid_gridify_all_targets_stmt): Likewise.
16966 (grid_gridify_all_targets): Likewise.
16967 (execute_lower_omp): Call grid_gridify_all_targets.
16968 (make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
16969 * tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
16970 (tree_omp_clause): Added union field dimension.
16971 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
16972 * tree.c (omp_clause_num_ops): Added number of arguments of
16973 OMP_CLAUSE__GRIDDIM_.
16974 (omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
16975 (walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
16976 * tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
16977 (OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
16978 (OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
16979 (OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
16980 * passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
16981 * tree-pass.h (make_pass_gen_hsail): Declare.
16982 (make_pass_ipa_hsa): Likewise.
16983 * ipa-hsa.c: New file.
16984 * lto-section-in.c (lto_section_name): Add hsa section name.
16985 * lto-streamer.h (lto_section_type): Add hsa section.
16986 * timevar.def (TV_IPA_HSA): New.
16987 * hsa-brig-format.h: New file.
16988 * hsa-brig.c: New file.
16989 * hsa-dump.c: Likewise.
16990 * hsa-gen.c: Likewise.
16991 * hsa.c: Likewise.
16992 * hsa.h: Likewise.
16993 * toplev.c (compile_file): Call hsa_output_brig.
16994 * hsa-regalloc.c: New file.
16995
16996 2016-01-18 Jeff Law <law@redhat.com>
16997
16998 PR tree-optimization/69320
16999 * tree-ssa-dom.c (record_edge_info): For comparisons against a boolean
17000 ranged object, do nothing if the RHS constant is not [0..1].
17001 (optimize_stmt): Comparing a boolean ranged object against a
17002 constant outside [0..1] results in a compile-time constant.
17003
17004 * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
17005 test.
17006
17007 2016-01-18 Sandra Loosemore <sandra@codesourcery.com>
17008
17009 * doc/invoke.texi (Invoking GCC): Add new section to menu.
17010 (Option Summary): Update to reflect new section and moved options.
17011 (C++ Dialect Options): Move -fstats to new section.
17012 (Debugging Options): Move all dump, statistics, and other GCC
17013 developer options to new section. Rewrite section introduction
17014 and re-order remaining options to put the more basic ones first.
17015 (Optimization Options): Move -fira-verbose and -flto-report* to
17016 new section.
17017 (Developer Options): New section incorporating moved options.
17018 * doc/cppopts.texi (-dM): Update cross-reference.
17019
17020 2016-01-18 Richard Henderson <rth@redhat.com>
17021
17022 PR target/69176
17023 * config/aarch64/aarch64.md (add<GPI>3): Move long immediate
17024 operands to pseudo only if CSE is expected. Split long immediate
17025 operands only after reload, and for the stack pointer.
17026 (*add<GPI>3_pluslong): Remove.
17027 (*addsi3_aarch64, *adddi3_aarch64): Merge into...
17028 (*add<GPI>3_aarch64): ... here. Add r/rk/Upl alternative.
17029 (*addsi3_aarch64_uxtw): Add r/rk/Upl alternative.
17030 (*add<GPI>3 peepholes): New.
17031 (*add<GPI>3 splitters): New.
17032 * config/aarch64/constraints.md (Upl): New.
17033 * config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New.
17034
17035 2016-01-18 Richard Biener <rguenther@suse.de>
17036
17037 PR tree-optimization/69297
17038 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
17039 stmt at most once.
17040 (vect_bb_vectorization_profitable_p): Clear visited flag again.
17041
17042 2016-01-18 Yuri Rumyantsev <ysrumyan@gmail.com>
17043
17044 PR middle-end/68542
17045 * fold-const.c (fold_binary_op_with_conditional_arg): Bail out for case
17046 of mixind vector and scalar types.
17047 (fold_relational_const): Add handling of vector
17048 comparison with boolean result.
17049 * tree-cfg.c (verify_gimple_comparison): Add argument CODE, allow
17050 comparison of vector operands with boolean result for EQ/NE only.
17051 (verify_gimple_assign_binary): Adjust call for verify_gimple_comparison.
17052 (verify_gimple_cond): Likewise.
17053 * tree-vrp.c (extract_code_and_val_from_cond_with_ops): Modify check on
17054 valid type of VAL.
17055
17056 2016-01-18 Joseph Myers <joseph@codesourcery.com>
17057
17058 * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
17059 !TARGET_OCTEON.
17060
17061 2016-01-18 Richard Biener <rguenther@suse.de>
17062
17063 PR middle-end/69308
17064 * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.
17065
17066 2016-01-18 Tom de Vries <tom@codesourcery.com>
17067
17068 * passes.def: Add pass_parallelize_loops to pass_oacc_kernels.
17069
17070 2016-01-18 Tom de Vries <tom@codesourcery.com>
17071
17072 * omp-low.c (set_oacc_fn_attrib): Make extern.
17073 * omp-low.h (set_oacc_fn_attrib): Declare.
17074 * tree-parloops.c (struct reduction_info): Add reduc_addr field.
17075 (create_call_for_reduction_1): Handle case that reduc_addr is non-NULL.
17076 (create_parallel_loop, gen_parallel_loop, try_create_reduction_list):
17077 Add and handle function parameter oacc_kernels_p.
17078 (find_reduc_addr, get_omp_data_i_param): New function.
17079 (ref_conflicts_with_region, oacc_entry_exit_ok_1)
17080 (oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function.
17081 (parallelize_loops): Add and handle function parameter oacc_kernels_p.
17082 Calculate dominance info. Skip loops that are not in a kernels region
17083 in oacc_kernels_p mode. Skip inner loops of parallelized loops.
17084 (pass_parallelize_loops::execute): Call parallelize_loops with
17085 oacc_kernels_p argument.
17086 (pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param):
17087 New member function.
17088 (pass_parallelize_loops::bool oacc_kernels_p): New member var.
17089 * passes.def: Add argument to pass_parallelize_loops instantation.
17090
17091 2016-01-18 Tom de Vries <tom@codesourcery.com>
17092
17093 * tree-parloops.c (pass_parallelize_loops::execute): Allow
17094 pass_parallelize_loops to be run outside the loop pipeline.
17095
17096 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
17097
17098 * tree-scalar-evolution.c (follow_copies_to_constant): New.
17099 (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
17100
17101 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
17102
17103 PR target/63679
17104 * tree-ssa-scopedtables.c (avail_expr_hash): Hash MEM_REF and ARRAY_REF
17105 using get_ref_base_and_extent.
17106 (equal_mem_array_ref_p): New.
17107 (hashable_expr_equal_p): Add call to previous.
17108
17109 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
17110
17111 PR target/63679
17112 * tree-sra.c (disqualified_constants, constant_decl_p): New.
17113 (sra_initialize): Allocate disqualified_constants.
17114 (sra_deinitialize): Free disqualified_constants.
17115 (disqualify_candidate): Update disqualified_constants when appropriate.
17116 (create_access): Scan for constant-pool entries as we go along.
17117 (scalarizable_type_p): Add check against type_contains_placeholder_p.
17118 (maybe_add_sra_candidate): Allow constant-pool entries.
17119 (load_assign_lhs_subreplacements): Bind debug for constant pool vars.
17120 (initialize_constant_pool_replacements): New.
17121 (sra_modify_assign): Avoid mangling assignments created by previous,
17122 and don't generate writes into constant pool.
17123 (sra_modify_function_body): Call initialize_constant_pool_replacements.
17124
17125 2016-01-18 Ilya Enkovich <enkovich.gnu@gmail.com>
17126
17127 * config/i386/i386.c (scalar_to_vector_candidate_p): Support
17128 andnot instruction.
17129 (scalar_chain::convert_op): Likewise.
17130 * config/i386/i386.md (*andndi3_doubleword): New.
17131
17132 2016-01-18 Richard Biener <rguenther@suse.de>
17133
17134 PR tree-optimization/69170
17135 * tree-vect-slp.c (vect_build_slp_tree): Verify we are not
17136 building a vector from scalar results of a pattern stmt.
17137
17138 2016-01-18 Jakub Jelinek <jakub@redhat.com>
17139
17140 * haifa-sched.c (autopref_multipass_init): Work around
17141 -Wmaybe-uninitialized warning.
17142
17143 2016-01-18 Thomas Preud'homme <thomas.preudhomme@arm.com>
17144
17145 * config/arm/arm.c (thumb1_reorg): Check that the comparison is
17146 against the constant 0.
17147
17148 2016-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17149
17150 PR tree-optimization/68799
17151 * gimple-ssa-strength-reduction.c (create_phi_basis): Directly
17152 look up phi candidates in the statement-candidate map.
17153 (phi_add_costs): Likewise.
17154 (record_phi_increments): Likewise.
17155 (phi_incr_cost): Likewise.
17156 (ncd_with_phi): Likewise.
17157 (all_phi_incrs_profitable): Likewise.
17158
17159 2016-01-17 Jakub Jelinek <jakub@redhat.com>
17160
17161 * omp-low.c (mark_loops_in_oacc_kernels_region): Work around
17162 -Wmaybe-uninitialized warning.
17163
17164 2016-01-16 Sandra Loosemore <sandra@codesourcery.com>
17165
17166 * doc/invoke.texi (Invoking GCC): Add new section to menu.
17167 (Option Summary): Update to reflect new section and moved options.
17168 (C++ Dialect Options): Move -fvtable-verify and related options.
17169 (Debugging Options): Move Sanitizer, Pointer Bounds Checker,
17170 and profiling-related options.
17171 (Optimization Options): Move profile generation options and
17172 -fstack-protector and related options.
17173 (Instrumentation Options): New section incorporating moved options.
17174 (Code Generation Options): Move -finstrument-functions and
17175 related options, -fstack-check, -fstack-limit*, and -fbounds-check.
17176
17177 2016-01-16 Tom de Vries <tom@codesourcery.com>
17178
17179 * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.
17180
17181 2016-01-16 Tom de Vries <tom@codesourcery.com>
17182
17183 * omp-low.c (expand_omp_atomic_fetch_op): Release defs of update stmt.
17184
17185 2016-01-16 Richard Sandiford <richard.sandiford@arm.com>
17186
17187 * hash-table.h (hash_table::empty): Turn into an inline wrapper
17188 that checks whether the table is already empty. Rename the
17189 original implementation to...
17190 (hash_table::empty_slot): ...this new private function.
17191
17192 2016-01-15 David Malcolm <dmalcolm@redhat.com>
17193
17194 PR diagnostic/68899
17195 * diagnostic-show-locus.c (layout::print_source_line): Move x
17196 offset of line until after call to
17197 get_line_width_without_trailing_whitespace.
17198
17199 2016-01-15 Jeff Law <law@redhat.com>
17200
17201 PR tree-optimization/69270
17202 * tree-ssanames.c (ssa_name_has_boolean_range): Moved here from
17203 tree-ssa-dom.c. Improve test for [0..1] ranve from VRP.
17204 * tree-ssa-dom.c (ssa_name_has_boolean_range): Remove.
17205 * tree-ssanames.h (ssa_name_has_boolean_range): Prototype.
17206 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
17207 ssa_name_has_boolean_range and constant_boolean_node.
17208
17209 2016-01-15 Vladimir Makarov <vmakarov@redhat.com>
17210
17211 PR rtl-optimization/69030
17212 * lra-spills.c (remove_pseudos): Check nrefs and make the function
17213 returning bool.
17214 (spill_pseudos): Delete debug insn for dead pseudo.
17215 (lra_spill): Initiate spill_hard_reg and slots memory separately.
17216
17217 2016-01-15 Jiong Wang <jiong.wang@arm.com>
17218
17219 * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
17220 New.
17221 (TYPES_UNOPUS): Likewise.
17222 * config/aarch64/aarch64-simd-builtins.def (lbtruncuv2sf): Correct
17223 builtin type, from UNOP to UNOPUS.
17224 (lbtruncuv4sf): Likewise.
17225 (lbtruncuv2df): Likewise.
17226 (lrounduv2sf): Likewise.
17227 (lrounduv4sf): Likewise.
17228 (lrounduv2df): Likewise.
17229 (lroundusf): Likewise.
17230 (lroundusf): Likewise.
17231 (lceiluv2sf): Likewise.
17232 (lceiluv4sf): Likewise.
17233 (lceiluv2df): Likewise.
17234 (lceilusf): Likewise.
17235 (lceiludf): Likewise.
17236 (lflooruv2sf): Likewise.
17237 (lflooruv4sf): Likewise.
17238 (lflooruv2df): Likewise.
17239 (lfloorusf): Likewise.
17240 (lfloorudf): Likewise.
17241 (lfrintnuv2sf): Likewise.
17242 (lfrintnuv4sf): Likewise.
17243 (lfrintnuv2df): Likewise.
17244 (lfrintnusf): Likewise.
17245 (lfrintnudf): Likewise.
17246 * config/aarch64/arm_neon.h (vcvt_u32_f32): Remove unncessary type
17247 conversion.
17248 (vcvtq_u32_f32): Likewise.
17249 (vcvtq_u64_f64): Likewise.
17250 (vcvta_u32_f32): Likewise.
17251 (vcvtaq_u32_f32): Likewise.
17252 (vcvtaq_u64_f64): Likewise.
17253 (vcvtm_u32_f32): Likewise.
17254 (vcvtmq_u32_f32): Likewise.
17255 (vcvtmq_u64_f64): Likewise.
17256 (vcvtn_u32_f32): Likwise.
17257 (vcvtnq_u32_f32): Likewise.
17258 (vcvtnq_u64_f64): Likewise.
17259 (vcvtp_u32_f32): Likewise.
17260 (vcvtpq_u32_f32): Likewise.
17261 (vcvtpq_u64_f64): Likewise.
17262 (vcvtmd_u64_f64): Likewise.
17263 (vcvtms_u32_f32): Likewise.
17264 (vcvtad_u64_f64): Likewise.
17265 (vcvtas_u32_f32): Likewise.
17266 (vcvtnd_u64_f64): Likewise.
17267 (vcvtns_u32_f32): Likewise.
17268 (vcvtpd_u64_f64): Likewise.
17269 (vcvtps_u32_f32): Likewise.
17270
17271 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17272
17273 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
17274 CSEL of zero_extended registers.
17275
17276 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17277
17278 * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
17279 Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
17280
17281 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17282
17283 * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
17284 false when argument string is not found in the attributes table
17285 at all.
17286
17287 2016-01-15 David Edelsohn <dje.gcc@gmail.com>
17288
17289 PR target/68609
17290 * config/rs6000/rs6000.c (rs6000_emit_msub): Delete.
17291 (rs6000_emit_swsqrt): Convert to Goldschmidt's Algorithm
17292 * config/rs6000/rs6000.md (sqrt<mode>2): Limit swsqrt to high
17293 precision estimate.
17294
17295 2016-01-15 Richard Biener <rguenther@suse.de>
17296
17297 PR tree-optimization/66856
17298 * tree-vect-loop.c (vect_transform_loop): Free SLP instances here.
17299 * tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count.
17300 (vect_create_new_slp_node): Increment stmt reference count.
17301 (vect_get_and_check_slp_defs): Make sure stmts are nor already in
17302 an SLP tree before swapping operands.
17303 (vect_build_slp_tree): Likewise.
17304 (destroy_bb_vec_info): Free stmt info after SLP instances.
17305 * tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count.
17306 * tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field.
17307 (STMT_VINFO_NUM_SLP_USES): New macro.
17308
17309 2016-01-15 Richard Biener <rguenther@suse.de>
17310
17311 PR debug/69137
17312 * dwarf2out.c (add_linkage_name_raw): New function split out from ...
17313 (add_linkage_name): ... here.
17314 (gen_typedef_die): Use add_linkage_name_raw instead of
17315 add_linkage_attr to delay DECL_ASSEMBLER_NAME computation
17316 if necessary.
17317
17318 2016-01-15 Cesar Philippidis <cesar@codesourcery.com>
17319
17320 * gimplify.c (oacc_default_clause): Decode reference and pointer
17321 types for both kernels and parallel regions.
17322
17323 2016-01-15 Richard Sandiford <richard.sandiford@arm.com>
17324
17325 PR middle-end/69246
17326 * calls.c (emit_call_1): Force n_popped to zero for sibcalls.
17327
17328 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
17329
17330 * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
17331 (convert_scalars_to_vector): Likewise.
17332
17333 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
17334
17335 * doc/extend.texi (Type Traits): Fix grammar.
17336
17337 2016-01-15 Martin Jambor <mjambor@suse.cz>
17338
17339 * tree-inline.c (remap_decl): Use existing dclarations if
17340 remapping a type and prevent_decl_creation_for_types.
17341 (replace_locals_stmt): Do an initial remapping of non-VLA typed
17342 decls first. Do real remapping with
17343 prevent_decl_creation_for_types set.
17344 * tree-inline.h (copy_body_data): New field
17345 prevent_decl_creation_for_types, moved remap_var_for_cilk to avoid
17346 padding.
17347
17348 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
17349
17350 * config/s390/s390.opt (mmvcle): More verbose help text.
17351
17352 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
17353
17354 * config/s390/s390.opt: Add period to -mzvector option text.
17355
17356 2016-01-15 Richard Biener <rguenther@suse.de>
17357
17358 PR tree-optimization/68961
17359 * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
17360 of invariants in stores again.
17361
17362 2016-01-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
17363
17364 * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.
17365
17366 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
17367
17368 * config/i386/i386.c (ix86_expand_branch): Don't split
17369 DI mode xor instruction to SI mode.
17370
17371 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
17372
17373 PR ipa/68148
17374 * ipa-icf.c (sem_function::merge): Virtual functions may become
17375 reachable even if they address is not taken and there are no
17376 idrect calls.
17377
17378 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
17379
17380 * lto-streamer-out.c (subtract_estimated_size): New function.
17381 (get_symbol_initial_value): Use it.
17382
17383 2016-01-15 Christian Bruel <christian.bruel@st.com>
17384
17385 PR target/65837
17386 * config/arm/arm-builtins.c (ARM_BUILTIN_CRYPTO_BASE): New enum tag.
17387 (arm_init_neon_builtins_internal): Rename arm_init_neon_builtins,
17388 (arm_init_crypto_builtins_internal): Rename arm_init_crypto_builtins.
17389 use add_builtin_function_ext_scope instead of add_builtin_function.
17390 (neon_set_p, neon_crypto_set_p): Remove.
17391 (arm_init_builtins): Always call arm_init_neon_builtins and
17392 arm_init_crypto_builtins.
17393 (arm_expand_builtin): Check that builtins are allowed for the arch.
17394 * config/arm/arm-protos.h (arm_init_neon_builtins): Remove prototype.
17395 * config/arm/arm.c (arm_valid_target_attribute_tree): Remove
17396 arm_init_neon_builtins call.
17397
17398 2016-01-15 Richard Biener <rguenther@suse.de>
17399
17400 PR tree-optimization/69117
17401 * tree-ssa-sccvn.h (struct vn_ssa_aux): Add info member.
17402 * tree-ssa-sccvn.c (set_ssa_val_to): Save and adjust SSA name info
17403 of the leader conservatively.
17404 (free_scc_vn): Restore original SSA name infos.
17405
17406 2016-01-14 Jeff Law <law@redhat.com>
17407
17408 PR tree-optimization/69270
17409 * tree-ssa-dom.c (ssa_name_has_boolean_range): If the type has a
17410 single bit of precision, verify it's also unsigned.
17411 (record_edge_info): Use constant_boolean_node rather than fold_convert
17412 to convert boolean_true/boolean_false to the right type.
17413
17414 2016-01-14 Richard Henderson <rth@redhat.com>
17415
17416 PR rtl-opt/69014
17417 * loop-doloop.c (record_reg_sets): New.
17418 (doloop_optimize): Reject the transform if the sequence
17419 clobbers registers live at the end of the loop block.
17420 (doloop_optimize_loops): Enable df_live if needed.
17421
17422 2016-01-14 Michael Meissner <meissner@linux.vnet.ibm.com>
17423
17424 * config/rs6000/rs6000-builtin.def: Revert 2016-01-13 change.
17425 * config/rs6000/rs6000.c: Likewise.
17426 * config/rs6000/rs6000.h: Likewise.
17427 * config/rs6000/rs6000.md: Likewise.
17428 * doc/extend.texi: Likewsie.
17429
17430 2016-01-14 Jeff Law <law@redhat.com>
17431
17432 * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
17433 typo.
17434
17435 2016-01-14 Richard Henderson <rth@redhat.com>
17436
17437 PR c/69272
17438 PR tree-opt/68964
17439 * trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size.
17440 * tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p
17441 instead of builtin_decl_declared_p to test for declaration.
17442
17443 2016-01-14 Nicklas Bo Jensen <nbjensen@gmail.com>
17444
17445 * doc/loop.texi (Loop Analysis and Representation): Document
17446 loop_depth function.
17447
17448 2016-01-14 Tom de Vries <tom@codesourcery.com>
17449
17450 PR tree-optimization/68773
17451 * omp-low.c (expand_omp_target): Don't set force_output.
17452 * varpool.c (varpool_node::get_create): Same.
17453 * lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and
17454 offload_funcs with force_output.
17455
17456 2016-01-14 Jakub Jelinek <jakub@redhat.com>
17457
17458 PR debug/69244
17459 * lra-eliminations.c (move_plus_up): Don't change anything if either
17460 the outer or inner subreg mode is not MODE_INT.
17461 * dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is
17462 integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards.
17463
17464 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
17465
17466 * doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m},
17467 reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m},
17468 reduc_uplus_@var{m}): Remove.
17469 * expr.c (expand_expr_real_2): Remove expansion path for
17470 reduc_[us](min|max|plus) optabs.
17471 * optabs-tree.c (scalar_reduc_to_vector): Remove.
17472 * optabs-tree.h (scalar_reduc_to_vector): Remove.
17473 * optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab,
17474 reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove.
17475 * tree-vect-loop.c (vectorizable_reduction): Remove test for
17476 reduc_[us](min|max|plus) optabs.
17477
17478 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
17479
17480 * config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove.
17481 (reduc_plus_scal_v2sf): New.
17482 (reduc_smax_v2sf): Rename to...
17483 (reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract.
17484 (reduc_smin_v2sf): Rename to...
17485 (reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract.
17486
17487 2016-01-14 Jan Hubicka <hubicka@ucw.cz>
17488
17489 * alias.c (compare_base_symbol_refs): New function.
17490 (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
17491 it.
17492
17493 2016-01-14 Jakub Jelinek <jakub@redhat.com>
17494
17495 PR middle-end/68146
17496 PR tree-optimization/69155
17497 * tree-complex.c: Include cfganal.h.
17498 (phis_to_revisit): New variable.
17499 (extract_component): Add phiarg_p argument. Assert that returned
17500 SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true.
17501 (update_phi_components): Partly rewrite to use loop over real/imag
17502 components instead of code duplication. If extract_component returns
17503 SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or
17504 create_tmp_reg into the PHI node instead, and mention the phi triplet
17505 in phis_to_revisit.
17506 (tree_lower_complex): Walk bbs in rpo order. Adjust phis recorded
17507 in phis_to_revisit at the end.
17508
17509 2016-01-14 Richard Biener <rguenther@suse.de>
17510
17511 PR tree-optimization/68060
17512 * tree-vect-loop.c (vect_is_simple_reduction): Check the
17513 outer loop reduction is only used in the inner loop before
17514 detecting a double reduction.
17515
17516 2016-01-14 Jakub Jelinek <jakub@redhat.com>
17517
17518 PR target/68269
17519 * combine.c (expand_field_assignment): Punt if compute_mode is
17520 unsupported scalar mode.
17521
17522 2016-01-14 Richard Biener <rguenther@suse.de>
17523
17524 PR tree-optimization/66856
17525 * tree-vect-slp.c (vect_build_slp_tree): Refactor to build
17526 SLP node only if it built successfully.
17527 (vect_analyze_slp_instance): Adjust.
17528
17529 2016-01-14 Jeff Law <law@redhat.com>
17530
17531 PR tree-optimization/69270
17532 * tree-ssa-dom.c (ssa_name_has_boolean_range): New function.
17533 (record_edge_info): Use it. Convert boolean_{true,false}_node
17534 to the type of op0.
17535
17536 2016-01-13 Jan Hubicka <hubicka@ucw.cz>
17537
17538 PR ipa/66487
17539 * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
17540 use block_ultimate_origin
17541 (noncall-stmt_may_be_vtbl_ptr_store): Likewise.
17542
17543 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
17544
17545 * doc/invoke.texi (Submodel Options): Rename section to
17546 "Machine-Dependent Options" to better reflect its content.
17547 Rewrite introductory text to remove archaic CPU names.
17548 Update references.
17549
17550 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
17551
17552 * doc/invoke.texi (Code Gen Options): Move section up in file,
17553 before target-specific options. Update menu and option summary
17554 to reflect the new section ordering.
17555
17556 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
17557
17558 * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
17559 (C++ Dialect Options): Add cross-reference to -std option.
17560 * doc/standards.texi (C++ Language): Document C++14 support.
17561
17562 2016-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
17563
17564 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
17565 for pack/unpack functions for __ibm128.
17566 (PACK_IF): Likewise.
17567 (UNPACK_IF): Likewise.
17568
17569 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
17570 support for __ibm128 pack/unpack functions.
17571 (rs6000_invalid_builtin): Likewise.
17572 (rs6000_init_builtins): Likewise.
17573 (rs6000_opt_masks): Likewise.
17574
17575 * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
17576 (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
17577 functions
17578 (RS6000_BTM_COMMON): Likewise.
17579
17580 * config/rs6000/rs6000.md (f128_vsx): New mode attribute.
17581 (unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
17582 disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
17583 128-bit floating point. Add support for the double values to be
17584 in Altivec registers for TF/IF packing and unpacking, but restrict
17585 TD packing sub-fields to be FPR registers. Don't allow overlapped
17586 register support for packing. Allow pack inputs to be memory
17587 locations. Don't build generator functions for unpack<mode>_dm
17588 and unpack<mode>_nodm.
17589 (unpack<mode>_dm): Likewise.
17590 (unpack<mode>_nodm): Likewise.
17591 (pack<mode>): Likewise.
17592
17593 * config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
17594 built-in functions to pack/unpack explicit __ibm128 values.
17595 (__builtin_unpack_ibm128): Likewise.
17596
17597 * doc/extend.texi (PowerPC Built-in Functions): Document
17598 __builtin_pack_ibm128 and __builtin_unpack_ibm128.
17599
17600 2016-01-13 Bernd Schmidt <bschmidt@redhat.com>
17601
17602 PR c/66208
17603 * c-common.c (check_function_nonnull): Remove unnecessary declaration.
17604 Add new arg loc and pass it down as context.
17605 (check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
17606 to the location to use for the warning.
17607 (check_function_arguments): New arg loc. All callers changed. Pass
17608 it to check_function_nonnull.
17609 * c-common.h (check_function_arguments): Adjust declaration.
17610
17611 2016-01-13 Jakub Jelinek <jakub@redhat.com>
17612
17613 PR tree-optimization/69156
17614 * gimple.c (validate_type): Removed.
17615 (gimple_builtin_call_types_compatible_p): Use
17616 useless_type_conversion_p instead of validate_type.
17617 * value-prof.c (gimple_stringop_fixed_value): Fold
17618 icall_size to correct type.
17619
17620 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
17621
17622 * doc/extend.texi (__atomic Builtins): Clarify compare_exchange
17623 effects.
17624
17625 2016-01-13 Richard Henderson <rth@redhat.com>
17626
17627 PR tree-opt/68964
17628 * target.def (builtin_tm_load, builtin_tm_store): Remove.
17629 * config/i386/i386.c (ix86_builtin_tm_load): Remove.
17630 (ix86_builtin_tm_store): Remove.
17631 (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
17632 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
17633 * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
17634 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
17635 * doc/tm.texi: Rebuild.
17636
17637 * gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New.
17638 (BUILT_IN_TM_MEMCPY_RTWN): New.
17639 * trans-mem.c (tm_log_emit_stmt): Rearrange code for better
17640 fallback from vector to integer helpers.
17641 (build_tm_load): Handle vector types directly, instead of
17642 via target hook.
17643 (build_tm_store): Likewise.
17644 (expand_assign_tm): Prepare for register types not handled by
17645 the above. Copy them to memory and use memcpy.
17646 * tree.c (tm_define_builtin): New.
17647 (find_tm_vector_type): New.
17648 (build_tm_vector_builtins): New.
17649 (build_common_builtin_nodes): Call it.
17650
17651 2016-01-13 Uros Bizjak <ubizjak@gmail.com>
17652
17653 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
17654 TARGET_SSE_MATH without TARGET_SSE2. Rewrite.
17655
17656 2016-01-13 Tom de Vries <tom@codesourcery.com>
17657
17658 PR tree-optimization/69169
17659 * tree-ssa-structalias.c (create_variable_info_for_1): Add and handle
17660 handled_struct_type param.
17661 (create_variable_info_for, intra_create_variable_infos): Call
17662 create_variable_info_for_1 with extra arg.
17663
17664 2016-01-13 Yvan Roux <yvan.roux@linaro.org>
17665
17666 * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
17667 and "armv8.1-a+crc" entries.
17668
17669 2016-01-13 Alexander Fomin <alexander.fomin@intel.com>
17670
17671 PR target/69228
17672 * config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
17673 Change first operand predicate from register_or_constm1_operand
17674 to register_operand.
17675 (define_expand "avx512pf_gatherpf<mode>df"): Likewise.
17676 (define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
17677 (define_expand "avx512pf_scatterpf<mode>df"): Likewise.
17678 (define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
17679 (define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
17680 (define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
17681 (define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
17682 * config/i386/i386.c (ix86_expand_builtin): Remove first operand
17683 comparison with constm1_rtx from vec_prefetch_gen part.
17684
17685 2016-01-13 Richard Biener <rguenther@suse.de>
17686
17687 PR tree-optimization/69013
17688 * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
17689 Exchange assert for a test.
17690
17691 2016-01-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17692
17693 PR target/69247
17694 * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.
17695
17696 2016-01-13 Richard Biener <rguenther@suse.de>
17697
17698 PR tree-optimization/69242
17699 * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
17700 assert with a check.
17701
17702 2016-01-13 Richard Biener <rguenther@suse.de>
17703
17704 PR tree-optimization/69186
17705 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
17706 Properly guard vect_update_misalignment_for_peel call.
17707
17708 2016-01-12 Jeff Law <law@redhat.com>
17709
17710 PR tree-optimization/pr67755
17711 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
17712 "need_profile_correction".
17713 (thread_block_1): Initialize new field to false by default. If we
17714 have multiple thread paths through a common joiner to different
17715 final targets, then set new field to true.
17716 (compute_path_counts): Only do count adjustment when it's really
17717 needed.
17718
17719 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
17720
17721 * doc/invoke.texi (Spec Files): Move section down in file, past
17722 all command-line option descriptions.
17723
17724 2016-01-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
17725
17726 PR middle-end/54809
17727 * doc/gty.texi: Remove documentation of mark_hook.
17728 * gengtype.c (struct write_types_data): Remove code to support
17729 mark_hook attribute.
17730 (walk_type): Likewise.
17731 (write_func_for_structure): Likewise.
17732
17733 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
17734
17735 * doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to
17736 Directory Options, and -specs= to Overall Options.
17737 (Overall Options): Adjust similarly. Reorder to group related
17738 options together. Make -specs= cross-reference the spec file details.
17739 (Directory Options): Adjust similarly.
17740
17741 2016-01-12 Jeff Law <law@redhat.com>
17742
17743 * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
17744
17745 2016-01-12 Olivier Hainque <hainque@adacore.com>
17746
17747 * gcc.c (spec_undefvar_allowed): New global.
17748 (process_command): Set to true when running for --version or --help,
17749 alone or together.
17750 (getenv_spec_function): When the variable is not defined, use the
17751 variable name as the variable value if we're allowed not to issue
17752 a fatal error.
17753
17754 2016-01-12 Bin Cheng <bin.cheng@arm.com>
17755
17756 PR tree-optimization/68911
17757 * tree-vrp.c (adjust_range_with_scev): Check overflow in range
17758 information computed for expression "init + nit * step".
17759
17760 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
17761
17762 * doc/invoke.texi (Invoking GCC): Copy-edit. Incorporate information
17763 about name of GCC executable. Remove deleted node from menu.
17764 (Directory Options) <-B>: Remove cross-reference to deleted node.
17765 (Target Options): Delete section.
17766
17767 2016-01-12 Christian Bruel <christian.bruel@st.com>
17768
17769 PR target/69180
17770 * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
17771 for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.
17772
17773 2016-01-12 Jakub Jelinek <jakub@redhat.com>
17774
17775 PR target/69198
17776 * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
17777 aligned_mem is properly set for AVX512-VL floating point masked
17778 stores.
17779
17780 PR target/69175
17781 * ifcvt.c (cond_exec_process_if_block): When removing the last
17782 insn from then_bb, remove also any possible barriers that follow it.
17783
17784 2016-01-12 H.J. Lu <hongjiu.lu@intel.com>
17785
17786 PR target/68456
17787 PR target/69226
17788 * config/i386/iamcu.h (SIZE_TYPE): New macro.
17789 (PTRDIFF_TYPE): Likewise.
17790 (WCHAR_TYPE): Likewise.
17791 (WCHAR_TYPE_SIZE): Likewise.
17792 (STDINT_LONG32): Likewise.
17793
17794 2016-01-12 Richard Biener <rguenther@suse.de>
17795
17796 PR tree-optimization/69053
17797 * tree-vect-loop.c (get_initial_def_for_reduction): Properly
17798 convert initial value for cond reductions.
17799
17800 2016-01-12 Richard Biener <rguenther@suse.de>
17801
17802 PR tree-optimization/69007
17803 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
17804 widen_sum after dot_prod and sad.
17805
17806 2016-01-12 Richard Biener <rguenther@suse.de>
17807
17808 PR tree-optimization/69168
17809 * tree-vect-loop.c (vect_analyze_loop_2): Reset both main and
17810 pattern stmt SLP type.
17811 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may
17812 end up unused so cope with that case.
17813
17814 2016-01-12 Richard Biener <rguenther@suse.de>
17815
17816 PR tree-optimization/69157
17817 * tree-vect-stmts.c (vectorizable_mask_load_store): Check
17818 stmts def type only during analyze phase.
17819 (vectorizable_call): Likewise.
17820 (vectorizable_simd_clone_call): Likewise.
17821 (vectorizable_conversion): Likewise.
17822 (vectorizable_assignment): Likewise.
17823 (vectorizable_shift): Likewise.
17824 (vectorizable_operation): Likewise.
17825 (vectorizable_store): Likewise.
17826 (vectorizable_load): Likewise.
17827
17828 2016-01-12 Richard Biener <rguenther@suse.de>
17829
17830 PR tree-optimization/69174
17831 * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
17832 space.
17833 (vectorizable_load): Properly compute the number of loads needed
17834 for permuted strided SLP loads and do not spuriously assign
17835 to SLP_TREE_VEC_STMTS.
17836
17837 2016-01-12 Andris Pavenis <andris.pavenis@iki.fi>
17838
17839 * config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2
17840 (TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive
17841 (MD_EXEC_PREFIX): Remove.
17842 (MD_STARTFILE_PREFIX) Removee.
17843 (FILE_NAME_ABSOLUTE_P): Remove.
17844 (CPP_SPEC): Do not read macros from sys/version.h.
17845 (LINK_COMMAND_SPEC): Remove.
17846 (LOCAL_INCLUDE_DIR): Remove.
17847 (TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section
17848 (TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix.
17849 (POST_LINK_SPEC): Define to invoke stubify after linker
17850 (LIBSTDCXX): Remove define
17851 (DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map.
17852 (DEFAULT_PCC_STRUCT_RETURN): Define to 1.
17853 (SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210.
17854 (SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message.
17855 (SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info.
17856 (IX86_MAYBE_NO_LIBGCC_TFMODE): Remove.
17857 (i386_djgpp_asm_named_section): Add propotype of new procedure
17858
17859 * config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define.
17860 (MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h).
17861 (STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX
17862 in config/i386/djgpp.h).
17863 (STANDARD_STARTFILE_PREFIX_2): Define identical to
17864 STANDARD_STARTFILE_PREFIX_1.
17865 (LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h).
17866 (GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal
17867 installation errors.
17868 (MAX_OFILE_ALIGNMENT): Define to 128.
17869 (HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h.
17870
17871 * config/i386/djgpp.c: New file. Add implementation of
17872 i386_djgpp_asm_named_section.
17873
17874 * config/i386/djgpp.opt: Remove obsolete option -mbnu210.
17875
17876 * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
17877 Add rule for building djgpp.o.
17878
17879 2016-01-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17880
17881 * config/rs6000/rs6000.c (v2df_reduction_p): New function.
17882 (rtx_is_swappable_p): Reductions are swappable.
17883 (insn_is_swappable_p): V2DF reductions are swappable.
17884
17885 2016-01-11 John David Anglin <danglin@gcc.gnu.org>
17886
17887 * config/pa/pa.c (pa_emit_move_sequence): Handle floating point
17888 reloads for other unsupported memory operands.
17889
17890 2016-01-12 Kugan Vivekanandarajah <kuganv@linaro.org>
17891 Jim Wilson <jim.wilson@linaro.org>
17892
17893 PR target/69194
17894 * config/arm/arm-builtins.c (arm_expand_neon_args): Call
17895 copy_to_mode_reg instead of force_reg.
17896
17897 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
17898
17899 PR target/69225
17900 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
17901 TARGET_80387 is true.
17902
17903 2016-01-11 Jakub Jelinek <jakub@redhat.com>
17904
17905 PR target/69071
17906 * lra-eliminations.c (move_plus_up): Only move plus up
17907 if subreg of the constant can be simplified into constant
17908 and use the simplified subreg of the constant instead of
17909 the original constant.
17910
17911 * fold-const.c (fold_convertible_p): Don't return true
17912 for conversion of VECTOR_TYPE to same sized integral type.
17913 (fold_convert_loc): Fix up formatting. Fold conversion of
17914 VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR
17915 instead of NOP_EXPR.
17916
17917 PR tree-optimization/69214
17918 * tree-vrp.c (simplify_cond_using_ranges): Don't propagate
17919 innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
17920 Formatting fix.
17921
17922 PR tree-optimization/69207
17923 * tree-vect-slp.c (vect_get_constant_vectors): For
17924 VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
17925 fold_convertible_p to vector_type's element type, and always
17926 use VCE for non-VECTOR_BOOLEAN_TYPE_P.
17927
17928 2016-01-11 Richard Biener <rguenther@suse.de>
17929
17930 PR tree-optimization/69173
17931 * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only
17932 fixup the cycle if all stmts are in a pattern.
17933
17934 2016-01-11 Uros Bizjak <ubizjak@gmail.com>
17935
17936 PR middle-end/68999
17937 * alias.c (base_alias_check): Move check for addresses with
17938 alignment ANDs before the call for compare_base_decls.
17939 (memrefs_conflict_p): Return -1 for different decls
17940 that went through alignment adjustments.
17941
17942 2016-01-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17943
17944 PR rtl-optimization/68796
17945 * config/aarch64/aarch64.md (*and<mode>_compare0): New pattern.
17946 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle HImode
17947 and QImode comparisons against zero with CC_NZmode.
17948 * config/aarch64/iterators.md (short_mask): New mode_attr.
17949
17950 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
17951
17952 * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
17953 (<avx512>_store<mode>_mask): Likewise.
17954
17955 2016-01-11 Bernd Schmidt <bschmidt@redhat.com>
17956 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17957
17958 PR rtl-optimization/68841
17959 * ifcvt.c (struct noce_if_info): Add orig_x field.
17960 (bbs_ok_for_cmove_arith): Add to_rename parameter.
17961 Don't record conflicts on to_rename if it's present.
17962 Allow memory destinations in sets.
17963 (noce_try_cmove_arith): Call bbs_ok_for_cmove_arith even on simple
17964 blocks, passing orig_x to the checks.
17965 (noce_process_if_block): Set if_info->orig_x appropriately.
17966
17967 2016-01-11 Tom de Vries <tom@codesourcery.com>
17968
17969 PR tree-optimization/69069
17970 * tree-parloops.c (create_parallel_loop): Add missing phi args.
17971
17972 2016-01-11 Yuri Rumyantsev <ysrumyan@gmail.com>
17973
17974 PR rtl-optimization/68920
17975 * config/i386/i386.c (ix86_option_override_internal): Restrict number
17976 of conditional moves for RTL if-conversion to 1 for
17977 TARGET_ONE_IF_CONV_INSN.
17978 * config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros.
17979 * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros.
17980 * params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new
17981 parameter to restirct number of conditional moves for
17982 RTL if-conversion.
17983 * doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
17984 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
17985 conditionl moves.
17986
17987 2016-01-11 Alexandre Oliva <aoliva@redhat.com>
17988
17989 PR bootstrap/69123
17990 * var-tracking.c (drop_overlapping_mem_locs): Operate on all
17991 onepart vars. Fix typo in comment. Fix reversed condition in
17992 unshare test.
17993 (dataflow_set_remove_mem_locs): Operate on all onepart vars.
17994
17995 PR bootstrap/69123
17996 * var-tracking.c (dump_onepart_variable_differences): New.
17997 (dataflow_set_different): If a detailed dump is requested,
17998 delay early returns and dump differences between onepart
17999 variables present before and after, and added variables.
18000
18001 2016-01-11 Ilya Enkovich <enkovich.gnu@gmail.com>
18002
18003 PR target/69010
18004 * expr.c (expand_expr_real_1): For boolean vector constants
18005 with a scalar mode use const_scalar_mask_from_tree.
18006 (const_scalar_mask_from_tree): New.
18007 * optabs.c (expand_vec_cond_mask_expr): Use mask mode
18008 assigned to a mask type to handle constants.
18009
18010 2016-01-11 Martin Jambor <mjambor@suse.cz>
18011
18012 PR ipa/69044
18013 * ipa-cp.c (estimate_local_effects): Do not clone for removal of
18014 useless parameters if we cannot change function signature.
18015
18016 2016-01-11 Martin Jambor <mjambor@suse.cz>
18017
18018 PR ipa/66616
18019 * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
18020 flag.
18021
18022 2016-01-11 Tom de Vries <tom@codesourcery.com>
18023
18024 PR tree-optimization/69109
18025 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
18026 latch with phi.
18027
18028 2016-01-11 Tom de Vries <tom@codesourcery.com>
18029
18030 PR tree-optimization/69108
18031 * tree-parloops.c (gather_scalar_reductions): Handle case that outer phi
18032 res is not used in a phi.
18033
18034 2016-01-11 Yury Gribov <y.gribov@samsung.com>
18035
18036 PR 67425
18037 * common.opt (frandom-seed): Fix parameter name.
18038 * doc/invoke.texi (frandom-seed): Ditto and describe parameter.
18039
18040 2016-01-11 Tom de Vries <tom@codesourcery.com>
18041
18042 PR tree-optimization/69058
18043 * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
18044 not supported.
18045
18046 2016-01-11 Andrew Burgess <andrew.burgess@embecosm.com>
18047
18048 * config/arc/arc.opt (mdiv-rem): Add period to the end.
18049 (mcode-density): Likewise.
18050
18051 2016-01-10 Tom de Vries <tom@codesourcery.com>
18052
18053 PR tree-optimization/69062
18054 * tree-parloops.c (loop_has_phi_with_address_arg): New function.
18055 (parallelize_loops): Don't paralelize loop that has phi with address
18056 arg.
18057
18058 2016-01-10 Tom de Vries <tom@codesourcery.com>
18059
18060 PR tree-optimization/69039
18061 * tree-parloops.c (try_create_reduction_list): Only allow single exit
18062 phi for reduction.
18063
18064 2016-01-09 John David Anglin <danglin@gcc.gnu.org>
18065
18066 PR middle-end/68743
18067 * match.pd: Require target has function_c99_misc before doing
18068 truncl(extend(x)) and trunc(extend(x)) -> extend(truncf(x)), etc.
18069
18070 2016-01-09 Gerald Pfeifer <gerald@pfeifer.com>
18071
18072 * configure.ac (isl_options_set_schedule_serialize_sccs): Also
18073 use GMPINC.
18074 * configure: Regenerate.
18075
18076 2016-01-09 Jakub Jelinek <jakub@redhat.com>
18077
18078 PR middle-end/50865
18079 PR tree-optimization/69097
18080 * fold-const.h (expr_not_equal_to): New prototype.
18081 * fold-const.c: Include stringpool.h and tree-ssanames.h.
18082 (expr_not_equal_to): New function.
18083 * match.pd (X % -Y is the same as X % Y): Don't optimize
18084 unless X is known not to be equal to minimum or Y is known
18085 not to be equal to -1.
18086 * tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument.
18087 fold TRUNC_MOD_EXPR if the second argument is not a power of two.
18088 (simplify_stmt_using_ranges): Adjust caller.
18089 (vrp_finalize): Call set_value_range on SSA_NAMEs before calling
18090 substitute_and_fold.
18091
18092 2016-01-09 Jan Hubicka <hubicka@ucw.cz>
18093
18094 * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
18095 w/o DECL_NAME.
18096
18097 2016-01-08 Jakub Jelinek <jakub@redhat.com>
18098
18099 PR tree-optimization/69167
18100 * gimple-fold.c (replace_stmt_with_simplification): Also punt if
18101 new SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs appear in operands of
18102 ops[0] comparison.
18103 * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
18104
18105 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
18106 Richard Biener <rguenther@suse.de>
18107
18108 PR tree-optimization/68707
18109 * tree-vect-slp.c (vect_analyze_slp_instance): Cancel permuted SLP
18110 instances that can be handled via vect_load_lanes.
18111
18112 2016-01-08 Uros Bizjak <ubizjak@gmail.com>
18113
18114 * symtab.c (symtab_node::equal_address_to): Return -1 instead of 2
18115 if we can't determine address equivalence.
18116 * alias.c (compare_base_decl): Update for changed return value of
18117 symtab_node::equal_address_to.
18118
18119 2016-01-08 Jason Merrill <jason@redhat.com>
18120
18121 PR c++/68983
18122 PR c++/67557
18123 * function.c (assign_temp): Guard against TREE_ADDRESSABLE types here.
18124 * expr.c (store_field): Not here.
18125 * tree-cfgcleanup.c (fixup_noreturn_call): Don't clear LHS of a
18126 call with TREE_ADDRESSABLE type.
18127 * tree-cfg.c (verify_gimple_call): Adjust.
18128
18129 2016-01-08 Olivier Hainque <hainque@adacore.com>
18130
18131 * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
18132 libc_internal.
18133
18134 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
18135
18136 * gcc.target/rs6000/paired.md (reduc_smax_v2sf): Rename to...
18137 (reduc_smax_scal_v2sf): ...here, make result SFmode, extract element.
18138 (reduc_smin_v2sf): Rename to...
18139 (reduc_smin_scal_v2sf): ...here, make result SFmode, extract element.
18140 (reduc_splus_v2sf): Rename to...
18141 (reduc_plus_scal_v2sf): ...here, make result SFmode, extract element.
18142
18143 2016-01-08 Jakub Jelinek <jakub@redhat.com>
18144
18145 PR tree-optimization/69162
18146 * gimplify.c (gimplify_va_arg_expr): Encode original type of
18147 valist argument in another argument.
18148 (gimplify_modify_expr): Adjust for the above change. Cleanup.
18149 * tree-stdarg.c (expand_ifn_va_arg_1): Use new 3rd argument
18150 to determine the va_list type, build a MEM_REF instead of
18151 build_fold_indirect_ref.
18152
18153 PR tree-optimization/69172
18154 * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
18155 gimple_build.
18156
18157 2016-01-08 Thomas Preud'homme <thomas.preudhomme@arm.com>
18158
18159 PR tree-optimization/67781
18160 * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
18161 and cmpnop in two steps: first the ones not accessed in original
18162 gimple expression in a endian independent way and then the ones not
18163 accessed in the final result in an endian-specific way.
18164
18165 2016-01-08 Jakub Jelinek <jakub@redhat.com>
18166
18167 PR tree-optimization/69083
18168 * tree-vect-slp.c (vect_get_constant_vectors): For
18169 VECTOR_BOOLEAN_TYPE_P assert op is fold_convertible_p to vector_type's
18170 element type. If op is fold_convertible_p to vector_type's element
18171 type, use NOP_EXPR instead of VCE.
18172
18173 2016-01-08 Segher Boessenkool <segher@kernel.crashing.org>
18174
18175 PR rtl-optimization/67778
18176 PR rtl-optimization/68634
18177 PR rtl-optimization/68909
18178 * shrink-wrap.c (try_shrink_wrapping): Add comment. Don't pop
18179 block from the stack until done with it. Remove a superfluous
18180 bitmap set. Remove a superfluous bitmap test.
18181
18182 2016-01-07 Martin Sebor <msebor@redhat.com>
18183
18184 PR c/68966
18185 * doc/extend.texi (__atomic Builtins, __sync Builtins): Document
18186 constraint on the type of arguments.
18187
18188 2016-01-07 Andreas Tobler <andreast@gcc.gnu.org>
18189
18190 * config/arm/freebsd.h: Rename SUBTARGET_OVERRIDE_OPTIONS to
18191 SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. Adjust to check
18192 unaligned_access on the gcc_options set.
18193 * config/arm/arm.c (arm_option_override_internal): Use
18194 SUBTARGET_OVERRIDE_INTERNAL_OPTIONS.
18195
18196 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
18197
18198 PR target/69140
18199 * config/i386/i386.c (ix86_frame_pointer_required): Enable
18200 frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
18201
18202 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
18203
18204 Revert
18205 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
18206
18207 PR target/69140
18208 * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
18209 depending on frame_pointer_needed before remaining integer and SSE
18210 registers are saved.
18211
18212 2016-01-07 Sandra Loosemore <sandra@codesourcery.com>
18213
18214 PR 1078
18215 * doc/extend.texi (Nvidia PDX Function Attributes): New section.
18216
18217 2016-01-07 H.J. Lu <hongjiu.lu@intel.com>
18218
18219 PR target/69171
18220 * config/i386/sse.md (<sse>_sqrt<mode>2<mask_name><round_name>):
18221 Use the "xBm" constraint.
18222 (float<sseintvecmodelower><mode>2<mask_name><round_name):
18223 Likewise.
18224 (sse_cvtsi2ss<round_name>): Use round_nimm_scalar_predicate.
18225 (sse_cvtsi2ssq<round_name>): Likewise.
18226 (sse_cvtss2si<round_name>): Likewise.
18227 (sse_cvtss2siq<round_name>): Likewise.
18228 (sse2_cvtsi2sdq<round_name>): Likewise.
18229 (sse2_cvtsd2si<round_name>): Likewise.
18230 (sse2_cvtsd2siq<round_name>): Likewise.
18231 * config/i386/subst.md (round_nimm_scalar_predicate): New
18232 predicate.
18233
18234 2015-12-15 Bernd Schmidt <bschmidt@redhat.com>
18235
18236 PR middle-end/67639
18237 * varasm.c (make_decl_rtl): Mark invalid register vars as
18238 DECL_EXTERNAL.
18239
18240 PR rtl-optimization/66206
18241 * bt-load.c (find_btr_use): Change first arg to be a pointer to an rtx.
18242 All callers changed.
18243
18244 2016-01-07 Jakub Jelinek <jakub@redhat.com>
18245
18246 PR tree-optimization/69141
18247 * tree-ssa-pre.c: Include langhooks.h.
18248 (eliminate_dom_walker::before_dom_children): Use
18249 lang_hooks.decl_printable_name instead of
18250 cgraph_node::get ()->name ().
18251
18252 PR middle-end/68960
18253 * gimple-expr.c (copy_var_decl): If var has DECL_USER_ALIGN set, copy
18254 it and DECL_ALIGN too.
18255
18256 2016-01-06 Robert Suchanek <robert.suchanek@imgtec.com>
18257
18258 * config/mips/mips-ftypes.def: Sort to lexicographical order.
18259
18260 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
18261
18262 PR target/69140
18263 * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
18264 depending on frame_pointer_needed before remaining integer and SSE
18265 registers are saved.
18266
18267 2015-01-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
18268
18269 * config/rs6000/vsx.md (*p9_vecload_<mode>): Replace VSX_M
18270 mode iterator with VSX_M2.
18271 (*p9_vecstore_<mode>): Likewise.
18272 (*vsx_le_permute_<mode>): Restrict to !TARGET_P9_VECTOR.
18273 (*vsx_le_perm_load_<mode> for VSX_LE_128): Likewise.
18274 (*vsx_le_perm_store_<mode> for VSX_LE_128): Likewise.
18275 (define_split for VSX_LE128 stores): Likewise.
18276 (define_peephole2 for TImode LE swaps): Likewise.
18277 (define_split for VSX_LE128 post-reload stores): Likewise.
18278
18279 2016-01-06 Marek Polacek <polacek@redhat.com>
18280
18281 PR sanitizer/69099
18282 * convert.c (convert_to_integer_1): Adjust call to
18283 ubsan_instrument_float_cast. Use NULL_TREE instead of NULL.
18284 * ubsan.c (ubsan_instrument_float_cast): Drop the ARG parameter. Use
18285 EXPR instead of ARG.
18286 * ubsan.h (ubsan_instrument_float_cast): Adjust declaration.
18287
18288 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
18289
18290 PR 1078
18291 * doc/extend.texi (RL78 Variable Attributes): New section.
18292
18293 2016-01-05 Marek Polacek <polacek@redhat.com>
18294
18295 PR c/69104
18296 * builtins.c (get_memmodel): Use expansion point location rather than
18297 the input location. Call warning_at rather than warning.
18298 (expand_builtin_atomic_compare_exchange): Likewise.
18299 (expand_builtin_atomic_load): Likewise.
18300 (expand_builtin_atomic_store): Likewise.
18301 (expand_builtin_atomic_clear): Likewise.
18302
18303 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
18304
18305 PR target/68991
18306 * config/i386/i386.c (ix86_expand_vector_logical_operator):
18307 Replace nonimmediate_operand with vector_operand.
18308 * config/i386/predicates.md (vector_operand): New predicate.
18309 (general_vector_operand): Replace nonimmediate_operand with
18310 vector_operand.
18311 * config/i386/sse.md: Replace nonimmediate_operand with
18312 vector_operand and m constraint with Bm constraint on SSE
18313 patterns with 16-byte memory operand.
18314 * config/i386/subst.md (round_nimm_predicate): Replace
18315 nonimmediate_operand with vector_operand.
18316 (round_saeonly_nimm_predicate): Likewise.
18317 (round_saeonly_nimm_scalar_predicate): New.
18318
18319 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
18320
18321 PR target/68991
18322 * config/i386/constraints.md (Bm): New constraint.
18323 * config/i386/predicates.md (vector_memory_operand): New
18324 predicate.
18325 * config/i386/sse.md: Replace xm with xBm in plusminus and
18326 any_logic patterns.
18327
18328 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
18329
18330 PR 1078
18331 * doc/extend.texi (V850 Function Attributes): New section.
18332 (V850 Variable Attributes): New section.
18333
18334 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
18335
18336 PR 1078
18337 * doc/extend.texi (MicroBlaze Function Attributes): Document
18338 interrupt_handler and fast_interrupt attributes.
18339
18340 2016-01-05 Sergei Trofimovich <siarheit@google.com>
18341
18342 PR other/60465
18343 * config/ia64/ia64.c (ia64_expand_load_address): Use gprel64
18344 for local symbolic operands.
18345 * config/ia64/predicates.md (local_symbolic_operand64): New
18346 predicate.
18347
18348 2016-01-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18349
18350 PR rtl-optimization/68651
18351 * combine.c (combine_simplify_rtx): Canonicalize x + x into
18352 x << 1.
18353
18354 2016-01-05 Nathan Sidwell <nathan@acm.org>
18355
18356 * alias.c (compare_base_decls): Use symtab_node::get.
18357
18358 2016-01-05 Nick Clifton <nickc@redhat.com>
18359
18360 PR target/68770
18361 * ira-costs.c (copy_cost): Initialise the t_icode field of the
18362 secondary_reload_info structure.
18363
18364 PR target/66655
18365 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
18366 decls if weak support is available.
18367
18368 2016-01-04 Martin Sebor <msebor@redhat.com>
18369
18370 * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.
18371
18372 2016-01-04 Michael Meissner <meissner@linux.vnet.ibm.com>
18373
18374 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
18375 OPTION_MASK_P9_DFORM.
18376
18377 * config/rs6000/constraints.md (wo constraint): New constraint for
18378 ISA 3.0 (power9).
18379
18380 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
18381 for wo constraint.
18382 (rs6000_init_hard_regno_mode_ok): Likewise.
18383
18384 * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
18385 wo constraint.
18386
18387 * config/rs6000/altivec.md (altivec_vperm_<mode>): Clean up vperm
18388 expanders not to have constraints. Add support for ISA 3.0 xxperm
18389 instruction. Add support for fusing xxlor with xxperm.
18390 (altivec_vperm_<mode>_internal): Likewise.
18391 (altivec_vperm_v8hiv16qi): Likewise.
18392 (altivec_vperm_<mode>v16q): Likewise.
18393 (altivec_vperm_<mode>_uns): Likewise.
18394 (vperm_v8hiv4si): Likewise.
18395 (vperm_v16qiv8hi): Likewise.
18396
18397 * doc/md.texi (RS/6000 constraints): Document wo constraint.
18398
18399 2016-01-04 Jakub Jelinek <jakub@redhat.com>
18400
18401 Update copyright years.
18402
18403 * gcc.c (process_command): Update copyright notice dates.
18404 * gcov-dump.c (print_version): Ditto.
18405 * gcov.c (print_version): Ditto.
18406 * gcov-tool.c (print_version): Ditto.
18407 * gengtype.c (create_file): Ditto.
18408 * doc/cpp.texi: Bump @copying's copyright year.
18409 * doc/cppinternals.texi: Ditto.
18410 * doc/gcc.texi: Ditto.
18411 * doc/gccint.texi: Ditto.
18412 * doc/gcov.texi: Ditto.
18413 * doc/install.texi: Ditto.
18414 * doc/invoke.texi: Ditto.
18415
18416 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
18417
18418 * config/arm/arm.c (aapcs_vfp_allocate_return_reg): Treat all integer
18419 modes larger than TImode as TImode if NEON is not enabled.
18420
18421 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
18422
18423 PR target/69100
18424 * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
18425 mode for %f0-%f31 only if TARGET_FPU.
18426
18427 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
18428
18429 PR target/69072
18430 * config/sparc/sparc.c (scan_record_type): Take into account subfields
18431 to compute the PACKED_P predicate.
18432 (function_arg_record_value): Minor tweaks.
18433
18434 2016-01-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
18435
18436 * doc/install.texi (--with-multilib-list): Describe the meaning of the
18437 option for arm*-*-* targets.
18438
18439 2016-01-03 Sandra Loosemore <sandra@codesourcery.com>
18440
18441 * doc/extend.texi (Common Function Attributes): Move docs for
18442 MSP430-specific attributes to....
18443 (MSP430 Function Attributes): ...here. Delete the redundant
18444 entries and copy-edit the remaining text.
18445 (MSP430 Variable Attributes): Use uniform format for index
18446 entries and add a cross-reference to the corresponding function
18447 attribute docs.
18448
18449 2016-01-03 Vladimír Čunát <vcunat@gmail.com>
18450
18451 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix
18452 -finite-math typo.
18453 (x86 Options): Likewise.
18454
18455 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
18456
18457 PR 1078
18458
18459 * extend.texi (Common Function Attributes) <no_stack_limit>: New.
18460 * invoke.texi (Code Gen Options) <-fno-stack-limit>: Add pointer
18461 to corresponding attribute.
18462
18463 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
18464
18465 * doc/extend.texi (Common Function Attributes) <noplt>: Move
18466 to correct alphabetization of table. Copy-edit and correct
18467 markup.
18468 <stack_protect>: Likewise.
18469 <target_clones>: Likewise.
18470 <simd>: Likewise.
18471 * doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>:
18472 Correct punctuation.
18473 (Code Gen Options) <-fno-plt>: Copy-edit.
18474
18475 2016-01-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
18476
18477 PR target/68917
18478 * config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of
18479 SI values. Explicitly convert SI to DI and vice-versa.
18480
18481 2016-01-01 Jakub Jelinek <jakub@redhat.com>
18482
18483 PR tree-optimization/69070
18484 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Only test
18485 REAL_VALUE_ISSIGNALING_NAN on arg0 if arg0 is a REAL_CST.
18486
18487 PR sanitizer/69055
18488 * ubsan.c (ubsan_instrument_float_cast): Call
18489 initialize_sanitizer_builtins.
18490
18491 PR target/69015
18492 * ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).
18493 \f
18494 Copyright (C) 2016 Free Software Foundation, Inc.
18495
18496 Copying and distribution of this file, with or without modification,
18497 are permitted in any medium without royalty provided the copyright
18498 notice and this notice are preserved.