tree-ssa-reassoc.c (sort_by_operand_rank): Skip checking gimple_bb when there is...
[gcc.git] / gcc / ChangeLog
1 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
2
3 * tree-ssa-reassoc.c (sort_by_operand_rank): Skip checking gimple_bb
4 when there is stmt_to_insert.
5
6 2016-05-24 Martin Sebor <msebor@redhat.com>
7
8 PR c++/71147
9 * gcc/tree.h (complete_or_array_type_p): New inline function.
10
11 2016-05-24 Jakub Jelinek <jakub@redhat.com>
12
13 * config/i386/i386.h (TARGET_AVOID_4BYTE_PREFIXES): Define.
14 * config/i386/constraints.md (Yr): Test TARGET_AVOID_4BYTE_PREFIXES
15 rather than X86_TUNE_AVOID_4BYTE_PREFIXES.
16
17 * config/i386/sse.md (<sse4_1>_round<ssemodesuffix><avxsizesuffix>):
18 Limit 1st alternative to noavx isa, split 2nd alternative into one
19 noavx and one avx alternative, use *x and Bm in the former and
20 x and m in the latter.
21
22 * config/i386/sse.md (vec_set<mode>_0): Use sse4_noavx isa instead
23 of sse4 for the first alternative, drop %v from the template
24 and d operand modifier. Split second alternative into one sse4_noavx
25 and one avx alternative, use *x instead of *v in the former and v
26 instead of *v in the latter.
27 (*sse4_1_extractps): Use noavx isa instead of * for the first
28 alternative, drop %v from the template. Split second alternative into
29 one noavx and one avx alternative, use *x instead of *v in the
30 former and v instead of *v in the latter.
31 (<vi8_sse4_1_avx2_avx512>_movntdqa): Guard the first 2 alternatives
32 with noavx and the last one with avx.
33 (sse4_1_phminposuw): Guard first alternative with noavx isa,
34 split the second one into one noavx and one avx alternative,
35 use *x and Bm in the former and x and m in the latter one.
36 (<sse4_1>_ptest<mode>): Use noavx instead of * for the first two
37 alternatives.
38
39 * config/i386/sse.md (sse4_1_<code>v8qiv8hi2<mask_name>): Limit
40 first two alternatives to noavx, use *x instead of *v in the second
41 one, add avx alternative without *.
42 (sse4_1_<code>v4qiv4si2<mask_name>, sse4_1_<code>v4hiv4si2<mask_name>,
43 sse4_1_<code>v2qiv2di2<mask_name>, sse4_1_<code>v2hiv2di2<mask_name>,
44 sse4_1_<code>v2siv2di2<mask_name>): Likewise.
45
46 2016-05-24 Jeff Law <law@redhat.com>
47
48 * tree-ssa-threadbackwards.c (convert_and_register_jump_thread_path):
49 New function, extracted from...
50 (fsm_find_control_statement_thread_paths): Here. Use the new function.
51 Allow simple copies and constant initializations in the SSA chain.
52
53 2016-05-24 Marek Polacek <polacek@redhat.com>
54
55 PR c/71249
56 * gimplify.c (gimplify_switch_expr): Look into the innermost lexical
57 scope.
58
59 2016-05-24 Jakub Jelinek <jakub@redhat.com>
60
61 PR c++/71257
62 * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
63 SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
64 SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP. Add
65 SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP and
66 SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP cases explicitly.
67
68 2016-05-24 Richard Biener <rguenther@suse.de>
69
70 PR tree-optimization/71240
71 * tree-ssa-math-opts.c (init_symbolic_number): Verify the source
72 has integral type.
73
74 2016-05-24 Richard Biener <rguenther@suse.de>
75
76 PR tree-optimization/71230
77 * tree-ssa-reassoc.c (zero_one_operation): Handle negate special ops.
78
79 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
80
81 * tree-vectorizer.h (vectorizable_comparison): Delete.
82 * tree-vect-loop.c (vectorizable_reduction): Remove redundant
83 PURE_SLP_STMT check.
84 * tree-vect-stmts.c (vectorizable_call): Likewise.
85 (vectorizable_simd_clone_call): Likewise.
86 (vectorizable_conversion): Likewise.
87 (vectorizable_assignment): Likewise.
88 (vectorizable_shift): Likewise.
89 (vectorizable_operation): Likewise.
90 (vectorizable_load): Likewise.
91 (vectorizable_condition): Likewise.
92 (vectorizable_store): Likewise. Assert that we don't have
93 hybrid SLP.
94 (vectorizable_comparison): Make static. Remove redundant
95 PURE_SLP_STMT check.
96 (vect_transform_stmt): Assert that we always have an slp_node
97 if PURE_SLP_STMT.
98
99 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
100
101 * config/arm/neon.md (ashldi3_neon): Replace comparison of INTVAL of
102 operands[2] against 1 with comparison against CONST1_RTX.
103 (<shift>di3_neon): Likewise.
104 * config/arm/predicates.md (const0_operand): Replace with comparison
105 against CONST0_RTX.
106
107 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
108
109 * config/arm/arm.md (ashldi3): Replace comparison of INTVAL of
110 operands[2] against 1 with comparison against CONST1_RTX.
111 (ashrdi3): Likewise.
112 (lshrdi3): Likewise.
113 (ashlsi3): Replace cast of INTVAL to unsigned HOST_WIDE_INT with
114 UINTVAL.
115 (ashrsi3): Likewise.
116 (lshrsi3): Likewise.
117 (rotrsi3): Likewise.
118 (define_split above *compareqi_eq0): Likewise.
119 (define_split above "prologue"): Likewise.
120 * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
121 * config/arm/predicates.md (shift_operator): Likewise.
122 (shift_nomul_operator): Likewise.
123 (sat_shift_operator): Likewise.
124 (thumb1_cmp_operand): Likewise.
125 (const_neon_scalar_shift_amount_operand): Replace manual range
126 check with IN_RANGE.
127 * config/arm/thumb1.md (define_peephole2 above *thumb_subdi3):
128 Replace cast of INTVAL to unsigned HOST_WIDE_INT with UINTVAL.
129
130 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
131
132 * config/arm/arm.md (andsi3): Replace cast of 1 to HOST_WIDE_INT
133 with HOST_WIDE_INT_1.
134 (insv): Likewise.
135 * config/arm/arm.c (optimal_immediate_sequence): Replace cast of
136 1 to unsigned HOST_WIDE_INT with HOST_WIDE_INT_1U.
137 (arm_canonicalize_comparison): Likewise.
138 (thumb1_rtx_costs): Replace cast of 1 to HOST_WIDE_INT with
139 HOST_WIDE_INT_1.
140 (thumb1_size_rtx_costs): Likewise.
141 (vfp_const_double_index): Replace cast of 1 to unsigned
142 HOST_WIDE_INT with HOST_WIDE_INT_1U.
143 (get_jump_table_size): Replace cast of 1 to HOST_WIDE_INT with
144 HOST_WIDE_INT_1.
145 (arm_asan_shadow_offset): Replace cast of 1 to unsigned
146 HOST_WIDE_INT with HOST_WIDE_INT_1U.
147 * config/arm/neon.md (vec_set<mode>): Replace cast of 1 to
148 HOST_WIDE_INT with HOST_WIDE_INT_1.
149
150 2016-05-24 Marek Polacek <polacek@redhat.com>
151
152 * tree-cfg.h (should_remove_lhs_p): New predicate.
153 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
154 * gimplify.c (gimplify_modify_expr): Likewise.
155 * tree-cfg.c (verify_gimple_call): Likewise.
156 * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
157 * gimple-fold.c: Include "tree-cfg.h".
158 (gimple_fold_call): Use should_remove_lhs_p.
159
160 2016-05-24 Richard Biener <rguenther@suse.de>
161
162 PR tree-optimization/71253
163 * cfganal.h (control_dependences): Make robust against edge
164 and BB removal.
165 (control_dependences::control_dependences): Remove edge_list argument.
166 (control_dependences::get_edge): Remove.
167 (control_dependences::get_edge_src): Add.
168 (control_dependences::get_edge_dest): Likewise.
169 (control_dependences::m_el): Make a vector of edge src/dest index.
170 * cfganal.c (control_dependences::find_control_dependence): Adjust.
171 (control_dependences::control_dependences): Likewise.
172 (control_dependences::~control_dependence): Likewise.
173 (control_dependences::get_edge): Remove.
174 (control_dependences::get_edge_src): Add.
175 (control_dependences::get_edge_dest): Likewise.
176 * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Use
177 get_edge_src.
178 (perform_tree_ssa_dce): Adjust.
179 * tree-loop-distribution.c (create_edge_for_control_dependence): Use
180 get_edge_src.
181 (pass_loop_distribution::execute): Adjust. Do loop destroying
182 conditional on changed.
183
184 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
185
186 PR target/69857
187 * config/arm/arm.c (gen_operands_ldrd_strd): Remove bogus early
188 return. Reindent transformation comment and mention the ARM state
189 behavior.
190
191 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
192
193 PR middle-end/71252
194 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Add stmt_to_insert
195 after build_and_add_sum creates new use stmt.
196
197 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
198
199 * tree-vect-stmts.c (vectorizable_load): Reorder checks so that
200 load_lanes/grouped_load classification comes first. Don't check
201 whether the vectorization factor is a multiple of the group size
202 for load_lanes.
203
204 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
205
206 * tree-vect-data-refs.c (vect_analyze_group_access_1): Set
207 GROUP_GAP for single-element interleaving.
208 * tree-vect-stmts.c (vectorizable_load): Remove force_peeling
209 variable.
210
211 2016-05-24 Richard Biener <rguenther@suse.de>
212
213 PR middle-end/70434
214 PR c/69504
215 * tree-ssa.c (non_rewritable_mem_ref_base): Make sure to mark
216 bases which are accessed with non-invariant indices.
217 * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Re-write
218 constant index ARRAY_REFs of vectors into BIT_FIELD_REFs.
219
220 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
221
222 PR middle-end/71170
223 * tree-ssa-reassoc.c (struct operand_entry): Add field stmt_to_insert.
224 (add_to_ops_vec): Add stmt_to_insert.
225 (add_repeat_to_ops_vec): Init stmt_to_insert.
226 (insert_stmt_before_use): New.
227 (transform_add_to_multiply): Remove mult_stmt insertion and add it
228 to ops vector.
229 (get_ops): Init stmt_to_insert.
230 (maybe_optimize_range_tests): Likewise.
231 (rewrite_expr_tree): Insert stmt_to_insert before use stmt.
232 (rewrite_expr_tree_parallel): Likewise.
233 (reassociate_bb): Likewise.
234
235 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
236
237 PR target/71201
238 * config/rs6000/altivec.md (altivec_vperm_<mode>_internal): Drop
239 ISA 3.0 xxperm fusion alternative.
240 (altivec_vperm_v8hiv16qi): Likewise.
241 (altivec_vperm_<mode>_uns_internal): Likewise.
242 (vperm_v8hiv4si): Likewise.
243 (vperm_v16qiv8hi): Likewise.
244
245 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
246 Kelvin Nilsen <kelvin@gcc.gnu.org>
247
248 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate
249 vpermr/xxpermr on ISA 3.0.
250 (altivec_expand_vec_perm_le): Likewise.
251 * config/rs6000/altivec.md (UNSPEC_VPERMR): New unspec.
252 (altivec_vpermr_<mode>_internal): Add VPERMR/XXPERMR support for
253 ISA 3.0.
254
255 2016-05-23 Uros Bizjak <ubizjak@gmail.com>
256
257 * config/i386/i386.h (IS_STACK_MODE): Enable for
258 TARGET_MIX_SSE_I387. Rewrite using X87_FLOAT_MODE_P and
259 SSE_FLOAT_MODE_P macros.
260 * config/i386/i386.c (ix86_preferred_reload_class): Use
261 IS_STACK_MODE, INTEGER_CLASS_P, FLOAT_CLASS_P and Q_CLASS_P macros.
262 Cleanup regclass processing for CONST_DOUBLE_P.
263 (ix86_preferred_output_reload_class): Use IS_STACK_MODE macro.
264 (ix86_rtx_costs): Remove redundant TARGET_80387 check
265 with IS_STACK_MODE macro.
266 * config/i386/i386.md: Replace SSE_FLOAT_MODE_P (DFmode)
267 with TARGET_SSE2.
268 (*movdf_internal): Use IS_STACK_MODE macro.
269 (*movsf_internal): Ditto.
270
271 2016-05-23 Marc Glisse <marc.glisse@inria.fr>
272
273 * match.pd (a * (1 << b), ~x & ~y, ~X ^ ~Y, (X ^ Y) ^ Y, ~ (-A),
274 ~ (A - 1), ~(~X >> Y), ~(~X >>r Y)): Relax constraints.
275
276 2016-05-23 Jeff Law <law@redhat.com>
277
278 * tree-ssa-threadbackward.c (profitable_jump_thread_path): New function
279 extracted from ...
280 (fsm_find_control_statement_thread_paths): Call it.
281
282 2016-05-23 Martin Jambor <mjambor@suse.cz>
283
284 PR ipa/71234
285 * ipa-cp.c (ipa_get_indirect_edge_target_1): Only check value of
286 from_global_constant if t is not NULL.
287
288 2016-05-23 Marek Polacek <polacek@redhat.com>
289
290 PR c/49859
291 * common.opt (Wswitch-unreachable): New option.
292 * doc/invoke.texi: Document -Wswitch-unreachable.
293 * gimplify.c (gimplify_switch_expr): Implement the -Wswitch-unreachable
294 warning.
295
296 2016-05-23 Bin Cheng <bin.cheng@arm.com>
297
298 * tree-ssa-address.c (copy_ref_info): Check NULL TMR_STEP when
299 TMR_INDEX is non-NULL.
300
301 2016-05-23 Richard Biener <rguenther@suse.de>
302
303 PR tree-optimization/71230
304 * tree-ssa-reassoc.c (acceptable_pow_call): Move initial condition...
305 (try_special_add_to_ops): ... here. Always test for single-use.
306
307 2016-05-23 Martin Jambor <mjambor@suse.cz>
308
309 * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Create an empty
310 default block if a PHI node in the original one would be resized.
311
312 2016-05-23 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
313
314 PR tree-optimization/58135
315 * tree-vect-slp.c: When group size is not multiple
316 of vector size, allow splitting of store group at
317 vector boundary.
318
319 2016-05-23 Christophe Lyon <christophe.lyon@linaro.org>
320
321 * config/arm/arm_neon.h (vtst_p16, vtstq_p16): New.
322
323 2016-05-22 Jakub Jelinek <jakub@redhat.com>
324
325 * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
326 vec_set_hi_<mode><mask_name>): Add && <mask_avx512dq_condition>
327 condition. For !TARGET_AVX512DQ, emit 32x4 instruction instead
328 of 64x2.
329
330 * config/i386/sse.md (vec_set_lo_v16hi, vec_set_hi_v16hi,
331 vec_set_lo_v32qi, vec_set_hi_v32qi): Add alternative with
332 v constraint instead of x and vinserti32x4 insn.
333
334 * config/i386/sse.md (i128vldq): New mode iterator.
335 (avx2_vbroadcasti128_<mode>, avx_vbroadcastf128_<mode>): Add
336 avx512dq and avx512vl alternatives.
337
338 * config/i386/sse.md (avx2_vec_dupv4df): Use v instead of x
339 constraint, use maybe_evex prefix instead of vex.
340 (vec_dupv4sf): Use v constraint instead of x for output
341 operand except for noavx alternative, use Yv constraint
342 instead of x for input. Use maybe_evex prefix instead of vex.
343 (*vec_dupv4si): Likewise.
344 (*vec_dupv2di): Likewise.
345
346 2016-05-22 Kugan Vivekanandarajah <kuganv@linaro.org>
347
348 PR middle-end/40921
349 * tree-ssa-reassoc.c (try_special_add_to_ops): New.
350 (linearize_expr_tree): Call try_special_add_to_ops.
351 (reassociate_bb): Convert MULT_EXPR by (-1) to NEGATE_EXPR.
352
353 2016-05-21 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
354
355 * config/avr/avr.c (avr_expand_prologue): Add INCOMING_FRAME_SP_OFFSET
356 to computed stack_usage.
357
358 2016-05-21 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
359
360 PR target/71103
361 * config/avr/avr.md (define_expand "mov<mode>"): If the source
362 operand is subreg (symbol_ref) then move the symbol ref to register.
363
364 2016-05-21 Jan Hubicka <hubicka@ucw.cz>
365
366 * tree.c (array_at_struct_end_p): Look through MEM_REF.
367
368 2016-05-21 Kugan Vivekanandarajah <kuganv@linaro.org>
369
370 PR middle-end/71179
371 * tree-ssa-reassoc.c (transform_add_to_multiply): Disallow float
372 VECTOR type.
373
374 2016-05-20 Eric Botcazou <ebotcazou@adacore.com>
375
376 * tree-vrp.c (compare_values_warnv): Simplify handling of symbolic
377 ranges by calling get_single_symbol and tidy up. Look more closely
378 into NAME + CST1 vs CST2 comparisons if type overflow is undefined.
379
380 2016-05-20 Jeff Law <law@redhat.com>
381
382 * bitmap.c (bitmap_find_bit): Remove useless test.
383
384 2016-05-20 Segher Boessenkool <segher@kernel.crashing.org>
385
386 * function.c (thread_prologue_and_epilogue_insns): Commit the
387 insertion of the epilogue.
388
389 2016-05-20 Martin Jambor <mjambor@suse.cz>
390
391 PR tree-optimization/70884
392 * tree-sra.c (initialize_constant_pool_replacements): Do not check
393 should_scalarize_away_bitmap and cannot_scalarize_away_bitmap bits.
394 (sort_and_splice_var_accesses): Do not consider multiple scalar reads
395 of constant pool data as a reason for scalarization.
396
397 2016-05-20 Eric Botcazou <ebotcazou@adacore.com>
398
399 * config/arm/arm.c (arm_expand_prologue): Set the stack usage to 0
400 for naked functions.
401 (thumb1_expand_prologue): Likewise.
402
403 2016-05-20 Nathan Sidwell <nathan@acm.org>
404
405 * config/nvptx/nptx.c (nvptx_option_override): Only set
406 flag_toplevel_reorder, if not explicitly specified. Set
407 flag_no_common, unless explicitly specified.
408
409 2016-05-20 David Malcolm <dmalcolm@redhat.com>
410
411 * calls.c (can_implement_as_sibling_call_p): Mark param
412 reg_parm_stack_space with ATTRIBUTE_UNUSED.
413
414 2016-05-20 Uros Bizjak <ubizjak@gmail.com>
415
416 * config/i386/i386.c (ix86_rtx_costs) <case CONST_DOUBLE>:
417 Use IS_STACK_MODE when calculating cost of standard 80387 constants.
418 Fallthru to CONST_VECTOR case to calculate cost of standard SSE
419 constants.
420 <case CONST_WIDE_INT>: Calculate cost of (MEM (SYMBOL_REF)).
421 (ix86_legitimate_constant_p): Use CASE_CONST_SCALAR_INT
422 and CASE_CONST_ANY.
423
424 2016-05-20 Cesar Philippidis <cesar@codesourcery.com>
425
426 * config/nvptx/nvptx.md (sincossf3): New pattern.
427
428 2016-05-20 David Malcolm <dmalcolm@redhat.com>
429
430 * calls.c (maybe_complain_about_tail_call): New function.
431 (initialize_argument_information): Call
432 maybe_complain_about_tail_call when clearing *may_tailcall.
433 (can_implement_as_sibling_call_p): Call
434 maybe_complain_about_tail_call when returning false.
435 (expand_call): Read CALL_EXPR_MUST_TAIL_CALL and, if set,
436 ensure try_tail_call is set. Call maybe_complain_about_tail_call
437 if tail-call optimization fails.
438 * cfgexpand.c (expand_call_stmt): Initialize
439 CALL_EXPR_MUST_TAIL_CALL from gimple_call_must_tail_p.
440 * gimple-pretty-print.c (dump_gimple_call): Dump
441 gimple_call_must_tail_p.
442 * gimple.c (gimple_build_call_from_tree): Call
443 gimple_call_set_must_tail with the value of
444 CALL_EXPR_MUST_TAIL_CALL.
445 * gimple.h (enum gf_mask): Add GF_CALL_MUST_TAIL_CALL.
446 (gimple_call_set_must_tail): New function.
447 (gimple_call_must_tail_p): New function.
448 * print-tree.c (print_node): Update printing of TREE_STATIC
449 to reflect its use for CALL_EXPR_MUST_TAIL_CALL.
450 * tree-core.h (struct tree_base): Add MUST_TAIL_CALL to the
451 trailing comment listing applicable flags.
452 * tree.h (CALL_EXPR_MUST_TAIL_CALL): New macro.
453
454 2016-05-20 David Malcolm <dmalcolm@redhat.com>
455
456 * calls.c (expand_call): Move "Rest of purposes for tail call
457 optimizations to fail" to...
458 (can_implement_as_sibling_call_p): ...this new function, and
459 split into multiple "if" statements.
460
461 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
462
463 * cfgloop.h (expected_loop_iterations_unbounded,
464 expected_loop_iterations): Unconstify.
465 * cfgloopanal.c (expected_loop_iterations_unbounded): Sanity check the
466 profile with known upper bound; return 3 when profile is absent.
467 (expected_loop_iterations): Update.
468
469 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
470
471 * loop-doloop.c (doloop_optimize): Use get_estimated_loop_iterations_int
472 and get_max_loop_iterations_int.
473
474 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
475
476 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can not produce
477 realistic upper bounds here.
478
479 2016-05-20 Jakub Jelinek <jakub@redhat.com>
480
481 PR c++/71210
482 * gimple-fold.c (gimple_fold_call): Do not remove lhs of noreturn
483 calls if the LHS is variable length or has addressable type.
484 If targets[0]->decl is a noreturn call with void return type and
485 zero arguments, adjust fntype and remove lhs in that case.
486
487 2016-05-20 Marc Glisse <marc.glisse@inria.fr>
488
489 PR tree-optimization/71079
490 PR tree-optimization/71206
491 * match.pd ((X ^ Y) ^ (X ^ Z)): Convert the arguments.
492
493 2016-05-20 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
494
495 * tree-vectorizer.c (get_vec_alignment_for_decl): New static function.
496 (get_vec_alignment_for_array_decl): Likewise.
497 (get_vec_alignment_for_record_decl): Likewise.
498 (increase_alignment::execute): Move code to find alignment to
499 get_vec_alignment_for_array_decl and call get_vec_alignment_for_decl.
500 (type_align_map): New hash_map.
501
502 2016-05-20 Richard Guenther <rguenther@suse.de>
503
504 PR tree-optimization/29756
505 * tree.def (BIT_INSERT_EXPR): New tcc_expression tree code.
506 * expr.c (expand_expr_real_2): Handle BIT_INSERT_EXPR.
507 * fold-const.c (operand_equal_p): Likewise.
508 (fold_ternary_loc): Add constant folding of BIT_INSERT_EXPR.
509 * gimplify.c (gimplify_expr): Handle BIT_INSERT_EXPR.
510 * tree-inline.c (estimate_operator_cost): Likewise.
511 * tree-pretty-print.c (dump_generic_node): Likewise.
512 * tree-ssa-operands.c (get_expr_operands): Likewise.
513 * cfgexpand.c (expand_debug_expr): Likewise.
514 * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
515 * gimple.c (get_gimple_rhs_num_ops): Handle BIT_INSERT_EXPR.
516 * tree-cfg.c (verify_gimple_assign_ternary): Verify BIT_INSERT_EXPR.
517 * tree-ssa.c (non_rewritable_lvalue_p): We can rewrite
518 vector inserts using BIT_FIELD_REF or MEM_REF on the lhs.
519 (execute_update_addresses_taken): Do it.
520
521 2016-05-20 Richard Biener <rguenther@suse.de>
522
523 PR tree-optimization/71185
524 * tree-ssa-loop-prefetch.c (gather_memory_references): Drop
525 register operations.
526
527 2016-05-20 Richard Biener <rguenther@suse.de>
528
529 * tree-if-conv.c (add_bb_predicate_gimplified_stmts): Use
530 gimple_seq_add_seq_without_update.
531 (release_bb_predicate): Assert we have no operands to free.
532 (if_convertible_loop_p_1): Calculate post dominators later.
533 Do not free BB predicates here.
534 (combine_blocks): Do not recompute BB predicates.
535 (version_loop_for_if_conversion): Save BB predicates around
536 loop versioning.
537
538 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org>
539
540 * function.c (make_epilogue_seq): Remove epilogue_end parameter.
541 (thread_prologue_and_epilogue_insns): Remove bb_flags. Restructure
542 code. Ignore sibcalls on EDGE_IGNORE edges.
543 * shrink-wrap.c (handle_simple_exit): New function. Set EDGE_IGNORE
544 on edges for sibcalls that run without prologue. The rest of the
545 function is combined from...
546 (fix_fake_fallthrough_edge): ... this, and ...
547 (try_shrink_wrapping): ... a part of this. Remove the bb_with
548 function argument, make it a local variable.
549
550 2016-05-19 Sandra Loosemore <sandra@codesourcery.com>
551
552 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Allow
553 --disable-sjlj-exceptions for TARGET_BI_ARCH to select DWARF-2 EH
554 for 32-bit mode and SEH for 64-bit.
555 * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): Handle
556 TARGET_64BIT_DEFAULT.
557
558 2016-05-19 Ryan Burn <contact@rnburn.com>
559
560 * Makefile.in (GTFILES): Add cilk.h and cilk-common.c.
561 * gengtype.c (open_base_files): Add cilk.h to ifiles.
562
563 2016-05-19 Uros Bizjak <ubizjak@gmail.com>
564
565 * sched-deps.c (sched_analyze_2) <case TRAP_IF>: Also
566 force pending loads from memory.
567
568 2016-05-19 Kelvin Nilsen <kelvin@gcc.gnu.org>
569
570 * config/rs6000/altivec.md (UNSPEC_DARN): New unspec constant.
571 (UNSPEC_DARN_32): New unspec constant.
572 (UNSPEC_DARN_RAW): New unspec constant.
573 (darn_32): New instruction.
574 (darn_raw): New instruction.
575 (darn): New instruction.
576 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_0): Add
577 support and documentation for this macro.
578 (BU_P9_MISC_1): New macro definition.
579 (BU_P9_64BIT_MISC_0): New macro definition.
580 (BU_P9_MISC_0): New macro definition.
581 (darn_32): New builtin definition.
582 (darn_raw): New builtin definition.
583 (darn): New builtin definition.
584 * config/rs6000/rs6000.c: Add #define RS6000_BUILTIN_0 and #undef
585 RS6000_BUILTIN_0 directives to surround each occurrence of
586 #include "rs6000-builtin.def".
587 (rs6000_builtin_mask_calculate): Add in the RS6000_BTM_MODULO and
588 RS6000_BTM_64BIT flags to the returned mask, depending on
589 configuration.
590 (def_builtin): Correct an error in the assignments made to the
591 debugging variable attr_string.
592 (rs6000_expand_builtin): Add support for no-operand built-in
593 functions.
594 (builtin_function_type): Remove fatal_error assertion that is no
595 longer valid.
596 (rs6000_common_init_builtins): Add support for no-operand built-in
597 functions.
598 * config/rs6000/rs6000.h (RS6000_BTM_MODULO): New macro
599 definition.
600 (RS6000_BTM_PURE): Enhance comment to clarify intent of this flag
601 definition.
602 (RS6000_BTM_64BIT): New macro definition.
603 * doc/extend.texi: Document __builtin_darn (void),
604 __builtin_darn_raw (void), and __builtin_darn_32 (void) built-in
605 functions.
606
607 2016-05-19 Jan Hubicka <hubicka@ucw.cz>
608
609 * tree-vect-loop.c (vect_analyze_loop_2): Use also
610 max_loop_iterations_int.
611
612 2016-05-19 Marek Polacek <polacek@redhat.com>
613
614 PR tree-optimization/71031
615 * tree-vrp.c (extract_range_from_binary_expr_1): Turn assert into a
616 condition and adjust the code a bit.
617
618 2016-05-19 Martin Liska <mliska@suse.cz>
619
620 * tree-vect-stmts.c (vectorizable_simd_clone_call): Utilize
621 auto_vec instead of vec.
622
623 2016-05-19 Martin Liska <mliska@suse.cz>
624
625 * tree-parloops.c (oacc_entry_exit_ok): Release a vector.
626
627 2016-05-19 Martin Liska <mliska@suse.cz>
628
629 * tree-if-conv.c (ifcvt_repair_bool_pattern): Utilize auto_vecs.
630
631 2016-05-19 Martin Liska <mliska@suse.cz>
632
633 * ipa-pure-const.c (set_function_state): Remove an existing
634 funct_state.
635 (remove_node_data): Do not free it as it's released
636 in set_function_state.
637
638 2016-05-19 Martin Liska <mliska@suse.cz>
639
640 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Release
641 bitmap.
642
643 2016-05-19 Martin Liska <mliska@suse.cz>
644
645 * omp-simd-clone.c (simd_clone_adjust): Release vector.
646
647 2016-05-19 Martin Liska <mliska@suse.cz>
648
649 * tree-ssa-reassoc.c (eliminate_duplicate_pair): Truncate
650 an auto_vec instead of re-creating it.
651
652 2016-05-19 Martin Liska <mliska@suse.cz>
653
654 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Use
655 auto_vec instead of vec.
656
657 2016-05-19 Martin Liska <mliska@suse.cz>
658
659 * lto-section-in.c (lto_get_section_data): Call
660 lto_check_version with additional argument.
661 * lto-streamer.c (lto_check_version): Add new argument.
662 * lto-streamer.h (lto_check_version): Likewise.
663
664 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
665
666 * config/arm/arm.c (arm_new_rtx_costs, SIGN_EXTEND case):
667 Don't add cost of inner memory when handling sign-extended loads.
668
669 2016-05-19 Ilya Enkovich <ilya.enkovich@intel.com>
670
671 PR rtl-optimization/71148
672 * cse.c (cse_main): Free dominance info.
673 (rest_of_handle_cse): Don't free dominance info.
674 (rest_of_handle_cse2): Likewise.
675 (rest_of_handle_cse_after_global_opts): Likewise.
676
677 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
678
679 PR target/71056
680 * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Return
681 NULL_TREE early if NEON is not available. Remove now redundant check
682 in ARM_CHECK_BUILTIN_MODE.
683
684 2016-05-19 Maxim Ostapenko <m.ostapenko@samsung.com>
685
686 PR sanitizer/64354
687 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add new
688 builtin __SANITIZE_THREAD__ macros for fsanitize=thread switch.
689 * doc/cpp.texi: Document new macros.
690
691 2016-05-19 Bin Cheng <bin.cheng@arm.com>
692
693 PR tree-optimization/69848
694 * tree-vect-loop.c (vectorizable_reduction): Don't factor
695 comparison expr out of VEC_COND_EXPR for COND_REDUCTION.
696
697 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org>
698
699 * function.c (thread_prologue_and_epilogue_insn): Move the
700 "goto epilogue_done" one block later.
701
702 2016-05-19 Richard Biener <rguenther@suse.de>
703
704 PR tree-optimization/70729
705 * passes.def: Move LIM pass before PRE. Remove no longer
706 required copyprop and move first DCE out of the loop pipeline.
707
708 2016-05-18 David Malcolm <dmalcolm@redhat.com>
709
710 PR driver/69265
711 * Makefile.in (GCC_OBJS): Move spellcheck.o to...
712 (OBJS-libcommon-target): ...here.
713 * opts-common.c: Include spellcheck.h.
714 (cmdline_handle_error): Build a vec of valid options and use it
715 to suggest provide hints for misspelled arguments.
716
717 2016-05-18 Jakub Jelinek <jakub@redhat.com>
718
719 PR c++/71100
720 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Don't drop
721 lhs if it has TREE_ADDRESSABLE type.
722
723 2016-05-18 Uros Bizjak <ubizjak@gmail.com>
724
725 PR target/71145
726 * config/alpha/alpha.md (trap): Add (use (reg:DI 29)).
727 (*exception_receiver_1): Return "#" for TARGET_EXPLICIT_RELOCS.
728
729 2016-05-18 Martin Jambor <mjambor@suse.cz>
730
731 PR ipa/69708
732 * ipa-cp.c (ipa_get_jf_pass_through_result): Allow non-ip constant
733 input for NOP_EXPR pass-through functions.
734 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Allow
735 aggregate global constant VAR_DECLs in constant jump functions.
736
737 2016-05-18 Martin Jambor <mjambor@suse.cz>
738
739 PR ipa/69708
740 * ipa-prop.c (parm_preserved_before_stmt_p): Return true for loads
741 from TREE_READONLY parameters.
742
743 2016-05-18 Martin Jambor <mjambor@suse.cz>
744
745 PR ipa/69708
746 * cgraph.h (cgraph_indirect_call_info): New field
747 guaranteed_unmodified.
748 * ipa-cp.c (ipa_get_indirect_edge_target_1): Also pass parameter value
749 to ipa_find_agg_cst_for_param, check guaranteed_unmodified when
750 appropriate.
751 * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Also
752 pass the parameter value to ipa_find_agg_cst_for_param.
753 * ipa-prop.c (ipa_load_from_parm_agg): New parameter
754 guaranteed_unmodified, store AA results there instead of bailing out
755 if present.
756 (ipa_note_param_call): Also initialize guaranteed_unmodified flag.
757 (ipa_analyze_indirect_call_uses): Also set guaranteed_unmodified flag.
758 (find_constructor_constant_at_offset): New function.
759 (ipa_find_agg_cst_from_init): Likewise.
760 (ipa_find_agg_cst_for_param): Also seearch for aggregate values in
761 static initializers of contants, report back through a new paameter
762 from_global_constant if that was the case.
763 (try_make_edge_direct_simple_call): Also pass parameter value to
764 ipa_find_agg_cst_for_param, check guaranteed_unmodified when
765 appropriate.
766 (ipa_write_indirect_edge_info): Stream new flag guaranteed_unmodified.
767 (ipa_read_indirect_edge_info): Likewise.
768 * ipa-prop.h (ipa_find_agg_cst_for_param): Update declaration.
769 (ipa_load_from_parm_agg): Likewise.
770
771 2016-05-18 Jiong Wang <jiong.wang@arm.com>
772
773 PR rtl-optimization/71150
774 * lra-constraint (process_addr_reg): Guard "in_class_p" with REG_P
775 check.
776
777 2016-05-18 Michael Meissner <meissner@linux.vnet.ibm.com>
778
779 PR target/70915
780 * config/rs6000/constraints.md (wE constraint): New constraint
781 for a vector constant that can be loaded with XXSPLTIB.
782 (wM constraint): New constraint for a vector constant of a 1's.
783 (wS constraint): New constraint for a vector constant that can be
784 loaded with XXSPLTIB and a vector sign extend instruction.
785 * config/rs6000/predicates.md (xxspltib_constant_split): New
786 predicates for wE/wS constraints.
787 (xxspltib_constant_nosplit): Likewise.
788 (easy_vector_constant): Add support for constants that can be
789 loaded via XXSPLTIB.
790 (all_ones_constant): New predicate for vector constant with all
791 1's set.
792 (splat_input_operand): Add support for ISA 3.0 word splat operations.
793 * config/rs6000/rs6000.c (xxspltib_constant_p): New function to
794 return if a constant can be loaded with the ISA 3.0 XXSPLTIB
795 instruction and possibly with a sign extension.
796 (output_vec_const_move): Add support for XXSPLTIB. If we are
797 loading up 0/-1 into Altivec registers, prefer using VSPLTISW
798 instead of XXLXOR/XXLORC.
799 (rs6000_expand_vector_init): Add support for ISA 3.0 word splat
800 operations.
801 (rs6000_legitimize_reload_address): Likewise.
802 (rs6000_output_move_128bit): Use output_vec_const_move to emit
803 constants.
804 * config/rs6000/vsx.md (VSX_M): Add TImode (if -mvsx-timode) and
805 combine VSX_M and VSX_M2 into one iterator.
806 (VSX_M2): Likewise.
807 (VSINT_84): New iterators for loading constants with XXSPLTIB.
808 (VSINT_842): Likewise.
809 (UNSPEC_VSX_SIGN_EXTEND): New UNSPEC.
810 (xxspltib_v16qi): New insns to load up constants with the ISA 3.0
811 XXSPLTIB instruction.
812 (xxspltib_<mode>_nosplit): Likewise.
813 (xxspltib_<mode>_split): New insn to load up constants with
814 XXSPLTIB and a sign extend instruction.
815 (vsx_mov<mode>): Replace single move that handled all vector types
816 with separate 32-bit and 64-bit moves. Combine the movti_<bit>
817 moves (when -mvsx-timode is in effect) into the main vector
818 moves. Eliminate separate moves for <VSr> <VSa>, where the
819 preferred register class (<VSr>) is listed first, and the
820 secondary register class (<VSa>) is listed second with a '?' to
821 discourage use. Prefer loading 0/-1 in any VSX register for ISA
822 3.0, and Altivec registers for ISA 2.06/2.07 (PR target/70915) so
823 that if the register was involved in a slow operation, the
824 clear/set operation does not wait for the slow operation to
825 finish. Adjust the length attributes for 32-bit mode. Use
826 rs6000_output_move_128bit and drop the use of the string
827 instructions for 32-bit movti when -mvsx-timode is in effect. Use
828 spacing so that the alternatives and attributes don't generate
829 long lines, and put things in columns, so that it is easier to
830 match up the operands and attributes with the insn alternatives.
831 (vsx_mov<mode>_64bit): Likewise.
832 (vsx_mov<mode>_32bit): Likewise.
833 (vsx_movti_64bit): Fold movti into normal vector moves.
834 (vsx_movti_32bit): Likewise.
835 (vsx_splat_<mode>, V4SI/V4SF modes): Add support for ISA 3.0 word
836 splat instructions.
837 (vsx_splat_v4si_internal): Likewise.
838 (vsx_splat_v4sf_internal): Likewise.
839 (vector fusion peepholes): Use VSX_M instead of VSX_M2.
840 (vsx_sign_extend_qi_<mode>): New ISA 3.0 instructions to sign
841 extend vector elements.
842 (vsx_sign_extend_hi_<mode>): Likewise.
843 (vsx_sign_extend_si_v2di): Likewise.
844 * config/rs6000/rs6000-protos.h (xxspltib_constant_p): Add
845 declaration.
846 * doc/md.texi (PowerPC constraints): Document the wE, wM, and wS
847 constraints. Add trailing period to wL documentation.
848
849 2016-05-18 Richard Sandiford <richard.sandiford@arm.com>
850
851 PR middle-end/71020
852 * tree-dfa.h (replace_abnormal_ssa_names): Declare.
853 * tree-dfa.c (replace_abnormal_ssa_names): New function.
854 * tree-call-cdce.c: Include tree-dfa.h.
855 (can_guard_call_p): New function, extracted from...
856 (can_use_internal_fn): ...here.
857 (shrink_wrap_one_built_in_call_with_conds): Remove failure path
858 and return void.
859 (shrink_wrap_one_built_in_call): Likewise.
860 (use_internal_fn): Likewise.
861 (shrink_wrap_conditional_dead_built_in_calls): Update accordingly
862 and return void. Call replace_abnormal_ssa_names.
863 (pass_call_cdce::execute): Check can_guard_call_p during the
864 initial walk. Assume shrink_wrap_conditional_dead_built_in_calls
865 will always change something.
866
867 2016-05-18 Martin Jambor <mjambor@suse.cz>
868
869 PR ipa/70646
870 * ipa-prop.c (determine_locally_known_aggregate_parts): Bail out early
871 if parameter PARAM_IPA_MAX_AGG_ITEMS is zero.
872
873 2016-05-18 Martin Jambor <mjambor@suse.cz>
874
875 PR ipa/70646
876 * ipa-inline.h (condition): New field size.
877 * ipa-inline-analysis.c (add_condition): New parameter SIZE, use it
878 for comaprison and store it into the new condition.
879 (evaluate_conditions_for_known_args): Use condition size to check
880 access sizes for all but CHANGED conditions.
881 (unmodified_parm_1): New parameter size_p, store access size into it.
882 (unmodified_parm): Likewise.
883 (unmodified_parm_or_parm_agg_item): Likewise.
884 (eliminated_by_inlining_prob): Pass NULL to unmodified_parm as size_p.
885 (set_cond_stmt_execution_predicate): Extract access sizes and store
886 them to conditions.
887 (set_switch_stmt_execution_predicate): Likewise.
888 (will_be_nonconstant_expr_predicate): Likewise.
889 (will_be_nonconstant_predicate): Likewise.
890 (inline_read_section): Stream condition size.
891 (inline_write_summary): Likewise.
892
893 2016-05-18 Richard Biener <rguenther@suse.de>
894
895 * tree-ssa-loop-im.c (determine_max_movement): Properly add
896 condition cost to PHI cost instead of total_cost.
897
898 2016-05-18 Martin Liska <mliska@suse.cz>
899
900 PR fortran/70856
901 * ipa-icf.c (sem_variable::merge): Set DECL_PT_UID for
902 merged variables.
903
904 2016-05-18 Richard Biener <rguenther@suse.de>
905
906 * lto-streamer.h (LTO_major_version): Bump to 6.
907
908 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org>
909
910 * function.c (make_split_prologue_seq, make_prologue_seq,
911 make_epilogue_seq): New functions, factored out from...
912 (thread_prologue_and_epilogue_insns): Here.
913
914 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org>
915
916 * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
917 cleanup_cfg with CLEANUP_EXPENSIVE after shrink-wrapping instead
918 of before. Add a comment.
919
920 2016-05-18 Bin Cheng <bin.cheng@arm.com>
921
922 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check invariant
923 expression pointer, not pointer to the pointer.
924
925 2016-05-18 Jakub Jelinek <jakub@redhat.com>
926
927 * config/i386/sse.md (pbroadcast_evex_isa): New mode attr.
928 (avx2_pbroadcast<mode>): Add another alternative with v instead
929 of x constraints in it, using <pbroadcast_evex_isa> isa.
930 (avx2_pbroadcast<mode>_1): Similarly, add two such alternatives.
931
932 * config/i386/sse.md (<ssse3_avx2>_palignr<mode>): Use
933 constraint x instead of v in second alternative, add avx512bw
934 alternative.
935
936 * config/i386/sse.md (<ssse3_avx2>_pshufb<mode>3<mask_name>): Use
937 constraint x instead of v in second alternative, add avx512bw
938 alternative.
939
940 * config/i386/sse.md (*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>): Use
941 constraint x instead of v in second alternative, add avx512bw
942 alternative.
943
944 * config/i386/sse.md (avx2_pmaddubsw256, ssse3_pmaddubsw128): Add
945 avx512bw alternative.
946
947 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
948
949 * config/i386/sse.md (define_insn "*andnot<mode>3"): Extend static
950 array to 128 chars.
951 (define_insn "*andnottf3"): Ditto.
952 (define_insn "*<code><mode>3"/any_logic): Ditto.
953 (define_insn "*<code>tf3"/any_logic): Ditto.
954 (define_insn "sse2_storehpd"): Use Yv constraint for scalar
955 operand to block AVX-512VL insn variant emit when it is not enabled.
956
957 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
958
959 * config/i386/sse.md (define_insn "*vec_concatv2sf_sse4_1"): Use 'Yv'
960 constraint fot SF mode.
961
962 2016-05-18 Petr Murzin <petr.murzin@intel.com>
963 Kirill Yukhin <kirill.yukhin@intel.com>
964
965 * config/i386/sse.md (define_insn "srcp14<mode>"): Use proper operand
966 modifiers.
967 (define_insn "rsqrt14<mode>"): Ditto.
968 (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
969 (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
970 (define_insn "avx512f_<code>v8div16qi2_mask_store"): Ditto.
971 (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
972 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"):
973 Ditto.
974 (define_insn "*avx512f_gatherdi<mode>"): Ditto.
975 (define_insn "*avx512f_scatterdi<mode>"): Ditto.
976 * config/i386/i386.c (ix86_print_operand): Expand check for size
977 override codes for Intel syntax.
978
979 2016-05-18 Richard Biener <rguenther@suse.de>
980
981 PR tree-optimization/71168
982 * tree-loop-distribution.c (distribute_loop): Move *destroy_p
983 initialization earlier.
984
985 2016-05-18 James Greenhalgh <james.greenhalgh@arm.com>
986
987 * config/aarch64/aarch64-simd.md
988 (aarch64_reduc_plus_internal<mode>): Rename to...
989 (reduc_plus_scal): ...This, and remove previous implementation.
990
991 2016-05-18 Richard Biener <rguenther@suse.de>
992
993 * passes.def: Put late dse and cd_dce in canonical order.
994
995 2016-05-17 Jan Hubicka <hubicka@ucw.cz>
996
997 * ipa-inline-transform.c (preserve_function_body_p): Look for
998 first non-thunk clone.
999 (save_function_body): Save into first non-thunk.
1000 * lto-cgraph.c (lto_output_edge): When streaming thunk do not look
1001 up call stmt id.
1002 (lto_output_node): Inline thunks don't need body in every
1003 partition.
1004 * lto-streamer-in.c: Do not fixup thunk clones.
1005 * cgraphclones.c (cgraph_node::create_edge_including_clone): Skip
1006 thunks.
1007 * tree-inline.c (copy_bb): Be prepared for target node to be new after
1008 folding suceeds.
1009
1010 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org>
1011
1012 PR middle-end/63586
1013 * tree-ssa-reassoc.c (transform_add_to_multiply): New.
1014 (reassociate_bb): Call transform_add_to_multiply.
1015
1016 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org>
1017
1018 * config/aarch64/aarch64.c (all_extensions): Removed unused
1019 static variable.
1020
1021 2016-05-17 Nathan Sidwell <nathan@acm.org>
1022
1023 * config/nvptx/nvptx.c (nvptx_function_arg_boundary): New.
1024 (TARGET_FUNCTION_ARG_BOUNDARY): Override.
1025
1026 2016-05-17 Mikhail Maltsev <maltsevm@gmail.com>
1027
1028 PR tree-optimization/54579
1029 PR middle-end/55299
1030 * match.pd (~(~X >> Y), ~(~X >>r Y), ~(~X <<r Y)): New patterns.
1031
1032 2016-05-17 Marek Polacek <polacek@redhat.com>
1033
1034 PR ipa/71146
1035 * tree-inline.c (expand_call_inline): Call
1036 maybe_remove_unused_call_args.
1037
1038 2016-05-17 Jim Wilson <jim.wilson@linaro.org>
1039
1040 * doc/cpp.texi (__GNUC__): Major version changes are no longer rare.
1041 * doc/invoke.texi (-mnan=2008): Change signalling to signaling.
1042 * doc/md.texi (fmin@var{m}3): Likewise.
1043
1044 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
1045
1046 * match.pd (X & C): New transformation.
1047
1048 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
1049
1050 * match.pd (~X & Y): New transformation.
1051
1052 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
1053
1054 * tree-vrp.c (simplify_truth_ops_using_ranges): Set range
1055 information for new SSA_NAME.
1056 (simplify_conversion_using_ranges): Get range through get_range_info
1057 instead of get_value_range.
1058
1059 2016-05-17 Jiong Wang <jiong.wang@arm.com>
1060
1061 * config/aarch64/arm_neon.h (vmvn_s8): Reimplement using C operator.
1062 Remove inline assembly.
1063 (vmvn_s16): Likewise.
1064 (vmvn_s32): Likewise.
1065 (vmvn_u8): Likewise.
1066 (vmvn_u16): Likewise.
1067 (vmvn_u32): Likewise.
1068 (vmvnq_s8): Likewise.
1069 (vmvnq_s16): Likewise.
1070 (vmvnq_s32): Likewise.
1071 (vmvnq_u8): Likewise.
1072 (vmvnq_u16): Likewise.
1073 (vmvnq_u32): Likewise.
1074 (vmvn_p8): Likewise.
1075 (vmvnq_p16): Likewise.
1076
1077 2016-05-17 Jiong Wang <jiong.wang@arm.com>
1078
1079 * config/aarch64/aarch64-simd.md (vmul_n_f32): Remove inline assembly.
1080 Use builtin.
1081 (vmul_n_s16): Likewise.
1082 (vmul_n_s32): Likewise.
1083 (vmul_n_u16): Likewise.
1084 (vmul_n_u32): Likewise.
1085 (vmulq_n_f32): Likewise.
1086 (vmulq_n_f64): Likewise.
1087 (vmulq_n_s16): Likewise.
1088 (vmulq_n_s32): Likewise.
1089 (vmulq_n_u16): Likewise.
1090 (vmulq_n_u32): Likewise.
1091
1092 2016-05-17 Jiong Wang <jiong.wang@arm.com>
1093
1094 * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_to_128df): Extend
1095 to all supported modes. Rename to "*aarch64_mul3_elt_from_dup".
1096
1097 2016-05-17 Jiong Wang <jiong.wang@arm.com>
1098
1099 * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_to_128df): Rename
1100 to *aarch64_fma4_elt_from_dup<mode>.
1101 (*aarch64_fnma4_elt_to_128df): Rename to
1102 *aarch64_fnma4_elt_from_dup<mode>.
1103 * config/aarch64/arm_neon.h (vfma_n_f64): New.
1104 (vfms_n_f32): Likewise.
1105 (vfms_n_f64): Likewise.
1106 (vfmsq_n_f32): Likewise.
1107 (vfmsq_n_f64): Likewise.
1108
1109 2016-05-17 Gerald Pfeifer <gerald@pfeifer.com>
1110
1111 * wide-int.h: Change fixed_wide_int_storage from class to struct.
1112
1113 2016-05-17 Richard Biener <rguenther@suse.de>
1114
1115 PR tree-optimization/71132
1116 * tree-loop-distribution.c (create_rdg_cd_edges): Pass in loop.
1117 Only add control dependences for blocks in the loop.
1118 (build_rdg): Adjust.
1119 (generate_code_for_partition): Return whether loop should
1120 be destroyed and delay that.
1121 (distribute_loop): Likewise.
1122 (pass_loop_distribution::execute): Record loops to be destroyed
1123 and perform delayed destroying of loops.
1124
1125 2016-05-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1126
1127 PR target/70809
1128 * config/aarch64/aarch64-simd.md (aarch64_vmls<mode>): Delete.
1129
1130 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
1131
1132 * config/aarch64/aarch64-elf.h (ASM_OUTPUT_DEF): Delete.
1133
1134 2016-05-17 Ilya Enkovich <ilya.enkovich@intel.com>
1135
1136 PR target/71114
1137 * config/i386/i386.c (dimode_scalar_chain::convert_op): Fix
1138 insertion point for instructions generated by validize_mem.
1139
1140 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
1141
1142 * config/aarch64/aarch64.c (SHIFT_COUNT_TRUNCATED): Wrap definition
1143 in brackets.
1144
1145 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
1146
1147 * config/aarch64/aarch64.c
1148 (aarch64_output_simd_mov_immediate): Make "buf_size" a variable
1149 rather than a macro.
1150
1151 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
1152
1153 * doc/invoke.texi (AArch64 Options): Various updates.
1154
1155 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
1156
1157 * ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig
1158 into instrumentation thunks.
1159 * cif-code.def (CIF_CHKP): New.
1160
1161 2016-05-16 Uros Bizjak <ubizjak@gmail.com>
1162
1163 * config/i386/xopintrin.h: Correct "unsinged" typo in the comments.
1164
1165 2016-05-16 Martin Jambor <mjambor@suse.cz>
1166
1167 * hsa-gen.c (fillup_for_decl): Increase alignment to natural one.
1168 (get_symbol_for_decl): Sorry if a global symbol in under-aligned.
1169
1170 2016-05-16 Marek Polacek <polacek@redhat.com>
1171
1172 * gimple.c (maybe_remove_unused_call_args): Fix typos in the
1173 commentary.
1174
1175 2016-05-16 Martin Jambor <mjambor@suse.cz>
1176
1177 PR hsa/70857
1178 * omp-low.c (grid_expand_target_grid_body): Copy RESULT_DECL of
1179 the outlined kernel function.
1180
1181 2016-05-16 Robert Suchanek <robert.suchanek@imgtec.com>
1182
1183 * config/mips/mips.h (ISA_HAS_LSA): Enable for -mmsa.
1184 (ISA_HAS_DLSA): Ditto.
1185
1186 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com>
1187
1188 * config/mips/m5100.md (m51_int_load): Update the latency to 2.
1189
1190 2016-05-16 Nathan Sidwell <nathan@acm.org>
1191
1192 * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): Revert.
1193 (nvptx_name_replacement): Restore. Add comment.
1194 (write_fn_proto, write_fn_proto_from_insn,
1195 nvptx_output_call_insn): Restore
1196 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Delete.
1197
1198 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
1199
1200 * config/aarch64/aarch64.md
1201 (add<mode>3_compareC_cconly_imm): Remove use of %w.
1202 (add<mode>3_compareC_imm): Likewise.
1203 (<optab>si3_uxtw): Split into register and immediate variants.
1204 (andsi3_compare0_uxtw): Likewise.
1205 (and<mode>3_compare0): Likewise.
1206 (and<mode>3nr_compare0): Likewise.
1207 (stack_protect_test_<mode>): Don't use %x for memory operands.
1208
1209 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com>
1210
1211 * config/mips/mips-cpus.def (p5600): Add multi-line brackets.
1212
1213 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
1214
1215 * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
1216 Split integer shifts into shift_reg and bfm.
1217 (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
1218 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
1219 (ror<mode>3_insn): Likewise.
1220 (<optab>si3_insn_uxtw): Likewise.
1221 (<optab><mode>3_insn): Change to rotate_imm.
1222 (extr<mode>5_insn_alt): Likewise.
1223 (extrsi5_insn_uxtw): Likewise.
1224 (extrsi5_insn_uxtw_alt): Likewise.
1225
1226 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
1227
1228 * doc/tm.texi: Regenerate.
1229 * doc/tm.texi.in (TARGET_INVALID_PARAMETER_TYPE): Remove.
1230 (TARGET_INVALID_RETURN_TYPE): Remove.
1231 * system.h: Poison TARGET_INVALID_PARAMETER_TYPE and
1232 TARGET_INVALID_RETURN_TYPE.
1233 * target.def (invalid_parameter_type): Remove.
1234 (invalid_return_type): Remove.
1235
1236 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
1237
1238 * ipa-inline-analysis.c (compute_inline_parameters): Be more reailistic
1239 on estimating thunk bodies; do not set inline_failed to CIF_THUNK for
1240 calls from thunk.
1241 * ipa-inline-transform.c (inline_call): When inlining into thunk produce
1242 gimple body.
1243 (preserve_function_body_p): No need to preserve function body
1244 * cif-codes.def (CIF_THUNK): Remove.
1245 * cgraphclones.c (duplicate_thunk_for_node): Thunks calls are inlinable.
1246
1247 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
1248
1249 * tree-inline.c (expand_call_inline): recurse after inlining thunk.
1250
1251 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
1252
1253 * tree.c (free_lang_data_in_decl): Also set target/optimization flags
1254 for thunks.
1255
1256 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
1257
1258 * ipa-inline.c (report_inline_failed_reason): Look into thunks, too
1259 (inline_small_functions): Do not look for function symbol when
1260 resetting caches.
1261
1262 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
1263
1264 * lto-cgraph.c (compute_ltrans_boundary, output_symtab): Fix handling
1265 of inline thunks
1266
1267 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
1268 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1269 Jiong Wang <jiong.wang@arm.com>
1270
1271 * config/arm/arm-c.c (arm_cpu_builtins): Use def_or_undef_macro
1272 for __ARM_FP16_FORMAT_IEEE and __ARM_FP16_FORMAT_ALTERNATIVE.
1273 Define __ARM_FP16_ARGS when appropriate.
1274 * config/arm/arm.c (arm_invalid_parameter_type): Remove
1275 declaration.
1276 (arm_invalid_return_type): Likewise.
1277 (TARGET_INVALID_PARAMETER_TYPE): Remove.
1278 (TARGET_INVALID_RETURN_TYPE): Remove.
1279 (aapcs_vfp_sub_candidate): Allow HFmode.
1280 (aapcs_vfp_allocate): Add comment. Support HFmode.
1281 (aapcs_vfp_allocate_return_reg): Likewise.
1282 (struct aapcs_cp_arg_layout): Slightly reword comments for
1283 is_return_candidate and allocate_return_reg.
1284 (output_mov_vfp): Update assert.
1285 (arm_hard_regno_mode_ok): Remove comment, update HF-mode
1286 condition.
1287 (arm_invalid_parameter_type): Remove.
1288 (amr_invalid_return_type): Remove.
1289 * config/arm/arm.h (TARGET_NEON_FP16): Fix definition.
1290 * config/arm/arm.md (*arm32_movhf): Disable for TARGET_VFP.
1291 * config/arm/vfp.md (*movhf_vfp): Enable for TARGET_VFP.
1292
1293 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
1294
1295 * config/aarch64/aarch64.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
1296 * config/aarch64/arch64-protos.h
1297 (aarch64_legitimize_reload_address): Remove.
1298 * config/aarch64/aarch64.c (aarch64_legitimize_reload_address):
1299 Remove.
1300
1301 2016-05-16 Eric Botcazou <ebotcazou@adacore.com>
1302
1303 * configure.ac: Add ACX_NONCANONICAL_HOST.
1304 * configure: Regenerate.
1305 * Makefile.in: Set host_noncanonical.
1306
1307 2016-05-14 Uros Bizjak <ubizjak@gmail.com>
1308
1309 PR target/71097
1310 * config/i386/i386.md (*movtf_internal): Before register allocation,
1311 do not allow FP constants for CM_MEDIUM memory model, allow only
1312 standard FP constants for CM_LARGE and CM_LARGE_PIC models.
1313 (*movxf_internal): Ditto.
1314 (*movdf_internal): Ditto.
1315 (*movsf_internal): Ditto.
1316
1317 2016-05-13 Segher Boessenkool <segher@kernel.crashing.org>
1318
1319 PR rtl-optimization/67483
1320 * combine.c (make_compound_operation): Don't call extract_left_shift
1321 with negative shift amounts.
1322
1323 2016-05-13 Jakub Jelinek <jakub@redhat.com>
1324
1325 PR bootstrap/71071
1326 * fold-const.c (fold_checksum_tree): Allow modification
1327 of TYPE_ALIAS_SET during folding.
1328
1329 * config/i386/i386.c (ix86_compute_frame_layout, ix86_expand_prologue,
1330 ix86_expand_split_stack_prologue): Use HOST_WIDE_INT_C macro.
1331 (ix86_split_to_parts): Likewise. Fix up formatting.
1332
1333 2016-05-13 H.J. Lu <hongjiu.lu@intel.com>
1334
1335 * tree-ssa-loop-ivopts.c (create_new_ivs): Cast to
1336 unsigned HOST_WIDE_INT with HOST_WIDE_INT_PRINT_UNSIGNED in
1337 printf format.
1338
1339 2016-05-13 Nathan Sidwell <nathan@acm.org>
1340
1341 * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): New.
1342 (nvptx_name_replacement): Delete.
1343 (write_fn_proto, write_fn_proto_from_insn,
1344 nvptx_output_call_insn): Remove nvptx_name_replacement call.
1345 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Override.
1346 * langhooks.c (add_builtin_funcction_common): Call
1347 targetm.mangle_decl_assembler_name.
1348
1349 * config/nvptx/nvptx.c (write_fn_proto): Handle
1350 BUILT_IN_ATOMIC_COMPARE_EXCHANGE_n oddity.
1351
1352 2016-05-13 Martin Liska <mliska@suse.cz>
1353
1354 * tree-ssa-loop-ivopts.c (create_new_ivs): Use HOST_WIDE_INT_PRINT_DEC
1355 and PRIu64 in printf format.
1356
1357 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1358
1359 * tree-ssa-loop-ivanon.c (try_unroll_loop_completely): Typo fix in
1360 comment.
1361
1362 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1363
1364 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
1365 Change --param max-completely-peeled-times to
1366 --param max-completely-peel-times in dump file printing.
1367
1368 2016-05-13 Richard Biener <rguenther@suse.de>
1369
1370 PR tree-optimization/42587
1371 * tree-ssa-math-opts.c (perform_symbolic_merge): Handle BIT_FIELD_REF.
1372 (find_bswap_or_nop_1): Likewise.
1373 (bswap_replace): Likewise.
1374
1375 2016-05-13 Martin Liska <mliska@suse.cz>
1376
1377 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
1378 Initialize a variable with default value.
1379
1380 2016-05-13 Martin Liska <mliska@suse.cz>
1381
1382 * doc/invoke.texi: Enhance explanation of error recovery
1383 of sanitizers.
1384
1385 2016-05-13 Martin Liska <mliska@suse.cz>
1386
1387 * tree-ssa-loop-ivopts.c (avg_loop_niter): Fix coding style.
1388 (struct cost_pair): Change inv_expr_id (int) to inv_expr
1389 (iv_inv_expr_ent *).
1390 (struct iv_inv_expr_ent): Comment struct fields.
1391 (sort_iv_inv_expr_ent): New function.
1392 (struct ivopts_data): Rename inv_expr_id to max_inv_expr_id.
1393 (struct iv_ca): Replace used_inv_expr and num_used_inv_expr with
1394 a hash_map between iv_inv_expr_ent and number of usages.
1395 (niter_for_exit): Fix coding style.
1396 (tree_ssa_iv_optimize_init): Use renamed variable.
1397 (determine_base_object): Fix coding style.
1398 (alloc_iv): Likewise.
1399 (find_interesting_uses_outside): Likewise.
1400 (add_candidate_1): Likewise.
1401 (add_standard_iv_candidates): Likewise.
1402 (set_group_iv_cost): Replace inv_expr_id with inv_expr.
1403 (prepare_decl_rtl): Fix coding style.
1404 (get_address_cost): Likewise.
1405 (get_shiftadd_cost): Likewise.
1406 (force_expr_to_var_cost): Likewise.
1407 (compare_aff_trees): Likewise.
1408 (get_expr_id): Restructure the function.
1409 (get_loop_invariant_expr_id): Renamed to
1410 get_loop_invariant_expr.
1411 (get_computation_cost_at): Replace usage of inv_expr_id with
1412 inv_expr.
1413 (get_computation_cost): Likewise.
1414 (determine_group_iv_cost_generic): Likewise.
1415 (determine_group_iv_cost_address): Likewise.
1416 (iv_period): Fix coding style.
1417 (iv_elimination_compare_lt): Likewise.
1418 (may_eliminate_iv): Likewise.
1419 (determine_group_iv_cost_cond): Replace usage of inv_expr_id with
1420 inv_expr.
1421 (determine_group_iv_costs): Dump invariant expressions.
1422 (iv_ca_recount_cost): Use the newly added hash_map.
1423 (iv_ca_set_remove_invariants): Fix coding style.
1424 (iv_ca_set_add_invariants): Fix coding style.
1425 (iv_ca_set_no_cp): Utilize the newly added hash_map for used
1426 invariants.
1427 (iv_ca_set_cp): Likewise.
1428 (iv_ca_new): Initialize the newly added hash_map and remove
1429 initialization of fields.
1430 (iv_ca_free): Delete the hash_map.
1431 (iv_ca_dump): Dump invariant expressions.
1432 (iv_ca_extend): Fix coding style.
1433 (try_add_cand_for): Likewise.
1434 (create_new_ivs): Dump information about # of avg iterations and
1435 # of used invariant expressions.
1436 (rewrite_use_compare): Fix coding style.
1437 (free_loop_data): Set default value for max_inv_expr_id.
1438
1439 2016-05-13 Ilya Enkovich <ilya.enkovich@intel.com>
1440
1441 * cse.c (rest_of_handle_cse): Use cleanup_cfg
1442 returned value cse_cfg_altered computation.
1443 (rest_of_handle_cse2): Likewise.
1444 (rest_of_handle_cse_after_global_opts): Likewise.
1445
1446 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1447
1448 PR target/53440
1449 * config/arm/arm.c (arm32_output_mi_thunk): New.
1450 (arm_output_mi_thunk): Rename to arm_thumb1_mi_thunk. Rework
1451 to split Thumb1 vs TARGET_32BIT functionality.
1452 (arm_thumb1_mi_thunk): New.
1453
1454 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1455
1456 * config/aarch64/aarch64.c (TARGET_OMIT_STRUCT_RETURN_REG): Set
1457 to true.
1458
1459 2016-05-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1460
1461 PR target/71080
1462 * config/i386/i386.c (ix86_in_large_data_p): Guard against NULL exp.
1463
1464 2016-05-13 Eric Botcazou <ebotcazou@adacore.com>
1465
1466 * builtins.c (expand_builtin_memcmp): Do not emit the call here.
1467 (expand_builtin_trap): Emit a regular call.
1468 (set_builtin_user_assembler_name): Remove obsolete cases.
1469 * dse.c (scan_insn): Adjust.
1470 * except.c: Include calls.h.
1471 (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is defined,
1472 emit a regular call to setjmp.
1473 * expr.c (emit_block_move_hints): Call emit_block_copy_via_libcall.
1474 (block_move_libcall_safe_for_call_parm): Use memcpy builtin.
1475 (emit_block_move_via_libcall): Delete.
1476 (block_move_fn): Delete.
1477 (init_block_move_fn): Likewise.
1478 (emit_block_move_libcall_fn): Likewise.
1479 (emit_block_op_via_libcall): New function.
1480 (set_storage_via_libcall): Tidy up and use memset builtin.
1481 (block_clear_fn): Delete.
1482 (init_block_clear_fn): Likewise.
1483 (clear_storage_libcall_fn): Likewise.
1484 (expand_assignment): Call emit_block_move_via_libcall.
1485 Do not include gt-expr.h.
1486 * expr.h (emit_block_op_via_libcall): Declare.
1487 (emit_block_copy_via_libcall): New inline function.
1488 (emit_block_move_via_libcall): Likewise.
1489 (emit_block_comp_via_libcall): Likewise.
1490 (block_clear_fn): Delete.
1491 (init_block_move_fn): Likewise.
1492 (init_block_clear_fn): Likewise.
1493 (emit_block_move_via_libcall): Likewise.
1494 (set_storage_via_libcall): Add default parameter value.
1495 * libfuncs.h (enum libfunc_index): Remove obsolete values.
1496 (abort_libfunc): Delete.
1497 (memcpy_libfunc): Likewise.
1498 (memmove_libfunc): Likewise.
1499 (memcmp_libfunc): Likewise.
1500 (memset_libfunc): Likewise.
1501 (setbits_libfunc): Likewise.
1502 (setjmp_libfunc): Likewise.
1503 (longjmp_libfunc): Likewise.
1504 (profile_function_entry_libfunc): Likewise.
1505 (profile_function_exit_libfunc): Likewise.
1506 (gcov_flush_libfunc): Likewise.
1507 * optabs-libfuncs.c (build_libfunc_function): Set DECL_ARTIFICIAL
1508 and DECL_VISIBILITY on the declaration.
1509 (init_optabs): Do not initialize obsolete libfuncs.
1510 * optabs.c (prepare_cmp_insn): Call emit_block_comp_via_libcall.
1511 * tree-core.h (ECF_RET1): Define.
1512 (ECF_TM_PURE): Adjust.
1513 (ECF_TM_BUILTIN): Likewise.
1514 * tree.c (set_call_expr_flags): Deal with ECF_RET1.
1515 (build_common_builtin_nodes): Initialize abort builtin.
1516 Add ECF_RET1 on memcpy, memmove and memset builtins.
1517 Pass final flags for alloca and alloca_with_align builtins.
1518 * config/alpha/alpha.c (alpha_init_libfuncs): Do not initialize
1519 obsolete builtins.
1520 * config/ia64/ia64.c (ia64_vms_init_libfuncs): Likewise.
1521 * config/i386/i386.c (ix86_expand_set_or_movmem): Adjust call to
1522 set_storage_via_libcall and call emit_block_copy_via_libcall.
1523
1524 2016-05-12 Uros Bizjak <ubizjak@gmail.com>
1525
1526 * config/i386/i386.md (*call_got_x32): Change operand 0 to
1527 DImode before it is passed to ix86_output_call_operand.
1528 (*call_value_got_x32): Ditto for operand 1.
1529
1530 2016-05-12 Jiong Wang <jiong.wang@arm.com>
1531
1532 PR rtl-optimization/70904
1533 * lra-constraint.c (process_addr_reg): Relax the restriction on subreg
1534 reload for wide mode.
1535
1536 2016-05-12 Marek Polacek <polacek@redhat.com>
1537
1538 PR c/70756
1539 * langhooks-def.h (lhd_incomplete_type_error): Adjust declaration.
1540 * langhooks.c (lhd_incomplete_type_error): Add location parameter.
1541 * langhooks.h (incomplete_type_error): Likewise.
1542 * tree.c (size_in_bytes_loc): Renamed from size_in_bytes. Add location
1543 parameter, pass it down to incomplete_type_error.
1544 * tree.h (size_in_bytes): New inline overload.
1545 (size_in_bytes_loc): Renamed from size_in_bytes.
1546
1547 2016-05-12 Richard Biener <rguenther@suse.de>
1548
1549 PR tree-optimization/71059
1550 * tree-ssa-pre.c (phi_translate_1): Fully fold translated
1551 nary before looking up or entering the expression into the VN
1552 hashes.
1553 * tree-ssa-sccvn.c (vn_nary_build_or_lookup): Fix comment typo.
1554 Make sure to re-use NARYs without result as inserted by
1555 phi-translation.
1556
1557 2016-05-12 Richard Biener <rguenther@suse.de>
1558
1559 PR tree-optimization/71062
1560 * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
1561 field.
1562 * tree-ssa-structalias.c (set_uids_in_ptset): Set
1563 vars_contains_restrict if the var is a restrict tag.
1564 * tree-ssa-alias.c (ptrs_compare_unequal): If vars_contains_restrict
1565 do not disambiguate pointers against it.
1566 (dump_points_to_solution): Re-structure and adjust for new
1567 vars_contains_restrict flag.
1568 * gimple-pretty-print.c (pp_points_to_solution): Likewise.
1569
1570 2016-05-12 Martin Liska <mliska@suse.cz>
1571
1572 * doc/invoke.texi: Explain connection between
1573 -fsanitize-recover=address and ASAN_OPTIONS="halt_on_error=1".
1574
1575 2016-05-12 Ilya Enkovich <ilya.enkovich@intel.com>
1576
1577 PR tree-optimization/71006
1578 * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
1579 consider COND_EXPR as a mask producer.
1580
1581 2016-05-12 Marek Polacek <polacek@redhat.com>
1582
1583 PR driver/71063
1584 * opts.c (common_handle_option): Detect missing argument for --help^.
1585
1586 2016-05-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1587
1588 PR target/70830
1589 * config/arm/arm.c (arm_output_multireg_pop): Avoid POP instruction
1590 when popping the PC and within an interrupt handler routine.
1591 Add missing tab to output of "ldmfd".
1592 (output_return_instruction): Output LDMFD with SP update rather
1593 than POP when returning from interrupt handler.
1594
1595 2016-05-12 Jakub Jelinek <jakub@redhat.com>
1596
1597 * config/i386/i386.md (isa): Add x64_avx512dq, enable if
1598 TARGET_64BIT && TARGET_AVX512DQ.
1599 * config/i386/sse.md (*vec_extract<mode>): Add avx512bw alternatives.
1600 (*vec_extract<PEXTR_MODE12:mode>_zext): Add avx512bw alternative.
1601 (*vec_extract<ssevecmodelower>_0, *vec_extractv4si_0_zext,
1602 *vec_extractv2di_0_sse): Use v constraint instead of x constraint.
1603 (*vec_extractv4si): Add avx512dq and avx512bw alternatives.
1604 (*vec_extractv4si_zext): Add avx512dq alternative.
1605 (*vec_extractv2di_1): Add x64_avx512dq and avx512bw alternatives,
1606 use v instead of x constraint in other alternatives where possible.
1607
1608 * config/i386/sse.md (sse2_loadld): Use v instead of x
1609 constraint in alternatives 0,1,4.
1610
1611 * config/i386/sse.md (pinsr_evex_isa): New mode attr.
1612 (<sse2p4_1>_pinsr<ssemodesuffix>): Add 2 alternatives with
1613 v constraints instead of x and <pinsr_evex_isa> isa attribute.
1614
1615 PR target/71019
1616 * config/i386/sse.md (<sse2_avx2>_packssdw<mask_name>,
1617 <sse4_1_avx2>_packusdw<mask_name>): Make sure EVEX encoded insn
1618 is not emitted unless TARGET_AVX512BW.
1619 (<sse2_avx2>_packuswb<mask_name>, <sse2_avx2>_packsswb<mask_name>):
1620 Likewise. For TARGET_AVX512BW, use "=v" constraint instead of "=x"
1621 for the result operand.
1622
1623 * config/i386/sse.md (*vec_setv4sf_sse4_1, sse4_1_insertps): Use v
1624 constraint instead of x in avx alternatives. Use maybe_evex instead
1625 of vex prefix.
1626
1627 * config/i386/constraints.md (Yv): New constraint.
1628 * config/i386/i386.h (VALID_AVX512VL_128_REG_MODE): Allow
1629 TFmode and V1TImode in xmm16+ registers for TARGET_AVX512VL.
1630 * config/i386/i386.md (avx512fvecmode): New mode attr.
1631 (*pushtf): Use v constraint instead of x.
1632 (*movtf_internal): Likewise. For TARGET_AVX512VL and
1633 xmm16+ registers, use vmovdqu64 or vmovdqa64 instructions.
1634 (*absneg<mode>2): Use Yv constraint instead of x constraint.
1635 (*absnegtf2_sse): Likewise.
1636 (copysign<mode>3_const, copysign<mode>3_var): Likewise.
1637 * config/i386/sse.md (*andnot<mode>3): Add avx512vl and
1638 avx512f alternatives.
1639 (*andnottf3, *<code><mode>3, *<code>tf3): Likewise.
1640
1641 2016-05-12 Richard Biener <rguenther@suse.de>
1642
1643 PR tree-optimization/71060
1644 * tree-data-ref.c (initialize_data_dependence_relation): Do not
1645 require exact match of DR_BASE_OBJECT but only matching address and
1646 type.
1647
1648 2016-05-12 Richard Biener <rguenther@suse.de>
1649
1650 PR tree-optimization/70986
1651 * cfganal.c: Include cfgloop.h.
1652 (dfs_find_deadend): Prefer to take edges exiting loops.
1653
1654 2016-05-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1655
1656 * gcc.target/powerpc/pr70963.c: Require at least power8 at both
1657 compile and run time.
1658
1659 2016-05-11 Mikhail Maltsev <maltsevm@gmail.com>
1660
1661 PR c/43651
1662 * doc/invoke.texi (Wduplicate-decl-specifier): Document new option.
1663
1664 2016-05-11 Uros Bizjak <ubizjak@gmail.com>
1665
1666 * config/i386/i386.c (legitimize_pic_address): Use
1667 copy_to_suggested_reg instead of gen_movsi.
1668
1669 2016-05-11 Michael Meissner <meissner@linux.vnet.ibm.com>
1670
1671 * config/rs6000/predicates.md (quad_memory_operand): Move most of
1672 the code into quad_address_p and call it to share code with
1673 vsx_quad_dform_memory_operand.
1674 (vsx_quad_dform_memory_operand): New predicate for ISA 3.0 vector
1675 d-form support.
1676 * config/rs6000/rs6000.opt (-mlra): Switch to being an option mask
1677 bit instead of being a separate word. Split -mpower9-dform into
1678 two switches, -mpower9-dform-scalar and -mpower9-dform-vector.
1679 * config/rs6000/rs6000.c (RELOAD_REG_QUAD_OFFSET): New addr_mask
1680 for the register class supporting 128-bit quad word memory offsets.
1681 (mode_supports_vsx_dform_quad): Helper function to return if the
1682 register class uses quad word memory offsets.
1683 (rs6000_debug_addr_mask): Add support for quad word memory offsets.
1684 (rs6000_debug_reg_global): Always print if we are using LRA or not.
1685 (rs6000_setup_reg_addr_masks): If ISA 3.0 vector d-form
1686 instructions are enabled, set up the appropriate addr_masks for
1687 128-bit types.
1688 (rs6000_init_hard_regno_mode_ok): wb constraint is now based on
1689 -mpower9-dform-scalar, instead of -mpower9-dform.
1690 (rs6000_option_override_internal): Split -mpower9-dform into two
1691 switches, -mpower9-dform-scalar and -mpower9-dform-vector. The
1692 -mpower9-dform switch sets or clears both. If we are not using
1693 the LRA register allocator, do not enable -mpower9-dform-vector by
1694 default. If we are using LRA, enable -mpower9-dform-vector and
1695 -mvsx-timode if it is appropriate. Issue a warning if either
1696 -mpower9-dform-vector or -mvsx-timode are explicitly used without
1697 enabling LRA.
1698 (quad_address_offset_p): New helper function to return if the
1699 offset is legal for quad word memory instructions.
1700 (quad_address_p): New function to determin if GPR or vector
1701 register quad word memory addresses are legal.
1702 (mem_operand_gpr): Validate quad word address offsets.
1703 (reg_offset_addressing_ok_p): Add support for ISA 3.0 vector
1704 d-form (register + offset) instructions.
1705 (offsettable_ok_by_alignment): Likewise.
1706 (rs6000_legitimate_offset_address_p): Likewise.
1707 (legitimate_lo_sum_address_p): Likewise.
1708 (rs6000_legitimize_address): Likewise.
1709 (rs6000_legitimize_reload_address): Add more debug statements for
1710 -mdebug=addr.
1711 (rs6000_legitimate_address_p): Add support for ISA 3.0 vector
1712 d-form instructions.
1713 (rs6000_secondary_reload_memory): Add support for ISA 3.0 vector
1714 d-form instructions. Distinguish different cases in debug
1715 output. (rs6000_secondary_reload_inner): Add support for ISA 3.0 vector
1716 d-form instructions.
1717 (rs6000_preferred_reload_class): Likewise.
1718 (rs6000_output_move_128bit): Add support for ISA 3.0 d-form
1719 instructions. If ISA 3.0 is available, generate lxvx/stxvx instead
1720 of the ISA 2.06 indexed memory instructions.
1721 (rs6000_emit_prologue): If we have ISA 3.0 d-form instructions,
1722 use them to save/restore the saved vector registers instead of
1723 using Altivec instructions.
1724 (rs6000_emit_epilogue): Likewise.
1725 (rs6000_lra_p): Use TARGET_LRA instead of the old option word.
1726 (rs6000_opt_masks): Split -mpower9-dform into
1727 -mpower9-dform-scalar and -mpower9-dform-vector.
1728 (rs6000_print_options_internal): Print -mno-<switch> if <switch>
1729 was not selected.
1730 * config/rs6000/vsx.md (p9_vecload_<mode>): Delete hack to emit
1731 ISA 3.0 vector indexed memory instructions, and fold the code into
1732 the normal mov<mode> patterns.
1733 (p9_vecstore_<mode>): Likewise.
1734 (vsx_mov<mode>): Add support for ISA 3.0 vector d-form
1735 instructions.
1736 (vsx_movti_64bit): Likewise.
1737 (vsx_movti_32bit): Likewise.
1738 * config/rs6000/constraints.md (wO constraint): New constraint for
1739 ISA 3.0 vector d-form support.
1740 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Use
1741 -mpower9-dform-scalar instead of -mpower9-dform. Add note not to
1742 include -mpower9-dform-vector until we switch over to LRA.
1743 (POWERPC_MASKS): Add -mlra. Split -mpower9-dform into two.
1744 switches, -mpower9-dform-scalar and -mpower9-dform-vector.
1745 * config/rs6000/rs6000-protos.h (quad_address_p): Add declaration.
1746 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
1747 for -mpower9-dform and -mlra.
1748 * doc/md.texi (wO constraint): Document wO constraint.
1749
1750 2016-05-11 Alexander Monakov <amonakov@ispras.ru>
1751
1752 * genattr.c (main): Change 'rtx' to 'rtx_insn *' in prototypes of
1753 'insn_latency', 'maximal_insn_latency', 'min_insn_conflict_delay'.
1754 * genautomata.c (output_internal_insn_code_evaluation): Simplify.
1755 Move handling of non-insn arguments inline into the sole user:
1756 (output_trans_func): ...here.
1757 (output_min_insn_conflict_delay_func): Change 'rtx' to 'rtx_insn *'
1758 in emitted function prototype.
1759 (output_internal_insn_latency_func): Ditto. Simplify.
1760 (output_internal_maximal_insn_latency_func): Ditto. Delete
1761 always-unused argument.
1762 (output_insn_latency_func): Ditto.
1763 (output_maximal_insn_latency_func): Ditto.
1764
1765 2016-05-11 Richard Biener <rguenther@suse.de>
1766
1767 PR tree-optimization/71055
1768 * tree-ssa-sccvn.c (vn_reference_lookup_3): When native-interpreting
1769 sth with precision not equal to access size verify we don't chop
1770 off bits.
1771
1772 2016-05-11 Richard Biener <rguenther@suse.de>
1773
1774 PR debug/71057
1775 * dwarf2out.c (retry_incomplete_types): Set early_dwarf.
1776 (dwarf2out_finish): Move retry_incomplete_types call ...
1777 (dwarf2out_early_finish): ... here.
1778
1779 2016-05-11 Richard Biener <rguenther@suse.de>
1780
1781 PR middle-end/71002
1782 * alias.c (reference_alias_ptr_type): Preserve alias-set zero
1783 if the langhook insists on it.
1784 * fold-const.c (make_bit_field_ref): Add arg for the original
1785 reference and preserve its alias-set.
1786 (decode_field_reference): Take exp by reference and adjust it
1787 to the original memory reference.
1788 (optimize_bit_field_compare): Adjust callers.
1789 (fold_truth_andor_1): Likewise.
1790 * gimplify.c (gimplify_expr): Adjust in-SSA form test.
1791
1792 2016-05-11 Ilya Enkovich <ilya.enkovich@intel.com>
1793
1794 PR middle-end/70807
1795 * cfgrtl.h (delete_insn_and_edges): Now return bool.
1796 * cfgrtl.c (delete_insn_and_edges): Likewise.
1797 * config/i386/i386.c (convert_scalars_to_vector): Remove
1798 redundant code.
1799 * cse.c (cse_insn): Compute cse_cfg_altered.
1800 (delete_trivially_dead_insns): Likewise.
1801 (cse_cc_succs): Likewise.
1802 (rest_of_handle_cse): Free dominance info if required.
1803 (rest_of_handle_cse2): Likewise.
1804 (rest_of_handle_cse_after_global_opts): Likewise.
1805
1806 2016-05-11 Alan Modra <amodra@gmail.com>
1807
1808 * config/rs6000/rs6000.c (is_complex_IBM_long_double,
1809 abi_v4_pass_in_fpr): New functions.
1810 (rs6000_function_arg_boundary): Exclude complex IBM long double
1811 from 64-bit alignment when ABI_V4.
1812 (rs6000_function_arg, rs6000_function_arg_advance_1,
1813 rs6000_gimplify_va_arg): Use abi_v4_pass_in_fpr.
1814
1815 2016-05-10 Segher Boessenkool <segher@kernel.crashing.org>
1816
1817 PR rtl-optimization/71028
1818 * cfgcleanup.c (try_optimize_cfg): Do not flip a conditional
1819 jump with just a return in the fallthrough block if the branch
1820 block contains just a return as well.
1821
1822 2016-05-10 Marc Glisse <marc.glisse@inria.fr>
1823
1824 * fold-const.c (fold_binary_loc) [(X ^ Y) & Y]: Remove and merge with...
1825 * match.pd ((X & Y) ^ Y): ... this.
1826 ((X & Y) & Y, (X | Y) | Y, (X ^ Y) ^ Y, (X & Y) & (X & Z), (X | Y)
1827 | (X | Z), (X ^ Y) ^ (X ^ Z)): New transformations.
1828
1829 2016-05-10 David Malcolm <dmalcolm@redhat.com>
1830
1831 * read-md.c (require_char_ws): New function.
1832 (read_string): Simplify using require_char_ws.
1833 (handle_constants): Likewise.
1834 (handle_enum): Likewise.
1835 (handle_file): Likewise.
1836 * read-md.h (require_char_ws): New declaration.
1837 * read-rtl.c (read_conditions): Simplify using require_char_ws.
1838 (read_mapping): Likewise.
1839 (read_rtx_code): Likewise.
1840 (read_nested_rtx): Likewise.
1841
1842 2016-05-10 James Norris <jnorris@codesourcery.com>
1843
1844 * config/rs6000/sysv4.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o
1845 if offloading is enabled and -fopenacc or -fopenmp is specified.
1846 (CRTOFFLOADEND): Likewise.
1847 (STARTFILE_LINUX_SPEC): Add CRTOFFLOADBEGIN.
1848 (ENDFILE_LINUX_SPEC): Add CRTOFFLOADEND.
1849
1850 2016-05-10 Uros Bizjak <ubizjak@gmail.com>
1851
1852 * config/i386/i386.c (legitimize_pic_address): Merge 64-bit and 32-bit
1853 gotoff_operand code paths. Use copy_to_suggested_regs and
1854 expand_simple_binop where appropriate. Cleanup.
1855
1856 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
1857
1858 PR target/70799
1859 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Allow
1860 integer constants.
1861 (dimode_scalar_chain::vector_const_cost): New.
1862 (dimode_scalar_chain::compute_convert_gain): Handle constants.
1863 (dimode_scalar_chain::convert_op): Likewise.
1864 (dimode_scalar_chain::convert_insn): Likewise.
1865
1866 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com>
1867
1868 * dwarf2out.c (resolve_args_picking_1): Consider DW_OP_neg as an
1869 unary operation, not a binary one.
1870
1871 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
1872
1873 PR middle-end/70877
1874 * tree-chkp.c (chkp_add_bounds_to_call_stmt): Handle
1875 calls with type casted fndecl.
1876
1877 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
1878
1879 PR tree-optimization/70786
1880 * tree-chkp.c (chkp_find_bounds_1): Support WITH_SIZE_EXPR.
1881 * calls.c (initialize_argument_information): Bind bounds
1882 with corresponding args passed by reference.
1883
1884 2016-05-10 Jakub Jelinek <jakub@redhat.com>
1885
1886 PR target/70927
1887 * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>),
1888 *<code><mode>3<mask_name>): For !TARGET_AVX512DQ and EVEX encoding,
1889 use vp*[dq] instead of v*p[sd] instructions and adjust mode attribute
1890 accordingly.
1891
1892 2016-05-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1893
1894 PR target/70963
1895 * config/rs6000/vsx.md (vsx_xvcvdpsxds_scale): Generate correct
1896 code for a zero scale factor.
1897 (vsx_xvcvdpuxds_scale): Likewise.
1898
1899 2016-05-10 David Malcolm <dmalcolm@redhat.com>
1900
1901 * diagnostic-show-locus.c (layout::layout): Call show_ruler
1902 if show_ruler_p was set on the context.
1903 (layout::show_ruler): New method.
1904 * diagnostic.h (struct diagnostic_context): Add field
1905 "show_ruler_p".
1906
1907 2016-05-10 Richard Biener <rguenther@suse.de>
1908
1909 PR tree-optimization/71039
1910 * tree-ssa-phiprop.c: Include tree-ssa-loop.h.
1911 (chk_uses): New function.
1912 (propagate_with_phi): Verify we can safely replicate the lhs of an
1913 aggregate assignment on all incoming edges.
1914
1915 2016-05-10 Oleg Endo <olegendo@gcc.gnu.org>
1916
1917 * config/rx/rx-protos.h (is_interrupt_func, is_fast_interrupt_func):
1918 Forward declare.
1919 (rx_atomic_sequence): New class.
1920 * config/rx/rx.c (rx_print_operand): Use symbolic names for PSW bits.
1921 (is_interrupt_func, is_fast_interrupt_func): Make non-static and
1922 non-inline.
1923 (rx_atomic_sequence::rx_atomic_sequence,
1924 rx_atomic_sequence::~rx_atomic_sequence): New functions.
1925 * config/rx/rx.md (CTRLREG_PSW, CTRLREG_USP, CTRLREG_FPSW, CTRLREG_CPEN,
1926 CTRLREG_BPSW, CTRLREG_BPC, CTRLREG_ISP, CTRLREG_FINTV,
1927 CTRLREG_INTB): New constants.
1928 (FETCHOP): New code iterator.
1929 (fethcop_name, fetchop_name2): New iterator code attributes.
1930 (QIHI): New mode iterator.
1931 (atomic_exchange<mode>, atomic_exchangesi, xchg_mem<mode>,
1932 atomic_fetch_<fetchop_name>si, atomic_fetch_nandsi,
1933 atomic_<fetchop_name>_fetchsi, atomic_nand_fetchsi): New patterns.
1934
1935 2016-05-10 Martin Liska <mliska@suse.cz>
1936
1937 * tree-inline.c (remap_dependence_clique): Do not remap
1938 debugging statements.
1939
1940 2016-05-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1941
1942 * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly")
1943 ("*fixuns_truncdfdi2_z13")
1944 ("*fixuns_trunc<FP:mode><GPR:mode>2_z196")
1945 ("*fix_truncdfdi2_bfp_z13", "*floatunsdidf2_z13")
1946 ("*extendsfdf2_z13"): Replace TARGET_Z13 with TARGET_VX.
1947
1948 2016-05-10 Richard Biener <rguenther@suse.de>
1949
1950 PR tree-optimization/70497
1951 PR tree-optimization/28367
1952 * tree-ssa-sccvn.c (vn_nary_build_or_lookup): New function
1953 split out from ...
1954 (visit_reference_op_load): ... here.
1955 (vn_reference_lookup_3): Use it to handle subreg-like accesses
1956 with simplified BIT_FIELD_REFs.
1957 * tree-ssa-pre.c (eliminate_insert): Handle inserting BIT_FIELD_REFs.
1958 * tree-complex.c (extract_component): Handle BIT_FIELD_REFs
1959 correctly.
1960
1961 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com>
1962
1963 * dwarf2out.c (add_abstract_origin_attribute): Adjust
1964 documentation comment. For BLOCK nodes, add a
1965 DW_AT_abstract_origin attribute that points to the DIE generated
1966 for the origin BLOCK.
1967 (gen_lexical_block_die): Call add_abstract_origin_attribute for
1968 blocks from inlined functions.
1969
1970 2016-05-10 Alan Modra <amodra@gmail.com>
1971
1972 PR target/70947
1973 * config/rs6000/rs6000.c (rs6000_expand_split_stack_prologue): Stop
1974 regrename modifying insns saving lr before __morestack call.
1975 * config/rs6000/rs6000.md (split_stack_return): Similarly for
1976 insns restoring lr after __morestack call.
1977
1978 2016-05-09 Jakub Jelinek <jakub@redhat.com>
1979
1980 * config/i386/i386.md (set_got, set_got_labelled, lwp_llwpcb,
1981 lwp_lwpval<mode>3, lwp_lwpins<mode>3): Remove constraints from
1982 expanders.
1983 * config/i386/sse.md (vec_interleave_high<mode>,
1984 vec_interleave_low<mode>, <avx512>_vpermi2var<mode>3_maskz,
1985 <avx512>_vpermt2var<mode>3_maskz): Likewise.
1986
1987 2016-05-04 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
1988
1989 * config/rs6000/rs6000.c (rs6000_reassociation_width): Add
1990 function for TARGET_SCHED_REASSOCIATION_WIDTH to enable
1991 parallel reassociation for power8 and forward.
1992
1993 2016-05-09 Uros Bizjak <ubizjak@gmail.com>
1994
1995 * config/i386/i386.md (absneg splitters with general regs): Use
1996 general_reg_operand predicate.
1997 (btsq peephole2): Use x86_64_immediate_operand to check if new
1998 value is suitable for immediate operand. Generate emitted insn
1999 using RTL expressions.
2000 (btcq peephole2): Ditto.
2001 (btrq peephole2): Ditto. Generate correct immediate operand
2002 for AND masking.
2003
2004 2016-05-09 Richard Sandiford <richard.sandiford@arm.com>
2005
2006 * cfgexpand.c (expand_debug_expr): Fix address offset for negative
2007 bitpos.
2008
2009 2016-05-09 Richard Sandiford <richard.sandiford@arm.com>
2010
2011 * tree-affine.c (wide_int_constant_multiple_p): Add missing
2012 pointer dereference.
2013
2014 2016-05-09 Richard Biener <rguenther@suse.de>
2015
2016 PR tree-optimization/70985
2017 * match.pd (BIT_FIELD_REF -> (type)): Disable on GIMPLE when
2018 op0 isn't a gimple register.
2019
2020 2016-05-09 Prachi Godbole <prachi.godbole@imgtec.com>
2021
2022 * config/mips/i6400.md (i6400_fpu_intadd, i6400_fpu_logic)
2023 (i6400_fpu_div, i6400_fpu_cmp, i6400_fpu_float, i6400_fpu_store)
2024 (i6400_fpu_long_pipe, i6400_fpu_logic_l, i6400_fpu_float_l)
2025 (i6400_fpu_mult): New cpu units.
2026 (i6400_msa_add_d, i6400_msa_int_add, i6400_msa_short_logic3)
2027 (i6400_msa_short_logic2, i6400_msa_short_logic, i6400_msa_move)
2028 (i6400_msa_cmp, i6400_msa_short_float2, i6400_msa_div_d)
2029 (i6400_msa_div_w, i6400_msa_div_h, i6400_msa_div_b)
2030 (i6400_msa_copy, i6400_msa_branch, i6400_fpu_msa_store)
2031 (i6400_fpu_msa_load, i6400_fpu_msa_move, i6400_msa_long_logic1)
2032 (i6400_msa_long_logic2, i6400_msa_mult, i6400_msa_long_float2)
2033 (i6400_msa_long_float4, i6400_msa_long_float5)
2034 (i6400_msa_long_float8, i6400_msa_fdiv_df)
2035 (i6400_msa_fdiv_sf): New reservations.
2036 * config/mips/p5600.md (p5600_fpu_intadd, p5600_fpu_cmp)
2037 (p5600_fpu_float, p5600_fpu_logic_a, p5600_fpu_logic_b)
2038 (p5600_fpu_div, p5600_fpu_logic, p5600_fpu_float_a)
2039 (p5600_fpu_float_b, p5600_fpu_float_c, p5600_fpu_float_d)
2040 (p5600_fpu_mult, p5600_fpu_fdiv, p5600_fpu_load): New cpu units.
2041 (msa_short_int_add, msa_short_logic, msa_short_logic_move_v)
2042 (msa_short_cmp, msa_short_float2, msa_short_logic3)
2043 (msa_short_store4, msa_long_load, msa_short_store)
2044 (msa_long_logic, msa_long_float2, msa_long_float4)
2045 (msa_long_float5, msa_long_float8, msa_long_mult)
2046 (msa_long_fdiv, msa_long_div): New reservations.
2047
2048 2016-05-09 Robert Suchanek <robert.suchanek@imgtec.com>
2049 Sameera Deshpande <sameera.deshpande@imgtec.com>
2050 Matthew Fortune <matthew.fortune@imgtec.com>
2051 Graham Stott <graham.stott@imgtec.com>
2052 Chao-ying Fu <chao-ying.fu@imgtec.com>
2053
2054 * config.gcc: Add MSA header file for mips*-*-* target.
2055 * config/mips/constraints.md (YI, YC, YZ, Unv5, Uuv5, Usv5, Uuv6)
2056 (Ubv8i, Urv8): New constraints.
2057 * config/mips/mips-ftypes.def: Add function types for MSA
2058 builtins.
2059 * config/mips/mips-modes.def (V16QI, V8HI, V4SI, V2DI, V4SF)
2060 (V2DF, V32QI, V16HI, V8SI, V4DI, V8SF, V4DF): New modes.
2061 * config/mips/mips-msa.md: New file.
2062 * config/mips/mips-protos.h
2063 (mips_split_128bit_const_insns): New prototype.
2064 (mips_msa_idiv_insns): Likewise.
2065 (mips_split_128bit_move): Likewise.
2066 (mips_split_128bit_move_p): Likewise.
2067 (mips_split_msa_copy_d): Likewise.
2068 (mips_split_msa_insert_d): Likewise.
2069 (mips_split_msa_fill_d): Likewise.
2070 (mips_expand_msa_branch): Likewise.
2071 (mips_const_vector_same_val_p): Likewise.
2072 (mips_const_vector_same_bytes_p): Likewise.
2073 (mips_const_vector_same_int_p): Likewise.
2074 (mips_const_vector_shuffle_set_p): Likewise.
2075 (mips_const_vector_bitimm_set_p): Likewise.
2076 (mips_const_vector_bitimm_clr_p): Likewise.
2077 (mips_msa_vec_parallel_const_half): Likewise.
2078 (mips_msa_output_division): Likewise.
2079 (mips_ldst_scaled_shift): Likewise.
2080 (mips_expand_vec_cond_expr): Likewise.
2081 * config/mips/mips.c (enum mips_builtin_type): Add
2082 MIPS_BUILTIN_MSA_TEST_BRANCH.
2083 (mips_gen_const_int_vector_shuffle): New prototype.
2084 (mips_const_vector_bitimm_set_p): New function.
2085 (mips_const_vector_bitimm_clr_p): Likewise.
2086 (mips_const_vector_same_val_p): Likewise.
2087 (mips_const_vector_same_bytes_p): Likewise.
2088 (mips_const_vector_same_int_p): Likewise.
2089 (mips_const_vector_shuffle_set_p): Likewise.
2090 (mips_symbol_insns): Forbid loading symbols via immediate for
2091 MSA.
2092 (mips_valid_offset_p): Limit offset to 10-bit for MSA loads and
2093 stores.
2094 (mips_valid_lo_sum_p): Forbid loadings symbols via %lo(base) for
2095 MSA.
2096 (mips_lx_address_p): Add support load indexed address for MSA.
2097 (mips_address_insns): Add calculation of instructions needed for
2098 stores and loads for MSA.
2099 (mips_const_insns): Move CONST_DOUBLE below CONST_VECTOR. Handle
2100 CONST_VECTOR for MSA and let it fall through.
2101 (mips_ldst_scaled_shift): New function.
2102 (mips_subword_at_byte): Likewise.
2103 (mips_msa_idiv_insns): Likewise.
2104 (mips_legitimize_move): Validate MSA moves.
2105 (mips_rtx_costs): Add UNGE, UNGT, UNLE, UNLT cases. Add
2106 calculation of costs for MSA division.
2107 (mips_split_move_p): Check if MSA moves need splitting.
2108 (mips_split_move): Split MSA moves if necessary.
2109 (mips_split_128bit_move_p): New function.
2110 (mips_split_128bit_move): Likewise.
2111 (mips_split_msa_copy_d): Likewise.
2112 (mips_split_msa_insert_d): Likewise.
2113 (mips_split_msa_fill_d): Likewise.
2114 (mips_output_move): Handle MSA moves.
2115 (mips_expand_msa_branch): New function.
2116 (mips_print_operand): Add 'E', 'B', 'w', 'v' and 'V' modifiers.
2117 Reinstate 'y' modifier.
2118 (mips_file_start): Add MSA .gnu_attribute.
2119 (mips_hard_regno_mode_ok_p): Allow TImode and 128-bit vectors in
2120 FPRs.
2121 (mips_hard_regno_nregs): Always return 1 for MSA supported mode.
2122 (mips_class_max_nregs): Add register size for MSA supported mode.
2123 (mips_cannot_change_mode_class): Allow conversion between MSA
2124 vector modes and TImode.
2125 (mips_mode_ok_for_mov_fmt_p): Allow MSA to use move.v
2126 instruction.
2127 (mips_secondary_reload_class): Force MSA loads/stores via memory.
2128 (mips_preferred_simd_mode): Add preffered modes for MSA.
2129 (mips_vector_mode_supported_p): Add MSA supported modes.
2130 (mips_autovectorize_vector_sizes): New function.
2131 (mips_msa_output_division): Likewise.
2132 (MSA_BUILTIN, MIPS_BUILTIN_DIRECT_NO_TARGET)
2133 (MSA_NO_TARGET_BUILTIN, MSA_BUILTIN_TEST_BRANCH): New macros.
2134 (CODE_FOR_msa_adds_s_b, CODE_FOR_msa_adds_s_h)
2135 (CODE_FOR_msa_adds_s_w, CODE_FOR_msa_adds_s_d)
2136 (CODE_FOR_msa_adds_u_b, CODE_FOR_msa_adds_u_h)
2137 (CODE_FOR_msa_adds_u_w, CODE_FOR_msa_adds_u_du
2138 (CODE_FOR_msa_addv_b, CODE_FOR_msa_addv_h, CODE_FOR_msa_addv_w)
2139 (CODE_FOR_msa_addv_d, CODE_FOR_msa_and_v, CODE_FOR_msa_bmnz_v)
2140 (CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bmz_v, CODE_FOR_msa_bmzi_b)
2141 (CODE_FOR_msa_bnz_v, CODE_FOR_msa_bz_v, CODE_FOR_msa_bsel_v)
2142 (CODE_FOR_msa_bseli_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w)
2143 (CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b)
2144 (CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w)
2145 (CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clti_u_b)
2146 (CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w)
2147 (CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_s_b)
2148 (CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w)
2149 (CODE_FOR_msa_clei_s_d, CODE_FOR_msa_clei_u_b)
2150 (CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w)
2151 (CODE_FOR_msa_clei_u_d, CODE_FOR_msa_div_s_b)
2152 (CODE_FOR_msa_div_s_h, CODE_FOR_msa_div_s_w)
2153 (CODE_FOR_msa_div_s_d, CODE_FOR_msa_div_u_b)
2154 (CODE_FOR_msa_div_u_h, CODE_FOR_msa_div_u_w)
2155 (CODE_FOR_msa_div_u_d, CODE_FOR_msa_fadd_w, CODE_FOR_msa_fadd_d)
2156 (CODE_FOR_msa_fexdo_w, CODE_FOR_msa_ftrunc_s_w)
2157 (CODE_FOR_msa_ftrunc_s_d, CODE_FOR_msa_ftrunc_u_w)
2158 (CODE_FOR_msa_ftrunc_u_d, CODE_FOR_msa_ffint_s_w)
2159 (CODE_FOR_msa_ffint_s_d, CODE_FOR_msa_ffint_u_w)
2160 (CODE_FOR_msa_ffint_u_d, CODE_FOR_msa_fsub_w)
2161 (CODE_FOR_msa_fsub_d, CODE_FOR_msa_fmsub_d, CODE_FOR_msa_fmadd_w)
2162 (CODE_FOR_msa_fmadd_d, CODE_FOR_msa_fmsub_w, CODE_FOR_msa_fmul_w)
2163 (CODE_FOR_msa_fmul_d, CODE_FOR_msa_fdiv_w, CODE_FOR_msa_fdiv_d)
2164 (CODE_FOR_msa_fmax_w, CODE_FOR_msa_fmax_d, CODE_FOR_msa_fmax_a_w)
2165 (CODE_FOR_msa_fmax_a_d, CODE_FOR_msa_fmin_w, CODE_FOR_msa_fmin_d)
2166 (CODE_FOR_msa_fmin_a_w, CODE_FOR_msa_fmin_a_d)
2167 (CODE_FOR_msa_fsqrt_w, CODE_FOR_msa_fsqrt_d)
2168 (CODE_FOR_msa_max_s_b, CODE_FOR_msa_max_s_h)
2169 (CODE_FOR_msa_max_s_w, CODE_FOR_msa_max_s_d)
2170 (CODE_FOR_msa_max_u_b, CODE_FOR_msa_max_u_h)
2171 (CODE_FOR_msa_max_u_w, CODE_FOR_msa_max_u_d)
2172 (CODE_FOR_msa_min_s_b, CODE_FOR_msa_min_s_h)
2173 (CODE_FOR_msa_min_s_w, CODE_FOR_msa_min_s_d)
2174 (CODE_FOR_msa_min_u_b, CODE_FOR_msa_min_u_h)
2175 (CODE_FOR_msa_min_u_w, CODE_FOR_msa_min_u_d)
2176 (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
2177 (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
2178 (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
2179 (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
2180 (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
2181 (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
2182 (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
2183 (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
2184 (CODE_FOR_msa_mulv_b, CODE_FOR_msa_mulv_h, CODE_FOR_msa_mulv_w)
2185 (CODE_FOR_msa_mulv_d, CODE_FOR_msa_nlzc_b, CODE_FOR_msa_nlzc_h)
2186 (CODE_FOR_msa_nlzc_w, CODE_FOR_msa_nlzc_d, CODE_FOR_msa_nor_v)
2187 (CODE_FOR_msa_or_v, CODE_FOR_msa_ori_b, CODE_FOR_msa_nori_b)
2188 (CODE_FOR_msa_pcnt_b, CODE_FOR_msa_pcnt_h, CODE_FOR_msa_pcnt_w)
2189 (CODE_FOR_msa_pcnt_d, CODE_FOR_msa_xor_v, CODE_FOR_msa_xori_b)
2190 (CODE_FOR_msa_sll_b, CODE_FOR_msa_sll_h, CODE_FOR_msa_sll_w)
2191 (CODE_FOR_msa_sll_d, CODE_FOR_msa_slli_b, CODE_FOR_msa_slli_h)
2192 (CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d, CODE_FOR_msa_sra_b)
2193 (CODE_FOR_msa_sra_h, CODE_FOR_msa_sra_w, CODE_FOR_msa_sra_d)
2194 (CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w)
2195 (CODE_FOR_msa_srai_d, CODE_FOR_msa_srl_b, CODE_FOR_msa_srl_h)
2196 (CODE_FOR_msa_srl_w, CODE_FOR_msa_srl_d, CODE_FOR_msa_srli_b)
2197 (CODE_FOR_msa_srli_h, CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d)
2198 (CODE_FOR_msa_subv_b, CODE_FOR_msa_subv_h, CODE_FOR_msa_subv_w)
2199 (CODE_FOR_msa_subv_d, CODE_FOR_msa_subvi_b, CODE_FOR_msa_subvi_h)
2200 (CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d, CODE_FOR_msa_move_v)
2201 (CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h, CODE_FOR_msa_vshf_w)
2202 (CODE_FOR_msa_vshf_d, CODE_FOR_msa_ilvod_d, CODE_FOR_msa_ilvev_d)
2203 (CODE_FOR_msa_pckod_d, CODE_FOR_msa_pckdev_d, CODE_FOR_msa_ldi_b)
2204 (CODE_FOR_msa_ldi_hi, CODE_FOR_msa_ldi_w)
2205 (CODE_FOR_msa_ldi_d): New code_aliasing macros.
2206 (mips_builtins): Add MSA sll_b, sll_h, sll_w, sll_d, slli_b,
2207 slli_h, slli_w, slli_d, sra_b, sra_h, sra_w, sra_d, srai_b,
2208 srai_h, srai_w, srai_d, srar_b, srar_h, srar_w, srar_d, srari_b,
2209 srari_h, srari_w, srari_d, srl_b, srl_h, srl_w, srl_d, srli_b,
2210 srli_h, srli_w, srli_d, srlr_b, srlr_h, srlr_w, srlr_d, srlri_b,
2211 srlri_h, srlri_w, srlri_d, bclr_b, bclr_h, bclr_w, bclr_d,
2212 bclri_b, bclri_h, bclri_w, bclri_d, bset_b, bset_h, bset_w,
2213 bset_d, bseti_b, bseti_h, bseti_w, bseti_d, bneg_b, bneg_h,
2214 bneg_w, bneg_d, bnegi_b, bnegi_h, bnegi_w, bnegi_d, binsl_b,
2215 binsl_h, binsl_w, binsl_d, binsli_b, binsli_h, binsli_w,
2216 binsli_d, binsr_b, binsr_h, binsr_w, binsr_d, binsri_b, binsri_h,
2217 binsri_w, binsri_d, addv_b, addv_h, addv_w, addv_d, addvi_b,
2218 addvi_h, addvi_w, addvi_d, subv_b, subv_h, subv_w, subv_d,
2219 subvi_b, subvi_h, subvi_w, subvi_d, max_s_b, max_s_h, max_s_w,
2220 max_s_d, maxi_s_b, maxi_s_h, maxi_s_w, maxi_s_d, max_u_b,
2221 max_u_h, max_u_w, max_u_d, maxi_u_b, maxi_u_h, maxi_u_w,
2222 maxi_u_d, min_s_b, min_s_h, min_s_w, min_s_d, mini_s_b, mini_s_h,
2223 mini_s_w, mini_s_d, min_u_b, min_u_h, min_u_w, min_u_d, mini_u_b,
2224 mini_u_h, mini_u_w, mini_u_d, max_a_b, max_a_h, max_a_w, max_a_d,
2225 min_a_b, min_a_h, min_a_w, min_a_d, ceq_b, ceq_h, ceq_w, ceq_d,
2226 ceqi_b, ceqi_h, ceqi_w, ceqi_d, clt_s_b, clt_s_h, clt_s_w,
2227 clt_s_d, clti_s_b, clti_s_h, clti_s_w, clti_s_d, clt_u_b,
2228 clt_u_h, clt_u_w, clt_u_d, clti_u_b, clti_u_h, clti_u_w,
2229 clti_u_d, cle_s_b, cle_s_h, cle_s_w, cle_s_d, clei_s_b, clei_s_h,
2230 clei_s_w, clei_s_d, cle_u_b, cle_u_h, cle_u_w, cle_u_d, clei_u_b,
2231 clei_u_h, clei_u_w, clei_u_d, ld_b, ld_h, ld_w, ld_d, st_b, st_h,
2232 st_w, st_d, sat_s_b, sat_s_h, sat_s_w, sat_s_d, sat_u_b, sat_u_h,
2233 sat_u_w, sat_u_d, add_a_b, add_a_h, add_a_w, add_a_d, adds_a_b,
2234 adds_a_h, adds_a_w, adds_a_d, adds_s_b, adds_s_h, adds_s_w,
2235 adds_s_d, adds_u_b, adds_u_h, adds_u_w, adds_u_d, ave_s_b,
2236 ave_s_h, ave_s_w, ave_s_d, ave_u_b, ave_u_h, ave_u_w, ave_u_d,
2237 aver_s_b, aver_s_h, aver_s_w, aver_s_d, aver_u_b, aver_u_h,
2238 aver_u_w, aver_u_d, subs_s_b, subs_s_h, subs_s_w, subs_s_d,
2239 subs_u_b, subs_u_h, subs_u_w, subs_u_d, subsuu_s_b, subsuu_s_h,
2240 subsuu_s_w, subsuu_s_d, subsus_u_b, subsus_u_h, subsus_u_w,
2241 subsus_u_d, asub_s_b, asub_s_h, asub_s_w, asub_s_d, asub_u_b,
2242 asub_u_h, asub_u_w, asub_u_d, mulv_b, mulv_h, mulv_w, mulv_d,
2243 maddv_b, maddv_h, maddv_w, maddv_d, msubv_b, msubv_h, msubv_w,
2244 msubv_d, div_s_b, div_s_h, div_s_w, div_s_d, div_u_b, div_u_h,
2245 div_u_w, div_u_d, hadd_s_h, hadd_s_w, hadd_s_d, hadd_u_h,
2246 hadd_u_w, hadd_u_d, hsub_s_h, hsub_s_w, hsub_s_d, hsub_u_h,
2247 hsub_u_w, hsub_u_d, mod_s_b, mod_s_h, mod_s_w, mod_s_d, mod_u_b,
2248 mod_u_h, mod_u_w, mod_u_d, dotp_s_h, dotp_s_w, dotp_s_d,
2249 dotp_u_h, dotp_u_w, dotp_u_d, dpadd_s_h, dpadd_s_w, dpadd_s_d,
2250 dpadd_u_h, dpadd_u_w, dpadd_u_d, dpsub_s_h, dpsub_s_w, dpsub_s_d,
2251 dpsub_u_h, dpsub_u_w, dpsub_u_d, sld_b, sld_h, sld_w, sld_d,
2252 sldi_b, sldi_h, sldi_w, sldi_d, splat_b, splat_h, splat_w,
2253 splat_d, splati_b, splati_h, splati_w, splati_d, pckev_b,
2254 pckev_h, pckev_w, pckev_d, pckod_b, pckod_h, pckod_w, pckod_d,
2255 ilvl_b, ilvl_h, ilvl_w, ilvl_d, ilvr_b, ilvr_h, ilvr_w, ilvr_d,
2256 ilvev_b, ilvev_h, ilvev_w, ilvev_d, ilvod_b, ilvod_h, ilvod_w,
2257 ilvod_d, vshf_b, vshf_h, vshf_w, vshf_d, and_v, andi_b, or_v,
2258 ori_b, nor_v, nori_b, xor_v, xori_b, bmnz_v, bmnzi_b, bmz_v,
2259 bmzi_b, bsel_v, bseli_b, shf_b, shf_h, shf_w, bnz_v, bz_v,
2260 fill_b, fill_h, fill_w, fill_d, pcnt_b, pcnt_h, pcnt_w,
2261 pcnt_d, nloc_b, nloc_h, nloc_w, nloc_d, nlzc_b, nlzc_h, nlzc_w,
2262 nlzc_d, copy_s_b, copy_s_h, copy_s_w, copy_s_d, copy_u_b,
2263 copy_u_h, copy_u_w, copy_u_d, insert_b, insert_h, insert_w,
2264 insert_d, insve_b, insve_h, insve_w, insve_d, bnz_b, bnz_h,
2265 bnz_w, bnz_d, bz_b, bz_h, bz_w, bz_d, ldi_b, ldi_h, ldi_w, ldi_d,
2266 fcaf_w, fcaf_d, fcor_w, fcor_d, fcun_w, fcun_d, fcune_w, fcune_d,
2267 fcueq_w, fcueq_d, fceq_w, fceq_d, fcne_w, fcne_d, fclt_w, fclt_d,
2268 fcult_w, fcult_d, fcle_w, fcle_d, fcule_w, fcule_d, fsaf_w,
2269 fsaf_d, fsor_w, fsor_d, fsun_w, fsun_d, fsune_w, fsune_d,
2270 fsueq_w, fsueq_d, fseq_w, fseq_d, fsne_w, fsne_d, fslt_w,
2271 fslt_d, fsult_w, fsult_d, fsle_w, fsle_d, fsule_w, fsule_d,
2272 fadd_w, fadd_d, fsub_w, fsub_d, fmul_w, fmul_d, fdiv_w, fdiv_d,
2273 fmadd_w, fmadd_d, fmsub_w, fmsub_d, fexp2_w, fexp2_d, fexdo_h,
2274 fexdo_w, ftq_h, ftq_w, fmin_w, fmin_d, fmin_a_w, fmin_a_d,
2275 fmax_w, fmax_d, fmax_a_w, fmax_a_d, mul_q_h, mul_q_w, mulr_q_h,
2276 mulr_q_w, madd_q_h, madd_q_w, maddr_q_h, maddr_q_w, msub_q_h,
2277 msub_q_w, msubr_q_h, msubr_q_w, fclass_w, fclass_d, fsqrt_w,
2278 fsqrt_d, frcp_w, frcp_d, frint_w, frint_d, frsqrt_w, frsqrt_d,
2279 flog2_w, flog2_d, fexupl_w, fexupl_d, fexupr_w, fexupr_d, ffql_w,
2280 ffql_d, ffqr_w, ffqr_d, ftint_s_w, ftint_s_d, ftint_u_w,
2281 ftint_u_d, ftrunc_s_w, ftrunc_s_d, ftrunc_u_w, ftrunc_u_d,
2282 ffint_s_w, ffint_s_d, ffint_u_w, ffint_u_d, ctcmsa, cfcmsa,
2283 move_v builtins.
2284 (mips_get_builtin_decl_index): New array.
2285 (MIPS_ATYPE_QI, MIPS_ATYPE_HI, MIPS_ATYPE_V2DI, MIPS_ATYPE_V4SI)
2286 (MIPS_ATYPE_V8HI, MIPS_ATYPE_V16QI, MIPS_ATYPE_V2DF)
2287 (MIPS_ATYPE_V4SF, MIPS_ATYPE_UV2DI, MIPS_ATYPE_UV4SI)
2288 (MIPS_ATYPE_UV8HI, MIPS_ATYPE_UV16QI): New.
2289 (mips_init_builtins): Initialize mips_get_builtin_decl_index
2290 array.
2291 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
2292 hook.
2293 (mips_expand_builtin_insn): Prepare operands for
2294 CODE_FOR_msa_addvi_b, CODE_FOR_msa_addvi_h, CODE_FOR_msa_addvi_w,
2295 CODE_FOR_msa_addvi_d, CODE_FOR_msa_clti_u_b,
2296 CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w,
2297 CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_u_b,
2298 CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w,
2299 CODE_FOR_msa_clei_u_d, CODE_FOR_msa_maxi_u_b,
2300 CODE_FOR_msa_maxi_u_h, CODE_FOR_msa_maxi_u_w,
2301 CODE_FOR_msa_maxi_u_d, CODE_FOR_msa_mini_u_b,
2302 CODE_FOR_msa_mini_u_h, CODE_FOR_msa_mini_u_w,
2303 CODE_FOR_msa_mini_u_d, CODE_FOR_msa_subvi_b,
2304 CODE_FOR_msa_subvi_h, CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d,
2305 CODE_FOR_msa_ceqi_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w,
2306 CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b,
2307 CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w,
2308 CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clei_s_b,
2309 CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w,
2310 CODE_FOR_msa_clei_s_d, CODE_FOR_msa_maxi_s_b,
2311 CODE_FOR_msa_maxi_s_h, CODE_FOR_msa_maxi_s_w,
2312 CODE_FOR_msa_maxi_s_d, CODE_FOR_msa_mini_s_b,
2313 CODE_FOR_msa_mini_s_h, CODE_FOR_msa_mini_s_w,
2314 CODE_FOR_msa_mini_s_d, CODE_FOR_msa_andi_b, CODE_FOR_msa_ori_b,
2315 CODE_FOR_msa_nori_b, CODE_FOR_msa_xori_b, CODE_FOR_msa_bmzi_b,
2316 CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bseli_b, CODE_FOR_msa_fill_b,
2317 CODE_FOR_msa_fill_h, CODE_FOR_msa_fill_w, CODE_FOR_msa_fill_d,
2318 CODE_FOR_msa_ilvl_b, CODE_FOR_msa_ilvl_h, CODE_FOR_msa_ilvl_w,
2319 CODE_FOR_msa_ilvl_d, CODE_FOR_msa_ilvr_b, CODE_FOR_msa_ilvr_h,
2320 CODE_FOR_msa_ilvr_w, CODE_FOR_msa_ilvr_d, CODE_FOR_msa_ilvev_b,
2321 CODE_FOR_msa_ilvev_h, CODE_FOR_msa_ilvev_w, CODE_FOR_msa_ilvod_b,
2322 CODE_FOR_msa_ilvod_h, CODE_FOR_msa_ilvod_w, CODE_FOR_msa_pckev_b,
2323 CODE_FOR_msa_pckev_h, CODE_FOR_msa_pckev_w, CODE_FOR_msa_pckod_b,
2324 CODE_FOR_msa_pckod_h, CODE_FOR_msa_pckod_w, CODE_FOR_msa_slli_b,
2325 CODE_FOR_msa_slli_h, CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d,
2326 CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w,
2327 CODE_FOR_msa_srai_d, CODE_FOR_msa_srli_b, CODE_FOR_msa_srli_h,
2328 CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d, CODE_FOR_msa_insert_b,
2329 CODE_FOR_msa_insert_h, CODE_FOR_msa_insert_w,
2330 CODE_FOR_msa_insert_d, CODE_FOR_msa_insve_b,
2331 CODE_FOR_msa_insve_h, CODE_FOR_msa_insve_w, CODE_FOR_msa_insve_d,
2332 CODE_FOR_msa_shf_b, CODE_FOR_msa_shf_h, CODE_FOR_msa_shf_w,
2333 CODE_FOR_msa_shf_w_f, CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h,
2334 CODE_FOR_msa_vshf_w, CODE_FOR_msa_vshf_d.
2335 (mips_expand_builtin): Add case for MIPS_BULTIN_MSA_TEST_BRANCH.
2336 (mips_set_compression_mode): Disallow MSA with MIPS16 code.
2337 (mips_option_override): -mmsa requires -mfp64 and -mhard-float.
2338 These are set implicitly and an error is reported if overridden.
2339 (mips_expand_builtin_msa_test_branch): New function.
2340 (mips_expand_msa_shuffle): Likewise.
2341 (MAX_VECT_LEN): Increase maximum length of a vector to 16 bytes.
2342 (TARGET_SCHED_REASSOCIATION_WIDTH): Define target hook.
2343 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Likewise.
2344 (mips_expand_vec_unpack): Add support for MSA.
2345 (mips_expand_vector_init): Likewise.
2346 (mips_expand_vi_constant): Use CONST0_RTX (element_mode)
2347 instead of const0_rtx.
2348 (mips_msa_vec_parallel_const_half): New function.
2349 (mips_gen_const_int_vector): Likewise.
2350 (mips_gen_const_int_vector_shuffle): Likewise.
2351 (mips_expand_msa_cmp): Likewise.
2352 (mips_expand_vec_cond_expr): Likewise.
2353 * config/mips/mips.h
2354 (TARGET_CPU_CPP_BUILTINS): Add __mips_msa and __mips_msa_width.
2355 (OPTION_DEFAULT_SPECS): Ignore --with-fp-32 if -mmsa is
2356 specified.
2357 (ASM_SPEC): Pass mmsa and mno-msa to the assembler.
2358 (ISA_HAS_MSA): New macro.
2359 (UNITS_PER_MSA_REG): Likewise.
2360 (BITS_PER_MSA_REG): Likewise.
2361 (BIGGEST_ALIGNMENT): Redefine using ISA_HAS_MSA.
2362 (MSA_REG_FIRST): New macro.
2363 (MSA_REG_LAST): Likewise.
2364 (MSA_REG_NUM): Likewise.
2365 (MSA_REG_P): Likewise.
2366 (MSA_REG_RTX_P): Likewise.
2367 (MSA_SUPPORTED_MODE_P): Likewise.
2368 (HARD_REGNO_CALL_PART_CLOBBERED): Redefine using TARGET_MSA.
2369 (ADDITIONAL_REGISTER_NAMES): Add named registers $w0-$w31.
2370 * config/mips/mips.md: Include mips-msa.md.
2371 (alu_type): Add simd_add.
2372 (mode): Add V2DI, V4SI, V8HI, V16QI, V2DF, V4SF.
2373 (type): Add simd_div, simd_fclass, simd_flog2, simd_fadd,
2374 simd_fcvt, simd_fmul, simd_fmadd, simd_fdiv, simd_bitins,
2375 simd_bitmov, simd_insert, simd_sld, simd_mul, simd_fcmp,
2376 simd_fexp2, simd_int_arith, simd_bit, simd_shift, simd_splat,
2377 simd_fill, simd_permute, simd_shf, simd_sat, simd_pcnt,
2378 simd_copy, simd_branch, simd_cmsa, simd_fminmax, simd_logic,
2379 simd_move, simd_load, simd_store. Choose "multi" for moves
2380 for "qword_mode".
2381 (qword_mode): New attribute.
2382 (insn_count): Add instruction count for quad moves.
2383 Increase the count for MIPS SIMD division.
2384 (UNITMODE): Add UNITMODEs for vector types.
2385 (addsub): New code iterator.
2386 * config/mips/mips.opt (mmsa): New option.
2387 * config/mips/msa.h: New file.
2388 * config/mips/mti-elf.h: Don't infer -mfpxx if -mmsa is
2389 specified.
2390 * config/mips/mti-linux.h: Likewise.
2391 * config/mips/predicates.md
2392 (const_msa_branch_operand): New constraint.
2393 (const_uimm3_operand): Likewise.
2394 (const_uimm4_operand): Likewise.
2395 (const_uimm5_operand): Likewise.
2396 (const_uimm8_operand): Likewise.
2397 (const_imm5_operand): Likewise.
2398 (aq10b_operand): Likewise.
2399 (aq10h_operand): Likewise.
2400 (aq10w_operand): Likewise.
2401 (aq10d_operand): Likewise.
2402 (const_m1_operand): Likewise.
2403 (reg_or_m1_operand): Likewise.
2404 (const_exp_2_operand): Likewise.
2405 (const_exp_4_operand): Likewise.
2406 (const_exp_8_operand): Likewise.
2407 (const_exp_16_operand): Likewise.
2408 (const_vector_same_val_operand): Likewise.
2409 (const_vector_same_simm5_operand): Likewise.
2410 (const_vector_same_uimm5_operand): Likewise.
2411 (const_vector_same_uimm6_operand): Likewise.
2412 (const_vector_same_uimm8_operand): Likewise.
2413 (par_const_vector_shf_set_operand): Likewise.
2414 (reg_or_vector_same_val_operand): Likewise.
2415 (reg_or_vector_same_simm5_operand): Likewise.
2416 (reg_or_vector_same_uimm6_operand): Likewise.
2417 * doc/extend.texi (MIPS SIMD Architecture Functions): New
2418 section.
2419 * doc/invoke.texi (-mmsa): Document new option.
2420
2421 2016-05-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2422
2423 * configure.ac (enable_vtable_verify): Handle --enable-vtable-verify.
2424 * configure: Regenerate.
2425 * config.in: Regenerate.
2426 * gcc.c (VTABLE_VERIFICATION_SPEC) [!ENABLE_VTABLE_VERIFY]: Error
2427 on -fvtable-verify.
2428 * config/sol2.h [!ENABLE_VTABLE_VERIFY] (STARTFILE_VTV_SPEC): Define.
2429 (ENDFILE_VTV_SPEC): Define.
2430
2431 2016-05-09 Kaushik Phatak <kaushik.phatak@kpit.com>
2432
2433 * config/rl78/rl78.c (rl78_expand_prologue): Save the MDUC related
2434 registers in all interrupt handlers if necessary.
2435 (rl78_option_override): Add warning.
2436 (MUST_SAVE_MDUC_REGISTERS): New macro.
2437 (rl78_expand_epilogue): Restore the MDUC registers if necessary.
2438 * config/rl78/rl78.c (check_mduc_usage): New function.
2439 (mduc_regs): New structure to hold MDUC register data.
2440 * config/rl78/rl78.md (is_g13_muldiv_insn): New attribute.
2441 (mulsi3_g13): Add is_g13_muldiv_insn attribute.
2442 (udivmodsi4_g13): Add is_g13_muldiv_insn attribute.
2443 (mulhi3_g13): Add is_g13_muldiv_insn attribute.
2444 * config/rl78/rl78.opt (msave-mduc-in-interrupts): New option.
2445 * doc/invoke.texi (RL78 Options): Add -msave-mduc-in-interrupts.
2446
2447 2016-05-09 Bin Cheng <bin.cheng@arm.com>
2448
2449 * tree-if-conv.c (tree-ssa-loop.h): Include header file.
2450 (tree-ssa-loop-niter.h): Ditto.
2451 (idx_within_array_bound, ref_within_array_bound): New functions.
2452 (ifcvt_memrefs_wont_trap): Check if array ref is within bound.
2453 Factor out check on writable base object to ...
2454 (base_object_writable): ... here.
2455
2456 2016-05-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2457
2458 * config/arm/arm.md (probe_stack): Add modes to set source
2459 and destination.
2460
2461 2016-05-09 Bernd Schmidt <bschmidt@redhat.com>
2462
2463 * regrename.c (base_reg_class_for_rename): New static function.
2464 (scan_rtx_address, scan_rtx): Use it instead of base_reg_class.
2465
2466 2016-05-08 Jan Hubicka <hubicka@ucw.cz>
2467
2468 * cgraph.c (thunk_adjust): Export.
2469 * cgraphclones.c (cgraph_node::create_clone): Clone thunk info.
2470 * cgraphunit.c (thunk_adjust): Export.
2471 (cgraph_node::assemble_thunks_and_aliases): Do not assemble inlined
2472 thunks.
2473 * ipa-inline-analyssi.c (compute_inline_parameters): Thunks are
2474 inlinable.
2475 * tree-inline.c (expand_call_inline): Expand thunks inline.
2476
2477 2016-05-08 Uros Bizjak <ubizjak@gmail.com>
2478
2479 PR target/70998
2480 * config/i386/sse.md (*sse2_vd_cvtsd2ss): New insn pattern.
2481 (*sse2_vd_cvtss2sd): Ditto.
2482 * config/i386/i386.md
2483 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf splitter):
2484 Generate *sse2_vd_cvtsd2ss pattern.
2485 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df splitter):
2486 Generate *sse2_vd_cvtss2sd pattern.
2487
2488 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
2489
2490 * config/sh/sh.h (GET_SH_ARG_CLASS): Convert macro into ...
2491 * config/sh/sh.c (get_sh_arg_class): ... this new function. Update its
2492 users.
2493
2494 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
2495
2496 * config/sh/sh-protos.h (sh_media_register_for_return): Remove.
2497 * config/sh/sh.c: Define and declare variables on first use throughout
2498 the file.
2499 (current_function_interrupt): Change to bool type.
2500 (frame_insn): Rename to emit_frame_insn and update users.
2501 (push_regs): Use bool for 'interrupt_handler' argument.
2502 (save_schedule_s): Remove.
2503 (TARGET_ASM_UNALIGNED_DI_OP, TARGET_ASM_ALIGNED_DI_OP): Remove.
2504 (sh_option_override): Don't nullify targetm.asm_out.aligned_op.di and
2505 targetm.asm_out.unaligned_op.di.
2506 (gen_far_branch): Remove redundant forward declaration.
2507 (sh_media_register_for_return, MAX_SAVED_REGS, save_entry_s, save_entry,
2508 MAX_TEMPS, save_schedule_ssave_schedule): Remove.
2509 (sh_set_return_address, sh_function_ok_for_sibcall,
2510 scavenge_reg): Update comments.
2511 (sh_builtin_saveregs): Use TRAGET_FPU_ANY condition.
2512 (sh2a_get_function_vector_number, sh2a_function_vector_p): Use for loop.
2513 (sh_attr_renesas_p): Remove unnecessary parentheses.
2514 (branch_dest): Simplify.
2515 * config/sh/sh.h (sh_args): Remove byref, byref_regs, stack_regs fields.
2516 Change force_mem, prototype_p, outgoing, renesas_abi fields to bool.
2517 (CUMULATIVE_ARGS): Change macro to typedef.
2518 (current_function_interrupt): Change to bool type.
2519 (sh_arg_class, sh_args, CUMULATIVE_ARGS, current_function_interrupt):
2520 Surround with __cplusplus ifdef.
2521 (sh_compare_op0, sh_compare_op1): Remove.
2522 (EPILOGUE_USES): Use TARGET_FPU_ANY condition.
2523
2524 2016-05-07 Jim Wilson <jim.wilson@linaro.org>
2525
2526 * config/arm/arm.md: (arch): Add neon.
2527 (arch_enabled): Return yes for arch neon when TARGET_NEON.
2528 * config/arm/vfp.md (movdf_vfp): Add w/G as alternative 3. Add
2529 neon_move as type for alt 3. Add arch attr enabling alt 3 for neon.
2530 Emit vmov.i64 for alt 3. Renumber alternatives 3 to 8. Adjust
2531 attributes for alt renumbering. Mark alt 3 as non-predicable.
2532 (thumb2_movdf_vfp): Likewise.
2533
2534 2016-05-07 Uros Bizjak <ubizjak@gmail.com>
2535
2536 * config/i386/i386.md (*addqi_1): Add preferred_for_speed attribute
2537 to disparage alternatives 3 and 4 for TARGET_PARTIAL_REG_STALL targets.
2538 (*andqi_1): Add preferred_for_speed attribute to disparage
2539 alternative 2 for TARGET_PARTIAL_REG_STALL targets.
2540 (*<code>qi_1): Ditto.
2541 (*one_cmplqi2_1): Add preferred_for_speed attribute to disparage
2542 alternative 1 for TARGET_PARTIAL_REG_STALL targets.
2543 (*ashlqi3_1): Ditto.
2544 (*swap<mode>): Merge from *swap<mode>_1 and *swap<mode>_2 patterns.
2545 Add preferred_for_size attribute to disparage alternative 0 and
2546 preferred_for_speed attribute to disparage alternative 1 for
2547 TARGET_PARTIAL_REG_STALL targets.
2548
2549 2016-05-07 Tom de Vries <tom@codesourcery.com>
2550
2551 PR tree-optimization/70956
2552 * graphite-scop-detection.c (build_cross_bb_scalars_def): Handle NULL
2553 def.
2554
2555 2016-05-07 Oleg Endo <olegendo@gcc.gnu.org>
2556
2557 * config/sh/sh-protos.h (sh_cbranch_distance): Declare new function.
2558 * config/sh/sh.c (sh_cbranch_distance): Implement it.
2559 * config/sh/sh.md (branch_zero): Remove define_attr.
2560 (define_delay): Disable delay slot if branch distance is one insn.
2561
2562 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
2563
2564 * config/i386/i386.md (LEAMODE): New mode attribute.
2565 (plus to LEA splitter): Rewrite splitter using LEAMODE mode attribute.
2566 (ashift to LEA splitter): Rewrte splitter using SWI mode iterator
2567 and LEAMODE mode attribute. Use VOIDmode const_0_to_3_operand as
2568 operand 2 predicate.
2569 (*lea<mode>_general_2): Use VOIDmode for const248_operand.
2570 (*lea<mode>_general_3): Ditto.
2571 (*lea<mode>_general_4): Use VOIDmode for const_0_to_3_operand.
2572
2573 2016-05-06 Jakub Jelinek <jakub@redhat.com>
2574
2575 * genmddump.c (main): Convert argv from char ** to const char **.
2576
2577 2016-05-06 David Malcolm <dmalcolm@redhat.com>
2578
2579 * coretypes.h (OVERRIDE): New macro.
2580 (FINAL): New macro.
2581
2582 2016-05-06 Eric Botcazou <ebotcazou@adacore.com>
2583
2584 * tree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case,
2585 allow coalescing if the types are compatible.
2586
2587 2016-05-06 David Malcolm <dmalcolm@redhat.com>
2588
2589 * pass_manager.h (pass_manager::register_pass_name): New method.
2590 (pass_manager::get_pass_by_name): New method.
2591 (pass_manager::create_pass_tab): New method.
2592 (pass_manager::m_name_to_pass_map): New field.
2593 * passes.c (name_to_pass_map): Delete global in favor of field
2594 "m_name_to_pass_map" of pass_manager.
2595 (register_pass_name): Rename from a function to...
2596 (pass_manager::register_pass_name): ...this method, updating
2597 for renaming of global "name_to_pass_map" to field
2598 "m_name_to_pass_map".
2599 (create_pass_tab): Rename from a function to...
2600 (pass_manager::create_pass_tab): ...this method, updating
2601 for renaming of global "name_to_pass_map" to field.
2602 (get_pass_by_name): Rename from a function to...
2603 (pass_manager::get_pass_by_name): ...this method.
2604 (enable_disable_pass): Convert use of get_pass_by_name to
2605 a method call, locating the pass_manager singleton.
2606
2607 2016-05-06 David Malcolm <dmalcolm@redhat.com>
2608
2609 * genattr-common.c (main): Convert argv from char ** to const char **.
2610 * genattr.c (main): Likewise.
2611 * genattrtab.c (main): Likewise.
2612 * genautomata.c (initiate_automaton_gen): Likewise.
2613 (main): Likewise.
2614 * gencodes.c (main): Likewise.
2615 * genconditions.c (main): Likewise.
2616 * genconfig.c (main): Likewise.
2617 * genconstants.c (main): Likewise.
2618 * genemit.c (main): Likewise.
2619 * genenums.c (main): Likewise.
2620 * genextract.c (main): Likewise.
2621 * genflags.c (main): Likewise.
2622 * genmddeps.c (main): Likewise.
2623 * genopinit.c (main): Likewise.
2624 * genoutput.c (main): Likewise.
2625 * genpeep.c (main): Likewise.
2626 * genpreds.c (main): Likewise.
2627 * genrecog.c (main): Likewise.
2628 * gensupport.c (init_rtx_reader_args_cb): Likewise.
2629 (init_rtx_reader_args): Likewise.
2630 * gensupport.h (init_rtx_reader_args_cb): Likewise.
2631 (init_rtx_reader_args): Likewise.
2632 * gentarget-def.c (main): Likewise.
2633 * read-md.c (read_md_files): Likewise.
2634 * read-md.h (read_md_files): Likewise.
2635
2636 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
2637
2638 * config/i386/i386.md (int cmove peephole2s): Use general_reg_operand
2639 instead of register_and_not_any_fp_reg_operand as operand 0 predicate.
2640 * config/i386/predicates.md (register_and_not_any_fp_reg_operand):
2641 Remove unused predicate.
2642 (register_and_not_fp_reg_operand): Ditto.
2643
2644 2016-05-06 Martin Liska <mliska@suse.cz>
2645
2646 * tree-if-conv.c (ifcvt_split_critical_edges): Use auto_vec
2647 instead of vec as the vector is local to the function.
2648
2649 2016-05-06 Jakub Jelinek <jakub@redhat.com>
2650
2651 * config/i386/sse.md (*<code>v8hi3, *<code>v16qi3): Add
2652 avx512bw alternative.
2653
2654 * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>): Move
2655 before the ashr<mode>3 pattern.
2656
2657 * config/i386/sse.md (*avx2_pmaddwd, *sse2_pmaddwd): Use
2658 v instead of x in vex or maybe_vex alternatives, use
2659 maybe_evex instead of vex in prefix.
2660
2661 * config/i386/sse.md (*vec_extractv4sf_0, *sse4_1_extractps,
2662 *vec_extractv4sf_mem, vec_extract_lo_v16hi, vec_extract_hi_v16hi,
2663 vec_extract_lo_v32qi, vec_extract_hi_v32qi): Use v instead of x
2664 in vex or maybe_vex alternatives, use maybe_evex instead of vex
2665 in prefix.
2666
2667 * config/i386/sse.md (*vec_concatv2sf_sse4_1, *vec_concatv4sf): Use
2668 v instead of x in vex or maybe_vex alternatives, use
2669 maybe_evex instead of vex in prefix.
2670
2671 * config/i386/sse.md (sse_shufps_<mode>, sse_storehps, sse_loadhps,
2672 sse_storelps, sse_movss, avx2_vec_dup<mode>, avx2_vec_dupv8sf_1,
2673 sse2_shufpd_<mode>, sse2_storehpd, sse2_storelpd, sse2_loadhpd,
2674 sse2_loadlpd, sse2_movsd): Use v instead of x in vex or maybe_vex
2675 alternatives, use maybe_evex instead of vex in prefix.
2676
2677 * config/i386/sse.md (vec_interleave_lowv4sf,
2678 *vec_interleave_highv2df, *vec_interleave_lowv2df): Use
2679 v instead of x in vex or maybe_vex alternatives, use
2680 maybe_evex instead of vex in prefix.
2681
2682 * config/i386/sse.md (sse_movhlps, sse_movlhps): Use
2683 v instead of x in vex or maybe_vex alternatives, use
2684 maybe_evex instead of vex in prefix.
2685
2686 * config/i386/sse.md (*avx_cvtpd2dq256_2, *avx_cvtps2pd256_2): Use
2687 v constraint instead of x.
2688
2689 2016-05-06 Nathan Sidwell <nathan@codesourcery.com>
2690
2691 * gimple.c (gimple_call_same_target_p): Unique functions are eq.
2692 * tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
2693 equality first.
2694
2695 2016-05-06 Richard Biener <rguenther@suse.de>
2696
2697 PR tree-optimization/70948
2698 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
2699 Properly clobber all fields of va_list for __builtin_va_start.
2700
2701 2016-05-06 Yuri Rumyantsev <ysrumyan@gmail.com>
2702
2703 PR debug/70935
2704 * tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
2705 loop latch destination.
2706
2707 2016-05-06 Martin Liska <mliska@suse.cz>
2708
2709 * tree-ssa-uninit.c: Apply manual changes
2710 to the GNU coding style.
2711 (prune_uninit_phi_opnds): Rename from
2712 prune_uninit_phi_opnds_in_unrealizable_paths.
2713
2714 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
2715
2716 * config/sh/sh.opt (madjust-unroll, minvalid-symbols, msoft-atomic,
2717 mspace): Remove deprecated options.
2718 * doc/invoke.texi (SH options): Remove -mspace.
2719
2720 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
2721
2722 * config/sh/sh.md (ic_invalidate_line_sh4a): Fix insn length.
2723
2724 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
2725
2726 * config/sh/sh.md (*cmpeqsi_t): Remove combine insn pattern and similar
2727 corresponding combine split pattern.
2728
2729 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
2730
2731 PR target/58219
2732 * config/sh/predicates.md (long_displacement_mem_operand): New.
2733 * config/sh/sh.md (movsi_i): Allow for SH2A, disallow for any FPU.
2734 Add movi20, movi20s alternatives. Adjust length attribute for
2735 alternatives.
2736 (movsi_ie): Allow for any FPU. Adjust length attribute for
2737 alternatives.
2738 (movsi_i_lowpart): Add movi20, movi20s alternatives. Adjust length
2739 attribute for alternatives.
2740 (*mov<mode>): Use long_displacement_mem_operand for length attribute.
2741 (*movdi_i, movdf_k, movdf_i4, movsf_i, movsf_ie, movsf_ie_ra): Adjust
2742 length attribute for alternatives.
2743
2744 2016-05-06 Richard Biener <rguenther@suse.de>
2745
2746 PR tree-optimization/70960
2747 * tree-if-conv.c (ifcvt_walk_pattern_tree): Handle non-SSA ops.
2748
2749 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
2750
2751 PR target/52933
2752 * config/sh/sh.md (*cmp_div0s_7, *cmp_div0s_8): Add div0s variants.
2753 * config/sh/sh.c (sh_rtx_costs): Add another div0s case.
2754
2755 2016-05-06 Marek Polacek <polacek@redhat.com>
2756
2757 PR sanitizer/70875
2758 * ubsan.c (get_ubsan_type_info_for_type): Remove assert.
2759
2760 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
2761
2762 PR target/54089
2763 * config/sh/sh.md (*rotcr): Add another variant.
2764
2765 2016-05-06 Richard Biener <rguenther@suse.de>
2766
2767 PR middle-end/70931
2768 * dwarf2out.c (native_encode_initializer): Skip zero-sized fields.
2769
2770 2016-05-06 Richard Biener <rguenther@suse.de>
2771
2772 PR middle-end/70941
2773 * fold-const.c (split_tree): Always convert to the original type
2774 before negating.
2775
2776 2016-05-06 Richard Biener <rguenther@suse.de>
2777
2778 * fwprop.c (fwprop): Remove duplicate cleanup_cfg call.
2779 (fwprop_addr): Likewise.
2780
2781 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
2782
2783 PR target/70873
2784 * config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p):
2785 New prototype.
2786 * config/i386/i386.c (ix86_standard_x87sse_constant_load_p): New.
2787 * config/i386/i386.md (push mem splitter): Use find_constant_src in
2788 the splitter condition.
2789 (FP load splitter): Use ix86_standard_x87sse_constant_load_p in
2790 the splitter condition.
2791 (FP float_extend load splitter): Ditto.
2792
2793 2016-05-05 Uros Bizjak <ubizjak@gmail.com>
2794
2795 * config/i386/i386.md (peehole2 patterns): Change true_regnum
2796 to REGNO in all peephole2 patterns.
2797 (post-reload splitters): Change true_regnum to REGNO in
2798 post-reload splitters.
2799 (zero_extend splitters): Use general_reg_operand and
2800 nonimmediate_gr_operand predicates.
2801
2802 2016-05-05 Jakub Jelinek <jakub@redhat.com>
2803
2804 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use
2805 v constraint instead of x.
2806
2807 2016-05-05 Alan Modra <amodra@gmail.com>
2808
2809 PR target/68662
2810 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
2811 set OPTION_MASK_RELOCATABLE when flag_pic == 2. Set
2812 TARGET_NO_FP_IN_TOC for -mrelocatable.
2813 (MINIMAL_TOC_SECTION_ASM_OP): Remove redundant
2814 TARGET_RELOCATABLE test.
2815 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
2816 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
2817 * config/rs6000/linux64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
2818 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
2819 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
2820 * config/rs6000/freebsd64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
2821 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
2822 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
2823 * config/rs6000/predicates.md (easy_fp_constant): Likewise.
2824 * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
2825 Likewise.
2826 (rs6000_assemble_integer): Update TARGET_RELOCATABLE test.
2827 (rs6000_stack_info): Likewise.
2828 (rs6000_elf_asm_out_constructor): Likewise.
2829 (rs6000_elf_asm_out_destructor): Likewise.
2830 (rs6000_elf_declare_function_name): Likewise.
2831 * config/rs6000/rs6000.md (load_toc_aix_di): Likewise.
2832 * config/rs6000/rs6000.h (MASK_RELOCATABLE, MASK_MINIMAL_TOC):
2833 Don't define.
2834
2835 2016-05-05 Alan Modra <amodra@gmail.com>
2836
2837 * config/rs6000/rs6000.c (rs6000_frame_related): Rewrite.
2838
2839 2016-05-05 Alan Modra <amodra@gmail.com>
2840
2841 * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
2842 out-of-line gpr restore for one or two regs if that would add
2843 a save of lr.
2844
2845 2016-05-04 Uros Bizjak <ubizjak@gmail.com>
2846
2847 PR target/70873
2848 * config/i386/i386.md
2849 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df peephole2):
2850 Change to post-epilogue_completed late splitter. Use sse_reg_operand
2851 as operand 0 predicate.
2852 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf peephole2):
2853 Ditto.
2854 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2):
2855 Ditto. Emit the pattern using RTX.
2856
2857 (TARGET_USE_VECTOR_FP_CONVERTS float_extend sf->df splitter):
2858 Use sse_reg_opreand as operand 0 predicate. Do not use true_regnum in
2859 the post-reload splitter. Use lowpart_subreg instead of gen_rtx_REG.
2860 (TARGET_USE_VECTOR_FP_CONVERTS float_truncate df->sf splitter):
2861 Ditto.
2862 (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use
2863 sse_reg_operand as operand 0 predicate.
2864
2865 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_extend sf->df peephole2):
2866 Use sse_reg_opreand as operand 0 predicate. Use lowpart_subreg
2867 instead of gen_rtx_REG.
2868 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_truncate sf->df peephole2):
2869 Ditto.
2870
2871 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
2872
2873 * function.c (emit_use_return_register_into_block): Delete.
2874 (gen_return_pattern): Delete.
2875 (emit_return_into_block): Delete.
2876 (active_insn_between): Delete.
2877 (convert_jumps_to_returns): Delete.
2878 (emit_return_for_exit): Delete.
2879 (thread_prologue_and_epilogue_insns): Delete all code dealing with
2880 simple_return for shrink-wrapped blocks.
2881 * shrink-wrap.c (try_shrink_wrapping): Insert simple_return at the
2882 end of blocks that need one.
2883 (get_unconverted_simple_return): Delete.
2884 (convert_to_simple_return): Delete.
2885 * shrink-wrap.c (get_unconverted_simple_return): Delete declaration.
2886 (convert_to_simple_return): Ditto.
2887
2888 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
2889
2890 * cfgcleanup.c (bb_is_just_return): New function.
2891 (try_optimize_cfg): Simplify jumps to return, branches to return,
2892 and branches around return.
2893
2894 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
2895
2896 * cfgcleanup.c (try_simplify_condjump): Don't try to simplify a
2897 branch to a return.
2898
2899 2016-05-04 Jakub Jelinek <jakub@redhat.com>
2900
2901 PR c++/70906
2902 PR c++/70933
2903 * tree-core.h (enum operand_equal_flag): Add OEP_HASH_CHECK.
2904 * tree.c (inchash::add_expr): If !IS_EXPR_CODE_CLASS (tclass),
2905 assert flags & OEP_HASH_CHECK, instead of asserting it
2906 never happens. Handle TARGET_EXPR.
2907 * fold-const.c (operand_equal_p): For hash verification,
2908 or in OEP_HASH_CHECK into flags.
2909
2910 2016-05-04 Eric Botcazou <ebotcazou@adacore.com>
2911
2912 * tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
2913 comment.
2914 (compute_samebase_partition_bases): Fix typo.
2915
2916 2016-05-04 Jakub Jelinek <jakub@redhat.com>
2917
2918 * config/i386/sse.md (vec_interleave_highv8sf,
2919 vec_interleave_lowv8sf, vec_interleave_highv4df,
2920 vec_interleave_lowv4df): Remove constraints from expanders.
2921
2922 * config/i386/sse.md (sse2_movq128): Use v constraint instead of x.
2923
2924 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
2925
2926 * tree-inline.c (expand_call_inline): Fix path dealing with
2927 making lhs of call statement undefined.
2928
2929 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
2930
2931 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
2932 Check availability on NODE, too.
2933 * cgraph.h (symtab_node::call_for_symbol_and_aliases): Likewise.
2934 (cgraph_node::call_for_symbol_and_aliases): Likewise.
2935 (varpool_node::call_for_symbol_and_aliase): Likewise.
2936 * ipa-pure-const.c (add_new_function): Analyze all bodies.
2937 (propagate_pure_const): Propagate across interposable functions, too.
2938 (skip_function_for_local_pure_const): Do not skip interposable bodies
2939 with aliases.
2940 (pass_local_pure_const::execute): Update.
2941
2942 2016-05-04 Marek Polacek <polacek@redhat.com>
2943
2944 * doc/invoke.texi: Document -Wdangling-else.
2945
2946 2016-05-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
2947
2948 * config.gcc: Error out when conflicting multilib is detected. Do not
2949 loop over multilibs since no combination is legal.
2950
2951 2016-05-04 Alan Modra <amodra@gmail.com>
2952
2953 * config/rs6000/rs6000.h (PIC_OFFSET_TABLE_REGNUM): Correct.
2954 * config/rs6000/sysv4.h (TARGET_TOC): Simplify.
2955 * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
2956 Align .toc.
2957
2958 2016-05-04 Matthew Fortune <matthew.fortune@imgtec.com>
2959
2960 * config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
2961 Clean up p5600 comments.
2962
2963 2016-05-04 Richard Biener <rguenther@suse.de>
2964
2965 * match.pd: Add BIT_FIELD_REF canonicalizations and vector
2966 constructor simplifications.
2967 * fold-const.c (fold_ternary_loc): Remove duplicate functionality here.
2968
2969 2016-05-04 Oleg Endo <olegendo@gcc.gnu.org>
2970
2971 * config/sh/predicates (post_inc_mem, pre_dec_mem): New predicates.
2972 * config/sh/sh-protos.h (sh_find_set_of_reg): Return null result if
2973 result.set_rtx is null instead of aborting.
2974 * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT):
2975 Always enable.
2976 (USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT): Enable for SH2A.
2977 * config/sh/sh.md (*extend<mode>si2_predec, *mov<mode>_load_predec,
2978 *mov<mode>_store_postinc): New patterns.
2979
2980 2016-05-04 Marc Glisse <marc.glisse@inria.fr>
2981
2982 * match.pd ((A | B) & (A | C)): Generalize to BIT_XOR_EXPR. Mark
2983 as commutative. Check both conversions are NOP.
2984 ((A & B) OP (C & B)): Remove.
2985
2986 2016-05-04 Alan Modra <amodra@gmail.com>
2987
2988 * combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.
2989
2990 2016-05-04 Alan Modra <amodra@gmail.com>
2991
2992 PR target/70866
2993 * config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
2994 when cr2,3,4 are all fixed regs.
2995
2996 2016-05-04 Bernd Schmidt <bschmidt@redhat.com>
2997
2998 PR rtl-optimization/57193
2999 * opts.c (default_options_table): Revert OPT_frename_registers change.
3000 * doc/invoke.texi (-frename-registers, -O2): Likewise.
3001
3002 2016-05-03 Martin Sebor <msebor@redhat.com>
3003
3004 PR c++/66561
3005 * builtins.c (fold_builtin_FILE): New function.
3006 (fold_builtin_FUNCTION, fold_builtin_LINE): New functions.
3007 (fold_builtin_0): Call them.
3008 * gimplify.c (gimplify_call_expr): Remove the handling of
3009 BUILT_IN_FILE, BUILT_IN_FUNCTION, and BUILT_IN_LINE.
3010
3011 PR c++/66561
3012 * doc/extend.texi (Other Builtins): Update __builtin_FILE,
3013 __builtin_FUNCTION, and __builtin_LINE to reflect they yield
3014 constants.
3015
3016 PR c++/66639
3017 * doc/extend.texi (Function Names as Strings): Update __func__,
3018 __FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
3019 constants.
3020
3021 2016-05-03 Jakub Jelinek <jakub@redhat.com>
3022 Richard Biener <rguenther@suse.de>
3023
3024 PR tree-optimization/70916
3025 * tree-if-conv.c: Include cfganal.h.
3026 (pass_if_conversion::execute): Call connect_infinite_loops_to_exit
3027 and remove_fake_exit_edges around the optimization pass.
3028
3029 2016-05-03 Jan Hubicka <hubicka@ucw.cz>
3030
3031 * cgraph.c (symbol_table::create_edge): Set inline_failed.
3032 (cgraph_edge::make_direct): Likewise.
3033 (cgraph_edge::dump_edge_flags): Dump call_stmt_cannot_inline_p.
3034 * cgraphclones.c (duplicate_thunk_for_node): Set inline_failed.
3035 * cif-code.def (CIF_LTO_MISMATCHED_DECLARATIONS): New code
3036 (CIF_THUNK): New code.
3037 * ipa-inline-analysis.c (initialize_inline_failed): Preserve
3038 CIF_FINAL_ERROR codes; do not deal with call_stmt_cannot_inline_p.
3039 (compute_inline_parameters): Set inline_failed for thunks.
3040 (inline_analyze_function): Cleanup.
3041 * ipa-inline.c (can_inline_edge_p): Do not deal with
3042 call_stmt_cannot_inline_p.
3043 (can_early_inline_edge_p): Likewise.
3044 (early_inliner): Initialize inline_failed.
3045 * lto-cgraph.c (lto_output_edge): Sanity check inline_failed.
3046
3047 2016-05-03 Uros Bizjak <ubizjak@gmail.com>
3048
3049 * config/i386/predicates.md (x87nonimm_ssenomem_operand): Rename
3050 from nonimm_ssenomem_operand.
3051 (nonimm_ssenomem_operand): New predicate.
3052 * config/i386/i386.md (extendsfdf2): Use nonimm_ssenomem_operand
3053 as operand 0 predicate.
3054 (*extendsfdf2): Merge from *extendsfdf2_mixed and *extendsfdf2_i387.
3055 Disable unsupported alternatives using "enabled" attribute.
3056 Use register_ssemem_operand as operand 0 predicate.
3057 (*fop_<mode>_1): Use x87nonimm_ssenomem_operand as operand 1 predicate.
3058
3059 2016-05-03 Marek Polacek <polacek@redhat.com>
3060
3061 PR c/70859
3062 * input.c (expansion_point_location): New function.
3063 * input.h (expansion_point_location): Declare.
3064
3065 2016-05-03 Pierre-Marie de Rodat <derodat@adacore.com>
3066
3067 * dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
3068 occurence with frame_offset_ ones.
3069
3070 2016-05-03 Alan Modra <amodra@gmail.com>
3071
3072 PR rtl-optimization/70890
3073 * ira.c (combine_and_move_insns): When moving def_insn, remove
3074 equivs on use_insn.
3075
3076 2016-05-03 Dominik Vogt <vogt@linux.vnet.ibm.com>
3077
3078 * config/s390/s390.md ("*r<noxa>sbg_<mode>_sll")
3079 ("*r<noxa>sbg_<mode>_srl"): New define_insns.
3080 ("*r<noxa>sbg_<mode>_srl_bitmask"): Rename by adding "_bitmask".
3081 ("*r<noxa>sbg_<mode>_sll_bitmask"): Likewise.
3082
3083 2016-05-03 Alan Modra <amodra@gmail.com>
3084
3085 * config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
3086 for SAVE_MULTIPLE/STORE_MULTIPLE.
3087
3088 2016-05-03 Jakub Jelinek <jakub@redhat.com>
3089
3090 * config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
3091 *truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead of x.
3092
3093 2016-05-03 Richard Biener <rguenther@suse.de>
3094
3095 * gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
3096 default true.
3097 (gimplify_arg): Likewise.
3098 * gimplify.c (gimplify_expr): Add overload with allow_ssa parameter,
3099 re-writing the result to a decl if required.
3100 (internal_get_tmp_var): Add allow_ssa parameter
3101 and override into_ssa with it.
3102 (get_formal_tmp_var): Adjust.
3103 (get_initialized_tmp_var): Add allow_ssa parameter.
3104 (gimplify_arg): Add allow_ssa parameter and avoid generating
3105 SSA names for the result false.
3106 (gimplify_call_expr): If the call may return twice do not
3107 gimplify parameters into SSA.
3108 (prepare_gimple_addressable): Do not allow an SSA name as temporary.
3109 (gimplify_modify_expr): Adjust assert. For noreturn calls
3110 with a SSA name LHS adjust its def.
3111 (gimplify_save_expr): Do not allow an SSA name as save-expr result.
3112 (gimplify_one_sizepos): Do not allow an SSA name as a sizepos.
3113 (gimplify_body): Init GIMPLE SSA data structures and gimplify into-SSA.
3114 (gimplify_scan_omp_clauses): Make sure OMP_CLAUSE_SIZE is not
3115 an SSA name. Likewise for OMP_CLAUSE_REDUCTION operands.
3116 (gimplify_omp_for): Likewise for OMP_CLAUSE_DECL. Likewise
3117 for OMP_FOR_COND, OMP_FOR_INCR and OMP_CLAUSE_LINEAR_STEP.
3118 (optimize_target_teams): Do not allow SSA names for clause operands.
3119 (gimplify_expr): Likewise for where we mark the result addressable.
3120 * passes.def (pass_init_datastructures): Remove.
3121 * tree-into-ssa.c (mark_def_sites): Ignore existing SSA names.
3122 (rewrite_stmt): Likewise.
3123 * tree-inline.c (initialize_cfun): Properly transfer SSA state.
3124 (replace_locals_op): Replace SSA names.
3125 (copy_gimple_seq_and_replace_locals): Init src_cfun.
3126 * gimple-low.c (lower_builtin_setjmp): Deal with SSA.
3127 * cgraph.c (release_function_body): Free CFG annotations only
3128 when we have a CFG. Simplify.
3129 * gimple-fold.c (gimplify_and_update_call_from_tree): Use
3130 force_gimple_operand instead of get_initialized_tmp_var.
3131 * tree-pass.h (make_pass_init_datastructures): Remove.
3132 * tree-ssa.c (execute_init_datastructures): Remove.
3133 (pass_data_init_datastructures): Likewise.
3134 (class pass_init_datastructures): Likewise.
3135 (make_pass_init_datastructures): Likewise.
3136 * omp-low.c (create_omp_child_function): Init SSA data structures.
3137 (grid_expand_target_grid_body): Likewise.
3138 * tree-cfg.c (move_block_to_fn): Double-check the DEF is an SSA
3139 name before adding it to names_to_release.
3140 (remove_bb): Always release SSA defs.
3141 * tree-ssa-ccp.c (get_default_value): Check SSA_NAME_VAR
3142 before dereferencing it.
3143 * cgraphunit.c (init_lowered_empty_function): Always
3144 int SSA data structures.
3145 * tree-ssanames.c (release_defs): Remove assert that we are in
3146 SSA form.
3147 * trans-mem.c (diagnose_tm_1): Handle SSA name function.
3148
3149 2016-05-03 Jakub Jelinek <jakub@redhat.com>
3150 Uros Bizjak <ubizjak@gmail.com>
3151
3152 PR rtl-optimization/70467
3153 * config/i386/predicates.md (x86_64_hilo_int_operand,
3154 x86_64_hilo_general_operand): New predicates.
3155 * config/i386/constraints.md (Wd): New constraint.
3156 * config/i386/i386.md (mode attr di): Use Wd instead of e.
3157 (general_hilo_operand): New mode attr.
3158 (add<mode>3, sub<mode>3): Use <general_hilo_operand>
3159 instead of <general_operand>.
3160 (*add<dwi>3_doubleword, *sub<dwi>3_doubleword): Use
3161 x86_64_hilo_general_operand instead of <general_operand>.
3162
3163 2016-05-03 Jakub Jelinek <jakub@redhat.com>
3164
3165 PR tree-optimization/70916
3166 * tree-if-conv.c (constant_or_ssa_name): Removed.
3167 (fold_build_cond_expr): Use is_gimple_val instead of
3168 constant_or_ssa_name.
3169
3170 PR tree-optimization/70916
3171 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
3172 if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.
3173
3174 PR target/49244
3175 * tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h.
3176 (optimize_atomic_bit_test_and): New function.
3177 (pass_fold_builtins::execute): Use it.
3178 * optabs.def (atomic_bit_test_and_set_optab,
3179 atomic_bit_test_and_complement_optab,
3180 atomic_bit_test_and_reset_optab): New optabs.
3181 * internal-fn.def (ATOMIC_BIT_TEST_AND_SET,
3182 ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_BIT_TEST_AND_RESET): New ifns.
3183 * builtins.h (expand_ifn_atomic_bit_test_and): New prototype.
3184 * builtins.c (expand_ifn_atomic_bit_test_and): New function.
3185 * internal-fn.c (expand_ATOMIC_BIT_TEST_AND_SET,
3186 expand_ATOMIC_BIT_TEST_AND_COMPLEMENT,
3187 expand_ATOMIC_BIT_TEST_AND_RESET): New functions.
3188 * doc/md.texi (atomic_bit_test_and_set@var{mode},
3189 atomic_bit_test_and_complement@var{mode},
3190 atomic_bit_test_and_reset@var{mode}): Document.
3191 * config/i386/sync.md (atomic_bit_test_and_set<mode>,
3192 atomic_bit_test_and_complement<mode>,
3193 atomic_bit_test_and_reset<mode>): New expanders.
3194 (atomic_bit_test_and_set<mode>_1,
3195 atomic_bit_test_and_complement<mode>_1,
3196 atomic_bit_test_and_reset<mode>_1): New insns.
3197
3198 2016-05-03 Richard Sandiford <richard.sandiford@arm.com>
3199
3200 PR rtl-optimization/70687
3201 * combine.c (change_zero_ext): Check for scalar modes. Use wide_int
3202 instead of unsigned HOST_WIDE_INT.
3203
3204 2016-05-03 Bernd Schmidt <bschmidt@redhat.com>
3205
3206 PR rtl-optimization/44281
3207 * hard-reg-set.h (struct target_hard_regs): New field
3208 x_fixed_nonglobal_reg_set.
3209 (fixed_nonglobal_reg_set): New macro.
3210 * reginfo.c (init_reg_sets_1): Initialize it.
3211 * ira.c (setup_alloc_regs): Use fixed_nonglobal_reg_set instead
3212 of fixed_reg_set.
3213 * df-scan.c (df_insn_refs_collect): Asms may reference global regs.
3214
3215 2016-05-03 Bin Cheng <bin.cheng@arm.com>
3216
3217 PR tree-optimization/56541
3218 * doc/invoke.texi (@item max-tree-if-conversion-phi-args): New item.
3219 * params.def (PARAM_MAX_TREE_IF_CONVERSION_PHI_ARGS): new param.
3220 * tree-if-conv.c (MAX_PHI_ARG_NUM): new macro.
3221 (any_complicated_phi): new static variable.
3222 (aggressive_if_conv): delete.
3223 (if_convertible_phi_p): support phis with more than two arguments.
3224 (if_convertible_bb_p): remvoe check on aggressive_if_conv and
3225 critical pred edges.
3226 (ifcvt_split_critical_edges): support phis with more than two
3227 arguments by checking new parameter. only split critical edges
3228 if needed.
3229 (tree_if_conversion): handle simd pragma marked loop using new
3230 local variable aggressive_if_conv. check any_complicated_phi.
3231
3232 2016-05-03 Bin Cheng <bin.cheng@arm.com>
3233
3234 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
3235 before using it.
3236
3237 2016-05-03 Bin Cheng <bin.cheng@arm.com>
3238
3239 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
3240 cbase.
3241
3242 2016-05-03 Oleg Endo <olegendo@gcc.gnu.org>
3243
3244 * config/sh/sh.md (udivsi3, divsi3, mulsi3): Simplify.
3245 (mulhisi3, umulhisi3, (smulsi3_highpart, umulsi3_highpart): Convert to
3246 define_insn_and_split.
3247 (mulsi3_i): New define_insn_and_split.
3248 (mulsi3_call): Convert to define_insn.
3249 (mulsidi3, mulsidi3_compact, umulsidi3, umulsidi3_compact):
3250 Remove constraints.
3251
3252 2016-05-02 Michael Meissner <meissner@linux.vnet.ibm.com>
3253
3254 * machmode.h (mode_complex): Add support to give the complex mode
3255 for a given mode.
3256 (GET_MODE_COMPLEX_MODE): Likewise.
3257 * stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
3258 stored by build_complex_type and gfc_build_complex_type instead of
3259 trying to figure out the appropriate mode based on the size. Raise
3260 an assertion error, if the type was not set.
3261 * genmodes.c (struct mode_data): Add field for the complex type of
3262 the given type.
3263 (blank_mode): Likewise.
3264 (make_complex_modes): Remember the complex mode created in the
3265 base type.
3266 (emit_mode_complex): Write out the mode_complex array to map a
3267 type mode to the complex version.
3268 (emit_insn_modes_c): Likewise.
3269 * tree.c (build_complex_type): Set the complex type to use before
3270 calling layout_type.
3271 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
3272 support for __float128 complex datatypes.
3273 (rs6000_hard_regno_mode_ok): Likewise.
3274 (rs6000_setup_reg_addr_masks): Likewise.
3275 (rs6000_complex_function_value): Likewise.
3276 * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
3277 __float128 and __ibm128 complex.
3278 (FLOAT128_IBM_P): Likewise.
3279 (ALTIVEC_ARG_MAX_RETURN): Likewise.
3280 * doc/extend.texi (Additional Floating Types): Document that
3281 -mfloat128 must be used to enable __float128. Document complex
3282 __float128 and __ibm128 support.
3283
3284 2016-05-02 Jakub Jelinek <jakub@redhat.com>
3285
3286 PR target/49244
3287 * gimple.c (gimple_builtin_call_types_compatible_p): Allow
3288 char/short arguments promoted to int because of promote_prototypes.
3289
3290 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
3291
3292 * config/i386/predicates.md (register_ssemem_operand): New predicate.
3293 * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Merge from
3294 *cmpi<FPCMP:unord><MODEF:mode>_mixed and
3295 *cmpi<FPCMP:unord><X87MODEF:mode>_i387. Disable unsupported
3296 alternatives using "enabled" attribute. Use register_ssemem_operand
3297 as operand 1 predicate.
3298 (*cmpi<unord>xf_i387): Split XFmode pattern from
3299 *cmpi<FPCMP:unord><X87MODEF:mode>_i387.
3300 (*absneg<mode>2): Merge from *absneg<mode>2_mixed and
3301 *absneg<mode>2_i387. Disable unsupported alternatives using
3302 "enabled" attribute.
3303 (*absnegxf2_i387): Split XFmode pattern from *absneg<mode>2_i387.
3304
3305 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
3306
3307 * omp-low.c (lower_oacc_head_tail): Assert there is at least one
3308 marker.
3309 (oacc_loop_process): Check mask for loop termination.
3310
3311 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
3312
3313 * cif-code.def (CIF_THUNK): Add.
3314 * ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
3315 accidental change.
3316
3317 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
3318
3319 * ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
3320 (dump_inline_summary): Dump it.
3321 (fp_expression_p): New predicate.
3322 (estimate_function_body_sizes): Use it.
3323 (inline_merge_summary): Merge fp_expressions.
3324 (inline_read_section): Read fp_expressions.
3325 (inline_write_summary): Write fp_expressions.
3326 * ipa-inline.c (can_inline_edge_p): Permit inlining across fp math
3327 codegen boundary if either caller or callee is !fp_expressions.
3328 * ipa-inline.h (inline_summary): Add fp_expressions.
3329 * ipa-inline-transform.c (inline_call): When inlining !fp_expressions
3330 to fp_expressions be sure the fp generation flags are updated.
3331
3332 2016-05-02 Jakub Jelinek <jakub@redhat.com>
3333
3334 PR rtl-optimization/70467
3335 * cse.c (cse_insn): Handle no-op MEM moves after folding.
3336
3337 PR rtl-optimization/70467
3338 * ipa-pure-const.c (check_call): Handle internal calls even in
3339 ipa mode like in local mode.
3340
3341 2016-05-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
3342
3343 * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.
3344
3345 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
3346
3347 * match.pd (X u< X, X u> X): New transformations.
3348
3349 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
3350
3351 * flag-types.h (enum warn_strict_overflow_code): Move ...
3352 * coretypes.h: ... here.
3353 * fold-const.h (fold_overflow_warning): Declare.
3354 * fold-const.c (fold_overflow_warning): Make non-static.
3355 (fold_comparison): Move the transformation of X +- C1 CMP C2
3356 into X CMP C2 -+ C1 ...
3357 * match.pd: ... here.
3358 * gimple-fold.c (fold_stmt_1): Protect with
3359 fold_defer_overflow_warnings.
3360
3361 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
3362
3363 * omp-low.c (struct oacc_loop): Add 'inner' field.
3364 (new_oacc_loop_raw): Initialize it to zero.
3365 (oacc_loop_fixed_partitions): Initialize it.
3366 (oacc_loop_auto_partitions): Partition outermost loop to outermost
3367 available partitioning.
3368
3369 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
3370
3371 * config/arc/arc.md (mulsidi3): Change operand 0 predicate to
3372 register_operand.
3373 (umulsidi3): Likewise.
3374 (indirect_jump): Fix jump instruction assembly patterns.
3375
3376 2016-05-02 Thomas Schwinge <thomas@codesourcery.com>
3377
3378 PR target/70860
3379 * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
3380 (nvptx_function_value): Assert non-NULL cfun.
3381
3382 2016-05-02 Eric Botcazou <ebotcazou@adacore.com>
3383
3384 PR rtl-optimization/70886
3385 * sched-deps.c (estimate_dep_weak): Canonicalize cselib values.
3386
3387 * cselib.h (rtx_equal_for_cselib_1): Declare.
3388 (rtx_equal_for_cselib_p: New inline function.
3389 * cselib.c (rtx_equal_for_cselib_p): Delete.
3390 (rtx_equal_for_cselib_1): Make public.
3391
3392 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
3393
3394 * config/i386/predicates.md (nonimm_ssenomem_operand): New predicate.
3395 (register_mixssei387nonimm_operand): Remove predicate.
3396 * config/i386/i386.md (*fop_<mode>_comm): Merge from
3397 *fop_<mode>_comm_mixed and *fop_<mode>_comm_i387. Disable unsupported
3398 alternatives using "enabled" attribute. Also check X87_ENABLE_ARITH
3399 for TARGET_MIX_SSE_I387 alternatives.
3400 (*fop_<mode>_1): Merge from *fop_<mode>_1_mixed and *fop_<mode>_1_i387.
3401 Disable unsupported alternatives using "enabled" attribute. Use
3402 nonimm_ssenomem_operand as operand 1 predicate. Also check
3403 X87_ENABLE_ARITH for TARGET_MIX_SSE_I387 alternatives.
3404
3405 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
3406
3407 * tree.c (cst_and_fits_in_hwi): Simplify.
3408
3409 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
3410
3411 * tree.h (wi::to_wide): New function.
3412 * expr.c (expand_expr_real_1): Use wi::to_wide.
3413 * fold-const.c (int_const_binop_1): Likewise.
3414 (extract_muldiv_1): Likewise.
3415
3416 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
3417
3418 * wide-int.h: Update offset_int and widest_int documentation.
3419 (WI_SIGNED_SHIFT_RESULT): New macro.
3420 (wi::binary_shift): Define signed_shift_result_type for
3421 shifts on offset_int- and widest_int-like types.
3422 (generic_wide_int): Support <<= and >>= if << and >> are supported.
3423 * tree.h (int_bit_position): Use shift operators instead of wi::
3424 shifts.
3425 * alias.c (adjust_offset_for_component_ref): Likewise.
3426 * expr.c (get_inner_reference): Likewise.
3427 * fold-const.c (fold_comparison): Likewise.
3428 * gimple-fold.c (fold_nonarray_ctor_reference): Likewise.
3429 * gimple-ssa-strength-reduction.c (restructure_reference): Likewise.
3430 * tree-dfa.c (get_ref_base_and_extent): Likewise.
3431 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
3432 (stmt_kills_ref_p): Likewise.
3433 * tree-ssa-ccp.c (bit_value_binop_1): Likewise.
3434 * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
3435 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
3436 (ao_ref_init_from_vn_reference): Likewise.
3437
3438 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
3439
3440 * wide-int.h: Update offset_int and widest_int documentation.
3441 (WI_SIGNED_BINARY_PREDICATE_RESULT): New macro.
3442 (wi::binary_traits): Allow ordered comparisons between offset_int and
3443 offset_int, between widest_int and widest_int, and between either
3444 of these types and basic C types.
3445 (operator <, <=, >, >=): Define for the same combinations.
3446 * tree.h (tree_int_cst_lt): Use comparison operators instead
3447 of wi:: comparisons.
3448 (tree_int_cst_le): Likewise.
3449 * gimple-fold.c (fold_array_ctor_reference): Likewise.
3450 (fold_nonarray_ctor_reference): Likewise.
3451 * gimple-ssa-strength-reduction.c (record_increment): Likewise.
3452 * tree-affine.c (aff_comb_cannot_overlap_p): Likewise.
3453 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Likewise.
3454 * tree-sra.c (completely_scalarize): Likewise.
3455 * tree-ssa-alias.c (stmt_kills_ref_p): Likewise.
3456 * tree-ssa-reassoc.c (extract_bit_test_mask): Likewise.
3457 * tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
3458 (check_for_binary_op_overflow): Likewise.
3459 (search_for_addr_array): Likewise.
3460 * ubsan.c (ubsan_expand_objsize_ifn): Likewise.
3461
3462 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
3463
3464 * config/arc/arc.c (arc_preferred_simd_mode): Remove enum keyword.
3465 (arc_save_restore): Likewise.
3466 (arc_dwarf_register_span): Likewise.
3467 (arc_output_pic_addr_const): Initialize suffix variable.
3468
3469 2016-05-02 Martin Liska <mliska@suse.cz>
3470
3471 * symbol-summary.h (function_summary::function_summary):
3472 Remove checking assert for all cgraph nodes.
3473 (function_summary::get): Check summary_uid.
3474 (symtab_insertion): Check summary_uid.
3475
3476 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
3477
3478 * config/arc/arc-protos.h (compact_memory_operand_p): Declare.
3479 * config/arc/arc.c (arc_output_commutative_cond_exec): Consider
3480 bmaskn instruction.
3481 (arc_dwarf_register_span): Remove enum keyword.
3482 (compact_memory_operand_p): New function.
3483 * config/arc/arc.h (reg_class): Add code density register classes.
3484 (REG_CLASS_NAMES): Likewise.
3485 (REG_CLASS_CONTENTS): Likewise.
3486 * config/arc/arc.md (*movqi_insn): Add code density instructions.
3487 (*movhi_insn, *movsi_insn, *movsf_insn): Likewise.
3488 (*extendhisi2_i, andsi3_i, cmpsi_cc_insn_mixed): Likewise.
3489 (*cmpsi_cc_c_insn, *movsi_ne): Likewise.
3490 * config/arc/constraints.md (C2p, Uts, Cm1, Cm3, Ucd): New
3491 constraints.
3492 (h, Rcd, Rsd, Rzd): New register constraints.
3493 (T): Use compact_memory_operand_p function.
3494 * config/arc/predicates.md (compact_load_memory_operand): Remove.
3495
3496 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
3497
3498 * config/sh/sh.md (*negnegt, *movtt): Remove.
3499
3500 2016-05-02 Marek Polacek <polacek@redhat.com>
3501 Tom de Vries <tom@codesourcery.com>
3502
3503 PR tree-optimization/70700
3504 * tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids
3505 bigger than FIRST_REF_NODE.
3506
3507 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
3508
3509 PR target/52898
3510 * config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4,
3511 TARGET_CMPEQDI_T.
3512 (prepare_cbranch_operands): Don't use scratch register. Assume that
3513 function is used when pseudos can be created.
3514 (expand_cbranchdi4): Likewise. Remove unused TARGET_CMPEQDI_T paths.
3515 * config/sh/sh.md (cbranchsi4): Allow only when pseudos can be created.
3516 (cbranchdi4, cbranchdi4_i): Simplify to single cbranchdi4
3517 define_expand. Allow it only when pseudos can be created.
3518 * config/sh/sh.opt (mcbranchdi, mcmpeqdi): Delete.
3519
3520 2016-05-01 Uros Bizjak <ubizjak@gmail.com>
3521
3522 * config/i386/constraints.md (BC): Only allow -1 operands.
3523 * config/i386/sse.md (mov<mode>_internal): Add (v,C) alternative.
3524 Add "enabled" attribute. Update XI mode attribute calculation.
3525 * config/i386/i386.md (*movxi_internal_avx512f): Add (v,C) alternative.
3526 (*movoi_internal_avx): Update XI mode attribute calculation.
3527 (*movti_internal): Ditto.
3528
3529 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
3530
3531 * config/sh/sh.md (push, pop, ic_invalidate_line, cstoresi4, cstoredi4,
3532 cstoresf4, cstoredf4, fix_truncsfsi2): Remove constraints.
3533
3534 2016-05-01 Eric Botcazou <ebotcazou@adacore.com>
3535
3536 * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Do not use switch
3537 statement on instruction code. Remove trailing spaces.
3538 (altivec_expand_stv_builtin): Likewise.
3539
3540 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
3541
3542 * config/sh/sh.h (TARGET_SH4): Remove and use default implementation.
3543 (TARGET_FPU_DOUBLE): Simplify.
3544 (BASE_ARG_REG, DOUBLE_TYPE_SIZE, OPTIMIZE_MODE_SWITCHING): Replace
3545 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions with 'TARGET_FPU_DOUBLE'.
3546 * config/sh/sh.c: Replace 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions
3547 with 'TARGET_FPU_DOUBLE'.
3548 * config/sh/sh.md: Likewise.
3549
3550 2016-05-01 Yoshinori Sato <ysato@users.sourceforge.jp>
3551
3552 * config/sh/linux.h (SH_DIV_STRATEGY_DEFAULT,
3553 SH_DIV_STR_FOR_SIZE): Remove.
3554 * config/sh/netbsd-elf.h (SH_DIV_STRATEGY_DEFAULT,
3555 SH_DIV_STR_FOR_SIZE): Remove.
3556
3557 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
3558
3559 * config/sh/predicates.md (any_register_operand, zero_extend_operand,
3560 logical_reg_operand): Delete.
3561 (arith_operand, arith_reg_dest, arith_or_int_operand, cmpsi_operand,
3562 arith_reg_or_0_operand, arith_reg_or_0_or_1_operand, logical_operand,
3563 logical_and_operand, movsrc_no_disp_mem_operand): Rewrite using
3564 match_operand and match_test.
3565 (sh_const_vec, sh_1el_vec): Remove redundant checks. Declare local
3566 variables on their first use. Return bool values.
3567 * config/sh/sh.h (LOAD_EXTEND_OP): Update comment.
3568 * config/sh/sh.md (andsi3, iorsi3): Use arith_reg_dest for result and
3569 arith_reg_operand for input operand. Remove empty constraints.
3570 (xorsi3): Delete.
3571 (*xorsi3_compact): Rename to xorsi3.
3572 (zero_extend<mode>si2): Use arith_reg_operand for input operand.
3573 (*zero_extend<mode>si2_disp_mem): Update comment.
3574 (mov_nop): Delete.
3575
3576 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
3577
3578 * config/sh/t-sh: Remove SH5 support.
3579 * config.gcc: Likewise.
3580 * configure: Likewise.
3581
3582 2016-04-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3583
3584 * config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus.
3585
3586 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
3587
3588 * config/sh/sh.c (register_sh_passes, sh_option_override,
3589 sh_print_operand, prepare_move_operands,
3590 sh_can_follow_jump): Remove TARGET_SH1 checks.
3591 * config/sh/sh.h (TARGET_VARARGS_PRETEND_ARGS, VALID_REGISTER_P,
3592 PROMOTE_MODE): Likewise.
3593 * config/sh/sh.md (adddi3, addsi3, subdi3, subsi3, andsi3,
3594 movdi): Likewise.
3595
3596 2016-04-30 Alan Modra <amodra@gmail.com>
3597
3598 * config/rs6000/rs6000.c (rs6000_savres_strategy): Force inline
3599 restoring when fixed_reg_p, but allow out-of-line or stmw save.
3600 Check for user regs later to avoid unnecessary looping over regs.
3601 Merge user reg check with non-saved reg check. Don't force
3602 inline VR restore when static chain used.
3603 (rs6000_frame_related): Omit eh_frame info for user regs when
3604 saving.
3605 (fixed_regs_p): Delete.
3606
3607 2016-04-30 Alan Modra <amodra@gmail.com>
3608
3609 * config/rs6000/rs6000.c (SAVRES_MULTIPLE): Replace with..
3610 (SAVE_STRATEGY, REST_STRATEGY): ..this. Renumber and sort enum.
3611 Update all uses.
3612
3613 2016-04-30 Alan Modra <amodra@gmail.com>
3614
3615 PR target/69645
3616 * config/rs6000/rs6000.c (fixed_reg_p): New function.
3617 (fixed_regs_p): Rename from global_regs_p. Call fixed_reg_p.
3618 Update all uses.
3619
3620 2016-04-30 Alan Modra <amodra@gmail.com>
3621
3622 * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
3623 Remove redundant PIC_OFFSET_TABLE_REGNUM test. Replace with
3624 flag_pic test for Darwin.
3625
3626 2016-04-30 Alan Modra <amodra@gmail.com>
3627
3628 * regs.h (struct reg_info_t): Delete freq_calls_crossed and
3629 throw_calls_crossed.
3630 (REG_FREQ_CALLS_CROSSED): Delete.
3631 (REG_N_THROWING_CALLS_CROSSED): Delete.
3632 * regstat.c (regstat_bb_compute_ri): Don't calculate
3633 REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED.
3634 (dump_reg_info): Don't print call cross frequency.
3635 * ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED
3636 and REG_N_THROWING_CALLS_CROSSED.
3637
3638 2016-04-30 Alan Modra <amodra@gmail.com>
3639
3640 * regs.h (struct reg_info_t): Delete live_length.
3641 (REG_LIVE_LENGTH): Delete macro.
3642 * regstat.c (regstat_bb_compute_ri): Delete artificial_uses,
3643 local_live, local_processed and local_live_last_luid params.
3644 Replace bb_index param with bb. Don't set REG_LIVE_LENGTH.
3645 Formatting fixes.
3646 (regstat_compute_ri): Adjust for above. Don't set
3647 REG_LIVE_LENGTH.
3648 (dump_reg_info): Don't print live length.
3649 * ira.c (update_equiv_regs): Replace test of REG_LIVE_LENGTH
3650 with test of setjmp_crosses. Don't set REG_LIVE_LENGTH.
3651 Localize loop_depth var.
3652
3653 2016-04-30 Alan Modra <amodra@gmail.com>
3654
3655 * ira.c (enum valid_equiv): New.
3656 (validate_equiv_mem): Return enum.
3657 (update_equiv_mem): Create replacement in more cases.
3658 (add_store_equivs): Update validate_equiv_mem call.
3659
3660 2016-04-30 Alan Modra <amodra@gmail.com>
3661
3662 * ira.c (combine_and_move_insns): Rather than scanning insns,
3663 use DF infrastucture to find use and def insns.
3664
3665 2016-04-30 Alan Modra <amodra@gmail.com>
3666
3667 ira.c (combine_and_move_insns): Move invariant conditions..
3668 (ira.c): ..to here. Call combine_and_move_insns before
3669 add_store_equivs. Call grow_reg_equivs later. Allocate
3670 req_equiv later using max_reg_num() rather than global max_regno.
3671 (contains_replace_regs): Delete.
3672 (add_store_equivs): Remove contains_replace_regs test.
3673
3674 2016-04-30 Alan Modra <amodra@gmail.com>
3675
3676 * ira.c (struct equiv_mem_data): New.
3677 (equiv_mem, equiv_mem_modified): Delete static vars.
3678 (validate_equiv_mem_from_store): Use "data" param to communicate..
3679 (validate_equiv_mem): ..from here.
3680
3681 2016-04-30 Alan Modra <amodra@gmail.com>
3682
3683 * ira.c (add_store_equivs, combine_and_move_insns): New functions,
3684 split out from..
3685 (update_reg_equivs): ..here. Move allocation and freeing of
3686 reg_equiv, and calls to grow_reg_equivs, init_alias_analysis,
3687 end_alias_analysis to..
3688 (ira): ..here.
3689
3690 2016-04-30 Alan Modra <amodra@gmail.com>
3691
3692 * ira.c (pdx_subregs): Delete.
3693 (struct equivalence): Add pdx_subregs field.
3694 (set_paradoxical_subreg): Remove pdx_subregs param. Update
3695 pdx_subregs access.
3696 (update_equiv_regs): Don't create or free pdx_subregs. Update
3697 pdx_subregs access.
3698
3699 2016-04-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3700
3701 * config/rs6000/altivec.h: Change definitions of vec_xl and
3702 vec_xst.
3703 * config/rs6000/rs6000-builtin.def (LD_ELEMREV_V2DF): New.
3704 (LD_ELEMREV_V2DI): New.
3705 (LD_ELEMREV_V4SF): New.
3706 (LD_ELEMREV_V4SI): New.
3707 (LD_ELEMREV_V8HI): New.
3708 (LD_ELEMREV_V16QI): New.
3709 (ST_ELEMREV_V2DF): New.
3710 (ST_ELEMREV_V2DI): New.
3711 (ST_ELEMREV_V4SF): New.
3712 (ST_ELEMREV_V4SI): New.
3713 (ST_ELEMREV_V8HI): New.
3714 (ST_ELEMREV_V16QI): New.
3715 (XL): New.
3716 (XST): New.
3717 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
3718 descriptions for VSX_BUILTIN_VEC_XL and VSX_BUILTIN_VEC_XST.
3719 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Map from
3720 TARGET_P9_VECTOR to RS6000_BTM_P9_VECTOR.
3721 (altivec_expand_builtin): Add handling for
3722 VSX_BUILTIN_ST_ELEMREV_<MODE> and VSX_BUILTIN_LD_ELEMREV_<MODE>.
3723 (rs6000_invalid_builtin): Add error-checking for
3724 RS6000_BTM_P9_VECTOR.
3725 (altivec_init_builtins): Define builtins used to implement vec_xl
3726 and vec_xst.
3727 (rs6000_builtin_mask_names): Define power9-vector.
3728 * config/rs6000/rs6000.h (MASK_P9_VECTOR): Define.
3729 (RS6000_BTM_P9_VECTOR): Define.
3730 (RS6000_BTM_COMMON): Include RS6000_BTM_P9_VECTOR.
3731 * config/rs6000/vsx.md (vsx_ld_elemrev_v2di): New define_insn.
3732 (vsx_ld_elemrev_v2df): Likewise.
3733 (vsx_ld_elemrev_v4sf): Likewise.
3734 (vsx_ld_elemrev_v4si): Likewise.
3735 (vsx_ld_elemrev_v8hi): Likewise.
3736 (vsx_ld_elemrev_v16qi): Likewise.
3737 (vsx_st_elemrev_v2df): Likewise.
3738 (vsx_st_elemrev_v2di): Likewise.
3739 (vsx_st_elemrev_v4sf): Likewise.
3740 (vsx_st_elemrev_v4si): Likewise.
3741 (vsx_st_elemrev_v8hi): Likewise.
3742 (vsx_st_elemrev_v16qi): Likewise.
3743 * doc/extend.texi: Add prototypes for vec_xl and vec_xst. Correct
3744 grammar.
3745
3746 2016-04-29 Patrick Palka <ppalka@gcc.gnu.org>
3747
3748 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Split
3749 out into ...
3750 (simplify_control_stmt_condition_1): ... here. Recurse into
3751 BIT_AND_EXPRs and BIT_IOR_EXPRs.
3752
3753 2016-04-29 David Edelsohn <dje.gcc@gmail.com>
3754
3755 PR target/69810
3756 * config/rs6000/rs6000.md (EXTQI): Don't allow extension to HImode.
3757 (zero_extendqi<mode>2_dot): Revert earlier conversion from
3758 define_insn_and_split to define_insn.
3759 (zero_extendqi<mode>2_dot2): Same.
3760 (extendqi<mode>2_dot): Same.
3761 (extendqi<mode>2_dot2): Same.
3762
3763 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
3764
3765 * config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK.
3766 (probe_stack): New expander.
3767 (probe_stack_<mode>): New insn pattern.
3768
3769 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
3770
3771 * config/i386/i386.md
3772 (operations with memory inputs setting flags peephole2):
3773 Remove uneeded REG_P checks. Cleanup pattern generation.
3774
3775 2016-04-29 Ilya Enkovich <ilya.enkovich@intel.com>
3776
3777 * tree-vect-loop.c (vect_transform_loop): Fix
3778 nb_iterations_upper_bound computation for vectorized loop.
3779
3780 2016-04-29 Marek Polacek <polacek@redhat.com>
3781 Jakub Jelinek <jakub@redhat.com>
3782
3783 PR sanitizer/70342
3784 * fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
3785 TARGET_EXPR_SLOT as a base.
3786
3787 2016-04-29 Andrew Burgess <andrew.burgess@embecosm.com>
3788
3789 * config/arc/arc.md (*loadqi_update): Replace use of 'rI' constraint
3790 with 'rCm2' constraints to limit possible immediate size.
3791 (*load_zeroextendqisi_update): Likewise.
3792 (*load_signextendqisi_update): Likewise.
3793 (*loadhi_update): Likewise.
3794 (*load_zeroextendhisi_update): Likewise.
3795 (*load_signextendhisi_update): Likewise.
3796 (*loadsi_update): Likewise.
3797 (*loadsf_update): Likewise.
3798
3799 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
3800
3801 * config/i386/predicates.md (constm1_operand): Fix comparison.
3802
3803 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
3804
3805 * testsuite/gcc.target/arc/ieee_eq.c: New test.
3806
3807 2016-04-29 Oleg Endo <olegendo@gcc.gnu.org>
3808
3809 * common/config/sh/sh-common.c (sh_option_optimization_table): Remove
3810 remaining SH5 related settings.
3811 * config/sh/sh-protos.h (shmedia_cleanup_truncate,
3812 shmedia_prepare_call_address): Delete.
3813 * config/sh/sh.c (sh_print_operand, output_stack_adjust,
3814 DWARF_CIE_DATA_ALIGNMENT, LOCAL_ALIGNMENT): Update comments.
3815 * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC,
3816 UNSUPPORTED_SH2A): Remove m5 checks.
3817 (sh_divide_strategy_e): Remove SH5 division strategies.
3818 (TARGET_PTRMEMFUNC_VBIT_LOCATION): Remove and use default.
3819 * config/sh/sh.md (divsf3): Reinstate define_expand pattern.
3820
3821 2016-04-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
3822
3823 * config/s390/s390.c (s390_rtx_costs): Update documentation.
3824
3825 2016-04-29 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3826
3827 * config/s390/2964.md ("z13_unit_fxu", "z13_0"): Remove lder.
3828 * config/s390/s390.md ("movsi_larl", "*movsi_esa", "mov<mode>"):
3829 Change lder to ldr.
3830 * config/s390/vector.md ("mov<mode>"): Likewise.
3831
3832 2016-04-29 Ulrich Weigand <uweigand@de.ibm.com>
3833
3834 * config/s390/constraints.md ("U", "W"): Invoke
3835 s390_mem_constraint with "ZR" and "ZT".
3836 * config/s390/s390.c (s390_check_qrst_address): Reject invalid
3837 addresses when using LRA. Accept also short displacements for S
3838 and T constraints. Do not check for long displacement target for
3839 S and T constraints.
3840 (s390_mem_constraint): Remove handling of U and W constraints.
3841 * config/s390/s390.md (various patterns): Remove the short
3842 displacement constraints (Q and R) if a long displacement
3843 constraint is present. Add longdisp as required CPU capability.
3844 * config/s390/vector.md: Likewise.
3845 * config/s390/vx-builtins.md: Likewise.
3846
3847 2016-04-29 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
3848
3849 PR target/60040
3850 * reload1.c (reload): Call finish_spills before
3851 restarting reload loop. Skip select_reload_regs
3852 if update_eliminables_and_spill returns true.
3853
3854 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
3855
3856 * config/arc/arc.h (UNSIGNED_INT12, UNSIGNED_INT16): Define.
3857 * config/arc/arc.md (umulhisi3): Use arc_short_operand predicate.
3858 (umulhisi3_imm): Update predicates and constraint letters.
3859 (umulhisi3_reg): Declare instruction as commutative.
3860 * config/arc/constraints.md (J12, J16): New constraints.
3861 * config/arc/predicates.md (short_unsigned_const_operand): New
3862 predicate.
3863 (arc_short_operand): Likewise.
3864 * testsuite/gcc.target/arc/umulsihi3_z.c: New file.
3865
3866 2016-04-29 Richard Biener <rguenther@suse.de>
3867
3868 PR tree-optimization/13962
3869 PR tree-optimization/65686
3870 * tree-ssa-alias.h (ptrs_compare_unequal): Declare.
3871 * tree-ssa-alias.c (ptrs_compare_unequal): New function
3872 using PTA to compare pointers.
3873 * match.pd: Add pattern for pointer equality compare simplification
3874 using ptrs_compare_unequal.
3875
3876 2016-04-29 Richard Biener <rguenther@suse.de>
3877
3878 * stor-layout.c (layout_type): Do not build a pointer-to-element
3879 type for arrays.
3880
3881 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
3882
3883 * config/i386/i386.md (Load+RegOp to Mov+MemOp peephole2):
3884 Use SWI mode iterator. Use general_reg_operand predicate.
3885 (Load+RegOp to Mov+MemOp peephole2 with vector regs): Split
3886 peephole to MMX and SSE part. Use mmx_reg_operand and sse_reg_operand
3887 predicates.
3888
3889 2016-04-29 Jakub Jelinek <jakub@redhat.com>
3890
3891 PR middle-end/70843
3892 * fold-const.c (operand_equal_p): Don't verify hash value equality
3893 if arg0 == arg1.
3894 * tree.c (inchash::add_expr): Handle STATEMENT_LIST. Ignore BLOCK
3895 and OMP_CLAUSE.
3896
3897 2016-04-28 Jakub Jelinek <jakub@redhat.com>
3898
3899 PR target/70858
3900 * config/i386/i386.c (bdesc_special_args): Add | OPTION_MASK_ISA_64BIT
3901 to __builtin_ia32_lwpval64 and __builtin_ia32_lwpins64.
3902 (bdesc_args): Add | OPTION_MASK_ISA_64BIT to __builtin_ia32_bextr_u64,
3903 __builtin_ia32_bextri_u64, __builtin_ia32_bzhi_di,
3904 __builtin_ia32_pdep_di and __builtin_ia32_pext_di.
3905
3906 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
3907
3908 * config/rs6000/rs6000.c (compute_save_world_info): Rename info_ptr
3909 to info. Don't initialize separate fields to 0. Clean up
3910 formatting a bit.
3911
3912 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
3913
3914 * config/i386/i386.md (peephole2s for operations with memory inputs):
3915 Use SWI mode iterator.
3916 (peephole2s for operations with memory outputs): Ditto.
3917 Do not check for stack checking probe.
3918
3919 (probe_stack): Remove expander.
3920
3921 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
3922 Andrew Burgess <andrew.burgess@embecosm.com>
3923
3924 * config/arc/arc.c (arc_print_operand): Print integer 'H' / 'L'
3925 operands as 32-bits.
3926
3927 2016-04-28 Jason Merrill <jason@redhat.com>
3928
3929 * gdbinit.in: Skip line-map.h.
3930
3931 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
3932 Andrew Burgess <andrew.burgess@embecosm.com>
3933
3934 * config/arc/arc.c (arc_conditional_register_usage): Take
3935 TARGET_RRQ_CLASS into account.
3936 (arc_print_operand): Support printing 'p' and 's' operands.
3937 * config/arc/arc.h (TARGET_NPS_BITOPS_DEFAULT): Provide default
3938 as 0.
3939 (TARGET_RRQ_CLASS): Define.
3940 (IS_POWEROF2_OR_0_P): Define.
3941 * config/arc/arc.md (*movsi_insn): Add w/Clo, w/Chi, and w/Cbi
3942 alternatives.
3943 (*tst_movb): New define_insn.
3944 (*tst): Avoid recognition if it could prevent '*tst_movb'
3945 combination; replace c/CnL with c/Chs alternative.
3946 (*tst_bitfield_tst): New define_insn.
3947 (*tst_bitfield_asr): New define_insn.
3948 (*tst_bitfield): New define_insn.
3949 (andsi3_i): Add Rrq variant.
3950 (extzv): New define_expand.
3951 (insv): New define_expand.
3952 (*insv_i): New define_insn.
3953 (*movb): New define_insn.
3954 (*movb_signed): New define_insn.
3955 (*movb_high): New define_insn.
3956 (*movb_high_signed): New define_insn.
3957 (*movb_high_signed + 1): New define_split pattern.
3958 (*mrgb): New define_insn.
3959 (*mrgb + 1): New define_peephole2 pattern.
3960 (*mrgb + 2): New define_peephole2 pattern.
3961 * config/arc/arc.opt (mbitops): New option for nps400, uses
3962 TARGET_NPS_BITOPS_DEFAULT.
3963 * config/arc/constraints.md (q): Make register class conditional.
3964 (Rrq): New register constraint.
3965 (Chs): New constraint.
3966 (Clo): New constraint.
3967 (Chi): New constraint.
3968 (Cbf): New constraint.
3969 (Cbn): New constraint.
3970 (C18): New constraint.
3971 (Cbi): New constraint.
3972
3973 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
3974
3975 * cfganal.c (bitmap_intersection_of_succs): Delete assert checking
3976 dst->popcount.
3977 (bitmap_intersection_of_preds): Ditto.
3978 (bitmap_union_of_succs): Ditto.
3979 (bitmap_union_of_preds): Ditto.
3980 * sbitmap.c (do_popcount): Delete.
3981 (BITMAP_DEBUGGING): Delete.
3982 (sbitmap_verify_popcount): Delete.
3983 (sbitmap_alloc): Don't initialize the popcount field.
3984 (sbitmap_alloc_with_popcount): Delete.
3985 (sbitmap_resize): Don't resize the popcount array.
3986 (sbitmap_vector_alloc): Don't initialize the popcount field.
3987 (bitmap_copy): Don't copy the popcount array.
3988 (bitmap_clear): Don't clear the popcount array.
3989 (bitmap_clear): Delete the popcount array handling.
3990 (bitmap_ior_and_compl): Delete the popcount assert.
3991 (bitmap_not): Ditto.
3992 (bitmap_and_compl): Ditto.
3993 (bitmap_and): Delete the popcount array handling.
3994 (bitmap_xor): Ditto.
3995 (bitmap_ior): Ditto.
3996 (bitmap_or_and): Delete the popcount assert.
3997 (bitmap_and_or): Ditto.
3998 (popcount_table): Delete.
3999 (sbitmap_elt_popcount): Delete.
4000 * sbitmap.h (simple_bitmap_def): Delete the popcount field.
4001 (bitmap_set_bit): Delete the popcount assert.
4002 (bitmap_clear_bit): Ditto.
4003 (sbitmap_free): Don't free the popcount array.
4004 (sbitmap_alloc_with_popcount): Delete declaration.
4005 (sbitmap_popcount): Ditto.
4006
4007 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
4008 Andrew Burgess <andrew.burgess@embecosm.com>
4009
4010 * config/arc/arc.h (SYMBOL_FLAG_CMEM): Define.
4011 (TARGET_NPS_CMEM_DEFAULT): Provide default definition.
4012 * config/arc/arc.c (arc_address_cost): Return 0 for cmem_address.
4013 (arc_encode_section_info): Set SYMBOL_FLAG_CMEM where indicated.
4014 * config/arc/arc.opt (mcmem): New option.
4015 * config/arc/arc.md (*extendqihi2_i): Add r/Uex alternative,
4016 supply length for r/m alternative.
4017 (*extendqisi2_ac): Likewise.
4018 (*extendhisi2_i): Add r/Uex alternative, supply length for r/m and
4019 r/Uex alternative.
4020 (movqi_insn): Add r/Ucm and Ucm/?Rac alternatives.
4021 (movhi_insn): Likewise.
4022 (movsi_insn): Add r/Ucm,Ucm/w alternatives.
4023 (*zero_extendqihi2_i): Add r/Ucm alternative.
4024 (*zero_extendqisi2_ac): Likewise.
4025 (*zero_extendhisi2_i): Likewise.
4026 * config/arc/constraints.md (Uex): New memory constraint.
4027 (Ucm): New define_constraint.
4028 * config/arc/predicates.md (long_immediate_loadstore_operand):
4029 Return 0 for MEM with cmem_address address.
4030 (cmem_address_0): New predicates.
4031 (cmem_address_1): Likewise.
4032 (cmem_address_2): Likewise.
4033 (cmem_address): Likewise.
4034
4035 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
4036
4037 * config/rs6000/rs6000.c (machine_function): Rename
4038 insn_chain_scanned_p to spe_insn_chain_scanned_p.
4039 (rs6000_stack_info): Adjust.
4040
4041 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
4042 Andrew Burgess <andrew.burgess@embecosm.com>
4043
4044 * config/arc/constraints.md (Usd): Convert to define_constraint.
4045 (Us<): Likewise.
4046 (Us>): Likewise.
4047
4048 2016-04-28 Jakub Jelinek <jakub@redhat.com>
4049
4050 PR target/70821
4051 * config/i386/sync.md (define_peephole2 *atomic_fetch_add_cmp<mode>):
4052 Add new peephole2 where the first insn is *mov<mode>_or instead of
4053 *mov<mode>_internal.
4054
4055 2016-04-28 Segher Boesssenkool <segher@kernel.crashing.org>
4056
4057 * tracer.c (bb_seen): Make static.
4058
4059 2016-04-28 Andrew Burgess <andrew.burgess@embecosm.com>
4060
4061 * common/config/arc/arc-common.c (arc_handle_option): Add NPS400
4062 support, setup defaults.
4063 * config/arc/arc-opts.h (enum processor_type): Add NPS400.
4064 * config/arc/arc.c (arc_init): Add NPS400 support.
4065 * config/arc/arc.h (CPP_SPEC): Add NPS400 defines.
4066 (TARGET_ARC700): NPS400 is also an ARC700.
4067 * config/arc/arc.opt: Add NPS400 options to -mcpu=.
4068
4069 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
4070
4071 PR target/70668
4072 * config/nds32/nds32.md (casesi): Don't access the operands array
4073 out of bounds.
4074
4075 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
4076
4077 * config/i386/i386.md (zeroing peephole2): Use general_reg_operand.
4078 (or $-1,reg peephole2): Ditto.
4079 (strict_low_part zeroing peephole2): Use SWI12 mode iterator.
4080
4081 2016-04-28 Markus Trippelsdorf <markus@trippelsdorf.de>
4082
4083 * doc/extend.texi (Common Function Attributes) [optimize]:
4084 Discourage use of the optimize attribute.
4085
4086 2016-04-28 Bill Seurer <seurer@linux.vnet.ibm.com>
4087
4088 * config/rs6000/rs6000-builtin.def (vec_adde): Change vec_adde to a
4089 special case builtin.
4090 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
4091 ALTIVEC_BUILTIN_VEC_ADDE.
4092 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
4093 support for ALTIVEC_BUILTIN_VEC_ADDE.
4094 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
4095 for __builtin_vec_adde.
4096
4097 2016-04-28 Jakub Jelinek <jakub@redhat.com>
4098
4099 * config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
4100 * config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise.
4101
4102 2016-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4103
4104 PR testsuite/70595
4105 * doc/sourcebuild.texi (Effective-Target Keywords, Other
4106 attributes): Document cilkplus_runtime.
4107
4108 2016-04-28 Martin Jambor <mjambor@suse.cz>
4109
4110 * tree-cfg.c (verify_expr): Verify that local declarations belong to
4111 this function. Call verify_expr on MEM_REFs and bases of other
4112 handled_components.
4113
4114 2016-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4115
4116 * internal-fn.c (expand_arith_overflow): Convert preprocessor check
4117 for WORD_REGISTER_OPERATIONS to runtime check.
4118
4119 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
4120
4121 * config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.
4122
4123 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
4124
4125 * config/arc/arc.c (arc_process_double_reg_moves): Fix for
4126 big-endian compilation.
4127 * config/arc/arc.md (addf3): Likewise.
4128 (subdf3): Likewise.
4129 (muldf3): Likewise.
4130
4131 2016-04-28 Richard Biener <rguenther@suse.de>
4132
4133 PR tree-optimization/70840
4134 * match.pd: powi(-x, y) and powi(|x|,y) -> powi(x,y) if y is even;
4135 Fix pow(copysign(x, y), z) -> pow(x, z) and add powi variant;
4136 Mark x * pow(x,c) -> pow(x,c+1) commutative.
4137 Add powi(x,y) * powi(z,y) -> powi(x*z,y).
4138
4139 2015-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4140
4141 * config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
4142 and explain why in a comment.
4143
4144 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
4145
4146 * config/arc/arc.md (cpu_facility): Add fpx variant.
4147 (subdf3): Prohibit use reverse sub when assist operations option
4148 is enabled.
4149 * config/arc/fpx.md (subdf3_insn, *dsubh_peep2_insn): Allow drsub
4150 instructions only when FPX is enabled.
4151 * testsuite/gcc.target/arc/trsub.c: New test.
4152
4153 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
4154
4155 * config/i386/i386.md (*fop_<mode>_1_mixed): Do not check for
4156 mult_operator when calculating "type" attribute.
4157 (*fop_<mode>_1_i387): Ditto.
4158 (*fop_xf_1_i387): Ditto.
4159 (x87 stack loads peephole2): Add "reg = op (mem, reg)" peephole2.
4160 Use std::swap to swap operands. Use RTL expressions to generate
4161 converted pattern.
4162
4163 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
4164 Joern Rennecke <joern.rennecke@embecosm.com>
4165
4166 * config/arc/arc-protos.h (arc_legitimize_pic_address): Remove
4167 declaration.
4168 (emit_pic_move): Remove.
4169 (arc_eh_uses, insn_is_tls_gd_dispatch): Declare.
4170 * config/arc/arc.c (emit_pic_move): Removed.
4171 (TARGET_HAVE_TLS): Define.
4172 (arc_conditional_register_usage): Test for arc_tp_regno.
4173 (arc_print_operand, arc_print_operand_address): Handle TLS
4174 unspecs.
4175 (arc_needs_pcl_p): New function.
4176 (arc_legitimate_pc_offset_p): Use arc_needs_pcl_p.
4177 (arc_legitimate_pic_addr_p): Handle TLS unspecs.
4178 (arc_raw_symbolic_reference_mentioned_p): Likewise.
4179 (arc_get_tp, arc_emit_call_tls_get_addr): New function.
4180 (arc_legitimize_tls_address): Likewise.
4181 (DTPOFF_ZERO_SYM): Define.
4182 (arc_legitimize_pic_address): Make it static, handle TLS cases.
4183 (arc_output_pic_addr_const): Print TLS unspecs.
4184 (prepare_pic_move): New function, replaces emit_pic_move.
4185 (arc_legitimate_constant_p): Handle TLS unspecs.
4186 (arc_legitimate_address_p): Likewise.
4187 (arc_rewrite_small_data_p): Use assert for TLS constants.
4188 (prepare_move_operands): Use prepare_pic_move.
4189 (arc_legitimize_address): Legitimize tls addresses.
4190 (arc_epilogue_uses): Check for arc_tp_regno.
4191 (arc_eh_uses, insn_is_tls_gd_dispatch): New function.
4192 * config/arc/arc.h [DEFAULT_LIBC != LIBC_UCLIBC] (EXTRA_SPECS):
4193 Define.
4194 [DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC):
4195 Likewise.
4196 [DEFAULT_LIBC != LIBC_UCLIBC] (STARTFILE_SPEC): Add
4197 %(arc_tls_extra_start_spec).
4198 (TARGET_CPU_CPP_BUILTINS): Define __ARC_TLS_REGNO__.
4199 (REGNO_OK_FOR_BASE_P): Check for arc_tp_regno.
4200 (EH_USES): Define.
4201 (INSN_REFERENCES_ARE_DELAYED): Use insn_is_tls_gd_dispatch.
4202 * config/arc/arc.md (UNSPEC_TLS_GD, UNSPEC_TLS_LD, UNSPEC_TLS_IE)
4203 (UNSPEC_TLS_OFF): Add.
4204 (R10_REG): Define.
4205 (tls_load_tp_soft, tls_gd_load, tls_gd_get_addr, tls_gd_dispatch)
4206 (get_thread_pointersi): New patterns.
4207 * config/arc/arc.opt (mtp-regno): New option.
4208 * config/arc/predicates.md (move_src_operand): Handle TLS symbols.
4209 (move_dest_operand): Likewise.
4210 * configure: Regenerate.
4211 * configure.ac: Add arc*-*-* case to test for tls.
4212 * doc/invoke.texi (ARC options): Document mtp-regno.
4213
4214 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
4215
4216 * config/arc/arc.c (arc_vector_mode_supported_p): Add support for
4217 the new ARC HS SIMD instructions.
4218 (arc_preferred_simd_mode): New function.
4219 (arc_autovectorize_vector_sizes): Likewise.
4220 (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
4221 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
4222 (arc_init_reg_tables): Accept new ARC HS SIMD modes.
4223 (arc_init_builtins): Add new SIMD builtin types.
4224 (arc_split_move): Handle 64 bit vector moves.
4225 * config/arc/arc.h (TARGET_PLUS_DMPY, TARGET_PLUS_MACD)
4226 (TARGET_PLUS_QMACW): Define.
4227 * config/arc/builtins.def (QMACH, QMACHU, QMPYH, QMPYHU, DMACH)
4228 (DMACHU, DMPYH, DMPYHU, DMACWH, DMACWHU, VMAC2H, VMAC2HU, VMPY2H)
4229 (VMPY2HU, VADDSUB2H, VSUBADD2H, VADDSUB, VSUBADD, VADDSUB4H)
4230 (VSUBADD4H): New builtins.
4231 * config/arc/simdext.md: Add new ARC HS SIMD instructions.
4232 * testsuite/gcc.target/arc/builtin_simdarc.c: New file.
4233
4234 2016-04-28 Eduard Sanou <dhole@openmailbox.org>
4235 Matthias Klose <doko@debian.org>
4236
4237 * doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable.
4238
4239 2016-04-28 Richard Biener <rguenther@suse.de>
4240
4241 PR middle-end/70777
4242 * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
4243 canonicalization.
4244
4245 2016-04-28 Oleg Endo <olegendo@gcc.gnu.org>
4246
4247 * common/config/sh/sh-common.c: Remove SH5 support.
4248 * config/sh/constraints.md: Likewise.
4249 * config/sh/config/sh/elf.h: Likewise.
4250 * config/sh/linux.h: Likewise.
4251 * config/sh/netbsd-elf.h: Likewise.
4252 * config/sh/predicates.md: Likewise.
4253 * config/sh/sh-c.c: Likewise.
4254 * config/sh/sh-protos.h: Likewise.
4255 * config/sh/sh.c: Likewise.
4256 * config/sh/sh.h: Likewise.
4257 * config/sh/sh.md: Likewise.
4258 * config/sh/sh.opt: Likewise.
4259 * config/sh/sync.md: Likewise.
4260 * config/sh/sh64.h: Delete.
4261 * config/sh/shmedia.h: Likewise.
4262 * config/sh/shmedia.md: Likewise.
4263 * config/sh/sshmedia.h: Likewise.
4264 * config/sh/t-netbsd-sh5-64: Likewise.
4265 * config/sh/t-sh64: Likewise.
4266 * config/sh/ushmedia.h: Likewise.
4267
4268 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
4269
4270 * config/i386/i386.md (sign_extend to memory peephole2s): Use
4271 general_reg_operand instead of register_operand predicate.
4272
4273 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
4274
4275 * params.def (MIN_PARTITION_SIZE): Set default value to 10000.
4276
4277 2016-04-27 Marc Glisse <marc.glisse@inria.fr>
4278
4279 * match.pd (A - B > A, A + B < A): New transformations.
4280
4281 2016-04-27 Patrick Palka <ppalka@gcc.gnu.org>
4282
4283 * genattrtab.c (write_test_expr): New parameter EMIT_PARENS
4284 which defaults to true. Emit an outer pair of parentheses only if
4285 EMIT_PARENS. When continuing a chain of && or || (or & or |),
4286 don't emit parentheses for the right-hand operand.
4287
4288 2016-04-27 Jeff Law <law@redhat.com>
4289
4290 * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.
4291
4292 2016-04-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4293
4294 * config/rs6000/altivec.md (altivec_lvx_<mode>): Remove.
4295 (altivec_lvx_<mode>_internal): Document.
4296 (altivec_lvx_<mode>_2op): New define_insn.
4297 (altivec_lvx_<mode>_1op): Likewise.
4298 (altivec_lvx_<mode>_2op_si): Likewise.
4299 (altivec_lvx_<mode>_1op_si): Likewise.
4300 (altivec_stvx_<mode>): Remove.
4301 (altivec_stvx_<mode>_internal): Document.
4302 (altivec_stvx_<mode>_2op): New define_insn.
4303 (altivec_stvx_<mode>_1op): Likewise.
4304 (altivec_stvx_<mode>_2op_si): Likewise.
4305 (altivec_stvx_<mode>_1op_si): Likewise.
4306 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
4307 Expand vec_ld and vec_st during parsing.
4308 * config/rs6000/rs6000.c (altivec_expand_lvx_be): Commentary
4309 changes.
4310 (altivec_expand_stvx_be): Likewise.
4311 (altivec_expand_lv_builtin): Expand lvx built-ins to expose the
4312 address-masking behavior in RTL.
4313 (altivec_expand_stv_builtin): Expand stvx built-ins to expose the
4314 address-masking behavior in RTL.
4315 (altivec_expand_builtin): Change builtin code arguments for calls
4316 to altivec_expand_stv_builtin and altivec_expand_lv_builtin.
4317 (insn_is_swappable_p): Avoid incorrect swap optimization in the
4318 presence of lvx/stvx patterns.
4319 (alignment_with_canonical_addr): New function.
4320 (alignment_mask): Likewise.
4321 (find_alignment_op): Likewise.
4322 (recombine_lvx_pattern): Likewise.
4323 (recombine_stvx_pattern): Likewise.
4324 (recombine_lvx_stvx_patterns): Likewise.
4325 (rs6000_analyze_swaps): Perform a pre-pass to recognize lvx and
4326 stvx patterns from expand.
4327 * config/rs6000/vector.md (vector_altivec_load_<mode>): Use new
4328 expansions.
4329 (vector_altivec_store_<mode>): Likewise.
4330
4331 2016-04-26 Evandro Menezes <e.menezes@samsung.com>
4332
4333 * config/aarch64/aarch64.md
4334 (*movhf_aarch64): Add "movi %0, #0" to zero up register and
4335 remove the "fp" attributes.
4336 (*movsf_aarch64): Add "movi %0, #0" to zero up register and
4337 add the "simd" attributes.
4338 (*movdf_aarch64): Likewise.
4339 (*movtf_aarch64): Remove the "fp" attributes.
4340 * testsuite/gcc.target/aarch64/fmovf-zero-reg.c: Update accordingly.
4341 * testsuite/gcc.target/aarch64/fmovd-zero-reg.c: Likewise.
4342
4343 2016-04-27 David Malcolm <dmalcolm@redhat.com>
4344
4345 * emit-rtl.c (maybe_set_first_label_num): Strengthen param from
4346 rtx to rtx_code_label *.
4347 * rtl.h (maybe_set_first_label_num): Likewise.
4348
4349 2016-04-27 David Malcolm <dmalcolm@redhat.com>
4350
4351 * df-core.c (df_add_problem): Make the problem param be const.
4352 (df_remove_problem): Make local "problem" be const.
4353 * df-problems.c (problem_RD): Make const.
4354 (problem_LR): Likewise.
4355 (problem_LIVE): Likewise.
4356 (problem_MIR): Likewise.
4357 (problem_CHAIN): Likewise.
4358 (problem_WORD_LR): Likewise.
4359 (problem_NOTE): Likewise.
4360 (problem_MD): Likewise.
4361 * df-scan.c (problem_SCAN): Likewise.
4362 * df.h (struct df_problem): Make field "dependent_problem" be
4363 const.
4364 (struct dataflow): Likewise for field "problem".
4365 (df_add_problem): Make param const.
4366
4367 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
4368
4369 * config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when
4370 inter-unit moves to/from vector registers are enabled. Do not disable
4371 for TARGET_MMX.
4372
4373 2016-04-27 David Malcolm <dmalcolm@redhat.com>
4374
4375 * df.h (DF_SCAN, DF_LR, DF_LIVE, DF_RD, DF_CHAIN, DF_WORD_LR,
4376 DF_NOTE, DF_MD, DF_MIR, DF_LAST_PROBLEM_PLUS1): Convert from
4377 #define to...
4378 (enum df_problem_id): ...this new enum.
4379 (struct df_problem): Convert field "id" from "int" to
4380 enum df_problem_id.
4381
4382 2016-04-27 David Malcolm <dmalcolm@redhat.com>
4383
4384 * rtl.def: Update comment for "things in the instruction chain" to
4385 reflect the removal of the leading "i" field for INSN_UID in
4386 r210360. Fix bogus apostrophe.
4387
4388 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
4389
4390 * config/i386/i386.md
4391 (lea arith with mem operand + setcc peephole2): Set operator mode.
4392
4393 2016-04-27 H.J. Lu <hongjiu.lu@intel.com>
4394
4395 PR target/70155
4396 * config/i386/i386.c (scalar_to_vector_candidate_p): Renamed to ...
4397 (dimode_scalar_to_vector_candidate_p): This.
4398 (timode_scalar_to_vector_candidate_p): New function.
4399 (scalar_to_vector_candidate_p): Likewise.
4400 (timode_check_non_convertible_regs): Likewise.
4401 (timode_remove_non_convertible_regs): Likewise.
4402 (remove_non_convertible_regs): Likewise.
4403 (remove_non_convertible_regs): Renamed to ...
4404 (dimode_remove_non_convertible_regs): This.
4405 (scalar_chain::~scalar_chain): Make it virtual.
4406 (scalar_chain::compute_convert_gain): Make it pure virtual.
4407 (scalar_chain::mark_dual_mode_def): Likewise.
4408 (scalar_chain::convert_insn): Likewise.
4409 (scalar_chain::convert_registers): Likewise.
4410 (scalar_chain::add_to_queue): Make it protected.
4411 (scalar_chain::emit_conversion_insns): Likewise.
4412 (scalar_chain::replace_with_subreg): Likewise.
4413 (scalar_chain::replace_with_subreg_in_insn): Likewise.
4414 (scalar_chain::convert_op): Likewise.
4415 (scalar_chain::convert_reg): Likewise.
4416 (scalar_chain::make_vector_copies): Likewise.
4417 (scalar_chain::convert_registers): New pure virtual function.
4418 (class dimode_scalar_chain): New class.
4419 (class timode_scalar_chain): Likewise.
4420 (scalar_chain::mark_dual_mode_def): Renamed to ...
4421 (dimode_scalar_chain::mark_dual_mode_def): This.
4422 (timode_scalar_chain::mark_dual_mode_def): New function.
4423 (timode_scalar_chain::convert_insn): Likewise.
4424 (dimode_scalar_chain::convert_registers): Likewise.
4425 (scalar_chain::compute_convert_gain): Renamed to ...
4426 (dimode_scalar_chain::compute_convert_gain): This.
4427 (scalar_chain::replace_with_subreg): Renamed to ...
4428 (dimode_scalar_chain::replace_with_subreg): This.
4429 (scalar_chain::replace_with_subreg_in_insn): Renamed to ...
4430 (dimode_scalar_chain::replace_with_subreg_in_insn): This.
4431 (scalar_chain::make_vector_copies): Renamed to ...
4432 (dimode_scalar_chain::make_vector_copies): This.
4433 (scalar_chain::convert_reg): Renamed to ...
4434 (dimode_scalar_chain::convert_reg ): This.
4435 (scalar_chain::convert_op): Renamed to ...
4436 (dimode_scalar_chain::convert_op): This.
4437 (scalar_chain::convert_insn): Renamed to ...
4438 (dimode_scalar_chain::convert_insn): This.
4439 (scalar_chain::convert): Call convert_registers.
4440 (convert_scalars_to_vector): Change to scalar_chain pointer to
4441 use timode_scalar_chain in 64-bit mode and dimode_scalar_chain
4442 in 32-bit mode. Delete scalar_chain pointer. Call
4443 free_dominance_info in 64-bit mode.
4444 (pass_stv::gate): Remove TARGET_64BIT check.
4445 (ix86_option_override): Put the 64-bit STV pass before the CSE
4446 pass.
4447
4448 2016-04-27 Pierre-Marie de Rodat <derodat@adacore.com>
4449
4450 * dwarf2out.h (struct dw_loc_descr_node): Remove the
4451 dw_loc_frame_offset field.
4452 * dwarf2out.c (new_loc_descr): Likewise.
4453 (resolve_args_picking_1): Turn the VISITED hash set into a
4454 FRAME_OFFSET hash map. Use it to associate a frame offset to
4455 visited nodes. Remove uses of the CHECKING_P macro.
4456 (resolve_args_picking): Update call to resolve_args_picking_1.
4457
4458 2016-04-27 Martin Liska <mliska@suse.cz>
4459
4460 * tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
4461 (free_loop_data): Release vuses of groups.
4462
4463 2016-04-27 Bin Cheng <bin.cheng@arm.com>
4464
4465 * tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use
4466 instead of redundant use_id and boolean have_use_for.
4467 (struct iv_use): Change sub_id into group_id. Remove field next.
4468 Move fields: related_cands, n_map_members, cost_map and selected
4469 to ...
4470 (struct iv_group): ... here. New structure.
4471 (struct iv_common_cand): Use structure declaration directly.
4472 (struct ivopts_data, iv_ca, iv_ca_delta): Rename fields.
4473 (MAX_CONSIDERED_USES): Rename macro to ...
4474 (MAX_CONSIDERED_GROUPS): ... here.
4475 (n_iv_uses, iv_use, n_iv_cands, iv_cand): Delete.
4476 (dump_iv, dump_use, dump_cand): Refactor format of dump information.
4477 (dump_uses): Rename to ...
4478 (dump_groups): ... here. Update all uses.
4479 (tree_ssa_iv_optimize_init, alloc_iv): Update all uses.
4480 (find_induction_variables): Refactor format of dump information.
4481 (record_sub_use): Delete.
4482 (record_use): Update all uses.
4483 (record_group): New function.
4484 (record_group_use, find_interesting_uses_op): Call above functions.
4485 Update all uses.
4486 (find_interesting_uses_cond): Ditto.
4487 (group_compare_offset): New function.
4488 (split_all_small_groups): Rename to ...
4489 (split_small_address_groups_p): ... here. Update all uses.
4490 (split_address_groups): Update all uses.
4491 (find_interesting_uses): Refactor format of dump information.
4492 (add_candidate_1): Update all uses. Remove redundant check on iv,
4493 base and step.
4494 (add_candidate, record_common_cand): Remove redundant assert.
4495 (add_iv_candidate_for_biv): Update use.
4496 (add_iv_candidate_derived_from_uses): Update all uses.
4497 (add_iv_candidate_for_groups, record_important_candidates): Ditto.
4498 (alloc_use_cost_map): Ditto.
4499 (set_use_iv_cost, get_use_iv_cost): Rename to ...
4500 (set_group_iv_cost, get_group_iv_cost): ... here. Update all uses.
4501 (determine_use_iv_cost_generic): Ditto.
4502 (determine_group_iv_cost_generic): Ditto.
4503 (determine_use_iv_cost_address): Ditto.
4504 (determine_group_iv_cost_address): Ditto.
4505 (determine_use_iv_cost_condition): Ditto.
4506 (determine_group_iv_cost_cond): Ditto.
4507 (determine_use_iv_cost): Ditto.
4508 (determine_group_iv_cost): Ditto.
4509 (set_autoinc_for_original_candidates): Update all uses.
4510 (find_iv_candidates): Update all uses. Refactor dump information.
4511 (determine_use_iv_costs): Ditto.
4512 (determine_iv_costs): Ditto.
4513 (iv_ca_cand_for_use): Rename to ...
4514 (iv_ca_cand_for_group): ... here. Update all uses.
4515 (iv_ca_add_use, iv_ca_add_group): Ditto.
4516 (iv_ca_set_cp, iv_ca_cost, iv_ca_delta_add): Update all uses.
4517 (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_delta_free): Ditto.
4518 (iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow): Ditto.
4519 (iv_ca_prune, cheaper_cost_with_cand, iv_ca_replace): Ditto.
4520 (try_add_cand_for, try_improve_iv_set, find_optimal_iv_set): Ditto.
4521 (create_new_iv, adjust_iv_update_pos): Ditto.
4522 (rewrite_use_address): Delete.
4523 (rewrite_use_address_1): Rename to ...
4524 (rewrite_use_address): ... here.
4525 (rewrite_use_compare): Update all uses.
4526 (rewrite_use): Delete.
4527 (rewrite_uses): Rename to ...
4528 (rewrite_groups): ... here. Update all uses.
4529 (remove_unused_ivs, free_loop_data): Update all uses.
4530 (tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize_loop): Ditto.
4531
4532 2016-04-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4533
4534 * rtlanal.c (nonzero_bits1): Convert preprocessor check
4535 for WORD_REGISTER_OPERATIONS to runtime check.
4536
4537 2016-04-27 Richard Biener <rguenther@suse.de>
4538
4539 PR ipa/70760
4540 * tree-ssa-structalias.c (find_func_aliases_for_call): Use
4541 aggregate_value_p to determine if a function result is
4542 returned by reference.
4543 (ipa_pta_execute): Functions having their address taken are
4544 not automatically nonlocal.
4545
4546 2016-04-27 Jakub Jelinek <jakub@redhat.com>
4547
4548 PR sanitizer/70683
4549 * tree-core.h (enum operand_equal_flag): Add OEP_NO_HASH_CHECK.
4550 * fold-const.c (operand_equal_p): If flag_checking and
4551 OEP_NO_HASH_CHECK is not set in flag, recurse with OEP_NO_HASH_CHECK
4552 and if it returns non-zero, assert iterative_hash_expr on both
4553 args is the same.
4554
4555 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
4556
4557 * doc/invoke.texi (-frename-registers): Also enabled at -Os.
4558
4559 2016-04-27 Nick Clifton <nickc@redhat.com>
4560
4561 PR middle-end/49889
4562 * varasm.c (merge_weak): Generate an error if an attempt is made
4563 to convert a non-weak static function into a weak, public function.
4564
4565 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
4566
4567 * params.def (MAX_PARTITION_SIZE): New param.
4568 * doc/invoke.texi: Document lto-max-partition.
4569
4570 2016-04-27 Richard Biener <rguenther@suse.de>
4571
4572 PR ipa/70785
4573 * tree-ssa-structalias.c (refered_from_nonlocal_fn): New
4574 function cummulating used_from_other_partition, externally_visible
4575 and force_output from aliases.
4576 (refered_from_nonlocal_var): Likewise.
4577 (ipa_pta_execute): Use call_for_symbol_and_aliases to cummulate
4578 node flags properly.
4579
4580 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
4581
4582 * doc/invoke.texi (Warning Options): Add -Wmemset-elt-size.
4583 (-Wmemset-elt-size): New item.
4584
4585 2016-04-27 Eric Botcazou <ebotcazou@adacore.com>
4586
4587 PR ada/70759
4588 * stor-layout.h (internal_reference_types): Delete.
4589 * stor-layout.c (reference_types_internal): Likewise.
4590 (internal_reference_types): Likewise.
4591 (layout_type) <REFERENCE_TYPE>: Adjust.
4592
4593 2016-04-27 Jakub Jelinek <jakub@redhat.com>
4594
4595 PR sanitizer/70683
4596 * tree.h (inchash::add_expr): Add FLAGS argument.
4597 * tree.c (inchash::add_expr): Likewise. If not OEP_ADDRESS_OF,
4598 use STRIP_NOPS first. For INTEGER_CST assert not OEP_ADDRESS_OF.
4599 For REAL_CST and !HONOR_SIGNED_ZEROS (t) hash +/- 0 the same.
4600 Formatting fix. Adjust recursive calls. For tcc_comparison,
4601 if swap_tree_comparison (code) is smaller than code, hash that
4602 and arguments in the other order. Hash CONVERT_EXPR the same
4603 as NOP_EXPR. For OEP_ADDRESS_OF hash MEM_REF with 0 offset
4604 of ADDR_EXPR of decl as the decl itself. Add or remove
4605 OEP_ADDRESS_OF from recursive flags as needed. For
4606 FMA_EXPR, WIDEN_MULT_{PLUS,MINUS}_EXPR hash the first two
4607 operands commutatively and only the third one normally.
4608 For internal CALL_EXPR hash in CALL_EXPR_IFN.
4609
4610 2016-04-27 Sebastian Huber <sebastian.huber@embedded-brains.de>
4611
4612 * config/rtems.h (LIB_SPEC): Add -latomic.
4613
4614 2016-04-27 Joel Sherrill <joel@rtems.org>
4615
4616 * config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
4617 xilink.ld and flags not relevant to RTEMS.
4618
4619 2016-04-26 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
4620
4621 * toplev.c (backend_init_target): Avoid calling init_reload when using
4622 LRA.
4623
4624 2016-04-26 Jakub Jelinek <jakub@redhat.com>
4625
4626 * reorg.c (try_merge_delay_insns): Declare i and j inside the
4627 for loops rather than one for the whole function.
4628
4629 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
4630
4631 * match.pd (X + CST CMP X): New transformation.
4632
4633 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
4634
4635 * genmatch.c (write_predicate): Add ATTRIBUTE_UNUSED.
4636 * fold-const.c (fold_binary_loc): Remove 2 transformations
4637 superseded by match.pd.
4638 * match.pd (x+x -> x*2): Generalize to integers.
4639
4640 2016-04-26 Bernd Schmidt <bschmidt@redhat.com>
4641
4642 * config/i386/i386.md (operation on memory peephole): Duplicate an
4643 existing peephole and adapt it to match lea rather than an operation
4644 that clobbers CC.
4645
4646 PR rtl-optimization/57193
4647 * opts.c (default_options_table): Add OPT_frename_registers at -O2
4648 and above.
4649 * doc/invoke.texi (-frename-registers, -O2): Update documentation.
4650
4651 2016-04-26 Bin Cheng <bin.cheng@arm.com>
4652
4653 * tree-if-conv.c (any_pred_load_store): New static variable.
4654 (if_convertible_gimple_assign_stmt_p): Remove parameter. Use
4655 any_pred_load_store instead of and_mask_load_store.
4656 (if_convertible_stmt_p, if_convertible_loop_p_1): Ditto.
4657 (if_convertible_loop_p, insert_gimplified_predicates): Ditto.
4658 (combine_blocks, tree_if_conversion): Ditto.
4659
4660 2016-04-26 Bin Cheng <bin.cheng@arm.com>
4661
4662 PR tree-optimization/70771
4663 PR tree-optimization/70775
4664 * tree-if-conv.c (if_convertible_phi_p): Remove check on special
4665 virtual PHI nodes. Delete parameter.
4666 (if_convertible_loop_p_1): Delete argument to above function.
4667 (predicate_all_scalar_phis): Delete code handling single-argument
4668 PHIs.
4669 (tree_if_conversion): Mark and update virtual SSA.
4670
4671 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4672
4673 PR target/61821
4674 * config/i386/i386.c (LARGECOMM_SECTION_ASM_OP): Define default.
4675 (x86_elf_aligned_common): Rename to ...
4676 (x86_elf_aligned_decl_common): ... this.
4677 Add decl arg. Switch to .lbss for largecomm object. Use
4678 LARGECOMM_SECTION_ASM_OP.
4679 * config/i386/i386-protos.h (x86_elf_aligned_common): Reflect
4680 renaming.
4681 * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_COMMON): Rename to ...
4682 (ASM_OUTPUT_ALIGNED_DECL_COMMON): ... this.
4683 Pass new decl arg.
4684 * config/i386/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
4685 [!USE_GAS] (LARGECOMM_SECTION_ASM_OP): Define.
4686
4687 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4688
4689 PR target/59407
4690 * config/i386/i386.c (SECTION_LARGE): Define.
4691 (x86_64_elf_select_section): Set it for large data/bss sections.
4692 Only clear SECTION_WRITE for .lrodata.
4693 (x86_64_elf_section_type_flags): Set SECTION_LARGE for large
4694 data/bss sections.
4695 * config/i386/sol2.h (MACH_DEP_SECTION_ASM_FLAG): Define.
4696 * varasm.c (default_elf_asm_named_section): Grow flagchars.
4697 [MACH_DEP_SECTION_ASM_FLAG] Emit MACH_DEP_SECTION_ASM_FLAG for
4698 SECTION_MACH_DEP.
4699 * doc/tm.texi.in (Sections, MACH_DEP_SECTION_ASM_FLAG): Describe.
4700 * doc/tm.texi: Regenerate.
4701
4702 2016-04-26 Jakub Jelinek <jakub@redhat.com>
4703
4704 PR bootstrap/70704
4705 * configure.ac (--enable-checking): Document extra flag, for
4706 non-release builds default to --enable-checking=yes,extra.
4707 If misc checking and extra checking, define CHECKING_P to 2 instead
4708 of 1.
4709 * common.opt (fchecking=): Add.
4710 * doc/invoke.texi (-fchecking=): Document.
4711 * doc/install.texi: Document --enable-checking changes.
4712 * configure: Regenerated.
4713 * config.in: Regenerated.
4714
4715 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
4716
4717 * config/i386/i386.md (*movxi_internal_avx512f): Use insn type
4718 attribute instead of which_alternative.
4719 * config/i386/sse.md (*mov<mode>_internal): Ditto.
4720 Use EXT_REX_SSE_REG_P where appropriate.
4721
4722 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
4723
4724 * config/i386/predicates.md (const0_operand): Do not match
4725 const_wide_int code.
4726 (const1_operand): Ditto.
4727
4728 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
4729
4730 * config/i386/i386.md (*movoi_internal_avx): Set mode attribute to XI
4731 for SSE constm1 operands and TARGET_AVX512VL.
4732 (*movti_internal): Ditto.
4733 (*mov<mode>_or): Use constm1_operand predicate.
4734 * config/i386/sse.md (*mov<mode>_internal): Set mode attribute to XI
4735 for SSE vector_all_ones operands and TARGET_AVX512VL.
4736 * config/i386/predicates.md (constm1_operand): New predicate.
4737 * config/i386/i386.c (standard_sse_constant_opcode): Simplify
4738 emission of constant -1 load.
4739
4740 2016-04-25 Jason Merrill <jason@redhat.com>
4741
4742 * gdbinit.in: Skip is-a.h.
4743
4744 * attribs.c (register_scoped_attributes): Fix logic.
4745 * attribs.h: Declare register_scoped_attributes.
4746
4747 2016-04-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4748
4749 * config/rs6000/rs6000-builtin.def: Correct pasto error for
4750 stxvd2x and stxvw4x built-in functions.
4751
4752 2016-04-25 DJ Delorie <dj@redhat.com>
4753
4754 * config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
4755 (ashrhi3): Likewise.
4756 (lshrhi3): Likewise.
4757
4758 2016-04-25 Richard Biener <rguenther@suse.de>
4759
4760 PR tree-optimization/70780
4761 * tree-ssa-pre.c (compute_antic_aux): Also return true if the block
4762 wasn't visited yet.
4763 (compute_antic): Mark blocks with abnormal preds as visited as
4764 they have a final empty antic-in solution already.
4765
4766 2016-04-25 Michael Collison <michael.collison@linaro.org>
4767
4768 * ChangeLog(2016-04-25): Fix ChangeLog formatting.
4769
4770 2016-04-25 Michael Collison <michael.collison@linaro.org>
4771
4772 * config/arm/neon.md (widen_<us>sum<mode>): New patterns where
4773 mode is VQI to improve mixed mode vectorization.
4774 * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3): New
4775 define_insn to match low half of signed vaddw.
4776 * config/arm/neon.md (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): New
4777 define_insn to match high half of signed vaddw.
4778 * config/arm/neon.md (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): New
4779 define_insn to match low half of unsigned vaddw.
4780 * config/arm/neon.md (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): New
4781 define_insn to match high half of unsigned vaddw.
4782 * config/arm/arm.c (arm_simd_vect_par_cnst_half): New function.
4783 (arm_simd_check_vect_par_cnst_half_p): Likewise.
4784 * config/arm/arm-protos.h (arm_simd_vect_par_cnst_half): Prototype
4785 for new function.
4786 (arm_simd_check_vect_par_cnst_half_p): Likewise.
4787 * config/arm/predicates.md (vect_par_constant_high): Support
4788 big endian and simplify by calling
4789 arm_simd_check_vect_par_cnst_half
4790 (vect_par_constant_low): Likewise.
4791
4792 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
4793
4794 * config/i386/i386.md (*lea<mode>_general_4): Use const_0_to_3_operand
4795 predicate for operand 2.
4796
4797 2016-04-24 Uros Bizjak <ubizjak@gmail.com>
4798 H.J. Lu <hongjiu.lu@intel.com>
4799
4800 * config/i386/i386-protos.h (standard_sse_constant_p): Add
4801 machine_mode argument.
4802 * config/i386/i386.c (standard_sse_constant_p): Return 2 for
4803 constm1_rtx operands. For VOIDmode constants, get mode from
4804 pred_mode. Check mode size if the mode is supported by ABI.
4805 (standard_sse_constant_opcode): Do not use standard_constant_p.
4806 Strictly check ABI support for all-ones operands.
4807 (ix86_legitimate_constant_p): Handle TImode, OImode and XImode
4808 immediates. Update calls to standard_sse_constant_p.
4809 (ix86_expand_vector_move): Update calls to standard_sse_constant_p.
4810 (ix86_rtx_costs): Ditto.
4811 * config/i386/i386.md (*movxi_internal_avx512f): Use
4812 nonimmediate_or_sse_const_operand instead of vector_move_operand.
4813 Use (v,BC) alternative instead of (v,C). Use register_operand
4814 checks instead of MEM_P.
4815 (*movoi_internal_avx): Use nonimmediate_or_sse_const_operand instead
4816 of vector_move_operand. Add (v,BC) alternative and corresponding avx2
4817 isa attribute. Use register_operand checks instead of MEM_P.
4818 (*movti_internal): Use nonimmediate_or_sse_const_operand for
4819 TARGET_SSE. Improve TARGET_SSE insn constraint. Add (v,BC)
4820 alternative and corresponding sse2 isa attribute.
4821 (*movtf_internal, *movdf_internal, *movsf_interal): Update calls
4822 to standard_sse_constant_p.
4823 (FP constant splitters): Ditto.
4824 * config/i386/constraints.md (BC): Do not use standard_sse_constant_p.
4825 (C): Ditto.
4826 * config/i386/predicates.md (constm1_operand): Remove.
4827 (nonimmediate_or_sse_const_operand): Rewrite using RTX.
4828 * config/i386/sse.md (*<avx512>_cvtmask2<ssemodesuffix><mode>): Use
4829 vector_all_ones_operand instead of constm1_operand.
4830
4831 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4832
4833 * print-rtl.c (print_rtx_insn_vec): New function.
4834 * print-rtl.h: New prototype.
4835 * store-motion.c (struct st_expr): Make avail_stores a vector.
4836 (st_expr_entry): Adjust.
4837 (free_st_expr_entry): Likewise.
4838 (print_store_motion_mems): Likewise.
4839 (find_moveable_store): Likewise.
4840 (compute_store_table): Likewise.
4841 (delete_store): Likewise.
4842 (build_store_vectors): Likewise.
4843
4844 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4845
4846 * reorg.c (try_merge_delay_insns): Make merged_insns a vector.
4847
4848 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4849
4850 * vec.h (vec_safe_contains): New function.
4851 (vec::contains): Likewise.
4852 (vec::begin): Likewise.
4853 (vec::end): Likewise.
4854
4855 2016-04-23 Jakub Jelinek <jakub@redhat.com>
4856
4857 PR sanitizer/70712
4858 * cfgexpand.c (expand_stack_vars): Fix typo.
4859
4860 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
4861
4862 * system.h (list, map, set, vector): Include conditionally.
4863 * auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define.
4864 * graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define.
4865 * ipa-icf.c (INCLUDE_LIST): Define.
4866 * config/aarch64/cortex-a57-fma-steering.c (INCLUDE_LIST): Define.
4867 * config/sh/sh.c (INCLUDE_VECTOR): Define.
4868 * config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define.
4869 (INCLUDE_LIST, INCLUDE_VECTOR): Define.
4870 * cp/logic.cc (INCLUDE_LIST): Define.
4871 * fortran/trans-common.c (INCLUDE_MAP): Define.
4872
4873 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
4874
4875 * auto-profile.c: Remove <string.h> include.
4876 * ipa-icf-gimple.c: Remove <list> include.
4877 * diagnostic.c: Remove <new> include.
4878 * genmatch.c: Likewise.
4879 * pretty-print.c: Likewise.
4880 * toplev.c: Likewise
4881 * c/c-objc-common.c: Likewise.
4882 * cp/error.c: Likewise.
4883 * fortran/error.c: Likewise.
4884
4885 2016-04-22 Richard Biener <rguenther@suse.de>
4886
4887 * lto-streamer-in.c (input_ssa_names): Do not allocate
4888 GIMPLE_NOP for all SSA names.
4889 * lto-streamer-out.c (output_ssa_names): Do not output
4890 SSA names that should have been released.
4891
4892 2016-04-22 Richard Biener <rguenther@suse.de>
4893
4894 PR tree-optimization/70740
4895 * tree-ssa-phiprop.c (propagate_with_phi): Handle inserted
4896 VDEF.
4897
4898 2016-04-21 H.J. Lu <hongjiu.lu@intel.com>
4899
4900 PR target/70750
4901 * config/i386/predicates.md (call_insn_operand): Replace
4902 sibcall_memory_operand with memory_operand.
4903
4904 2016-04-21 Patrick Palka <ppalka@gcc.gnu.org>
4905
4906 * tree-vrp.c (register_edge_assert_for_2): Remove redundant
4907 has_single_use() tests.
4908 (register_edge_assert_for_1): Likewise.
4909 (find_assert_locations_1): Check the liveness bitmap instead of
4910 checking has_single_use().
4911
4912 2016-04-21 Kirill Yukhin <kirill.yukhin@intel.com>
4913
4914 PR target/70728
4915 * config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
4916 Extract AVX-512BW constraint from AVX.
4917
4918 2016-04-21 Richard Biener <rguenther@suse.de>
4919
4920 PR tree-optimization/70725
4921 * tree-if-conv.c (if_convertible_phi_p): Adjust guard
4922 for phi_convertible_by_degenerating_args.
4923 (predicate_all_scalar_phis): Handle single-argument PHIs.
4924
4925 2016-04-21 Richard Biener <rguenther@suse.de>
4926
4927 PR middle-end/70747
4928 * fold-const.c (fold_comparison): Return properly typed
4929 constant boolean.
4930
4931 2016-04-21 Bin Cheng <bin.cheng@arm.com>
4932
4933 PR tree-optimization/70715
4934 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
4935 after expanding BASE using expand_simple_operations.
4936
4937 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
4938
4939 * match.pd (min(-x, -y), max(-x, -y), min(~x, ~y), max(~x, ~y)):
4940 New transformations.
4941
4942 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
4943
4944 * match.pd (min(int_max, x), max(int_min, x)): New transformations.
4945
4946 2016-04-20 Jan Hubicka <jh@suse.cz>
4947
4948 * ipa-inline.c (can_inline_edge_p): Pass caller info to
4949 ultiimate_alias_target.
4950 (update_callee_keys): Likewise.
4951 (lookup_recursive_calls): Likewise.
4952 (speculation_useful_p): Likewise.
4953
4954 2016-04-20 Jan Hubicka <jh@suse.cz>
4955
4956 PR ipa/70018
4957 * cgraph.c (cgraph_set_nothrow_flag_1): Rename to ...
4958 (set_nothrow_flag_1): ... this; handle interposition correctly;
4959 recurse on aliases and thunks.
4960 (cgraph_node::set_nothrow_flag): New.
4961 * ipa-pure-const.c (ignore_edge_for_nothrow): Ignore calls to
4962 functions compiled with non-call exceptions that binds to current
4963 def.
4964 (propagate_nothrow): Be safe WRT interposition.
4965 * cgraph.h (set_nothrow_flag): Update prototype.
4966
4967 2016-04-18 Jan Hubicka <jh@suse.cz>
4968
4969 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
4970 max_loop_iterations_int.
4971 (tree_unswitch_outer_loop): Likewise.
4972
4973 2016-04-20 Bin Cheng <bin.cheng@arm.com>
4974
4975 PR tree-optimization/69489
4976 * tree-if-conv.c (phi_convertible_by_degenerating_args): New.
4977 (if_convertible_phi_p): Call phi_convertible_by_degenerating_args.
4978 Revise dump message.
4979 (if_convertible_bb_p): Remove check on edge count of basic block's
4980 predecessors.
4981
4982 2016-04-20 Bin Cheng <bin.cheng@arm.com>
4983
4984 PR tree-optimization/56625
4985 PR tree-optimization/69489
4986 * tree-data-ref.h (DR_INNERMOST): New macro.
4987 * tree-if-conv.c (innermost_loop_behavior_hash): New class for
4988 hashing struct innermost_loop_behavior.
4989 (ref_DR_map): Remove.
4990 (innermost_DR_map): New map.
4991 (baseref_DR_map): Revise comment.
4992 (hash_memrefs_baserefs_and_store_DRs_read_written_info): Store DR
4993 to innermost_DR_map accroding to its innermost loop behavior.
4994 (ifcvt_memrefs_wont_trap): Get DR from innermost_DR_map according
4995 to its innermost loop behavior.
4996 (if_convertible_loop_p_1): Remove intialization for ref_DR_map.
4997 Add initialization for innermost_DR_map. Record memory reference
4998 in DR_BASE_ADDRESS if the reference is compound one or it doesn't
4999 have innermost loop behavior.
5000 (if_convertible_loop_p): Remove release for ref_DR_map. Release
5001 innermost_DR_map.
5002
5003 2016-04-20 Uros Bizjak <ubizjak@gmail.com>
5004
5005 * config/i386/i386.md (*lea<mode>_general_1): Rename from
5006 *lea_general_1. Use explicit SWI12 mode interator.
5007 (*lea<mode>_general_2): Rename from *lea_general_2.
5008 Use explicit SWI12 mode interator.
5009 (*lea<mode>_general_3): Rename from *lea_general_3.
5010 Use explicit SWI12 mode interator.
5011 (*lea<SWI12:mode>_general_4): Split from *lea_general_4.
5012 Use explicit SWI12 mode interator.
5013 (*lea<SWI48:mode>_general_4): Split from *lea_general_4.
5014 Use explicit SWI48 mode interator.
5015
5016 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
5017
5018 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
5019 Short-cut unaligned load and store cases. Handle all integer
5020 vector modes.
5021 (ix86_expand_vector_move_misalign): Short-cut unaligned load
5022 and store cases. Call ix86_avx256_split_vector_move_misalign
5023 directly without checking mode class.
5024
5025 2016-04-20 Andrew Pinski <apinski@cavium.com>
5026 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5027
5028 PR target/64971
5029 * config/aarch64/aarch64.md (sibcall): Force call
5030 address to be DImode for ILP32.
5031 (sibcall_value): Likewise.
5032
5033 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
5034
5035 * doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.
5036
5037 2016-04-20 Richard Biener <rguenther@suse.de>
5038
5039 * gimple-match.h (maybe_build_generic_op): Adjust prototype.
5040 * gimple-match-head.c (maybe_build_generic_op): Pass all ops
5041 by reference, clear op1 and op2 when GENERICizing BIT_FIELD_REF.
5042 (maybe_push_res_to_seq): Adjust.
5043 * gimple-fold.c (maybe_build_generic_op): Likewise.
5044
5045 2016-04-20 Marek Polacek <polacek@redhat.com>
5046
5047 * tree-if-conv.c (is_false_predicate): For NULL_TREE return false
5048 rather than true.
5049
5050 2016-04-20 Ilya Enkovich <ilya.enkovich@intel.com>
5051
5052 * config/i386/sse.md (vec_unpacks_lo_hi): Always
5053 use kmovw to support AVX512F target.
5054
5055 2016-04-20 Bin Cheng <bin.cheng@arm.com>
5056
5057 * tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
5058
5059 2016-04-20 Marek Polacek <polacek@redhat.com>
5060
5061 PR tree-optimization/70725
5062 * tree-if-conv.c (is_false_predicate): New function.
5063 (predicate_mem_writes): Use it.
5064
5065 2016-04-20 Richard Biener <rguenther@suse.de>
5066
5067 PR tree-optimization/70726
5068 * tree-vect-stmts.c (vectorizable_shift): Do not use scalar
5069 shift amounts from a pattern stmt operand.
5070
5071 2016-04-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5072
5073 PR target/70674
5074 * config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new
5075 stack_restore_from_fpr pattern when restoring r15.
5076 (s390_optimize_prologue): Strip away the memory barrier in the
5077 parallel when trying to get rid of restore insns.
5078 * config/s390/s390.md ("stack_restore_from_fpr"): New insn
5079 definition for loading the stack pointer from an FPR. Compared to
5080 the normal move insn this pattern includes a full memory barrier.
5081
5082 2016-04-19 Jakub Jelinek <jakub@redhat.com>
5083
5084 PR middle-end/70680
5085 * gimplify.c (gimplify_omp_for): Call omp_notice_variable for
5086 implicitly linear or lastprivate iterator on the outer context.
5087
5088 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
5089
5090 * config/i386/i386.c (ix86_legitimate_combined_insn): Remove
5091 alignment check.
5092 * config/i386/i386.md (ssememalign): Removed.
5093 * config/i386/sse.md: Remove ssememalign attribute from patterns.
5094
5095 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
5096
5097 PR target/69201
5098 * config/i386/avx512bwintrin.h (_mm512_mask_loadu_epi16): Pass
5099 const short * to __builtin_ia32_loaddquhi512_mask.
5100 (_mm512_maskz_loadu_epi16): Likewise.
5101 (_mm512_mask_storeu_epi16): Pass short * to
5102 __builtin_ia32_storedquhi512_mask.
5103 (_mm512_mask_loadu_epi8): Pass const char * to
5104 __builtin_ia32_loaddquqi512_mask.
5105 (_mm512_maskz_loadu_epi8): Likewise.
5106 (_mm512_mask_storeu_epi8): Pass char * to
5107 __builtin_ia32_storedquqi512_mask.
5108 * config/i386/avx512fintrin.h (_mm512_loadu_pd): Pass
5109 const double * to __builtin_ia32_loadupd512_mask.
5110 (_mm512_mask_loadu_pd): Likewise.
5111 (_mm512_maskz_loadu_pd): Likewise.
5112 (_mm512_storeu_pd): Pass double * to
5113 __builtin_ia32_storeupd512_mask.
5114 (_mm512_mask_storeu_pd): Likewise.
5115 (_mm512_loadu_ps): Pass const float * to
5116 __builtin_ia32_loadups512_mask.
5117 (_mm512_mask_loadu_ps): Likewise.
5118 (_mm512_maskz_loadu_ps): Likewise.
5119 (_mm512_storeu_ps): Pass float * to
5120 __builtin_ia32_storeups512_mask.
5121 (_mm512_mask_storeu_ps): Likewise.
5122 (_mm512_mask_loadu_epi64): Pass const long long * to
5123 __builtin_ia32_loaddqudi512_mask.
5124 (_mm512_maskz_loadu_epi64): Likewise.
5125 (_mm512_mask_storeu_epi64): Pass long long *
5126 to __builtin_ia32_storedqudi512_mask.
5127 (_mm512_loadu_si512): Pass const int * to
5128 __builtin_ia32_loaddqusi512_mask.
5129 (_mm512_mask_loadu_epi32): Likewise.
5130 (_mm512_maskz_loadu_epi32): Likewise.
5131 (_mm512_storeu_si512): Pass int * to
5132 __builtin_ia32_storedqusi512_mask.
5133 (_mm512_mask_storeu_epi32): Likewise.
5134 * config/i386/avx512vlbwintrin.h (_mm256_mask_storeu_epi8): Pass
5135 char * to __builtin_ia32_storedquqi256_mask.
5136 (_mm_mask_storeu_epi8): Likewise.
5137 (_mm256_mask_loadu_epi16): Pass const short * to
5138 __builtin_ia32_loaddquhi256_mask.
5139 (_mm256_maskz_loadu_epi16): Likewise.
5140 (_mm_mask_loadu_epi16): Pass const short * to
5141 __builtin_ia32_loaddquhi128_mask.
5142 (_mm_maskz_loadu_epi16): Likewise.
5143 (_mm256_mask_loadu_epi8): Pass const char * to
5144 __builtin_ia32_loaddquqi256_mask.
5145 (_mm256_maskz_loadu_epi8): Likewise.
5146 (_mm_mask_loadu_epi8): Pass const char * to
5147 __builtin_ia32_loaddquqi128_mask.
5148 (_mm_maskz_loadu_epi8): Likewise.
5149 (_mm256_mask_storeu_epi16): Pass short * to.
5150 __builtin_ia32_storedquhi256_mask.
5151 (_mm_mask_storeu_epi16): Pass short * to.
5152 __builtin_ia32_storedquhi128_mask.
5153 * config/i386/avx512vlintrin.h (_mm256_mask_loadu_pd): Pass
5154 const double * to __builtin_ia32_loadupd256_mask.
5155 (_mm256_maskz_loadu_pd): Likewise.
5156 (_mm_mask_loadu_pd): Pass onst double * to
5157 __builtin_ia32_loadupd128_mask.
5158 (_mm_maskz_loadu_pd): Likewise.
5159 (_mm256_mask_storeu_pd): Pass double * to
5160 __builtin_ia32_storeupd256_mask.
5161 (_mm_mask_storeu_pd): Pass double * to
5162 __builtin_ia32_storeupd128_mask.
5163 (_mm256_mask_loadu_ps): Pass const float * to
5164 __builtin_ia32_loadups256_mask.
5165 (_mm256_maskz_loadu_ps): Likewise.
5166 (_mm_mask_loadu_ps): Pass const float * to
5167 __builtin_ia32_loadups128_mask.
5168 (_mm_maskz_loadu_ps): Likewise.
5169 (_mm256_mask_storeu_ps): Pass float * to
5170 __builtin_ia32_storeups256_mask.
5171 (_mm_mask_storeu_ps): ass float * to
5172 __builtin_ia32_storeups128_mask.
5173 (_mm256_mask_loadu_epi64): Pass const long long * to
5174 __builtin_ia32_loaddqudi256_mask.
5175 (_mm256_maskz_loadu_epi64): Likewise.
5176 (_mm_mask_loadu_epi64): Pass const long long * to
5177 __builtin_ia32_loaddqudi128_mask.
5178 (_mm_maskz_loadu_epi64): Likewise.
5179 (_mm256_mask_storeu_epi64): Pass long long * to
5180 __builtin_ia32_storedqudi256_mask.
5181 (_mm_mask_storeu_epi64): Pass long long * to
5182 __builtin_ia32_storedqudi128_mask.
5183 (_mm256_mask_loadu_epi32): Pass const int * to
5184 __builtin_ia32_loaddqusi256_mask.
5185 (_mm256_maskz_loadu_epi32): Likewise.
5186 (_mm_mask_loadu_epi32): Pass const int * to
5187 __builtin_ia32_loaddqusi128_mask.
5188 (_mm_maskz_loadu_epi32): Likewise.
5189 (_mm256_mask_storeu_epi32): Pass int * to
5190 __builtin_ia32_storedqusi256_mask.
5191 (_mm_mask_storeu_epi32): Pass int * to
5192 __builtin_ia32_storedqusi128_mask.
5193 * config/i386/i386-builtin-types.def (PCSHORT): New.
5194 (PINT64): Likewise.
5195 (V64QI_FTYPE_PCCHAR_V64QI_UDI): Likewise.
5196 (V32HI_FTYPE_PCSHORT_V32HI_USI): Likewise.
5197 (V32QI_FTYPE_PCCHAR_V32QI_USI): Likewise.
5198 (V16SF_FTYPE_PCFLOAT_V16SF_UHI): Likewise.
5199 (V8DF_FTYPE_PCDOUBLE_V8DF_UQI): Likewise.
5200 (V16SI_FTYPE_PCINT_V16SI_UHI): Likewise.
5201 (V16HI_FTYPE_PCSHORT_V16HI_UHI): Likewise.
5202 (V16QI_FTYPE_PCCHAR_V16QI_UHI): Likewise.
5203 (V8SF_FTYPE_PCFLOAT_V8SF_UQI): Likewise.
5204 (V8DI_FTYPE_PCINT64_V8DI_UQI): Likewise.
5205 (V8SI_FTYPE_PCINT_V8SI_UQI): Likewise.
5206 (V8HI_FTYPE_PCSHORT_V8HI_UQI): Likewise.
5207 (V4DF_FTYPE_PCDOUBLE_V4DF_UQI): Likewise.
5208 (V4SF_FTYPE_PCFLOAT_V4SF_UQI): Likewise.
5209 (V4DI_FTYPE_PCINT64_V4DI_UQI): Likewise.
5210 (V4SI_FTYPE_PCINT_V4SI_UQI): Likewise.
5211 (V2DF_FTYPE_PCDOUBLE_V2DF_UQI): Likewise.
5212 (V2DI_FTYPE_PCINT64_V2DI_UQI): Likewise.
5213 (VOID_FTYPE_PDOUBLE_V8DF_UQI): Likewise.
5214 (VOID_FTYPE_PDOUBLE_V4DF_UQI): Likewise.
5215 (VOID_FTYPE_PDOUBLE_V2DF_UQI): Likewise.
5216 (VOID_FTYPE_PFLOAT_V16SF_UHI): Likewise.
5217 (VOID_FTYPE_PFLOAT_V8SF_UQI): Likewise.
5218 (VOID_FTYPE_PFLOAT_V4SF_UQI): Likewise.
5219 (VOID_FTYPE_PINT64_V8DI_UQI): Likewise.
5220 (VOID_FTYPE_PINT64_V4DI_UQI): Likewise.
5221 (VOID_FTYPE_PINT64_V2DI_UQI): Likewise.
5222 (VOID_FTYPE_PINT_V16SI_UHI): Likewise.
5223 (VOID_FTYPE_PINT_V8SI_UHI): Likewise.
5224 (VOID_FTYPE_PINT_V4SI_UHI): Likewise.
5225 (VOID_FTYPE_PSHORT_V32HI_USI): Likewise.
5226 (VOID_FTYPE_PSHORT_V16HI_UHI): Likewise.
5227 (VOID_FTYPE_PSHORT_V8HI_UQI): Likewise.
5228 (VOID_FTYPE_PCHAR_V64QI_UDI): Likewise.
5229 (VOID_FTYPE_PCHAR_V32QI_USI): Likewise.
5230 (VOID_FTYPE_PCHAR_V16QI_UHI): Likewise.
5231 (V64QI_FTYPE_PCV64QI_V64QI_UDI): Removed.
5232 (V32HI_FTYPE_PCV32HI_V32HI_USI): Likewise.
5233 (V32QI_FTYPE_PCV32QI_V32QI_USI): Likewise.
5234 (V16HI_FTYPE_PCV16HI_V16HI_UHI): Likewise.
5235 (V16QI_FTYPE_PCV16QI_V16QI_UHI): Likewise.
5236 (V8HI_FTYPE_PCV8HI_V8HI_UQI): Likewise.
5237 (VOID_FTYPE_PV32HI_V32HI_USI): Likewise.
5238 (VOID_FTYPE_PV16HI_V16HI_UHI): Likewise.
5239 (VOID_FTYPE_PV8HI_V8HI_UQI): Likewise.
5240 (VOID_FTYPE_PV64QI_V64QI_UDI): Likewise.
5241 (VOID_FTYPE_PV32QI_V32QI_USI): Likewise.
5242 (VOID_FTYPE_PV16QI_V16QI_UHI): Likewise.
5243 * config/i386/i386.c (ix86_emit_save_reg_using_mov): Don't
5244 use UNSPEC_STOREU.
5245 (ix86_emit_restore_sse_regs_using_mov): Don't use UNSPEC_LOADU.
5246 (ix86_avx256_split_vector_move_misalign): Don't use unaligned
5247 load nor store.
5248 (ix86_expand_vector_move_misalign): Likewise.
5249 (bdesc_special_args): Use CODE_FOR_movvNXY_internal and pointer
5250 to scalar function prototype for unaligned load/store builtins.
5251 (ix86_expand_special_args_builtin): Updated.
5252 * config/i386/sse.md (UNSPEC_LOADU): Removed.
5253 (UNSPEC_STOREU): Likewise.
5254 (VI_ULOADSTORE_BW_AVX512VL): Likewise.
5255 (VI_ULOADSTORE_F_AVX512VL): Likewise.
5256 (ssescalarsize): Handle V4TI, V2TI and V1TI.
5257 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
5258 (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
5259 (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Likewise.
5260 (<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask): Likewise.
5261 (<sse2_avx_avx512f>_loaddqu<mode><mask_name>): Likewise.
5262 (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"): Likewise.
5263 (sse2_avx_avx512f>_storedqu<mode>): Likewise.
5264 (<avx512>_storedqu<mode>_mask): Likewise.
5265 (*sse4_2_pcmpestr_unaligned): Likewise.
5266 (*sse4_2_pcmpistr_unaligned): Likewise.
5267 (*mov<mode>_internal): Renamed to ...
5268 (mov<mode>_internal): This. Remove check of AVX and IAMCU on
5269 misaligned operand. Replace vmovdqu64 with vmovdqu<ssescalarsize>.
5270 (movsd/movhpd to movupd peephole): Don't use UNSPEC_LOADU.
5271 (movlpd/movhpd to movupd peephole): Don't use UNSPEC_STOREU.
5272
5273 2016-04-19 Richard Biener <rguenther@suse.de>
5274
5275 PR tree-optimization/70171
5276 * tree-ssa-phiprop.c: Include stor-layout.h.
5277 (phiprop_insert_phi): Handle the aggregate copy case.
5278 (propagate_with_phi): Likewise.
5279
5280 2016-04-19 Uros Bizjak <ubizjak@gmail.com>
5281
5282 * config/i386/i386.c (ix86_decompose_address): Use lowpart_subreg
5283 instead of simplify_gen_subreg (... , 0).
5284 (ix86_delegitimize_address): Ditto.
5285 (ix86_split_divmod): Ditto.
5286 (ix86_split_copysign_const): Ditto.
5287 (ix86_split_copysign_var): Ditto.
5288 (ix86_expand_args_builtin): Ditto.
5289 (ix86_expand_round_builtin): Ditto.
5290 (ix86_expand_special_args_builtin): Ditto.
5291 * config/i386/i386.md (TARGET_USE_VECTOR_FP_CONVERTS splitters): Ditto.
5292 (TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters and peephole2s): Ditto.
5293 (udivmodqi4): Ditto.
5294 (absneg splitters): Ditto.
5295 (*jcc_bt<mode>_1): Ditto.
5296
5297 2016-04-19 Richard Biener <rguenther@suse.de>
5298
5299 PR tree-optimization/70724
5300 * tree-ssa-sccvn.c (scc_vn_restore_ssa_info): Split SSA info
5301 restoring out from ...
5302 (free_scc_vn): ... here.
5303 * tree-ssa-sccvn.h (scc_vn_restore_ssa_info): Declare.
5304 * tres-ssa-pre.c (pass_pre::execute): Restore SSA info before
5305 tail merging.
5306 (pass_fre::execute): Restore SSA info.
5307
5308 2016-04-19 Richard Biener <rguenther@suse.de>
5309
5310 * gimple-walk.h (struct walk_stmt_info): Add stmt member.
5311 * gimple-walk.c (walk_gimple_op): Initialize it.
5312 (walk_gimple_asm): Set wi->is_lhs before each callback invocation.
5313 * tree-inline.c (remap_gimple_op_r): Set SSA_NAME_DEF_STMT when
5314 remapping SSA names of defs.
5315 (copy_bb): Remove walk over all SSA defs and SSA_NAME_DEF_STMT
5316 adjustment.
5317
5318 2016-04-18 Vladimir Makarov <vmakarov@redhat.com>
5319
5320 PR middle-end/70689
5321 * lra-constraints.c (equiv_substition_p): New.
5322 (process_alt_operands): Use it.
5323 (swap_operands): Swap it.
5324 (curr_insn_transform): Update it.
5325
5326 2016-04-18 Michael Matz <matz@suse.de>
5327
5328 * tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount.
5329 (SET_TYPE_ALIGN, SET_DECL_ALIGN): New.
5330 * tree-core.h (tree_type_common.align): Use bit-field.
5331 (tree_type_common.spare): New.
5332 (tree_decl_common.off_align): Make smaller.
5333 (tree_decl_common.align): Use bit-field.
5334
5335 * expr.c (expand_expr_addr_expr_1): Use SET_TYPE_ALIGN.
5336 * omp-low.c (install_var_field): Use SET_DECL_ALIGN.
5337 (scan_sharing_clauses): Ditto.
5338 (finish_taskreg_scan): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
5339 (omp_finish_file): Ditto.
5340 * stor-layout.c (do_type_align): Use SET_DECL_ALIGN.
5341 (layout_decl): Ditto.
5342 (relayout_decl): Ditto.
5343 (finalize_record_size): Use SET_TYPE_ALIGN.
5344 (finalize_type_size): Ditto.
5345 (finish_builtin_struct): Ditto.
5346 (layout_type): Ditto.
5347 (initialize_sizetypes): Ditto.
5348 * targhooks.c (std_gimplify_va_arg_expr): Use SET_TYPE_ALIGN.
5349 * tree-nested.c (insert_field_into_struct): Use SET_TYPE_ALIGN.
5350 (lookup_field_for_decl): Use SET_DECL_ALIGN.
5351 (get_chain_field): Ditto.
5352 (get_trampoline_type): Ditto.
5353 (get_nl_goto_field): Ditto.
5354 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
5355 SET_DECL_ALIGN.
5356 (unpack_ts_type_common_value_fields): Use SET_TYPE_ALIGN.
5357 * gimple-expr.c (copy_var_decl): Use SET_DECL_ALIGN.
5358 * tree.c (make_node_stat): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
5359 (build_qualified_type): Use SET_TYPE_ALIGN.
5360 (build_aligned_type, build_range_type_1): Ditto.
5361 (build_atomic_base): Ditto.
5362 (build_common_tree_nodes): Ditto.
5363 * cfgexpand.c (align_local_variable): Use SET_DECL_ALIGN.
5364 (expand_one_stack_var_at): Ditto.
5365 * coverage.c (build_var): Use SET_DECL_ALIGN.
5366 * except.c (init_eh): Ditto.
5367 * function.c (assign_parm_setup_block): Ditto.
5368 * symtab.c (increase_alignment_1): Ditto.
5369 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Ditto.
5370 * tree-vect-stmts.c (ensure_base_align): Ditto.
5371 * varasm.c (align_variable): Ditto.
5372 (assemble_variable): Ditto.
5373 (build_constant_desc): Ditto.
5374 (output_constant_def_contents): Ditto.
5375
5376 * config/arm/arm.c (arm_relayout_function): Use SET_DECL_ALIGN.
5377 * config/avr/avr.c (avr_adjust_type_node): Use SET_TYPE_ALIGN.
5378 * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Ditto.
5379 * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Ditto.
5380 * config/spu/spu.c (spu_build_builtin_va_list): Use SET_DECL_ALIGN.
5381
5382 2016-04-18 H.J. Lu <hongjiu.lu@intel.com>
5383
5384 PR target/70708
5385 * config/i386/sse.md (sse2_loadlpd): Accept load from "xm" and
5386 replace %vmovsd with "%vmovq".
5387 (vec_concatv2df): Likewise.
5388
5389 2016-04-18 Uros Bizjak <ubizjak@gmail.com>
5390
5391 * config/i386/mmx.md (*vec_extractv2sf_0): Use gen_lowpart.
5392 (*vec_extractv2si_0): Ditto.
5393 * config/i386/sse.md (*vec_extractv4sf_0): Ditto.
5394 (zero_extended_scalar_load_operand splitters): Ditto.
5395 (vec_extract splitters): Ditto.
5396 (*vec_extractv4si_0_zext): Ditto.
5397 (avx_<castmode><avxsizesuffix>_<castmode>): Use gen_lowpart
5398 and lowpart_subreg.
5399 (avx512f_<castmode><avxsizesuffix>_<castmode>): Ditto.
5400 (avx512f_<castmode><avxsizesuffix>_256<castmode>): Ditto.
5401 (*sse4_1_extractps): Use lowpart_subreg.
5402 * config/i386/i386.md (x87 floatsplitter): Use gen_lowpart.
5403
5404 2016-04-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5405
5406 * doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
5407 gld requirements.
5408 (Specific, *-*-solaris2*): Update Solaris 11 bundled gcc versions.
5409 Mention Solaris 11 packaging changes.
5410 Update gas and gld requirements.
5411 Remove reference to pre-Solaris 10 bug.
5412 (Specific, sparc-sun-solaris2*): Remove reference to pre-Solaris 10
5413 systems and bugs.
5414 (Specific, sparc64-*-solaris2*): Remove reference to bootstrap
5415 with cc.
5416
5417 2016-04-17 Jan Hubicka <jh@suse.cz>
5418
5419 * tree-ssa-loop-ivopts.c (avg_loop_niter): Use also
5420 max_loop_iterations_int.
5421
5422 2016-04-18 Richard Biener <rguenther@suse.de>
5423
5424 PR tree-optimization/43434
5425 * tree-ssa-structalias.c (struct vls_data): New.
5426 (visit_loadstore): Handle all pointer-based accesses.
5427 (compute_dependence_clique): Compute a bitmap of restrict tags
5428 assigned bases and pass it to visit_loadstore.
5429
5430 2016-04-18 Matthew Wahab <matthew.wahab@arm.com>
5431
5432 PR target/70711
5433 * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc,
5434 armv8.1-a and armv8.1-a+crc.
5435
5436 2016-04-18 Richard Biener <rguenther@suse.de>
5437
5438 PR tree-optimization/70701
5439 * tree-ssa-sccvn.c (vn_reference_lookup_3): Resolve fully constant
5440 references after translating through a memcpy.
5441
5442 2016-04-18 Richard Biener <rguenther@suse.de>
5443
5444 * tree-ssa-pre.c (postorder, postorder_num): Make locals ...
5445 (compute_antic): ... here. For partial antic use regular
5446 postorder and scrap iteration.
5447 (compute_partial_antic_aux): Remove unused return value.
5448 (init_pre): Do not allocate postorder.
5449 (fini_pre): Do not free postorder.
5450
5451 2016-04-18 Richard Biener <rguenther@suse.de>
5452
5453 PR middle-end/37870
5454 * expmed.c (extract_bit_field_1): Remove broken case
5455 using a wider MODE_INT mode.
5456
5457 2016-04-18 Segher Boessenkool <segher@kernel.crashing.org>
5458
5459 * has-brig.c (lendian16): Don't try to use __builtin_bswap16
5460 unless compiling with at least GCC-4.8.
5461
5462 2016-04-17 Jan Hubicka <jh@suse.cz>
5463
5464 PR bootstrap/70706
5465 * graphite.c (graphite_finalize): Update call to
5466 tree_estimate_probability.
5467 * predict.h (tree_estimate_probability): Update prototype.
5468
5469 2016-04-17 Jan Hubicka <jh@suse.cz>
5470
5471 * predict.c (combine_predictions_for_bb): Add dry_run parmaeter.
5472 (tree_estimate_probability): Likewise.
5473 (pass_profile::execute): Update.
5474 (report_predictor_hitrates): New function.
5475 * profile.c (compute_branch_probabilities): Use it.
5476 * predict.h (report_predictor_hitrates): Declare.
5477
5478 2016-04-17 Jan Hubicka <jh@suse.cz>
5479
5480 PR ipa/70018
5481 * cgraph.h (cgraph_node::set_const_flag,
5482 cgraph_node::set_pure_flag): Update prototype to return bool;
5483 update comment.
5484 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Thunks
5485 of interposable symbol are interposable, too.
5486 (cgraph_set_const_flag_1): Rename to ...
5487 (set_const_flag_1): ... this one; change to self recursive function
5488 instead of call_for_symbol_thunks_and_aliases. Handle correctly
5489 clearnig the flag in all variants and also virtual thunks of const
5490 functions are pure; track if any change was done.
5491 (cgraph_node::set_const_flag): Update.
5492 (struct set_pure_flag_info): New struct.
5493 (cgraph_set_pure_flag_1): Rename to ...
5494 (set_pure_flag_1): ... this one; take set_pure_flag_info parameter
5495 rather than pointer encoded flags; track if any changes was done;
5496 handle correctly clearning flag and setting flag of aliases already
5497 declared const.
5498 (cgraph_node::set_pure_flag): Update.
5499 (cgraph_node::set_nothrow_flag): Handle correctly clearning the flag.
5500
5501 2016-04-17 Tom de Vries <tom@codesourcery.com>
5502
5503 PR other/70433
5504 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Escape
5505 backslash in label.
5506
5507 2016-04-17 Tom de Vries <tom@codesourcery.com>
5508
5509 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Classify chars
5510 '{}<> ' as escape-for-record.
5511
5512 2016-04-17 Tom de Vries <tom@codesourcery.com>
5513
5514 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Simplify loop
5515 structure.
5516
5517 2016-04-17 Tom de Vries <tom@codesourcery.com>
5518
5519 PR other/70185
5520 * tree-pass.h (class opt_pass): Remove graph_dump_initialized member.
5521 * dumpfile.h (struct dump_file_info): Add graph_dump_initialized field.
5522 * dumpfile.c (dump_files): Initialize graph_dump_initialized field.
5523 * passes.c (finish_optimization_passes): Only call
5524 finish_graph_dump_file if dfi->graph_dump_initialized.
5525 (execute_function_dump, pass_init_dump_file): Use
5526 dfi->graph_dump_initialized instead of pass->graph_dump_initialized.
5527
5528 2016-04-17 Tom de Vries <tom@codesourcery.com>
5529
5530 PR tree-optimization/70256
5531 * tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap)
5532 (debug_varmap): New function.
5533
5534 2016-04-17 Tom de Vries <tom@codesourcery.com>
5535
5536 PR other/70183
5537 * passes.c (pass_manager::register_pass): Propagate pflags.
5538
5539 2016-04-17 Tom de Vries <tom@codesourcery.com>
5540
5541 PR other/68875
5542 * pass_manager.h (TERMINATE_PASS_LIST): Add pass argument.
5543 * passes.c (pass_manager::pass_manager): Declare and init p_start in
5544 INSERT_PASSES_AFTER. Add pass parameter to TERMINATE_PASS_LIST, and
5545 check if it's equal to p_start.
5546 * passes.def: Add arguments to TERMINATE_PASS_LISTs.
5547
5548 2016-04-15 Jan Hubicka <jh@suse.cz>
5549
5550 PR ipa/70018
5551 * cgraph.c (cgraph_set_const_flag_1): Only set as pure if
5552 function does not bind to current def.
5553 * ipa-pure-const.c (worse_state): Add FROM and TO parameters;
5554 handle conservatively calls to functions that does not need to bind
5555 to current def.
5556 (check_call): Update call of worse_state.
5557 (ignore_edge_for_nothrow): Update.
5558 (ignore_edge_for_pure_const): Likewise.
5559 (propagate_pure_const): Update calls to worse_state.
5560 (skip_function_for_local_pure_const): Reformat comments.
5561
5562 2016-04-15 Jan Hubicka <jh@suse.cz>
5563
5564 PR ipa/70018
5565 * cgraph.c (cgraph_node::get_availability): Add REF parameter.
5566 (cgraph_node::function_symbol): Likewise.
5567 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
5568 * cgraph.h (symtab_node::get_availabbility): Add REF parameter.
5569 (symtab_node::ultimate_alias_target): Add REF parameter.
5570 (symtab_node::binds_to_current_def_p): Declare.
5571 (symtab_node;:ultimate_alias_target_1): Add REF parameter.
5572 (cgraph_node::function_symbol): Likewise.
5573 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
5574 (cgraph_node::get_availability): Likewise.
5575 (cgraph_edge::binds_to_current_def_p): New inline function.
5576 (varpool_node::get_availability): Add REF parameter.
5577 (varpool_node::ultimate_alias_target): Likewise.
5578 * symtab.c (symtab_node::ultimate_alias_target_1): Likewise.
5579 (symtab_node::binds_to_current_def_p): Likewise.
5580 * varpool.c (varpool_node::get_availability): Likewise.
5581
5582 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
5583
5584 PR target/70662
5585 * config/i386/sse.md(define_insn "<avx512>_vec_dup<mode><mask_name>"):
5586 Fix mode size check.
5587
5588 2016-04-15 Jakub Jelinek <jakub@redhat.com>
5589
5590 * BASE-VER: Set to 7.0.0.
5591
5592 2016-04-15 Alexander Monakov <amonakov@ispras.ru>
5593
5594 * config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.
5595
5596 2016-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5597
5598 * doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T
5599 architecture revisions.
5600
5601 2016-04-15 Bernd Schmidt <bschmidt@redhat.com>
5602
5603 * config/i386/i386-protos.h (ix86_using_red_zone): Declare.
5604 * config/i386/i386.c (ix86_using_red_zone): No longer static.
5605 * config/i386/i386.md (stack decrement to push peepholes): Guard
5606 with !x86_using_red_zone ().
5607
5608 2016-04-15 Jakub Jelinek <jakub@redhat.com>
5609
5610 PR c++/70675
5611 * tree-pretty-print.c (do_niy): Add FLAGS argument, pass it down
5612 to dump_generic_node.
5613 (NIY): Pass also flags to do_niy.
5614
5615 2016-04-15 Thomas Schwinge <thomas@codesourcery.com>
5616
5617 * omp-low.c (simd_clone_struct_alloc, simd_clone_struct_copy)
5618 (simd_clone_vector_of_formal_parm_types)
5619 (simd_clone_clauses_extract, simd_clone_compute_base_data_type)
5620 (simd_clone_mangle, simd_clone_create)
5621 (simd_clone_adjust_return_type, create_tmp_simd_array)
5622 (simd_clone_adjust_argument_types, simd_clone_init_simd_arrays)
5623 (struct modify_stmt_info, ipa_simd_modify_stmt_ops)
5624 (ipa_simd_modify_function_body, simd_clone_linear_addend)
5625 (simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone)
5626 (pass_data_omp_simd_clone, class pass_omp_simd_clone)
5627 (pass_omp_simd_clone::gate, make_pass_omp_simd_clone): Move into...
5628 * omp-simd-clone.c: ... this new file.
5629 (simd_clone_vector_of_formal_parm_types): Make it static.
5630 * Makefile.in (OBJS): Add omp-simd-clone.o.
5631
5632 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
5633
5634 PR target/70662
5635 * config/i386/sse.md: Use proper memory operand modifiers.
5636
5637
5638 2016-04-15 Richard Biener <rguenther@suse.de>
5639 Alan Modra <amodra@gmail.com>
5640
5641 PR tree-optimization/70130
5642 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Detect
5643 when alignment stays not the same and no not use the realign
5644 scheme then.
5645
5646 2016-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
5647
5648 PR target/70669
5649 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
5650 direct move handlers for KFmode. Change TFmode handlers test from
5651 FLOAT128_IEEE_P to FLOAT128_VECTOR_P.
5652
5653 2016-04-14 Jakub Jelinek <jakub@redhat.com>
5654
5655 PR c++/70594
5656 * ipa-utils.h (polymorphic_ctor_dtor_p): New prototype.
5657 * ipa-polymorphic-call.c (polymorphic_ctor_dtor_p): New function.
5658 (inlined_polymorphic_ctor_dtor_block_p): Use it.
5659 * tree-ssa-live.c (remove_unused_scope_block_p): When
5660 in_ctor_dtor_block, avoid discarding not just BLOCKs with
5661 BLOCK_ABSTRACT_ORIGIN being FUNCTION_DECL, but even when
5662 block_ultimate_origin is FUNCTION_DECL.
5663 (remove_unused_locals): If current_function_decl is
5664 polymorphic_ctor_dtor_p, pass initial true to
5665 remove_unused_scope_block_p' is_ctor_dtor_block.
5666
5667 2016-04-14 Martin Sebor <msebor@redhat.com>
5668
5669 PR c++/69517
5670 PR c++/70019
5671 PR c++/70588
5672 * doc/extend.texi (Variable Length): Revert.
5673
5674 2016-04-14 Marek Polacek <polacek@redhat.com>
5675 Jan Hubicka <hubicka@ucw.cz>
5676
5677 PR c++/70029
5678 * tree.c (verify_type): Disable the canonical type of main variant
5679 check.
5680
5681 2016-04-14 Jason Merrill <jason@redhat.com>
5682
5683 * cfgexpand.c, expr.c: Revert previous change.
5684
5685 2016-04-14 Cesar Philippidis <cesar@codesourcery.com>
5686
5687 PR middle-end/70643
5688 * omp-low.c (lower_oacc_reductions): Check for TREE_CONSTANT
5689 when building a mem ref for the incoming reduction variable.
5690
5691 2016-04-14 Richard Biener <rguenther@suse.de>
5692
5693 PR tree-optimization/70614
5694 * tree-scalar-evolution.c (analyze_evolution_in_loop): Terminate
5695 loop if the evolution dropped to chrec_dont_know.
5696 (interpret_condition_phi): Likewise.
5697
5698 2016-04-14 Richard Biener <rguenther@suse.de>
5699
5700 PR tree-optimization/70623
5701 * tree-ssa-pre.c (changed_blocks): Make global ...
5702 (compute_antic): ... local here. Move and fix worklist
5703 handling here. Do not clear EDGE_DFS_BACK or call mark_dfs_back_edges.
5704 (compute_antic_aux): Add dumping for MAX assumed succs. Remove
5705 worklist handling, dump when ANTIC_IN changed.
5706 (compute_partial_antic_aux): Remove worklist handling.
5707 (init_pre): Do not compute post dominators. Add a comment about
5708 the CFG order chosen.
5709 (fini_pre): Do not free post dominators.
5710
5711 2016-04-13 Martin Sebor <msebor@redhat.com>
5712
5713 PR c++/69517
5714 PR c++/70019
5715 PR c++/70588
5716 * doc/extend.texi (Variable Length): Document C++ specifics.
5717
5718 2016-04-13 Jakub Jelinek <jakub@redhat.com>
5719
5720 PR c++/70641
5721 * ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt
5722 on all recursive call stmts. Return TODO_cleanup_cfg if any dead
5723 eh edges have been purged.
5724
5725 PR c++/70594
5726 * tree-sra.c (create_access_replacement,
5727 get_replaced_param_substitute): Set DECL_NAMELESS on repl if it
5728 gets fancy name.
5729 * tree-pretty-print.c (dump_fancy_name): New function.
5730 (dump_decl_name, dump_generic_node): Use it.
5731
5732 2016-04-13 Jason Merrill <jason@redhat.com>
5733
5734 * cfgexpand.c (pass_expand::execute): Handle attribute "abi warning".
5735 * expr.c (expand_expr_real_1): Likewise.
5736
5737 2016-04-13 Ilya Enkovich <ilya.enkovich@intel.com>
5738
5739 * config/i386/i386.md (kunpckhi): Swap operands.
5740 (kunpcksi): Likewise.
5741 (kunpckdi): Likewise.
5742 * config/i386/sse.md (vec_pack_trunc_qi): Likewise.
5743 (vec_pack_trunc_<mode>): Likewise.
5744
5745 2016-04-13 Jakub Jelinek <jakub@redhat.com>
5746
5747 PR debug/70628
5748 * explow.c (convert_memory_address_addr_space_1): Formatting fix.
5749
5750 PR middle-end/70633
5751 * gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
5752 gimplification turns some element into non-constant.
5753
5754 PR debug/70628
5755 * rtl.h (convert_memory_address_addr_space_1): New prototype.
5756 * explow.c (convert_memory_address_addr_space_1): No longer static,
5757 add NO_EMIT argument and don't call convert_modes if true, pass
5758 it down recursively, remove break after return.
5759 (convert_memory_address_addr_space): Adjust caller.
5760 * simplify-rtx.c (simplify_unary_operation_1): Call
5761 convert_memory_address_addr_space_1 instead of convert_memory_address,
5762 if it returns NULL, don't simplify.
5763
5764 2016-04-12 Eric Botcazou <ebotcazou@adacore.com>
5765
5766 PR target/70630
5767 * config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.
5768
5769 2016-04-12 Jakub Jelinek <jakub@redhat.com>
5770
5771 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
5772 Bump the upper SIMDLEN limits, so that if the return type or
5773 characteristic type if the return type is void can be passed in
5774 all available SSE2/AVX/AVX2/AVX512-F registers, the SIMDLEN is
5775 allowed.
5776
5777 2016-04-12 Michael Meissner <meissner@linux.vnet.ibm.com>
5778
5779 PR target/70640
5780 * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2_internal):
5781 Do not use "=" constraint on an input constraint.
5782 (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
5783 (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
5784 (ieee_128bit_vsx_nabs<mode>2): Correct splitter so that it
5785 generates (neg (abs ...)) instead of (abs ...).
5786
5787 2016-04-12 Jakub Jelinek <jakub@redhat.com>
5788
5789 PR rtl-optimization/70596
5790 * lra-spills.c (spill_pseudos): Don't delete debug insns, instead
5791 just invalidate LRA data and reset them. Adjust dump wording.
5792
5793 2016-04-12 Martin Liska <mliska@suse.cz>
5794
5795 Revert
5796 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
5797
5798 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
5799 estimates here.
5800 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
5801 max_loop_iterations_int.
5802 (tree_unswitch_outer_loop): Likewise.
5803 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
5804 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
5805
5806 2016-04-12 Tom de Vries <tom@codesourcery.com>
5807
5808 PR tree-optimization/68756
5809 * graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr
5810 instead of new_name.
5811
5812 2016-04-12 Jakub Jelinek <jakub@redhat.com>
5813
5814 PR tree-optimization/70602
5815 * tree-sra.c (generate_subtree_copies): Don't write anything into
5816 constant pool decls.
5817
5818 * omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
5819 regardless whether there are depend clauses or not.
5820
5821 2016-04-11 Michael Meissner <meissner@linux.vnet.ibm.com>
5822
5823 PR target/70381
5824 * config/rs6000/rs6000.c (rs6000_opt_masks): Disable using the
5825 target attribute and pragma from changing the -mfloat128
5826 and -mfloat128-hardware options.
5827
5828 * doc/extend.texi (Additional Floating Types): Document PowerPC
5829 __float128 restrictions.
5830
5831 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
5832
5833 PR target/70133
5834 * config/aarch64/driver-aarch64.c
5835 (aarch64_get_extension_string_for_isa_flags): New.
5836 (arch_extension): Rename to...
5837 (aarch64_arch_extension): ...This.
5838 (ext_to_feat_string): Rename to...
5839 (aarch64_extensions): ...This.
5840 (aarch64_core_data): Keep track of architecture extension flags.
5841 (cpu_data): Rename to...
5842 (aarch64_cpu_data): ...This.
5843 (aarch64_arch_driver_info): Keep track of architecture extension
5844 flags.
5845 (get_arch_name_from_id): Rename to...
5846 (get_arch_from_id): ...This, change return type.
5847 (host_detect_local_cpu): Update and reformat for renames, handle
5848 extensions through common infrastructure.
5849
5850 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
5851
5852 PR target/70133
5853 * config/aarch64/aarch64-common.c (aarch64_option_extension): Keep
5854 track of a canonical flag name.
5855 (all_extensions): Likewise.
5856 (arch_to_arch_name): Also track extension flags enabled by the arch.
5857 (all_architectures): Likewise.
5858 (aarch64_parse_extension): Move to here.
5859 (aarch64_get_extension_string_for_isa_flags): Take a new argument,
5860 rework.
5861 (aarch64_rewrite_selected_cpu): Update for above change.
5862 * config/aarch64/aarch64-option-extensions.def: Rework the way flags
5863 are handled, such that the single explicit value enabled by an
5864 extension is kept seperate from the implicit values it also enables.
5865 * config/aarch64/aarch64-protos.h (aarch64_parse_opt_result): Move
5866 to here.
5867 (aarch64_parse_extension): New.
5868 * config/aarch64/aarch64.c (aarch64_parse_opt_result): Move from
5869 here to config/aarch64/aarch64-protos.h.
5870 (aarch64_parse_extension): Move from here to
5871 common/config/aarch64/aarch64-common.c.
5872 (aarch64_option_print): Update.
5873 (aarch64_declare_function_name): Likewise.
5874 (aarch64_start_file): Likewise.
5875 * config/aarch64/driver-aarch64.c (arch_extension): Keep track of
5876 the canonical flag for extensions.
5877 * config.gcc (aarch64*-*-*): Extend regex for capturing extension
5878 flags.
5879
5880 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
5881
5882 * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
5883 AARCH64_FL_CRC.
5884
5885 2016-04-09 Tom de Vries <tom@codesourcery.com>
5886
5887 PR tree-optimization/68953
5888 * graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from
5889 first to last subscript.
5890
5891 2016-04-09 Jakub Jelinek <jakub@redhat.com>
5892
5893 PR tree-optimization/70586
5894 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false
5895 for any calls.
5896
5897 2016-04-08 Cesar Philippidis <cesar@codesourcery.com>
5898
5899 PR lto/70289
5900 PR ipa/70348
5901 PR tree-optimization/70373
5902 PR middle-end/70533
5903 PR middle-end/70534
5904 PR middle-end/70535
5905 * gimplify.c (gimplify_adjust_omp_clauses): Add or adjust data
5906 clauses for acc parallel reductions as necessary. Error on those
5907 that are private.
5908 * omp-low.c (scan_sharing_clauses): Don't install variables which
5909 are used in acc parallel reductions.
5910 (lower_rec_input_clauses): Remove dead code.
5911 (lower_oacc_reductions): Add support for reference reductions.
5912 (lower_reduction_clauses): Remove dead code.
5913 (lower_omp_target): Don't remap variables appearing in acc parallel
5914 reductions.
5915 * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro.
5916
5917 2016-04-08 Jakub Jelinek <jakub@redhat.com>
5918
5919 PR middle-end/70593
5920 * tree-ssa-coalesce.c (build_ssa_conflict_graph): For stmt
5921 with multiple SSA_NAME defs, force the outputs other than first
5922 to be live before calling live_track_process_def on each output.
5923
5924 PR rtl-optimization/70574
5925 * fwprop.c (forward_propagate_and_simplify): Don't add
5926 REG_EQUAL note if DF_REF_REG (use) is a paradoxical subreg.
5927 (try_fwprop_subst): Don't add REG_EQUAL note if there are any
5928 paradoxical subregs within *loc.
5929
5930 2016-04-08 Thomas Schwinge <thomas@codesourcery.com>
5931
5932 * config/arc/arc.h (LINK_COMMAND_SPEC): Use gt to ignore
5933 -ftree-parallelize-loops={0,1}.
5934 * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
5935 * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
5936 * config/ia64/hpux.h (LIB_SPEC): Likewise.
5937 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
5938 * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
5939
5940 2016-04-08 Maxim Ostapenko <m.ostapenko@samsung.com>
5941
5942 PR sanitizer/70541
5943 * asan.c (instrument_derefs): If we get unknown location, extract it
5944 with EXPR_LOCATION.
5945 (maybe_instrument_call): Instrument gimple_call's arguments if needed.
5946
5947 2016-04-08 Tom de Vries <tom@codesourcery.com>
5948
5949 * omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc
5950 implicit firstprivate clause.
5951
5952 2016-04-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5953
5954 PR target/70566
5955 * config/arm/thumb2.md (tst + branch-> lsls + branch
5956 peephole below *orsi_not_shiftsi_si): Require that condition
5957 register is dead after the peephole.
5958 (second peephole after the above): Likewise.
5959
5960 2016-04-08 Alan Modra <amodra@gmail.com>
5961
5962 PR target/70117
5963 * builtins.c (fold_builtin_classify): For IBM extended precision,
5964 look at just the high-order double to test for NaN.
5965 (fold_builtin_interclass_mathfn): Similarly for Inf. For isnormal
5966 test just the high double for Inf but both doubles for subnormal
5967 limit.
5968
5969 2016-04-07 Jakub Jelinek <jakub@redhat.com>
5970
5971 * cgraph.h (struct cgraph_simd_clone): Add mask_mode field.
5972 * omp-low.c (simd_clone_init_simd_arrays, simd_clone_adjust): Handle
5973 node->simdclone->mask_mode != VOIDmode masks.
5974 (simd_clone_adjust_argument_types): Likewise. Move sc var definition
5975 earlier, use it instead of node->simdclone.
5976 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
5977 Set clonei->mask_mode.
5978
5979 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
5980
5981 PR c/70436
5982 * parser.c (cp_parser_iteration_statement): New parameter IF_P.
5983 Pass it through to cp_parser_already_scoped_statement.
5984 (cp_parser_already_scoped_statement): New parameter IF_P. Pass
5985 it through to cp_parser_statement.
5986 (cp_parser_statement): Pass IF_P through to
5987 cp_parser_iteration_statement.
5988 (cp_parser_pragma): Adjust call to
5989 cp_parser_iteration_statement.
5990
5991 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
5992
5993 PR c/70436
5994 * gimplify.c (gimplify_omp_ordered): Add explicit braces to
5995 resolve a future -Wparentheses warning.
5996 * omp-low.c (scan_sharing_clauses): Likewise.
5997 * tree-parloops.c (eliminate_local_variables): Likewise.
5998
5999 2016-04-06 Vladimir Makarov <vmakarov@redhat.com>
6000
6001 PR rtl-optimization/70398
6002 * lra-constraints.c (process_address_1): Check zero scale and code
6003 for reloading with zero scale.
6004
6005 2016-04-06 Uros Bizjak <ubizjak@gmail.com>
6006
6007 * config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
6008 (ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.
6009
6010 2016-04-06 Jakub Jelinek <jakub@redhat.com>
6011
6012 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
6013 Add support for AVX512F clones, include them by default for
6014 exported OpenMP declare simd functions. For AVX2 allow simdlen 32
6015 and use it if charasteric type is 8-bit, for AVX512F allow simdlen
6016 up to 128.
6017
6018 PR middle-end/70550
6019 * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define.
6020 * gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit
6021 firstprivate clauses.
6022 * omp-low.c (lower_send_clauses): Set TREE_NO_WARNING for
6023 OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT !by_ref vars in task contexts.
6024 (lower_omp_target): Set TREE_NO_WARNING for
6025 non-addressable possibly uninitialized vars which are copied into
6026 addressable temporaries or copied for GOMP_MAP_FIRSTPRIVATE_INT.
6027
6028 2016-04-05 John David Anglin <danglin@gcc.gnu.org>
6029
6030 * config/pa/predicates.md (integer_store_memory_operand): Accept
6031 REG+D operands with a large offset when reload_in_progress is true.
6032 (floating_point_store_memory_operand): Likewise.
6033
6034 2016-04-05 Jakub Jelinek <jakub@redhat.com>
6035
6036 PR c++/70336
6037 * match.pd (nested int casts): Limit to GIMPLE.
6038
6039 2016-04-05 Jan Hubicka <hubicka@ucw.cz>
6040
6041 PR ipa/66223
6042 * ipa-devirt.c (maybe_record_node): Fix comment; use
6043 SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.
6044
6045 2016-04-05 Jakub Jelinek <jakub@redhat.com>
6046
6047 PR rtl-optimization/70542
6048 * ree.c (add_removable_extension): For VECTOR_MODE_P punt
6049 if there are any uses other than insn or debug insns.
6050
6051 2016-04-05 Marc Glisse <marc.glisse@inria.fr>
6052 Jakub Jelinek <jakub@redhat.com>
6053
6054 PR tree-optimization/70509
6055 * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SELECT>:
6056 Shift HOST_WIDE_INT_1U instead of 1.
6057
6058 2016-04-05 Zdenek Sojka <zsojka@seznam.cz>
6059
6060 PR tree-optimization/70509
6061 * tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int instead
6062 of the vector base type for index.
6063
6064 2016-04-05 Uros Bizjak <ubizjak@gmail.com>
6065
6066 PR target/70510
6067 * config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.
6068
6069 2016-04-05 Richard Biener <rguenther@suse.de>
6070
6071 PR tree-optimization/70526
6072 * tree-sra.c (build_ref_for_offset): Use prev_base to
6073 extract the alias pointer type.
6074
6075 2016-04-05 Richard Biener <rguenther@suse.de>
6076
6077 * dse.c (struct store_info): Remove alias_set member.
6078 (struct read_info_type): Likewise.
6079 (clear_alias_group, clear_alias_mode_table, clear_alias_mode_holder,
6080 spill_deleted, clear_alias_set_lookup): Remove.
6081 (get_group_info): Remove dead base == NULL_RTX case.
6082 (dse_step0): Remove initialization of removed variables.
6083 (delete_dead_store_insn): Reomve alias set dumping.
6084 (free_read_records): Remove alias_set handling.
6085 (canon_address): Remove alias_set_out parameter.
6086 (record_store): Remove spill_alias_set, it's always zero.
6087 (check_mem_read_rtx): Likewise.
6088 (dse_step2): Rename from ...
6089 (dse_step2_nospill): ... this. Adjust.
6090 (scan_stores): Rename from ...
6091 (scan_stores_nospill): ... this.
6092 (scan_reads): Rename from ...
6093 (scan_reads_nospill): ... this.
6094 (scan_stores_spill, scan_reads_spill): Remove.
6095 (dse_step3_scan): Remove for_spills argument which is always false.
6096 (dse_step3): Likewise.
6097 (dse_step5): Rename from ...
6098 (dse_step5_nospill): ... this. Remove alias_set handling.
6099 (rest_of_handle_dse): Adjust.
6100
6101 2016-04-05 Jakub Jelinek <jakub@redhat.com>
6102
6103 PR target/70525
6104 * config/i386/sse.md (*andnot<mode>3): Simplify assertions.
6105 Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for
6106 V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting.
6107 (*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator.
6108
6109 2016-04-05 Richard Biener <rguenther@suse.de>
6110
6111 PR middle-end/70499
6112 * gimplify-me.c (gimple_regimplify_operands): Do not rewrite
6113 non-register type temporaries into SSA.
6114
6115 2016-04-04 Jan Hubicka <hubicka@ucw.cz>
6116
6117 PR ipa/66223
6118 * ipa-devirt.c (maybe_record_node): Do not optimize cxa_pure_virtual
6119 calls when sanitizing.
6120 (possible_polymorphic_call_target_p): Fix formatting.
6121
6122 2016-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6123 Jakub Jelinek <jakub@redhat.com>
6124
6125 PR middle-end/70457
6126 * tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p
6127 to ensure a call statement is compatible with a built-in's
6128 prototype.
6129 * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
6130 Likewise.
6131
6132 2016-04-04 Richard Biener <rguenther@suse.de>
6133
6134 PR rtl-optimization/70484
6135 * rtl.h (canon_output_dependence): Declare.
6136 * alias.c (canon_output_dependence): New function.
6137 * dse.c (record_store): Use canon_output_dependence rather
6138 than canon_true_dependence.
6139
6140 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
6141
6142 PR ipa/68881
6143 * cgraph.h (symtab_node::copy_visibility_from): New function.
6144 * symtab.c (symtab_node::copy_visibility_from): New function.
6145 * ipa-visibility.c (optimize_weakref): New function.
6146 (function_and_variable_visibility): Use it.
6147
6148 2016-04-04 Martin Liska <mliska@suse.cz>
6149
6150 PR hsa/70402
6151 * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Guard index
6152 value that is really in range handled by SBR instruction.
6153 * hsa-brig.c (emit_switch_insn): Do not emit unconditional jump.
6154 * hsa-dump.c (dump_hsa_insn_1): Do not dump default BB.
6155 * hsa.h (hsa_insn_sbr::m_default_bb): Remove field.
6156
6157 2016-04-03 Oleg Endo <olegendo@gcc.gnu.org>
6158
6159 PR target/70416
6160 PR target/67391
6161 * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
6162 set, but not for SP_REG operands.
6163
6164 2016-04-02 Martin Sebor <msebor@redhat.com>
6165
6166 PR c++/67376
6167 * fold-const.c (maybe_nonzero_address): New function.
6168 (fold_comparison): Call it. Fold equality and relational
6169 expressions involving null pointers.
6170 (tree_single_nonzero_warnv_p): Call maybe_nonzero_address.
6171
6172 2016-03-31 Evandro Menezes <e.menezes@samsung.com>
6173
6174 Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
6175 the "Y" constraint (scalar FP 0.0 immediate).
6176
6177 * config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
6178 Add the "const_double" to the list of operand constraints.
6179
6180 2016-04-01 Jakub Jelinek <jakub@redhat.com>
6181
6182 PR rtl-optimization/70467
6183 * config/i386/i386.md (*add<dwi>3_doubleword, *sub<dwi>3_doubleword):
6184 If low word of the last operand is 0, just emit addition/subtraction
6185 for the high word.
6186
6187 2016-04-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
6188
6189 PR target/70404
6190 * config/s390/s390.c (s390_expand_insv): Check for everything
6191 constant instead of just VOIDmode stuff.
6192
6193 2016-04-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6194
6195 PR target/70496
6196 * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB.
6197
6198 2016-04-01 Nathan Sidwell <nathan@acm.org>
6199
6200 * tree.def (TRY_CATCH_EXPR): Correct documentation.
6201
6202 2016-03-31 Vladimir Makarov <vmakarov@redhat.com>
6203
6204 PR rtl-optimization/70461
6205 * ira-color.c (allocno_copy_cost_saving): Use allocno class if it
6206 is necessary.
6207
6208 2016-03-31 Martin Liska <mliska@suse.cz>
6209
6210 PR hsa/70399
6211 * hsa-brig.c (hsa_op_immed::emit_to_buffer): Emit either
6212 a tree value or an immediate integer value to a buffer
6213 that is eventually copied to a BRIG section.
6214 (emit_immediate_operand): Call the function here.
6215 * hsa-dump.c (dump_hsa_immed): Remove checking assert.
6216 * hsa-gen.c (hsa_op_immed::hsa_op_immed): Remove initialization
6217 of class' fields that are removed.
6218 (hsa_op_immed::~hsa_op_immed): Remove deinitialization.
6219 * hsa.h (class hsa_op_immed): Remove m_brig_repr and
6220 m_brig_repr_size fields.
6221
6222 2016-03-31 Martin Liska <mliska@suse.cz>
6223
6224 PR hsa/70391
6225 * hsa-gen.c (hsa_function_representation::update_dominance): New
6226 function.
6227 (convert_addr_to_flat_segment): Likewise.
6228 (gen_hsa_memory_set): New alignment argument.
6229 (gen_hsa_ctor_assignment): Likewise.
6230 (gen_hsa_insns_for_single_assignment): Provide alignment
6231 to gen_hsa_ctor_assignment.
6232 (gen_hsa_insns_for_direct_call): Add new argument.
6233 (expand_lhs_of_string_op): New function.
6234 (expand_string_operation_builtin): Likewise.
6235 (expand_memory_copy): New function.
6236 (expand_memory_set): New function.
6237 (gen_hsa_insns_for_call): Use HOST_WIDE_INT.
6238 (convert_switch_statements): Change signature.
6239 (generate_hsa): Use a return value of the function.
6240 (pass_gen_hsail::execute): Do not call
6241 convert_switch_statements here.
6242 * hsa-regalloc.c (hsa_regalloc): Call update_dominance.
6243 * hsa.h (hsa_function_representation::m_modified_cfg): New flag.
6244 (hsa_function_representation::update_dominance): New function.
6245
6246 2016-03-31 Martin Liska <mliska@suse.cz>
6247
6248 PR hsa/70391
6249 * hsa-brig.c (emit_directive_variable): Emit alignment
6250 according to hsa_symbol::m_align.
6251 * hsa-dump.c (hsa_byte_alignment): Move the function to another file.
6252 (dump_hsa_symbol): Dump alignment of HSA symbols.
6253 * hsa-gen.c (get_symbol_for_decl): Set-up alignment of a symbol.
6254 (gen_hsa_addr_with_align): New function.
6255 (hsa_bitmemref_alignment): Use newly added function.
6256 (gen_hsa_insns_for_load): Likewise.
6257 (gen_hsa_insns_for_store): Likewise.
6258 (gen_hsa_memory_copy): New argument added.
6259 (gen_hsa_insns_for_single_assignment): Respect
6260 alignment for assignments processed via gen_hsa_memory_copy.
6261 (gen_hsa_insns_for_direct_call): Likewise.
6262 (gen_hsa_insns_for_return): Likewise.
6263 (gen_function_def_parameters): Set default alignment.
6264 * hsa.c (hsa_object_alignment): New function.
6265 (hsa_byte_alignment): Pasted function.
6266 * hsa.h (hsa_symbol::m_align): New field.
6267
6268 2016-03-31 Bin Cheng <bin.cheng@arm.com>
6269
6270 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
6271 scratch field for goto case.
6272
6273 2016-03-31 James Greenhalgh <james.greenhalgh@arm.com>
6274
6275 * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.
6276
6277 2016-03-31 Ilya Enkovich <enkovich.gnu@gmail.com>
6278
6279 PR target/70442
6280 * config/i386/i386.c (scalar_chain::convert_op): Fix description.
6281 (scalar_chain::convert_insn): Call convert_op for reg
6282 moves to handle undefined registers.
6283
6284 2016-03-31 Nathan Sidwell <nathan@acm.org>
6285
6286 PR c++/70393
6287 * varasm.c (output_constructor_regular_field): Flush bitfield earlier.
6288 Assert we don't want to move backwards.
6289
6290 2016-03-31 Kirill Yukhin <kirill.yukhin@intel.com>
6291
6292 PR target/70453
6293 * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
6294
6295 2016-03-31 Jakub Jelinek <jakub@redhat.com>
6296
6297 PR rtl-optimization/70460
6298 * ira.c (indirect_jump_optimize): Don't substitute LABEL_REF
6299 with operand from REG_LABEL_OPERAND, instead substitute
6300 SET_SRC or REG_EQUAL note content if it is a LABEL_REF.
6301 Don't do anything for REG_NON_LOCAL_GOTO jumps.
6302
6303 2016-03-31 Martin Liska <mliska@suse.cz>
6304
6305 * passes.c (execute_one_pass): Do not call
6306 todo_after for a discarded function.
6307
6308 2016-03-31 Bin Cheng <bin.cheng@arm.com>
6309
6310 * tree-ssa-loop-ivopts.c (struct comp_cost): New scrach field.
6311 (no_cost, infinite_cost): Initialize the new field.
6312 (get_computation_cost_at): Record setup cost.
6313 (determine_use_iv_cost_address): Skip cost computation for sub
6314 uses if we can estimate it without losing accuracy.
6315
6316 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
6317
6318 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
6319 estimates here.
6320 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
6321 max_loop_iterations_int.
6322 (tree_unswitch_outer_loop): Likewise.
6323 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
6324 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
6325
6326 2016-03-30 Richard Biener <rguenther@suse.de>
6327
6328 PR middle-end/70450
6329 * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage.
6330
6331 2016-03-30 Jakub Jelinek <jakub@redhat.com>
6332
6333 PR target/70421
6334 * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
6335 in gen_blendm expander.
6336
6337 2016-03-30 Nick Clifton <nickc@redhat.com>
6338
6339 PR target/62254
6340 * config/arm/arm.c (arm_reload_out_hi): Add code to handle the
6341 case where we are already provided with an SImode SUBREG.
6342
6343 2016-03-30 H.J. Lu <hongjiu.lu@intel.com>
6344
6345 PR target/70439
6346 * config/i386/i386.c (ix86_expand_epilogue): Properly check
6347 conflict between DRAP register and __builtin_eh_return.
6348
6349 2016-03-30 Michael Matz <matz@suse.de>
6350 Richard Biener <rguenther@suse.de>
6351
6352 PR ipa/12392
6353 * ipa-polymorphic-call.c (struct type_change_info): Change
6354 speculative to an unsigned allowing to limit the work we do.
6355 (csftc_abort_walking_p): New inline function..
6356 (check_stmt_for_type_change): Limit the number of may-defs
6357 skipped for speculative devirtualization to
6358 max-speculative-devirt-maydefs.
6359 * params.def (max-speculative-devirt-maydefs): New param.
6360 * doc/invoke.texi (--param max-speculative-devirt-maydefs): Document.
6361
6362 2016-03-30 Mike Stump <mrs@gcc.gnu.org>
6363
6364 PR target/63890
6365 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
6366 and TARGET_MACHO.
6367
6368 2016-03-30 Patrick Palka <ppalka@gcc.gnu.org>
6369
6370 PR tree-optimization/59124
6371 * tree-vrp.c (register_edge_assert_for_2): For NAME != CST1
6372 where NAME = A +- CST2 add the assertion A != (CST1 -+ CST2).
6373
6374 2016-03-29 Jeff Law <law@redhat.com>
6375
6376 * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment.
6377
6378 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
6379
6380 * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
6381 to HOST_WIDE_INT.
6382
6383 2016-03-29 Thomas Schwinge <thomas@codesourcery.com>
6384
6385 * config/gnu.h (CPP_SPEC, LIB_SPEC): Don't override.
6386 * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt1.o instead of
6387 gcrt0.o if linking dynamically.
6388
6389 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
6390
6391 PR ipa/70283
6392 * ipa-devirt.c (methods_equal_p): New function.
6393 (compare_virtual_tables): Use it.
6394 * cgraph.h (symbol_table::symbol_suffix_separator): Declare.
6395 * cgraphclones.c (clone_function_name_1): Use
6396 symbol_table::symbol_suffix_separator.
6397 * coverage.c (build_var): Likewise.
6398 * symtab.c (symbol_table::symbol_suffix_separator): New.
6399
6400 2016-03-29 Jakub Jelinek <jakub@redhat.com>
6401
6402 PR rtl-optimization/70429
6403 * combine.c (simplify_shift_const_1): For ASHIFTRT don't optimize
6404 (cst1 >> count) >> cst2 into (cst1 >> cst2) >> count if
6405 mode != result_mode.
6406
6407 PR c++/70353
6408 * tree-inline.c (remap_decls): Don't add_local_decl if cfun is null.
6409
6410 PR tree-optimization/70405
6411 * ssa-iterators.h (num_imm_uses): Add missing braces.
6412
6413 2016-03-29 Vladimir Makarov <vmakarov@redhat.com>
6414
6415 PR rtl-optimization/68695
6416 * ira-color.c (allocno_copy_cost_saving): New.
6417 (improve_allocation): Use it.
6418
6419 2016-03-29 Richard Henderson <rth@redhat.com>
6420
6421 PR middle-end/70355
6422 * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.
6423
6424 2016-03-29 Richard Biener <rguenther@suse.de>
6425
6426 PR middle-end/70424
6427 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
6428 use alignment returned by get_pointer_alignment_1 if it is
6429 bigger than BITS_PER_UNIT.
6430 * builtins.c (get_pointer_alignment_1): Do not return true
6431 for alignment extracted from SSA info.
6432
6433 2016-03-28 James Bowman <james.bowman@ftdichip.com>
6434
6435 * config/ft32/ft32.opt (mnodiv): New.
6436 * config/ft32/ft32.md (*divsi3, *modsi3): Qualify with TARGET_NODIV.
6437 * doc/invoke.texi (FT32 Options -mnodiv): New.
6438
6439 2016-03-28 Kirill Yukhin <kirill.yukhin@intel.com>
6440
6441 PR target/70406
6442 * config/i386/i386.md (define_split, andn): Fix modes.
6443
6444 2016-03-26 Richard Biener <rguenther@suse.de>
6445 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6446
6447 PR ipa/70366
6448 * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
6449 instead of
6450 TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
6451 as 2nd argument to cl_optimization_restore().
6452
6453 2016-03-25 Richard Henderson <rth@redhat.com>
6454
6455 PR target/70120
6456 * config/aarch64/aarch64.c (aarch64_asm_output_pool_epilogue): New.
6457 * config/aarch64/aarch64-protos.h: Declare it.
6458 * config/aarch64/aarch64.h (ASM_OUTPUT_POOL_EPILOGUE): New.
6459
6460 2016-03-25 Alan Modra <amodra@gmail.com>
6461
6462 PR target/70052
6463 * config/rs6000/constraints.md (j): Simplify.
6464 * config/rs6000/predicates.md (easy_fp_constant): Exclude
6465 decimal float 0.D.
6466 * config/rs6000/rs6000.md (zero_fp): New mode_attr.
6467 (mov<mode>_hardfloat, mov<mode>_hardfloat32, mov<mode>_hardfloat64,
6468 mov<mode>_64bit_dm, mov<mode>_32bit): Use zero_fp in place of j
6469 in all constraint alternatives.
6470 (movtd_64bit_nodm): Delete "j" constraint alternative.
6471
6472 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
6473
6474 * tree-ssa-propagate.c: Enhance docs for
6475 SSA_PROP_NOT_INTERESTING.
6476
6477 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
6478
6479 * doc/extend.texi: Fix typo in documentation to pure attribute.
6480
6481 2016-03-24 John David Anglin <danglin@gcc.gnu.org>
6482
6483 PR target/70319
6484 * config/pa/pa.md (bswapdi2): Use a scratch register.
6485
6486 2016-03-24 Richard Henderson <rth@redhat.com>
6487
6488 PR middle-end/69845
6489 * fold-const.c (extract_muldiv_1): Correct test for multiplication
6490 overflow.
6491
6492 2016-03-24 Uros Bizjak <ubizjak@gmail.com>
6493
6494 * config/i386/i386.md (*anddi3_doubleword): Generate AND insn
6495 using ix86_expand_binary_operator instead of gen_andsi3.
6496
6497 2016-03-24 Richard Biener <rguenther@suse.de>
6498
6499 PR tree-optimization/70396
6500 * tree-vect-stmts.c (vectorizable_comparison): Use
6501 get_vectype_for_scalar_type.
6502
6503 2016-03-24 Richard Biener <rguenther@suse.de>
6504
6505 PR middle-end/70370
6506 * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
6507 with register bases.
6508
6509 2016-03-24 Richard Biener <rguenther@suse.de>
6510
6511 PR tree-optimization/70372
6512 * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Use
6513 build_all_ones_cst to also handle vector types correctly.
6514
6515 2016-03-23 Michael Meissner <meissner@linux.vnet.ibm.com>
6516
6517 PR target/70381
6518 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
6519 -mfloat128 here.
6520
6521 2016-03-23 Marek Polacek <polacek@redhat.com>
6522
6523 PR c++/69884
6524 * doc/invoke.texi: Document -Wignored-attributes.
6525
6526 2016-03-23 Bin Cheng <bin.cheng@arm.com>
6527
6528 PR tree-optimization/69042
6529 * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
6530 parameter from 30 to 40.
6531
6532 2016-03-23 Bin Cheng <bin.cheng@arm.com>
6533
6534 PR tree-optimization/69042
6535 * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Add IV cand
6536 for use with constant offset stripped in base.
6537
6538 2016-03-23 Richard Biener <rguenther@suse.de>
6539
6540 PR middle-end/70251
6541 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust
6542 mode compatibility check.
6543 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
6544
6545 2016-03-23 Jeff Law <law@redhat.com>
6546
6547 PR tree-optimization/64058
6548 * tree-ssa-coalesce.c (struct coalesce_pair): Add new field
6549 CONFLICT_COUNT.
6550 (struct ssa_conflicts): Move up earlier in the file.
6551 (conflicts_, var_map_): New static variables.
6552 (initialize_conflict_count): New function to initialize the
6553 CONFLICT_COUNT field for each conflict pair.
6554 (compare_pairs): Lazily initialize the conflict count and use it
6555 as the first tie-breaker.
6556 (sort_coalesce_list): Add new arguments conflicts, map. Initialize
6557 and wipe conflicts_ and map_ around the call to qsort. Remove
6558 special case for 2 coalesce pairs.
6559 * bitmap.c (bitmap_count_unique_bits): New function.
6560 (bitmap_count_bits_in_word): New function, extracted from
6561 bitmap_count_bits.
6562 (bitmap_count_bits): Use bitmap_count_bits_in_word.
6563 * bitmap.h (bitmap_count_unique_bits): Declare it.
6564
6565 2016-03-23 Ilya Enkovich <enkovich.gnu@gmail.com>
6566
6567 PR target/69917
6568 * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
6569 transparent alias chain for decl assembler name.
6570 * config/sol2.c (solaris_assemble_visibility): Likewise.
6571
6572 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6573
6574 * config/arm/arm1020e.md (1020call_op): Reduce reservation
6575 duration.
6576 (v10_fdivs): Likewise.
6577 (v10_fdivd): Likewise.
6578
6579 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6580
6581 PR driver/70132
6582 * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
6583 to not call fclose twice on file.
6584
6585 2016-03-23 Jakub Jelinek <jakub@redhat.com>
6586
6587 PR tree-optimization/70354
6588 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
6589 oprnd0 is wider than oprnd1 and there is a cast from the wider
6590 type to oprnd1, mask it with the mask of the narrower type.
6591
6592 PR target/70321
6593 * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
6594 Optimize TARGET_STV splitters, if high or low word of last argument
6595 is 0 or -1.
6596
6597 2016-03-22 Jeff Law <law@redhat.com>
6598
6599 PR target/70232
6600 tree-ssa-threadbackward.c
6601 (fsm_find_control_statement_thread_paths): Correctly distinguish
6602 between old style jump threads vs FSM jump threads.
6603
6604 2016-03-22 Ilya Enkovich <enkovich.gnu@gmail.com>
6605
6606 PR target/70302
6607 * config/i386/i386.c (scalar_chain::convert_op): Support
6608 uninitialized register usage case.
6609
6610 2016-03-22 Richard Biener <rguenther@suse.de>
6611
6612 PR middle-end/70251
6613 * genmatch.c (gen_transform): Adjust last parameter to a three-state
6614 int...
6615 (capture::gen_transform): ... to change behavior when substituting
6616 a condition into cond or not-cond expr context.
6617 (dt_simplify::gen_1): Adjust.
6618 * gimple-match-head.c: Include gimplify.h for unshare_expr.
6619 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Revert
6620 last change and instead change to
6621 A + (B vcmp C ? 1 : 0) -> A - (B vcmp C ? -1 : 0).
6622 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
6623
6624 2016-03-22 Anthony Green <green@moxielogic.com>
6625
6626 * config/moxie/moxiebox.h (CC1_SPEC): Define. Fix endianness
6627 issue for moxiebox targets.
6628 (CC1PLUS_SPEC): Ditto.
6629
6630 2016-03-22 Richard Biener <rguenther@suse.de>
6631
6632 PR middle-end/70333
6633 * fold-const.c (extract_muldiv_1): Properly perform multiplication
6634 in the wide type.
6635
6636 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
6637
6638 * config/i386/i386.c (def_builtin): Remove duplicated functionality.
6639
6640 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
6641
6642 PR target/70325
6643 * config/i386/i386.c (def_builtin): Handle
6644 OPTION_MASK_ISA_AVX512VL to be and-ed with other
6645 bits.
6646 (const struct builtin_description bdesc_special_args[]):
6647 Remove duplicate ISA bits.
6648
6649 2016-03-22 Jakub Jelinek <jakub@redhat.com>
6650
6651 PR target/70329
6652 * config/i386/i386.c (ix86_expand_vecop_qihi): Don't bother computing
6653 d.perm[i] for i >= d.nelt. If not full_interleave, compute d.perm[i]
6654 in a way that works also for AVX512BW.
6655
6656 PR target/70300
6657 * config/i386/i386.md (cvtsd2ss splitter): Unpack in destination
6658 instead of source if operands[1] is xmm16 and above and
6659 !TARGET_AVX512VL. Use avx512f_vec_dupv16sf_1 instead of
6660 vec_interleave_lowv4sf if we need to unpack xmm16 and above.
6661
6662 PR c++/70295
6663 * gimplify.c (gimplify_modify_expr): Call gimple_set_no_warning
6664 on assign if (*from_p) is a comparison, set it to
6665 TREE_NO_WARNING (*from_p).
6666
6667 2016-03-21 Jakub Jelinek <jakub@redhat.com>
6668
6669 PR middle-end/70326
6670 * lra.c (restore_scratches): Ignore deleted insns.
6671
6672 2016-03-21 Marc Glisse <marc.glisse@inria.fr>
6673 Jakub Jelinek <jakub@redhat.com>
6674
6675 PR tree-optimization/70317
6676 * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
6677 to HONOR_NANS.
6678
6679 2016-03-21 Uros Bizjak <ubizjak@gmail.com>
6680
6681 PR target/70327
6682 * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
6683 of ix86_expand_move.
6684 (movoi): Ditto.
6685 (movti): Use general_operand for operand 1 predicate.
6686
6687 2016-03-21 Martin Liska <mliska@suse.cz>
6688
6689 * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
6690 insns.
6691 (dump_hsa_symbol): Dump BRIG offset of hsa_symbols.
6692
6693 2016-03-21 Martin Liska <mliska@suse.cz>
6694
6695 PR ipa/70306
6696 * ipa-icf.c (sem_function::parse): Skip static
6697 constructors and destructors.
6698
6699 2016-03-21 Jakub Jelinek <jakub@redhat.com>
6700
6701 PR target/70296
6702 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If IDENT is
6703 function-like macro, peek following token(s) if it is followed
6704 by CPP_OPEN_PAREN token with optional padding in between, and
6705 if not, don't treat it like a macro.
6706
6707 2016-03-21 Thomas Schwinge <thomas@codesourcery.com>
6708 Alexander Monakov <amonakov@ispras.ru>
6709
6710 * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
6711 for the stabs debug format.
6712
6713 2016-03-21 Richard Biener <rguenther@suse.de>
6714
6715 PR tree-optimization/70310
6716 * tree-vect-generic.c (expand_vector_condition): Fold the built
6717 condition.
6718
6719 2016-03-21 Kirill Yukhin <kirill.yukhin@intel.com>
6720
6721 PR target/70293
6722 * config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2):
6723 Block third alternative for AVX-512VL target,
6724
6725 2016-03-21 Martin Liska <mliska@suse.cz>
6726
6727 PR hsa/70234
6728 * hsa-brig.c (emit_function_directives): Mark unemitted
6729 global variables for emission.
6730 * hsa-gen.c (hsa_symbol::hsa_symbol): Initialize a new flag.
6731 (get_symbol_for_decl): Likewise.
6732 * hsa.h (struct hsa_symbol): New flag.
6733
6734 2016-03-21 Richard Biener <rguenther@suse.de>
6735
6736 PR tree-optimization/70288
6737 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Make sure
6738 we do not estimate unsimplified all-constant conditionals or
6739 switches as optimized away.
6740
6741 2016-03-21 Andrey Belevantsev <abel@ispras.ru>
6742
6743 PR rtl-optimization/69102
6744 * sched-deps.c (sched_analyze_insn): Do not set last_args_size field
6745 when we have a readonly dependency context.
6746
6747 2016-03-18 Jeff Law <law@redhat.com>
6748
6749 PR rtl-optimization/70263
6750 * ira.c (memref_used_between_p): Assert we found END in the insn chain.
6751 (update_equiv_regs): When trying to move a store to after the insn
6752 that sets the source of the store, make sure the store occurs after
6753 the insn that sets the source of the store. When successful note
6754 the REG_EQUIV note created in the dump file.
6755
6756 2016-03-16 David Wohlferd <dw@LimeGreenSocks.com>
6757 Bernd Schmidt <bschmidt@redhat.com>
6758
6759 * doc/extend.texi: Document more potential problems with basic asms.
6760
6761 2016-03-18 Bernd Schmidt <bschmidt@redhat.com>
6762
6763 PR rtl-optimization/70278
6764 * lra-constraints.c (split_reg): Handle the case where biggest_mode is
6765 VOIDmode.
6766
6767 2016-03-18 Jason Merrill <jason@redhat.com>
6768
6769 * calls.c (load_register_parameters): Fix zero size sibcall logic.
6770
6771 2016-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
6772
6773 * config/i386/sse.md: Use vpbroadcastq for broadcasting DF
6774 values to 128b regs.
6775
6776 2016-03-18 Ilya Enkovich <enkovich.gnu@gmail.com>
6777
6778 PR tree-optimization/70252
6779 * tree-vect-stmts.c (supportable_widening_operation): Check resulting
6780 boolean vector has a proper number of elements.
6781 (supportable_narrowing_operation): Likewise.
6782
6783 2016-03-18 Tom de Vries <tom@codesourcery.com>
6784
6785 PR ipa/70269
6786 * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.
6787
6788 2016-03-18 Jakub Jelinek <jakub@redhat.com>
6789
6790 * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
6791 instead of replace_rtx for DEBUG_INSNs.
6792
6793 2016-03-18 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
6794
6795 * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
6796 load type reservations.
6797
6798 2016-03-17 John David Anglin <danglin@gcc.gnu.org>
6799
6800 PR target/70188
6801 * config/pa/constraints.md: Revert 2015-02-13 change. Use
6802 define_constraint for "Q" and "T" constraints.
6803
6804 2016-03-17 Evandro Menezes <e.menezes@samsung.com>
6805
6806 Tweak the pipeline model for Exynos M1
6807
6808 * config/aarch64/aarch64.c (exynosm1_tunings): Enable weak prefetching
6809 model.
6810
6811 2016-03-17 David Malcolm <dmalcolm@redhat.com>
6812
6813 PR c/70264
6814 * diagnostic-show-locus.c (compatible_locations_p): Handle the case
6815 where one or both locations aren't within a line_map.
6816
6817 2016-03-17 H.J. Lu <hongjiu.lu@intel.com>
6818
6819 PR driver/70192
6820 * opts.c (finish_options): Don't set flag_pie to the default if
6821 -fpic, -fPIC, -fno-pic or -fno-PIC is used. Set flag_pic to 0
6822 if it is -1.
6823
6824 2016-03-17 Joern Rennecke <joern.rennecke@embecosm.com>
6825
6826 * config/i386/i386.md (*movv4qicc_insn+1..36): Pass
6827 true as ALL_REGS argument to replace_rtx.
6828
6829 2016-03-17 Richard Biener <rguenther@suse.de>
6830
6831 PR debug/70271
6832 * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
6833 last.
6834
6835 2016-03-17 Jakub Jelinek <jakub@redhat.com>
6836
6837 PR target/70245
6838 * rtl.h (replace_rtx): Add ALL_REGS argument.
6839 * rtlanal.c (replace_rtx): Likewise. If true, use REGNO
6840 equality and assert mode is the same, instead of just rtx pointer
6841 equality.
6842 * config/i386/i386.md (mov + arithmetics with load peephole): Pass
6843 true as ALL_REGS argument to replace_rtx.
6844
6845 2016-03-17 Ilya Enkovich <enkovich.gnu@gmail.com>
6846
6847 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply
6848 for boolean vector with vector mode only.
6849 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
6850
6851 2016-03-17 Nick Clifton <nickc@redhat.com>
6852
6853 PR target/70162
6854 * config/rx/rx.c (rx_print_integer): Print negative constants in
6855 decimal.
6856
6857 2016-03-17 Jakub Jelinek <jakub@redhat.com>
6858
6859 PR target/70261
6860 * rtlanal.c (replace_rtx): Revert 2016-03-16 change.
6861
6862 2016-03-16 Richard Henderson <rth@redhat.com>
6863 Richard Biener <rguenth@suse.de>
6864
6865 PR middle-end/70240
6866 PR middle-end/68215
6867 PR tree-opt/68714
6868 * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
6869 first operand as is_gimple_condexpr.
6870
6871 PR middle-end/70240
6872 PR middle-end/68215
6873 Revert r231575
6874 2015-12-11 Eric Botcazou <ebotcazou@adacore.com>
6875 * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter.
6876 Do not gimplify the result.
6877 (do_unop): Adjust call to tree_vec_extract.
6878 (do_binop): Likewise.
6879 (do_compare): Likewise.
6880 (do_plus_minus): Likewise.
6881 (do_negate): Likewise.
6882 (expand_vector_condition): Likewise.
6883 (do_cond): Likewise.
6884
6885 2016-03-16 Richard Henderson <rth@redhat.com>
6886
6887 PR target/70048
6888 * config/aarch64/aarch64.c (virt_or_elim_regno_p): New.
6889 (aarch64_classify_address): Use it.
6890 (aarch64_legitimize_address): Force all subexpressions of PLUS
6891 into registers. Simplify as (sfp+const)+reg or (reg+reg)+const.
6892
6893 2016-03-16 Jakub Jelinek <jakub@redhat.com>
6894 Richard Biener <rguenth@suse.de>
6895
6896 PR target/70245
6897 * rtlanal.c (replace_rtx): For REG, if from is a REG,
6898 return to even if only REGNO is equal, and assert
6899 mode is the same.
6900
6901 2016-03-11 Jeff Law <law@redhat.com>
6902
6903 PR rtl-optimization/70224
6904 * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
6905
6906 2016-03-16 Richard Henderson <rth@redhat.com>
6907
6908 PR middle-end/70199
6909 * function.h (struct function): Add has_forced_label_in_static.
6910 * gimplify.c (force_labels_r): Set it.
6911 * lto-streamer-in.c (input_struct_function_base): Read it.
6912 * lto-streamer-out.c (output_struct_function_base): Write it.
6913 * tree-inline.c (has_label_address_in_static_1): Remove.
6914 (copy_forbidden): Remove fndecl parameter; test
6915 has_forced_label_in_static.
6916 (inline_forbidden_p): Update call to copy_forbidden.
6917 (tree_versionable_function_p): Likewise.
6918 * ipa-chkp.c (chkp_instrumentable_p): Likewise.
6919 (chkp_versioning): Likewise.
6920 * tree-inline.h (copy_forbidden): Update decl.
6921
6922 2016-03-16 Marek Polacek <polacek@redhat.com>
6923
6924 PR c/70093
6925 * cgraphunit.c (cgraph_node::expand_thunk): Also build call to the
6926 function being thunked if the result type doesn't have fixed size.
6927 * gimplify.c (gimplify_modify_expr): Also set LHS if the result type
6928 doesn't have fixed size.
6929
6930 2016-03-16 Bin Cheng <bin.cheng@arm.com>
6931
6932 * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
6933 reporting malformed loop nest.
6934
6935 2016-03-16 Tom de Vries <tom@codesourcery.com>
6936
6937 PR lto/70187
6938 * ipa-devirt.c (possible_polymorphic_call_targets): Move
6939 nodes.length () == 1 test to before first nodes[0] access.
6940
6941 2016-03-16 Tom de Vries <tom@codesourcery.com>
6942
6943 PR tree-optimization/68715
6944 * graphite-scop-detection.c (scop_detection::merge_sese): Add missing
6945 single_pred_p test.
6946
6947 2016-03-16 Tom de Vries <tom@codesourcery.com>
6948
6949 PR tree-optimization/68809
6950 * graphite-scop-detection.c (same_close_phi_node): Test if result types
6951 are the same.
6952
6953 2016-03-16 Carlos O'Donell <carlos@redhat.com>
6954 Sandra Loosemore <sandra@codesourcery.com>
6955
6956 * doc/extend.texi (Common Function Attributes): Describe ifunc impact
6957 on leaf attribute. Mention ELF interposition problems.
6958
6959 2016-03-16 Alan Modra <amodra@gmail.com>
6960
6961 PR rtl-optimization/69195
6962 PR rtl-optimization/47992
6963 * ira.c (indirect_jump_optimize): Ignore artificial defs.
6964 Add comments.
6965
6966 2016-03-15 Eric Botcazou <ebotcazou@adacore.com>
6967
6968 PR bootstrap/69513
6969 * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.
6970
6971 2016-03-15 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
6972
6973 * config/avr/avr.md (rotl<mode>3): Set mode for operand 2.
6974
6975 2016-03-15 Jakub Jelinek <jakub@redhat.com>
6976
6977 PR rtl-optimization/70222
6978 * combine.c (simplify_shift_const_1): For A >> B >> C LSHIFTRT
6979 optimization if mode is different from result_mode, queue up masking
6980 of the result in outer_op. Formatting fix.
6981
6982 PR middle-end/70239
6983 * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
6984 of safe_grow.
6985
6986 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
6987
6988 PR rtl-optimization/69032
6989 * sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
6990 looping backwards over basic block insns.
6991
6992 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
6993
6994 PR target/66660
6995 * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
6996 to non-speculative when propagating trap bits.
6997
6998 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
6999
7000 PR rtl-optimization/63384
7001 * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
7002 DEBUG_INSN_P insns.
7003
7004 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
7005
7006 PR target/64411
7007 * sched-deps.c (get_implicit_reg_pending_clobbers): New function,
7008 factored out from ...
7009 (sched_analyze_insn): ... here.
7010 * sched-int.h (get_implicit_reg_pending_clobbers): Declare it.
7011 * sel-sched-ir.c (setup_id_implicit_regs): New function, use
7012 get_implicit_reg_pending_clobbers in it.
7013 (setup_id_reg_sets): Use setup_id_implicit_regs.
7014 (deps_init_id): Ditto.
7015
7016 2016-03-15 Tom de Vries <tom@codesourcery.com>
7017
7018 PR ipa/70161
7019 * cgraph.c (cgraph_node::get_body): Save, reset and restore
7020 dump_file_name.
7021 * passes.c (execute_one_ipa_transform_pass): Add missing argument to
7022 execute_function_dump.
7023 (execute_one_pass): Don't dump function if it will be dumped after ipa
7024 transform.
7025
7026 2016-03-15 Segher Boessenkool <segher@kernel.crashing.org>
7027
7028 * genrecog.c (match_pattern_2): If pred is NULL don't call
7029 safe_predicate_mode on it.
7030
7031 2016-03-14 Jakub Jelinek <jakub@redhat.com>
7032
7033 PR middle-end/70219
7034 * lra-constraints.c (delete_move_and_clobber): Change assertion
7035 to also allow dregno == 0.
7036
7037 2016-03-14 Richard Henderson <rth@redhat.com>
7038
7039 PR tree-opt/68714
7040 * tree-ssa-reassoc.c (ovce_extract_ops, optimize_vec_cond_expr): New.
7041 (can_reassociate_p): Allow ANY_INTEGRAL_TYPE_P.
7042 (reassociate_bb): Use optimize_vec_cond_expr; avoid
7043 optimize_range_tests, attempt_builtin_copysign and attempt_builtin_powi
7044 on vectors.
7045
7046 2016-03-14 Bernd Schmidt <bschmidt@redhat.com>
7047
7048 PR target/70083
7049 * lra-lives.c (process_bb_lives): Also update biggest mode for hard
7050 regs.
7051 (lra_create_live_ranges_1): initialize hard register biggest_mode to
7052 VOIDmode.
7053 * lra-constraints.c (split_reg): For hard regs, try to find the
7054 biggest single-register mode used in the function.
7055
7056 2016-03-14 Richard Biener <rguenther@suse.de>
7057
7058 PR tree-optimization/56365
7059 * tree-ssa-phiopt.c (minmax_replacement): Handle alternate
7060 constants to compare against.
7061
7062 2016-03-14 Segher Boessenkool <segher@kernel.crashing.org>
7063
7064 PR target/70098
7065 * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
7066 *ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output.
7067 (define_split for the GPR case): Use int_reg_operand instead of
7068 gpc_reg_operand for the output.
7069
7070 2016-03-14 Tom de Vries <tom@codesourcery.com>
7071
7072 PR tree-optimization/70045
7073 * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Unshare
7074 create_empty_if_region_on_edge argument.
7075
7076 2016-03-13 Eric Botcazou <ebotcazou@adacore.com>
7077
7078 * config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define.
7079 (STACK_CHECK_PROTECT): Likewise.
7080 * config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
7081 (STACK_CHECK_PROTECT): Likewise.
7082 * config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
7083 (STACK_CHECK_PROTECT): Likewise.
7084 * config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise.
7085 * config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
7086 (STACK_CHECK_PROTECT): Likewise.
7087
7088 2016-03-12 Andrey Belevantsev <abel@ispras.ru>
7089
7090 PR rtl-optimization/69307
7091 * sel-sched.c (choose_best_pseudo_reg): Properly check for hard
7092 registers in modes that span more than one register.
7093
7094 2016-03-12 Vladimir Makarov <vmakarov@redhat.com>
7095
7096 PR target/69614
7097 * lra-constraints.c (delete_move_and_clobber): New.
7098 (remove_inheritance_pseudos): Use it.
7099
7100 2016-03-12 Eric Botcazou <ebotcazou@adacore.com>
7101
7102 PR ada/70017
7103 * calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if
7104 the libcall is LCT_THROW.
7105 * explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call
7106 for the checking routine.
7107
7108 2016-03-11 Michael Meissner <meissner@linux.vnet.ibm.com>
7109
7110 PR target/70131
7111 * config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the
7112 optimization if we have direct move.
7113 (roundu32<mode>2_fprs): Likewise.
7114
7115 2016-03-11 Bernd Schmidt <bschmidt@redhat.com>
7116
7117 PR target/70123
7118 * lra-remat.c (operand_to_remat): Disallow hard regs in the value t
7119 be rematerialized.
7120 (reg_overlap_for_remat_p): Renamed from input_regno_present_p.
7121 Arguments swapped. All callers changed. Take reg_renumber into
7122 account, and Calculate and compare register ranges for hard regs.
7123
7124 2016-03-11 Jeff Law <law@redhat.com>
7125
7126 PR tree-optimization/70190
7127 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
7128 Handle cases where we can not extract the taken edge, even though we
7129 found a constant value.
7130
7131 PR tree-optimization/64058
7132 * tree-ssa-coalesce.c (struct coalesce_pair): Add new field INDEX.
7133 (num_coalesce_pairs): Move up earlier in file.
7134 (find_coalesce_pair): Initialize the INDEX field for each pair
7135 discovered.
7136 (compare_pairs): No longer sort on the elements in each pair.
7137 Instead break ties with the index of the coalesce pair.
7138
7139 2016-03-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7140
7141 PR target/70002
7142 * config/aarch64/aarch64-protos.h
7143 (aarch64_save_restore_target_globals): New prototype.
7144 * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
7145 Call the above when popping pragma.
7146 * config/aarch64/aarch64.c (aarch64_save_restore_target_globals):
7147 New function.
7148 (aarch64_set_current_function): Rewrite using the above.
7149
7150 2016-03-11 Jakub Jelinek <jakub@redhat.com>
7151
7152 PR tree-optimization/70177
7153 * gimple-expr.h (extract_ops_from_tree_1): Renamed to ...
7154 (extract_ops_from_tree): ... this. In the 2 argument
7155 overload remove _1 suffix.
7156 * gimple-expr.c (extract_ops_from_tree_1): Renamed to ...
7157 (extract_ops_from_tree): ... this.
7158 * gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree):
7159 Adjust callers.
7160 * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
7161 * tree-ssa-forwprop.c (defcodefor_name): Call 3 operand
7162 extract_ops_from_tree instead of 2 operand one.
7163
7164 2016-03-11 Alan Lawrence <alan.lawrence@arm.com>
7165
7166 PR tree-optimization/70013
7167 * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
7168 for constant-pool entries.
7169
7170 2016-03-11 Jakub Jelinek <jakub@redhat.com>
7171
7172 PR rtl-optimization/70174
7173 * expmed.c (store_bit_field_using_insv): Use gen_lowpart_if_possible
7174 followed by gen_lowpart on force_reg instead of just gen_lowpart.
7175
7176 PR tree-optimization/70169
7177 * tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and
7178 LABEL_DECL like VAR_DECL. Emit nothing instead of gcc_unreachable
7179 for unknown codes.
7180
7181 2016-03-11 Ilya Enkovich <enkovich.gnu@gmail.com>
7182 Jakub Jelinek <jakub@redhat.com>
7183
7184 PR target/70160
7185 * config/i386/i386.c (scalar_chain::convert_reg): Skip uses
7186 of uninitialized values.
7187
7188 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7189
7190 * config/s390/s390.md ("trunctddd2"): Turn former define_insn into
7191 define_expand.
7192 ("*trunctddd2"): New pattern definition.
7193 ("trunctdsd2"): Set prep_for_short_prec rounding mode for the
7194 TD->DD truncation.
7195
7196 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7197
7198 * config/s390/s390.md (BFP_RND_*, DFP_RND_*): Add new constant
7199 definitions for BFP and DFP rounding modes.
7200 ("fixuns_truncdddi2", "fixuns_trunctddi2")
7201 ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2")
7202 ("fix_trunc<DSF:mode><GPR:mode>2", "fix_trunc<mode>di2")
7203 ("fix_trunctf<mode>2"): Use the new constants instead of magic
7204 numbers.
7205
7206 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7207
7208 * config/s390/constraints.md: Adjust comment.
7209 ("Y"): Adjust comment. Rename s390_decompose_shift_count to
7210 s390_decompose_addrstyle_without_index.
7211 * config/s390/predicates.md (shift_count_or_setmem_operand):
7212 Rename to setmem_operand.
7213 * config/s390/s390-protos.h
7214 (s390_decompose_shift_count): Rename to
7215 s390_decompose_addrstyle_without_index.
7216 * config/s390/s390.c (s390_decompose_shift_count)
7217 (s390_mem_constraint, print_shift_count_operand)
7218 (print_operand_address, print_operand): Rename
7219 s390_decompose_shift_count to
7220 s390_decompose_addrstyle_without_index and rename
7221 print_shift_count_operand to print_addrstyle_operand troughout the
7222 file.
7223 * config/s390/s390.md ("setmem_long_<P:mode>", "*setmem_long")
7224 ("*setmem_long_and", "*setmem_long_31z", "*setmem_long_and_31z"):
7225 Rename shift_count_or_setmem_operand to setmem_operand.
7226 * config/s390/vx-builtins.md ("vec_insert<mode>")
7227 ("vec_promote<mode>"): Replace shift_count_or_setmem_operand with
7228 nonmemory_operand.
7229
7230 2016-03-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7231
7232 PR target/70168
7233 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
7234 Handle overlapping retval and newval.
7235
7236 2016-03-10 Nick Clifton <nickc@redhat.com>
7237
7238 PR target/7044
7239 * config/aarch64/aarch64.c
7240 (aarch64_override_options_after_change_1): When forcing
7241 flag_omit_frame_pointer to be true, use a special value that can
7242 be detected if this function is called again, thus preventing
7243 flag_omit_leaf_frame_pointer from being forced to be false.
7244
7245 2016-03-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7246
7247 * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
7248 Set x_flag_omit_leaf_frame_pointer when handling
7249 -momit-leaf-frame-pointer.
7250
7251 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
7252
7253 PR lto/69589
7254 * cgraph.c (cgraph_node::dump): Dump split_part and
7255 indirect_call_target.
7256 * cgraph.h (cgraph_node): Add indirect_call_target flag.
7257 * ipa.c (has_addr_references_p): Cleanup.
7258 (is_indirect_call_target_p): New.
7259 (walk_polymorphic_call_targets): Do not mark virtuals that may be
7260 called indirectly as local.
7261 (symbol_table::remove_unreachable_nodes): Compute indirect_call_target.
7262
7263 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
7264
7265 PR ipa/69630
7266 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
7267 on cxa_pure_virtual.
7268
7269 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
7270
7271 PR lto/69589
7272 * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
7273
7274 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
7275
7276 PR lto/69589
7277 * tree.c (need_assembler_name_p): Only record main variant type names.
7278
7279 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
7280
7281 PR target/70113.
7282 * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_843419_DEFAULT):
7283 Always define to 0 or 1.
7284 (TARGET_FIX_ERR_A53_843419): New macro.
7285 * config/aarch64/aarch64-elf-raw.h
7286 (TARGET_FIX_ERR_A53_843419_DEFAULT): Update for above changes.
7287 * config/aarch64/aarch64-linux.h: Likewise.
7288 * config/aarch64/aarch64.c
7289 (aarch64_override_options_after_change_1): Do not default
7290 aarch64_nopcrelative_literal_loads to true if Cortex-A53 erratum
7291 843419 is on.
7292 (aarch64_attributes): Handle fix-cortex-a53-843419.
7293 (aarch64_can_inline_p): Likewise.
7294 * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.
7295
7296 2016-03-10 Alan Lawrence <alan.lawrence@arm.com>
7297 Jakub Jelinek <jakub@redhat.com>
7298
7299 * common.opt (funconstrained-commons, flag_unconstrained_commons): New.
7300 * tree.c (array_at_struct_end_p): Do not limit to size of decl for
7301 DECL_COMMONS if flag_unconstrained_commons is set.
7302 * tree-dfa.c (get_ref_base_and_extent): Likewise.
7303 * doc/invoke.texi (Optimize Options): Add -funconstrained-commons.
7304 (funconstrained-commons): Document.
7305
7306 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
7307
7308 * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
7309 aarch64-fusion-pairs.def and aarch64-tuning-flags.def
7310
7311 2016-03-10 Ilya Enkovich <enkovich.gnu@gmail.com>
7312
7313 * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
7314 has a proper number of elements.
7315
7316 2016-03-10 Alan Modra <amodra@gmail.com>
7317
7318 PR rtl-optimization/69195
7319 PR rtl-optimization/47992
7320 * ira.c (recorded_label_ref): Delete.
7321 (update_equiv_regs): Return void.
7322 (indirect_jump_optimize): New function.
7323 (ira): Call indirect_jump_optimize and delete_trivially_dead_insns
7324 before regstat_compute_ri. Don't rebuild_jump_labels here.
7325 Delete update_regstat.
7326
7327 2016-03-10 Richard Biener <rguenther@suse.de>
7328
7329 PR tree-optimization/70128
7330 * tree-ssa-structalias.c (set_uids_in_ptset): Set
7331 vars_contains_nonlocal for any FUNCTION_DECL or LABEL_DECL.
7332
7333 2016-03-09 Jakub Jelinek <jakub@redhat.com>
7334
7335 PR tree-optimization/70152
7336 * tree-sra.c (replace_removed_params_ssa_names): Copy over
7337 SSA_NAME_OCCURS_IN_ABNORMAL_PHI from old_name to new_name.
7338
7339 PR target/70086
7340 * config/i386/i386.md (truncdfsf2 splitter): Use gen_vec_concatv2df
7341 instead of gen_sse2_loadlpd.
7342 * config/i386/sse.md (*vec_concatv2df): Rename to...
7343 (vec_concatv2df): ... this.
7344
7345 PR tree-optimization/70127
7346 * fold-const.c (operand_equal_p): Revert the 2015-10-28 change.
7347
7348 2016-03-09 David Malcolm <dmalcolm@redhat.com>
7349
7350 PR c/68473
7351 PR c++/70105
7352 * diagnostic-show-locus.c (compatible_locations_p): New function.
7353 (layout::layout): Sanitize ranges using compatible_locations_p.
7354
7355 2016-03-09 David Malcolm <dmalcolm@redhat.com>
7356
7357 PR c/68473
7358 PR c++/70105
7359 * diagnostic-show-locus.c (layout_range::layout_range): Replace
7360 location_range param with three const expanded_locations * and a
7361 bool.
7362 (layout::layout): Replace call to
7363 rich_location::lazily_expand_location with get_expanded_location.
7364 Extract the range and perform location expansion here, passing
7365 the results to the layout_range ctor.
7366 * diagnostic.c (source_range::debug): Delete.
7367 * diagnostic.h (diagnostic_expand_location): Reimplement in terms
7368 of rich_location::get_expanded_location.
7369 * gcc-rich-location.c (get_range_for_expr): Delete.
7370 (gcc_rich_location::add_expr): Reimplement to avoid the
7371 rich_location::add_range overload that took a location_range,
7372 passing a location_t instead.
7373
7374 2016-03-09 Richard Biener <rguenther@suse.de>
7375 Jakub Jelinek <jakub@redhat.com>
7376
7377 PR tree-optimization/70138
7378 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
7379 Also skip vect_double_reduction_def.
7380
7381 2016-03-09 Jakub Jelinek <jakub@redhat.com>
7382
7383 PR target/70049
7384 * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
7385 if the operand is "m".
7386
7387 2016-03-09 Nathan Sidwell <nathan@acm.org>
7388
7389 * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.
7390
7391 2016-03-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
7392
7393 * config/i386/i386.c (processor_target_table): Fix cost table
7394 intialization order for znver1.
7395
7396 2016-03-08 Jakub Jelinek <jakub@redhat.com>
7397
7398 * ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling
7399 - becuase -> because.
7400 * ipa-reference.c (ignore_module_statics): Likewise.
7401 * cgraph.c (cgraph_node::get_body): Likewise.
7402 * ipa-inline.c (early_inliner): Likewise.
7403 * ipa-devirt.c (types_same_for_odr): Likewise.
7404 * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
7405 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Likewise.
7406
7407 2016-03-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7408
7409 * tree-ssa-math-opts.c: Fix typo in comment.
7410
7411 2016-03-08 Jakub Jelinek <jakub@redhat.com>
7412
7413 PR target/70110
7414 * config/i386/i386.c (scalar_chain::make_vector_copies,
7415 scalar_chain::convert_reg): Call end_sequence in between
7416 get_insns and emit_conversion_insns rather than after both
7417 calls.
7418
7419 2016-03-07 Uros Bizjak <ubizjak@gmail.com>
7420
7421 PR target/70064
7422 * config/i386/i386.h (machine_function): Add
7423 pc_thunk_call_expanded flag.
7424 (ix86_pc_thunk_call_expanded): New define.
7425 * config/i386/i386.md (set_got, set_got_labelled): New expanders.
7426 (*set_got): Rename insn pattern from set_got.
7427 (*set_got_labelled): Rename inst pattern from set_got_labelled.
7428 * config/i386/i386.c (ix86_compute_frame_layout): Use
7429 ix86_pc_thunk_call_expanded to prevent red-zone.
7430
7431 2016-03-07 Martin Jambor <mjambor@suse.cz>
7432
7433 * hsa.h (hsa_get_ctor_statements): Declare.
7434 (hsa_get_dtor_statements): Likewise.
7435 (hsa_get_kernel_dispatch_type): Likewise.
7436 * hsa.c (hsa_get_ctor_statements): New function.
7437 (hsa_get_dtor_statements): Likewise.
7438 (hsa_get_kernel_dispatch_type): Likewise.
7439 * hsa-brig.c (hsa_cdtor_statements): Removed.
7440 (hsa_output_libgomp_mapping): Use hsa_get_ctor_statements and
7441 hsa_get_dtor_statements.
7442 * hsa-gen.c (hsa_kernel_dispatch_type): Removed.
7443 (get_hsa_kernel_dispatch_offset): Use hsa_get_kernel_dispatch_type.
7444
7445 2016-03-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
7446
7447 * config/arm/arm-cores.def (cortex-r8): New.
7448 * config/arm/arm-tables.opt (cortex-r8): Regenerate.
7449 * config/arm/arm-tune.md: Likewise.
7450 * doc/invoke.texi: Add cortex-r8 to list of cpu values.
7451
7452 2016-03-07 Martin Sebor <msebor@redhat.com>
7453
7454 PR rtl-optimization/19705
7455 * doc/invoke.texi (Options That Control Optimization): Clarify
7456 -fno-branch-count-reg.
7457
7458 2016-02-26 Richard Biener <rguenther@suse.de>
7459 Jeff Law <law@redhat.com>
7460
7461 PR tree-optimization/69740
7462 * cfghooks.c (remove_edge): Request loop fixups if we delete
7463 an edge that might turn an irreducible loop into a natural
7464 loop.
7465 * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
7466 Move after definition of loops_state_clear.
7467
7468 2016-03-07 Bin Cheng <bin.cheng@arm.com>
7469
7470 PR rtl-optimization/69052
7471 * rtlanal.c (commutative_operand_precedence): Set higher precedence
7472 to CONST_WIDE_INT.
7473
7474 2016-03-07 Tom de Vries <tom@codesourcery.com>
7475
7476 PR tree-optimization/70116
7477 * tree-ssa-tail-merge.c (merge_stmts_p): New function, handling
7478 is_tm_ending stmts and ubsan/asan internal functions.
7479 (find_duplicate): Use it. Don't test is_tm_ending here.
7480
7481 2016-03-07 Richard Biener <rguenther@suse.de>
7482
7483 PR tree-optimization/70115
7484 * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
7485 (propagate_constants_for_unrolling): Use replace_uses_by.
7486
7487 2016-03-07 Nathan Sidwell <nathan@codesourcery.com>
7488
7489 PR middle-end/69916
7490 * omp-low.c (struct oacc_loop): Add ifns.
7491 (new_oacc_loop_raw): Initialize it.
7492 (finish_oacc_loop): Clear mask & flags if no ifns.
7493 (oacc_loop_discover_walk): Count IFN_GOACC_LOOP calls.
7494 (oacc_loop_xform_loop): Add ifns arg & adjust.
7495 (oacc_loop_process): Adjust oacc_loop_xform_loop call.
7496
7497 2016-03-07 Richard Henderson <rth@redhat.com>
7498
7499 PR rtl-opt/70061
7500 * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
7501 (insert_value_copy_on_edge): Likewise.
7502
7503 2016-03-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7504
7505 * config/arm/arm_neon.h: Show error if using with soft-float ABI.
7506
7507 2016-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7508
7509 PR target/62281
7510 * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
7511
7512 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
7513
7514 * config/i386/i386.c (znver1_cost): Fix Multiply cost.
7515
7516 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
7517
7518 Fix sseimul type attribute.
7519 * config/i386/znver1.md
7520 (znver1_sseimul, znver1_sseimul_avx256, znver1_sseimul_load,
7521 znver1_sseimul_avx256_load) : Fix the type attribute.
7522 (znver1_sseimul_di, znver1_sseimul_load_di): Fix type attribute,
7523 pipe usage and latency.
7524
7525 2016-03-05 Jakub Jelinek <jakub@redhat.com>
7526
7527 PR c++/70084
7528 * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
7529 of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
7530 to the right type.
7531
7532 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
7533
7534 PR c/69973
7535 * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
7536
7537 PR rtl-optimization/69941
7538 * postreload.c (reload_combine_recognize_pattern): Ensure all uses of
7539 the reg share its mode.
7540
7541 2016-03-04 Jeff Law <law@redhat.com>
7542
7543 PR tree-optimization/69196
7544 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
7545 If the both SSA_NAMEs are anonymous, then consider them unassociated
7546 and include the PHI in the statement count.
7547
7548 2016-03-05 Tom de Vries <tom@codesourcery.com>
7549
7550 * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
7551 construct in oacc routine. Check for oacc region in oacc routine.
7552
7553 2016-03-04 Jakub Jelinek <jakub@redhat.com>
7554
7555 PR target/70062
7556 * config/i386/i386.c (decide_alg): Add RECUR argument. Revert
7557 2016-02-22 changes, instead don't recurse if RECUR is already true.
7558 Don't change *dynamic_check if RECUR. Adjust recursive caller
7559 to pass true to the new argument.
7560 (ix86_expand_set_or_movmem): Adjust decide_alg caller.
7561
7562 PR target/70059
7563 * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
7564 <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
7565 fixes.
7566 (vec_set_hi_<mode><mask_name>): Likewise. Swap VEC_CONCAT operands.
7567
7568 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
7569
7570 PR rtl-optimization/57676
7571 * lra-assigns.c (lra_assign): Guard test for maximum iterations
7572 with flag_checking.
7573
7574 2016-03-04 Ilya Enkovich <enkovich.gnu@gmail.com>
7575
7576 * tree-vect-patterns.c (search_type_for_mask): Handle
7577 comparison of booleans.
7578
7579 2016-03-04 Jakub Jelinek <jakub@redhat.com>
7580
7581 * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
7582 Fix @xref usage.
7583
7584 PR debug/69947
7585 * dwarf2out.c (prune_unused_types_walk_loc_descr): Handle
7586 all other ops that have dw_val_class_die_ref operands,
7587 and DW_OP_GNU_entry_value.
7588
7589 2016-03-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7590
7591 PR rtl-optimization/69904
7592 * config/arm/arm.c (arm_cannot_copy_insn_p):
7593 Return true for load-exclusive instructions.
7594
7595 2016-03-03 Jakub Jelinek <jakub@redhat.com>
7596
7597 PR target/70021
7598 * tree-vect-stmts.c (vect_mark_relevant): Remove USED_IN_PATTERN
7599 argument, if STMT_VINFO_IN_PATTERN_P (stmt_info), always mark
7600 the pattern no matter if it is used just by non-pattern, pattern
7601 or mix thereof.
7602 (process_use, vect_mark_stmts_to_be_vectorized): Adjust callers.
7603 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
7604 oprnd1 def_stmt is in pattern, don't look through it.
7605
7606 2016-03-03 Marek Polacek <polacek@redhat.com>
7607
7608 PR middle-end/70050
7609 * match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
7610
7611 2016-03-03 Martin Liska <mliska@suse.cz>
7612
7613 PR tree-optimization/70043
7614 * tree-vect-loop.c (optimize_mask_stores): Move iterator to
7615 previous statement if we see a debug statement.
7616
7617 2016-03-03 Richard Biener <rguenther@suse.de>
7618
7619 PR tree-optimization/55936
7620 * tree-vrp.c (compare_name_with_value): Add use_equiv_p
7621 parameter and guard unsafe equivalence use.
7622 (vrp_evaluate_conditional_warnv_with_ops): Always use
7623 safe equivalences but not via the quadratic compare_names
7624 helper.
7625
7626 2016-03-03 Michael Collison <michael.collison@linaro.org>
7627
7628 PR target/70014
7629 * config/arm/arm.md (*subsi3_carryin_const): Change predicate
7630 for operand 1 to s_register_operand. Change predicate for operand
7631 2 to arm_not_immediate_operand.
7632
7633 2016-03-02 H.J. Lu <hongjiu.lu@intel.com>
7634
7635 * doc/tm.texi: Regenerated.
7636
7637 2016-03-02 Richard Henderson <rth@redhat.com>
7638
7639 PR rtl-opt/67145
7640 * simplify-rtx.c (simplify_plus_minus): Allow reassoc without
7641 simplification when all args are positive non-fixed registers.
7642
7643 2016-03-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7644
7645 * target.def (lra_p): Specify that new ports should use LRA.
7646
7647 2016-03-02 Jakub Jelinek <jakub@redhat.com>
7648
7649 PR libgomp/69555
7650 * gimplify.c (gimplify_decl_expr): For decls with REFERENCE_TYPE, also
7651 gimplify_type_sizes the type they refer to.
7652 (omp_notice_variable): Handle reference vars to VLAs.
7653 * omp-low.c (lower_omp_target): Emit setup of OMP_CLAUSE_PRIVATE
7654 reference to VLA decls in the second pass instead of first pass.
7655
7656 2016-03-02 Tom de Vries <tom@codesourcery.com>
7657
7658 PR tree-optimization/68659
7659 * graphite-isl-ast-to-gimple.c (collect_all_ssa_names): Handle
7660 new_expr == NULL_TREE.
7661 (get_new_name): Handle ADDR_EXPR.
7662
7663 2016-03-02 Bin Cheng <bin.cheng@arm.com>
7664
7665 PR rtl-optimization/69052
7666 * loop-invariant.c (canonicalize_address): New function.
7667 (inv_can_prop_to_addr_use): Check validity of address expression
7668 which is canonicalized by above function.
7669
7670 2016-03-02 Alan Modra <amodra@gmail.com>
7671
7672 PR ipa/69990
7673 * ipa-icf.c (sem_variable::merge): Do not merge an alias with
7674 larger alignment.
7675
7676 2016-03-02 Jakub Jelinek <jakub@redhat.com>
7677
7678 PR target/70028
7679 * config/i386/i386.md (kmovw): Move m constraint to 2nd alternative.
7680 (*movhi_internal): Put mask moves from and to memory separately
7681 from moves from/to GPRs.
7682
7683 2016-03-02 Richard Biener <rguenther@suse.de>
7684
7685 * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
7686 GENERIC expressions in GIMPLE.
7687
7688 2016-03-02 Richard Biener <rguenther@suse.de>
7689
7690 * config/i386/i386.c (type_natural_mode): Fix typo.
7691
7692 2016-03-02 Nick Clifton <nickc@redhat.com>
7693
7694 * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.
7695
7696 2016-03-02 Richard Biener <rguenther@suse.de>
7697 Uros Bizjak <ubizjak@gmail.com>
7698
7699 PR target/67278
7700 * config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
7701
7702 2016-03-02 Richard Biener <rguenther@suse.de>
7703
7704 PR middle-end/67278
7705 * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
7706
7707 2016-03-02 Marek Polacek <polacek@redhat.com>
7708
7709 PR c/67854
7710 * gimplify.c (gimplify_va_arg_expr): Use expanded location for the
7711 "is promoted to" warning.
7712
7713 2016-03-01 DJ Delorie <dj@redhat.com>
7714
7715 * config.gcc: Deprecate mep-*.
7716
7717 2016-03-01 Vladimir Makarov <vmakarov@redhat.com>
7718
7719 PR middle-end/70025
7720 * lra-constraints.c (regno_val_use_in): New.
7721 (match_reload): Use it instead of regno_use_in.
7722
7723 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
7724
7725 PR rtl-optimization/70007
7726 * gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
7727 references present in REG_EQUAL notes attached to non-SET patterns.
7728
7729 2016-03-01 Jeff Law <law@redhat.com>
7730
7731 PR tree-optimization/69196
7732 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
7733 Appropriately clamp the number of statements to copy when the
7734 thread path does not traverse a loop backedge.
7735
7736 PR tree-optimization/69196
7737 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
7738 Do count some PHIs in the thread path against the insn count. Decrease
7739 final statement count by one as the control statement in the last
7740 block will get removed. Remove special cased code for handling PHIs
7741 in the last block.
7742
7743 2016-03-01 Uros Bizjak <ubizjak@gmail.com>
7744
7745 PR target/70027
7746 * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
7747 asm dialect alternatives to explicit GOTPCREL calls.
7748
7749 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
7750
7751 PR ada/70017
7752 * ira.c (do_reload): Issue warning for generic stack checking here...
7753 * reload1.c (reload): ...instead of here and streamline it.
7754
7755 2016-03-01 Nick Clifton <nickc@redhat.com>
7756
7757 * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
7758
7759 2016-03-01 Richard Biener <rguenther@suse.de>
7760
7761 PR tree-optimization/69983
7762 * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
7763 types and fall back to operand_equal_p.
7764
7765 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7766
7767 Revert
7768 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7769
7770 * config/s390/constraints.md ("jm8"): New constraint.
7771 * config/s390/predicates.md ("const_int_8bitset_operand"): New
7772 predicate.
7773 * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
7774 into ...
7775 ("*setmem_long<setmem_and>"): New pattern.
7776 ("*setmem_long_31z", "*setmem_long_and_31z"): Merge
7777 into ...
7778 ("*setmem_long_31z<setmem_and>"): New pattern.
7779 * config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
7780 New substitution rules with the required attributes.
7781
7782
7783 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7784
7785 Revert
7786 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7787
7788 * gensupport.c (process_substs_on_one_elem): Split loop to
7789 complete mark_operands_used_in_match_dup on all expressions in the
7790 vector first.
7791 (adjust_operands_numbers): Inline into process_substs_on_one_elem
7792 and remove function.
7793
7794 2016-03-01 Richard Biener <rguenther@suse.de>
7795
7796 PR middle-end/70022
7797 * fold-const.c (fold_indirect_ref_1): Fix range checking for
7798 vector BIT_FIELD_REF extract.
7799
7800 2016-03-01 Richard Biener <rguenther@suse.de>
7801
7802 PR tree-optimization/69994
7803 * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
7804
7805 2016-03-01 Ilya Enkovich <enkovich.gnu@gmail.com>
7806
7807 PR tree-optimization/69956
7808 * tree-vect-stmts.c (supportable_widening_operation): Support
7809 multi-step conversion of boolean vectors.
7810 (supportable_narrowing_operation): Likewise.
7811
7812 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7813
7814 * config/s390/s390.c (s390_decompose_address): Don't accept SImode
7815 anymore.
7816
7817 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7818
7819 * config/s390/subst.md (DSI_VI): New mode iterator.
7820 ("addr_style_op_subst"): Use DSI_VI instead of DSI.
7821 * config/s390/vector.md ("vec_set<mode>"): Move expander before
7822 the insn definition.
7823 ("*vec_set<mode>"): Change predicate and add alternative to
7824 support only either register or const_int operands as element
7825 selector.
7826 ("*vec_set<mode>_plus"): New pattern to support reg + const_int
7827 operands.
7828 ("vec_extract<mode>"): New expander.
7829 ("*vec_extract<mode>"): New insn definition supporting reg and
7830 const_int element selectors.
7831 ("*vec_extract<mode>_plus"): New insn definition supporting
7832 reg+const_int element selectors.
7833 ("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
7834 following expander+insn definition.
7835 ("<vec_shifts_name><mode>3"): New expander.
7836 ("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.
7837
7838 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7839
7840 * config/s390/s390.md ("*tabort_1"): Change predicate to
7841 nonmemory_operand. Add a second alternative to cover
7842 register as well as const int operands.
7843 ("*tabort_1_plus"): New pattern definition.
7844
7845 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7846
7847 * config/s390/s390.md ("*ashrdi3_cc_31")
7848 ("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
7849 ("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
7850 Merge insn definitions into ...
7851 ("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
7852 New pattern definition.
7853 ("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
7854 ("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
7855 ("*ashr<mode>3_and"): Merge insn definitions into ...
7856 ("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
7857 New pattern definition.
7858 * config/s390/subst.md ("addr_style_op_cc_subst")
7859 ("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
7860 substitutions patterns plus attributes.
7861 Add ashiftrt to SUBST iterator.
7862
7863 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7864
7865 * config/s390/s390.md ("<shift><mode>3"): Change predicate of
7866 op2 to nonmemory_operand.
7867 ("*<shift>di3_31", "*<shift>di3_31_and"):
7868 Merge into single pattern definition ...
7869 ("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
7870 ("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
7871 pattern definition ...
7872 ("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
7873 * config/s390/subst.md: Add ashift and lshiftrt to SUBST
7874 iterator.
7875
7876 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7877
7878 * config/s390/predicates.md (const_int_6bitset_operand): New
7879 predicate.
7880 * config/s390/s390.md: Include subst.md.
7881 ("rotl<mode>3"): New expander.
7882 ("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
7883 ...
7884 ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
7885 * config/s390/subst.md: New file.
7886
7887 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7888
7889 * config/s390/s390.md ("op_type", "atype", "length" attributes):
7890 Remove RRR type. It doesn't really exist.
7891 ("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
7892 attributes.
7893 ("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
7894 ("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
7895 ("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
7896 ("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
7897 ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
7898 ("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
7899 `enabled' attribute.
7900
7901 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7902
7903 * gensupport.c (process_substs_on_one_elem): Split loop to
7904 complete mark_operands_used_in_match_dup on all expressions in the
7905 vector first.
7906 (adjust_operands_numbers): Inline into process_substs_on_one_elem
7907 and remove function.
7908
7909 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
7910
7911 PR target/69706
7912 * config/sparc/sparc.c (NWORDS_UP): Rename to...
7913 (CEIL_NWORDS): ...this. Use CEIL macro.
7914 (compute_fp_layout): Adjust to above renaming.
7915 (function_arg_union_value): Likewise.
7916 (sparc_arg_partial_bytes): Likewise.
7917 (sparc_function_arg_advance): Likewise.
7918
7919 2016-02-29 Jeff Law <law@redhat.com>
7920
7921 PR tree-optimization/70005
7922 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
7923 where an object with a boolean range is compared against a value
7924 outside [0..1].
7925
7926 PR tree-optimization/69999
7927 * gimple-ssa-split-paths.c (split_paths): When duplicating a block
7928 with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule
7929 loop cleanups.
7930
7931 2016-02-29 Richard Biener <rguenther@suse.de>
7932
7933 PR tree-optimization/69994
7934 * tree-ssa-reassoc.c (gimple_nop_conversion_p): New function.
7935 (get_unary_op): Look through nop conversions.
7936 (ops_equal_values_p): New function, look for equality diregarding
7937 nop conversions.
7938 (eliminate_plus_minus_pair): Use ops_equal_values_p
7939 (repropagate_negates): Do not use get_unary_op here.
7940
7941 2016-02-29 Martin Liska <mliska@suse.cz>
7942
7943 * system.h: Poison ENABLE_CHECKING macro.
7944
7945 2016-02-29 Martin Liska <mliska@suse.cz>
7946
7947 * hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS
7948 is presented in dump flags.
7949 * hsa-regalloc.c (linear_scan_regalloc): Likewise.
7950 (hsa_regalloc): Likewise.
7951
7952 2016-02-19 Richard Biener <rguenther@suse.de>
7953
7954 PR tree-optimization/69980
7955 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
7956 permutation of those we need to keep.
7957
7958 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
7959
7960 PR target/69706
7961 * config/sparc/sparc.c (ROUND_ADVANCE): Rename to...
7962 (NWORDS_UP): ...this
7963 (init_cumulative_args): Minor tweaks.
7964 (sparc_promote_function_mode): Likewise.
7965 (scan_record_type): Delete.
7966 (traverse_record_type): New function template.
7967 (classify_data_t): New structure type.
7968 (classify_registers): New inline function.
7969 (function_arg_slotno): In 64-bit mode, bail out early if FP slots are
7970 exhausted. Instantiate traverse_record_type on classify_registers and
7971 deal with the case of a structure passed in slot #15 with no FP field
7972 in the first word.
7973 (assign_data_t): New structure type.
7974 (compute_int_layout): New static function.
7975 (compute_fp_layout): Likewise.
7976 (count_registers): New inline function.
7977 (assign_int_registers): New static function.
7978 (assign_fp_registers): Likewise.
7979 (assign_registers): New inline function.
7980 (function_arg_record_value_1): Delete.
7981 (function_arg_record_value_2): Likewise.
7982 (function_arg_record_value_3): Likewise.
7983 (function_arg_record_value): Adjust to above changes. Instantiate
7984 traverse_record_type on count_registers to first count the number of
7985 registers to be used and then on assign_registers to assign them.
7986 (function_arg_union_value): Adjust to above renaming.
7987 (sparc_function_arg_1); Minor tweaks. Remove commented out code.
7988 (sparc_arg_partial_bytes): Adjust to above renaming. Deal with the
7989 case of a structure passed in slot #15
7990 (sparc_function_arg_advance): Likewise.
7991 (function_arg_padding): Minor tweak.
7992
7993 2016-02-29 Richard Biener <rguenther@suse.de>
7994
7995 PR tree-optimization/69720
7996 * tree-vect-loop.c (get_initial_def_for_reduction): Avoid
7997 the adjustment_def path for possibly vectorized defs.
7998 (vect_create_epilog_for_reduction): Handle vectorized initial
7999 defs properly.
8000
8001 2016-02-28 Eric Botcazou <ebotcazou@adacore.com>
8002
8003 * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
8004
8005 2016-02-27 Jeff Law <law@redhat.com>
8006
8007 Revert
8008 2016-02-26 Richard Biener <rguenther@suse.de>
8009 Jeff Law <law@redhat.com>
8010
8011 PR tree-optimization/69740
8012 * cfghooks.c (remove_edge): Request loop fixups if we delete
8013 an edge that might turn an irreducible loop into a natural
8014 loop.
8015
8016 2016-02-27 Jakub Jelinek <jakub@redhat.com>
8017
8018 PR rtl-optimization/69896
8019 * tree-vect-generic.c (get_compute_type): Avoid single element
8020 vector types.
8021
8022 2016-02-26 Evandro Menezes <e.menezes@samsung.com>
8023
8024 Rename the AArch64 tuning option and related functions to enable the
8025 Newton series for the reciprocal square root to reflect its
8026 approximative characteristic.
8027
8028 * config/aarch64/aarch64-protos.h (aarch64_emit_swrsqrt): Rename
8029 function to "aarch64_emit_approx_rsqrt".
8030 * config/aarch64/aarch64-tuning-flags.def: Rename tuning flag to
8031 AARCH64_EXTRA_TUNE_APPROX_RSQRT.
8032 * config/aarch64/aarch64.c (exynosm1_tunigs): Use new flag name.
8033 (xgene1_tunings): Likewise.
8034 (use_rsqrt_p): Likewise.
8035 (aarch64_emit_swrsqrt): Use new function name.
8036 * config/aarch64/aarch64-simd.md (aarch64_rsqrts_*): Likewise.
8037 * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): Reword the
8038 text explaining this option.
8039 * doc/invoke.texi (-mlow-precision-recip-sqrt): Likewise.
8040
8041 2016-02-26 Jakub Jelinek <jakub@redhat.com>
8042
8043 PR target/69969
8044 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
8045 complain about -mallow-movmisalign without -mvsx if
8046 TARGET_ALLOW_MOVMISALIGN was not set explicitly.
8047
8048 2016-02-26 Joel Sherrill <joel@rtems.org>
8049
8050 * config.gcc: Add x86_64-*-rtems*.
8051 * config/i386/rtems-64.h: New file.
8052
8053 2016-02-26 Joel Sherrill <joel@rtems.org>
8054
8055 * config.gcc: Add aarch64-*-rtems*.
8056 * config/aarch64/rtems.h: New file.
8057
8058 2016-02-26 Segher Boessenkool <segher@kernel.crashing.org>
8059
8060 PR target/69946
8061 * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
8062 shift amount using %h. Add comment.
8063
8064 2016-02-26 Richard Biener <rguenther@suse.de>
8065 Jeff Law <law@redhat.com>
8066
8067 PR tree-optimization/69740
8068 * cfghooks.c (remove_edge): Request loop fixups if we delete
8069 an edge that might turn an irreducible loop into a natural
8070 loop.
8071
8072 2016-02-26 Martin Jambor <mjambor@suse.cz>
8073
8074 PR middle-end/69920
8075 * tree-sra.c (sra_modify_assign): Do not remove loads of
8076 uninitialized aggregates to SSA_NAMEs.
8077
8078 2016-02-26 Richard Henderson <rth@redhat.com>
8079
8080 PR target/69709
8081 * config/s390/s390.md (risbg and risbgn splitters): Allocate new
8082 pseudo in case the target rtx matches the source of the left
8083 shift.
8084
8085 2016-02-26 Martin Jambor <mjambor@suse.cz>
8086
8087 PR hsa/69568
8088 * hsa.h (hsa_type_packed_p): Declare.
8089 * hsa.c (hsa_type_packed_p): New function.
8090 * hsa-gen.c (mem_type_for_type): Use unsigned type for packed
8091 loads.
8092 (gen_hsa_insns_for_store): Use hsa_type_packed_p.
8093 * hsa-brig.c (emit_basic_insn): Likewise.
8094
8095 2016-02-26 Martin Jambor <mjambor@suse.cz>
8096
8097 pr hsa/69674
8098 * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
8099 pointers.
8100 (gen_hsa_addr): Allow integer constants in TMR_INDEX2.
8101
8102 2016-02-26 Martin Jambor <mjambor@suse.cz>
8103
8104 * hsa.h (is_a_helper): New overload for hsa_op_immed for
8105 hsa_op_with_type operands.
8106 (hsa_unsigned_type_for_type): Declare.
8107 * hsa.c (hsa_unsigned_type_for_type): New function.
8108 * hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type.
8109 (gen_hsa_insns_for_operation_assignment): Satisfy constrains of
8110 the finalizer. Do not emit extra move.
8111
8112 2016-02-26 Martin Jambor <mjambor@suse.cz>
8113
8114 * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
8115 atomic operations in private segment.
8116
8117 2016-02-26 Martin Jambor <mjambor@suse.cz>
8118
8119 * omp-low.c (grid_find_ungridifiable_statement): Store problematic
8120 statements to wi->info. Also disallow omp simd constructs.
8121 (grid_target_follows_gridifiable_pattern): Use wi.info to dump reason
8122 for not gridifying. Dump special string for omp_for.
8123
8124 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8125
8126 PR target/69245
8127 * config/aarch64/aarch64.c (aarch64_set_current_function):
8128 Save/restore target globals when switching to
8129 target_option_default_node.
8130
8131 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8132
8133 PR target/69613
8134 * config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
8135 Return 0 if !SHIFT_COUNT_TRUNCATED.
8136
8137 2016-02-26 Jakub Jelinek <jakub@redhat.com>
8138 Eric Botcazou <ebotcazou@adacore.com>
8139
8140 PR rtl-optimization/69891
8141 * dse.c (scan_insn): If we can't figure out memset arguments
8142 or they are non-constant, call clear_rhs_from_active_local_stores.
8143
8144 2016-02-26 Martin Liska <mliska@suse.cz>
8145
8146 * doc/extend.texi: Mention clog10, clog10f an clog10l
8147 in Builtins section.
8148
8149 2016-02-26 Martin Liska <mliska@suse.cz>
8150
8151 * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
8152 CHECKING_P.
8153 (resolve_args_picking_1): Likewise.
8154 * dwarf2out.h (struct GTY): Likewise.
8155
8156 2016-02-26 Martin Liska <mliska@suse.cz>
8157
8158 * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
8159 with flag_checking.
8160 * hsa-regalloc.c (linear_scan_regalloc): Likewise.
8161
8162 2016-02-26 Markus Trippelsdorf <markus@trippelsdorf.de>
8163 Martin Liska <mliska@suse.cz>
8164
8165 * doc/install.texi: Mention --enable-valgrind-annotations.
8166
8167 2016-02-26 Richard Biener <rguenther@suse.de>
8168
8169 PR tree-optimization/69551
8170 * tree-ssa-structalias.c (get_constraint_for_ssa_var): When
8171 looking through aliases adjust DECL_PT_UID to refer to the
8172 ultimate alias target.
8173
8174 2016-02-25 Martin Liska <mliska@suse.cz>
8175
8176 PR middle-end/69919
8177 * alloc-pool.c (after_memory_report): New variable.
8178 * alloc-pool.h (base_pool_allocator ::release): Do not use
8179 the infrastructure if after_memory_report.
8180 * toplev.c (toplev::main): Mark after memory report.
8181
8182 2016-02-25 Richard Biener <rguenther@suse.de>
8183
8184 PR tree-optimization/48795
8185 * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
8186
8187 2016-02-25 Ilya Verbin <ilya.verbin@intel.com>
8188
8189 PR driver/68463
8190 * config/gnu-user.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o if
8191 offloading is enabled and -fopenacc or -fopenmp is specified.
8192 (CRTOFFLOADEND): Likewise.
8193 (GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
8194 (GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
8195 * lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
8196 (offload_objects_file_name): New static var.
8197 (tool_cleanup): Remove offload_objects_file_name file.
8198 (find_offloadbeginend): Replace with ...
8199 (find_crtoffloadtable): ... this.
8200 (run_gcc): Remove offload_argc and offload_argv.
8201 Get offload_objects_file_name from -foffload-objects=... option.
8202 Read names of object files with offload from this file, pass them to
8203 compile_images_for_offload_targets. Don't call find_offloadbeginend and
8204 don't pass offloadbegin and offloadend to the linker. Don't pass
8205 offload non-LTO files to the linker, because now they're not claimed.
8206
8207 2016-02-25 Jan Hubicka <hubicka@ucw.cz>
8208
8209 PR ipa/69630
8210 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
8211 on builtin_unreachable.
8212
8213 2016-02-25 Jakub Jelinek <jakub@redhat.com>
8214
8215 PR rtl-optimization/69896
8216 * regcprop.c: Include cfgrtl.h.
8217 (copyprop_hardreg_forward_1): If noop_p insn uses narrower
8218 than remembered mode, either delete it (if noop_move_p), or
8219 treat like copy_p but not noop_p instruction.
8220
8221 2016-02-24 Jakub Jelinek <jakub@redhat.com>
8222
8223 PR debug/69705
8224 * dwarf2out.c (gen_variable_die): Work around buggy LTO
8225 - allow NULL decl for Fortran DW_TAG_common_block variables.
8226
8227 2016-02-24 Jason Merrill <jason@redhat.com>
8228
8229 * common.opt (flifetime-dse): Add -flifetime-dse=1.
8230
8231 2016-02-24 Richard Biener <rguenther@suse.de>
8232 Jakub Jelinek <jakub@redhat.com>
8233
8234 PR middle-end/69760
8235 * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
8236 conditionally executed ops to well-defined overflow behavior.
8237
8238 2016-02-24 Jakub Jelinek <jakub@redhat.com>
8239
8240 PR middle-end/69915
8241 * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
8242 elements.
8243
8244 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8245
8246 PR rtl-optimization/69886
8247 * gcse.c (can_assign_to_reg_without_clobbers_p): Accept mode
8248 argument. Use it when checking validity of set instructions.
8249 (want_to_gcse_p): Pass mode to can_assign_to_reg_without_clobbers_p.
8250 (compute_ld_motion_mems): Update can_assign_to_reg_without_clobbers_p
8251 callsite.
8252 * rtl.h (can_assign_to_reg_without_clobbers_p): Update prototype.
8253 * store-motion.c (find_moveable_store): Update
8254 can_assign_to_reg_without_clobbers_p callsite.
8255
8256 2016-02-24 Richard Biener <rguenther@suse.de>
8257
8258 PR middle-end/68963
8259 * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
8260 bogus check.
8261 (record_nonwrapping_iv): Do not fall back to the low/high bound
8262 for non-constant IV bases if the stmt is not always executed.
8263
8264 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8265
8266 * config/arm/arm-cores.def (cortex-a32): New entry.
8267 * config/arm/arm-tables.opt: Regenerate.
8268 * config/arm/arm-tune.md: Regenerate.
8269 * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a32.
8270 * config/arm/t-aprofile: Handle mcpu=cortex-a32.
8271 * doc/invoke.texi (ARM Options): Document cortex-a32 as value
8272 for -mcpu and -mtune.
8273
8274 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8275
8276 PR target/69875
8277 * config/arm/arm.h (TARGET_HAVE_LPAE): Define.
8278 * config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value.
8279 * config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern.
8280 (atomic_loaddi_1): Delete.
8281 (atomic_loaddi): Rewrite expander using the above changes.
8282
8283 2016-02-24 Jakub Jelinek <jakub@redhat.com>
8284
8285 PR c/69918
8286 * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
8287 2 to 3.
8288
8289 2016-02-24 Jakub Jelinek <jakub@redhat.com>
8290 Richard Biener <rguenth@suse.de>
8291
8292 PR middle-end/69909
8293 * expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid
8294 set_mem_attributes if tem is SSA_NAME which got expanded
8295 as a MEM.
8296
8297 2016-02-24 Richard Biener <rguenther@suse.de>
8298
8299 PR tree-optimization/69907
8300 * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
8301 end of permutations for BB vectorization.
8302
8303 2016-02-24 Christian Bruel <christian.bruel@st.com>
8304
8305 * config/arm/arm-c.c (arm_option_override): Initialize
8306 target_option_current_node.
8307 * config/arm/arm.c (arm_pragma_target_parse): Replace
8308 build_target_option_node call by target_option_current_node.
8309 Set target_option_current_node.
8310 Fix comments.
8311
8312 2016-02-23 David Edelsohn <dje.gcc@gmail.com>
8313
8314 PR target/69810
8315 * config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
8316 define_insn_and_split to define_insn.
8317 (zero_extendqi<mode>2_dot2): Same.
8318 (extendqi<mode>2_dot): Same.
8319 (extendqi<mode>2_dot2): Same.
8320
8321 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
8322
8323 * config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores
8324 and add bypass for AES{D,E} and AESMC pairs.
8325 * config/aarch64/aarch64.c (exynosm1_tunings): Enable fusion of AES{D,E}
8326 and AESMC pairs.
8327
8328 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
8329
8330 * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
8331 series for reciprocal square root in Exynos M1.
8332
8333 2016-02-23 Martin Sebor <msebor@redhat.com>
8334
8335 PR c/69759
8336 * doc/extend.texi (Other Builtins): Document __builtin_alloca and
8337 __builtin_alloca_with_align.
8338
8339 2016-02-23 Richard Henderson <rth@redhat.com>
8340
8341 * config/i386/i386-c.c (ix86_target_macros): Remove __SEG_TLS.
8342 (ix86_register_pragmas): Remove __seg_tls.
8343 * config/i386/i386-protos.h (ADDR_SPACE_SEG_TLS): Remove.
8344 * config/i386/i386.c (ix86_print_operand_address_as): Don't handle it.
8345 (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): Remove.
8346 (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): Remove.
8347 (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): Remove.
8348 * doc/extend.texi (__seg_tls): Remove item.
8349
8350 2016-02-23 Richard Biener <rguenther@suse.de>
8351
8352 * alloc-pool.h (struct allocation_object): Make id member
8353 conditional on CHECKING_P again.
8354 (get_instance): Adjust.
8355 (base_pool_allocator): Likewise.
8356
8357 2016-02-23 Thomas Schwinge <thomas@codesourcery.com>
8358
8359 * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
8360 (parallelize_loops): In OpenACC kernels mode, set n_threads to
8361 zero.
8362 (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
8363 flag_openacc.
8364 * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
8365
8366 2016-02-23 Richard Biener <rguenther@suse.de>
8367
8368 * mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
8369 * bitmap.h (struct bitmap_usage): Likewise.
8370 (bitmap_move): Declare.
8371 * bitmap.c (register_overhead): Take size_t argument.
8372 (bitmap_move): New function.
8373 * df-problems.c (df_rd_transfer_function): Use bitmap_move
8374 to properly account overhead.
8375 * tree.c (free_node): Use tree_size.
8376
8377 2016-02-23 Jakub Jelinek <jakub@redhat.com>
8378
8379 PR c++/69902
8380 * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
8381 when inverting comparison.
8382
8383 PR c/69900
8384 * common.opt (Wunreachable-code): Add Warning flag.
8385
8386 2016-02-23 Mark Wielaard <mjw@redhat.com>
8387 Jakub Jelinek <jakub@redhat.com>
8388
8389 PR c/69911
8390 * cgraphunit.c (check_global_declaration): Check main_input_filename
8391 and DECL_SOURCE_FILE are not NULL.
8392
8393 2016-02-23 Martin Jambor <mjambor@suse.cz>
8394
8395 PR tree-optimization/69666
8396 * tree-sra.c (sra_modify_assign): Do not attempt to create
8397 default_def replacements for unscalarizable regions.
8398
8399 2016-02-20 Mark Wielaard <mjw@redhat.com>
8400
8401 PR c/28901
8402 * cgraphunit.c (check_global_declaration): Check level of
8403 warn_unused_const_variable and main_input_filename.
8404 * doc/invoke.texi (Warning Options): Add -Wunused-const-variable=.
8405 (-Wunused-variable): For C implies -Wunused-const-variable=1.
8406 (-Wunused-const-variable): Explain levels 1 and 2.
8407
8408 2016-02-22 Jakub Jelinek <jakub@redhat.com>
8409
8410 PR target/69888
8411 * config/i386/i386.c (decide_alg): Ensure we don't recurse with
8412 identical arguments. Formatting and spelling fixes.
8413
8414 PR target/69885
8415 * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
8416 be specified.
8417
8418 PR target/69894
8419 PR target/69895
8420 * config/m68k/t-opts (OPTIONS_H_EXTRA): Add m68k-microarchs.def
8421 and m68k-devices.def.
8422 * config/c6x/t-c6x (OPTIONS_H_EXTRA): Add c6x-isas.def.
8423 * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add aarch64-arches.def.
8424
8425 2016-02-22 Cesar Philippidis <cesar@codesourcery.com>
8426
8427 * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
8428 and HImode registers.
8429
8430 2016-02-22 Richard Biener <rguenther@suse.de>
8431
8432 PR tree-optimization/69882
8433 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Properly
8434 preserve permutations present because of gaps.
8435 (vect_supported_load_permutation_p): Always continue checking
8436 permutations after vect_attempt_slp_rearrange_stmts.
8437
8438 2016-02-22 Bin Cheng <bin.cheng@arm.com>
8439
8440 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
8441 min_profitable_estimate, rather than min_profitable_iters.
8442
8443 2016-02-22 Jakub Jelinek <jakub@redhat.com>
8444
8445 PR target/69885
8446 * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
8447 SImode for last match_operand.
8448
8449 2016-02-22 Martin Liska <mliska@suse.cz>
8450
8451 * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
8452 return bitsize - 1 as the return value.
8453
8454 2016-02-22 Oleg Endo <olegendo@gcc.gnu.org>
8455
8456 PR target/69806
8457 PR target/54089
8458 * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
8459 Handle negative shift counts.
8460 * config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
8461 force_reg on the shift constant.
8462 (lshrsi3): Likewise. Expand into lshrsi3_n* instead of lshrsi3_d.
8463 (lshrsi3_d): Handle negative shift counts.
8464
8465 2016-02-22 Richard Biener <rguenther@suse.de>
8466 Tom de Vries <tom@codesourcery.com>
8467
8468 * graph.c: Include dumpfile.h.
8469 (print_graph_cfg): Split into three overloads.
8470 * gdbhooks.py (class DotFn): Add and instantiate, adding command dot-fn.
8471
8472 2016-02-22 Tom de Vries <tom@codesourcery.com>
8473
8474 * gdbhooks.py (class DumpFn): Add and instantiate, adding command
8475 dump-fn.
8476
8477 2016-02-22 Richard Biener <rguenther@suse.de>
8478
8479 PR ipa/37448
8480 * ipa-inline-transform.c (inline_call): When not updating
8481 overall summaries adjust self size by the growth estimate.
8482 * ipa-inline.c (inline_to_all_callers_1): Add to the callers
8483 hash-set, do not update overall summaries here. Renamed from ...
8484 (inline_to_all_callers): ... this which is now wrapping the
8485 above and performing delayed overall summary update.
8486 (early_inline_small_functions): Delay updating of the overall
8487 summary.
8488
8489 2016-02-21 Markus Trippelsdorf <markus@trippelsdorf.de>
8490
8491 * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
8492 variable.
8493
8494 2016-02-19 Jakub Jelinek <jakub@redhat.com>
8495
8496 PR driver/69805
8497 * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use
8498 :%* in %:gt() argument.
8499 (greater_than_spec_func): Adjust for expecting only numbers,
8500 if there are more than two numbers, compare the last two.
8501
8502 2016-02-19 Jonathan Wakely <jwakely@redhat.com>
8503
8504 * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
8505 -Wnarrowing with -std.
8506
8507 2016-02-19 Jakub Jelinek <jakub@redhat.com>
8508
8509 PR c++/69851
8510 * expr.c (store_field): Don't use bit-field path if exp is
8511 COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is
8512 different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize
8513 and the assignment can be performed by bitwise copy. Formatting
8514 fix.
8515
8516 PR middle-end/69838
8517 * lra.c (lra_process_new_insns): If non-call exceptions are enabled,
8518 call copy_reg_eh_region_note_forward on before and/or after sequences
8519 and remove note from insn if it no longer can throw.
8520
8521 PR target/69820
8522 * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
8523 if TARGET_AVX512BW.
8524
8525 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8526
8527 * config/s390/vector.md: Add missing commutative operand markers
8528 to the patterns which qualify for one.
8529 * config/s390/vx-builtins.md: Likewise.
8530
8531 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8532
8533 * config/s390/vector.md (VI, VI_QHS): Add single element vector
8534 types to mode iterators.
8535 (vec_double): ... and mode attribute.
8536 * config/s390/vx-builtins.md (non_vec_int): Likewise.
8537
8538 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8539
8540 * config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
8541 Change the predicate of op2 from nonimmediate to general and let
8542 reload fix it if necessary.
8543
8544 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8545
8546 * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
8547
8548 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8549
8550 * config/s390/s390.c (s390_expand_vcond): Use the compare operand
8551 mode.
8552
8553 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8554
8555 * config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
8556 * config/s390/s390.c (s390_expand_vec_movstr): New function.
8557 * config/s390/s390.md ("movstr<P:mode>"): Call
8558 s390_expand_vec_movstr.
8559
8560 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8561
8562 * config/s390/s390.md: Add missing output modifier for operand 1
8563 to print it as address properly.
8564
8565 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8566
8567 * config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
8568 * config/s390/2964.md: New file.
8569 * config/s390/s390.c (s390_get_sched_attrmask): Use the right set
8570 of insn grouping attributes depending on the CPU level.
8571 (s390_get_unit_mask): New function.
8572 (s390_sched_score): Remove the OOO from the scheduling macros.
8573 Add loop to calculate a score for the instruction mix.
8574 (s390_sched_reorder): Likewise plus improve debug output.
8575 (s390_sched_variable_issue): Rename macros as above. Calculate
8576 the unit distances after actually scheduling an insn. Improve
8577 debug output.
8578 (s390_sched_init): Clear last_scheduled_unit_distance array.
8579 * config/s390/s390.md: Include 2964.md.
8580
8581 2016-02-18 Jakub Jelinek <jakub@redhat.com>
8582
8583 PR target/69671
8584 * config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
8585 *avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
8586 *avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
8587 *avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
8588 *avx512f_<code>v8div16qi2_mask_1): New insns.
8589
8590 2016-02-18 Michael Meissner <meissner@linux.vnet.ibm.com>
8591
8592 PR target/68404
8593 * config/rs6000/predicates.md (fusion_gpr_addis): Revert
8594 2016-02-09 change.
8595
8596 * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
8597 earlyclobber from target. Use wF constraint for fused memory
8598 address.
8599 (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
8600
8601 2016-02-18 Jakub Jelinek <jakub@redhat.com>
8602 Martin Liska <mliska@suse.cz>
8603
8604 PR sanitizer/69863
8605 * cfgexpand.c (asan_sanitize_stack_p): New function.
8606 (partition_stack_vars): Use the function.
8607 (expand_stack_vars): Likewise.
8608 (defer_stack_allocation): Likewise.
8609 (expand_used_vars): Likewise.
8610
8611 2016-02-18 Richard Biener <rguenther@suse.de>
8612
8613 PR middle-end/69553
8614 * fold-const.c (operand_equal_p): Properly compare offsets for
8615 IMAGPART_EXPR and ARRAY_REF.
8616
8617 2016-02-18 Nick Clifton <nickc@redhat.com>
8618
8619 PR target/62254
8620 PR target/69610
8621 * config/arm/arm.c (arm_option_override_internal): Disable
8622 interworking if the target does not support thumb instructions.
8623 (arm_reload_in_hi): Handle the case where a register to register
8624 move needs reloading because there is no simple pattern to handle
8625 it.
8626 (arm_reload_out_hi): Likewise.
8627
8628 2016-02-18 Richard Biener <rguenther@suse.de>
8629
8630 PR middle-end/69854
8631 * match.pd: Don't use fold_binary or fold_unary for folding
8632 constants.
8633
8634 2016-02-17 Jakub Jelinek <jakub@redhat.com>
8635
8636 PR c++/69850
8637 * gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
8638 on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
8639 * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
8640 warn on gimple_no_warning_p statements.
8641
8642 2016-02-17 Jonathan Wakely <jwakely@redhat.com>
8643
8644 * doc/extend.texi (C++ Attributes): Correct description of
8645 warn_unused type attribute.
8646
8647 2016-02-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8648
8649 * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
8650 correct instruction.
8651
8652 2016-02-17 Richard Biener <rguenther@suse.de>
8653
8654 PR rtl-optimization/69609
8655 * bb-reorder.c (struct bbro_basic_block_data): Add priority member.
8656 (find_traces_1_round): When ending a trace update cached priority
8657 of successors.
8658 (bb_to_key): Use cached priority when available.
8659 (copy_bb): Initialize cached priority.
8660 (reorder_basic_blocks_software_trace_cache): Likewise.
8661
8662 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8663
8664 PR target/69161
8665 * config/aarch64/predicates.md (aarch64_comparison_operator_mode):
8666 New predicate.
8667 (aarch64_comparison_operator): Break overly long line into two.
8668 (aarch64_comparison_operation): Likewise.
8669 * config/aarch64/aarch64.md (cstorecc4): Use
8670 aarch64_comparison_operator_mode instead of
8671 aarch64_comparison_operator.
8672 (cstore<mode>4): Likewise.
8673 (aarch64_cstore<mode>): Likewise.
8674 (*cstoresi_insn_uxtw): Likewise.
8675 (cstore<mode>_neg): Likewise.
8676 (*cstoresi_neg_uxtw): Likewise.
8677
8678 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8679
8680 PR target/69161
8681 * config/arm/predicates.md (arm_comparison_operator_mode):
8682 New predicate.
8683 * config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode
8684 instead of arm_comparison_operator.
8685 (*mov_negscc): Likewise.
8686 (*mov_notscc): Likewise.
8687 * config/arm/thumb2.md (*thumb2_mov_scc): Likewise.
8688 (*thumb2_mov_negscc): Likewise.
8689 (*thumb2_mov_negscc_strict_it): Likewise.
8690 (*thumb2_mov_notscc): Likewise.
8691 (*thumb2_mov_notscc_strict_it): Likewise.
8692
8693 2016-02-17 Wilco Dijkstra <wdijkstr@arm.com>
8694
8695 * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
8696 Add missing return.
8697
8698 2016-02-17 Eric Botcazou <ebotcazou@adacore.com>
8699
8700 * config/visium/visium.c (machine_libfunc_index): New enum.
8701 (machine_libfuncs): New structure.
8702 (visium_libfuncs): New static variable.
8703 (TARGET_INIT_LIBFUNCS): Define to...
8704 (visium_init_libfuncs): ...this. New function.
8705 (expand_block_move_4): Use the appropriate libfunc.
8706 (expand_block_move_2): Likewise.
8707 (expand_block_move_1): Likewise.
8708 (expand_block_set_4): Likewise.
8709 (expand_block_set_2): Likewise.
8710 (expand_block_set_1): Likewise.
8711 (visium_trampoline_init): Likewise.
8712
8713 2016-02-17 Nick Clifton <nickc@redhat.com>
8714
8715 * config/msp430/msp430.c (msp430_mcu_data): Sync with data from
8716 TI's devices.csv file as of March 2016.
8717
8718 2016-02-16 Kelvin Nilsen <kelvin@gcc.gnu.org>
8719
8720 PR Target/48344
8721 * opts-global.c (handle_common_deferred_options): Introduce and
8722 initialize two global variables to remember command-line options
8723 specifying a stack-limiting register.
8724 * opts.h: Add extern declarations of the two new global variables.
8725 * emit-rtl.c (init_emit_once): Initialize the stack_limit_rtx
8726 variable based on the values of the two new global variables.
8727
8728 2016-02-16 Jakub Jelinek <jakub@redhat.com>
8729
8730 PR c/69835
8731 * common.opt (Wnonnull-compare): New warning.
8732 * doc/invoke.texi (-Wnonnull): Remove text about comparison
8733 of arguments against NULL.
8734 (-Wnonnull-compare): Document.
8735 * Makefile.in (OBJS): Add gimple-ssa-nonnull-compare.o.
8736 * tree-pass.h (make_pass_warn_nonnull_compare): Declare.
8737 * passes.def (pass_warn_nonnull_compare): Add.
8738 * gimple-ssa-nonnull-compare.c: New file.
8739
8740 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
8741
8742 * config/aarch64/aarch64.c (cortexa57_tunings): Remove
8743 AARCH64_EXTRA_TUNE_RECIP_SQRT.
8744
8745 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
8746
8747 * config/aarch64/aarch64.c (use_rsqrt_p): Always use software
8748 reciprocal sqrt for -mlow-precision-recip-sqrt.
8749
8750 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
8751 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8752
8753 * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
8754 always use lane loads to construct non-constant vectors.
8755
8756 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
8757
8758 * config/aarch64/aarch64.md
8759 (arch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Fix register
8760 constraints for operand 3.
8761 (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
8762
8763 2016-02-16 Jakub Jelinek <jakub@redhat.com>
8764 Richard Biener <rguenther@suse.de>
8765
8766 PR tree-optimization/69820
8767 * tree-vect-patterns.c (type_conversion_p): Return false if
8768 *orig_type is unsigned single precision or boolean.
8769 (vect_recog_dot_prod_pattern, vect_recog_widen_mult_pattern):
8770 Formatting fix.
8771
8772 2016-02-16 Jakub Jelinek <jakub@redhat.com>
8773
8774 PR rtl-optimization/69764
8775 PR rtl-optimization/69771
8776 * optabs.c (expand_binop): Ensure for shift optabs invalid CONST_INT
8777 op1 is valid for GET_MODE_INNER (mode) and force it into a reg.
8778
8779 2016-02-16 Richard Biener <rguenther@suse.de>
8780
8781 PR tree-optimization/69776
8782 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
8783 sets from caller.
8784 (indirect_refs_may_alias_p): Likewise.
8785 (refs_may_alias_p_1): Pass alias sets as from ao_ref.
8786 * tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set
8787 according to tbaa_p.
8788 * tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag.
8789 (optimize_stmt): For redundant store discovery do not allow tbaa.
8790
8791 2016-02-16 Bernd Schmidt <bschmidt@redhat.com>
8792
8793 PR tree-optimization/69714
8794 * tree-ssa-math-opts.c (find_bswap_or_nop): Revert previous change.
8795 Return NULL if we have irrelevant high bytes on BIG_ENDIAN.
8796
8797 2016-02-16 Claudiu Zissulescu <claziss@synopsys.com>
8798
8799 * config/arc/arc-modes.def (CC_FPU, CC_FPU_UNEQ): New modes.
8800 * config/arc/arc-opts.h (FPU_SP, FPU_SF, FPU_SC, FPU_SD, FPU_DP)
8801 (FPU_DF, FPU_DC, FPU_DD, FXP_DP): Define.
8802 * config/arc/arc.c (arc_init): Check FPU options.
8803 (get_arc_condition_code): Handle new CC_FPU* modes.
8804 (arc_select_cc_mode): Likewise.
8805 (arc_conditional_register_usage): Allow 64 bit datum into even-odd
8806 register pair only. Allow access for ARCv2 accumulator.
8807 (gen_compare_reg): Whenever we have FPU support use FPU compare
8808 instructions.
8809 (arc_reorg): Don't generate brcc insns when FPU compare
8810 instructions are involved.
8811 * config/arc/arc.h (TARGET_DPFP): Add TARGET_FP_DPAX condition.
8812 (TARGET_OPTFPE): Add condition when ARC EM can use optimized
8813 floating point emulation.
8814 (ACC_REG_FIRST, ACC_REG_LAST, ACCL_REGNO, ACCH_REGNO): Define.
8815 (REVERSE_CONDITION): Add new CC_FPU* modes.
8816 (TARGET_FP_SP_BASE): Define.
8817 (TARGET_FP_DP_BASE): Likewise.
8818 (TARGET_FP_SP_FUSED): Likewise.
8819 (TARGET_FP_DP_FUSED): Likewise.
8820 (TARGET_FP_SP_CONV): Likewise.
8821 (TARGET_FP_DP_CONV): Likewise.
8822 (TARGET_FP_SP_SQRT): Likewise.
8823 (TARGET_FP_DP_SQRT): Likewise.
8824 (TARGET_FP_DP_AX): Likewise.
8825 * config/arc/arc.md (ARCV2_ACC): New constant.
8826 (type): New fpu type attribute.
8827 (SDF): Conditional iterator.
8828 (cstore<mode>, cbranch<mode>): Change expand condition.
8829 (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3): New expands,
8830 handles FPU/FPX cases as well.
8831 * config/arc/arc.opt (mfpu): New option.
8832 * config/arc/fpx.md (addsf3_fpx, subsf3_fpx, mulsf3_fpx):
8833 Renamed.
8834 (adddf3, muldf3, subdf3): Removed.
8835 * config/arc/predicates.md (proper_comparison_operator): Recognize
8836 CC_FPU* modes.
8837 * config/arc/fpu.md: New file.
8838 * doc/invoke.texi (ARC Options): Document mfpu option.
8839
8840 2016-02-16 Richard Biener <rguenther@suse.de>
8841
8842 PR rtl-optimization/69291
8843 * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
8844 noce_operand_ok check.
8845
8846 2016-02-16 Tom de Vries <tom@codesourcery.com>
8847
8848 PR lto/67709
8849 * omp-low.c (simd_clone_create): Remove call to
8850 symtab->call_cgraph_insertion_hooks.
8851
8852 2016-02-16 Jakub Jelinek <jakub@redhat.com>
8853
8854 PR tree-optimization/69802
8855 * tree-ssa-reassoc.c (update_range_test): If op is
8856 SSA_NAME_IS_DEFAULT_DEF, give up unless tem is a positive
8857 op == 1 test of precision 1 integral op, otherwise handle
8858 that case as op itself. Fix up formatting.
8859 (optimize_range_tests_to_bit_test, optimize_range_tests): Fix
8860 up formatting.
8861
8862 2016-02-16 Richard Biener <rguenther@suse.de>
8863
8864 PR tree-optimization/69586
8865 * tree-vrp.c (register_edge_assert_for_2): Handle all integral
8866 types for conversion sources.
8867
8868 2016-02-16 Richard Biener <rguenther@suse.de>
8869
8870 PR middle-end/69801
8871 * fold-const.c (operand_equal_p): For COND_EXPR zero operand
8872 mask OEP_ADDRESS_OF.
8873
8874 2016-02-16 Alan Modra <amodra@gmail.com>
8875
8876 PR target/68973
8877 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter.
8878 (p8_mtvsrd_df, p8_mtvsrd_sf): New.
8879 (p8_mtvsrd_1, p8_mtvsrd_2): Delete.
8880 (p8_mtvsrwz): New.
8881 (p8_mtvsrwz_1, p8_mtvsrwz_2): Delete.
8882 (p8_xxpermdi_<mode>): Take two DF inputs rather than one TF.
8883 (p8_fmrgow_<mode>): Likewise.
8884 (reload_vsx_from_gpr<mode>): Make clobber IF. Adjust for above
8885 changes.
8886 (reload_fpr_from_gpr<mode>): Similarly. Use "d" for op0 constraint.
8887 (reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting
8888 to use movdi_internal64. Remove op0_di.
8889 * config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode.
8890
8891 2016-02-15 Evandro Menezes <e.menezes@samsung.com>
8892
8893 Add support for the FCCMP insn types
8894
8895 * config/aarch64/aarch64.md (fccmp): Change insn type.
8896 (fccmpe): Likewise.
8897 * config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types.
8898 * config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise.
8899 * config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise.
8900 * config/arm/xgene1.md (xgene1_fcmp): Likewise.
8901 * config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation.
8902 * config/arm/types.md (fccmps): Add new insn type.
8903 (fccmpd): Likewise.
8904
8905 2016-02-15 Bernd Edlinger <bernd.edlinger@hotmail.de>
8906
8907 * alias.c (get_alias_set): Fix a typo in comment.
8908
8909 2016-02-15 Richard Biener <rguenther@suse.de>
8910
8911 PR tree-optimization/69595
8912 * match.pd: Complete range test simplification to true.
8913
8914 2016-02-15 Bernd Schmidt <bschmidt@redhat.com>
8915
8916 PR rtl-optimization/69648
8917 * lra-constraints.c (update_ebb_live_info): Don't remove sets of
8918 pic_offset_table_rtx.
8919
8920 PR rtl-optimization/69752
8921 * ira.c (update_equiv_regs): When looking for more than a single SET,
8922 also take other side effects into account.
8923
8924 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
8925
8926 * config/s390/s390.c (s390_function_profiler): Add a new sequence
8927 for z900+ CPUs in 31-bit mode.
8928
8929 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
8930
8931 * common/config/s390/s390-common.c (s390_supports_split_stack):
8932 New function.
8933 (TARGET_SUPPORTS_SPLIT_STACK): New macro.
8934 * config/s390/s390-protos.h: Add s390_expand_split_stack_prologue.
8935 * config/s390/s390.c (struct machine_function): New field
8936 split_stack_varargs_pointer.
8937 (s390_register_info): Mark r12 as clobbered if it'll be used as temp
8938 in s390_emit_prologue.
8939 (s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack
8940 vararg pointer.
8941 (morestack_ref): New global.
8942 (SPLIT_STACK_AVAILABLE): New macro.
8943 (s390_expand_split_stack_prologue): New function.
8944 (s390_live_on_entry): New function.
8945 (s390_va_start): Use split-stack vararg pointer if appropriate.
8946 (s390_asm_file_end): Emit the split-stack note sections.
8947 (TARGET_EXTRA_LIVE_ON_ENTRY): New macro.
8948 * config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec.
8949 (UNSPECV_SPLIT_STACK_CALL): New unspec.
8950 (UNSPECV_SPLIT_STACK_DATA): New unspec.
8951 (split_stack_prologue): New expand.
8952 (split_stack_space_check): New expand.
8953 (split_stack_data): New insn.
8954 (split_stack_call): New expand.
8955 (split_stack_call_*): New insn.
8956 (split_stack_cond_call): New expand.
8957 (split_stack_cond_call_*): New insn.
8958
8959 2016-02-15 Richard Biener <rguenther@suse.de>
8960
8961 PR tree-optimization/69783
8962 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
8963 Add trivially correct cases.
8964
8965 2016-02-15 Tom de Vries <tom@codesourcery.com>
8966
8967 PR lto/69655
8968 * lto-cgraph.c (input_offload_tables): Add and handle bool parameter
8969 do_force_output.
8970 * lto-streamer.h (input_offload_tables): Add and handle bool parameter.
8971
8972 2016-02-15 Richard Biener <rguenther@suse.de>
8973
8974 PR tree-optimization/69776
8975 * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
8976 * tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to
8977 indicate whether we can use TBAA to disambiguate against stores.
8978 Use alias-set zero if not.
8979 (visit_reference_op_store): Do not use TBAA when looking up
8980 redundant stores.
8981 * tree-ssa-pre.c (compute_avail): Use TBAA here.
8982 (eliminate_dom_walker::before_dom_children): But not when looking
8983 up redundant stores.
8984
8985 2016-02-14 John David Anglin <danglin@gcc.gnu.org>
8986
8987 * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.
8988
8989 2016-02-14 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
8990
8991 * config/i386/znver1.md
8992 (znver1_pop, znver1_pop_mem,
8993 znver1_load_imov_double_store,
8994 znver1_load_imov_direct_store,
8995 znver1_load_imov_direct_load,
8996 znver1_load_imov_double_load): Add new.
8997 (znver1_insn, znver1_insn_load): Add icmov type.
8998 (znver1_sseavx_fma,
8999 znver1_sseavx_fma_load,
9000 znver1_avx256_fma,
9001 znver1_avx256_fma_load): Fix pipe usage.
9002
9003 2016-02-14 Alan Modra <amodra@gmail.com>
9004
9005 PR target/68973
9006 * reloads.c (find_reloads_address_1): For pre/post-inc/dec
9007 with an invalid hard reg, reload just the reg not the entire
9008 pre/post-inc/dec address expression.
9009
9010 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
9011
9012 PR target/67260
9013 * config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with
9014 fixed R1_REG scratch reg.
9015 (sibcall_value_pcrel_fdpic): Likewise.
9016
9017 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
9018
9019 PR target/67636
9020 PR target/64345
9021 * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.
9022
9023 2016-02-12 Walter Lee <walt@tilera.com>
9024
9025 * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
9026 * config/tilegx/t-tilegx: Likewise.
9027
9028 2016-02-12 David Malcolm <dmalcolm@redhat.com>
9029
9030 PR other/69554
9031 * diagnostic-show-locus.c (struct line_span): New struct.
9032 (layout::get_first_line): Delete.
9033 (layout::get_last_line): Delete.
9034 (layout::get_num_line_spans): New member function.
9035 (layout::get_line_span): Likewise.
9036 (layout::print_heading_for_line_span_index_p): Likewise.
9037 (layout::get_expanded_location): Likewise.
9038 (layout::calculate_line_spans): Likewise.
9039 (layout::m_first_line): Delete.
9040 (layout::m_last_line): Delete.
9041 (layout::m_line_spans): New field.
9042 (layout::layout): Update comment. Replace m_first_line and
9043 m_last_line with m_line_spans, replacing their initialization
9044 with a call to calculate_line_spans.
9045 (diagnostic_show_locus): When printing source lines and
9046 annotations, rather than looping over a single span
9047 of lines, instead loop over each line_span within
9048 the layout, with an inner loop over the lines within them.
9049 Call the context's start_span callback when changing line spans.
9050 * diagnostic.c (diagnostic_initialize): Initialize start_span.
9051 (diagnostic_build_prefix): Break out the building of the location
9052 part of the string into...
9053 (diagnostic_get_location_text): ...this new function, rewriting
9054 it from nested ternary expressions to a sequence of "if"
9055 statements.
9056 (default_diagnostic_start_span_fn): New function.
9057 * diagnostic.h (diagnostic_start_span_fn): New typedef.
9058 (diagnostic_context::start_span): New field.
9059 (default_diagnostic_start_span_fn): New prototype.
9060
9061 2016-02-12 David Malcolm <dmalcolm@redhat.com>
9062
9063 PR driver/69779
9064 * gcc.c (driver::finalize): Fix cleanup of "specs".
9065
9066 2016-02-12 David Malcolm <dmalcolm@redhat.com>
9067
9068 PR driver/69265
9069 PR driver/69453
9070 * gcc.c (driver::driver): Initialize m_option_suggestions.
9071 (driver::~driver): Clean up m_option_suggestions.
9072 (suggest_option): Convert to...
9073 (driver::suggest_option): ...this, and split out into
9074 driver::build_option_suggestions and find_closest_string.
9075 (driver::build_option_suggestions): New function, from
9076 first half of suggest_option. Special-case
9077 OPT_fsanitize_ and OPT_fsanitize_recover_, making use of
9078 the sanitizer_opts array. For options of enum types, add the
9079 various enum values to the candidate strings.
9080 (driver::handle_unrecognized_options): Remove "const".
9081 * gcc.h (driver::handle_unrecognized_options): Likewise.
9082 (driver::build_option_suggestions): New decl.
9083 (driver::suggest_option): New decl.
9084 (driver::m_option_suggestions): New field.
9085 * opts-common.c (add_misspelling_candidates): New function.
9086 * opts.c (sanitizer_opts): Remove decl of struct sanitizer_opts_s
9087 and make non-static.
9088 * opts.h (sanitizer_opts): New array decl.
9089 (add_misspelling_candidates): New function decl.
9090 * spellcheck.c (find_closest_string): New function.
9091 * spellcheck.h (find_closest_string): New function decl.
9092
9093 2016-02-12 Jakub Jelinek <jakub@redhat.com>
9094
9095 PR rtl-optimization/69764
9096 PR rtl-optimization/69771
9097 * optabs.c (expand_binop_directly): For shift_optab_p, force
9098 convert_modes with VOIDmode if xop1 has VOIDmode.
9099
9100 2016-02-12 Ilya Enkovich <enkovich.gnu@gmail.com>
9101
9102 PR target/69729
9103 * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
9104 to correctly determine instrumentation thunks.
9105
9106 2016-02-12 Jakub Jelinek <jakub@redhat.com>
9107
9108 PR ipa/69241
9109 * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
9110 type by reference, force lhs on the call.
9111
9112 PR ipa/68672
9113 * ipa-split.c (split_function): Don't compute/use main_part_return_p.
9114 Compute retval and retbnd early in all cases if split_part_return_p
9115 and return_bb is not EXIT. Remove all clobber stmts and reset
9116 all debug stmts that refer to SSA_NAMEs defined in split part,
9117 except if it is retval, in that case replace the old retval with the
9118 lhs of the call to the split part.
9119
9120 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
9121
9122 revert:
9123 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
9124
9125 PR middle-end/66726
9126 * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
9127 whose result is used in PHI.
9128 (maybe_optimize_range_tests): Likewise.
9129 (final_range_test_p): Likweise.
9130
9131 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
9132
9133 PR middle-end/66726
9134 * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
9135 whose result is used in PHI.
9136 (maybe_optimize_range_tests): Likewise.
9137 (final_range_test_p): Likweise.
9138
9139 2016-02-12 Jakub Jelinek <jakub@redhat.com>
9140
9141 * cgraph.c: Spelling fixes - behaviour -> behavior and
9142 neighbour -> neighbor.
9143 * target.def: Likewise.
9144 * sel-sched.c: Likewise.
9145 * config/mips/mips.c: Likewise.
9146 * config/arc/arc.md: Likewise.
9147 * config/arm/cortex-a57.md: Likewise.
9148 * config/arm/arm.c: Likewise.
9149 * config/arm/neon.md: Likewise.
9150 * config/arm/arm-c.c: Likewise.
9151 * config/vms/vms-c.c: Likewise.
9152 * config/s390/s390.c: Likewise.
9153 * config/i386/znver1.md: Likewise.
9154 * config/i386/i386.c: Likewise.
9155 * config/ia64/hpux-unix2003.h: Likewise.
9156 * config/msp430/msp430.md: Likewise.
9157 * config/rx/rx.c: Likewise.
9158 * config/rx/rx.md: Likewise.
9159 * config/aarch64/aarch64-simd.md: Likewise.
9160 * config/aarch64/aarch64.c: Likewise.
9161 * config/nvptx/nvptx.c: Likewise.
9162 * config/bfin/bfin.c: Likewise.
9163 * config/cris/cris.opt: Likewise.
9164 * config/rs6000/rs6000.c: Likewise.
9165 * target.h: Likewise.
9166 * spellcheck.c: Likewise.
9167 * ira-build.c: Likewise.
9168 * tree-inline.c: Likewise.
9169 * builtins.c: Likewise.
9170 * lra-constraints.c: Likewise.
9171 * explow.c: Likewise.
9172 * hwint.h: Likewise.
9173 * targhooks.c: Likewise.
9174 * tree-vect-data-refs.c: Likewise.
9175 * expr.c: Likewise.
9176 * doc/tm.texi: Likewise.
9177 * doc/extend.texi: Likewise.
9178 * doc/install.texi: Likewise.
9179 * doc/md.texi: Likewise.
9180 * tree-ssa-tail-merge.c: Likewise.
9181 * sched-int.h: Likewise.
9182 * match.pd: Likewise.
9183 * sched-ebb.c: Likewise.
9184 * target.def (omit_struct_return_reg): Likewise.
9185 * gimple-ssa-isolate-paths.c: Likewise.
9186 (find_implicit_erroneous_behaviour): Renamed to...
9187 (find_implicit_erroneous_behavior): ... this.
9188 (find_explicit_erroneous_behaviour): Renamed to...
9189 (find_explicit_erroneous_behavior): ... this.
9190 (gimple_ssa_isolate_erroneous_paths): Adjust caller.
9191
9192 2016-02-11 Segher Boessenkool <segher@kernel.crashing.org>
9193
9194 PR rtl-optimization/64682
9195 PR rtl-optimization/69567
9196 PR rtl-optimization/69737
9197 * combine.c (distribute_notes) <REG_DEAD>: If the register is set
9198 in I2 as well, just lose it.
9199
9200 2016-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9201
9202 * config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
9203 New variable.
9204 (aarch64_last_printed_tune_string): Likewise.
9205 (aarch64_declare_function_name): Only output .arch assembler
9206 directive if it will be different from the previously output
9207 directive. Same for .tune comment but only if -dA is set.
9208 (aarch64_start_file): New function.
9209 (TARGET_ASM_FILE_START): Define.
9210
9211 2016-02-11 David Malcolm <dmalcolm@redhat.com>
9212
9213 PR plugins/69758
9214 * Makefile.in (PLUGIN_HEADERS): Add params.list.
9215
9216 2016-02-11 Jakub Jelinek <jakub@redhat.com>
9217
9218 PR target/65313
9219 * tree-vect-slp.c (vect_schedule_slp_instance): Avoid
9220 -Wmaybe-uninitialized warning.
9221
9222 2016-02-11 Oleg Endo <olegendo@gcc.gnu.org>
9223
9224 PR target/69713
9225 * config/sh/sh.md (casesi_worker_0): Add T_REG use.
9226
9227 2016-02-11 Richard Biener <rguenther@suse.de>
9228
9229 PR rtl-optimization/69291
9230 * ifcvt.c (noce_try_store_flag_constants): Do not allow
9231 subexpressions affected by changing the result.
9232
9233 2016-02-10 Vladimir Makarov <vmakarov@redhat.com>
9234
9235 PR target/69148
9236 * lra-constraints.c (curr_insn_transform): Find in/out operands
9237 for secondary memory moves. Update dups.
9238
9239 2016-02-10 Yuri Rumyantsev <ysrumyan@gmail.com>
9240
9241 PR tree-optimization/69652
9242 * tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1
9243 to nested loop, did source re-formatting, skip debug statements,
9244 add check on statement with volatile operand, remove dead scalar
9245 statements.
9246
9247 2016-02-10 Jakub Jelinek <jakub@redhat.com>
9248 Patrick Palka <ppalka@gcc.gnu.org>
9249
9250 PR ipa/69241
9251 PR c++/69649
9252 * gimplify.c (gimplify_modify_expr): Set lhs even for noreturn
9253 calls if the return type is TREE_ADDRESSABLE.
9254 * cgraphunit.c (cgraph_node::expand_thunk): Likewise.
9255 * ipa-split.c (split_function): Fix doubled "we" in comment.
9256 Use void return type for the split part even if
9257 !split_point->split_part_set_retval.
9258
9259 2016-02-10 Bin Cheng <bin.cheng@arm.com>
9260
9261 PR tree-optimization/68021
9262 * tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if
9263 when computing the value of biv cand by itself.
9264
9265 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
9266
9267 * config/aarch64/aarch64.c (cortexa53_tunings): Enable AES fusion.
9268 (cortexa57_tunings): Likewise.
9269 (cortexa72_tunings): Likewise.
9270 (arch_macro_fusion_pair_p): Add support for AES fusion.
9271 * config/aarch64/aarch64-fusion-pairs.def: Add AES_AESMC entry.
9272 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
9273 Allow virtual registers before reload so early scheduling works.
9274 * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Use
9275 correct latency and pipeline.
9276 (cortex_a57_crypto_complex): Likewise.
9277 (cortex_a57_crypto_xor): Likewise.
9278 (define_bypass): Add AES bypass.
9279
9280 2016-02-10 Richard Biener <rguenther@suse.de>
9281
9282 PR tree-optimization/69726
9283 * passes.def: Add DCE pass before late uninit.
9284 * match.pd: Add A ? B : (!A ? C : X) -> A ? B : C patterns to
9285 really fixup if-conversions job.
9286
9287 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
9288
9289 * config/arm/arm.c (arm_cortex_a53_tune): Enable AES fusion.
9290 (arm_cortex_a57_tune): Likewise.
9291 (aarch_macro_fusion_pair_p): Add support for AES fusion.
9292 * config/arm/arm-protos.h (fuse_ops): Add FUSE_AES_AESMC.
9293
9294 2016-02-10 Eric Botcazou <ebotcazou@adacore.com>
9295
9296 * timevar.def (TV_PHASE_DBGINFO): Delete.
9297 (TV_PHASE_CHECK_DBGINFO): Likewise.
9298 * varpool.c (varpool_node::assemble_decl): Do not change timevar.
9299
9300 2016-02-10 Richard Biener <rguenther@suse.de>
9301
9302 PR tree-optimization/69719
9303 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
9304 Adjust previous fix by ensuring that dr_a1 is left of dr_a2.
9305
9306 2016-02-09 Andrew Pinski <apinski@cavium.com>
9307
9308 PR tree-opt/69282
9309 * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
9310 get_vcond_mask_icode returns false.
9311
9312 2016-02-09 Michael Meissner <meissner@linux.vnet.ibm.com>
9313
9314 PR target/68404
9315 * config/rs6000/predicates.md (fusion_gpr_addis): Prevent fusing
9316 an ADDIS that adds a pointer to a large constant that sets the
9317 upper16 bits with a load operation.
9318
9319 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
9320
9321 PR target/68532
9322 * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
9323 order.
9324 * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
9325 endian.
9326 (vzipq_s16): Likewise.
9327 (vzipq_s32): Likewise.
9328 (vzipq_f32): Likewise.
9329 (vzipq_u8): Likewise.
9330 (vzipq_u16): Likewise.
9331 (vzipq_u32): Likewise.
9332 (vzipq_p8): Likewise.
9333 (vzipq_p16): Likewise.
9334
9335 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
9336
9337 PR target/68532
9338 * config/arm/arm.c (neon_endian_lane_map): New function.
9339 (neon_vector_pair_endian_lane_map): New function.
9340 (arm_evpc_neon_vuzp): Allow for big endian lane order.
9341 * config/arm/arm_neon.h (vuzpq_s8): Adjust shuffle patterns for big
9342 endian.
9343 (vuzpq_s16): Likewise.
9344 (vuzpq_s32): Likewise.
9345 (vuzpq_f32): Likewise.
9346 (vuzpq_u8): Likewise.
9347 (vuzpq_u16): Likewise.
9348 (vuzpq_u32): Likewise.
9349 (vuzpq_p8): Likewise.
9350 (vuzpq_p16): Likewise.
9351
9352 2016-02-11 Alexandre Oliva <aoliva@redhat.com>
9353
9354 PR target/69634
9355 * regstat.c (regstat_bb_compute_calls_crossed): Disregard
9356 debug insns.
9357
9358 2016-02-09 Uros Bizjak <ubizjak@gmail.com>
9359
9360 * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
9361 truncate const_int operand 1 to QImode.
9362
9363 2016-02-09 Eric Botcazou <ebotcazou@adacore.com>
9364
9365 * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
9366 corresponding to an abnormal edge.
9367
9368 2016-02-09 Tom de Vries <tom@codesourcery.com>
9369
9370 PR tree-optimization/69599
9371 * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
9372 function.
9373 (find_func_aliases_for_builtin_call, find_func_clobbers)
9374 (ipa_pta_execute): Handle case that foo and foo._0 are not in same lto
9375 partition.
9376
9377 2016-02-09 Richard Biener <rguenther@suse.de>
9378
9379 PR tree-optimization/69715
9380 * tree-ssa.c (execute_update_addresses_taken): Mark non-decl
9381 LHS on calls as non-rewritable.
9382
9383 2016-02-09 Tom de Vries <tom@codesourcery.com>
9384
9385 PR lto/69707
9386 * lto-wrapper.c (append_diag_options): New function.
9387 (compile_offload_image): Call append_diag_options.
9388
9389 2016-02-08 Sandra Loosemore <sandra@codesourcery.com>
9390
9391 PR other/69722
9392 * doc/extend.texi (Flag Output Operands): Correct sectioning.
9393 Minor copy-edit to fix verb tenses.
9394
9395 2016-02-08 Jakub Jelinek <jakub@redhat.com>
9396
9397 PR tree-optimization/69209
9398 * ipa-split.c (split_function): If split part is not
9399 returning retval, retval has gimple type but is not
9400 gimple value, force it into a SSA_NAME first.
9401
9402 2016-02-08 Nicklas Bo Jensen <nbjensen@gmail.com>
9403
9404 * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
9405 outdated section.
9406
9407 2016-02-08 Jason Merrill <jason@redhat.com>
9408
9409 PR c++/69631
9410 * convert.c (convert_to_integer_1): Check dofold on truncation
9411 distribution.
9412 (convert_to_pointer_maybe_fold, convert_to_real_maybe_fold)
9413 (convert_to_integer_maybe_fold, convert_to_complex_maybe_fold):
9414 Rename from *_nofold.
9415 * convert.h (convert_to_pointer_nofold, convert_to_integer_nofold)
9416 (convert_to_real_nofold, convert_to_complex_nofold): New inlines.
9417
9418 2016-02-08 Bernd Schmidt <bschmidt@redhat.com>
9419
9420 PR target/60410
9421 * tree.c (build_common_tree_nodes): Remove short_double argument.
9422 All callers changed.
9423 * tree.h (build_common_tree_nodes): Adjust declaration.
9424 * doc/invoke.texi (-fshort-double): Remove documentation.
9425 * config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
9426 MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
9427 * lto-wrapper.c (merge_and_complain, append_compiler_options)
9428 (append_linker_options): Don't handle OPT_fshort_double.
9429
9430 PR rtl-optimization/68730
9431 * lra-remat.c (insn_to_cand_activation): New static variable.
9432 (lra_remat): Allocate and free it.
9433 (create_cand): New arg activation. Initialize a field in
9434 insn_to_cand_activation if it is nonnull.
9435 (create_cands): Pass the activation insn to create_cand when making
9436 a candidate involving an output reload. Reorganize code a little.
9437 (do_remat): Keep track of active status of candidates in a separate
9438 bitmap.
9439
9440 2016-02-08 Richard Biener <rguenther@suse.de>
9441
9442 PR tree-optimization/69719
9443 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
9444 Properly use absolute of the difference of the two offsets to
9445 compare or adjust the segment length.
9446
9447 2016-02-08 Richard Biener <rguenther@suse.de>
9448 Jeff Law <law@redhat.com>
9449
9450 PR target/68273
9451 * tree-ssanames.c (make_ssa_name_fn): Always use unqualified
9452 types for anonymous SSA names.
9453
9454 2016-02-08 Richard Biener <rguenther@suse.de>
9455
9456 PR rtl-optimization/69274
9457 * ira.c (ira_setup_alts): Do not change recog_data.operand order.
9458
9459 2016-02-08 Jeff Law <law@redhat.com>
9460
9461 PR tree-optimization/65917
9462 * tree-ssa-dom.c (record_temporary_equivalences): Record both
9463 equivalences from if (x == y) style conditionals.
9464 (loop_depth_of_name): Remove.
9465 (record_equality): Remove loop depth check.
9466 * tree-ssa-scopedtables.h (const_and_copies): Refine comments.
9467 (const_and_copies::record_const_or_copy_raw): New member function.
9468 * tree-ssa-scopedtables.c
9469 (const_and_copies::record_const_or_copy_raw): New, factored out of
9470 (const_and_copies::record_const_or_copy): Call new member function.
9471
9472 2016-02-05 Jeff Law <law@redhat.com>
9473
9474 PR tree-optimization/68541
9475 * gimple-ssa-split-paths.c: Include tree-cfg.h and params.h.
9476 (count_stmts_in_block): New function.
9477 (poor_ifcvt_candidate_code): Likewise.
9478 (is_feasible_trace): Add some heuristics to determine when path
9479 splitting is profitable.
9480 (find_block_to_duplicate_for_splitting_paths): Make sure the graph
9481 is a diamond with a single exit.
9482
9483 2016-02-05 Martin Sebor <msebor@redhat.com>
9484
9485 PR c++/69662
9486 * doc/invoke.texi: Update -Wplacement-new to take an optional
9487 argument.
9488
9489 2016-02-06 Richard Henderson <rth@redhat.com>
9490
9491 PR c/69643
9492 * tree.c (tree_nop_conversion_p): Do not strip casts into or
9493 out of non-standard address spaces.
9494
9495 2016-02-05 Jakub Jelinek <jakub@redhat.com>
9496
9497 PR rtl-optimization/69691
9498 * lra-eliminations.c (move_plus_up): Don't add the addend twice.
9499
9500 2016-02-05 Pat Haugen <pthaugen@us.ibm.com>
9501
9502 * config/rs6000/crypto.md (crypto_vpermxor_<mode>): Correct insn type.
9503 * config/rs6000/rs6000.md (mov<mode>_hardfloat): Likewise.
9504 (*ieee128_mfvsrd_64bit): Likewise.
9505 (*ieee128_mfvsrd_32bit): Likewise.
9506
9507 2016-02-05 Ilya Enkovich <enkovich.gnu@gmail.com>
9508
9509 PR target/69369
9510 Revert r232560:
9511 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
9512
9513 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
9514 instrumented_version.
9515
9516 2016-01-05 Jeremy Bennett <jeremy.bennett@embecosm.com>
9517
9518 * doc/invoke.texi (Optimize Options): In table of --param options
9519 rename second occurrence of tracer-min-branch-ratio to
9520 tracer-min-branch-probability, rename
9521 tracer-min-branch-ratio-feedback to
9522 tracer-min-branch-probability-feedback and clarify description,
9523 rename sched-spec-state-edge-prob-cutoff to
9524 sched-state-edge-prob-cutoff, rename selsched-max-insns-to-rename
9525 to selsched-insns-to-rename, rename lto-minpartition to
9526 lto-min-partition, delete reorder-blocks-duplicate and
9527 reorder-blocks-duplicate-feedback.
9528
9529 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9530
9531 * config/s390/s390.c (s390_register_info_set_ranges): Remove
9532 superfluous loops.
9533
9534 2016-02-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
9535
9536 * doc/extend.texi: S/390: Correct some typos.
9537
9538 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9539
9540 * config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
9541
9542 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9543
9544 PR target/69625
9545 * config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines.
9546 (s390_register_info_gprtofpr): Use new macros above.
9547 (s390_register_info_stdarg_fpr): Adjust max_fpr to better match
9548 its name.
9549 (s390_register_info_stdarg_gpr): Adjust max_gpr to better match
9550 its name. Adjust restore and save gpr ranges.
9551 (s390_register_info_set_ranges): New function.
9552 (s390_register_info): Use new macros above. Call
9553 s390_register_info_set_ranges.
9554 (s390_optimize_register_info): Likewise.
9555 (s390_hard_regno_rename_ok): Use new macros.
9556 (s390_hard_regno_scratch_ok): Likewise.
9557 (s390_emit_epilogue): Likewise.
9558 (s390_can_use_return_insn): Likewise.
9559 (s390_optimize_prologue): Likewise.
9560 * config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants.
9561
9562 2016-02-05 Jakub Jelinek <jakub@redhat.com>
9563
9564 PR bootstrap/69677
9565 * config/i386/i386.c (convert_scalars_to_vector): Readd stack
9566 alignment fixes.
9567 (ix86_option_override_internal): Disable TARGET_STV even for
9568 -m{incoming,preferred}-stack-boundary=3.
9569
9570 2016-02-03 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9571
9572 * config.gcc: Mark deprecated rtems targets as obsolete.
9573
9574 2016-02-04 Segher Boessenkool <segher@kernel.crashing.org>
9575
9576 PR rtl-optimization/64682
9577 PR rtl-optimization/69567
9578 * combine.c (distribute_notes) <REG_DEAD>: Place the death note
9579 before I2 only if the register is both used and set in I2.
9580
9581 2016-02-04 DJ Delorie <dj@redhat.com>
9582
9583 * config/msp430/msp430.c (msp430_start_function): Add function type.
9584
9585 2016-02-04 Jakub Jelinek <jakub@redhat.com>
9586
9587 PR fortran/69368
9588 * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
9589
9590 2016-02-04 Uros Bizjak <ubizjak@gmail.com>
9591
9592 PR rtl-optimization/69577
9593 Revert:
9594 2015-10-29 Richard Henderson <rth@redhat.com>
9595
9596 PR target/68124
9597 PR rtl-opt/67609
9598 * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
9599 sse check to the exact conditions of PR 67609.
9600
9601 2016-02-04 Michael Meissner <meissner@linux.vnet.ibm.com>
9602
9603 PR target/69667
9604 * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Use 'd' constraint
9605 instead of 'ws', and 'wh' instead of 'wm' since TFmode/IFmode are
9606 not allowed into the traditional Altivec registers.
9607 (movtd_64bit_nodm): Likewise.
9608 (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
9609
9610 2016-02-04 David Malcolm <dmalcolm@redhat.com>
9611
9612 * config/aarch64/cortex-a57-fma-steering.c
9613 (aarch64_register_fma_steering): Remove "static" from arguments
9614 to register_pass.
9615
9616 2016-02-04 Wilco Dijkstra <wdijkstr@arm.com>
9617
9618 PR target/69619
9619 * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
9620 twice when complex.
9621
9622 2016-02-04 Mike Frysinger <vapier@gentoo.org>
9623
9624 * doc/invoke.texi: Delete -mno-fma4.
9625
9626 2016-02-04 Richard Sandiford <richard.sandiford@arm.com>
9627
9628 PR rtl-optimization/69577
9629 * reginfo.c (record_subregs_of_mode): Add a partial_def parameter.
9630 (find_subregs_of_mode): Update accordingly. Iterate over partial
9631 definitions.
9632
9633 2016-02-04 Alan Lawrence <alan.lawrence@arm.com>
9634
9635 * config/arm/arm-protos.h (neon_reinterpret): Remove.
9636 * config/arm/arm.c (neon_reinterpret): Remove.
9637 * config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi,
9638 vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi,
9639 vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di,
9640 vreinterpretti): Remove.
9641 * config/arm/neon.md (neon_vreinterpretv8qi<mode>,
9642 neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
9643 neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>,
9644 neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>,
9645 neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>,
9646 neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove.
9647 * config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32,
9648 vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64,
9649 vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32,
9650 vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32,
9651 vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64,
9652 vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8,
9653 vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8,
9654 vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8,
9655 vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64,
9656 vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16,
9657 vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16,
9658 vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16,
9659 vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64,
9660 vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32,
9661 vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32,
9662 vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32,
9663 vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8,
9664 vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8,
9665 vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8,
9666 vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64,
9667 vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16,
9668 vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16,
9669 vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16,
9670 vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64,
9671 vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32,
9672 vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32,
9673 vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32,
9674 vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64,
9675 vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8,
9676 vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8,
9677 vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64,
9678 vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8,
9679 vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16,
9680 vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16,
9681 vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64,
9682 vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16,
9683 vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32,
9684 vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32,
9685 vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64,
9686 vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32,
9687 vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8,
9688 vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64,
9689 vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8,
9690 vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8,
9691 vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32,
9692 vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64,
9693 vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16,
9694 vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16,
9695 vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32,
9696 vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64,
9697 vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16,
9698 vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16,
9699 vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16,
9700 vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64,
9701 vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16,
9702 vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16,
9703 vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16,
9704 vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64,
9705 vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16,
9706 vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16,
9707 vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16,
9708 vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64,
9709 vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16,
9710 vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16,
9711 vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16,
9712 vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128,
9713 vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16,
9714 vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16,
9715 vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16,
9716 vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128,
9717 vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16,
9718 vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16,
9719 vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16,
9720 vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128,
9721 vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16,
9722 vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16,
9723 vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16,
9724 vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128,
9725 vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8,
9726 vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16,
9727 vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16,
9728 vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64,
9729 vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64,
9730 vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8,
9731 vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8,
9732 vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64,
9733 vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64,
9734 vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32,
9735 vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8,
9736 vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64,
9737 vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64,
9738 vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32,
9739 vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8,
9740 vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64,
9741 vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64,
9742 vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32,
9743 vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts.
9744
9745 2016-02-04 Martin Liska <mliska@suse.cz>
9746
9747 PR sanitizer/69276
9748 * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
9749 that are gimple_store_p.
9750 (maybe_instrument_call): Likewise.
9751
9752 2016-02-04 Bin Cheng <bin.cheng@arm.com>
9753
9754 * config/aarch64/aarch64.c (aarch64_legitimize_address): Force
9755 register scaling out of memory reference and comment why.
9756
9757 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9758
9759 PR target/65932
9760 PR target/67714
9761 * cse.c (cse_insn): Pass NULL to fold_rtx when initially
9762 folding the source of a SET.
9763
9764 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9765
9766 PR target/65932
9767 PR target/67714
9768 * config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
9769 the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.
9770
9771 2016-02-04 Jim Wilson <jim.wilson@linaro.org>
9772
9773 PR target/65932
9774 PR target/67714
9775 * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
9776 HImode.
9777
9778 2016-02-04 Christian Bruel <christian.bruel@st.com>
9779
9780 * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
9781 * config/arm/arm.c (arm_set_current_function): Likewise.
9782
9783 2016-02-04 Jakub Jelinek <jakub@redhat.com>
9784 Ilya Enkovich <enkovich.gnu@gmail.com>
9785 H.J. Lu <hongjiu.lu@intel.com>
9786
9787 PR target/69454
9788 * config/i386/i386.c (convert_scalars_to_vector): Remove
9789 stack alignment fixes.
9790 (ix86_option_override_internal): Disable TARGET_STV if stack
9791 might not be aligned enough.
9792 (ix86_minimum_alignment): Assert that TARGET_STV is false.
9793
9794 2016-02-04 Victoria Stepanyan <victoria.stepanyan@amd.com>
9795
9796 * config/i386/x86-tune.def: Disable default prefetching
9797 for -march=znver1.
9798
9799 2016-02-03 Michael Meissner <meissner@linux.vnet.ibm.com>
9800 Vladimir Makarov <vmakarov@redhat.com>
9801
9802 PR target/69461
9803 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
9804 in validating fused toc addresses.
9805
9806 2016-02-03 Jakub Jelinek <jakub@redhat.com>
9807
9808 PR c/69627
9809 * diagnostic-show-locus.c (layout::get_state_at_point): Don't read
9810 range->m_caret fields if range->m_show_caret_p is false.
9811
9812 PR target/69644
9813 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
9814 Force oldval into register if it does not satisfy reg_or_short_operand
9815 predicate. Fix up formatting.
9816
9817 2016-02-03 Vladimir Makarov <vmakarov@redhat.com>
9818 Alexandre Oliva <aoliva@redhat.com>
9819
9820 PR target/69461
9821 * lra-constraints.c (simplify_operand_subreg): Check additionally
9822 address validity after potential reloading.
9823 (process_address_1): Check insns validity. In case of failure do
9824 nothing.
9825
9826 2016-02-03 Kirill Yukhin <kirill.yukhin@intel.com>
9827
9828 PR target/69118
9829 * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
9830 Fix target.
9831
9832 2016-02-02 Jakub Jelinek <jakub@redhat.com>
9833
9834 * wide-int.cc (canonize_uhwi): New function.
9835 (wi::divmod_internal): Use it.
9836
9837 2016-02-02 James Norris <jnorris@codesourcery.com
9838
9839 * gimplify.c (omp_notice_variable): Add usage check.
9840
9841 2016-02-02 Alexander Monakov <amonakov@ispras.ru>
9842
9843 * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
9844 like LE, GE, LT, GT when emitting relational operator.
9845
9846 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
9847
9848 * ira-costs.c (find_costs_and_classes): Add extra argument.
9849 * target.def (ira_change_pseudo_allocno_class): Add parameter.
9850 * targhooks.h (ira_change_pseudo_allocno_class): Likewise.
9851 * targhooks.c (ira_change_pseudo_allocno_class): Likewise.
9852 * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
9853 Add best_class parameter, and return it if not ALL_REGS.
9854 * config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
9855 Add parameter.
9856 * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
9857 Update target hook.
9858
9859 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
9860
9861 * config/aarch64/aarch64.c
9862 (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
9863 (aarch64_ira_change_pseudo_allocno_class): New function.
9864
9865 2016-02-02 Uros Bizjak <ubizjak@gmail.com>
9866
9867 PR target/67032
9868 * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
9869
9870 2016-02-02 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
9871
9872 * config/avr/avr.c (avr_option_override): Set
9873 PARAM_ALLOW_STORE_DATA_RACES to 1.
9874
9875 2016-02-02 Richard Biener <rguenther@suse.de>
9876
9877 PR tree-optimization/69595
9878 * match.pd: Add range test simplifications to true/false.
9879
9880 2016-02-02 Thomas Schwinge <thomas@codesourcery.com>
9881
9882 * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
9883 * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
9884 instead.
9885
9886 2016-02-02 Richard Biener <rguenther@suse.de>
9887
9888 PR tree-optimization/69606
9889 * tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
9890 info on the result before moving a stmt.
9891
9892 2016-02-02 Yuri Rumyantsev <ysrumyan@gmail.com>
9893
9894 PR middle-end/68542
9895 * config/i386/i386.c (ix86_expand_branch): Add support for conditional
9896 branch with vector comparison.
9897 * config/i386/sse.md (VI48_AVX): New mode iterator.
9898 (define_expand "cbranch<mode>4): Add support for conditional branch
9899 with vector comparison.
9900 * tree-vect-loop.c (optimize_mask_stores): New function.
9901 * tree-vect-stmts.c (vectorizable_mask_load_store): Initialize
9902 has_mask_store field of vect_info.
9903 * tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for
9904 vectorized loops having masked stores after vec_info destroy.
9905 * tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and
9906 correspondent macros.
9907 (optimize_mask_stores): Add prototype.
9908
9909 2016-02-02 Alan Modra <amodra@gmail.com>
9910
9911 PR target/69548
9912 * config/rs6000/predicates.md (quad_int_reg_operand): Don't
9913 allow subregs.
9914
9915 2016-02-02 Alan Modra <amodra@gmail.com>
9916
9917 PR target/68662
9918 * config/rs6000/rs6000.c (need_toc_init): New var, set it
9919 whenever toc_label_name used.
9920 (rs6000_file_start): Don't set up toc section here,
9921 (rs6000_output_function_epilogue): do so here instead,
9922 (rs6000_xcoff_file_start): and here.
9923 * config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init.
9924 (load_toc_aix_di): Likewise.
9925
9926 2016-02-01 Jakub Jelinek <jakub@redhat.com>
9927
9928 PR rtl-optimization/69592
9929 * rtlanal.c (nonzero_bits_binary_arith_p): New inline function.
9930 (cached_nonzero_bits): Use it instead of ARITHMETIC_P.
9931 (num_sign_bit_copies_binary_arith_p): New inline function.
9932 (cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P.
9933
9934 2016-02-01 Jeff Law <law@redhat.com>
9935
9936 PR tree-optimization/69580
9937 * params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param.
9938 * tree-ssa-threadbackward.c
9939 (fsm_find_control_statement_thread_paths): Do not try to walk
9940 through large PHI nodes.
9941
9942 2016-02-01 Jakub Jelinek <jakub@redhat.com>
9943
9944 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
9945 when count is incremented above limit, don't analyze further
9946 insns afterwards.
9947
9948 * omp-low.c (oacc_parse_default_dims): Avoid
9949 -Wsign-compare warning, make sure value fits into int
9950 rather than just unsigned int.
9951
9952 2016-02-01 Bin Cheng <bin.cheng@arm.com>
9953
9954 PR tree-optimization/67921
9955 * fold-const.c (split_tree): New parameters. Convert pointer
9956 type variable part to proper type before negating.
9957 (fold_binary_loc): Pass new arguments to split_tree.
9958
9959 2016-02-01 Nathan Sidwell <nathan@codesourcery.com>
9960
9961 * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New.
9962 (nvptx_goacc_validate_dims): Extend to handle global defaults.
9963 * target.def (OACC_VALIDATE_DIMS): Extend documentation.
9964 * doc/tm.texti: Rebuilt.
9965 * doc/invoke.texi (fopenacc-dim): Document.
9966 * lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case.
9967 (append_compiler_options): Likewise.
9968 * omp-low.c (oacc_default_dims, oacc_min_dims): New.
9969 (oacc_parse_default_dims): New.
9970 (oacc_validate_dims): Add USED arg. Select non-unity default when
9971 possible.
9972 (oacc_loop_fixed_partitions): Return mask of used partitions.
9973 (oacc_loop_auto_partitions): Emit dump info.
9974 (oacc_loop_partition): Return mask of used partitions.
9975 (execute_oacc_device_lower): Parse default dimension arg. Adjust
9976 loop partitioning and validation calls.
9977
9978 2016-02-01 Richard Biener <rguenther@suse.de>
9979
9980 PR middle-end/69556
9981 * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
9982
9983 2016-02-01 Richard Biener <rguenther@suse.de>
9984
9985 PR tree-optimization/69574
9986 * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
9987 of asserting return chrec_dont_know.
9988
9989 2016-02-01 Martin Liska <mliska@suse.cz>
9990
9991 * mem-stats-traits.h: Add copyright header.
9992 * mem-stats.h: Likewise.
9993
9994 2016-02-01 Richard Biener <rguenther@suse.de>
9995
9996 PR tree-optimization/69579
9997 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
9998 Do not propagate through abnormal PHI results.
9999
10000 2016-02-01 Eric Botcazou <ebotcazou@adacore.com>
10001
10002 * postreload.c (reload_cse_simplify): Remove dead code.
10003
10004 2016-02-01 Jakub Jelinek <jakub@redhat.com>
10005
10006 PR rtl-optimization/69570
10007 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only
10008 if there is more than one set, not if there is a single set.
10009
10010 2016-02-01 Richard Henderson <rth@redhat.com>
10011
10012 PR rtl-opt/69535
10013 * combine.c (make_compound_operation): When looking through a
10014 subreg, make sure to re-extend to the width of the outer mode.
10015
10016 2016-01-30 Jakub Jelinek <jakub@redhat.com>
10017
10018 PR tree-optimization/69546
10019 * wide-int.cc (wi::divmod_internal): For unsigned division
10020 where both operands fit into uhwi, if o1 is 1 and o0 has
10021 msb set, if divident_prec is larger than bits per hwi,
10022 clear another quotient word and return 2 instead of 1.
10023 Similarly for remainder with msb in HWI set, if dividend_prec
10024 is larger than bits per hwi.
10025
10026 2016-01-29 Martin Jambor <mjambor@suse.cz>
10027
10028 * hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK.
10029 Use short lowercase names.
10030 (get_memory_order): Mask with MEMMODEL_BASE_MASK. Support
10031 MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with
10032 acq_rel one. Protect warning agains segfaults if
10033 get_memory_order_name returns NULL.
10034 (gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST
10035 with release semantics. Do not warn if get_memory_order already did.
10036 (gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire
10037 semantics. Fix check for relaxed or acquire semantics. Do not warn
10038 if get_memory_order already did.
10039
10040 2016-01-29 Sebastian Pop <s.pop@samsung.com>
10041
10042 * doc/install.texi: Document that isl-0.16 is supported.
10043
10044 2016-01-29 Vladimir Makarov <vmakarov@redhat.com>
10045
10046 PR target/69299
10047 * config/i386/constraints.md (Bm): Describe as special memory
10048 constraint.
10049 * doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it.
10050 * genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
10051 * genpreds.c (struct constraint_data): Add is_special_memory.
10052 (have_special_memory_constraints, special_memory_start): New
10053 static vars.
10054 (special_memory_end): Ditto.
10055 (add_constraint): Add new arg is_special_memory. Add code to
10056 process its true value. Update have_special_memory_constraints.
10057 (process_define_constraint): Pass the new arg.
10058 (process_define_register_constraint): Ditto.
10059 (choose_enum_order): Process special memory.
10060 (write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and
10061 function insn_extra_special_memory_constraint.
10062 (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
10063 * gensupport.c (process_rtx): Process
10064 DEFINE_SPECIAL_MEMORY_CONSTRAINT.
10065 * ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY.
10066 * ira-lives.c (single_reg_class): Use
10067 insn_extra_special_memory_constraint.
10068 * ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY.
10069 * lra-constraints.c (process_alt_operands): Ditto.
10070 (curr_insn_transform): Use insn_extra_special_memory_constraint.
10071 * recog.c (asm_operand_ok, preprocess_constraints): Process
10072 CT_SPECIAL_MEMORY.
10073 * reload.c (find_reloads): Ditto.
10074 * rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New.
10075 * stmt.c (parse_input_constraint): Use
10076 insn_extra_special_memory_constraint.
10077
10078 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
10079
10080 PR target/69530
10081 * lra-splill.c (lra_final_code_change): Revert r229087 by
10082 removing all sub-registers.
10083
10084 2016-01-29 Steve Ellcey <sellcey@imgtec.com>
10085
10086 PR target/65604
10087 * config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
10088
10089 2016-01-29 Jakub Jelinek <jakub@redhat.com>
10090
10091 PR target/69551
10092 * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
10093 SSE1, copy target into the temporary reg first before recursing
10094 on it.
10095
10096 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
10097
10098 * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
10099 with vm.
10100
10101 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
10102
10103 * ginclude/stdarg.h: Test __cplusplus instead of
10104 __GXX_EXPERIMENTAL_CXX0X__.
10105
10106 2016-01-29 Richard Biener <rguenther@suse.de>
10107
10108 PR tree-optimization/69547
10109 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
10110 Do not mark clobbers necessary.
10111 (mark_all_reaching_defs_necessary_1): Likewise.
10112
10113 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
10114
10115 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
10116 declaration name with %qs and print it in both error messages.
10117 Also fix indentation.
10118
10119 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
10120
10121 PR other/69006
10122 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
10123 trailing blank line from error message.
10124
10125 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
10126
10127 PR c++/69462
10128 * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
10129 for C++-11.
10130
10131 2016-01-29 Richard Biener <rguenther@suse.de>
10132
10133 PR middle-end/69537
10134 * match.pd: Allow all integral types when simplifying a
10135 widening or sign-changing conversion.
10136
10137 2016-01-28 Sebastian Pop <s.pop@samsung.com>
10138
10139 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
10140 back to setting codegen_error to fail codegen.
10141
10142 2016-01-28 Uros Bizjak <ubizjak@gmail.com>
10143
10144 PR target/69459
10145 * config/i386/constraints.md (C): Only accept constant zero operand.
10146 (BC): New constraint.
10147 * config/i386/sse.md (*mov<mode>_internal): Use BC constraint
10148 instead of C constraint.
10149 * doc/md.texi (Machine Constraints): Update description
10150 of C constraint.
10151
10152 2016-01-28 Steve Ellcey <sellcey@imgtec.com>
10153
10154 PR target/68400
10155 * config/mips/mips.c (and_operands_ok): Add MIPS16 check.
10156
10157 2016-01-28 Jakub Jelinek <jakub@redhat.com>
10158
10159 PR middle-end/69542
10160 * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
10161 non-debug insns.
10162
10163 2016-01-28 Pat Haugen <pthaugen@us.ibm.com>
10164
10165 * config/rs6000/rs6000.c (output_cbranch): Don't statically predict
10166 branches if using guessed profile.
10167
10168 2016-01-28 H.J. Lu <hongjiu.lu@intel.com>
10169
10170 * graphite-optimize-isl.c (optimize_isl): Fix dump.
10171
10172 2016-01-28 Richard Henderson <rth@redhat.com>
10173
10174 PR target/69305
10175 * config/aarch64/aarch64-modes.def (CC_Cmode): New
10176 * config/aarch64/aarch64-protos.h: Update.
10177 * config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
10178 (aarch64_select_cc_mode): Add check for use of CC_Cmode.
10179 (aarch64_get_condition_code_1): Handle CC_Cmode.
10180 * config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
10181 (*add<mode>3_compareC_cconly_imm): New.
10182 (*add<mode>3_compareC_cconly): New.
10183 (*add<mode>3_compareC_imm): New.
10184 (add<mode>3_compareC): New.
10185 (add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
10186 to be first. Use aarch64_carry_operation.
10187 (*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
10188 (*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
10189 (*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
10190 (subti3): Use subdi3_compare1.
10191 (*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
10192 (sub<mode>3_compare1): New.
10193 (*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
10194 (*sub<mode>3_carryin): Use aarch64_borrow_operation.
10195 (*subsi3_carryin_uxtw): Likewise.
10196 (*ngc<mode>, *ngcsi_uxtw): Likewise.
10197 (*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
10198 * config/aarch64/iterators.md (DWI): New.
10199 * config/aarch64/predicates.md (aarch64_carry_operation): New.
10200 (aarch64_borrow_operation): New.
10201
10202 2016-01-28 Abderrazek Zaafrani <a.zaafrani@samsung.com>
10203
10204 * graphite-optimize-isl.c (optimize_isl): Print a different debug
10205 message when isl does not return a valid schedule.
10206
10207 2016-01-28 Sebastian Pop <s.pop@samsung.com>
10208
10209 * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
10210 Remove comments from class declarations: they are already in the code
10211 close by the defs.
10212
10213 2016-01-28 Sebastian Pop <s.pop@samsung.com>
10214
10215 * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
10216 codegen_error_p.
10217 (ternary_op_to_tree): Same.
10218 (unary_op_to_tree): Same.
10219 (nary_op_to_tree): Same.
10220 (gcc_expression_from_isl_expr_op): Same.
10221 (gcc_expression_from_isl_expression): Same.
10222 (graphite_create_new_loop): Same.
10223 (graphite_create_new_loop_guard): Same.
10224 (build_iv_mapping): Same.
10225 (graphite_create_new_guard): Same.
10226 (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same.
10227 (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same.
10228
10229 2016-01-28 Sebastian Pop <s.pop@samsung.com>
10230
10231 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
10232 instead of setting codegen_error to fail codegen.
10233
10234 2016-01-28 Jason Merrill <jason@redhat.com>
10235
10236 * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
10237
10238 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
10239
10240 * config/aarch64/aarch64.c (aarch64_if_then_else_costs):
10241 Remove CONST_INT_P check in CCMP cost calculation.
10242
10243 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
10244
10245 * config/aarch64/aarch64.c (generic_vector_cost):
10246 Set vec_permute_cost.
10247 (cortexa57_vector_cost): Likewise.
10248 (exynosm1_vector_cost): Likewise.
10249 (xgene1_vector_cost): Likewise.
10250 (aarch64_builtin_vectorization_cost): Use vec_permute_cost.
10251 * config/aarch64/aarch64-protos.h (cpu_vector_cost):
10252 Add vec_permute_cost entry.
10253
10254 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
10255
10256 * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
10257 immediate as %1.
10258 (add<mode>3_compare0): Likewise.
10259 (addsi3_compare0_uxtw): Likewise.
10260 (add<mode>3nr_compare0): Likewise.
10261 (compare_neg<mode>): Likewise.
10262 (<optab><mode>3): Likewise.
10263
10264 2016-01-28 Ilya Enkovich <enkovich.gnu@gmail.com>
10265
10266 * tree-vect-stmts.c (vectorizable_comparison): Add
10267 NULL check for vectype.
10268
10269 2016-01-28 Richard Biener <rguenther@suse.de>
10270
10271 PR tree-optimization/69466
10272 * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
10273 Account for PHIs we couldn't duplicate.
10274
10275 2016-01-28 Martin Liska <mliska@suse.cz>
10276
10277 PR pch/68758
10278 * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
10279 instead of ENABLE_VALGRIND_CHECKING.
10280
10281 2016-01-27 Richard Henderson <rth@redhat.com>
10282
10283 PR rtl-opt/69447
10284 * lra-remat.c (subreg_regs): New.
10285 (dump_candidates_and_remat_bb_data): Dump it.
10286 (operand_to_remat): Reject if operand in subreg_regs.
10287 (set_bb_regs): Collect subreg_regs.
10288 (lra_remat): Init and free subreg_regs. Compute
10289 calculate_local_reg_remat_bb_data before create_cands.
10290
10291 2016-01-27 H.J. Lu <hongjiu.lu@intel.com>
10292
10293 PR target/68986
10294 * config/i386/i386.c (ix86_update_stack_boundary): Don't
10295 change stack_alignment_needed for __tls_get_addr call.
10296
10297 2016-01-27 Segher Boessenkool <segher@kernel.crashing.org>
10298
10299 * config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
10300
10301 2016-01-27 Jeff Law <law@redhat.com>
10302
10303 PR tree-optimization/68398
10304 PR tree-optimization/69196
10305 * params.def (PARAM_FSM_SCALE_PATH_STMTS): New parameter.
10306 (PARAM_FSM_SCALE_PATH_BLOCKS): Likewise.
10307 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
10308 Only count PHIs in the last block in the path. The others will
10309 const/copy propagate away. Add heuristic to allow more irreducible
10310 subloops to be created when it is likely profitable to do so.
10311
10312 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
10313 Fix typo in comment. Use gsi_after_labels and remove the GIMPLE_LABEL
10314 check from within the loop. Use gsi_next_nondebug rather than gsi_next.
10315
10316 2016-01-27 Jakub Jelinek <jakub@redhat.com>
10317
10318 PR lto/69254
10319 * sanitizer.def: Add BEGIN_SANITIZER_BUILTINS and
10320 END_SANITIZER_BUILTINS markers using DEF_BUILTIN_STUB.
10321 * asan.c (DEF_BUILTIN_STUB): Temporarily define.
10322 * tree-streamer-in.c: Include asan.h.
10323 (streamer_get_builtin_tree): For builtins in sanitizer
10324 range call initialize_sanitizer_builtins and retry.
10325
10326 2016-01-27 Ian Lance Taylor <iant@google.com>
10327
10328 * common.opt (fkeep-gc-roots-live): New undocumented option.
10329 * tree-ssa-loop-ivopts.c (add_candidate_1): If
10330 -fkeep-gc-roots-live, skip pointers.
10331 (add_iv_candidate_for_biv): Handle add_candidate_1 returning
10332 NULL.
10333
10334 2016-01-27 Uros Bizjak <ubizjak@gmail.com>
10335
10336 PR target/69512
10337 * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
10338 (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.
10339
10340 2016-01-27 Thomas Klausner <wiz@NetBSD.org>
10341
10342 PR target/68380
10343 * configure.ac: NetBSD provides SSP in its C library.
10344 * configure: Updated.
10345
10346 2016-01-27 Richard Biener <rguenther@suse.de>
10347
10348 PR tree-optimization/69166
10349 * tree-vect-loop.c (vect_is_simple_reduction): Always check
10350 reduction code for commutativity / associativity.
10351
10352 2016-01-27 Martin Jambor <mjambor@suse.cz>
10353
10354 PR tree-optimization/69355
10355 * tree-sra.c (analyze_access_subtree): Correct hole detection when
10356 total_scalarization fails.
10357
10358 2016-01-27 David Edelsohn <dje.gcc@gmail.com>
10359
10360 * config/rs6000/driver-rs6000.c (detect_processor_aix): Add
10361 power9.
10362
10363 2016-01-27 Christian Bruel <christian.bruel@st.com>
10364
10365 PR target/69245
10366 * config/arm/arm-c.c (arm_pragma_target_parse): Add comments.
10367 Move arm_reset_previous_fndecl and set_target_option_current_node in
10368 the conditional part. Call save_restore_target_globals.
10369 * config/arm/arm.c (arm_set_current_function):
10370 Refactor to better support #pragma target and attribute mix.
10371 Call save_restore_target_globals.
10372 * config/arm/arm-protos.h (save_restore_target_globals): New function.
10373
10374 2016-01-27 Martin Liska <mliska@suse.cz>
10375
10376 * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
10377 reference for an HSA kernel and its host function.
10378
10379 2016-01-27 Jakub Jelinek <jakub@redhat.com>
10380
10381 PR tree-optimization/69399
10382 * wide-int.h (wi::lrshift): For larger precisions, only
10383 use fast path if shift is known to be < HOST_BITS_PER_WIDE_INT.
10384
10385 2016-01-27 Claudiu Zissulescu <claziss@synopsys.com>
10386
10387 * config/arc/predicates.md (proper_comparison_operator): Reject
10388 constant-constant comparison.
10389
10390 2016-01-26 Tom de Vries <tom@codesourcery.com>
10391
10392 PR tree-optimization/69110
10393 * tree-data-ref.c (initialize_data_dependence_relation): Handle
10394 DR_NUM_DIMENSIONS == 0.
10395
10396 2016-01-26 Abderrazek Zaafrani <a.zaafrani@samsung.com>
10397 Sebastian Pop <s.pop@samsung.com>
10398
10399 * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Handle
10400 isl_ast_op_cond and isl_ast_op_select.
10401 (gcc_expression_from_isl_expr_op): Same.
10402
10403 2016-01-26 Jason Merrill <jason@redhat.com>
10404
10405 PR c++/68782
10406 * tree.c (recompute_constructor_flags): Split out from
10407 build_constructor.
10408 (verify_constructor_flags): New.
10409 * tree.h: Declare them.
10410
10411 2016-01-26 Iain Buclaw <ibuclaw@gdcproject.org>
10412
10413 PR rtl-optimization/69217
10414 * var-tracking.c (tracked_record_parameter_p): Don't segfault if there
10415 are no TYPE_FIELDS set for the record type.
10416
10417 2016-01-26 Jakub Jelinek <jakub@redhat.com>
10418
10419 PR target/68662
10420 * config/rs6000/rs6000.c (rs6000_option_override_internal): Initialize
10421 toc_label_name unconditionally.
10422 (rs6000_emit_load_toc_table): Call ggc_strdup on toc_label_name for
10423 SYMBOL_REF string. Use toc_label_name instead of constructing
10424 LCTOC1.
10425 (rs6000_elf_declare_function_name): Use toc_label_name instead of
10426 constructing LCTOC1.
10427
10428 2016-01-26 Martin Sebor <msebor@redhat.com>
10429
10430 PR other/69477
10431 * doc/extend.texi (Common Type Attributes): Move text that talks about
10432 attribute packed from attribute aligned to the section discussing
10433 the former attribute for clarity.
10434
10435 2016-01-26 Richard Henderson <rth@redhat.com>
10436
10437 PR middle-end/60908
10438 * trans-mem.c (tm_region_init): Mark entry block as visited.
10439
10440 2016-01-26 David Malcolm <dmalcolm@redhat.com>
10441
10442 PR other/69006
10443 * diagnostic-show-locus.c (layout::print_source_line): Replace
10444 call to pp_newline with call to layout::print_newline.
10445 (layout::print_annotation_line): Likewise.
10446 (layout::move_to_column): Likewise.
10447 (layout::print_any_fixits): After printing any fixits, print a
10448 trailing newline, if necessary.
10449 (layout::print_newline): New method, resetting any colorization
10450 before a newline.
10451 (diagnostic_show_locus): Move the pp_newline to before the
10452 early bailout. Remove dummy block enclosing the layout instance.
10453 * diagnostic.c (default_diagnostic_finalizer): Replace invocation
10454 of pp_newline_and_flush with pp_flush.
10455 (diagnostic_append_note): Delete use of pp_newline.
10456 (diagnostic_append_note_at_rich_loc): Delete.
10457 * diagnostic.h (diagnostic_append_note_at_rich_loc): Delete.
10458 * pretty-print.h (output_buffer_append_r): Reset buff->line_length
10459 when newline characters are added to the buffer.
10460
10461 2016-01-26 Michael Matz <matz@suse.de>
10462
10463 * configure.ac (ac_cv_std_swap_in_utility): New test.
10464 * system.h (<algorithm>): Check HAVE_SWAP_IN_UTILITY as well.
10465 * configure: Regenerate.
10466 * config.in: Regenerate.
10467
10468 2016-01-26 Claudiu Zissulescu <claziss@synopsys.com>
10469
10470 * config/arc/arc.md (cstoresi4): Force operand into register.
10471 (arcset<code>): Fix predicate.
10472 (arcsetltu): Likewise.
10473 (arcsetgeu): Likewise.
10474 (arcsethi): Likewise.
10475 (arcsetls): Likewise.
10476
10477 2016-01-26 Jakub Jelinek <jakub@redhat.com>
10478
10479 PR tree-optimization/69483
10480 * gimple-fold.c (canonicalize_constructor_val): Return NULL
10481 if base has error_mark_node type.
10482
10483 2016-01-26 Christophe Lyon <christophe.lyon@linaro.org>
10484
10485 PR target/68620
10486 * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
10487 * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
10488 New helper macros.
10489 (vget_lane_f16): Handle big-endian.
10490 (vgetq_lane_f16): Likewise.
10491 (vset_lane_f16): Likewise.
10492 (vsetq_lane_f16): Likewise.
10493 * config/arm/iterators.md (VQXMOV): Add V8HF.
10494 (VDQ): Add V4HF and V8HF.
10495 (V_reg): Handle V4HF and V8HF.
10496 (Is_float_mode): Likewise.
10497 * config/arm/neon.md (movv4hf, movv8hf, neon_vdup_nv4hf,
10498 neon_vdup_nv8hf): New patterns.
10499 (vec_set<mode>_internal, vec_extract<mode>, neon_vld1_dup<mode>):
10500 Use VD_LANE iterator.
10501 (neon_vld1_dup<mode>): Use VQ2 iterator.
10502
10503 2016-01-26 Nathan Sidwell <nathan@acm.org>
10504
10505 * omp-low.h (oacc_fn_attrib_kernels_p): Declare.
10506 (set_oacc_fn_attrib): Add IS_KERNEL arg.
10507 * omp-low.c (set_oacc_fn_attrib): Add IS_KERNEL arg.
10508 (oacc_fn_attrib_kernels_p, oacc_fn_attrib_level): New.
10509 (expand_omp_target): Pass is_kernel to set_oacc_fn_attrib.
10510 (oacc_validate_dims): Add LEVEL arg, don't return level.
10511 (new_oacc_loop_routine): Use oacc_fn_attrib_level, not
10512 oacc_validate_dims.
10513 (execute_oacc_device_lower): Adjust, add more dump output.
10514 * tree-ssa-loop.c (gate_oacc_kernels): Use
10515 oacc_fn_attrib_kernels_p.
10516 * tree-parloops.c (create_parallel_loop): Adjust
10517 set_oacc_fn_attrib call.
10518
10519 2016-01-26 Jakub Jelinek <jakub@redhat.com>
10520
10521 PR lto/69254
10522 * lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
10523 (append_compiler_options): Handle -fcilkplus.
10524 (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.
10525
10526 2016-01-26 Nick Clifton <nickc@redhat.com>
10527
10528 PR target/66655
10529 * config/i386/winnt.c (i386_pe_binds_local_p): If a function has
10530 been marked as DECL_ONE_ONLY but we do not the means to make it
10531 so, then do not allow it to bind locally.
10532
10533 2016-01-26 Jakub Jelinek <jakub@redhat.com>
10534
10535 PR lto/69254
10536 * opts.h (parse_sanitizer_options): New prototype.
10537 * opts.c (sanitizer_opts): New array.
10538 (parse_sanitizer_options): New function.
10539 (common_handle_option): Use parse_sanitizer_options.
10540
10541 2016-01-26 H.J. Lu <hongjiu.lu@intel.com>
10542
10543 PR target/68986
10544 * config/i386/i386.c (ix86_compute_frame_layout): Move stack
10545 alignment adjustment to ...
10546 (ix86_update_stack_boundary): Here. Don't over-align stack for
10547 __tls_get_addr.
10548 (ix86_finalize_stack_realign_flags): Use stack_alignment_needed
10549 if __tls_get_addr is called.
10550
10551 2016-01-26 Christian Bruel <christian.bruel@st.com>
10552
10553 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.
10554
10555 2016-01-26 Eric Botcazou <ebotcazou@adacore.com>
10556
10557 * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.
10558
10559 2016-01-26 Richard Biener <rguenther@suse.de>
10560
10561 PR middle-end/69467
10562 * match.pd: Guard X * CST CMP 0 pattern with single_use.
10563
10564 2016-01-26 Richard Biener <rguenther@suse.de>
10565
10566 PR tree-optimization/69452
10567 * tree-ssa-loop-im.c (move_computations_dom_walker): Remove.
10568 (move_computations_dom_walker::before_dom_children): Rename
10569 to ...
10570 (move_computations_worker): This.
10571 (move_computations): Perform an RPO rather than a DOM walk.
10572
10573 2016-01-26 Jakub Jelinek <jakub@redhat.com>
10574
10575 PR target/69442
10576 * combine.c (combine_instructions): For REG_EQUAL note with
10577 SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST
10578 to the underlying register.
10579 * doc/rtl.texi (REG_EQUAL): Document the behavior of
10580 REG_EQUAL/REG_EQUIV notes if SET_DEST is ZERO_EXTRACT.
10581
10582 2016-01-26 Roger Ferrer Ibáñez <rofirrim@gmail.com>
10583
10584 PR target/67896
10585 * config/aarch64/aarch64-builtins.c
10586 (aarch64_init_simd_builtin_types): Do not set structural
10587 equality to __Poly{8,16,64,128}_t types.
10588
10589 2016-01-26 Richard Sandiford <richard.sandiford@arm.com>
10590
10591 PR tree-optimization/69400
10592 * wide-int.cc (wi_pack): Take the precision as argument and
10593 perform canonicalization here rather than in the callers.
10594 Use the main loop to handle all full-width HWIs. Add a
10595 zero HWI if in_len isn't a full result.
10596 (wi::divmod_internal): Update accordingly.
10597 (wi::mul_internal): Likewise. Simplify.
10598
10599 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
10600 Sebastian Pop <s.pop@samsung.com>
10601
10602 * graphite-poly.c (apply_poly_transforms): Simplify.
10603 (print_isl_set): Use more readable format: ISL_YAML_STYLE_BLOCK.
10604 (print_isl_map): Same.
10605 (print_isl_union_map): Same.
10606 (print_isl_schedule): New.
10607 (debug_isl_schedule): New.
10608 * graphite-dependences.c (scop_get_reads): Do not call
10609 isl_union_map_add_map that is undocumented isl functionality.
10610 (scop_get_must_writes): Same.
10611 (scop_get_may_writes): Same.
10612 (scop_get_original_schedule): Remove.
10613 (scop_get_dependences): Do not call isl_union_map_compute_flow that
10614 is deprecated in isl 0.15. Instead, use isl_union_access_* interface.
10615 (compute_deps): Remove.
10616 * graphite-isl-ast-to-gimple.c (print_schedule_ast): New.
10617 (debug_schedule_ast): New.
10618 (translate_isl_ast_to_gimple::scop_to_isl_ast): Call
10619 set_separate_option.
10620 (graphite_regenerate_ast_isl): Add dump.
10621 (translate_isl_ast_to_gimple::scop_to_isl_ast): Generate code
10622 from scop->transformed_schedule.
10623 (graphite_regenerate_ast_isl): Add more dump.
10624 * graphite-optimize-isl.c (optimize_isl): Set
10625 scop->transformed_schedule. Check whether schedules are equal.
10626 (apply_poly_transforms): Move here.
10627 * graphite-poly.c (apply_poly_transforms): ... from here.
10628 (free_poly_bb): Static.
10629 (free_scop): Static.
10630 (pbb_number_of_iterations_at_time): Remove.
10631 (print_isl_ast): New.
10632 (debug_isl_ast): New.
10633 (debug_scop_pbb): New.
10634 * graphite-scop-detection.c (print_edge): Move.
10635 (print_sese): Move.
10636 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
10637 (build_scop_scattering): Remove.
10638 (create_pw_aff_from_tree): Assert instead of bailing out.
10639 (add_condition_to_pbb): Remove unused code, do not fail.
10640 (add_conditions_to_domain): Same.
10641 (add_conditions_to_constraints): Remove.
10642 (build_scop_context): New.
10643 (add_iter_domain_dimension): New.
10644 (build_iteration_domains): Initialize pbb->iterators.
10645 Call add_conditions_to_domain.
10646 (nested_in): New.
10647 (loop_at): New.
10648 (index_outermost_in_loop): New.
10649 (index_pbb_in_loop): New.
10650 (outermost_pbb_in): New.
10651 (add_in_sequence): New.
10652 (add_outer_projection): New.
10653 (outer_projection_mupa): New.
10654 (add_loop_schedule): New.
10655 (build_schedule_pbb): New.
10656 (build_schedule_loop): New.
10657 (embed_in_surrounding_loops): New.
10658 (build_schedule_loop_nest): New.
10659 (build_original_schedule): New.
10660 (build_poly_scop): Call build_original_schedule.
10661 * graphite.h: Declare print_isl_schedule and debug_isl_schedule.
10662 (free_poly_dr): Remove.
10663 (struct poly_bb): Add iterators. Remove schedule, transformed, saved.
10664 (free_poly_bb): Remove.
10665 (debug_loop_vec): Remove.
10666 (print_isl_ast): Declare.
10667 (debug_isl_ast): Declare.
10668 (scop_do_interchange): Remove.
10669 (scop_do_strip_mine): Remove.
10670 (scop_do_block): Remove.
10671 (flatten_all_loops): Remove.
10672 (optimize_isl): Remove.
10673 (pbb_number_of_iterations_at_time): Remove.
10674 (debug_scop_pbb): Declare.
10675 (print_schedule_ast): Declare.
10676 (debug_schedule_ast): Declare.
10677 (struct scop): Remove schedule. Add original_schedule,
10678 transformed_schedule.
10679 (free_gimple_poly_bb): Remove.
10680 (print_generated_program): Remove.
10681 (debug_generated_program): Remove.
10682 (unify_scattering_dimensions): Remove.
10683 * sese.c (print_edge): ... here.
10684 (print_sese): ... here.
10685 (debug_edge): ... here.
10686 (debug_sese): ... here.
10687 * sese.h (print_edge): Declare.
10688 (print_sese): Declare.
10689 (dump_edge): Declare.
10690 (dump_sese): Declare.
10691
10692 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
10693 Sebastian Pop <s.pop@samsung.com>
10694
10695 * Makefile.in: Set ISLVER in site.exp.
10696
10697 2016-01-25 Jakub Jelinek <jakub@redhat.com>
10698
10699 * omp-low.c (lower_omp_target) <case USE_DEVICE_PTR>: Set
10700 DECL_VALUE_EXPR of new_var even for the non-array case. Look
10701 through DECL_VALUE_EXPR for expansion.
10702
10703 2016-01-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
10704
10705 * config/mips/mips.c (mips_compute_frame_info): Skip re-computing
10706 the frame info after reload completed.
10707
10708 2016-01-25 Jeff Law <law@redhat.com>
10709
10710 PR tree-optimization/69196
10711 PR tree-optimization/68398
10712 * tree-ssa-threadupdate.h (enum bb_dom_status): Moved here from
10713 tree-ssa-threadupdate.c.
10714 (determine_bb_domination_status): Prototype
10715 * tree-ssa-threadupdate.c (enum bb_dom_status): Remove
10716 (determine_bb_domination_status): No longer static.
10717 (valid_jump_thread_path): Remove code to detect characteristics
10718 of the jump thread path not associated with correctness.
10719 * tree-ssa-threadbackward.c (fsm_find_control_statment_thread_paths):
10720 Correct test for thread path length. Count PHIs for real operands as
10721 statements that need to be copied. Do not count ASSERT_EXPRs.
10722 Look at all the blocks in the thread path. Compute and selectively
10723 filter thread paths based on threading through the latch, threading
10724 a multiway branch or crossing a multiway branch.
10725
10726 2016-01-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10727
10728 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): Add
10729 decl with __attribute__ ((unused)) annotation.
10730
10731 2016-01-25 Ilya Enkovich <enkovich.gnu@gmail.com>
10732
10733 PR target/69421
10734 * tree-vect-stmts.c (vectorizable_condition): Check vectype
10735 of operands is compatible with a statement vectype.
10736
10737 2016-01-25 Eric Botcazou <ebotcazou@adacore.com>
10738
10739 * doc/extend.texi (scalar_storage_order type attribute): Fix typo and
10740 improve wording for mixed storage order support.
10741
10742 2016-01-25 Bilyan Borisov <bilyan.borisov@arm.com>
10743
10744 * config/aarch64/arm_neon.h (vcvt_s64_f64): New intrinsic.
10745 (vcvt_u64_f64): Likewise.
10746 (vcvta_s64_f64): Likewise.
10747 (vcvta_u64_f64): Likewise.
10748 (vcvtm_s64_f64): Likewise.
10749 (vcvtm_u64_f64): Likewise.
10750 (vcvtn_s64_f64): Likewise.
10751 (vcvtn_u64_f64): Likewise.
10752 (vcvtp_s64_f64): Likewise.
10753 (vcvtp_u64_f64): Likewise.
10754
10755 2016-01-25 Claudiu Zissulescu <claziss@synopsys.com>
10756
10757 * config/arc/arc.c (TARGET_DWARF_REGISTER_SPAN): Define.
10758 (arc_init): Check validity mll64 option.
10759 (arc_save_restore): Use double load/store instruction.
10760 (arc_expand_movmem): Likewise.
10761 (arc_split_move): Don't split if we have double load/store
10762 instructions. Returns a boolean.
10763 (arc_process_double_reg_moves): Change function to return boolean
10764 instead of a sequence of instructions.
10765 (arc_dwarf_register_span): New function.
10766 * config/arc/arc-protos.h (arc_split_move): Change prototype.
10767 * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __ARC_LL64__.
10768 * config/arc/arc.md (*movdi_insn): Emit ldd/std instructions.
10769 (*movdf_insn): Likewise.
10770 * config/arc/arc.opt (mll64): New option.
10771 * config/arc/predicates.md (even_register_operand): New predicate.
10772 * doc/invoke.texi (ARC Options): Add mll64 documentation.
10773
10774 2016-01-25 Richard Biener <rguenther@suse.de>
10775
10776 PR lto/69393
10777 * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
10778 * tree-streamer-out.c (pack_ts_base_value_fields): Stream
10779 DECL_NAMELESS.
10780 * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
10781
10782 2016-01-25 Richard Biener <rguenther@suse.de>
10783
10784 PR tree-optimization/69376
10785 * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
10786 flag.
10787 (VN_INFO_ANTI_RANGE_P): New inline.
10788 (VN_INFO_RANGE_TYPE): Likewise.
10789 * tree-ssa-sccvn.c (set_ssa_val_to): Also record and copy
10790 SSA_NAME_ANTI_RANGE_P.
10791 (free_scc_vn): Restore SSA_NAME_ANTI_RANGE_P.
10792 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
10793 Properly query VN_INFO_RANGE_TYPE.
10794
10795 2016-01-25 Nick Clifton <nickc@redhat.com>
10796
10797 PR target/66655
10798 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.
10799
10800 2016-01-23 Tom de Vries <tom@codesourcery.com>
10801
10802 PR tree-optimization/69426
10803 * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
10804 removed clobber.
10805
10806 2016-01-23 Jakub Jelinek <jakub@redhat.com>
10807
10808 * tree-ssanames.c (release_free_names_and_compact_live_names): Replace
10809 "the the" with "the" in the comments.
10810 * ipa-devirt.c (build_type_inheritance_graph,
10811 update_type_inheritance_graph): Likewise.
10812 * tree.c (build_function_type_list_1): Likewise.
10813 * cfgloopmanip.c (scale_loop_profile): Likewise.
10814 * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Likewise.
10815 * gimple-ssa-split-paths.c
10816 (find_block_to_duplicate_for_splitting_paths): Likewise.
10817 * tree-sra.c (init_subtree_with_zero, clobber_subtree): Likewise.
10818 * expr.c (convert_move): Likewise.
10819 * var-tracking.c (vt_stack_adjustments): Likewise.
10820 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
10821 * tree-vrp.c (test_for_singularity): Likewise.
10822
10823 * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
10824 directly instead of building a temporary tree.
10825
10826 PR bootstrap/69434
10827 * genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
10828 remove <algorithm> include.
10829
10830 2016-01-22 Jakub Jelinek <jakub@redhat.com>
10831
10832 PR target/69432
10833 * config/i386/i386.c: Include dojump.h.
10834 (expand_small_movmem_or_setmem,
10835 expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Spelling
10836 fixes.
10837 (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
10838 if dynamic_check != -1.
10839
10840 2016-01-21 Jeff Law <law@redhat.com>
10841
10842 PR middle-end/69347
10843 * tree-ssa-dom.c (back_propagate_equivalences): Factored out of
10844 record_temporary_equivalences. Rewritten to avoid unnecessary calls
10845 into dominated_by_p.
10846 (cprop_into_successor_phis): Avoid unnecessary tests.
10847
10848 2016-01-22 Richard Henderson <rth@redhat.com>
10849
10850 PR target/69416
10851 * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
10852 (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
10853
10854 2016-01-22 Michael Matz <matz@suse.de>
10855
10856 * system.h (string, algorithm): Include only conditionally.
10857 (new): Include always under C++.
10858 * bb-reorder.c (toplevel): Define INCLUDE_ALGORITHM.
10859 * final.c (toplevel): Ditto.
10860 * ipa-chkp.c (toplevel): Define INCLUDE_STRING.
10861 * genconditions.c (write_header): Make gencondmd.c define
10862 INCLUDE_STRING.
10863 * mem-stats.h (mem_usage::print_dash_line): Don't use std::string.
10864
10865 * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
10866 * common/config/aarch64/aarch64-common.c (toplevel): Ditto.
10867
10868 2016-01-22 Christian Bruel <christian.bruel@st.com>
10869
10870 PR target/68674
10871 * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.
10872
10873 2016-01-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10874
10875 PR target/69403
10876 * config/arm/thumb2.md (*thumb2_ior_scc_strict_it): Convert to
10877 define_insn_and_split. Ensure operands[1] and operands[0] do not
10878 get assigned the same register.
10879
10880 2016-01-22 Kugan Vivekanandarajah <kuganv@linaro.org>
10881
10882 * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.
10883
10884 2016-01-22 Christian Bruel <christian.bruel@st.com>
10885
10886 * config/arm/arm-c.c (arm_pragma_target_parse):
10887 Remove warn_builtin_macro_redefined overwrite.
10888
10889 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
10890
10891 * ipa-inline.c (can_inline_edge_p): Back out overzealous check on
10892 flag_non_call_exceptions compatibility.
10893
10894 2016-01-22 Jakub Jelinek <jakub@redhat.com>
10895
10896 PR debug/66668
10897 * dwarf2out.c (add_child_die_after): New function.
10898 (dwarf_qual_info_t): New type.
10899 (dwarf_qual_info): New variable.
10900 (qualified_die_p): New function.
10901 (modified_type_die): For -fdebug-types-section, ensure
10902 canonical order of qualifiers. Put qualified DIEs adjacent
10903 to the corresponding non-qualified type DIE and search there
10904 for existing qualified DIEs.
10905
10906 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
10907
10908 * doc/extend.texi (scalar_storage_order type attribute): Document
10909 restriction on type punning and aliasing, and remove future tense.
10910
10911 2016-01-21 Roman Zhuykov <zhroma@ispras.ru>
10912
10913 PR target/69252
10914 * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
10915 first stage.
10916
10917 2016-01-21 Jeff Law <law@redhat.com>
10918
10919 PR middle-end/69347
10920 * tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid
10921 useless call to record_temporary_equivalences.
10922 * tree-ssa-threadbackward.c (find_jump_threads_backwards): Just
10923 allocate 10 slots in the bb_path vector and let it grow as needed.
10924 (fsm_find_control_statement_thread_paths): Similarly for the next_path
10925 vector.
10926
10927 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
10928
10929 * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
10930 Detangle.
10931 * configure: Regenerate.
10932
10933 2016-01-21 Pat Haugen <pthaugen@us.ibm.com>
10934
10935 * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
10936 * config/rs6000/driver-rs6000.c (struct asm_names): Likewise.
10937
10938 2016-01-21 Bernd Schmidt <bschmidt@redhat.com>
10939
10940 PR middle-end/66178
10941 * expr.c (expand_expr_real_2) [PLUS_EXPR, MINUS_EXPR]: Don't
10942 drop EXPAND_INITIALIZER.
10943 * rtl.h (contains_symbolic_reference_p): Declare.
10944 * rtlanal.c (contains_symbolic_reference_p): New function.
10945 * simplify-rtx.c (simplify_binary_operation_1): Don't turn
10946 a subtraction into a NOT if symbolic constants are involved.
10947
10948 2016-01-21 Anton Blanchard <anton@samba.org>
10949 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10950
10951 PR target/63354
10952 * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
10953 #define.
10954 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
10955 function.
10956
10957 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
10958
10959 * config/microblaze/microblaze.c
10960 (get_branch_target): New.
10961 (insert_wic_for_ilb_runout): New.
10962 (insert_wic): New.
10963 (microblaze_machine_dependent_reorg): New.
10964 (TARGET_MACHINE_DEPENDENT_REORG): Define macro.
10965 * config/microblaze/microblaze.md
10966 (UNSPEC_IPREFETCH): Define.
10967 (iprefetch): New pattern
10968 * config/microblaze/microblaze.opt
10969 (mxl-prefetch): New flag.
10970
10971 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
10972
10973 * config/microblaze/microblaze.h
10974 (FIXED_REGISTERS): Update in macro.
10975 (CALL_USED_REGISTERS): Update in macro.
10976
10977 2016-01-21 Yuri Rumyantsev <ysrumyan@gmail.com>
10978
10979 PR rtl-optimization/68920
10980 * ifcvt.c (cond_move_process_if_block): Limit number of conditional
10981 moves.
10982
10983 2016-01-21 Vladimir Makarov <vmakarov@redhat.com>
10984
10985 PR rtl-optimization/68990
10986 * lra-coalesce.c (lra_coalesce): Invalidate value for the result
10987 pseudo instead of inheritance ones.
10988
10989 2016-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
10990 Nick Clifton <nickc@redhat.com>
10991
10992 PR target/69129
10993 PR target/69012
10994 * config/mips/mips.c (mips_compute_frame_info): Initialise
10995 args_size and hard_frame_pointer_offset fields of the frame
10996 structure before calling mips_global_pointer.
10997
10998 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
10999
11000 * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
11001 label reference.
11002 * configure: Regenerate.
11003
11004 2016-01-21 Richard Biener <rguenther@suse.de>
11005
11006 * graphite-optimize-isl.c (get_schedule_map): Fix typo.
11007
11008 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
11009
11010 * config/s390/s390.c (s390_asm_declare_function_size): Add code
11011 to actually emit the .size directive.
11012
11013 2016-01-21 Stefan Sørensen <stefan.sorensen@spectralink.com>
11014 Jakub Jelinek <jakub@redhat.com>
11015
11016 PR target/69187
11017 PR target/65624
11018 * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
11019 args array size by one to avoid buffer overflow.
11020
11021 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
11022
11023 * config/s390/s390.md (pool_section_start): Use switch_to_section
11024 to select proper read-only data section instead of hardcoding
11025 .rodata.
11026 (pool_section_end): Use switch_to_section to match the above.
11027
11028 2016-01-21 Richard Biener <rguenther@suse.de>
11029
11030 PR tree-optimization/69378
11031 * tree-ssa-sccvn.c (dominated_by_p_w_unex): New function.
11032 (set_ssa_val_to): Use it for dominance checks taking into
11033 account not executable edges.
11034
11035 2016-01-21 Jakub Jelinek <jakub@redhat.com>
11036
11037 PR c++/69355
11038 * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
11039 for bitsize instead of GET_MODE_PRECISION (mode).
11040
11041 2016-01-20 Martin Sebor <msebor@redhat.com>
11042
11043 PR c/52291
11044 * extend.texi (__sync Builtins): Clarify the semantics of
11045 __sync_fetch_and_OP built-ins on pointers.
11046 (__atomic Builtins): Same.
11047
11048 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11049 Sebastian Pop <s.pop@samsung.com>
11050
11051 * graphite-isl-ast-to-gimple.c (enum phi_node_kind): New.
11052 (class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool.
11053 (is_valid_rename): Same.
11054 (translate_isl_ast_to_gimple::get_rename): Same.
11055 (translate_isl_ast_to_gimple::rename_all_uses): Same.
11056 (translate_isl_ast_to_gimple::rename_uses): Same.
11057 (get_new_name): Check for close_phi nodes.
11058 (copy_loop_phi_args): Use phi_node_kind.
11059 (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
11060 (translate_isl_ast_to_gimple::copy_cond_phi_args): Same.
11061
11062 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11063 Sebastian Pop <s.pop@samsung.com>
11064
11065 Revert commit r229783.
11066 * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
11067 Remove use of parameter_rename_map.
11068 (copy_def): Remove.
11069 (copy_internal_parameters): Remove.
11070 (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
11071 * sese.c (new_sese_info): Do not initialize parameter_rename_map.
11072 (free_sese_info): Do not free parameter_rename_map.
11073 (set_rename): Do not use parameter_rename_map.
11074 (rename_uses): Update call to set_rename.
11075 (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
11076 * sese.h (parameter_rename_map_t): Remove.
11077 (struct sese_info_t): Remove field parameter_rename_map.
11078
11079 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11080 Sebastian Pop <s.pop@samsung.com>
11081
11082 * graphite-isl-ast-to-gimple.c: Fix comment.
11083 * graphite-scop-detection.c (defined_in_loop_p): New.
11084 (canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
11085 names defined in loop.
11086
11087 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11088 Sebastian Pop <s.pop@samsung.com>
11089
11090 * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
11091 Discard unstructured if-then-else regions.
11092
11093 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11094 Sebastian Pop <s.pop@samsung.com>
11095
11096 * graphite-sese-to-poly.c (set_scop_parameter_dim): Remove.
11097 (cleanup_loop_iter_dom): Remove.
11098 (build_loop_iteration_domains): Remove.
11099 (build_scop_context): Remove.
11100 (build_scop_iteration_domain): Remove.
11101 (add_loop_constraints): New.
11102 (build_iteration_domains): New.
11103 (build_poly_scop): Call build_iteration_domains.
11104
11105 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11106 Sebastian Pop <s.pop@samsung.com>
11107
11108 * graphite-scop-detection.c
11109 (scop_detection::harmful_loop_in_region): Free dom and loops.
11110 (scop_detection::loop_body_is_valid_scop): Free bbs.
11111
11112 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11113 Sebastian Pop <s.pop@samsung.com>
11114
11115 * graphite-scop-detection.c (record_loop_in_sese): New.
11116 (gather_bbs::before_dom_children): Call record_loop_in_sese.
11117 (build_scops): Remove call to build_sese_loop_nests.
11118 * sese.c (sese_record_loop): Remove.
11119 (build_sese_loop_nests): Remove.
11120 (new_sese_info): Remove region->loops.
11121 (free_sese_info): Same.
11122 * sese.h (sese_contains_loop): Same.
11123 (build_sese_loop_nests): Remove.
11124 (sese_contains_loop): Remove.
11125
11126 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11127 Sebastian Pop <s.pop@samsung.com>
11128
11129 * graphite-scop-detection.c (loop_is_valid_scop): Renamed
11130 loop_is_valid_in_scop.
11131 (scop_detection::harmful_stmt_in_region): Renamed
11132 harmful_loop_in_region.
11133 Call loop_is_valid_in_scop.
11134
11135 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11136 Sebastian Pop <s.pop@samsung.com>
11137
11138 * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
11139 isl_ast_node_mark.
11140
11141 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11142 Sebastian Pop <s.pop@samsung.com>
11143
11144 * graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION.
11145 * graphite.h (struct poly_bb): Remove field is_reduction.
11146 (PBB_IS_REDUCTION): Remove.
11147
11148 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11149 Sebastian Pop <s.pop@samsung.com>
11150
11151 * graphite-dependences.c (constrain_domain): Add call to isl_*_coalesce.
11152 (add_pdr_constraints): Same.
11153 (scop_get_reads): Same.
11154 (scop_get_must_writes): Same.
11155 (scop_get_may_writes): Same.
11156 (scop_get_original_schedule): Same.
11157 (extend_schedule): Same.
11158 (apply_schedule_on_deps): Same.
11159 (carries_deps): Same.
11160 (compute_deps): Same.
11161 (scop_get_dependences): Same.
11162 * graphite-isl-ast-to-gimple.c
11163 (translate_isl_ast_to_gimple::generate_isl_schedule): Same.
11164 * graphite-optimize-isl.c (get_schedule_for_band): Same.
11165 (get_schedule_for_band_list): Same.
11166 (get_schedule_map): Same.
11167 (apply_schedule_map_to_scop): Same.
11168 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
11169 (build_loop_iteration_domains): Same.
11170 (add_condition_to_pbb): Same.
11171 (add_param_constraints): Same.
11172 (pdr_add_memory_accesses): Same.
11173 (pdr_add_data_dimensions): Same.
11174
11175 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
11176
11177 * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
11178 requirements.
11179
11180 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
11181
11182 * common.opt (feliminate-dwarf2-dups): Replace references to
11183 "DWARF 2" with just "DWARF".
11184 * config/ia64/ia64.opt (mdwarf2-asm): Likewise.
11185 * doc/extend.texi: Likewise.
11186 * doc/cpp.texi: Likewise.
11187 * doc/invoke.texi: Likewise.
11188 (Option Summary): Add -gdwarf to list of Debugging Options.
11189 (Debugging Options): Document -gdwarf.
11190 * doc/contrib.texi: Spell "DWARF" like that.
11191
11192 2016-01-21 Jakub Jelinek <jakub@redhat.com>
11193
11194 * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
11195 warning. Fix up formatting.
11196
11197 PR middle-end/67653
11198 * gimplify.c (gimplify_asm_expr): Warn if it is too late to
11199 attempt to mark memory input operand addressable and
11200 call prepare_gimple_addressable in that case. Don't adjust
11201 input_location for diagnostics, use error_at instead.
11202
11203 2016-01-20 Peter Bergner <bergner@vnet.ibm.com>
11204
11205 * config/rs6000/ppc-auxv.h: New file.
11206 * config/rs6000/rs6000-builtin.def (cpu_init): Add new builtin.
11207 (cpu_is): Likewise.
11208 (cpu_supports): Likewise.
11209 * config/rs6000/rs6000.c: include "ppc-auxv.h".
11210 (cpu_is_info): New variable.
11211 (cpu_supports_info): Likewise.
11212 (tcb_verification_symbol): Likewise.
11213 (cpu_builtin_p): Likewise.
11214 (cpu_expand_builtin): New function.
11215 (rs6000_expand_ternop_builtin): Add support for CPU builtin functions.
11216 (rs6000_init_builtins): Likewise.
11217 (rs6000_elf_file_end): Emit HWCAP in TCB verification symbol.
11218 * config/rs6000/rs6000.h (TLS_REGNUM): New define.
11219 * configure.ac (gcc_cv_libc_provides_hwcap_in_tcb): New test.
11220 * configure: Regenerate.
11221 * config.in: Likewise.
11222 * doc/extend.texi (PowerPC Built-in Functions): Document
11223 __builtin_cpu_init, __builtin_cpu_is and __builtin_cpu_supports.
11224
11225 2016-01-20 David Edelsohn <dje.gcc@gmail.com>
11226
11227 PR target/68609
11228 * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
11229 domain check.
11230 * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
11231 for V4SFmode.
11232
11233 2016-01-20 Richard Henderson <rth@redhat.com>
11234
11235 PR bootstrap/69343
11236 PR bootstrap/69339
11237 PR tree-opt/68964
11238 Revert:
11239 * tree.c (tm_define_builtin): New.
11240 (find_tm_vector_type): New.
11241 (build_tm_vector_builtins): New.
11242 (build_common_builtin_nodes): Call it.
11243
11244 2016-01-20 Christophe Lyon <christophe.lyon@linaro.org>
11245
11246 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
11247 (arm_fp_ok): Likewise.
11248 (arm_fp): Likewise.
11249 (arm_crypto): Likewise.
11250
11251 2016-01-20 Ilya Enkovich <enkovich.gnu@gmail.com>
11252 Richard Biener <rguenther@suse.de>
11253
11254 PR tree-optimization/69328
11255 * tree-vect-stmts.c (vect_is_simple_cond): Check compared
11256 vectors have same number of elements.
11257 (vectorizable_condition): Fix masked version recognition.
11258
11259 2016-01-20 Richard Biener <rguenther@suse.de>
11260
11261 PR tree-optimization/69345
11262 * tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function.
11263 (VN_INFO_PTR_INFO): Likewise.
11264 * tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to
11265 info when it is equal between non-dominating SSA names.
11266 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
11267 Make sure to look at original SSA infos.
11268
11269 2016-01-20 Jeff Law <law@redhat.com>
11270
11271 PR target/25114
11272 * config/m68k/predicates.md (pow2_m1_operand): New predicate
11273 extracted from ...
11274 (reg_or_pow2_m1_operand): Call pow2_m1_operand.
11275 (pc_or_label_operand): New predicate.
11276 * config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU
11277 tests for small integers that are 2^n - 1.
11278
11279 2016-01-20 Jonathan Wakely <jwakely@redhat.com>
11280
11281 * doc/invoke.texi (Options Summary): Add '.' after @xref.
11282
11283 2016-01-19 Jeff Law <law@redhat.com>
11284
11285 PR middle-end/69347
11286 * tree-ssa-threadbackwards.c
11287 (fsm_find_control_statement_thread_paths): Do not try to lookup
11288 FSM paths for SSA_NAMEs appearing in abnormal PHIs.
11289
11290 2016-01-20 Kugan Vivekanandarajah <kuganv@linaro.org>
11291
11292 * doc/lto.texi: Remove text that says only Gold has linker plugin
11293 support.
11294
11295 2016-01-19 Eric Botcazou <ebotcazou@adacore.com>
11296
11297 * dwarf2out.c (need_endianity_attribute_p): New inline predicate.
11298 (base_type_die): Add REVERSE parameter and attach DW_AT_endianity to
11299 the DIE accordingly.
11300 (modified_type_die): Add REVERSE parameter and pass it recursively,
11301 as well as to base_type_die. Adjust presence check accordingly.
11302 (base_type_for_mode): Adjust call to modified_type_die.
11303 (add_type_attribute): Add REVERSE parameter and pass it to
11304 modified_type_die.
11305 (generic_parameter_die): Adjust call to add_type_attribute.
11306 (add_scalar_info): Likewise.
11307 (add_subscript_info): Likewise.
11308 (gen_array_type_die): Likewise.
11309 (gen_descr_array_type_die): Likewise.
11310 (gen_entry_point_die): Likewise.
11311 (gen_enumeration_type_die): Likewise.
11312 (gen_formal_parameter_die): Likewise.
11313 (gen_subprogram_die): Likewise.
11314 (gen_variable_die ): Likewise.
11315 (gen_const_die): Likewise.
11316 (gen_field_die): Likewise.
11317 (gen_pointer_type_die): Likewise.
11318 (gen_reference_type_die): Likewise.
11319 (gen_ptr_to_mbr_type_die): Likewise.
11320 (gen_inheritance_die): Likewise.
11321 (gen_subroutine_type_die): Likewise.
11322 (gen_typedef_die): Likewise.
11323 (force_type_die): Adjust call to modified_type_die.
11324
11325 2016-01-19 Sandra Loosemore <sandra@codesourcery.com>
11326
11327 * doc/standards.texi: Copy-editing for grammar, markup, and sentence
11328 flow throughout the file. Fix broken link to Objective-C 2.0
11329 documentation.
11330 * doc/invoke.texi: More copy-editing; fix numerous typos and spelling
11331 errors.
11332
11333 2016-01-19 Wilco Dijkstra <wdijkstr@arm.com>
11334
11335 * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.
11336
11337 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
11338
11339 PR ipa/66223
11340 * ipa-devirt.c (is_cxa_pure_virtual_p): New function.
11341 (maybe_record_node): Record cxa_pure_virtual as the only possible
11342 target if there are not ohter candidates.
11343 (possible_polymorphic_call_target_p): Accept cxa_pure_virtual.
11344
11345 2016-01-19 Richard Biener <rguenther@suse.de>
11346
11347 * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
11348 (get_memory_order): Likewise.
11349
11350 2016-01-19 Kirill Yukhin <kirill.yukhin@intel.com>
11351
11352 * tree-vect-stmts.c (vectorizable_store): Check
11353 rhs vectype.
11354
11355 2016-01-19 David Malcolm <dmalcolm@redhat.com>
11356
11357 PR jit/68446
11358 * gcc.c (driver::decode_argv): Add call to
11359 init_opts_obstack before init_options_struct.
11360 * opts.c (init_opts_obstack): Remove idempotency.
11361 (init_options_struct): Replace call to init_opts_obstack
11362 with a gcc_assert to verify that it has already been called.
11363 * toplev.c (toplev::main): Add call to init_opts_obstack before
11364 calls to init_options_struct.
11365 (toplev::finalize): Move cleanup of opts_obstack next to
11366 cleanup of save_decoded_options, clearing the latter, and
11367 save_decoded_options_count.
11368
11369 2016-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11370
11371 PR target/69135
11372 * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
11373 attribute to unconditional. Remove %? from output template.
11374
11375 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
11376 Jiong Wang <jiong.wang@arm.com>
11377
11378 * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
11379 generated from different expand order.
11380
11381 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
11382
11383 * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
11384 Add support for CCMP costing.
11385
11386 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
11387
11388 * ccmp.c (ccmp_candidate_p): Remove integer-only restriction.
11389 * config/aarch64/aarch64.md (fccmp<mode>): New pattern.
11390 (fccmpe<mode>): Likewise.
11391 (fcmp): Rename to fcmp and globalize pattern.
11392 (fcmpe): Likewise.
11393 * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
11394 (aarch64_gen_ccmp_next): Add FP support.
11395
11396 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
11397
11398 * target.def (gen_ccmp_first): Update documentation.
11399 (gen_ccmp_next): Likewise.
11400 * doc/tm.texi (gen_ccmp_first): Update documentation.
11401 (gen_ccmp_next): Likewise.
11402 * ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of
11403 expand_ccmp_expr_1. Improve comments.
11404 * config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp.
11405 (ccmp_ior<mode>): Remove pattern.
11406 (cmp<mode>): Remove expand.
11407 (cmp): Globalize pattern.
11408 (cstorecc4): Use cc_register.
11409 (mov<mode>cc): Remove ccmp_cc_register check.
11410 * config/aarch64/aarch64.c (aarch64_get_condition_code_1):
11411 Simplify after removal of CC_DNE/* modes.
11412 (aarch64_ccmp_mode_to_code): Remove.
11413 (aarch64_print_operand): Remove 'K' case. Merge 'm' and 'M' cases.
11414 In 'k' case use integer as condition.
11415 (aarch64_nzcv_codes): Remove inverted cases.
11416 (aarch64_code_to_ccmode): Remove.
11417 (aarch64_gen_ccmp_first): Use cmp pattern directly. Return the correct
11418 comparison with CC register to be used in folowing CCMP/branch/CSEL.
11419 (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP
11420 pattern. Return the comparison with CC register. Invert conditions
11421 when bitcode is OR.
11422 * config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes.
11423 * config/aarch64/predicates.md (ccmp_cc_register): Remove.
11424
11425 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
11426
11427 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
11428 instrumented_version.
11429
11430 2016-01-19 Richard Biener <rguenther@suse.de>
11431
11432 PR tree-optimization/69336
11433 * tree-ssa-scopedtables.c (avail_expr_hash): Handle all
11434 handled components with get_ref_base_and_extent.
11435 (equal_mem_array_ref_p): Adjust.
11436
11437 2016-01-19 Jakub Jelinek <jakub@redhat.com>
11438
11439 PR debug/65779
11440 * shrink-wrap.c: Include valtrack.h.
11441 (move_insn_for_shrink_wrap): Add DEBUG argument. If
11442 MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs
11443 in between insn and where it will be moved to. Call
11444 dead_debug_insert_temp.
11445 (prepare_shrink_wrap): Adjust caller. Call dead_debug_local_init
11446 first and dead_debug_local_finish at the end.
11447 For uses and defs bitmap, handle all regs in between REGNO and
11448 END_REGNO, not just the first one.
11449
11450 2016-01-19 Richard Biener <rguenther@suse.de>
11451
11452 PR tree-optimization/69352
11453 * tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1.
11454 (equal_mem_array_ref_p): Constrain size and max size properly.
11455 Compare the reverse flag.
11456
11457 2016-01-19 Bernd Schmidt <bschmidt@redhat.com>
11458
11459 * ira.c (ira): Update regstat data if we deleted insns.
11460
11461 2016-01-19 Jakub Jelinek <jakub@redhat.com>
11462
11463 PR rtl-optimization/68955
11464 PR rtl-optimization/64557
11465 * dse.c (record_store, check_mem_read_rtx): Don't call get_addr
11466 here. Fix up formatting.
11467 * alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.
11468
11469 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
11470
11471 PR lto/69133
11472 * cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple
11473 assume that the node has body.
11474 * cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p
11475 check.
11476
11477 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
11478
11479 * lto-streamer-out.c (lto_output): Do not stream instrumentation
11480 thunks.
11481
11482 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
11483
11484 * symtab.c (symtab_node::asm_name): Do not call printable name directly.
11485 (symtab_node::name): Report name as unnamed if DECL_NAME is not set.
11486
11487 2016-01-19 Martin Jambor <mjambor@suse.cz>
11488 Martin Liska <mliska@suse.cz>
11489 Michael Matz <matz@suse.de>
11490
11491 * Makefile.in (OBJS): Add new source files.
11492 (GTFILES): Add hsa.c.
11493 * common.opt (disable_hsa): New variable.
11494 (-Whsa): New warning.
11495 * config.in (ENABLE_HSA): New.
11496 * configure.ac: Treat hsa differently from other accelerators.
11497 (OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
11498 $enable_offloading.
11499 (ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
11500 * doc/install.texi (Configuration): Document --with-hsa-runtime,
11501 --with-hsa-runtime-include, --with-hsa-runtime-lib and
11502 --with-hsa-kmt-lib.
11503 * doc/invoke.texi (-Whsa): Document.
11504 (hsa-gen-debug-stores): Likewise.
11505 * lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
11506 to invoke offload compiler for hsa acclerator.
11507 * opts.c (common_handle_option): Determine whether HSA offloading
11508 should be performed.
11509 * params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
11510 * builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
11511 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
11512 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
11513 * gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
11514 * gimple-pretty-print.c (dump_gimple_omp_for): Also handle
11515 GF_OMP_FOR_KIND_GRID_LOOP.
11516 (dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
11517 (pp_gimple_stmt_1): Likewise.
11518 * gimple-walk.c (walk_gimple_stmt): Likewise.
11519 * gimple.c (gimple_build_omp_grid_body): New function.
11520 (gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
11521 * gimple.def (GIMPLE_OMP_GRID_BODY): New.
11522 * gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
11523 GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
11524 GF_OMP_TEAMS_GRID_PHONY.
11525 (gimple_statement_omp_single_layout): Updated comments.
11526 (gimple_build_omp_grid_body): New function.
11527 (gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
11528 (gimple_omp_for_grid_phony): New function.
11529 (gimple_omp_for_set_grid_phony): Likewise.
11530 (gimple_omp_parallel_grid_phony): Likewise.
11531 (gimple_omp_parallel_set_grid_phony): Likewise.
11532 (gimple_omp_teams_grid_phony): Likewise.
11533 (gimple_omp_teams_set_grid_phony): Likewise.
11534 (gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
11535 * omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
11536 (BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
11537 (BUILT_IN_GOMP_TARGET): Updated type.
11538 * omp-low.c: Include symbol-summary.h, hsa.h and params.h.
11539 (adjust_for_condition): New function.
11540 (get_omp_for_step_from_incr): Likewise.
11541 (extract_omp_for_data): Moved parts to adjust_for_condition and
11542 get_omp_for_step_from_incr.
11543 (build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
11544 (fixup_child_record_type): Bail out if receiver_decl is NULL.
11545 (scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
11546 (scan_omp_parallel): Do not create child functions for phony
11547 constructs.
11548 (check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
11549 (scan_omp_1_op): Checking assert we are not remapping to
11550 ERROR_MARK. Also also handle GIMPLE_OMP_GRID_BODY.
11551 (parallel_needs_hsa_kernel_p): New function.
11552 (expand_parallel_call): Register apprpriate parallel child
11553 functions as HSA kernels.
11554 (grid_launch_attributes_trees): New type.
11555 (grid_attr_trees): New variable.
11556 (grid_create_kernel_launch_attr_types): New function.
11557 (grid_insert_store_range_dim): Likewise.
11558 (grid_get_kernel_launch_attributes): Likewise.
11559 (get_target_argument_identifier_1): Likewise.
11560 (get_target_argument_identifier): Likewise.
11561 (get_target_argument_value): Likewise.
11562 (push_target_argument_according_to_value): Likewise.
11563 (get_target_arguments): Likewise.
11564 (expand_omp_target): Call get_target_arguments instead of looking
11565 up for teams and thread limit.
11566 (grid_expand_omp_for_loop): New function.
11567 (grid_arg_decl_map): New type.
11568 (grid_remap_kernel_arg_accesses): New function.
11569 (grid_expand_target_kernel_body): New function.
11570 (expand_omp): Call it.
11571 (lower_omp_for): Do not emit phony constructs.
11572 (lower_omp_taskreg): Do not emit phony constructs but create for them
11573 a temporary variable receiver_decl.
11574 (lower_omp_taskreg): Do not emit phony constructs.
11575 (lower_omp_teams): Likewise.
11576 (lower_omp_grid_body): New function.
11577 (lower_omp_1): Call it.
11578 (grid_reg_assignment_to_local_var_p): New function.
11579 (grid_seq_only_contains_local_assignments): Likewise.
11580 (grid_find_single_omp_among_assignments_1): Likewise.
11581 (grid_find_single_omp_among_assignments): Likewise.
11582 (grid_find_ungridifiable_statement): Likewise.
11583 (grid_target_follows_gridifiable_pattern): Likewise.
11584 (grid_remap_prebody_decls): Likewise.
11585 (grid_copy_leading_local_assignments): Likewise.
11586 (grid_process_kernel_body_copy): Likewise.
11587 (grid_attempt_target_gridification): Likewise.
11588 (grid_gridify_all_targets_stmt): Likewise.
11589 (grid_gridify_all_targets): Likewise.
11590 (execute_lower_omp): Call grid_gridify_all_targets.
11591 (make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
11592 * tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
11593 (tree_omp_clause): Added union field dimension.
11594 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
11595 * tree.c (omp_clause_num_ops): Added number of arguments of
11596 OMP_CLAUSE__GRIDDIM_.
11597 (omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
11598 (walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
11599 * tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
11600 (OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
11601 (OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
11602 (OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
11603 * passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
11604 * tree-pass.h (make_pass_gen_hsail): Declare.
11605 (make_pass_ipa_hsa): Likewise.
11606 * ipa-hsa.c: New file.
11607 * lto-section-in.c (lto_section_name): Add hsa section name.
11608 * lto-streamer.h (lto_section_type): Add hsa section.
11609 * timevar.def (TV_IPA_HSA): New.
11610 * hsa-brig-format.h: New file.
11611 * hsa-brig.c: New file.
11612 * hsa-dump.c: Likewise.
11613 * hsa-gen.c: Likewise.
11614 * hsa.c: Likewise.
11615 * hsa.h: Likewise.
11616 * toplev.c (compile_file): Call hsa_output_brig.
11617 * hsa-regalloc.c: New file.
11618
11619 2016-01-18 Jeff Law <law@redhat.com>
11620
11621 PR tree-optimization/69320
11622 * tree-ssa-dom.c (record_edge_info): For comparisons against a boolean
11623 ranged object, do nothing if the RHS constant is not [0..1].
11624 (optimize_stmt): Comparing a boolean ranged object against a
11625 constant outside [0..1] results in a compile-time constant.
11626
11627 * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
11628 test.
11629
11630 2016-01-18 Sandra Loosemore <sandra@codesourcery.com>
11631
11632 * doc/invoke.texi (Invoking GCC): Add new section to menu.
11633 (Option Summary): Update to reflect new section and moved options.
11634 (C++ Dialect Options): Move -fstats to new section.
11635 (Debugging Options): Move all dump, statistics, and other GCC
11636 developer options to new section. Rewrite section introduction
11637 and re-order remaining options to put the more basic ones first.
11638 (Optimization Options): Move -fira-verbose and -flto-report* to
11639 new section.
11640 (Developer Options): New section incorporating moved options.
11641 * doc/cppopts.texi (-dM): Update cross-reference.
11642
11643 2016-01-18 Richard Henderson <rth@redhat.com>
11644
11645 PR target/69176
11646 * config/aarch64/aarch64.md (add<GPI>3): Move long immediate
11647 operands to pseudo only if CSE is expected. Split long immediate
11648 operands only after reload, and for the stack pointer.
11649 (*add<GPI>3_pluslong): Remove.
11650 (*addsi3_aarch64, *adddi3_aarch64): Merge into...
11651 (*add<GPI>3_aarch64): ... here. Add r/rk/Upl alternative.
11652 (*addsi3_aarch64_uxtw): Add r/rk/Upl alternative.
11653 (*add<GPI>3 peepholes): New.
11654 (*add<GPI>3 splitters): New.
11655 * config/aarch64/constraints.md (Upl): New.
11656 * config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New.
11657
11658 2016-01-18 Richard Biener <rguenther@suse.de>
11659
11660 PR tree-optimization/69297
11661 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
11662 stmt at most once.
11663 (vect_bb_vectorization_profitable_p): Clear visited flag again.
11664
11665 2016-01-18 Yuri Rumyantsev <ysrumyan@gmail.com>
11666
11667 PR middle-end/68542
11668 * fold-const.c (fold_binary_op_with_conditional_arg): Bail out for case
11669 of mixind vector and scalar types.
11670 (fold_relational_const): Add handling of vector
11671 comparison with boolean result.
11672 * tree-cfg.c (verify_gimple_comparison): Add argument CODE, allow
11673 comparison of vector operands with boolean result for EQ/NE only.
11674 (verify_gimple_assign_binary): Adjust call for verify_gimple_comparison.
11675 (verify_gimple_cond): Likewise.
11676 * tree-vrp.c (extract_code_and_val_from_cond_with_ops): Modify check on
11677 valid type of VAL.
11678
11679 2016-01-18 Joseph Myers <joseph@codesourcery.com>
11680
11681 * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
11682 !TARGET_OCTEON.
11683
11684 2016-01-18 Richard Biener <rguenther@suse.de>
11685
11686 PR middle-end/69308
11687 * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.
11688
11689 2016-01-18 Tom de Vries <tom@codesourcery.com>
11690
11691 * passes.def: Add pass_parallelize_loops to pass_oacc_kernels.
11692
11693 2016-01-18 Tom de Vries <tom@codesourcery.com>
11694
11695 * omp-low.c (set_oacc_fn_attrib): Make extern.
11696 * omp-low.h (set_oacc_fn_attrib): Declare.
11697 * tree-parloops.c (struct reduction_info): Add reduc_addr field.
11698 (create_call_for_reduction_1): Handle case that reduc_addr is non-NULL.
11699 (create_parallel_loop, gen_parallel_loop, try_create_reduction_list):
11700 Add and handle function parameter oacc_kernels_p.
11701 (find_reduc_addr, get_omp_data_i_param): New function.
11702 (ref_conflicts_with_region, oacc_entry_exit_ok_1)
11703 (oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function.
11704 (parallelize_loops): Add and handle function parameter oacc_kernels_p.
11705 Calculate dominance info. Skip loops that are not in a kernels region
11706 in oacc_kernels_p mode. Skip inner loops of parallelized loops.
11707 (pass_parallelize_loops::execute): Call parallelize_loops with
11708 oacc_kernels_p argument.
11709 (pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param):
11710 New member function.
11711 (pass_parallelize_loops::bool oacc_kernels_p): New member var.
11712 * passes.def: Add argument to pass_parallelize_loops instantation.
11713
11714 2016-01-18 Tom de Vries <tom@codesourcery.com>
11715
11716 * tree-parloops.c (pass_parallelize_loops::execute): Allow
11717 pass_parallelize_loops to be run outside the loop pipeline.
11718
11719 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
11720
11721 * tree-scalar-evolution.c (follow_copies_to_constant): New.
11722 (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
11723
11724 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
11725
11726 PR target/63679
11727 * tree-ssa-scopedtables.c (avail_expr_hash): Hash MEM_REF and ARRAY_REF
11728 using get_ref_base_and_extent.
11729 (equal_mem_array_ref_p): New.
11730 (hashable_expr_equal_p): Add call to previous.
11731
11732 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
11733
11734 PR target/63679
11735 * tree-sra.c (disqualified_constants, constant_decl_p): New.
11736 (sra_initialize): Allocate disqualified_constants.
11737 (sra_deinitialize): Free disqualified_constants.
11738 (disqualify_candidate): Update disqualified_constants when appropriate.
11739 (create_access): Scan for constant-pool entries as we go along.
11740 (scalarizable_type_p): Add check against type_contains_placeholder_p.
11741 (maybe_add_sra_candidate): Allow constant-pool entries.
11742 (load_assign_lhs_subreplacements): Bind debug for constant pool vars.
11743 (initialize_constant_pool_replacements): New.
11744 (sra_modify_assign): Avoid mangling assignments created by previous,
11745 and don't generate writes into constant pool.
11746 (sra_modify_function_body): Call initialize_constant_pool_replacements.
11747
11748 2016-01-18 Ilya Enkovich <enkovich.gnu@gmail.com>
11749
11750 * config/i386/i386.c (scalar_to_vector_candidate_p): Support
11751 andnot instruction.
11752 (scalar_chain::convert_op): Likewise.
11753 * config/i386/i386.md (*andndi3_doubleword): New.
11754
11755 2016-01-18 Richard Biener <rguenther@suse.de>
11756
11757 PR tree-optimization/69170
11758 * tree-vect-slp.c (vect_build_slp_tree): Verify we are not
11759 building a vector from scalar results of a pattern stmt.
11760
11761 2016-01-18 Jakub Jelinek <jakub@redhat.com>
11762
11763 * haifa-sched.c (autopref_multipass_init): Work around
11764 -Wmaybe-uninitialized warning.
11765
11766 2016-01-18 Thomas Preud'homme <thomas.preudhomme@arm.com>
11767
11768 * config/arm/arm.c (thumb1_reorg): Check that the comparison is
11769 against the constant 0.
11770
11771 2016-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11772
11773 PR tree-optimization/68799
11774 * gimple-ssa-strength-reduction.c (create_phi_basis): Directly
11775 look up phi candidates in the statement-candidate map.
11776 (phi_add_costs): Likewise.
11777 (record_phi_increments): Likewise.
11778 (phi_incr_cost): Likewise.
11779 (ncd_with_phi): Likewise.
11780 (all_phi_incrs_profitable): Likewise.
11781
11782 2016-01-17 Jakub Jelinek <jakub@redhat.com>
11783
11784 * omp-low.c (mark_loops_in_oacc_kernels_region): Work around
11785 -Wmaybe-uninitialized warning.
11786
11787 2016-01-16 Sandra Loosemore <sandra@codesourcery.com>
11788
11789 * doc/invoke.texi (Invoking GCC): Add new section to menu.
11790 (Option Summary): Update to reflect new section and moved options.
11791 (C++ Dialect Options): Move -fvtable-verify and related options.
11792 (Debugging Options): Move Sanitizer, Pointer Bounds Checker,
11793 and profiling-related options.
11794 (Optimization Options): Move profile generation options and
11795 -fstack-protector and related options.
11796 (Instrumentation Options): New section incorporating moved options.
11797 (Code Generation Options): Move -finstrument-functions and
11798 related options, -fstack-check, -fstack-limit*, and -fbounds-check.
11799
11800 2016-01-16 Tom de Vries <tom@codesourcery.com>
11801
11802 * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.
11803
11804 2016-01-16 Tom de Vries <tom@codesourcery.com>
11805
11806 * omp-low.c (expand_omp_atomic_fetch_op): Release defs of update stmt.
11807
11808 2016-01-16 Richard Sandiford <richard.sandiford@arm.com>
11809
11810 * hash-table.h (hash_table::empty): Turn into an inline wrapper
11811 that checks whether the table is already empty. Rename the
11812 original implementation to...
11813 (hash_table::empty_slot): ...this new private function.
11814
11815 2016-01-15 David Malcolm <dmalcolm@redhat.com>
11816
11817 PR diagnostic/68899
11818 * diagnostic-show-locus.c (layout::print_source_line): Move x
11819 offset of line until after call to
11820 get_line_width_without_trailing_whitespace.
11821
11822 2016-01-15 Jeff Law <law@redhat.com>
11823
11824 PR tree-optimization/69270
11825 * tree-ssanames.c (ssa_name_has_boolean_range): Moved here from
11826 tree-ssa-dom.c. Improve test for [0..1] ranve from VRP.
11827 * tree-ssa-dom.c (ssa_name_has_boolean_range): Remove.
11828 * tree-ssanames.h (ssa_name_has_boolean_range): Prototype.
11829 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
11830 ssa_name_has_boolean_range and constant_boolean_node.
11831
11832 2016-01-15 Vladimir Makarov <vmakarov@redhat.com>
11833
11834 PR rtl-optimization/69030
11835 * lra-spills.c (remove_pseudos): Check nrefs and make the function
11836 returning bool.
11837 (spill_pseudos): Delete debug insn for dead pseudo.
11838 (lra_spill): Initiate spill_hard_reg and slots memory separately.
11839
11840 2016-01-15 Jiong Wang <jiong.wang@arm.com>
11841
11842 * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
11843 New.
11844 (TYPES_UNOPUS): Likewise.
11845 * config/aarch64/aarch64-simd-builtins.def (lbtruncuv2sf): Correct
11846 builtin type, from UNOP to UNOPUS.
11847 (lbtruncuv4sf): Likewise.
11848 (lbtruncuv2df): Likewise.
11849 (lrounduv2sf): Likewise.
11850 (lrounduv4sf): Likewise.
11851 (lrounduv2df): Likewise.
11852 (lroundusf): Likewise.
11853 (lroundusf): Likewise.
11854 (lceiluv2sf): Likewise.
11855 (lceiluv4sf): Likewise.
11856 (lceiluv2df): Likewise.
11857 (lceilusf): Likewise.
11858 (lceiludf): Likewise.
11859 (lflooruv2sf): Likewise.
11860 (lflooruv4sf): Likewise.
11861 (lflooruv2df): Likewise.
11862 (lfloorusf): Likewise.
11863 (lfloorudf): Likewise.
11864 (lfrintnuv2sf): Likewise.
11865 (lfrintnuv4sf): Likewise.
11866 (lfrintnuv2df): Likewise.
11867 (lfrintnusf): Likewise.
11868 (lfrintnudf): Likewise.
11869 * config/aarch64/arm_neon.h (vcvt_u32_f32): Remove unncessary type
11870 conversion.
11871 (vcvtq_u32_f32): Likewise.
11872 (vcvtq_u64_f64): Likewise.
11873 (vcvta_u32_f32): Likewise.
11874 (vcvtaq_u32_f32): Likewise.
11875 (vcvtaq_u64_f64): Likewise.
11876 (vcvtm_u32_f32): Likewise.
11877 (vcvtmq_u32_f32): Likewise.
11878 (vcvtmq_u64_f64): Likewise.
11879 (vcvtn_u32_f32): Likwise.
11880 (vcvtnq_u32_f32): Likewise.
11881 (vcvtnq_u64_f64): Likewise.
11882 (vcvtp_u32_f32): Likewise.
11883 (vcvtpq_u32_f32): Likewise.
11884 (vcvtpq_u64_f64): Likewise.
11885 (vcvtmd_u64_f64): Likewise.
11886 (vcvtms_u32_f32): Likewise.
11887 (vcvtad_u64_f64): Likewise.
11888 (vcvtas_u32_f32): Likewise.
11889 (vcvtnd_u64_f64): Likewise.
11890 (vcvtns_u32_f32): Likewise.
11891 (vcvtpd_u64_f64): Likewise.
11892 (vcvtps_u32_f32): Likewise.
11893
11894 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11895
11896 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
11897 CSEL of zero_extended registers.
11898
11899 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11900
11901 * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
11902 Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
11903
11904 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11905
11906 * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
11907 false when argument string is not found in the attributes table
11908 at all.
11909
11910 2016-01-15 David Edelsohn <dje.gcc@gmail.com>
11911
11912 PR target/68609
11913 * config/rs6000/rs6000.c (rs6000_emit_msub): Delete.
11914 (rs6000_emit_swsqrt): Convert to Goldschmidt's Algorithm
11915 * config/rs6000/rs6000.md (sqrt<mode>2): Limit swsqrt to high
11916 precision estimate.
11917
11918 2016-01-15 Richard Biener <rguenther@suse.de>
11919
11920 PR tree-optimization/66856
11921 * tree-vect-loop.c (vect_transform_loop): Free SLP instances here.
11922 * tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count.
11923 (vect_create_new_slp_node): Increment stmt reference count.
11924 (vect_get_and_check_slp_defs): Make sure stmts are nor already in
11925 an SLP tree before swapping operands.
11926 (vect_build_slp_tree): Likewise.
11927 (destroy_bb_vec_info): Free stmt info after SLP instances.
11928 * tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count.
11929 * tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field.
11930 (STMT_VINFO_NUM_SLP_USES): New macro.
11931
11932 2016-01-15 Richard Biener <rguenther@suse.de>
11933
11934 PR debug/69137
11935 * dwarf2out.c (add_linkage_name_raw): New function split out from ...
11936 (add_linkage_name): ... here.
11937 (gen_typedef_die): Use add_linkage_name_raw instead of
11938 add_linkage_attr to delay DECL_ASSEMBLER_NAME computation
11939 if necessary.
11940
11941 2016-01-15 Cesar Philippidis <cesar@codesourcery.com>
11942
11943 * gimplify.c (oacc_default_clause): Decode reference and pointer
11944 types for both kernels and parallel regions.
11945
11946 2016-01-15 Richard Sandiford <richard.sandiford@arm.com>
11947
11948 PR middle-end/69246
11949 * calls.c (emit_call_1): Force n_popped to zero for sibcalls.
11950
11951 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
11952
11953 * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
11954 (convert_scalars_to_vector): Likewise.
11955
11956 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
11957
11958 * doc/extend.texi (Type Traits): Fix grammar.
11959
11960 2016-01-15 Martin Jambor <mjambor@suse.cz>
11961
11962 * tree-inline.c (remap_decl): Use existing dclarations if
11963 remapping a type and prevent_decl_creation_for_types.
11964 (replace_locals_stmt): Do an initial remapping of non-VLA typed
11965 decls first. Do real remapping with
11966 prevent_decl_creation_for_types set.
11967 * tree-inline.h (copy_body_data): New field
11968 prevent_decl_creation_for_types, moved remap_var_for_cilk to avoid
11969 padding.
11970
11971 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
11972
11973 * config/s390/s390.opt (mmvcle): More verbose help text.
11974
11975 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
11976
11977 * config/s390/s390.opt: Add period to -mzvector option text.
11978
11979 2016-01-15 Richard Biener <rguenther@suse.de>
11980
11981 PR tree-optimization/68961
11982 * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
11983 of invariants in stores again.
11984
11985 2016-01-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
11986
11987 * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.
11988
11989 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
11990
11991 * config/i386/i386.c (ix86_expand_branch): Don't split
11992 DI mode xor instruction to SI mode.
11993
11994 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
11995
11996 PR ipa/68148
11997 * ipa-icf.c (sem_function::merge): Virtual functions may become
11998 reachable even if they address is not taken and there are no
11999 idrect calls.
12000
12001 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
12002
12003 * lto-streamer-out.c (subtract_estimated_size): New function.
12004 (get_symbol_initial_value): Use it.
12005
12006 2016-01-15 Christian Bruel <christian.bruel@st.com>
12007
12008 PR target/65837
12009 * config/arm/arm-builtins.c (ARM_BUILTIN_CRYPTO_BASE): New enum tag.
12010 (arm_init_neon_builtins_internal): Rename arm_init_neon_builtins,
12011 (arm_init_crypto_builtins_internal): Rename arm_init_crypto_builtins.
12012 use add_builtin_function_ext_scope instead of add_builtin_function.
12013 (neon_set_p, neon_crypto_set_p): Remove.
12014 (arm_init_builtins): Always call arm_init_neon_builtins and
12015 arm_init_crypto_builtins.
12016 (arm_expand_builtin): Check that builtins are allowed for the arch.
12017 * config/arm/arm-protos.h (arm_init_neon_builtins): Remove prototype.
12018 * config/arm/arm.c (arm_valid_target_attribute_tree): Remove
12019 arm_init_neon_builtins call.
12020
12021 2016-01-15 Richard Biener <rguenther@suse.de>
12022
12023 PR tree-optimization/69117
12024 * tree-ssa-sccvn.h (struct vn_ssa_aux): Add info member.
12025 * tree-ssa-sccvn.c (set_ssa_val_to): Save and adjust SSA name info
12026 of the leader conservatively.
12027 (free_scc_vn): Restore original SSA name infos.
12028
12029 2016-01-14 Jeff Law <law@redhat.com>
12030
12031 PR tree-optimization/69270
12032 * tree-ssa-dom.c (ssa_name_has_boolean_range): If the type has a
12033 single bit of precision, verify it's also unsigned.
12034 (record_edge_info): Use constant_boolean_node rather than fold_convert
12035 to convert boolean_true/boolean_false to the right type.
12036
12037 2016-01-14 Richard Henderson <rth@redhat.com>
12038
12039 PR rtl-opt/69014
12040 * loop-doloop.c (record_reg_sets): New.
12041 (doloop_optimize): Reject the transform if the sequence
12042 clobbers registers live at the end of the loop block.
12043 (doloop_optimize_loops): Enable df_live if needed.
12044
12045 2016-01-14 Michael Meissner <meissner@linux.vnet.ibm.com>
12046
12047 * config/rs6000/rs6000-builtin.def: Revert 2016-01-13 change.
12048 * config/rs6000/rs6000.c: Likewise.
12049 * config/rs6000/rs6000.h: Likewise.
12050 * config/rs6000/rs6000.md: Likewise.
12051 * doc/extend.texi: Likewsie.
12052
12053 2016-01-14 Jeff Law <law@redhat.com>
12054
12055 * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
12056 typo.
12057
12058 2016-01-14 Richard Henderson <rth@redhat.com>
12059
12060 PR c/69272
12061 PR tree-opt/68964
12062 * trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size.
12063 * tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p
12064 instead of builtin_decl_declared_p to test for declaration.
12065
12066 2016-01-14 Nicklas Bo Jensen <nbjensen@gmail.com>
12067
12068 * doc/loop.texi (Loop Analysis and Representation): Document
12069 loop_depth function.
12070
12071 2016-01-14 Tom de Vries <tom@codesourcery.com>
12072
12073 PR tree-optimization/68773
12074 * omp-low.c (expand_omp_target): Don't set force_output.
12075 * varpool.c (varpool_node::get_create): Same.
12076 * lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and
12077 offload_funcs with force_output.
12078
12079 2016-01-14 Jakub Jelinek <jakub@redhat.com>
12080
12081 PR debug/69244
12082 * lra-eliminations.c (move_plus_up): Don't change anything if either
12083 the outer or inner subreg mode is not MODE_INT.
12084 * dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is
12085 integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards.
12086
12087 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
12088
12089 * doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m},
12090 reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m},
12091 reduc_uplus_@var{m}): Remove.
12092 * expr.c (expand_expr_real_2): Remove expansion path for
12093 reduc_[us](min|max|plus) optabs.
12094 * optabs-tree.c (scalar_reduc_to_vector): Remove.
12095 * optabs-tree.h (scalar_reduc_to_vector): Remove.
12096 * optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab,
12097 reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove.
12098 * tree-vect-loop.c (vectorizable_reduction): Remove test for
12099 reduc_[us](min|max|plus) optabs.
12100
12101 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
12102
12103 * config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove.
12104 (reduc_plus_scal_v2sf): New.
12105 (reduc_smax_v2sf): Rename to...
12106 (reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract.
12107 (reduc_smin_v2sf): Rename to...
12108 (reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract.
12109
12110 2016-01-14 Jan Hubicka <hubicka@ucw.cz>
12111
12112 * alias.c (compare_base_symbol_refs): New function.
12113 (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
12114 it.
12115
12116 2016-01-14 Jakub Jelinek <jakub@redhat.com>
12117
12118 PR middle-end/68146
12119 PR tree-optimization/69155
12120 * tree-complex.c: Include cfganal.h.
12121 (phis_to_revisit): New variable.
12122 (extract_component): Add phiarg_p argument. Assert that returned
12123 SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true.
12124 (update_phi_components): Partly rewrite to use loop over real/imag
12125 components instead of code duplication. If extract_component returns
12126 SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or
12127 create_tmp_reg into the PHI node instead, and mention the phi triplet
12128 in phis_to_revisit.
12129 (tree_lower_complex): Walk bbs in rpo order. Adjust phis recorded
12130 in phis_to_revisit at the end.
12131
12132 2016-01-14 Richard Biener <rguenther@suse.de>
12133
12134 PR tree-optimization/68060
12135 * tree-vect-loop.c (vect_is_simple_reduction): Check the
12136 outer loop reduction is only used in the inner loop before
12137 detecting a double reduction.
12138
12139 2016-01-14 Jakub Jelinek <jakub@redhat.com>
12140
12141 PR target/68269
12142 * combine.c (expand_field_assignment): Punt if compute_mode is
12143 unsupported scalar mode.
12144
12145 2016-01-14 Richard Biener <rguenther@suse.de>
12146
12147 PR tree-optimization/66856
12148 * tree-vect-slp.c (vect_build_slp_tree): Refactor to build
12149 SLP node only if it built successfully.
12150 (vect_analyze_slp_instance): Adjust.
12151
12152 2016-01-14 Jeff Law <law@redhat.com>
12153
12154 PR tree-optimization/69270
12155 * tree-ssa-dom.c (ssa_name_has_boolean_range): New function.
12156 (record_edge_info): Use it. Convert boolean_{true,false}_node
12157 to the type of op0.
12158
12159 2016-01-13 Jan Hubicka <hubicka@ucw.cz>
12160
12161 PR ipa/66487
12162 * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
12163 use block_ultimate_origin
12164 (noncall-stmt_may_be_vtbl_ptr_store): Likewise.
12165
12166 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
12167
12168 * doc/invoke.texi (Submodel Options): Rename section to
12169 "Machine-Dependent Options" to better reflect its content.
12170 Rewrite introductory text to remove archaic CPU names.
12171 Update references.
12172
12173 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
12174
12175 * doc/invoke.texi (Code Gen Options): Move section up in file,
12176 before target-specific options. Update menu and option summary
12177 to reflect the new section ordering.
12178
12179 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
12180
12181 * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
12182 (C++ Dialect Options): Add cross-reference to -std option.
12183 * doc/standards.texi (C++ Language): Document C++14 support.
12184
12185 2016-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
12186
12187 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
12188 for pack/unpack functions for __ibm128.
12189 (PACK_IF): Likewise.
12190 (UNPACK_IF): Likewise.
12191
12192 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
12193 support for __ibm128 pack/unpack functions.
12194 (rs6000_invalid_builtin): Likewise.
12195 (rs6000_init_builtins): Likewise.
12196 (rs6000_opt_masks): Likewise.
12197
12198 * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
12199 (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
12200 functions
12201 (RS6000_BTM_COMMON): Likewise.
12202
12203 * config/rs6000/rs6000.md (f128_vsx): New mode attribute.
12204 (unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
12205 disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
12206 128-bit floating point. Add support for the double values to be
12207 in Altivec registers for TF/IF packing and unpacking, but restrict
12208 TD packing sub-fields to be FPR registers. Don't allow overlapped
12209 register support for packing. Allow pack inputs to be memory
12210 locations. Don't build generator functions for unpack<mode>_dm
12211 and unpack<mode>_nodm.
12212 (unpack<mode>_dm): Likewise.
12213 (unpack<mode>_nodm): Likewise.
12214 (pack<mode>): Likewise.
12215
12216 * config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
12217 built-in functions to pack/unpack explicit __ibm128 values.
12218 (__builtin_unpack_ibm128): Likewise.
12219
12220 * doc/extend.texi (PowerPC Built-in Functions): Document
12221 __builtin_pack_ibm128 and __builtin_unpack_ibm128.
12222
12223 2016-01-13 Bernd Schmidt <bschmidt@redhat.com>
12224
12225 PR c/66208
12226 * c-common.c (check_function_nonnull): Remove unnecessary declaration.
12227 Add new arg loc and pass it down as context.
12228 (check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
12229 to the location to use for the warning.
12230 (check_function_arguments): New arg loc. All callers changed. Pass
12231 it to check_function_nonnull.
12232 * c-common.h (check_function_arguments): Adjust declaration.
12233
12234 2016-01-13 Jakub Jelinek <jakub@redhat.com>
12235
12236 PR tree-optimization/69156
12237 * gimple.c (validate_type): Removed.
12238 (gimple_builtin_call_types_compatible_p): Use
12239 useless_type_conversion_p instead of validate_type.
12240 * value-prof.c (gimple_stringop_fixed_value): Fold
12241 icall_size to correct type.
12242
12243 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
12244
12245 * doc/extend.texi (__atomic Builtins): Clarify compare_exchange
12246 effects.
12247
12248 2016-01-13 Richard Henderson <rth@redhat.com>
12249
12250 PR tree-opt/68964
12251 * target.def (builtin_tm_load, builtin_tm_store): Remove.
12252 * config/i386/i386.c (ix86_builtin_tm_load): Remove.
12253 (ix86_builtin_tm_store): Remove.
12254 (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
12255 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
12256 * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
12257 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
12258 * doc/tm.texi: Rebuild.
12259
12260 * gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New.
12261 (BUILT_IN_TM_MEMCPY_RTWN): New.
12262 * trans-mem.c (tm_log_emit_stmt): Rearrange code for better
12263 fallback from vector to integer helpers.
12264 (build_tm_load): Handle vector types directly, instead of
12265 via target hook.
12266 (build_tm_store): Likewise.
12267 (expand_assign_tm): Prepare for register types not handled by
12268 the above. Copy them to memory and use memcpy.
12269 * tree.c (tm_define_builtin): New.
12270 (find_tm_vector_type): New.
12271 (build_tm_vector_builtins): New.
12272 (build_common_builtin_nodes): Call it.
12273
12274 2016-01-13 Uros Bizjak <ubizjak@gmail.com>
12275
12276 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
12277 TARGET_SSE_MATH without TARGET_SSE2. Rewrite.
12278
12279 2016-01-13 Tom de Vries <tom@codesourcery.com>
12280
12281 PR tree-optimization/69169
12282 * tree-ssa-structalias.c (create_variable_info_for_1): Add and handle
12283 handled_struct_type param.
12284 (create_variable_info_for, intra_create_variable_infos): Call
12285 create_variable_info_for_1 with extra arg.
12286
12287 2016-01-13 Yvan Roux <yvan.roux@linaro.org>
12288
12289 * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
12290 and "armv8.1-a+crc" entries.
12291
12292 2016-01-13 Alexander Fomin <alexander.fomin@intel.com>
12293
12294 PR target/69228
12295 * config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
12296 Change first operand predicate from register_or_constm1_operand
12297 to register_operand.
12298 (define_expand "avx512pf_gatherpf<mode>df"): Likewise.
12299 (define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
12300 (define_expand "avx512pf_scatterpf<mode>df"): Likewise.
12301 (define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
12302 (define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
12303 (define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
12304 (define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
12305 * config/i386/i386.c (ix86_expand_builtin): Remove first operand
12306 comparison with constm1_rtx from vec_prefetch_gen part.
12307
12308 2016-01-13 Richard Biener <rguenther@suse.de>
12309
12310 PR tree-optimization/69013
12311 * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
12312 Exchange assert for a test.
12313
12314 2016-01-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
12315
12316 PR target/69247
12317 * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.
12318
12319 2016-01-13 Richard Biener <rguenther@suse.de>
12320
12321 PR tree-optimization/69242
12322 * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
12323 assert with a check.
12324
12325 2016-01-13 Richard Biener <rguenther@suse.de>
12326
12327 PR tree-optimization/69186
12328 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
12329 Properly guard vect_update_misalignment_for_peel call.
12330
12331 2016-01-12 Jeff Law <law@redhat.com>
12332
12333 PR tree-optimization/pr67755
12334 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
12335 "need_profile_correction".
12336 (thread_block_1): Initialize new field to false by default. If we
12337 have multiple thread paths through a common joiner to different
12338 final targets, then set new field to true.
12339 (compute_path_counts): Only do count adjustment when it's really
12340 needed.
12341
12342 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
12343
12344 * doc/invoke.texi (Spec Files): Move section down in file, past
12345 all command-line option descriptions.
12346
12347 2016-01-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12348
12349 PR middle-end/54809
12350 * doc/gty.texi: Remove documentation of mark_hook.
12351 * gengtype.c (struct write_types_data): Remove code to support
12352 mark_hook attribute.
12353 (walk_type): Likewise.
12354 (write_func_for_structure): Likewise.
12355
12356 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
12357
12358 * doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to
12359 Directory Options, and -specs= to Overall Options.
12360 (Overall Options): Adjust similarly. Reorder to group related
12361 options together. Make -specs= cross-reference the spec file details.
12362 (Directory Options): Adjust similarly.
12363
12364 2016-01-12 Jeff Law <law@redhat.com>
12365
12366 * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
12367
12368 2016-01-12 Olivier Hainque <hainque@adacore.com>
12369
12370 * gcc.c (spec_undefvar_allowed): New global.
12371 (process_command): Set to true when running for --version or --help,
12372 alone or together.
12373 (getenv_spec_function): When the variable is not defined, use the
12374 variable name as the variable value if we're allowed not to issue
12375 a fatal error.
12376
12377 2016-01-12 Bin Cheng <bin.cheng@arm.com>
12378
12379 PR tree-optimization/68911
12380 * tree-vrp.c (adjust_range_with_scev): Check overflow in range
12381 information computed for expression "init + nit * step".
12382
12383 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
12384
12385 * doc/invoke.texi (Invoking GCC): Copy-edit. Incorporate information
12386 about name of GCC executable. Remove deleted node from menu.
12387 (Directory Options) <-B>: Remove cross-reference to deleted node.
12388 (Target Options): Delete section.
12389
12390 2016-01-12 Christian Bruel <christian.bruel@st.com>
12391
12392 PR target/69180
12393 * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
12394 for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.
12395
12396 2016-01-12 Jakub Jelinek <jakub@redhat.com>
12397
12398 PR target/69198
12399 * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
12400 aligned_mem is properly set for AVX512-VL floating point masked
12401 stores.
12402
12403 PR target/69175
12404 * ifcvt.c (cond_exec_process_if_block): When removing the last
12405 insn from then_bb, remove also any possible barriers that follow it.
12406
12407 2016-01-12 H.J. Lu <hongjiu.lu@intel.com>
12408
12409 PR target/68456
12410 PR target/69226
12411 * config/i386/iamcu.h (SIZE_TYPE): New macro.
12412 (PTRDIFF_TYPE): Likewise.
12413 (WCHAR_TYPE): Likewise.
12414 (WCHAR_TYPE_SIZE): Likewise.
12415 (STDINT_LONG32): Likewise.
12416
12417 2016-01-12 Richard Biener <rguenther@suse.de>
12418
12419 PR tree-optimization/69053
12420 * tree-vect-loop.c (get_initial_def_for_reduction): Properly
12421 convert initial value for cond reductions.
12422
12423 2016-01-12 Richard Biener <rguenther@suse.de>
12424
12425 PR tree-optimization/69007
12426 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
12427 widen_sum after dot_prod and sad.
12428
12429 2016-01-12 Richard Biener <rguenther@suse.de>
12430
12431 PR tree-optimization/69168
12432 * tree-vect-loop.c (vect_analyze_loop_2): Reset both main and
12433 pattern stmt SLP type.
12434 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may
12435 end up unused so cope with that case.
12436
12437 2016-01-12 Richard Biener <rguenther@suse.de>
12438
12439 PR tree-optimization/69157
12440 * tree-vect-stmts.c (vectorizable_mask_load_store): Check
12441 stmts def type only during analyze phase.
12442 (vectorizable_call): Likewise.
12443 (vectorizable_simd_clone_call): Likewise.
12444 (vectorizable_conversion): Likewise.
12445 (vectorizable_assignment): Likewise.
12446 (vectorizable_shift): Likewise.
12447 (vectorizable_operation): Likewise.
12448 (vectorizable_store): Likewise.
12449 (vectorizable_load): Likewise.
12450
12451 2016-01-12 Richard Biener <rguenther@suse.de>
12452
12453 PR tree-optimization/69174
12454 * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
12455 space.
12456 (vectorizable_load): Properly compute the number of loads needed
12457 for permuted strided SLP loads and do not spuriously assign
12458 to SLP_TREE_VEC_STMTS.
12459
12460 2016-01-12 Andris Pavenis <andris.pavenis@iki.fi>
12461
12462 * config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2
12463 (TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive
12464 (MD_EXEC_PREFIX): Remove.
12465 (MD_STARTFILE_PREFIX) Removee.
12466 (FILE_NAME_ABSOLUTE_P): Remove.
12467 (CPP_SPEC): Do not read macros from sys/version.h.
12468 (LINK_COMMAND_SPEC): Remove.
12469 (LOCAL_INCLUDE_DIR): Remove.
12470 (TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section
12471 (TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix.
12472 (POST_LINK_SPEC): Define to invoke stubify after linker
12473 (LIBSTDCXX): Remove define
12474 (DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map.
12475 (DEFAULT_PCC_STRUCT_RETURN): Define to 1.
12476 (SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210.
12477 (SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message.
12478 (SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info.
12479 (IX86_MAYBE_NO_LIBGCC_TFMODE): Remove.
12480 (i386_djgpp_asm_named_section): Add propotype of new procedure
12481
12482 * config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define.
12483 (MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h).
12484 (STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX
12485 in config/i386/djgpp.h).
12486 (STANDARD_STARTFILE_PREFIX_2): Define identical to
12487 STANDARD_STARTFILE_PREFIX_1.
12488 (LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h).
12489 (GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal
12490 installation errors.
12491 (MAX_OFILE_ALIGNMENT): Define to 128.
12492 (HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h.
12493
12494 * config/i386/djgpp.c: New file. Add implementation of
12495 i386_djgpp_asm_named_section.
12496
12497 * config/i386/djgpp.opt: Remove obsolete option -mbnu210.
12498
12499 * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
12500 Add rule for building djgpp.o.
12501
12502 2016-01-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12503
12504 * config/rs6000/rs6000.c (v2df_reduction_p): New function.
12505 (rtx_is_swappable_p): Reductions are swappable.
12506 (insn_is_swappable_p): V2DF reductions are swappable.
12507
12508 2016-01-11 John David Anglin <danglin@gcc.gnu.org>
12509
12510 * config/pa/pa.c (pa_emit_move_sequence): Handle floating point
12511 reloads for other unsupported memory operands.
12512
12513 2016-01-12 Kugan Vivekanandarajah <kuganv@linaro.org>
12514 Jim Wilson <jim.wilson@linaro.org>
12515
12516 PR target/69194
12517 * config/arm/arm-builtins.c (arm_expand_neon_args): Call
12518 copy_to_mode_reg instead of force_reg.
12519
12520 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
12521
12522 PR target/69225
12523 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
12524 TARGET_80387 is true.
12525
12526 2016-01-11 Jakub Jelinek <jakub@redhat.com>
12527
12528 PR target/69071
12529 * lra-eliminations.c (move_plus_up): Only move plus up
12530 if subreg of the constant can be simplified into constant
12531 and use the simplified subreg of the constant instead of
12532 the original constant.
12533
12534 * fold-const.c (fold_convertible_p): Don't return true
12535 for conversion of VECTOR_TYPE to same sized integral type.
12536 (fold_convert_loc): Fix up formatting. Fold conversion of
12537 VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR
12538 instead of NOP_EXPR.
12539
12540 PR tree-optimization/69214
12541 * tree-vrp.c (simplify_cond_using_ranges): Don't propagate
12542 innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
12543 Formatting fix.
12544
12545 PR tree-optimization/69207
12546 * tree-vect-slp.c (vect_get_constant_vectors): For
12547 VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
12548 fold_convertible_p to vector_type's element type, and always
12549 use VCE for non-VECTOR_BOOLEAN_TYPE_P.
12550
12551 2016-01-11 Richard Biener <rguenther@suse.de>
12552
12553 PR tree-optimization/69173
12554 * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only
12555 fixup the cycle if all stmts are in a pattern.
12556
12557 2016-01-11 Uros Bizjak <ubizjak@gmail.com>
12558
12559 PR middle-end/68999
12560 * alias.c (base_alias_check): Move check for addresses with
12561 alignment ANDs before the call for compare_base_decls.
12562 (memrefs_conflict_p): Return -1 for different decls
12563 that went through alignment adjustments.
12564
12565 2016-01-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12566
12567 PR rtl-optimization/68796
12568 * config/aarch64/aarch64.md (*and<mode>_compare0): New pattern.
12569 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle HImode
12570 and QImode comparisons against zero with CC_NZmode.
12571 * config/aarch64/iterators.md (short_mask): New mode_attr.
12572
12573 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
12574
12575 * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
12576 (<avx512>_store<mode>_mask): Likewise.
12577
12578 2016-01-11 Bernd Schmidt <bschmidt@redhat.com>
12579 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12580
12581 PR rtl-optimization/68841
12582 * ifcvt.c (struct noce_if_info): Add orig_x field.
12583 (bbs_ok_for_cmove_arith): Add to_rename parameter.
12584 Don't record conflicts on to_rename if it's present.
12585 Allow memory destinations in sets.
12586 (noce_try_cmove_arith): Call bbs_ok_for_cmove_arith even on simple
12587 blocks, passing orig_x to the checks.
12588 (noce_process_if_block): Set if_info->orig_x appropriately.
12589
12590 2016-01-11 Tom de Vries <tom@codesourcery.com>
12591
12592 PR tree-optimization/69069
12593 * tree-parloops.c (create_parallel_loop): Add missing phi args.
12594
12595 2016-01-11 Yuri Rumyantsev <ysrumyan@gmail.com>
12596
12597 PR rtl-optimization/68920
12598 * config/i386/i386.c (ix86_option_override_internal): Restrict number
12599 of conditional moves for RTL if-conversion to 1 for
12600 TARGET_ONE_IF_CONV_INSN.
12601 * config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros.
12602 * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros.
12603 * params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new
12604 parameter to restirct number of conditional moves for
12605 RTL if-conversion.
12606 * doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
12607 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
12608 conditionl moves.
12609
12610 2016-01-11 Alexandre Oliva <aoliva@redhat.com>
12611
12612 PR bootstrap/69123
12613 * var-tracking.c (drop_overlapping_mem_locs): Operate on all
12614 onepart vars. Fix typo in comment. Fix reversed condition in
12615 unshare test.
12616 (dataflow_set_remove_mem_locs): Operate on all onepart vars.
12617
12618 PR bootstrap/69123
12619 * var-tracking.c (dump_onepart_variable_differences): New.
12620 (dataflow_set_different): If a detailed dump is requested,
12621 delay early returns and dump differences between onepart
12622 variables present before and after, and added variables.
12623
12624 2016-01-11 Ilya Enkovich <enkovich.gnu@gmail.com>
12625
12626 PR target/69010
12627 * expr.c (expand_expr_real_1): For boolean vector constants
12628 with a scalar mode use const_scalar_mask_from_tree.
12629 (const_scalar_mask_from_tree): New.
12630 * optabs.c (expand_vec_cond_mask_expr): Use mask mode
12631 assigned to a mask type to handle constants.
12632
12633 2016-01-11 Martin Jambor <mjambor@suse.cz>
12634
12635 PR ipa/69044
12636 * ipa-cp.c (estimate_local_effects): Do not clone for removal of
12637 useless parameters if we cannot change function signature.
12638
12639 2016-01-11 Martin Jambor <mjambor@suse.cz>
12640
12641 PR ipa/66616
12642 * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
12643 flag.
12644
12645 2016-01-11 Tom de Vries <tom@codesourcery.com>
12646
12647 PR tree-optimization/69109
12648 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
12649 latch with phi.
12650
12651 2016-01-11 Tom de Vries <tom@codesourcery.com>
12652
12653 PR tree-optimization/69108
12654 * tree-parloops.c (gather_scalar_reductions): Handle case that outer phi
12655 res is not used in a phi.
12656
12657 2016-01-11 Yury Gribov <y.gribov@samsung.com>
12658
12659 PR 67425
12660 * common.opt (frandom-seed): Fix parameter name.
12661 * doc/invoke.texi (frandom-seed): Ditto and describe parameter.
12662
12663 2016-01-11 Tom de Vries <tom@codesourcery.com>
12664
12665 PR tree-optimization/69058
12666 * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
12667 not supported.
12668
12669 2016-01-11 Andrew Burgess <andrew.burgess@embecosm.com>
12670
12671 * config/arc/arc.opt (mdiv-rem): Add period to the end.
12672 (mcode-density): Likewise.
12673
12674 2016-01-10 Tom de Vries <tom@codesourcery.com>
12675
12676 PR tree-optimization/69062
12677 * tree-parloops.c (loop_has_phi_with_address_arg): New function.
12678 (parallelize_loops): Don't paralelize loop that has phi with address
12679 arg.
12680
12681 2016-01-10 Tom de Vries <tom@codesourcery.com>
12682
12683 PR tree-optimization/69039
12684 * tree-parloops.c (try_create_reduction_list): Only allow single exit
12685 phi for reduction.
12686
12687 2016-01-09 John David Anglin <danglin@gcc.gnu.org>
12688
12689 PR middle-end/68743
12690 * match.pd: Require target has function_c99_misc before doing
12691 truncl(extend(x)) and trunc(extend(x)) -> extend(truncf(x)), etc.
12692
12693 2016-01-09 Gerald Pfeifer <gerald@pfeifer.com>
12694
12695 * configure.ac (isl_options_set_schedule_serialize_sccs): Also
12696 use GMPINC.
12697 * configure: Regenerate.
12698
12699 2016-01-09 Jakub Jelinek <jakub@redhat.com>
12700
12701 PR middle-end/50865
12702 PR tree-optimization/69097
12703 * fold-const.h (expr_not_equal_to): New prototype.
12704 * fold-const.c: Include stringpool.h and tree-ssanames.h.
12705 (expr_not_equal_to): New function.
12706 * match.pd (X % -Y is the same as X % Y): Don't optimize
12707 unless X is known not to be equal to minimum or Y is known
12708 not to be equal to -1.
12709 * tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument.
12710 fold TRUNC_MOD_EXPR if the second argument is not a power of two.
12711 (simplify_stmt_using_ranges): Adjust caller.
12712 (vrp_finalize): Call set_value_range on SSA_NAMEs before calling
12713 substitute_and_fold.
12714
12715 2016-01-09 Jan Hubicka <hubicka@ucw.cz>
12716
12717 * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
12718 w/o DECL_NAME.
12719
12720 2016-01-08 Jakub Jelinek <jakub@redhat.com>
12721
12722 PR tree-optimization/69167
12723 * gimple-fold.c (replace_stmt_with_simplification): Also punt if
12724 new SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs appear in operands of
12725 ops[0] comparison.
12726 * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
12727
12728 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
12729 Richard Biener <rguenther@suse.de>
12730
12731 PR tree-optimization/68707
12732 * tree-vect-slp.c (vect_analyze_slp_instance): Cancel permuted SLP
12733 instances that can be handled via vect_load_lanes.
12734
12735 2016-01-08 Uros Bizjak <ubizjak@gmail.com>
12736
12737 * symtab.c (symtab_node::equal_address_to): Return -1 instead of 2
12738 if we can't determine address equivalence.
12739 * alias.c (compare_base_decl): Update for changed return value of
12740 symtab_node::equal_address_to.
12741
12742 2016-01-08 Jason Merrill <jason@redhat.com>
12743
12744 PR c++/68983
12745 PR c++/67557
12746 * function.c (assign_temp): Guard against TREE_ADDRESSABLE types here.
12747 * expr.c (store_field): Not here.
12748 * tree-cfgcleanup.c (fixup_noreturn_call): Don't clear LHS of a
12749 call with TREE_ADDRESSABLE type.
12750 * tree-cfg.c (verify_gimple_call): Adjust.
12751
12752 2016-01-08 Olivier Hainque <hainque@adacore.com>
12753
12754 * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
12755 libc_internal.
12756
12757 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
12758
12759 * gcc.target/rs6000/paired.md (reduc_smax_v2sf): Rename to...
12760 (reduc_smax_scal_v2sf): ...here, make result SFmode, extract element.
12761 (reduc_smin_v2sf): Rename to...
12762 (reduc_smin_scal_v2sf): ...here, make result SFmode, extract element.
12763 (reduc_splus_v2sf): Rename to...
12764 (reduc_plus_scal_v2sf): ...here, make result SFmode, extract element.
12765
12766 2016-01-08 Jakub Jelinek <jakub@redhat.com>
12767
12768 PR tree-optimization/69162
12769 * gimplify.c (gimplify_va_arg_expr): Encode original type of
12770 valist argument in another argument.
12771 (gimplify_modify_expr): Adjust for the above change. Cleanup.
12772 * tree-stdarg.c (expand_ifn_va_arg_1): Use new 3rd argument
12773 to determine the va_list type, build a MEM_REF instead of
12774 build_fold_indirect_ref.
12775
12776 PR tree-optimization/69172
12777 * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
12778 gimple_build.
12779
12780 2016-01-08 Thomas Preud'homme <thomas.preudhomme@arm.com>
12781
12782 PR tree-optimization/67781
12783 * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
12784 and cmpnop in two steps: first the ones not accessed in original
12785 gimple expression in a endian independent way and then the ones not
12786 accessed in the final result in an endian-specific way.
12787
12788 2016-01-08 Jakub Jelinek <jakub@redhat.com>
12789
12790 PR tree-optimization/69083
12791 * tree-vect-slp.c (vect_get_constant_vectors): For
12792 VECTOR_BOOLEAN_TYPE_P assert op is fold_convertible_p to vector_type's
12793 element type. If op is fold_convertible_p to vector_type's element
12794 type, use NOP_EXPR instead of VCE.
12795
12796 2016-01-08 Segher Boessenkool <segher@kernel.crashing.org>
12797
12798 PR rtl-optimization/67778
12799 PR rtl-optimization/68634
12800 PR rtl-optimization/68909
12801 * shrink-wrap.c (try_shrink_wrapping): Add comment. Don't pop
12802 block from the stack until done with it. Remove a superfluous
12803 bitmap set. Remove a superfluous bitmap test.
12804
12805 2016-01-07 Martin Sebor <msebor@redhat.com>
12806
12807 PR c/68966
12808 * doc/extend.texi (__atomic Builtins, __sync Builtins): Document
12809 constraint on the type of arguments.
12810
12811 2016-01-07 Andreas Tobler <andreast@gcc.gnu.org>
12812
12813 * config/arm/freebsd.h: Rename SUBTARGET_OVERRIDE_OPTIONS to
12814 SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. Adjust to check
12815 unaligned_access on the gcc_options set.
12816 * config/arm/arm.c (arm_option_override_internal): Use
12817 SUBTARGET_OVERRIDE_INTERNAL_OPTIONS.
12818
12819 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
12820
12821 PR target/69140
12822 * config/i386/i386.c (ix86_frame_pointer_required): Enable
12823 frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
12824
12825 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
12826
12827 Revert
12828 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
12829
12830 PR target/69140
12831 * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
12832 depending on frame_pointer_needed before remaining integer and SSE
12833 registers are saved.
12834
12835 2016-01-07 Sandra Loosemore <sandra@codesourcery.com>
12836
12837 PR 1078
12838 * doc/extend.texi (Nvidia PDX Function Attributes): New section.
12839
12840 2016-01-07 H.J. Lu <hongjiu.lu@intel.com>
12841
12842 PR target/69171
12843 * config/i386/sse.md (<sse>_sqrt<mode>2<mask_name><round_name>):
12844 Use the "xBm" constraint.
12845 (float<sseintvecmodelower><mode>2<mask_name><round_name):
12846 Likewise.
12847 (sse_cvtsi2ss<round_name>): Use round_nimm_scalar_predicate.
12848 (sse_cvtsi2ssq<round_name>): Likewise.
12849 (sse_cvtss2si<round_name>): Likewise.
12850 (sse_cvtss2siq<round_name>): Likewise.
12851 (sse2_cvtsi2sdq<round_name>): Likewise.
12852 (sse2_cvtsd2si<round_name>): Likewise.
12853 (sse2_cvtsd2siq<round_name>): Likewise.
12854 * config/i386/subst.md (round_nimm_scalar_predicate): New
12855 predicate.
12856
12857 2015-12-15 Bernd Schmidt <bschmidt@redhat.com>
12858
12859 PR middle-end/67639
12860 * varasm.c (make_decl_rtl): Mark invalid register vars as
12861 DECL_EXTERNAL.
12862
12863 PR rtl-optimization/66206
12864 * bt-load.c (find_btr_use): Change first arg to be a pointer to an rtx.
12865 All callers changed.
12866
12867 2016-01-07 Jakub Jelinek <jakub@redhat.com>
12868
12869 PR tree-optimization/69141
12870 * tree-ssa-pre.c: Include langhooks.h.
12871 (eliminate_dom_walker::before_dom_children): Use
12872 lang_hooks.decl_printable_name instead of
12873 cgraph_node::get ()->name ().
12874
12875 PR middle-end/68960
12876 * gimple-expr.c (copy_var_decl): If var has DECL_USER_ALIGN set, copy
12877 it and DECL_ALIGN too.
12878
12879 2016-01-06 Robert Suchanek <robert.suchanek@imgtec.com>
12880
12881 * config/mips/mips-ftypes.def: Sort to lexicographical order.
12882
12883 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
12884
12885 PR target/69140
12886 * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
12887 depending on frame_pointer_needed before remaining integer and SSE
12888 registers are saved.
12889
12890 2015-01-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12891
12892 * config/rs6000/vsx.md (*p9_vecload_<mode>): Replace VSX_M
12893 mode iterator with VSX_M2.
12894 (*p9_vecstore_<mode>): Likewise.
12895 (*vsx_le_permute_<mode>): Restrict to !TARGET_P9_VECTOR.
12896 (*vsx_le_perm_load_<mode> for VSX_LE_128): Likewise.
12897 (*vsx_le_perm_store_<mode> for VSX_LE_128): Likewise.
12898 (define_split for VSX_LE128 stores): Likewise.
12899 (define_peephole2 for TImode LE swaps): Likewise.
12900 (define_split for VSX_LE128 post-reload stores): Likewise.
12901
12902 2016-01-06 Marek Polacek <polacek@redhat.com>
12903
12904 PR sanitizer/69099
12905 * convert.c (convert_to_integer_1): Adjust call to
12906 ubsan_instrument_float_cast. Use NULL_TREE instead of NULL.
12907 * ubsan.c (ubsan_instrument_float_cast): Drop the ARG parameter. Use
12908 EXPR instead of ARG.
12909 * ubsan.h (ubsan_instrument_float_cast): Adjust declaration.
12910
12911 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
12912
12913 PR 1078
12914 * doc/extend.texi (RL78 Variable Attributes): New section.
12915
12916 2016-01-05 Marek Polacek <polacek@redhat.com>
12917
12918 PR c/69104
12919 * builtins.c (get_memmodel): Use expansion point location rather than
12920 the input location. Call warning_at rather than warning.
12921 (expand_builtin_atomic_compare_exchange): Likewise.
12922 (expand_builtin_atomic_load): Likewise.
12923 (expand_builtin_atomic_store): Likewise.
12924 (expand_builtin_atomic_clear): Likewise.
12925
12926 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
12927
12928 PR target/68991
12929 * config/i386/i386.c (ix86_expand_vector_logical_operator):
12930 Replace nonimmediate_operand with vector_operand.
12931 * config/i386/predicates.md (vector_operand): New predicate.
12932 (general_vector_operand): Replace nonimmediate_operand with
12933 vector_operand.
12934 * config/i386/sse.md: Replace nonimmediate_operand with
12935 vector_operand and m constraint with Bm constraint on SSE
12936 patterns with 16-byte memory operand.
12937 * config/i386/subst.md (round_nimm_predicate): Replace
12938 nonimmediate_operand with vector_operand.
12939 (round_saeonly_nimm_predicate): Likewise.
12940 (round_saeonly_nimm_scalar_predicate): New.
12941
12942 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
12943
12944 PR target/68991
12945 * config/i386/constraints.md (Bm): New constraint.
12946 * config/i386/predicates.md (vector_memory_operand): New
12947 predicate.
12948 * config/i386/sse.md: Replace xm with xBm in plusminus and
12949 any_logic patterns.
12950
12951 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
12952
12953 PR 1078
12954 * doc/extend.texi (V850 Function Attributes): New section.
12955 (V850 Variable Attributes): New section.
12956
12957 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
12958
12959 PR 1078
12960 * doc/extend.texi (MicroBlaze Function Attributes): Document
12961 interrupt_handler and fast_interrupt attributes.
12962
12963 2016-01-05 Sergei Trofimovich <siarheit@google.com>
12964
12965 PR other/60465
12966 * config/ia64/ia64.c (ia64_expand_load_address): Use gprel64
12967 for local symbolic operands.
12968 * config/ia64/predicates.md (local_symbolic_operand64): New
12969 predicate.
12970
12971 2016-01-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12972
12973 PR rtl-optimization/68651
12974 * combine.c (combine_simplify_rtx): Canonicalize x + x into
12975 x << 1.
12976
12977 2016-01-05 Nathan Sidwell <nathan@acm.org>
12978
12979 * alias.c (compare_base_decls): Use symtab_node::get.
12980
12981 2016-01-05 Nick Clifton <nickc@redhat.com>
12982
12983 PR target/68770
12984 * ira-costs.c (copy_cost): Initialise the t_icode field of the
12985 secondary_reload_info structure.
12986
12987 PR target/66655
12988 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
12989 decls if weak support is available.
12990
12991 2016-01-04 Martin Sebor <msebor@redhat.com>
12992
12993 * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.
12994
12995 2016-01-04 Michael Meissner <meissner@linux.vnet.ibm.com>
12996
12997 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
12998 OPTION_MASK_P9_DFORM.
12999
13000 * config/rs6000/constraints.md (wo constraint): New constraint for
13001 ISA 3.0 (power9).
13002
13003 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
13004 for wo constraint.
13005 (rs6000_init_hard_regno_mode_ok): Likewise.
13006
13007 * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
13008 wo constraint.
13009
13010 * config/rs6000/altivec.md (altivec_vperm_<mode>): Clean up vperm
13011 expanders not to have constraints. Add support for ISA 3.0 xxperm
13012 instruction. Add support for fusing xxlor with xxperm.
13013 (altivec_vperm_<mode>_internal): Likewise.
13014 (altivec_vperm_v8hiv16qi): Likewise.
13015 (altivec_vperm_<mode>v16q): Likewise.
13016 (altivec_vperm_<mode>_uns): Likewise.
13017 (vperm_v8hiv4si): Likewise.
13018 (vperm_v16qiv8hi): Likewise.
13019
13020 * doc/md.texi (RS/6000 constraints): Document wo constraint.
13021
13022 2016-01-04 Jakub Jelinek <jakub@redhat.com>
13023
13024 Update copyright years.
13025
13026 * gcc.c (process_command): Update copyright notice dates.
13027 * gcov-dump.c (print_version): Ditto.
13028 * gcov.c (print_version): Ditto.
13029 * gcov-tool.c (print_version): Ditto.
13030 * gengtype.c (create_file): Ditto.
13031 * doc/cpp.texi: Bump @copying's copyright year.
13032 * doc/cppinternals.texi: Ditto.
13033 * doc/gcc.texi: Ditto.
13034 * doc/gccint.texi: Ditto.
13035 * doc/gcov.texi: Ditto.
13036 * doc/install.texi: Ditto.
13037 * doc/invoke.texi: Ditto.
13038
13039 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
13040
13041 * config/arm/arm.c (aapcs_vfp_allocate_return_reg): Treat all integer
13042 modes larger than TImode as TImode if NEON is not enabled.
13043
13044 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
13045
13046 PR target/69100
13047 * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
13048 mode for %f0-%f31 only if TARGET_FPU.
13049
13050 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
13051
13052 PR target/69072
13053 * config/sparc/sparc.c (scan_record_type): Take into account subfields
13054 to compute the PACKED_P predicate.
13055 (function_arg_record_value): Minor tweaks.
13056
13057 2016-01-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
13058
13059 * doc/install.texi (--with-multilib-list): Describe the meaning of the
13060 option for arm*-*-* targets.
13061
13062 2016-01-03 Sandra Loosemore <sandra@codesourcery.com>
13063
13064 * doc/extend.texi (Common Function Attributes): Move docs for
13065 MSP430-specific attributes to....
13066 (MSP430 Function Attributes): ...here. Delete the redundant
13067 entries and copy-edit the remaining text.
13068 (MSP430 Variable Attributes): Use uniform format for index
13069 entries and add a cross-reference to the corresponding function
13070 attribute docs.
13071
13072 2016-01-03 Vladimír Čunát <vcunat@gmail.com>
13073
13074 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix
13075 -finite-math typo.
13076 (x86 Options): Likewise.
13077
13078 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
13079
13080 PR 1078
13081
13082 * extend.texi (Common Function Attributes) <no_stack_limit>: New.
13083 * invoke.texi (Code Gen Options) <-fno-stack-limit>: Add pointer
13084 to corresponding attribute.
13085
13086 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
13087
13088 * doc/extend.texi (Common Function Attributes) <noplt>: Move
13089 to correct alphabetization of table. Copy-edit and correct
13090 markup.
13091 <stack_protect>: Likewise.
13092 <target_clones>: Likewise.
13093 <simd>: Likewise.
13094 * doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>:
13095 Correct punctuation.
13096 (Code Gen Options) <-fno-plt>: Copy-edit.
13097
13098 2016-01-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
13099
13100 PR target/68917
13101 * config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of
13102 SI values. Explicitly convert SI to DI and vice-versa.
13103
13104 2016-01-01 Jakub Jelinek <jakub@redhat.com>
13105
13106 PR tree-optimization/69070
13107 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Only test
13108 REAL_VALUE_ISSIGNALING_NAN on arg0 if arg0 is a REAL_CST.
13109
13110 PR sanitizer/69055
13111 * ubsan.c (ubsan_instrument_float_cast): Call
13112 initialize_sanitizer_builtins.
13113
13114 PR target/69015
13115 * ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).
13116 \f
13117 Copyright (C) 2016 Free Software Foundation, Inc.
13118
13119 Copying and distribution of this file, with or without modification,
13120 are permitted in any medium without royalty provided the copyright
13121 notice and this notice are preserved.