altivec.md (VNEG iterator): New iterator for VNEGW/VNEGD instructions.
[gcc.git] / gcc / ChangeLog
1 2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
2
3 * config/rs6000/altivec.md (VNEG iterator): New iterator for
4 VNEGW/VNEGD instructions.
5 (p9_neg<mode>2): New insns for ISA 3.0 VNEGW/VNEGD.
6 (neg<mode>2): Add expander for V2DImode added in ISA 2.06, and
7 support for ISA 3.0 VNEGW/VNEGD instructions.
8
9 2016-05-24 Cesar Philippidis <cesar@codesourcery.com>
10
11 * gimplify.c (omp_notice_variable): Use zero-length arrays for data
12 pointers inside OACC_DATA regions.
13 (gimplify_scan_omp_clauses): Prune firstprivate clause associated
14 with OACC_DATA, OACC_ENTER_DATA and OACC_EXIT data regions.
15 (gimplify_adjust_omp_clauses): Fix typo in comment.
16
17 2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
18
19 * config/rs6000/altivec.md (VParity): New mode iterator for vector
20 parity built-in functions.
21 (p9v_ctz<mode>2): Add support for ISA 3.0 vector count trailing
22 zeros.
23 (p9v_parity<mode>2): Likewise.
24 * config/rs6000/vector.md (VEC_IP): New mode iterator for vector
25 parity.
26 (ctz<mode>2): ISA 3.0 expander for vector count trailing zeros.
27 (parity<mode>2): ISA 3.0 expander for vector parity.
28 * config/rs6000/rs6000-builtin.def (BU_P9_MISC_1): New macros for
29 power9 built-ins.
30 (BU_P9_64BIT_MISC_0): Likewise.
31 (BU_P9_MISC_0): Likewise.
32 (BU_P9V_AV_1): Likewise.
33 (BU_P9V_AV_2): Likewise.
34 (BU_P9V_AV_3): Likewise.
35 (BU_P9V_AV_P): Likewise.
36 (BU_P9V_VSX_1): Likewise.
37 (BU_P9V_OVERLOAD_1): Likewise.
38 (BU_P9V_OVERLOAD_2): Likewise.
39 (BU_P9V_OVERLOAD_3): Likewise.
40 (VCTZB): Add vector count trailing zeros support.
41 (VCTZH): Likewise.
42 (VCTZW): Likewise.
43 (VCTZD): Likewise.
44 (VPRTYBD): Add vector parity support.
45 (VPRTYBQ): Likewise.
46 (VPRTYBW): Likewise.
47 (VCTZ): Add overloaded vector count trailing zeros support.
48 (VPRTYB): Add overloaded vector parity support.
49 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
50 overloaded vector count trailing zeros and parity instructions.
51 * config/rs6000/rs6000.md (wd mode attribute): Add V1TI and TI for
52 vector parity support.
53 * config/rs6000/altivec.h (vec_vctz): Add ISA 3.0 vector count
54 trailing zeros support.
55 (vec_cntlz): Likewise.
56 (vec_vctzb): Likewise.
57 (vec_vctzd): Likewise.
58 (vec_vctzh): Likewise.
59 (vec_vctzw): Likewise.
60 (vec_vprtyb): Add ISA 3.0 vector parity support.
61 (vec_vprtybd): Likewise.
62 (vec_vprtybw): Likewise.
63 (vec_vprtybq): Likewise.
64 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
65 the ISA 3.0 vector count trailing zeros and vector parity built-in
66 functions.
67
68 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
69
70 * tree-ssa-reassoc.c (sort_by_operand_rank): Skip checking gimple_bb
71 when there is stmt_to_insert.
72
73 2016-05-24 Martin Sebor <msebor@redhat.com>
74
75 PR c++/71147
76 * gcc/tree.h (complete_or_array_type_p): New inline function.
77
78 2016-05-24 Jakub Jelinek <jakub@redhat.com>
79
80 * config/i386/i386.h (TARGET_AVOID_4BYTE_PREFIXES): Define.
81 * config/i386/constraints.md (Yr): Test TARGET_AVOID_4BYTE_PREFIXES
82 rather than X86_TUNE_AVOID_4BYTE_PREFIXES.
83
84 * config/i386/sse.md (<sse4_1>_round<ssemodesuffix><avxsizesuffix>):
85 Limit 1st alternative to noavx isa, split 2nd alternative into one
86 noavx and one avx alternative, use *x and Bm in the former and
87 x and m in the latter.
88
89 * config/i386/sse.md (vec_set<mode>_0): Use sse4_noavx isa instead
90 of sse4 for the first alternative, drop %v from the template
91 and d operand modifier. Split second alternative into one sse4_noavx
92 and one avx alternative, use *x instead of *v in the former and v
93 instead of *v in the latter.
94 (*sse4_1_extractps): Use noavx isa instead of * for the first
95 alternative, drop %v from the template. Split second alternative into
96 one noavx and one avx alternative, use *x instead of *v in the
97 former and v instead of *v in the latter.
98 (<vi8_sse4_1_avx2_avx512>_movntdqa): Guard the first 2 alternatives
99 with noavx and the last one with avx.
100 (sse4_1_phminposuw): Guard first alternative with noavx isa,
101 split the second one into one noavx and one avx alternative,
102 use *x and Bm in the former and x and m in the latter one.
103 (<sse4_1>_ptest<mode>): Use noavx instead of * for the first two
104 alternatives.
105
106 * config/i386/sse.md (sse4_1_<code>v8qiv8hi2<mask_name>): Limit
107 first two alternatives to noavx, use *x instead of *v in the second
108 one, add avx alternative without *.
109 (sse4_1_<code>v4qiv4si2<mask_name>, sse4_1_<code>v4hiv4si2<mask_name>,
110 sse4_1_<code>v2qiv2di2<mask_name>, sse4_1_<code>v2hiv2di2<mask_name>,
111 sse4_1_<code>v2siv2di2<mask_name>): Likewise.
112
113 2016-05-24 Jeff Law <law@redhat.com>
114
115 * tree-ssa-threadbackwards.c (convert_and_register_jump_thread_path):
116 New function, extracted from...
117 (fsm_find_control_statement_thread_paths): Here. Use the new function.
118 Allow simple copies and constant initializations in the SSA chain.
119
120 2016-05-24 Marek Polacek <polacek@redhat.com>
121
122 PR c/71249
123 * gimplify.c (gimplify_switch_expr): Look into the innermost lexical
124 scope.
125
126 2016-05-24 Jakub Jelinek <jakub@redhat.com>
127
128 PR c++/71257
129 * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
130 SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
131 SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP. Add
132 SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP and
133 SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP cases explicitly.
134
135 2016-05-24 Richard Biener <rguenther@suse.de>
136
137 PR tree-optimization/71240
138 * tree-ssa-math-opts.c (init_symbolic_number): Verify the source
139 has integral type.
140
141 2016-05-24 Richard Biener <rguenther@suse.de>
142
143 PR tree-optimization/71230
144 * tree-ssa-reassoc.c (zero_one_operation): Handle negate special ops.
145
146 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
147
148 * tree-vectorizer.h (vectorizable_comparison): Delete.
149 * tree-vect-loop.c (vectorizable_reduction): Remove redundant
150 PURE_SLP_STMT check.
151 * tree-vect-stmts.c (vectorizable_call): Likewise.
152 (vectorizable_simd_clone_call): Likewise.
153 (vectorizable_conversion): Likewise.
154 (vectorizable_assignment): Likewise.
155 (vectorizable_shift): Likewise.
156 (vectorizable_operation): Likewise.
157 (vectorizable_load): Likewise.
158 (vectorizable_condition): Likewise.
159 (vectorizable_store): Likewise. Assert that we don't have
160 hybrid SLP.
161 (vectorizable_comparison): Make static. Remove redundant
162 PURE_SLP_STMT check.
163 (vect_transform_stmt): Assert that we always have an slp_node
164 if PURE_SLP_STMT.
165
166 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
167
168 * config/arm/neon.md (ashldi3_neon): Replace comparison of INTVAL of
169 operands[2] against 1 with comparison against CONST1_RTX.
170 (<shift>di3_neon): Likewise.
171 * config/arm/predicates.md (const0_operand): Replace with comparison
172 against CONST0_RTX.
173
174 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
175
176 * config/arm/arm.md (ashldi3): Replace comparison of INTVAL of
177 operands[2] against 1 with comparison against CONST1_RTX.
178 (ashrdi3): Likewise.
179 (lshrdi3): Likewise.
180 (ashlsi3): Replace cast of INTVAL to unsigned HOST_WIDE_INT with
181 UINTVAL.
182 (ashrsi3): Likewise.
183 (lshrsi3): Likewise.
184 (rotrsi3): Likewise.
185 (define_split above *compareqi_eq0): Likewise.
186 (define_split above "prologue"): Likewise.
187 * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
188 * config/arm/predicates.md (shift_operator): Likewise.
189 (shift_nomul_operator): Likewise.
190 (sat_shift_operator): Likewise.
191 (thumb1_cmp_operand): Likewise.
192 (const_neon_scalar_shift_amount_operand): Replace manual range
193 check with IN_RANGE.
194 * config/arm/thumb1.md (define_peephole2 above *thumb_subdi3):
195 Replace cast of INTVAL to unsigned HOST_WIDE_INT with UINTVAL.
196
197 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
198
199 * config/arm/arm.md (andsi3): Replace cast of 1 to HOST_WIDE_INT
200 with HOST_WIDE_INT_1.
201 (insv): Likewise.
202 * config/arm/arm.c (optimal_immediate_sequence): Replace cast of
203 1 to unsigned HOST_WIDE_INT with HOST_WIDE_INT_1U.
204 (arm_canonicalize_comparison): Likewise.
205 (thumb1_rtx_costs): Replace cast of 1 to HOST_WIDE_INT with
206 HOST_WIDE_INT_1.
207 (thumb1_size_rtx_costs): Likewise.
208 (vfp_const_double_index): Replace cast of 1 to unsigned
209 HOST_WIDE_INT with HOST_WIDE_INT_1U.
210 (get_jump_table_size): Replace cast of 1 to HOST_WIDE_INT with
211 HOST_WIDE_INT_1.
212 (arm_asan_shadow_offset): Replace cast of 1 to unsigned
213 HOST_WIDE_INT with HOST_WIDE_INT_1U.
214 * config/arm/neon.md (vec_set<mode>): Replace cast of 1 to
215 HOST_WIDE_INT with HOST_WIDE_INT_1.
216
217 2016-05-24 Marek Polacek <polacek@redhat.com>
218
219 * tree-cfg.h (should_remove_lhs_p): New predicate.
220 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
221 * gimplify.c (gimplify_modify_expr): Likewise.
222 * tree-cfg.c (verify_gimple_call): Likewise.
223 * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
224 * gimple-fold.c: Include "tree-cfg.h".
225 (gimple_fold_call): Use should_remove_lhs_p.
226
227 2016-05-24 Richard Biener <rguenther@suse.de>
228
229 PR tree-optimization/71253
230 * cfganal.h (control_dependences): Make robust against edge
231 and BB removal.
232 (control_dependences::control_dependences): Remove edge_list argument.
233 (control_dependences::get_edge): Remove.
234 (control_dependences::get_edge_src): Add.
235 (control_dependences::get_edge_dest): Likewise.
236 (control_dependences::m_el): Make a vector of edge src/dest index.
237 * cfganal.c (control_dependences::find_control_dependence): Adjust.
238 (control_dependences::control_dependences): Likewise.
239 (control_dependences::~control_dependence): Likewise.
240 (control_dependences::get_edge): Remove.
241 (control_dependences::get_edge_src): Add.
242 (control_dependences::get_edge_dest): Likewise.
243 * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Use
244 get_edge_src.
245 (perform_tree_ssa_dce): Adjust.
246 * tree-loop-distribution.c (create_edge_for_control_dependence): Use
247 get_edge_src.
248 (pass_loop_distribution::execute): Adjust. Do loop destroying
249 conditional on changed.
250
251 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
252
253 PR target/69857
254 * config/arm/arm.c (gen_operands_ldrd_strd): Remove bogus early
255 return. Reindent transformation comment and mention the ARM state
256 behavior.
257
258 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
259
260 PR middle-end/71252
261 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Add stmt_to_insert
262 after build_and_add_sum creates new use stmt.
263
264 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
265
266 * tree-vect-stmts.c (vectorizable_load): Reorder checks so that
267 load_lanes/grouped_load classification comes first. Don't check
268 whether the vectorization factor is a multiple of the group size
269 for load_lanes.
270
271 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
272
273 * tree-vect-data-refs.c (vect_analyze_group_access_1): Set
274 GROUP_GAP for single-element interleaving.
275 * tree-vect-stmts.c (vectorizable_load): Remove force_peeling
276 variable.
277
278 2016-05-24 Richard Biener <rguenther@suse.de>
279
280 PR middle-end/70434
281 PR c/69504
282 * tree-ssa.c (non_rewritable_mem_ref_base): Make sure to mark
283 bases which are accessed with non-invariant indices.
284 * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Re-write
285 constant index ARRAY_REFs of vectors into BIT_FIELD_REFs.
286
287 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
288
289 PR middle-end/71170
290 * tree-ssa-reassoc.c (struct operand_entry): Add field stmt_to_insert.
291 (add_to_ops_vec): Add stmt_to_insert.
292 (add_repeat_to_ops_vec): Init stmt_to_insert.
293 (insert_stmt_before_use): New.
294 (transform_add_to_multiply): Remove mult_stmt insertion and add it
295 to ops vector.
296 (get_ops): Init stmt_to_insert.
297 (maybe_optimize_range_tests): Likewise.
298 (rewrite_expr_tree): Insert stmt_to_insert before use stmt.
299 (rewrite_expr_tree_parallel): Likewise.
300 (reassociate_bb): Likewise.
301
302 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
303
304 PR target/71201
305 * config/rs6000/altivec.md (altivec_vperm_<mode>_internal): Drop
306 ISA 3.0 xxperm fusion alternative.
307 (altivec_vperm_v8hiv16qi): Likewise.
308 (altivec_vperm_<mode>_uns_internal): Likewise.
309 (vperm_v8hiv4si): Likewise.
310 (vperm_v16qiv8hi): Likewise.
311
312 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
313 Kelvin Nilsen <kelvin@gcc.gnu.org>
314
315 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate
316 vpermr/xxpermr on ISA 3.0.
317 (altivec_expand_vec_perm_le): Likewise.
318 * config/rs6000/altivec.md (UNSPEC_VPERMR): New unspec.
319 (altivec_vpermr_<mode>_internal): Add VPERMR/XXPERMR support for
320 ISA 3.0.
321
322 2016-05-23 Uros Bizjak <ubizjak@gmail.com>
323
324 * config/i386/i386.h (IS_STACK_MODE): Enable for
325 TARGET_MIX_SSE_I387. Rewrite using X87_FLOAT_MODE_P and
326 SSE_FLOAT_MODE_P macros.
327 * config/i386/i386.c (ix86_preferred_reload_class): Use
328 IS_STACK_MODE, INTEGER_CLASS_P, FLOAT_CLASS_P and Q_CLASS_P macros.
329 Cleanup regclass processing for CONST_DOUBLE_P.
330 (ix86_preferred_output_reload_class): Use IS_STACK_MODE macro.
331 (ix86_rtx_costs): Remove redundant TARGET_80387 check
332 with IS_STACK_MODE macro.
333 * config/i386/i386.md: Replace SSE_FLOAT_MODE_P (DFmode)
334 with TARGET_SSE2.
335 (*movdf_internal): Use IS_STACK_MODE macro.
336 (*movsf_internal): Ditto.
337
338 2016-05-23 Marc Glisse <marc.glisse@inria.fr>
339
340 * match.pd (a * (1 << b), ~x & ~y, ~X ^ ~Y, (X ^ Y) ^ Y, ~ (-A),
341 ~ (A - 1), ~(~X >> Y), ~(~X >>r Y)): Relax constraints.
342
343 2016-05-23 Jeff Law <law@redhat.com>
344
345 * tree-ssa-threadbackward.c (profitable_jump_thread_path): New function
346 extracted from ...
347 (fsm_find_control_statement_thread_paths): Call it.
348
349 2016-05-23 Martin Jambor <mjambor@suse.cz>
350
351 PR ipa/71234
352 * ipa-cp.c (ipa_get_indirect_edge_target_1): Only check value of
353 from_global_constant if t is not NULL.
354
355 2016-05-23 Marek Polacek <polacek@redhat.com>
356
357 PR c/49859
358 * common.opt (Wswitch-unreachable): New option.
359 * doc/invoke.texi: Document -Wswitch-unreachable.
360 * gimplify.c (gimplify_switch_expr): Implement the -Wswitch-unreachable
361 warning.
362
363 2016-05-23 Bin Cheng <bin.cheng@arm.com>
364
365 * tree-ssa-address.c (copy_ref_info): Check NULL TMR_STEP when
366 TMR_INDEX is non-NULL.
367
368 2016-05-23 Richard Biener <rguenther@suse.de>
369
370 PR tree-optimization/71230
371 * tree-ssa-reassoc.c (acceptable_pow_call): Move initial condition...
372 (try_special_add_to_ops): ... here. Always test for single-use.
373
374 2016-05-23 Martin Jambor <mjambor@suse.cz>
375
376 * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Create an empty
377 default block if a PHI node in the original one would be resized.
378
379 2016-05-23 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
380
381 PR tree-optimization/58135
382 * tree-vect-slp.c: When group size is not multiple
383 of vector size, allow splitting of store group at
384 vector boundary.
385
386 2016-05-23 Christophe Lyon <christophe.lyon@linaro.org>
387
388 * config/arm/arm_neon.h (vtst_p16, vtstq_p16): New.
389
390 2016-05-22 Jakub Jelinek <jakub@redhat.com>
391
392 * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
393 vec_set_hi_<mode><mask_name>): Add && <mask_avx512dq_condition>
394 condition. For !TARGET_AVX512DQ, emit 32x4 instruction instead
395 of 64x2.
396
397 * config/i386/sse.md (vec_set_lo_v16hi, vec_set_hi_v16hi,
398 vec_set_lo_v32qi, vec_set_hi_v32qi): Add alternative with
399 v constraint instead of x and vinserti32x4 insn.
400
401 * config/i386/sse.md (i128vldq): New mode iterator.
402 (avx2_vbroadcasti128_<mode>, avx_vbroadcastf128_<mode>): Add
403 avx512dq and avx512vl alternatives.
404
405 * config/i386/sse.md (avx2_vec_dupv4df): Use v instead of x
406 constraint, use maybe_evex prefix instead of vex.
407 (vec_dupv4sf): Use v constraint instead of x for output
408 operand except for noavx alternative, use Yv constraint
409 instead of x for input. Use maybe_evex prefix instead of vex.
410 (*vec_dupv4si): Likewise.
411 (*vec_dupv2di): Likewise.
412
413 2016-05-22 Kugan Vivekanandarajah <kuganv@linaro.org>
414
415 PR middle-end/40921
416 * tree-ssa-reassoc.c (try_special_add_to_ops): New.
417 (linearize_expr_tree): Call try_special_add_to_ops.
418 (reassociate_bb): Convert MULT_EXPR by (-1) to NEGATE_EXPR.
419
420 2016-05-21 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
421
422 * config/avr/avr.c (avr_expand_prologue): Add INCOMING_FRAME_SP_OFFSET
423 to computed stack_usage.
424
425 2016-05-21 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
426
427 PR target/71103
428 * config/avr/avr.md (define_expand "mov<mode>"): If the source
429 operand is subreg (symbol_ref) then move the symbol ref to register.
430
431 2016-05-21 Jan Hubicka <hubicka@ucw.cz>
432
433 * tree.c (array_at_struct_end_p): Look through MEM_REF.
434
435 2016-05-21 Kugan Vivekanandarajah <kuganv@linaro.org>
436
437 PR middle-end/71179
438 * tree-ssa-reassoc.c (transform_add_to_multiply): Disallow float
439 VECTOR type.
440
441 2016-05-20 Eric Botcazou <ebotcazou@adacore.com>
442
443 * tree-vrp.c (compare_values_warnv): Simplify handling of symbolic
444 ranges by calling get_single_symbol and tidy up. Look more closely
445 into NAME + CST1 vs CST2 comparisons if type overflow is undefined.
446
447 2016-05-20 Jeff Law <law@redhat.com>
448
449 * bitmap.c (bitmap_find_bit): Remove useless test.
450
451 2016-05-20 Segher Boessenkool <segher@kernel.crashing.org>
452
453 * function.c (thread_prologue_and_epilogue_insns): Commit the
454 insertion of the epilogue.
455
456 2016-05-20 Martin Jambor <mjambor@suse.cz>
457
458 PR tree-optimization/70884
459 * tree-sra.c (initialize_constant_pool_replacements): Do not check
460 should_scalarize_away_bitmap and cannot_scalarize_away_bitmap bits.
461 (sort_and_splice_var_accesses): Do not consider multiple scalar reads
462 of constant pool data as a reason for scalarization.
463
464 2016-05-20 Eric Botcazou <ebotcazou@adacore.com>
465
466 * config/arm/arm.c (arm_expand_prologue): Set the stack usage to 0
467 for naked functions.
468 (thumb1_expand_prologue): Likewise.
469
470 2016-05-20 Nathan Sidwell <nathan@acm.org>
471
472 * config/nvptx/nptx.c (nvptx_option_override): Only set
473 flag_toplevel_reorder, if not explicitly specified. Set
474 flag_no_common, unless explicitly specified.
475
476 2016-05-20 David Malcolm <dmalcolm@redhat.com>
477
478 * calls.c (can_implement_as_sibling_call_p): Mark param
479 reg_parm_stack_space with ATTRIBUTE_UNUSED.
480
481 2016-05-20 Uros Bizjak <ubizjak@gmail.com>
482
483 * config/i386/i386.c (ix86_rtx_costs) <case CONST_DOUBLE>:
484 Use IS_STACK_MODE when calculating cost of standard 80387 constants.
485 Fallthru to CONST_VECTOR case to calculate cost of standard SSE
486 constants.
487 <case CONST_WIDE_INT>: Calculate cost of (MEM (SYMBOL_REF)).
488 (ix86_legitimate_constant_p): Use CASE_CONST_SCALAR_INT
489 and CASE_CONST_ANY.
490
491 2016-05-20 Cesar Philippidis <cesar@codesourcery.com>
492
493 * config/nvptx/nvptx.md (sincossf3): New pattern.
494
495 2016-05-20 David Malcolm <dmalcolm@redhat.com>
496
497 * calls.c (maybe_complain_about_tail_call): New function.
498 (initialize_argument_information): Call
499 maybe_complain_about_tail_call when clearing *may_tailcall.
500 (can_implement_as_sibling_call_p): Call
501 maybe_complain_about_tail_call when returning false.
502 (expand_call): Read CALL_EXPR_MUST_TAIL_CALL and, if set,
503 ensure try_tail_call is set. Call maybe_complain_about_tail_call
504 if tail-call optimization fails.
505 * cfgexpand.c (expand_call_stmt): Initialize
506 CALL_EXPR_MUST_TAIL_CALL from gimple_call_must_tail_p.
507 * gimple-pretty-print.c (dump_gimple_call): Dump
508 gimple_call_must_tail_p.
509 * gimple.c (gimple_build_call_from_tree): Call
510 gimple_call_set_must_tail with the value of
511 CALL_EXPR_MUST_TAIL_CALL.
512 * gimple.h (enum gf_mask): Add GF_CALL_MUST_TAIL_CALL.
513 (gimple_call_set_must_tail): New function.
514 (gimple_call_must_tail_p): New function.
515 * print-tree.c (print_node): Update printing of TREE_STATIC
516 to reflect its use for CALL_EXPR_MUST_TAIL_CALL.
517 * tree-core.h (struct tree_base): Add MUST_TAIL_CALL to the
518 trailing comment listing applicable flags.
519 * tree.h (CALL_EXPR_MUST_TAIL_CALL): New macro.
520
521 2016-05-20 David Malcolm <dmalcolm@redhat.com>
522
523 * calls.c (expand_call): Move "Rest of purposes for tail call
524 optimizations to fail" to...
525 (can_implement_as_sibling_call_p): ...this new function, and
526 split into multiple "if" statements.
527
528 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
529
530 * cfgloop.h (expected_loop_iterations_unbounded,
531 expected_loop_iterations): Unconstify.
532 * cfgloopanal.c (expected_loop_iterations_unbounded): Sanity check the
533 profile with known upper bound; return 3 when profile is absent.
534 (expected_loop_iterations): Update.
535
536 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
537
538 * loop-doloop.c (doloop_optimize): Use get_estimated_loop_iterations_int
539 and get_max_loop_iterations_int.
540
541 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
542
543 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can not produce
544 realistic upper bounds here.
545
546 2016-05-20 Jakub Jelinek <jakub@redhat.com>
547
548 PR c++/71210
549 * gimple-fold.c (gimple_fold_call): Do not remove lhs of noreturn
550 calls if the LHS is variable length or has addressable type.
551 If targets[0]->decl is a noreturn call with void return type and
552 zero arguments, adjust fntype and remove lhs in that case.
553
554 2016-05-20 Marc Glisse <marc.glisse@inria.fr>
555
556 PR tree-optimization/71079
557 PR tree-optimization/71206
558 * match.pd ((X ^ Y) ^ (X ^ Z)): Convert the arguments.
559
560 2016-05-20 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
561
562 * tree-vectorizer.c (get_vec_alignment_for_decl): New static function.
563 (get_vec_alignment_for_array_decl): Likewise.
564 (get_vec_alignment_for_record_decl): Likewise.
565 (increase_alignment::execute): Move code to find alignment to
566 get_vec_alignment_for_array_decl and call get_vec_alignment_for_decl.
567 (type_align_map): New hash_map.
568
569 2016-05-20 Richard Guenther <rguenther@suse.de>
570
571 PR tree-optimization/29756
572 * tree.def (BIT_INSERT_EXPR): New tcc_expression tree code.
573 * expr.c (expand_expr_real_2): Handle BIT_INSERT_EXPR.
574 * fold-const.c (operand_equal_p): Likewise.
575 (fold_ternary_loc): Add constant folding of BIT_INSERT_EXPR.
576 * gimplify.c (gimplify_expr): Handle BIT_INSERT_EXPR.
577 * tree-inline.c (estimate_operator_cost): Likewise.
578 * tree-pretty-print.c (dump_generic_node): Likewise.
579 * tree-ssa-operands.c (get_expr_operands): Likewise.
580 * cfgexpand.c (expand_debug_expr): Likewise.
581 * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
582 * gimple.c (get_gimple_rhs_num_ops): Handle BIT_INSERT_EXPR.
583 * tree-cfg.c (verify_gimple_assign_ternary): Verify BIT_INSERT_EXPR.
584 * tree-ssa.c (non_rewritable_lvalue_p): We can rewrite
585 vector inserts using BIT_FIELD_REF or MEM_REF on the lhs.
586 (execute_update_addresses_taken): Do it.
587
588 2016-05-20 Richard Biener <rguenther@suse.de>
589
590 PR tree-optimization/71185
591 * tree-ssa-loop-prefetch.c (gather_memory_references): Drop
592 register operations.
593
594 2016-05-20 Richard Biener <rguenther@suse.de>
595
596 * tree-if-conv.c (add_bb_predicate_gimplified_stmts): Use
597 gimple_seq_add_seq_without_update.
598 (release_bb_predicate): Assert we have no operands to free.
599 (if_convertible_loop_p_1): Calculate post dominators later.
600 Do not free BB predicates here.
601 (combine_blocks): Do not recompute BB predicates.
602 (version_loop_for_if_conversion): Save BB predicates around
603 loop versioning.
604
605 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org>
606
607 * function.c (make_epilogue_seq): Remove epilogue_end parameter.
608 (thread_prologue_and_epilogue_insns): Remove bb_flags. Restructure
609 code. Ignore sibcalls on EDGE_IGNORE edges.
610 * shrink-wrap.c (handle_simple_exit): New function. Set EDGE_IGNORE
611 on edges for sibcalls that run without prologue. The rest of the
612 function is combined from...
613 (fix_fake_fallthrough_edge): ... this, and ...
614 (try_shrink_wrapping): ... a part of this. Remove the bb_with
615 function argument, make it a local variable.
616
617 2016-05-19 Sandra Loosemore <sandra@codesourcery.com>
618
619 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Allow
620 --disable-sjlj-exceptions for TARGET_BI_ARCH to select DWARF-2 EH
621 for 32-bit mode and SEH for 64-bit.
622 * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): Handle
623 TARGET_64BIT_DEFAULT.
624
625 2016-05-19 Ryan Burn <contact@rnburn.com>
626
627 * Makefile.in (GTFILES): Add cilk.h and cilk-common.c.
628 * gengtype.c (open_base_files): Add cilk.h to ifiles.
629
630 2016-05-19 Uros Bizjak <ubizjak@gmail.com>
631
632 * sched-deps.c (sched_analyze_2) <case TRAP_IF>: Also
633 force pending loads from memory.
634
635 2016-05-19 Kelvin Nilsen <kelvin@gcc.gnu.org>
636
637 * config/rs6000/altivec.md (UNSPEC_DARN): New unspec constant.
638 (UNSPEC_DARN_32): New unspec constant.
639 (UNSPEC_DARN_RAW): New unspec constant.
640 (darn_32): New instruction.
641 (darn_raw): New instruction.
642 (darn): New instruction.
643 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_0): Add
644 support and documentation for this macro.
645 (BU_P9_MISC_1): New macro definition.
646 (BU_P9_64BIT_MISC_0): New macro definition.
647 (BU_P9_MISC_0): New macro definition.
648 (darn_32): New builtin definition.
649 (darn_raw): New builtin definition.
650 (darn): New builtin definition.
651 * config/rs6000/rs6000.c: Add #define RS6000_BUILTIN_0 and #undef
652 RS6000_BUILTIN_0 directives to surround each occurrence of
653 #include "rs6000-builtin.def".
654 (rs6000_builtin_mask_calculate): Add in the RS6000_BTM_MODULO and
655 RS6000_BTM_64BIT flags to the returned mask, depending on
656 configuration.
657 (def_builtin): Correct an error in the assignments made to the
658 debugging variable attr_string.
659 (rs6000_expand_builtin): Add support for no-operand built-in
660 functions.
661 (builtin_function_type): Remove fatal_error assertion that is no
662 longer valid.
663 (rs6000_common_init_builtins): Add support for no-operand built-in
664 functions.
665 * config/rs6000/rs6000.h (RS6000_BTM_MODULO): New macro
666 definition.
667 (RS6000_BTM_PURE): Enhance comment to clarify intent of this flag
668 definition.
669 (RS6000_BTM_64BIT): New macro definition.
670 * doc/extend.texi: Document __builtin_darn (void),
671 __builtin_darn_raw (void), and __builtin_darn_32 (void) built-in
672 functions.
673
674 2016-05-19 Jan Hubicka <hubicka@ucw.cz>
675
676 * tree-vect-loop.c (vect_analyze_loop_2): Use also
677 max_loop_iterations_int.
678
679 2016-05-19 Marek Polacek <polacek@redhat.com>
680
681 PR tree-optimization/71031
682 * tree-vrp.c (extract_range_from_binary_expr_1): Turn assert into a
683 condition and adjust the code a bit.
684
685 2016-05-19 Martin Liska <mliska@suse.cz>
686
687 * tree-vect-stmts.c (vectorizable_simd_clone_call): Utilize
688 auto_vec instead of vec.
689
690 2016-05-19 Martin Liska <mliska@suse.cz>
691
692 * tree-parloops.c (oacc_entry_exit_ok): Release a vector.
693
694 2016-05-19 Martin Liska <mliska@suse.cz>
695
696 * tree-if-conv.c (ifcvt_repair_bool_pattern): Utilize auto_vecs.
697
698 2016-05-19 Martin Liska <mliska@suse.cz>
699
700 * ipa-pure-const.c (set_function_state): Remove an existing
701 funct_state.
702 (remove_node_data): Do not free it as it's released
703 in set_function_state.
704
705 2016-05-19 Martin Liska <mliska@suse.cz>
706
707 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Release
708 bitmap.
709
710 2016-05-19 Martin Liska <mliska@suse.cz>
711
712 * omp-simd-clone.c (simd_clone_adjust): Release vector.
713
714 2016-05-19 Martin Liska <mliska@suse.cz>
715
716 * tree-ssa-reassoc.c (eliminate_duplicate_pair): Truncate
717 an auto_vec instead of re-creating it.
718
719 2016-05-19 Martin Liska <mliska@suse.cz>
720
721 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Use
722 auto_vec instead of vec.
723
724 2016-05-19 Martin Liska <mliska@suse.cz>
725
726 * lto-section-in.c (lto_get_section_data): Call
727 lto_check_version with additional argument.
728 * lto-streamer.c (lto_check_version): Add new argument.
729 * lto-streamer.h (lto_check_version): Likewise.
730
731 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
732
733 * config/arm/arm.c (arm_new_rtx_costs, SIGN_EXTEND case):
734 Don't add cost of inner memory when handling sign-extended loads.
735
736 2016-05-19 Ilya Enkovich <ilya.enkovich@intel.com>
737
738 PR rtl-optimization/71148
739 * cse.c (cse_main): Free dominance info.
740 (rest_of_handle_cse): Don't free dominance info.
741 (rest_of_handle_cse2): Likewise.
742 (rest_of_handle_cse_after_global_opts): Likewise.
743
744 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
745
746 PR target/71056
747 * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Return
748 NULL_TREE early if NEON is not available. Remove now redundant check
749 in ARM_CHECK_BUILTIN_MODE.
750
751 2016-05-19 Maxim Ostapenko <m.ostapenko@samsung.com>
752
753 PR sanitizer/64354
754 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add new
755 builtin __SANITIZE_THREAD__ macros for fsanitize=thread switch.
756 * doc/cpp.texi: Document new macros.
757
758 2016-05-19 Bin Cheng <bin.cheng@arm.com>
759
760 PR tree-optimization/69848
761 * tree-vect-loop.c (vectorizable_reduction): Don't factor
762 comparison expr out of VEC_COND_EXPR for COND_REDUCTION.
763
764 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org>
765
766 * function.c (thread_prologue_and_epilogue_insn): Move the
767 "goto epilogue_done" one block later.
768
769 2016-05-19 Richard Biener <rguenther@suse.de>
770
771 PR tree-optimization/70729
772 * passes.def: Move LIM pass before PRE. Remove no longer
773 required copyprop and move first DCE out of the loop pipeline.
774
775 2016-05-18 David Malcolm <dmalcolm@redhat.com>
776
777 PR driver/69265
778 * Makefile.in (GCC_OBJS): Move spellcheck.o to...
779 (OBJS-libcommon-target): ...here.
780 * opts-common.c: Include spellcheck.h.
781 (cmdline_handle_error): Build a vec of valid options and use it
782 to suggest provide hints for misspelled arguments.
783
784 2016-05-18 Jakub Jelinek <jakub@redhat.com>
785
786 PR c++/71100
787 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Don't drop
788 lhs if it has TREE_ADDRESSABLE type.
789
790 2016-05-18 Uros Bizjak <ubizjak@gmail.com>
791
792 PR target/71145
793 * config/alpha/alpha.md (trap): Add (use (reg:DI 29)).
794 (*exception_receiver_1): Return "#" for TARGET_EXPLICIT_RELOCS.
795
796 2016-05-18 Martin Jambor <mjambor@suse.cz>
797
798 PR ipa/69708
799 * ipa-cp.c (ipa_get_jf_pass_through_result): Allow non-ip constant
800 input for NOP_EXPR pass-through functions.
801 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Allow
802 aggregate global constant VAR_DECLs in constant jump functions.
803
804 2016-05-18 Martin Jambor <mjambor@suse.cz>
805
806 PR ipa/69708
807 * ipa-prop.c (parm_preserved_before_stmt_p): Return true for loads
808 from TREE_READONLY parameters.
809
810 2016-05-18 Martin Jambor <mjambor@suse.cz>
811
812 PR ipa/69708
813 * cgraph.h (cgraph_indirect_call_info): New field
814 guaranteed_unmodified.
815 * ipa-cp.c (ipa_get_indirect_edge_target_1): Also pass parameter value
816 to ipa_find_agg_cst_for_param, check guaranteed_unmodified when
817 appropriate.
818 * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Also
819 pass the parameter value to ipa_find_agg_cst_for_param.
820 * ipa-prop.c (ipa_load_from_parm_agg): New parameter
821 guaranteed_unmodified, store AA results there instead of bailing out
822 if present.
823 (ipa_note_param_call): Also initialize guaranteed_unmodified flag.
824 (ipa_analyze_indirect_call_uses): Also set guaranteed_unmodified flag.
825 (find_constructor_constant_at_offset): New function.
826 (ipa_find_agg_cst_from_init): Likewise.
827 (ipa_find_agg_cst_for_param): Also seearch for aggregate values in
828 static initializers of contants, report back through a new paameter
829 from_global_constant if that was the case.
830 (try_make_edge_direct_simple_call): Also pass parameter value to
831 ipa_find_agg_cst_for_param, check guaranteed_unmodified when
832 appropriate.
833 (ipa_write_indirect_edge_info): Stream new flag guaranteed_unmodified.
834 (ipa_read_indirect_edge_info): Likewise.
835 * ipa-prop.h (ipa_find_agg_cst_for_param): Update declaration.
836 (ipa_load_from_parm_agg): Likewise.
837
838 2016-05-18 Jiong Wang <jiong.wang@arm.com>
839
840 PR rtl-optimization/71150
841 * lra-constraint (process_addr_reg): Guard "in_class_p" with REG_P
842 check.
843
844 2016-05-18 Michael Meissner <meissner@linux.vnet.ibm.com>
845
846 PR target/70915
847 * config/rs6000/constraints.md (wE constraint): New constraint
848 for a vector constant that can be loaded with XXSPLTIB.
849 (wM constraint): New constraint for a vector constant of a 1's.
850 (wS constraint): New constraint for a vector constant that can be
851 loaded with XXSPLTIB and a vector sign extend instruction.
852 * config/rs6000/predicates.md (xxspltib_constant_split): New
853 predicates for wE/wS constraints.
854 (xxspltib_constant_nosplit): Likewise.
855 (easy_vector_constant): Add support for constants that can be
856 loaded via XXSPLTIB.
857 (all_ones_constant): New predicate for vector constant with all
858 1's set.
859 (splat_input_operand): Add support for ISA 3.0 word splat operations.
860 * config/rs6000/rs6000.c (xxspltib_constant_p): New function to
861 return if a constant can be loaded with the ISA 3.0 XXSPLTIB
862 instruction and possibly with a sign extension.
863 (output_vec_const_move): Add support for XXSPLTIB. If we are
864 loading up 0/-1 into Altivec registers, prefer using VSPLTISW
865 instead of XXLXOR/XXLORC.
866 (rs6000_expand_vector_init): Add support for ISA 3.0 word splat
867 operations.
868 (rs6000_legitimize_reload_address): Likewise.
869 (rs6000_output_move_128bit): Use output_vec_const_move to emit
870 constants.
871 * config/rs6000/vsx.md (VSX_M): Add TImode (if -mvsx-timode) and
872 combine VSX_M and VSX_M2 into one iterator.
873 (VSX_M2): Likewise.
874 (VSINT_84): New iterators for loading constants with XXSPLTIB.
875 (VSINT_842): Likewise.
876 (UNSPEC_VSX_SIGN_EXTEND): New UNSPEC.
877 (xxspltib_v16qi): New insns to load up constants with the ISA 3.0
878 XXSPLTIB instruction.
879 (xxspltib_<mode>_nosplit): Likewise.
880 (xxspltib_<mode>_split): New insn to load up constants with
881 XXSPLTIB and a sign extend instruction.
882 (vsx_mov<mode>): Replace single move that handled all vector types
883 with separate 32-bit and 64-bit moves. Combine the movti_<bit>
884 moves (when -mvsx-timode is in effect) into the main vector
885 moves. Eliminate separate moves for <VSr> <VSa>, where the
886 preferred register class (<VSr>) is listed first, and the
887 secondary register class (<VSa>) is listed second with a '?' to
888 discourage use. Prefer loading 0/-1 in any VSX register for ISA
889 3.0, and Altivec registers for ISA 2.06/2.07 (PR target/70915) so
890 that if the register was involved in a slow operation, the
891 clear/set operation does not wait for the slow operation to
892 finish. Adjust the length attributes for 32-bit mode. Use
893 rs6000_output_move_128bit and drop the use of the string
894 instructions for 32-bit movti when -mvsx-timode is in effect. Use
895 spacing so that the alternatives and attributes don't generate
896 long lines, and put things in columns, so that it is easier to
897 match up the operands and attributes with the insn alternatives.
898 (vsx_mov<mode>_64bit): Likewise.
899 (vsx_mov<mode>_32bit): Likewise.
900 (vsx_movti_64bit): Fold movti into normal vector moves.
901 (vsx_movti_32bit): Likewise.
902 (vsx_splat_<mode>, V4SI/V4SF modes): Add support for ISA 3.0 word
903 splat instructions.
904 (vsx_splat_v4si_internal): Likewise.
905 (vsx_splat_v4sf_internal): Likewise.
906 (vector fusion peepholes): Use VSX_M instead of VSX_M2.
907 (vsx_sign_extend_qi_<mode>): New ISA 3.0 instructions to sign
908 extend vector elements.
909 (vsx_sign_extend_hi_<mode>): Likewise.
910 (vsx_sign_extend_si_v2di): Likewise.
911 * config/rs6000/rs6000-protos.h (xxspltib_constant_p): Add
912 declaration.
913 * doc/md.texi (PowerPC constraints): Document the wE, wM, and wS
914 constraints. Add trailing period to wL documentation.
915
916 2016-05-18 Richard Sandiford <richard.sandiford@arm.com>
917
918 PR middle-end/71020
919 * tree-dfa.h (replace_abnormal_ssa_names): Declare.
920 * tree-dfa.c (replace_abnormal_ssa_names): New function.
921 * tree-call-cdce.c: Include tree-dfa.h.
922 (can_guard_call_p): New function, extracted from...
923 (can_use_internal_fn): ...here.
924 (shrink_wrap_one_built_in_call_with_conds): Remove failure path
925 and return void.
926 (shrink_wrap_one_built_in_call): Likewise.
927 (use_internal_fn): Likewise.
928 (shrink_wrap_conditional_dead_built_in_calls): Update accordingly
929 and return void. Call replace_abnormal_ssa_names.
930 (pass_call_cdce::execute): Check can_guard_call_p during the
931 initial walk. Assume shrink_wrap_conditional_dead_built_in_calls
932 will always change something.
933
934 2016-05-18 Martin Jambor <mjambor@suse.cz>
935
936 PR ipa/70646
937 * ipa-prop.c (determine_locally_known_aggregate_parts): Bail out early
938 if parameter PARAM_IPA_MAX_AGG_ITEMS is zero.
939
940 2016-05-18 Martin Jambor <mjambor@suse.cz>
941
942 PR ipa/70646
943 * ipa-inline.h (condition): New field size.
944 * ipa-inline-analysis.c (add_condition): New parameter SIZE, use it
945 for comaprison and store it into the new condition.
946 (evaluate_conditions_for_known_args): Use condition size to check
947 access sizes for all but CHANGED conditions.
948 (unmodified_parm_1): New parameter size_p, store access size into it.
949 (unmodified_parm): Likewise.
950 (unmodified_parm_or_parm_agg_item): Likewise.
951 (eliminated_by_inlining_prob): Pass NULL to unmodified_parm as size_p.
952 (set_cond_stmt_execution_predicate): Extract access sizes and store
953 them to conditions.
954 (set_switch_stmt_execution_predicate): Likewise.
955 (will_be_nonconstant_expr_predicate): Likewise.
956 (will_be_nonconstant_predicate): Likewise.
957 (inline_read_section): Stream condition size.
958 (inline_write_summary): Likewise.
959
960 2016-05-18 Richard Biener <rguenther@suse.de>
961
962 * tree-ssa-loop-im.c (determine_max_movement): Properly add
963 condition cost to PHI cost instead of total_cost.
964
965 2016-05-18 Martin Liska <mliska@suse.cz>
966
967 PR fortran/70856
968 * ipa-icf.c (sem_variable::merge): Set DECL_PT_UID for
969 merged variables.
970
971 2016-05-18 Richard Biener <rguenther@suse.de>
972
973 * lto-streamer.h (LTO_major_version): Bump to 6.
974
975 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org>
976
977 * function.c (make_split_prologue_seq, make_prologue_seq,
978 make_epilogue_seq): New functions, factored out from...
979 (thread_prologue_and_epilogue_insns): Here.
980
981 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org>
982
983 * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
984 cleanup_cfg with CLEANUP_EXPENSIVE after shrink-wrapping instead
985 of before. Add a comment.
986
987 2016-05-18 Bin Cheng <bin.cheng@arm.com>
988
989 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check invariant
990 expression pointer, not pointer to the pointer.
991
992 2016-05-18 Jakub Jelinek <jakub@redhat.com>
993
994 * config/i386/sse.md (pbroadcast_evex_isa): New mode attr.
995 (avx2_pbroadcast<mode>): Add another alternative with v instead
996 of x constraints in it, using <pbroadcast_evex_isa> isa.
997 (avx2_pbroadcast<mode>_1): Similarly, add two such alternatives.
998
999 * config/i386/sse.md (<ssse3_avx2>_palignr<mode>): Use
1000 constraint x instead of v in second alternative, add avx512bw
1001 alternative.
1002
1003 * config/i386/sse.md (<ssse3_avx2>_pshufb<mode>3<mask_name>): Use
1004 constraint x instead of v in second alternative, add avx512bw
1005 alternative.
1006
1007 * config/i386/sse.md (*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>): Use
1008 constraint x instead of v in second alternative, add avx512bw
1009 alternative.
1010
1011 * config/i386/sse.md (avx2_pmaddubsw256, ssse3_pmaddubsw128): Add
1012 avx512bw alternative.
1013
1014 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
1015
1016 * config/i386/sse.md (define_insn "*andnot<mode>3"): Extend static
1017 array to 128 chars.
1018 (define_insn "*andnottf3"): Ditto.
1019 (define_insn "*<code><mode>3"/any_logic): Ditto.
1020 (define_insn "*<code>tf3"/any_logic): Ditto.
1021 (define_insn "sse2_storehpd"): Use Yv constraint for scalar
1022 operand to block AVX-512VL insn variant emit when it is not enabled.
1023
1024 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
1025
1026 * config/i386/sse.md (define_insn "*vec_concatv2sf_sse4_1"): Use 'Yv'
1027 constraint fot SF mode.
1028
1029 2016-05-18 Petr Murzin <petr.murzin@intel.com>
1030 Kirill Yukhin <kirill.yukhin@intel.com>
1031
1032 * config/i386/sse.md (define_insn "srcp14<mode>"): Use proper operand
1033 modifiers.
1034 (define_insn "rsqrt14<mode>"): Ditto.
1035 (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
1036 (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
1037 (define_insn "avx512f_<code>v8div16qi2_mask_store"): Ditto.
1038 (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
1039 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"):
1040 Ditto.
1041 (define_insn "*avx512f_gatherdi<mode>"): Ditto.
1042 (define_insn "*avx512f_scatterdi<mode>"): Ditto.
1043 * config/i386/i386.c (ix86_print_operand): Expand check for size
1044 override codes for Intel syntax.
1045
1046 2016-05-18 Richard Biener <rguenther@suse.de>
1047
1048 PR tree-optimization/71168
1049 * tree-loop-distribution.c (distribute_loop): Move *destroy_p
1050 initialization earlier.
1051
1052 2016-05-18 James Greenhalgh <james.greenhalgh@arm.com>
1053
1054 * config/aarch64/aarch64-simd.md
1055 (aarch64_reduc_plus_internal<mode>): Rename to...
1056 (reduc_plus_scal): ...This, and remove previous implementation.
1057
1058 2016-05-18 Richard Biener <rguenther@suse.de>
1059
1060 * passes.def: Put late dse and cd_dce in canonical order.
1061
1062 2016-05-17 Jan Hubicka <hubicka@ucw.cz>
1063
1064 * ipa-inline-transform.c (preserve_function_body_p): Look for
1065 first non-thunk clone.
1066 (save_function_body): Save into first non-thunk.
1067 * lto-cgraph.c (lto_output_edge): When streaming thunk do not look
1068 up call stmt id.
1069 (lto_output_node): Inline thunks don't need body in every
1070 partition.
1071 * lto-streamer-in.c: Do not fixup thunk clones.
1072 * cgraphclones.c (cgraph_node::create_edge_including_clone): Skip
1073 thunks.
1074 * tree-inline.c (copy_bb): Be prepared for target node to be new after
1075 folding suceeds.
1076
1077 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org>
1078
1079 PR middle-end/63586
1080 * tree-ssa-reassoc.c (transform_add_to_multiply): New.
1081 (reassociate_bb): Call transform_add_to_multiply.
1082
1083 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org>
1084
1085 * config/aarch64/aarch64.c (all_extensions): Removed unused
1086 static variable.
1087
1088 2016-05-17 Nathan Sidwell <nathan@acm.org>
1089
1090 * config/nvptx/nvptx.c (nvptx_function_arg_boundary): New.
1091 (TARGET_FUNCTION_ARG_BOUNDARY): Override.
1092
1093 2016-05-17 Mikhail Maltsev <maltsevm@gmail.com>
1094
1095 PR tree-optimization/54579
1096 PR middle-end/55299
1097 * match.pd (~(~X >> Y), ~(~X >>r Y), ~(~X <<r Y)): New patterns.
1098
1099 2016-05-17 Marek Polacek <polacek@redhat.com>
1100
1101 PR ipa/71146
1102 * tree-inline.c (expand_call_inline): Call
1103 maybe_remove_unused_call_args.
1104
1105 2016-05-17 Jim Wilson <jim.wilson@linaro.org>
1106
1107 * doc/cpp.texi (__GNUC__): Major version changes are no longer rare.
1108 * doc/invoke.texi (-mnan=2008): Change signalling to signaling.
1109 * doc/md.texi (fmin@var{m}3): Likewise.
1110
1111 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
1112
1113 * match.pd (X & C): New transformation.
1114
1115 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
1116
1117 * match.pd (~X & Y): New transformation.
1118
1119 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
1120
1121 * tree-vrp.c (simplify_truth_ops_using_ranges): Set range
1122 information for new SSA_NAME.
1123 (simplify_conversion_using_ranges): Get range through get_range_info
1124 instead of get_value_range.
1125
1126 2016-05-17 Jiong Wang <jiong.wang@arm.com>
1127
1128 * config/aarch64/arm_neon.h (vmvn_s8): Reimplement using C operator.
1129 Remove inline assembly.
1130 (vmvn_s16): Likewise.
1131 (vmvn_s32): Likewise.
1132 (vmvn_u8): Likewise.
1133 (vmvn_u16): Likewise.
1134 (vmvn_u32): Likewise.
1135 (vmvnq_s8): Likewise.
1136 (vmvnq_s16): Likewise.
1137 (vmvnq_s32): Likewise.
1138 (vmvnq_u8): Likewise.
1139 (vmvnq_u16): Likewise.
1140 (vmvnq_u32): Likewise.
1141 (vmvn_p8): Likewise.
1142 (vmvnq_p16): Likewise.
1143
1144 2016-05-17 Jiong Wang <jiong.wang@arm.com>
1145
1146 * config/aarch64/aarch64-simd.md (vmul_n_f32): Remove inline assembly.
1147 Use builtin.
1148 (vmul_n_s16): Likewise.
1149 (vmul_n_s32): Likewise.
1150 (vmul_n_u16): Likewise.
1151 (vmul_n_u32): Likewise.
1152 (vmulq_n_f32): Likewise.
1153 (vmulq_n_f64): Likewise.
1154 (vmulq_n_s16): Likewise.
1155 (vmulq_n_s32): Likewise.
1156 (vmulq_n_u16): Likewise.
1157 (vmulq_n_u32): Likewise.
1158
1159 2016-05-17 Jiong Wang <jiong.wang@arm.com>
1160
1161 * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_to_128df): Extend
1162 to all supported modes. Rename to "*aarch64_mul3_elt_from_dup".
1163
1164 2016-05-17 Jiong Wang <jiong.wang@arm.com>
1165
1166 * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_to_128df): Rename
1167 to *aarch64_fma4_elt_from_dup<mode>.
1168 (*aarch64_fnma4_elt_to_128df): Rename to
1169 *aarch64_fnma4_elt_from_dup<mode>.
1170 * config/aarch64/arm_neon.h (vfma_n_f64): New.
1171 (vfms_n_f32): Likewise.
1172 (vfms_n_f64): Likewise.
1173 (vfmsq_n_f32): Likewise.
1174 (vfmsq_n_f64): Likewise.
1175
1176 2016-05-17 Gerald Pfeifer <gerald@pfeifer.com>
1177
1178 * wide-int.h: Change fixed_wide_int_storage from class to struct.
1179
1180 2016-05-17 Richard Biener <rguenther@suse.de>
1181
1182 PR tree-optimization/71132
1183 * tree-loop-distribution.c (create_rdg_cd_edges): Pass in loop.
1184 Only add control dependences for blocks in the loop.
1185 (build_rdg): Adjust.
1186 (generate_code_for_partition): Return whether loop should
1187 be destroyed and delay that.
1188 (distribute_loop): Likewise.
1189 (pass_loop_distribution::execute): Record loops to be destroyed
1190 and perform delayed destroying of loops.
1191
1192 2016-05-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1193
1194 PR target/70809
1195 * config/aarch64/aarch64-simd.md (aarch64_vmls<mode>): Delete.
1196
1197 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
1198
1199 * config/aarch64/aarch64-elf.h (ASM_OUTPUT_DEF): Delete.
1200
1201 2016-05-17 Ilya Enkovich <ilya.enkovich@intel.com>
1202
1203 PR target/71114
1204 * config/i386/i386.c (dimode_scalar_chain::convert_op): Fix
1205 insertion point for instructions generated by validize_mem.
1206
1207 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
1208
1209 * config/aarch64/aarch64.c (SHIFT_COUNT_TRUNCATED): Wrap definition
1210 in brackets.
1211
1212 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
1213
1214 * config/aarch64/aarch64.c
1215 (aarch64_output_simd_mov_immediate): Make "buf_size" a variable
1216 rather than a macro.
1217
1218 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
1219
1220 * doc/invoke.texi (AArch64 Options): Various updates.
1221
1222 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
1223
1224 * ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig
1225 into instrumentation thunks.
1226 * cif-code.def (CIF_CHKP): New.
1227
1228 2016-05-16 Uros Bizjak <ubizjak@gmail.com>
1229
1230 * config/i386/xopintrin.h: Correct "unsinged" typo in the comments.
1231
1232 2016-05-16 Martin Jambor <mjambor@suse.cz>
1233
1234 * hsa-gen.c (fillup_for_decl): Increase alignment to natural one.
1235 (get_symbol_for_decl): Sorry if a global symbol in under-aligned.
1236
1237 2016-05-16 Marek Polacek <polacek@redhat.com>
1238
1239 * gimple.c (maybe_remove_unused_call_args): Fix typos in the
1240 commentary.
1241
1242 2016-05-16 Martin Jambor <mjambor@suse.cz>
1243
1244 PR hsa/70857
1245 * omp-low.c (grid_expand_target_grid_body): Copy RESULT_DECL of
1246 the outlined kernel function.
1247
1248 2016-05-16 Robert Suchanek <robert.suchanek@imgtec.com>
1249
1250 * config/mips/mips.h (ISA_HAS_LSA): Enable for -mmsa.
1251 (ISA_HAS_DLSA): Ditto.
1252
1253 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com>
1254
1255 * config/mips/m5100.md (m51_int_load): Update the latency to 2.
1256
1257 2016-05-16 Nathan Sidwell <nathan@acm.org>
1258
1259 * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): Revert.
1260 (nvptx_name_replacement): Restore. Add comment.
1261 (write_fn_proto, write_fn_proto_from_insn,
1262 nvptx_output_call_insn): Restore
1263 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Delete.
1264
1265 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
1266
1267 * config/aarch64/aarch64.md
1268 (add<mode>3_compareC_cconly_imm): Remove use of %w.
1269 (add<mode>3_compareC_imm): Likewise.
1270 (<optab>si3_uxtw): Split into register and immediate variants.
1271 (andsi3_compare0_uxtw): Likewise.
1272 (and<mode>3_compare0): Likewise.
1273 (and<mode>3nr_compare0): Likewise.
1274 (stack_protect_test_<mode>): Don't use %x for memory operands.
1275
1276 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com>
1277
1278 * config/mips/mips-cpus.def (p5600): Add multi-line brackets.
1279
1280 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
1281
1282 * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
1283 Split integer shifts into shift_reg and bfm.
1284 (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
1285 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
1286 (ror<mode>3_insn): Likewise.
1287 (<optab>si3_insn_uxtw): Likewise.
1288 (<optab><mode>3_insn): Change to rotate_imm.
1289 (extr<mode>5_insn_alt): Likewise.
1290 (extrsi5_insn_uxtw): Likewise.
1291 (extrsi5_insn_uxtw_alt): Likewise.
1292
1293 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
1294
1295 * doc/tm.texi: Regenerate.
1296 * doc/tm.texi.in (TARGET_INVALID_PARAMETER_TYPE): Remove.
1297 (TARGET_INVALID_RETURN_TYPE): Remove.
1298 * system.h: Poison TARGET_INVALID_PARAMETER_TYPE and
1299 TARGET_INVALID_RETURN_TYPE.
1300 * target.def (invalid_parameter_type): Remove.
1301 (invalid_return_type): Remove.
1302
1303 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
1304
1305 * ipa-inline-analysis.c (compute_inline_parameters): Be more reailistic
1306 on estimating thunk bodies; do not set inline_failed to CIF_THUNK for
1307 calls from thunk.
1308 * ipa-inline-transform.c (inline_call): When inlining into thunk produce
1309 gimple body.
1310 (preserve_function_body_p): No need to preserve function body
1311 * cif-codes.def (CIF_THUNK): Remove.
1312 * cgraphclones.c (duplicate_thunk_for_node): Thunks calls are inlinable.
1313
1314 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
1315
1316 * tree-inline.c (expand_call_inline): recurse after inlining thunk.
1317
1318 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
1319
1320 * tree.c (free_lang_data_in_decl): Also set target/optimization flags
1321 for thunks.
1322
1323 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
1324
1325 * ipa-inline.c (report_inline_failed_reason): Look into thunks, too
1326 (inline_small_functions): Do not look for function symbol when
1327 resetting caches.
1328
1329 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
1330
1331 * lto-cgraph.c (compute_ltrans_boundary, output_symtab): Fix handling
1332 of inline thunks
1333
1334 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
1335 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1336 Jiong Wang <jiong.wang@arm.com>
1337
1338 * config/arm/arm-c.c (arm_cpu_builtins): Use def_or_undef_macro
1339 for __ARM_FP16_FORMAT_IEEE and __ARM_FP16_FORMAT_ALTERNATIVE.
1340 Define __ARM_FP16_ARGS when appropriate.
1341 * config/arm/arm.c (arm_invalid_parameter_type): Remove
1342 declaration.
1343 (arm_invalid_return_type): Likewise.
1344 (TARGET_INVALID_PARAMETER_TYPE): Remove.
1345 (TARGET_INVALID_RETURN_TYPE): Remove.
1346 (aapcs_vfp_sub_candidate): Allow HFmode.
1347 (aapcs_vfp_allocate): Add comment. Support HFmode.
1348 (aapcs_vfp_allocate_return_reg): Likewise.
1349 (struct aapcs_cp_arg_layout): Slightly reword comments for
1350 is_return_candidate and allocate_return_reg.
1351 (output_mov_vfp): Update assert.
1352 (arm_hard_regno_mode_ok): Remove comment, update HF-mode
1353 condition.
1354 (arm_invalid_parameter_type): Remove.
1355 (amr_invalid_return_type): Remove.
1356 * config/arm/arm.h (TARGET_NEON_FP16): Fix definition.
1357 * config/arm/arm.md (*arm32_movhf): Disable for TARGET_VFP.
1358 * config/arm/vfp.md (*movhf_vfp): Enable for TARGET_VFP.
1359
1360 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
1361
1362 * config/aarch64/aarch64.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
1363 * config/aarch64/arch64-protos.h
1364 (aarch64_legitimize_reload_address): Remove.
1365 * config/aarch64/aarch64.c (aarch64_legitimize_reload_address):
1366 Remove.
1367
1368 2016-05-16 Eric Botcazou <ebotcazou@adacore.com>
1369
1370 * configure.ac: Add ACX_NONCANONICAL_HOST.
1371 * configure: Regenerate.
1372 * Makefile.in: Set host_noncanonical.
1373
1374 2016-05-14 Uros Bizjak <ubizjak@gmail.com>
1375
1376 PR target/71097
1377 * config/i386/i386.md (*movtf_internal): Before register allocation,
1378 do not allow FP constants for CM_MEDIUM memory model, allow only
1379 standard FP constants for CM_LARGE and CM_LARGE_PIC models.
1380 (*movxf_internal): Ditto.
1381 (*movdf_internal): Ditto.
1382 (*movsf_internal): Ditto.
1383
1384 2016-05-13 Segher Boessenkool <segher@kernel.crashing.org>
1385
1386 PR rtl-optimization/67483
1387 * combine.c (make_compound_operation): Don't call extract_left_shift
1388 with negative shift amounts.
1389
1390 2016-05-13 Jakub Jelinek <jakub@redhat.com>
1391
1392 PR bootstrap/71071
1393 * fold-const.c (fold_checksum_tree): Allow modification
1394 of TYPE_ALIAS_SET during folding.
1395
1396 * config/i386/i386.c (ix86_compute_frame_layout, ix86_expand_prologue,
1397 ix86_expand_split_stack_prologue): Use HOST_WIDE_INT_C macro.
1398 (ix86_split_to_parts): Likewise. Fix up formatting.
1399
1400 2016-05-13 H.J. Lu <hongjiu.lu@intel.com>
1401
1402 * tree-ssa-loop-ivopts.c (create_new_ivs): Cast to
1403 unsigned HOST_WIDE_INT with HOST_WIDE_INT_PRINT_UNSIGNED in
1404 printf format.
1405
1406 2016-05-13 Nathan Sidwell <nathan@acm.org>
1407
1408 * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): New.
1409 (nvptx_name_replacement): Delete.
1410 (write_fn_proto, write_fn_proto_from_insn,
1411 nvptx_output_call_insn): Remove nvptx_name_replacement call.
1412 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Override.
1413 * langhooks.c (add_builtin_funcction_common): Call
1414 targetm.mangle_decl_assembler_name.
1415
1416 * config/nvptx/nvptx.c (write_fn_proto): Handle
1417 BUILT_IN_ATOMIC_COMPARE_EXCHANGE_n oddity.
1418
1419 2016-05-13 Martin Liska <mliska@suse.cz>
1420
1421 * tree-ssa-loop-ivopts.c (create_new_ivs): Use HOST_WIDE_INT_PRINT_DEC
1422 and PRIu64 in printf format.
1423
1424 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1425
1426 * tree-ssa-loop-ivanon.c (try_unroll_loop_completely): Typo fix in
1427 comment.
1428
1429 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1430
1431 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
1432 Change --param max-completely-peeled-times to
1433 --param max-completely-peel-times in dump file printing.
1434
1435 2016-05-13 Richard Biener <rguenther@suse.de>
1436
1437 PR tree-optimization/42587
1438 * tree-ssa-math-opts.c (perform_symbolic_merge): Handle BIT_FIELD_REF.
1439 (find_bswap_or_nop_1): Likewise.
1440 (bswap_replace): Likewise.
1441
1442 2016-05-13 Martin Liska <mliska@suse.cz>
1443
1444 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
1445 Initialize a variable with default value.
1446
1447 2016-05-13 Martin Liska <mliska@suse.cz>
1448
1449 * doc/invoke.texi: Enhance explanation of error recovery
1450 of sanitizers.
1451
1452 2016-05-13 Martin Liska <mliska@suse.cz>
1453
1454 * tree-ssa-loop-ivopts.c (avg_loop_niter): Fix coding style.
1455 (struct cost_pair): Change inv_expr_id (int) to inv_expr
1456 (iv_inv_expr_ent *).
1457 (struct iv_inv_expr_ent): Comment struct fields.
1458 (sort_iv_inv_expr_ent): New function.
1459 (struct ivopts_data): Rename inv_expr_id to max_inv_expr_id.
1460 (struct iv_ca): Replace used_inv_expr and num_used_inv_expr with
1461 a hash_map between iv_inv_expr_ent and number of usages.
1462 (niter_for_exit): Fix coding style.
1463 (tree_ssa_iv_optimize_init): Use renamed variable.
1464 (determine_base_object): Fix coding style.
1465 (alloc_iv): Likewise.
1466 (find_interesting_uses_outside): Likewise.
1467 (add_candidate_1): Likewise.
1468 (add_standard_iv_candidates): Likewise.
1469 (set_group_iv_cost): Replace inv_expr_id with inv_expr.
1470 (prepare_decl_rtl): Fix coding style.
1471 (get_address_cost): Likewise.
1472 (get_shiftadd_cost): Likewise.
1473 (force_expr_to_var_cost): Likewise.
1474 (compare_aff_trees): Likewise.
1475 (get_expr_id): Restructure the function.
1476 (get_loop_invariant_expr_id): Renamed to
1477 get_loop_invariant_expr.
1478 (get_computation_cost_at): Replace usage of inv_expr_id with
1479 inv_expr.
1480 (get_computation_cost): Likewise.
1481 (determine_group_iv_cost_generic): Likewise.
1482 (determine_group_iv_cost_address): Likewise.
1483 (iv_period): Fix coding style.
1484 (iv_elimination_compare_lt): Likewise.
1485 (may_eliminate_iv): Likewise.
1486 (determine_group_iv_cost_cond): Replace usage of inv_expr_id with
1487 inv_expr.
1488 (determine_group_iv_costs): Dump invariant expressions.
1489 (iv_ca_recount_cost): Use the newly added hash_map.
1490 (iv_ca_set_remove_invariants): Fix coding style.
1491 (iv_ca_set_add_invariants): Fix coding style.
1492 (iv_ca_set_no_cp): Utilize the newly added hash_map for used
1493 invariants.
1494 (iv_ca_set_cp): Likewise.
1495 (iv_ca_new): Initialize the newly added hash_map and remove
1496 initialization of fields.
1497 (iv_ca_free): Delete the hash_map.
1498 (iv_ca_dump): Dump invariant expressions.
1499 (iv_ca_extend): Fix coding style.
1500 (try_add_cand_for): Likewise.
1501 (create_new_ivs): Dump information about # of avg iterations and
1502 # of used invariant expressions.
1503 (rewrite_use_compare): Fix coding style.
1504 (free_loop_data): Set default value for max_inv_expr_id.
1505
1506 2016-05-13 Ilya Enkovich <ilya.enkovich@intel.com>
1507
1508 * cse.c (rest_of_handle_cse): Use cleanup_cfg
1509 returned value cse_cfg_altered computation.
1510 (rest_of_handle_cse2): Likewise.
1511 (rest_of_handle_cse_after_global_opts): Likewise.
1512
1513 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1514
1515 PR target/53440
1516 * config/arm/arm.c (arm32_output_mi_thunk): New.
1517 (arm_output_mi_thunk): Rename to arm_thumb1_mi_thunk. Rework
1518 to split Thumb1 vs TARGET_32BIT functionality.
1519 (arm_thumb1_mi_thunk): New.
1520
1521 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1522
1523 * config/aarch64/aarch64.c (TARGET_OMIT_STRUCT_RETURN_REG): Set
1524 to true.
1525
1526 2016-05-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1527
1528 PR target/71080
1529 * config/i386/i386.c (ix86_in_large_data_p): Guard against NULL exp.
1530
1531 2016-05-13 Eric Botcazou <ebotcazou@adacore.com>
1532
1533 * builtins.c (expand_builtin_memcmp): Do not emit the call here.
1534 (expand_builtin_trap): Emit a regular call.
1535 (set_builtin_user_assembler_name): Remove obsolete cases.
1536 * dse.c (scan_insn): Adjust.
1537 * except.c: Include calls.h.
1538 (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is defined,
1539 emit a regular call to setjmp.
1540 * expr.c (emit_block_move_hints): Call emit_block_copy_via_libcall.
1541 (block_move_libcall_safe_for_call_parm): Use memcpy builtin.
1542 (emit_block_move_via_libcall): Delete.
1543 (block_move_fn): Delete.
1544 (init_block_move_fn): Likewise.
1545 (emit_block_move_libcall_fn): Likewise.
1546 (emit_block_op_via_libcall): New function.
1547 (set_storage_via_libcall): Tidy up and use memset builtin.
1548 (block_clear_fn): Delete.
1549 (init_block_clear_fn): Likewise.
1550 (clear_storage_libcall_fn): Likewise.
1551 (expand_assignment): Call emit_block_move_via_libcall.
1552 Do not include gt-expr.h.
1553 * expr.h (emit_block_op_via_libcall): Declare.
1554 (emit_block_copy_via_libcall): New inline function.
1555 (emit_block_move_via_libcall): Likewise.
1556 (emit_block_comp_via_libcall): Likewise.
1557 (block_clear_fn): Delete.
1558 (init_block_move_fn): Likewise.
1559 (init_block_clear_fn): Likewise.
1560 (emit_block_move_via_libcall): Likewise.
1561 (set_storage_via_libcall): Add default parameter value.
1562 * libfuncs.h (enum libfunc_index): Remove obsolete values.
1563 (abort_libfunc): Delete.
1564 (memcpy_libfunc): Likewise.
1565 (memmove_libfunc): Likewise.
1566 (memcmp_libfunc): Likewise.
1567 (memset_libfunc): Likewise.
1568 (setbits_libfunc): Likewise.
1569 (setjmp_libfunc): Likewise.
1570 (longjmp_libfunc): Likewise.
1571 (profile_function_entry_libfunc): Likewise.
1572 (profile_function_exit_libfunc): Likewise.
1573 (gcov_flush_libfunc): Likewise.
1574 * optabs-libfuncs.c (build_libfunc_function): Set DECL_ARTIFICIAL
1575 and DECL_VISIBILITY on the declaration.
1576 (init_optabs): Do not initialize obsolete libfuncs.
1577 * optabs.c (prepare_cmp_insn): Call emit_block_comp_via_libcall.
1578 * tree-core.h (ECF_RET1): Define.
1579 (ECF_TM_PURE): Adjust.
1580 (ECF_TM_BUILTIN): Likewise.
1581 * tree.c (set_call_expr_flags): Deal with ECF_RET1.
1582 (build_common_builtin_nodes): Initialize abort builtin.
1583 Add ECF_RET1 on memcpy, memmove and memset builtins.
1584 Pass final flags for alloca and alloca_with_align builtins.
1585 * config/alpha/alpha.c (alpha_init_libfuncs): Do not initialize
1586 obsolete builtins.
1587 * config/ia64/ia64.c (ia64_vms_init_libfuncs): Likewise.
1588 * config/i386/i386.c (ix86_expand_set_or_movmem): Adjust call to
1589 set_storage_via_libcall and call emit_block_copy_via_libcall.
1590
1591 2016-05-12 Uros Bizjak <ubizjak@gmail.com>
1592
1593 * config/i386/i386.md (*call_got_x32): Change operand 0 to
1594 DImode before it is passed to ix86_output_call_operand.
1595 (*call_value_got_x32): Ditto for operand 1.
1596
1597 2016-05-12 Jiong Wang <jiong.wang@arm.com>
1598
1599 PR rtl-optimization/70904
1600 * lra-constraint.c (process_addr_reg): Relax the restriction on subreg
1601 reload for wide mode.
1602
1603 2016-05-12 Marek Polacek <polacek@redhat.com>
1604
1605 PR c/70756
1606 * langhooks-def.h (lhd_incomplete_type_error): Adjust declaration.
1607 * langhooks.c (lhd_incomplete_type_error): Add location parameter.
1608 * langhooks.h (incomplete_type_error): Likewise.
1609 * tree.c (size_in_bytes_loc): Renamed from size_in_bytes. Add location
1610 parameter, pass it down to incomplete_type_error.
1611 * tree.h (size_in_bytes): New inline overload.
1612 (size_in_bytes_loc): Renamed from size_in_bytes.
1613
1614 2016-05-12 Richard Biener <rguenther@suse.de>
1615
1616 PR tree-optimization/71059
1617 * tree-ssa-pre.c (phi_translate_1): Fully fold translated
1618 nary before looking up or entering the expression into the VN
1619 hashes.
1620 * tree-ssa-sccvn.c (vn_nary_build_or_lookup): Fix comment typo.
1621 Make sure to re-use NARYs without result as inserted by
1622 phi-translation.
1623
1624 2016-05-12 Richard Biener <rguenther@suse.de>
1625
1626 PR tree-optimization/71062
1627 * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
1628 field.
1629 * tree-ssa-structalias.c (set_uids_in_ptset): Set
1630 vars_contains_restrict if the var is a restrict tag.
1631 * tree-ssa-alias.c (ptrs_compare_unequal): If vars_contains_restrict
1632 do not disambiguate pointers against it.
1633 (dump_points_to_solution): Re-structure and adjust for new
1634 vars_contains_restrict flag.
1635 * gimple-pretty-print.c (pp_points_to_solution): Likewise.
1636
1637 2016-05-12 Martin Liska <mliska@suse.cz>
1638
1639 * doc/invoke.texi: Explain connection between
1640 -fsanitize-recover=address and ASAN_OPTIONS="halt_on_error=1".
1641
1642 2016-05-12 Ilya Enkovich <ilya.enkovich@intel.com>
1643
1644 PR tree-optimization/71006
1645 * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
1646 consider COND_EXPR as a mask producer.
1647
1648 2016-05-12 Marek Polacek <polacek@redhat.com>
1649
1650 PR driver/71063
1651 * opts.c (common_handle_option): Detect missing argument for --help^.
1652
1653 2016-05-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1654
1655 PR target/70830
1656 * config/arm/arm.c (arm_output_multireg_pop): Avoid POP instruction
1657 when popping the PC and within an interrupt handler routine.
1658 Add missing tab to output of "ldmfd".
1659 (output_return_instruction): Output LDMFD with SP update rather
1660 than POP when returning from interrupt handler.
1661
1662 2016-05-12 Jakub Jelinek <jakub@redhat.com>
1663
1664 * config/i386/i386.md (isa): Add x64_avx512dq, enable if
1665 TARGET_64BIT && TARGET_AVX512DQ.
1666 * config/i386/sse.md (*vec_extract<mode>): Add avx512bw alternatives.
1667 (*vec_extract<PEXTR_MODE12:mode>_zext): Add avx512bw alternative.
1668 (*vec_extract<ssevecmodelower>_0, *vec_extractv4si_0_zext,
1669 *vec_extractv2di_0_sse): Use v constraint instead of x constraint.
1670 (*vec_extractv4si): Add avx512dq and avx512bw alternatives.
1671 (*vec_extractv4si_zext): Add avx512dq alternative.
1672 (*vec_extractv2di_1): Add x64_avx512dq and avx512bw alternatives,
1673 use v instead of x constraint in other alternatives where possible.
1674
1675 * config/i386/sse.md (sse2_loadld): Use v instead of x
1676 constraint in alternatives 0,1,4.
1677
1678 * config/i386/sse.md (pinsr_evex_isa): New mode attr.
1679 (<sse2p4_1>_pinsr<ssemodesuffix>): Add 2 alternatives with
1680 v constraints instead of x and <pinsr_evex_isa> isa attribute.
1681
1682 PR target/71019
1683 * config/i386/sse.md (<sse2_avx2>_packssdw<mask_name>,
1684 <sse4_1_avx2>_packusdw<mask_name>): Make sure EVEX encoded insn
1685 is not emitted unless TARGET_AVX512BW.
1686 (<sse2_avx2>_packuswb<mask_name>, <sse2_avx2>_packsswb<mask_name>):
1687 Likewise. For TARGET_AVX512BW, use "=v" constraint instead of "=x"
1688 for the result operand.
1689
1690 * config/i386/sse.md (*vec_setv4sf_sse4_1, sse4_1_insertps): Use v
1691 constraint instead of x in avx alternatives. Use maybe_evex instead
1692 of vex prefix.
1693
1694 * config/i386/constraints.md (Yv): New constraint.
1695 * config/i386/i386.h (VALID_AVX512VL_128_REG_MODE): Allow
1696 TFmode and V1TImode in xmm16+ registers for TARGET_AVX512VL.
1697 * config/i386/i386.md (avx512fvecmode): New mode attr.
1698 (*pushtf): Use v constraint instead of x.
1699 (*movtf_internal): Likewise. For TARGET_AVX512VL and
1700 xmm16+ registers, use vmovdqu64 or vmovdqa64 instructions.
1701 (*absneg<mode>2): Use Yv constraint instead of x constraint.
1702 (*absnegtf2_sse): Likewise.
1703 (copysign<mode>3_const, copysign<mode>3_var): Likewise.
1704 * config/i386/sse.md (*andnot<mode>3): Add avx512vl and
1705 avx512f alternatives.
1706 (*andnottf3, *<code><mode>3, *<code>tf3): Likewise.
1707
1708 2016-05-12 Richard Biener <rguenther@suse.de>
1709
1710 PR tree-optimization/71060
1711 * tree-data-ref.c (initialize_data_dependence_relation): Do not
1712 require exact match of DR_BASE_OBJECT but only matching address and
1713 type.
1714
1715 2016-05-12 Richard Biener <rguenther@suse.de>
1716
1717 PR tree-optimization/70986
1718 * cfganal.c: Include cfgloop.h.
1719 (dfs_find_deadend): Prefer to take edges exiting loops.
1720
1721 2016-05-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1722
1723 * gcc.target/powerpc/pr70963.c: Require at least power8 at both
1724 compile and run time.
1725
1726 2016-05-11 Mikhail Maltsev <maltsevm@gmail.com>
1727
1728 PR c/43651
1729 * doc/invoke.texi (Wduplicate-decl-specifier): Document new option.
1730
1731 2016-05-11 Uros Bizjak <ubizjak@gmail.com>
1732
1733 * config/i386/i386.c (legitimize_pic_address): Use
1734 copy_to_suggested_reg instead of gen_movsi.
1735
1736 2016-05-11 Michael Meissner <meissner@linux.vnet.ibm.com>
1737
1738 * config/rs6000/predicates.md (quad_memory_operand): Move most of
1739 the code into quad_address_p and call it to share code with
1740 vsx_quad_dform_memory_operand.
1741 (vsx_quad_dform_memory_operand): New predicate for ISA 3.0 vector
1742 d-form support.
1743 * config/rs6000/rs6000.opt (-mlra): Switch to being an option mask
1744 bit instead of being a separate word. Split -mpower9-dform into
1745 two switches, -mpower9-dform-scalar and -mpower9-dform-vector.
1746 * config/rs6000/rs6000.c (RELOAD_REG_QUAD_OFFSET): New addr_mask
1747 for the register class supporting 128-bit quad word memory offsets.
1748 (mode_supports_vsx_dform_quad): Helper function to return if the
1749 register class uses quad word memory offsets.
1750 (rs6000_debug_addr_mask): Add support for quad word memory offsets.
1751 (rs6000_debug_reg_global): Always print if we are using LRA or not.
1752 (rs6000_setup_reg_addr_masks): If ISA 3.0 vector d-form
1753 instructions are enabled, set up the appropriate addr_masks for
1754 128-bit types.
1755 (rs6000_init_hard_regno_mode_ok): wb constraint is now based on
1756 -mpower9-dform-scalar, instead of -mpower9-dform.
1757 (rs6000_option_override_internal): Split -mpower9-dform into two
1758 switches, -mpower9-dform-scalar and -mpower9-dform-vector. The
1759 -mpower9-dform switch sets or clears both. If we are not using
1760 the LRA register allocator, do not enable -mpower9-dform-vector by
1761 default. If we are using LRA, enable -mpower9-dform-vector and
1762 -mvsx-timode if it is appropriate. Issue a warning if either
1763 -mpower9-dform-vector or -mvsx-timode are explicitly used without
1764 enabling LRA.
1765 (quad_address_offset_p): New helper function to return if the
1766 offset is legal for quad word memory instructions.
1767 (quad_address_p): New function to determin if GPR or vector
1768 register quad word memory addresses are legal.
1769 (mem_operand_gpr): Validate quad word address offsets.
1770 (reg_offset_addressing_ok_p): Add support for ISA 3.0 vector
1771 d-form (register + offset) instructions.
1772 (offsettable_ok_by_alignment): Likewise.
1773 (rs6000_legitimate_offset_address_p): Likewise.
1774 (legitimate_lo_sum_address_p): Likewise.
1775 (rs6000_legitimize_address): Likewise.
1776 (rs6000_legitimize_reload_address): Add more debug statements for
1777 -mdebug=addr.
1778 (rs6000_legitimate_address_p): Add support for ISA 3.0 vector
1779 d-form instructions.
1780 (rs6000_secondary_reload_memory): Add support for ISA 3.0 vector
1781 d-form instructions. Distinguish different cases in debug
1782 output. (rs6000_secondary_reload_inner): Add support for ISA 3.0 vector
1783 d-form instructions.
1784 (rs6000_preferred_reload_class): Likewise.
1785 (rs6000_output_move_128bit): Add support for ISA 3.0 d-form
1786 instructions. If ISA 3.0 is available, generate lxvx/stxvx instead
1787 of the ISA 2.06 indexed memory instructions.
1788 (rs6000_emit_prologue): If we have ISA 3.0 d-form instructions,
1789 use them to save/restore the saved vector registers instead of
1790 using Altivec instructions.
1791 (rs6000_emit_epilogue): Likewise.
1792 (rs6000_lra_p): Use TARGET_LRA instead of the old option word.
1793 (rs6000_opt_masks): Split -mpower9-dform into
1794 -mpower9-dform-scalar and -mpower9-dform-vector.
1795 (rs6000_print_options_internal): Print -mno-<switch> if <switch>
1796 was not selected.
1797 * config/rs6000/vsx.md (p9_vecload_<mode>): Delete hack to emit
1798 ISA 3.0 vector indexed memory instructions, and fold the code into
1799 the normal mov<mode> patterns.
1800 (p9_vecstore_<mode>): Likewise.
1801 (vsx_mov<mode>): Add support for ISA 3.0 vector d-form
1802 instructions.
1803 (vsx_movti_64bit): Likewise.
1804 (vsx_movti_32bit): Likewise.
1805 * config/rs6000/constraints.md (wO constraint): New constraint for
1806 ISA 3.0 vector d-form support.
1807 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Use
1808 -mpower9-dform-scalar instead of -mpower9-dform. Add note not to
1809 include -mpower9-dform-vector until we switch over to LRA.
1810 (POWERPC_MASKS): Add -mlra. Split -mpower9-dform into two.
1811 switches, -mpower9-dform-scalar and -mpower9-dform-vector.
1812 * config/rs6000/rs6000-protos.h (quad_address_p): Add declaration.
1813 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
1814 for -mpower9-dform and -mlra.
1815 * doc/md.texi (wO constraint): Document wO constraint.
1816
1817 2016-05-11 Alexander Monakov <amonakov@ispras.ru>
1818
1819 * genattr.c (main): Change 'rtx' to 'rtx_insn *' in prototypes of
1820 'insn_latency', 'maximal_insn_latency', 'min_insn_conflict_delay'.
1821 * genautomata.c (output_internal_insn_code_evaluation): Simplify.
1822 Move handling of non-insn arguments inline into the sole user:
1823 (output_trans_func): ...here.
1824 (output_min_insn_conflict_delay_func): Change 'rtx' to 'rtx_insn *'
1825 in emitted function prototype.
1826 (output_internal_insn_latency_func): Ditto. Simplify.
1827 (output_internal_maximal_insn_latency_func): Ditto. Delete
1828 always-unused argument.
1829 (output_insn_latency_func): Ditto.
1830 (output_maximal_insn_latency_func): Ditto.
1831
1832 2016-05-11 Richard Biener <rguenther@suse.de>
1833
1834 PR tree-optimization/71055
1835 * tree-ssa-sccvn.c (vn_reference_lookup_3): When native-interpreting
1836 sth with precision not equal to access size verify we don't chop
1837 off bits.
1838
1839 2016-05-11 Richard Biener <rguenther@suse.de>
1840
1841 PR debug/71057
1842 * dwarf2out.c (retry_incomplete_types): Set early_dwarf.
1843 (dwarf2out_finish): Move retry_incomplete_types call ...
1844 (dwarf2out_early_finish): ... here.
1845
1846 2016-05-11 Richard Biener <rguenther@suse.de>
1847
1848 PR middle-end/71002
1849 * alias.c (reference_alias_ptr_type): Preserve alias-set zero
1850 if the langhook insists on it.
1851 * fold-const.c (make_bit_field_ref): Add arg for the original
1852 reference and preserve its alias-set.
1853 (decode_field_reference): Take exp by reference and adjust it
1854 to the original memory reference.
1855 (optimize_bit_field_compare): Adjust callers.
1856 (fold_truth_andor_1): Likewise.
1857 * gimplify.c (gimplify_expr): Adjust in-SSA form test.
1858
1859 2016-05-11 Ilya Enkovich <ilya.enkovich@intel.com>
1860
1861 PR middle-end/70807
1862 * cfgrtl.h (delete_insn_and_edges): Now return bool.
1863 * cfgrtl.c (delete_insn_and_edges): Likewise.
1864 * config/i386/i386.c (convert_scalars_to_vector): Remove
1865 redundant code.
1866 * cse.c (cse_insn): Compute cse_cfg_altered.
1867 (delete_trivially_dead_insns): Likewise.
1868 (cse_cc_succs): Likewise.
1869 (rest_of_handle_cse): Free dominance info if required.
1870 (rest_of_handle_cse2): Likewise.
1871 (rest_of_handle_cse_after_global_opts): Likewise.
1872
1873 2016-05-11 Alan Modra <amodra@gmail.com>
1874
1875 * config/rs6000/rs6000.c (is_complex_IBM_long_double,
1876 abi_v4_pass_in_fpr): New functions.
1877 (rs6000_function_arg_boundary): Exclude complex IBM long double
1878 from 64-bit alignment when ABI_V4.
1879 (rs6000_function_arg, rs6000_function_arg_advance_1,
1880 rs6000_gimplify_va_arg): Use abi_v4_pass_in_fpr.
1881
1882 2016-05-10 Segher Boessenkool <segher@kernel.crashing.org>
1883
1884 PR rtl-optimization/71028
1885 * cfgcleanup.c (try_optimize_cfg): Do not flip a conditional
1886 jump with just a return in the fallthrough block if the branch
1887 block contains just a return as well.
1888
1889 2016-05-10 Marc Glisse <marc.glisse@inria.fr>
1890
1891 * fold-const.c (fold_binary_loc) [(X ^ Y) & Y]: Remove and merge with...
1892 * match.pd ((X & Y) ^ Y): ... this.
1893 ((X & Y) & Y, (X | Y) | Y, (X ^ Y) ^ Y, (X & Y) & (X & Z), (X | Y)
1894 | (X | Z), (X ^ Y) ^ (X ^ Z)): New transformations.
1895
1896 2016-05-10 David Malcolm <dmalcolm@redhat.com>
1897
1898 * read-md.c (require_char_ws): New function.
1899 (read_string): Simplify using require_char_ws.
1900 (handle_constants): Likewise.
1901 (handle_enum): Likewise.
1902 (handle_file): Likewise.
1903 * read-md.h (require_char_ws): New declaration.
1904 * read-rtl.c (read_conditions): Simplify using require_char_ws.
1905 (read_mapping): Likewise.
1906 (read_rtx_code): Likewise.
1907 (read_nested_rtx): Likewise.
1908
1909 2016-05-10 James Norris <jnorris@codesourcery.com>
1910
1911 * config/rs6000/sysv4.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o
1912 if offloading is enabled and -fopenacc or -fopenmp is specified.
1913 (CRTOFFLOADEND): Likewise.
1914 (STARTFILE_LINUX_SPEC): Add CRTOFFLOADBEGIN.
1915 (ENDFILE_LINUX_SPEC): Add CRTOFFLOADEND.
1916
1917 2016-05-10 Uros Bizjak <ubizjak@gmail.com>
1918
1919 * config/i386/i386.c (legitimize_pic_address): Merge 64-bit and 32-bit
1920 gotoff_operand code paths. Use copy_to_suggested_regs and
1921 expand_simple_binop where appropriate. Cleanup.
1922
1923 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
1924
1925 PR target/70799
1926 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Allow
1927 integer constants.
1928 (dimode_scalar_chain::vector_const_cost): New.
1929 (dimode_scalar_chain::compute_convert_gain): Handle constants.
1930 (dimode_scalar_chain::convert_op): Likewise.
1931 (dimode_scalar_chain::convert_insn): Likewise.
1932
1933 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com>
1934
1935 * dwarf2out.c (resolve_args_picking_1): Consider DW_OP_neg as an
1936 unary operation, not a binary one.
1937
1938 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
1939
1940 PR middle-end/70877
1941 * tree-chkp.c (chkp_add_bounds_to_call_stmt): Handle
1942 calls with type casted fndecl.
1943
1944 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
1945
1946 PR tree-optimization/70786
1947 * tree-chkp.c (chkp_find_bounds_1): Support WITH_SIZE_EXPR.
1948 * calls.c (initialize_argument_information): Bind bounds
1949 with corresponding args passed by reference.
1950
1951 2016-05-10 Jakub Jelinek <jakub@redhat.com>
1952
1953 PR target/70927
1954 * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>),
1955 *<code><mode>3<mask_name>): For !TARGET_AVX512DQ and EVEX encoding,
1956 use vp*[dq] instead of v*p[sd] instructions and adjust mode attribute
1957 accordingly.
1958
1959 2016-05-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1960
1961 PR target/70963
1962 * config/rs6000/vsx.md (vsx_xvcvdpsxds_scale): Generate correct
1963 code for a zero scale factor.
1964 (vsx_xvcvdpuxds_scale): Likewise.
1965
1966 2016-05-10 David Malcolm <dmalcolm@redhat.com>
1967
1968 * diagnostic-show-locus.c (layout::layout): Call show_ruler
1969 if show_ruler_p was set on the context.
1970 (layout::show_ruler): New method.
1971 * diagnostic.h (struct diagnostic_context): Add field
1972 "show_ruler_p".
1973
1974 2016-05-10 Richard Biener <rguenther@suse.de>
1975
1976 PR tree-optimization/71039
1977 * tree-ssa-phiprop.c: Include tree-ssa-loop.h.
1978 (chk_uses): New function.
1979 (propagate_with_phi): Verify we can safely replicate the lhs of an
1980 aggregate assignment on all incoming edges.
1981
1982 2016-05-10 Oleg Endo <olegendo@gcc.gnu.org>
1983
1984 * config/rx/rx-protos.h (is_interrupt_func, is_fast_interrupt_func):
1985 Forward declare.
1986 (rx_atomic_sequence): New class.
1987 * config/rx/rx.c (rx_print_operand): Use symbolic names for PSW bits.
1988 (is_interrupt_func, is_fast_interrupt_func): Make non-static and
1989 non-inline.
1990 (rx_atomic_sequence::rx_atomic_sequence,
1991 rx_atomic_sequence::~rx_atomic_sequence): New functions.
1992 * config/rx/rx.md (CTRLREG_PSW, CTRLREG_USP, CTRLREG_FPSW, CTRLREG_CPEN,
1993 CTRLREG_BPSW, CTRLREG_BPC, CTRLREG_ISP, CTRLREG_FINTV,
1994 CTRLREG_INTB): New constants.
1995 (FETCHOP): New code iterator.
1996 (fethcop_name, fetchop_name2): New iterator code attributes.
1997 (QIHI): New mode iterator.
1998 (atomic_exchange<mode>, atomic_exchangesi, xchg_mem<mode>,
1999 atomic_fetch_<fetchop_name>si, atomic_fetch_nandsi,
2000 atomic_<fetchop_name>_fetchsi, atomic_nand_fetchsi): New patterns.
2001
2002 2016-05-10 Martin Liska <mliska@suse.cz>
2003
2004 * tree-inline.c (remap_dependence_clique): Do not remap
2005 debugging statements.
2006
2007 2016-05-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2008
2009 * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly")
2010 ("*fixuns_truncdfdi2_z13")
2011 ("*fixuns_trunc<FP:mode><GPR:mode>2_z196")
2012 ("*fix_truncdfdi2_bfp_z13", "*floatunsdidf2_z13")
2013 ("*extendsfdf2_z13"): Replace TARGET_Z13 with TARGET_VX.
2014
2015 2016-05-10 Richard Biener <rguenther@suse.de>
2016
2017 PR tree-optimization/70497
2018 PR tree-optimization/28367
2019 * tree-ssa-sccvn.c (vn_nary_build_or_lookup): New function
2020 split out from ...
2021 (visit_reference_op_load): ... here.
2022 (vn_reference_lookup_3): Use it to handle subreg-like accesses
2023 with simplified BIT_FIELD_REFs.
2024 * tree-ssa-pre.c (eliminate_insert): Handle inserting BIT_FIELD_REFs.
2025 * tree-complex.c (extract_component): Handle BIT_FIELD_REFs
2026 correctly.
2027
2028 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com>
2029
2030 * dwarf2out.c (add_abstract_origin_attribute): Adjust
2031 documentation comment. For BLOCK nodes, add a
2032 DW_AT_abstract_origin attribute that points to the DIE generated
2033 for the origin BLOCK.
2034 (gen_lexical_block_die): Call add_abstract_origin_attribute for
2035 blocks from inlined functions.
2036
2037 2016-05-10 Alan Modra <amodra@gmail.com>
2038
2039 PR target/70947
2040 * config/rs6000/rs6000.c (rs6000_expand_split_stack_prologue): Stop
2041 regrename modifying insns saving lr before __morestack call.
2042 * config/rs6000/rs6000.md (split_stack_return): Similarly for
2043 insns restoring lr after __morestack call.
2044
2045 2016-05-09 Jakub Jelinek <jakub@redhat.com>
2046
2047 * config/i386/i386.md (set_got, set_got_labelled, lwp_llwpcb,
2048 lwp_lwpval<mode>3, lwp_lwpins<mode>3): Remove constraints from
2049 expanders.
2050 * config/i386/sse.md (vec_interleave_high<mode>,
2051 vec_interleave_low<mode>, <avx512>_vpermi2var<mode>3_maskz,
2052 <avx512>_vpermt2var<mode>3_maskz): Likewise.
2053
2054 2016-05-04 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
2055
2056 * config/rs6000/rs6000.c (rs6000_reassociation_width): Add
2057 function for TARGET_SCHED_REASSOCIATION_WIDTH to enable
2058 parallel reassociation for power8 and forward.
2059
2060 2016-05-09 Uros Bizjak <ubizjak@gmail.com>
2061
2062 * config/i386/i386.md (absneg splitters with general regs): Use
2063 general_reg_operand predicate.
2064 (btsq peephole2): Use x86_64_immediate_operand to check if new
2065 value is suitable for immediate operand. Generate emitted insn
2066 using RTL expressions.
2067 (btcq peephole2): Ditto.
2068 (btrq peephole2): Ditto. Generate correct immediate operand
2069 for AND masking.
2070
2071 2016-05-09 Richard Sandiford <richard.sandiford@arm.com>
2072
2073 * cfgexpand.c (expand_debug_expr): Fix address offset for negative
2074 bitpos.
2075
2076 2016-05-09 Richard Sandiford <richard.sandiford@arm.com>
2077
2078 * tree-affine.c (wide_int_constant_multiple_p): Add missing
2079 pointer dereference.
2080
2081 2016-05-09 Richard Biener <rguenther@suse.de>
2082
2083 PR tree-optimization/70985
2084 * match.pd (BIT_FIELD_REF -> (type)): Disable on GIMPLE when
2085 op0 isn't a gimple register.
2086
2087 2016-05-09 Prachi Godbole <prachi.godbole@imgtec.com>
2088
2089 * config/mips/i6400.md (i6400_fpu_intadd, i6400_fpu_logic)
2090 (i6400_fpu_div, i6400_fpu_cmp, i6400_fpu_float, i6400_fpu_store)
2091 (i6400_fpu_long_pipe, i6400_fpu_logic_l, i6400_fpu_float_l)
2092 (i6400_fpu_mult): New cpu units.
2093 (i6400_msa_add_d, i6400_msa_int_add, i6400_msa_short_logic3)
2094 (i6400_msa_short_logic2, i6400_msa_short_logic, i6400_msa_move)
2095 (i6400_msa_cmp, i6400_msa_short_float2, i6400_msa_div_d)
2096 (i6400_msa_div_w, i6400_msa_div_h, i6400_msa_div_b)
2097 (i6400_msa_copy, i6400_msa_branch, i6400_fpu_msa_store)
2098 (i6400_fpu_msa_load, i6400_fpu_msa_move, i6400_msa_long_logic1)
2099 (i6400_msa_long_logic2, i6400_msa_mult, i6400_msa_long_float2)
2100 (i6400_msa_long_float4, i6400_msa_long_float5)
2101 (i6400_msa_long_float8, i6400_msa_fdiv_df)
2102 (i6400_msa_fdiv_sf): New reservations.
2103 * config/mips/p5600.md (p5600_fpu_intadd, p5600_fpu_cmp)
2104 (p5600_fpu_float, p5600_fpu_logic_a, p5600_fpu_logic_b)
2105 (p5600_fpu_div, p5600_fpu_logic, p5600_fpu_float_a)
2106 (p5600_fpu_float_b, p5600_fpu_float_c, p5600_fpu_float_d)
2107 (p5600_fpu_mult, p5600_fpu_fdiv, p5600_fpu_load): New cpu units.
2108 (msa_short_int_add, msa_short_logic, msa_short_logic_move_v)
2109 (msa_short_cmp, msa_short_float2, msa_short_logic3)
2110 (msa_short_store4, msa_long_load, msa_short_store)
2111 (msa_long_logic, msa_long_float2, msa_long_float4)
2112 (msa_long_float5, msa_long_float8, msa_long_mult)
2113 (msa_long_fdiv, msa_long_div): New reservations.
2114
2115 2016-05-09 Robert Suchanek <robert.suchanek@imgtec.com>
2116 Sameera Deshpande <sameera.deshpande@imgtec.com>
2117 Matthew Fortune <matthew.fortune@imgtec.com>
2118 Graham Stott <graham.stott@imgtec.com>
2119 Chao-ying Fu <chao-ying.fu@imgtec.com>
2120
2121 * config.gcc: Add MSA header file for mips*-*-* target.
2122 * config/mips/constraints.md (YI, YC, YZ, Unv5, Uuv5, Usv5, Uuv6)
2123 (Ubv8i, Urv8): New constraints.
2124 * config/mips/mips-ftypes.def: Add function types for MSA
2125 builtins.
2126 * config/mips/mips-modes.def (V16QI, V8HI, V4SI, V2DI, V4SF)
2127 (V2DF, V32QI, V16HI, V8SI, V4DI, V8SF, V4DF): New modes.
2128 * config/mips/mips-msa.md: New file.
2129 * config/mips/mips-protos.h
2130 (mips_split_128bit_const_insns): New prototype.
2131 (mips_msa_idiv_insns): Likewise.
2132 (mips_split_128bit_move): Likewise.
2133 (mips_split_128bit_move_p): Likewise.
2134 (mips_split_msa_copy_d): Likewise.
2135 (mips_split_msa_insert_d): Likewise.
2136 (mips_split_msa_fill_d): Likewise.
2137 (mips_expand_msa_branch): Likewise.
2138 (mips_const_vector_same_val_p): Likewise.
2139 (mips_const_vector_same_bytes_p): Likewise.
2140 (mips_const_vector_same_int_p): Likewise.
2141 (mips_const_vector_shuffle_set_p): Likewise.
2142 (mips_const_vector_bitimm_set_p): Likewise.
2143 (mips_const_vector_bitimm_clr_p): Likewise.
2144 (mips_msa_vec_parallel_const_half): Likewise.
2145 (mips_msa_output_division): Likewise.
2146 (mips_ldst_scaled_shift): Likewise.
2147 (mips_expand_vec_cond_expr): Likewise.
2148 * config/mips/mips.c (enum mips_builtin_type): Add
2149 MIPS_BUILTIN_MSA_TEST_BRANCH.
2150 (mips_gen_const_int_vector_shuffle): New prototype.
2151 (mips_const_vector_bitimm_set_p): New function.
2152 (mips_const_vector_bitimm_clr_p): Likewise.
2153 (mips_const_vector_same_val_p): Likewise.
2154 (mips_const_vector_same_bytes_p): Likewise.
2155 (mips_const_vector_same_int_p): Likewise.
2156 (mips_const_vector_shuffle_set_p): Likewise.
2157 (mips_symbol_insns): Forbid loading symbols via immediate for
2158 MSA.
2159 (mips_valid_offset_p): Limit offset to 10-bit for MSA loads and
2160 stores.
2161 (mips_valid_lo_sum_p): Forbid loadings symbols via %lo(base) for
2162 MSA.
2163 (mips_lx_address_p): Add support load indexed address for MSA.
2164 (mips_address_insns): Add calculation of instructions needed for
2165 stores and loads for MSA.
2166 (mips_const_insns): Move CONST_DOUBLE below CONST_VECTOR. Handle
2167 CONST_VECTOR for MSA and let it fall through.
2168 (mips_ldst_scaled_shift): New function.
2169 (mips_subword_at_byte): Likewise.
2170 (mips_msa_idiv_insns): Likewise.
2171 (mips_legitimize_move): Validate MSA moves.
2172 (mips_rtx_costs): Add UNGE, UNGT, UNLE, UNLT cases. Add
2173 calculation of costs for MSA division.
2174 (mips_split_move_p): Check if MSA moves need splitting.
2175 (mips_split_move): Split MSA moves if necessary.
2176 (mips_split_128bit_move_p): New function.
2177 (mips_split_128bit_move): Likewise.
2178 (mips_split_msa_copy_d): Likewise.
2179 (mips_split_msa_insert_d): Likewise.
2180 (mips_split_msa_fill_d): Likewise.
2181 (mips_output_move): Handle MSA moves.
2182 (mips_expand_msa_branch): New function.
2183 (mips_print_operand): Add 'E', 'B', 'w', 'v' and 'V' modifiers.
2184 Reinstate 'y' modifier.
2185 (mips_file_start): Add MSA .gnu_attribute.
2186 (mips_hard_regno_mode_ok_p): Allow TImode and 128-bit vectors in
2187 FPRs.
2188 (mips_hard_regno_nregs): Always return 1 for MSA supported mode.
2189 (mips_class_max_nregs): Add register size for MSA supported mode.
2190 (mips_cannot_change_mode_class): Allow conversion between MSA
2191 vector modes and TImode.
2192 (mips_mode_ok_for_mov_fmt_p): Allow MSA to use move.v
2193 instruction.
2194 (mips_secondary_reload_class): Force MSA loads/stores via memory.
2195 (mips_preferred_simd_mode): Add preffered modes for MSA.
2196 (mips_vector_mode_supported_p): Add MSA supported modes.
2197 (mips_autovectorize_vector_sizes): New function.
2198 (mips_msa_output_division): Likewise.
2199 (MSA_BUILTIN, MIPS_BUILTIN_DIRECT_NO_TARGET)
2200 (MSA_NO_TARGET_BUILTIN, MSA_BUILTIN_TEST_BRANCH): New macros.
2201 (CODE_FOR_msa_adds_s_b, CODE_FOR_msa_adds_s_h)
2202 (CODE_FOR_msa_adds_s_w, CODE_FOR_msa_adds_s_d)
2203 (CODE_FOR_msa_adds_u_b, CODE_FOR_msa_adds_u_h)
2204 (CODE_FOR_msa_adds_u_w, CODE_FOR_msa_adds_u_du
2205 (CODE_FOR_msa_addv_b, CODE_FOR_msa_addv_h, CODE_FOR_msa_addv_w)
2206 (CODE_FOR_msa_addv_d, CODE_FOR_msa_and_v, CODE_FOR_msa_bmnz_v)
2207 (CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bmz_v, CODE_FOR_msa_bmzi_b)
2208 (CODE_FOR_msa_bnz_v, CODE_FOR_msa_bz_v, CODE_FOR_msa_bsel_v)
2209 (CODE_FOR_msa_bseli_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w)
2210 (CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b)
2211 (CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w)
2212 (CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clti_u_b)
2213 (CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w)
2214 (CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_s_b)
2215 (CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w)
2216 (CODE_FOR_msa_clei_s_d, CODE_FOR_msa_clei_u_b)
2217 (CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w)
2218 (CODE_FOR_msa_clei_u_d, CODE_FOR_msa_div_s_b)
2219 (CODE_FOR_msa_div_s_h, CODE_FOR_msa_div_s_w)
2220 (CODE_FOR_msa_div_s_d, CODE_FOR_msa_div_u_b)
2221 (CODE_FOR_msa_div_u_h, CODE_FOR_msa_div_u_w)
2222 (CODE_FOR_msa_div_u_d, CODE_FOR_msa_fadd_w, CODE_FOR_msa_fadd_d)
2223 (CODE_FOR_msa_fexdo_w, CODE_FOR_msa_ftrunc_s_w)
2224 (CODE_FOR_msa_ftrunc_s_d, CODE_FOR_msa_ftrunc_u_w)
2225 (CODE_FOR_msa_ftrunc_u_d, CODE_FOR_msa_ffint_s_w)
2226 (CODE_FOR_msa_ffint_s_d, CODE_FOR_msa_ffint_u_w)
2227 (CODE_FOR_msa_ffint_u_d, CODE_FOR_msa_fsub_w)
2228 (CODE_FOR_msa_fsub_d, CODE_FOR_msa_fmsub_d, CODE_FOR_msa_fmadd_w)
2229 (CODE_FOR_msa_fmadd_d, CODE_FOR_msa_fmsub_w, CODE_FOR_msa_fmul_w)
2230 (CODE_FOR_msa_fmul_d, CODE_FOR_msa_fdiv_w, CODE_FOR_msa_fdiv_d)
2231 (CODE_FOR_msa_fmax_w, CODE_FOR_msa_fmax_d, CODE_FOR_msa_fmax_a_w)
2232 (CODE_FOR_msa_fmax_a_d, CODE_FOR_msa_fmin_w, CODE_FOR_msa_fmin_d)
2233 (CODE_FOR_msa_fmin_a_w, CODE_FOR_msa_fmin_a_d)
2234 (CODE_FOR_msa_fsqrt_w, CODE_FOR_msa_fsqrt_d)
2235 (CODE_FOR_msa_max_s_b, CODE_FOR_msa_max_s_h)
2236 (CODE_FOR_msa_max_s_w, CODE_FOR_msa_max_s_d)
2237 (CODE_FOR_msa_max_u_b, CODE_FOR_msa_max_u_h)
2238 (CODE_FOR_msa_max_u_w, CODE_FOR_msa_max_u_d)
2239 (CODE_FOR_msa_min_s_b, CODE_FOR_msa_min_s_h)
2240 (CODE_FOR_msa_min_s_w, CODE_FOR_msa_min_s_d)
2241 (CODE_FOR_msa_min_u_b, CODE_FOR_msa_min_u_h)
2242 (CODE_FOR_msa_min_u_w, CODE_FOR_msa_min_u_d)
2243 (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
2244 (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
2245 (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
2246 (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
2247 (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
2248 (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
2249 (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
2250 (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
2251 (CODE_FOR_msa_mulv_b, CODE_FOR_msa_mulv_h, CODE_FOR_msa_mulv_w)
2252 (CODE_FOR_msa_mulv_d, CODE_FOR_msa_nlzc_b, CODE_FOR_msa_nlzc_h)
2253 (CODE_FOR_msa_nlzc_w, CODE_FOR_msa_nlzc_d, CODE_FOR_msa_nor_v)
2254 (CODE_FOR_msa_or_v, CODE_FOR_msa_ori_b, CODE_FOR_msa_nori_b)
2255 (CODE_FOR_msa_pcnt_b, CODE_FOR_msa_pcnt_h, CODE_FOR_msa_pcnt_w)
2256 (CODE_FOR_msa_pcnt_d, CODE_FOR_msa_xor_v, CODE_FOR_msa_xori_b)
2257 (CODE_FOR_msa_sll_b, CODE_FOR_msa_sll_h, CODE_FOR_msa_sll_w)
2258 (CODE_FOR_msa_sll_d, CODE_FOR_msa_slli_b, CODE_FOR_msa_slli_h)
2259 (CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d, CODE_FOR_msa_sra_b)
2260 (CODE_FOR_msa_sra_h, CODE_FOR_msa_sra_w, CODE_FOR_msa_sra_d)
2261 (CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w)
2262 (CODE_FOR_msa_srai_d, CODE_FOR_msa_srl_b, CODE_FOR_msa_srl_h)
2263 (CODE_FOR_msa_srl_w, CODE_FOR_msa_srl_d, CODE_FOR_msa_srli_b)
2264 (CODE_FOR_msa_srli_h, CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d)
2265 (CODE_FOR_msa_subv_b, CODE_FOR_msa_subv_h, CODE_FOR_msa_subv_w)
2266 (CODE_FOR_msa_subv_d, CODE_FOR_msa_subvi_b, CODE_FOR_msa_subvi_h)
2267 (CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d, CODE_FOR_msa_move_v)
2268 (CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h, CODE_FOR_msa_vshf_w)
2269 (CODE_FOR_msa_vshf_d, CODE_FOR_msa_ilvod_d, CODE_FOR_msa_ilvev_d)
2270 (CODE_FOR_msa_pckod_d, CODE_FOR_msa_pckdev_d, CODE_FOR_msa_ldi_b)
2271 (CODE_FOR_msa_ldi_hi, CODE_FOR_msa_ldi_w)
2272 (CODE_FOR_msa_ldi_d): New code_aliasing macros.
2273 (mips_builtins): Add MSA sll_b, sll_h, sll_w, sll_d, slli_b,
2274 slli_h, slli_w, slli_d, sra_b, sra_h, sra_w, sra_d, srai_b,
2275 srai_h, srai_w, srai_d, srar_b, srar_h, srar_w, srar_d, srari_b,
2276 srari_h, srari_w, srari_d, srl_b, srl_h, srl_w, srl_d, srli_b,
2277 srli_h, srli_w, srli_d, srlr_b, srlr_h, srlr_w, srlr_d, srlri_b,
2278 srlri_h, srlri_w, srlri_d, bclr_b, bclr_h, bclr_w, bclr_d,
2279 bclri_b, bclri_h, bclri_w, bclri_d, bset_b, bset_h, bset_w,
2280 bset_d, bseti_b, bseti_h, bseti_w, bseti_d, bneg_b, bneg_h,
2281 bneg_w, bneg_d, bnegi_b, bnegi_h, bnegi_w, bnegi_d, binsl_b,
2282 binsl_h, binsl_w, binsl_d, binsli_b, binsli_h, binsli_w,
2283 binsli_d, binsr_b, binsr_h, binsr_w, binsr_d, binsri_b, binsri_h,
2284 binsri_w, binsri_d, addv_b, addv_h, addv_w, addv_d, addvi_b,
2285 addvi_h, addvi_w, addvi_d, subv_b, subv_h, subv_w, subv_d,
2286 subvi_b, subvi_h, subvi_w, subvi_d, max_s_b, max_s_h, max_s_w,
2287 max_s_d, maxi_s_b, maxi_s_h, maxi_s_w, maxi_s_d, max_u_b,
2288 max_u_h, max_u_w, max_u_d, maxi_u_b, maxi_u_h, maxi_u_w,
2289 maxi_u_d, min_s_b, min_s_h, min_s_w, min_s_d, mini_s_b, mini_s_h,
2290 mini_s_w, mini_s_d, min_u_b, min_u_h, min_u_w, min_u_d, mini_u_b,
2291 mini_u_h, mini_u_w, mini_u_d, max_a_b, max_a_h, max_a_w, max_a_d,
2292 min_a_b, min_a_h, min_a_w, min_a_d, ceq_b, ceq_h, ceq_w, ceq_d,
2293 ceqi_b, ceqi_h, ceqi_w, ceqi_d, clt_s_b, clt_s_h, clt_s_w,
2294 clt_s_d, clti_s_b, clti_s_h, clti_s_w, clti_s_d, clt_u_b,
2295 clt_u_h, clt_u_w, clt_u_d, clti_u_b, clti_u_h, clti_u_w,
2296 clti_u_d, cle_s_b, cle_s_h, cle_s_w, cle_s_d, clei_s_b, clei_s_h,
2297 clei_s_w, clei_s_d, cle_u_b, cle_u_h, cle_u_w, cle_u_d, clei_u_b,
2298 clei_u_h, clei_u_w, clei_u_d, ld_b, ld_h, ld_w, ld_d, st_b, st_h,
2299 st_w, st_d, sat_s_b, sat_s_h, sat_s_w, sat_s_d, sat_u_b, sat_u_h,
2300 sat_u_w, sat_u_d, add_a_b, add_a_h, add_a_w, add_a_d, adds_a_b,
2301 adds_a_h, adds_a_w, adds_a_d, adds_s_b, adds_s_h, adds_s_w,
2302 adds_s_d, adds_u_b, adds_u_h, adds_u_w, adds_u_d, ave_s_b,
2303 ave_s_h, ave_s_w, ave_s_d, ave_u_b, ave_u_h, ave_u_w, ave_u_d,
2304 aver_s_b, aver_s_h, aver_s_w, aver_s_d, aver_u_b, aver_u_h,
2305 aver_u_w, aver_u_d, subs_s_b, subs_s_h, subs_s_w, subs_s_d,
2306 subs_u_b, subs_u_h, subs_u_w, subs_u_d, subsuu_s_b, subsuu_s_h,
2307 subsuu_s_w, subsuu_s_d, subsus_u_b, subsus_u_h, subsus_u_w,
2308 subsus_u_d, asub_s_b, asub_s_h, asub_s_w, asub_s_d, asub_u_b,
2309 asub_u_h, asub_u_w, asub_u_d, mulv_b, mulv_h, mulv_w, mulv_d,
2310 maddv_b, maddv_h, maddv_w, maddv_d, msubv_b, msubv_h, msubv_w,
2311 msubv_d, div_s_b, div_s_h, div_s_w, div_s_d, div_u_b, div_u_h,
2312 div_u_w, div_u_d, hadd_s_h, hadd_s_w, hadd_s_d, hadd_u_h,
2313 hadd_u_w, hadd_u_d, hsub_s_h, hsub_s_w, hsub_s_d, hsub_u_h,
2314 hsub_u_w, hsub_u_d, mod_s_b, mod_s_h, mod_s_w, mod_s_d, mod_u_b,
2315 mod_u_h, mod_u_w, mod_u_d, dotp_s_h, dotp_s_w, dotp_s_d,
2316 dotp_u_h, dotp_u_w, dotp_u_d, dpadd_s_h, dpadd_s_w, dpadd_s_d,
2317 dpadd_u_h, dpadd_u_w, dpadd_u_d, dpsub_s_h, dpsub_s_w, dpsub_s_d,
2318 dpsub_u_h, dpsub_u_w, dpsub_u_d, sld_b, sld_h, sld_w, sld_d,
2319 sldi_b, sldi_h, sldi_w, sldi_d, splat_b, splat_h, splat_w,
2320 splat_d, splati_b, splati_h, splati_w, splati_d, pckev_b,
2321 pckev_h, pckev_w, pckev_d, pckod_b, pckod_h, pckod_w, pckod_d,
2322 ilvl_b, ilvl_h, ilvl_w, ilvl_d, ilvr_b, ilvr_h, ilvr_w, ilvr_d,
2323 ilvev_b, ilvev_h, ilvev_w, ilvev_d, ilvod_b, ilvod_h, ilvod_w,
2324 ilvod_d, vshf_b, vshf_h, vshf_w, vshf_d, and_v, andi_b, or_v,
2325 ori_b, nor_v, nori_b, xor_v, xori_b, bmnz_v, bmnzi_b, bmz_v,
2326 bmzi_b, bsel_v, bseli_b, shf_b, shf_h, shf_w, bnz_v, bz_v,
2327 fill_b, fill_h, fill_w, fill_d, pcnt_b, pcnt_h, pcnt_w,
2328 pcnt_d, nloc_b, nloc_h, nloc_w, nloc_d, nlzc_b, nlzc_h, nlzc_w,
2329 nlzc_d, copy_s_b, copy_s_h, copy_s_w, copy_s_d, copy_u_b,
2330 copy_u_h, copy_u_w, copy_u_d, insert_b, insert_h, insert_w,
2331 insert_d, insve_b, insve_h, insve_w, insve_d, bnz_b, bnz_h,
2332 bnz_w, bnz_d, bz_b, bz_h, bz_w, bz_d, ldi_b, ldi_h, ldi_w, ldi_d,
2333 fcaf_w, fcaf_d, fcor_w, fcor_d, fcun_w, fcun_d, fcune_w, fcune_d,
2334 fcueq_w, fcueq_d, fceq_w, fceq_d, fcne_w, fcne_d, fclt_w, fclt_d,
2335 fcult_w, fcult_d, fcle_w, fcle_d, fcule_w, fcule_d, fsaf_w,
2336 fsaf_d, fsor_w, fsor_d, fsun_w, fsun_d, fsune_w, fsune_d,
2337 fsueq_w, fsueq_d, fseq_w, fseq_d, fsne_w, fsne_d, fslt_w,
2338 fslt_d, fsult_w, fsult_d, fsle_w, fsle_d, fsule_w, fsule_d,
2339 fadd_w, fadd_d, fsub_w, fsub_d, fmul_w, fmul_d, fdiv_w, fdiv_d,
2340 fmadd_w, fmadd_d, fmsub_w, fmsub_d, fexp2_w, fexp2_d, fexdo_h,
2341 fexdo_w, ftq_h, ftq_w, fmin_w, fmin_d, fmin_a_w, fmin_a_d,
2342 fmax_w, fmax_d, fmax_a_w, fmax_a_d, mul_q_h, mul_q_w, mulr_q_h,
2343 mulr_q_w, madd_q_h, madd_q_w, maddr_q_h, maddr_q_w, msub_q_h,
2344 msub_q_w, msubr_q_h, msubr_q_w, fclass_w, fclass_d, fsqrt_w,
2345 fsqrt_d, frcp_w, frcp_d, frint_w, frint_d, frsqrt_w, frsqrt_d,
2346 flog2_w, flog2_d, fexupl_w, fexupl_d, fexupr_w, fexupr_d, ffql_w,
2347 ffql_d, ffqr_w, ffqr_d, ftint_s_w, ftint_s_d, ftint_u_w,
2348 ftint_u_d, ftrunc_s_w, ftrunc_s_d, ftrunc_u_w, ftrunc_u_d,
2349 ffint_s_w, ffint_s_d, ffint_u_w, ffint_u_d, ctcmsa, cfcmsa,
2350 move_v builtins.
2351 (mips_get_builtin_decl_index): New array.
2352 (MIPS_ATYPE_QI, MIPS_ATYPE_HI, MIPS_ATYPE_V2DI, MIPS_ATYPE_V4SI)
2353 (MIPS_ATYPE_V8HI, MIPS_ATYPE_V16QI, MIPS_ATYPE_V2DF)
2354 (MIPS_ATYPE_V4SF, MIPS_ATYPE_UV2DI, MIPS_ATYPE_UV4SI)
2355 (MIPS_ATYPE_UV8HI, MIPS_ATYPE_UV16QI): New.
2356 (mips_init_builtins): Initialize mips_get_builtin_decl_index
2357 array.
2358 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
2359 hook.
2360 (mips_expand_builtin_insn): Prepare operands for
2361 CODE_FOR_msa_addvi_b, CODE_FOR_msa_addvi_h, CODE_FOR_msa_addvi_w,
2362 CODE_FOR_msa_addvi_d, CODE_FOR_msa_clti_u_b,
2363 CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w,
2364 CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_u_b,
2365 CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w,
2366 CODE_FOR_msa_clei_u_d, CODE_FOR_msa_maxi_u_b,
2367 CODE_FOR_msa_maxi_u_h, CODE_FOR_msa_maxi_u_w,
2368 CODE_FOR_msa_maxi_u_d, CODE_FOR_msa_mini_u_b,
2369 CODE_FOR_msa_mini_u_h, CODE_FOR_msa_mini_u_w,
2370 CODE_FOR_msa_mini_u_d, CODE_FOR_msa_subvi_b,
2371 CODE_FOR_msa_subvi_h, CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d,
2372 CODE_FOR_msa_ceqi_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w,
2373 CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b,
2374 CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w,
2375 CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clei_s_b,
2376 CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w,
2377 CODE_FOR_msa_clei_s_d, CODE_FOR_msa_maxi_s_b,
2378 CODE_FOR_msa_maxi_s_h, CODE_FOR_msa_maxi_s_w,
2379 CODE_FOR_msa_maxi_s_d, CODE_FOR_msa_mini_s_b,
2380 CODE_FOR_msa_mini_s_h, CODE_FOR_msa_mini_s_w,
2381 CODE_FOR_msa_mini_s_d, CODE_FOR_msa_andi_b, CODE_FOR_msa_ori_b,
2382 CODE_FOR_msa_nori_b, CODE_FOR_msa_xori_b, CODE_FOR_msa_bmzi_b,
2383 CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bseli_b, CODE_FOR_msa_fill_b,
2384 CODE_FOR_msa_fill_h, CODE_FOR_msa_fill_w, CODE_FOR_msa_fill_d,
2385 CODE_FOR_msa_ilvl_b, CODE_FOR_msa_ilvl_h, CODE_FOR_msa_ilvl_w,
2386 CODE_FOR_msa_ilvl_d, CODE_FOR_msa_ilvr_b, CODE_FOR_msa_ilvr_h,
2387 CODE_FOR_msa_ilvr_w, CODE_FOR_msa_ilvr_d, CODE_FOR_msa_ilvev_b,
2388 CODE_FOR_msa_ilvev_h, CODE_FOR_msa_ilvev_w, CODE_FOR_msa_ilvod_b,
2389 CODE_FOR_msa_ilvod_h, CODE_FOR_msa_ilvod_w, CODE_FOR_msa_pckev_b,
2390 CODE_FOR_msa_pckev_h, CODE_FOR_msa_pckev_w, CODE_FOR_msa_pckod_b,
2391 CODE_FOR_msa_pckod_h, CODE_FOR_msa_pckod_w, CODE_FOR_msa_slli_b,
2392 CODE_FOR_msa_slli_h, CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d,
2393 CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w,
2394 CODE_FOR_msa_srai_d, CODE_FOR_msa_srli_b, CODE_FOR_msa_srli_h,
2395 CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d, CODE_FOR_msa_insert_b,
2396 CODE_FOR_msa_insert_h, CODE_FOR_msa_insert_w,
2397 CODE_FOR_msa_insert_d, CODE_FOR_msa_insve_b,
2398 CODE_FOR_msa_insve_h, CODE_FOR_msa_insve_w, CODE_FOR_msa_insve_d,
2399 CODE_FOR_msa_shf_b, CODE_FOR_msa_shf_h, CODE_FOR_msa_shf_w,
2400 CODE_FOR_msa_shf_w_f, CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h,
2401 CODE_FOR_msa_vshf_w, CODE_FOR_msa_vshf_d.
2402 (mips_expand_builtin): Add case for MIPS_BULTIN_MSA_TEST_BRANCH.
2403 (mips_set_compression_mode): Disallow MSA with MIPS16 code.
2404 (mips_option_override): -mmsa requires -mfp64 and -mhard-float.
2405 These are set implicitly and an error is reported if overridden.
2406 (mips_expand_builtin_msa_test_branch): New function.
2407 (mips_expand_msa_shuffle): Likewise.
2408 (MAX_VECT_LEN): Increase maximum length of a vector to 16 bytes.
2409 (TARGET_SCHED_REASSOCIATION_WIDTH): Define target hook.
2410 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Likewise.
2411 (mips_expand_vec_unpack): Add support for MSA.
2412 (mips_expand_vector_init): Likewise.
2413 (mips_expand_vi_constant): Use CONST0_RTX (element_mode)
2414 instead of const0_rtx.
2415 (mips_msa_vec_parallel_const_half): New function.
2416 (mips_gen_const_int_vector): Likewise.
2417 (mips_gen_const_int_vector_shuffle): Likewise.
2418 (mips_expand_msa_cmp): Likewise.
2419 (mips_expand_vec_cond_expr): Likewise.
2420 * config/mips/mips.h
2421 (TARGET_CPU_CPP_BUILTINS): Add __mips_msa and __mips_msa_width.
2422 (OPTION_DEFAULT_SPECS): Ignore --with-fp-32 if -mmsa is
2423 specified.
2424 (ASM_SPEC): Pass mmsa and mno-msa to the assembler.
2425 (ISA_HAS_MSA): New macro.
2426 (UNITS_PER_MSA_REG): Likewise.
2427 (BITS_PER_MSA_REG): Likewise.
2428 (BIGGEST_ALIGNMENT): Redefine using ISA_HAS_MSA.
2429 (MSA_REG_FIRST): New macro.
2430 (MSA_REG_LAST): Likewise.
2431 (MSA_REG_NUM): Likewise.
2432 (MSA_REG_P): Likewise.
2433 (MSA_REG_RTX_P): Likewise.
2434 (MSA_SUPPORTED_MODE_P): Likewise.
2435 (HARD_REGNO_CALL_PART_CLOBBERED): Redefine using TARGET_MSA.
2436 (ADDITIONAL_REGISTER_NAMES): Add named registers $w0-$w31.
2437 * config/mips/mips.md: Include mips-msa.md.
2438 (alu_type): Add simd_add.
2439 (mode): Add V2DI, V4SI, V8HI, V16QI, V2DF, V4SF.
2440 (type): Add simd_div, simd_fclass, simd_flog2, simd_fadd,
2441 simd_fcvt, simd_fmul, simd_fmadd, simd_fdiv, simd_bitins,
2442 simd_bitmov, simd_insert, simd_sld, simd_mul, simd_fcmp,
2443 simd_fexp2, simd_int_arith, simd_bit, simd_shift, simd_splat,
2444 simd_fill, simd_permute, simd_shf, simd_sat, simd_pcnt,
2445 simd_copy, simd_branch, simd_cmsa, simd_fminmax, simd_logic,
2446 simd_move, simd_load, simd_store. Choose "multi" for moves
2447 for "qword_mode".
2448 (qword_mode): New attribute.
2449 (insn_count): Add instruction count for quad moves.
2450 Increase the count for MIPS SIMD division.
2451 (UNITMODE): Add UNITMODEs for vector types.
2452 (addsub): New code iterator.
2453 * config/mips/mips.opt (mmsa): New option.
2454 * config/mips/msa.h: New file.
2455 * config/mips/mti-elf.h: Don't infer -mfpxx if -mmsa is
2456 specified.
2457 * config/mips/mti-linux.h: Likewise.
2458 * config/mips/predicates.md
2459 (const_msa_branch_operand): New constraint.
2460 (const_uimm3_operand): Likewise.
2461 (const_uimm4_operand): Likewise.
2462 (const_uimm5_operand): Likewise.
2463 (const_uimm8_operand): Likewise.
2464 (const_imm5_operand): Likewise.
2465 (aq10b_operand): Likewise.
2466 (aq10h_operand): Likewise.
2467 (aq10w_operand): Likewise.
2468 (aq10d_operand): Likewise.
2469 (const_m1_operand): Likewise.
2470 (reg_or_m1_operand): Likewise.
2471 (const_exp_2_operand): Likewise.
2472 (const_exp_4_operand): Likewise.
2473 (const_exp_8_operand): Likewise.
2474 (const_exp_16_operand): Likewise.
2475 (const_vector_same_val_operand): Likewise.
2476 (const_vector_same_simm5_operand): Likewise.
2477 (const_vector_same_uimm5_operand): Likewise.
2478 (const_vector_same_uimm6_operand): Likewise.
2479 (const_vector_same_uimm8_operand): Likewise.
2480 (par_const_vector_shf_set_operand): Likewise.
2481 (reg_or_vector_same_val_operand): Likewise.
2482 (reg_or_vector_same_simm5_operand): Likewise.
2483 (reg_or_vector_same_uimm6_operand): Likewise.
2484 * doc/extend.texi (MIPS SIMD Architecture Functions): New
2485 section.
2486 * doc/invoke.texi (-mmsa): Document new option.
2487
2488 2016-05-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2489
2490 * configure.ac (enable_vtable_verify): Handle --enable-vtable-verify.
2491 * configure: Regenerate.
2492 * config.in: Regenerate.
2493 * gcc.c (VTABLE_VERIFICATION_SPEC) [!ENABLE_VTABLE_VERIFY]: Error
2494 on -fvtable-verify.
2495 * config/sol2.h [!ENABLE_VTABLE_VERIFY] (STARTFILE_VTV_SPEC): Define.
2496 (ENDFILE_VTV_SPEC): Define.
2497
2498 2016-05-09 Kaushik Phatak <kaushik.phatak@kpit.com>
2499
2500 * config/rl78/rl78.c (rl78_expand_prologue): Save the MDUC related
2501 registers in all interrupt handlers if necessary.
2502 (rl78_option_override): Add warning.
2503 (MUST_SAVE_MDUC_REGISTERS): New macro.
2504 (rl78_expand_epilogue): Restore the MDUC registers if necessary.
2505 * config/rl78/rl78.c (check_mduc_usage): New function.
2506 (mduc_regs): New structure to hold MDUC register data.
2507 * config/rl78/rl78.md (is_g13_muldiv_insn): New attribute.
2508 (mulsi3_g13): Add is_g13_muldiv_insn attribute.
2509 (udivmodsi4_g13): Add is_g13_muldiv_insn attribute.
2510 (mulhi3_g13): Add is_g13_muldiv_insn attribute.
2511 * config/rl78/rl78.opt (msave-mduc-in-interrupts): New option.
2512 * doc/invoke.texi (RL78 Options): Add -msave-mduc-in-interrupts.
2513
2514 2016-05-09 Bin Cheng <bin.cheng@arm.com>
2515
2516 * tree-if-conv.c (tree-ssa-loop.h): Include header file.
2517 (tree-ssa-loop-niter.h): Ditto.
2518 (idx_within_array_bound, ref_within_array_bound): New functions.
2519 (ifcvt_memrefs_wont_trap): Check if array ref is within bound.
2520 Factor out check on writable base object to ...
2521 (base_object_writable): ... here.
2522
2523 2016-05-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2524
2525 * config/arm/arm.md (probe_stack): Add modes to set source
2526 and destination.
2527
2528 2016-05-09 Bernd Schmidt <bschmidt@redhat.com>
2529
2530 * regrename.c (base_reg_class_for_rename): New static function.
2531 (scan_rtx_address, scan_rtx): Use it instead of base_reg_class.
2532
2533 2016-05-08 Jan Hubicka <hubicka@ucw.cz>
2534
2535 * cgraph.c (thunk_adjust): Export.
2536 * cgraphclones.c (cgraph_node::create_clone): Clone thunk info.
2537 * cgraphunit.c (thunk_adjust): Export.
2538 (cgraph_node::assemble_thunks_and_aliases): Do not assemble inlined
2539 thunks.
2540 * ipa-inline-analyssi.c (compute_inline_parameters): Thunks are
2541 inlinable.
2542 * tree-inline.c (expand_call_inline): Expand thunks inline.
2543
2544 2016-05-08 Uros Bizjak <ubizjak@gmail.com>
2545
2546 PR target/70998
2547 * config/i386/sse.md (*sse2_vd_cvtsd2ss): New insn pattern.
2548 (*sse2_vd_cvtss2sd): Ditto.
2549 * config/i386/i386.md
2550 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf splitter):
2551 Generate *sse2_vd_cvtsd2ss pattern.
2552 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df splitter):
2553 Generate *sse2_vd_cvtss2sd pattern.
2554
2555 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
2556
2557 * config/sh/sh.h (GET_SH_ARG_CLASS): Convert macro into ...
2558 * config/sh/sh.c (get_sh_arg_class): ... this new function. Update its
2559 users.
2560
2561 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
2562
2563 * config/sh/sh-protos.h (sh_media_register_for_return): Remove.
2564 * config/sh/sh.c: Define and declare variables on first use throughout
2565 the file.
2566 (current_function_interrupt): Change to bool type.
2567 (frame_insn): Rename to emit_frame_insn and update users.
2568 (push_regs): Use bool for 'interrupt_handler' argument.
2569 (save_schedule_s): Remove.
2570 (TARGET_ASM_UNALIGNED_DI_OP, TARGET_ASM_ALIGNED_DI_OP): Remove.
2571 (sh_option_override): Don't nullify targetm.asm_out.aligned_op.di and
2572 targetm.asm_out.unaligned_op.di.
2573 (gen_far_branch): Remove redundant forward declaration.
2574 (sh_media_register_for_return, MAX_SAVED_REGS, save_entry_s, save_entry,
2575 MAX_TEMPS, save_schedule_ssave_schedule): Remove.
2576 (sh_set_return_address, sh_function_ok_for_sibcall,
2577 scavenge_reg): Update comments.
2578 (sh_builtin_saveregs): Use TRAGET_FPU_ANY condition.
2579 (sh2a_get_function_vector_number, sh2a_function_vector_p): Use for loop.
2580 (sh_attr_renesas_p): Remove unnecessary parentheses.
2581 (branch_dest): Simplify.
2582 * config/sh/sh.h (sh_args): Remove byref, byref_regs, stack_regs fields.
2583 Change force_mem, prototype_p, outgoing, renesas_abi fields to bool.
2584 (CUMULATIVE_ARGS): Change macro to typedef.
2585 (current_function_interrupt): Change to bool type.
2586 (sh_arg_class, sh_args, CUMULATIVE_ARGS, current_function_interrupt):
2587 Surround with __cplusplus ifdef.
2588 (sh_compare_op0, sh_compare_op1): Remove.
2589 (EPILOGUE_USES): Use TARGET_FPU_ANY condition.
2590
2591 2016-05-07 Jim Wilson <jim.wilson@linaro.org>
2592
2593 * config/arm/arm.md: (arch): Add neon.
2594 (arch_enabled): Return yes for arch neon when TARGET_NEON.
2595 * config/arm/vfp.md (movdf_vfp): Add w/G as alternative 3. Add
2596 neon_move as type for alt 3. Add arch attr enabling alt 3 for neon.
2597 Emit vmov.i64 for alt 3. Renumber alternatives 3 to 8. Adjust
2598 attributes for alt renumbering. Mark alt 3 as non-predicable.
2599 (thumb2_movdf_vfp): Likewise.
2600
2601 2016-05-07 Uros Bizjak <ubizjak@gmail.com>
2602
2603 * config/i386/i386.md (*addqi_1): Add preferred_for_speed attribute
2604 to disparage alternatives 3 and 4 for TARGET_PARTIAL_REG_STALL targets.
2605 (*andqi_1): Add preferred_for_speed attribute to disparage
2606 alternative 2 for TARGET_PARTIAL_REG_STALL targets.
2607 (*<code>qi_1): Ditto.
2608 (*one_cmplqi2_1): Add preferred_for_speed attribute to disparage
2609 alternative 1 for TARGET_PARTIAL_REG_STALL targets.
2610 (*ashlqi3_1): Ditto.
2611 (*swap<mode>): Merge from *swap<mode>_1 and *swap<mode>_2 patterns.
2612 Add preferred_for_size attribute to disparage alternative 0 and
2613 preferred_for_speed attribute to disparage alternative 1 for
2614 TARGET_PARTIAL_REG_STALL targets.
2615
2616 2016-05-07 Tom de Vries <tom@codesourcery.com>
2617
2618 PR tree-optimization/70956
2619 * graphite-scop-detection.c (build_cross_bb_scalars_def): Handle NULL
2620 def.
2621
2622 2016-05-07 Oleg Endo <olegendo@gcc.gnu.org>
2623
2624 * config/sh/sh-protos.h (sh_cbranch_distance): Declare new function.
2625 * config/sh/sh.c (sh_cbranch_distance): Implement it.
2626 * config/sh/sh.md (branch_zero): Remove define_attr.
2627 (define_delay): Disable delay slot if branch distance is one insn.
2628
2629 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
2630
2631 * config/i386/i386.md (LEAMODE): New mode attribute.
2632 (plus to LEA splitter): Rewrite splitter using LEAMODE mode attribute.
2633 (ashift to LEA splitter): Rewrte splitter using SWI mode iterator
2634 and LEAMODE mode attribute. Use VOIDmode const_0_to_3_operand as
2635 operand 2 predicate.
2636 (*lea<mode>_general_2): Use VOIDmode for const248_operand.
2637 (*lea<mode>_general_3): Ditto.
2638 (*lea<mode>_general_4): Use VOIDmode for const_0_to_3_operand.
2639
2640 2016-05-06 Jakub Jelinek <jakub@redhat.com>
2641
2642 * genmddump.c (main): Convert argv from char ** to const char **.
2643
2644 2016-05-06 David Malcolm <dmalcolm@redhat.com>
2645
2646 * coretypes.h (OVERRIDE): New macro.
2647 (FINAL): New macro.
2648
2649 2016-05-06 Eric Botcazou <ebotcazou@adacore.com>
2650
2651 * tree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case,
2652 allow coalescing if the types are compatible.
2653
2654 2016-05-06 David Malcolm <dmalcolm@redhat.com>
2655
2656 * pass_manager.h (pass_manager::register_pass_name): New method.
2657 (pass_manager::get_pass_by_name): New method.
2658 (pass_manager::create_pass_tab): New method.
2659 (pass_manager::m_name_to_pass_map): New field.
2660 * passes.c (name_to_pass_map): Delete global in favor of field
2661 "m_name_to_pass_map" of pass_manager.
2662 (register_pass_name): Rename from a function to...
2663 (pass_manager::register_pass_name): ...this method, updating
2664 for renaming of global "name_to_pass_map" to field
2665 "m_name_to_pass_map".
2666 (create_pass_tab): Rename from a function to...
2667 (pass_manager::create_pass_tab): ...this method, updating
2668 for renaming of global "name_to_pass_map" to field.
2669 (get_pass_by_name): Rename from a function to...
2670 (pass_manager::get_pass_by_name): ...this method.
2671 (enable_disable_pass): Convert use of get_pass_by_name to
2672 a method call, locating the pass_manager singleton.
2673
2674 2016-05-06 David Malcolm <dmalcolm@redhat.com>
2675
2676 * genattr-common.c (main): Convert argv from char ** to const char **.
2677 * genattr.c (main): Likewise.
2678 * genattrtab.c (main): Likewise.
2679 * genautomata.c (initiate_automaton_gen): Likewise.
2680 (main): Likewise.
2681 * gencodes.c (main): Likewise.
2682 * genconditions.c (main): Likewise.
2683 * genconfig.c (main): Likewise.
2684 * genconstants.c (main): Likewise.
2685 * genemit.c (main): Likewise.
2686 * genenums.c (main): Likewise.
2687 * genextract.c (main): Likewise.
2688 * genflags.c (main): Likewise.
2689 * genmddeps.c (main): Likewise.
2690 * genopinit.c (main): Likewise.
2691 * genoutput.c (main): Likewise.
2692 * genpeep.c (main): Likewise.
2693 * genpreds.c (main): Likewise.
2694 * genrecog.c (main): Likewise.
2695 * gensupport.c (init_rtx_reader_args_cb): Likewise.
2696 (init_rtx_reader_args): Likewise.
2697 * gensupport.h (init_rtx_reader_args_cb): Likewise.
2698 (init_rtx_reader_args): Likewise.
2699 * gentarget-def.c (main): Likewise.
2700 * read-md.c (read_md_files): Likewise.
2701 * read-md.h (read_md_files): Likewise.
2702
2703 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
2704
2705 * config/i386/i386.md (int cmove peephole2s): Use general_reg_operand
2706 instead of register_and_not_any_fp_reg_operand as operand 0 predicate.
2707 * config/i386/predicates.md (register_and_not_any_fp_reg_operand):
2708 Remove unused predicate.
2709 (register_and_not_fp_reg_operand): Ditto.
2710
2711 2016-05-06 Martin Liska <mliska@suse.cz>
2712
2713 * tree-if-conv.c (ifcvt_split_critical_edges): Use auto_vec
2714 instead of vec as the vector is local to the function.
2715
2716 2016-05-06 Jakub Jelinek <jakub@redhat.com>
2717
2718 * config/i386/sse.md (*<code>v8hi3, *<code>v16qi3): Add
2719 avx512bw alternative.
2720
2721 * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>): Move
2722 before the ashr<mode>3 pattern.
2723
2724 * config/i386/sse.md (*avx2_pmaddwd, *sse2_pmaddwd): Use
2725 v instead of x in vex or maybe_vex alternatives, use
2726 maybe_evex instead of vex in prefix.
2727
2728 * config/i386/sse.md (*vec_extractv4sf_0, *sse4_1_extractps,
2729 *vec_extractv4sf_mem, vec_extract_lo_v16hi, vec_extract_hi_v16hi,
2730 vec_extract_lo_v32qi, vec_extract_hi_v32qi): Use v instead of x
2731 in vex or maybe_vex alternatives, use maybe_evex instead of vex
2732 in prefix.
2733
2734 * config/i386/sse.md (*vec_concatv2sf_sse4_1, *vec_concatv4sf): Use
2735 v instead of x in vex or maybe_vex alternatives, use
2736 maybe_evex instead of vex in prefix.
2737
2738 * config/i386/sse.md (sse_shufps_<mode>, sse_storehps, sse_loadhps,
2739 sse_storelps, sse_movss, avx2_vec_dup<mode>, avx2_vec_dupv8sf_1,
2740 sse2_shufpd_<mode>, sse2_storehpd, sse2_storelpd, sse2_loadhpd,
2741 sse2_loadlpd, sse2_movsd): Use v instead of x in vex or maybe_vex
2742 alternatives, use maybe_evex instead of vex in prefix.
2743
2744 * config/i386/sse.md (vec_interleave_lowv4sf,
2745 *vec_interleave_highv2df, *vec_interleave_lowv2df): Use
2746 v instead of x in vex or maybe_vex alternatives, use
2747 maybe_evex instead of vex in prefix.
2748
2749 * config/i386/sse.md (sse_movhlps, sse_movlhps): Use
2750 v instead of x in vex or maybe_vex alternatives, use
2751 maybe_evex instead of vex in prefix.
2752
2753 * config/i386/sse.md (*avx_cvtpd2dq256_2, *avx_cvtps2pd256_2): Use
2754 v constraint instead of x.
2755
2756 2016-05-06 Nathan Sidwell <nathan@codesourcery.com>
2757
2758 * gimple.c (gimple_call_same_target_p): Unique functions are eq.
2759 * tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
2760 equality first.
2761
2762 2016-05-06 Richard Biener <rguenther@suse.de>
2763
2764 PR tree-optimization/70948
2765 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
2766 Properly clobber all fields of va_list for __builtin_va_start.
2767
2768 2016-05-06 Yuri Rumyantsev <ysrumyan@gmail.com>
2769
2770 PR debug/70935
2771 * tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
2772 loop latch destination.
2773
2774 2016-05-06 Martin Liska <mliska@suse.cz>
2775
2776 * tree-ssa-uninit.c: Apply manual changes
2777 to the GNU coding style.
2778 (prune_uninit_phi_opnds): Rename from
2779 prune_uninit_phi_opnds_in_unrealizable_paths.
2780
2781 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
2782
2783 * config/sh/sh.opt (madjust-unroll, minvalid-symbols, msoft-atomic,
2784 mspace): Remove deprecated options.
2785 * doc/invoke.texi (SH options): Remove -mspace.
2786
2787 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
2788
2789 * config/sh/sh.md (ic_invalidate_line_sh4a): Fix insn length.
2790
2791 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
2792
2793 * config/sh/sh.md (*cmpeqsi_t): Remove combine insn pattern and similar
2794 corresponding combine split pattern.
2795
2796 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
2797
2798 PR target/58219
2799 * config/sh/predicates.md (long_displacement_mem_operand): New.
2800 * config/sh/sh.md (movsi_i): Allow for SH2A, disallow for any FPU.
2801 Add movi20, movi20s alternatives. Adjust length attribute for
2802 alternatives.
2803 (movsi_ie): Allow for any FPU. Adjust length attribute for
2804 alternatives.
2805 (movsi_i_lowpart): Add movi20, movi20s alternatives. Adjust length
2806 attribute for alternatives.
2807 (*mov<mode>): Use long_displacement_mem_operand for length attribute.
2808 (*movdi_i, movdf_k, movdf_i4, movsf_i, movsf_ie, movsf_ie_ra): Adjust
2809 length attribute for alternatives.
2810
2811 2016-05-06 Richard Biener <rguenther@suse.de>
2812
2813 PR tree-optimization/70960
2814 * tree-if-conv.c (ifcvt_walk_pattern_tree): Handle non-SSA ops.
2815
2816 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
2817
2818 PR target/52933
2819 * config/sh/sh.md (*cmp_div0s_7, *cmp_div0s_8): Add div0s variants.
2820 * config/sh/sh.c (sh_rtx_costs): Add another div0s case.
2821
2822 2016-05-06 Marek Polacek <polacek@redhat.com>
2823
2824 PR sanitizer/70875
2825 * ubsan.c (get_ubsan_type_info_for_type): Remove assert.
2826
2827 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
2828
2829 PR target/54089
2830 * config/sh/sh.md (*rotcr): Add another variant.
2831
2832 2016-05-06 Richard Biener <rguenther@suse.de>
2833
2834 PR middle-end/70931
2835 * dwarf2out.c (native_encode_initializer): Skip zero-sized fields.
2836
2837 2016-05-06 Richard Biener <rguenther@suse.de>
2838
2839 PR middle-end/70941
2840 * fold-const.c (split_tree): Always convert to the original type
2841 before negating.
2842
2843 2016-05-06 Richard Biener <rguenther@suse.de>
2844
2845 * fwprop.c (fwprop): Remove duplicate cleanup_cfg call.
2846 (fwprop_addr): Likewise.
2847
2848 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
2849
2850 PR target/70873
2851 * config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p):
2852 New prototype.
2853 * config/i386/i386.c (ix86_standard_x87sse_constant_load_p): New.
2854 * config/i386/i386.md (push mem splitter): Use find_constant_src in
2855 the splitter condition.
2856 (FP load splitter): Use ix86_standard_x87sse_constant_load_p in
2857 the splitter condition.
2858 (FP float_extend load splitter): Ditto.
2859
2860 2016-05-05 Uros Bizjak <ubizjak@gmail.com>
2861
2862 * config/i386/i386.md (peehole2 patterns): Change true_regnum
2863 to REGNO in all peephole2 patterns.
2864 (post-reload splitters): Change true_regnum to REGNO in
2865 post-reload splitters.
2866 (zero_extend splitters): Use general_reg_operand and
2867 nonimmediate_gr_operand predicates.
2868
2869 2016-05-05 Jakub Jelinek <jakub@redhat.com>
2870
2871 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use
2872 v constraint instead of x.
2873
2874 2016-05-05 Alan Modra <amodra@gmail.com>
2875
2876 PR target/68662
2877 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
2878 set OPTION_MASK_RELOCATABLE when flag_pic == 2. Set
2879 TARGET_NO_FP_IN_TOC for -mrelocatable.
2880 (MINIMAL_TOC_SECTION_ASM_OP): Remove redundant
2881 TARGET_RELOCATABLE test.
2882 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
2883 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
2884 * config/rs6000/linux64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
2885 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
2886 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
2887 * config/rs6000/freebsd64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
2888 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
2889 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
2890 * config/rs6000/predicates.md (easy_fp_constant): Likewise.
2891 * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
2892 Likewise.
2893 (rs6000_assemble_integer): Update TARGET_RELOCATABLE test.
2894 (rs6000_stack_info): Likewise.
2895 (rs6000_elf_asm_out_constructor): Likewise.
2896 (rs6000_elf_asm_out_destructor): Likewise.
2897 (rs6000_elf_declare_function_name): Likewise.
2898 * config/rs6000/rs6000.md (load_toc_aix_di): Likewise.
2899 * config/rs6000/rs6000.h (MASK_RELOCATABLE, MASK_MINIMAL_TOC):
2900 Don't define.
2901
2902 2016-05-05 Alan Modra <amodra@gmail.com>
2903
2904 * config/rs6000/rs6000.c (rs6000_frame_related): Rewrite.
2905
2906 2016-05-05 Alan Modra <amodra@gmail.com>
2907
2908 * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
2909 out-of-line gpr restore for one or two regs if that would add
2910 a save of lr.
2911
2912 2016-05-04 Uros Bizjak <ubizjak@gmail.com>
2913
2914 PR target/70873
2915 * config/i386/i386.md
2916 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df peephole2):
2917 Change to post-epilogue_completed late splitter. Use sse_reg_operand
2918 as operand 0 predicate.
2919 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf peephole2):
2920 Ditto.
2921 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2):
2922 Ditto. Emit the pattern using RTX.
2923
2924 (TARGET_USE_VECTOR_FP_CONVERTS float_extend sf->df splitter):
2925 Use sse_reg_opreand as operand 0 predicate. Do not use true_regnum in
2926 the post-reload splitter. Use lowpart_subreg instead of gen_rtx_REG.
2927 (TARGET_USE_VECTOR_FP_CONVERTS float_truncate df->sf splitter):
2928 Ditto.
2929 (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use
2930 sse_reg_operand as operand 0 predicate.
2931
2932 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_extend sf->df peephole2):
2933 Use sse_reg_opreand as operand 0 predicate. Use lowpart_subreg
2934 instead of gen_rtx_REG.
2935 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_truncate sf->df peephole2):
2936 Ditto.
2937
2938 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
2939
2940 * function.c (emit_use_return_register_into_block): Delete.
2941 (gen_return_pattern): Delete.
2942 (emit_return_into_block): Delete.
2943 (active_insn_between): Delete.
2944 (convert_jumps_to_returns): Delete.
2945 (emit_return_for_exit): Delete.
2946 (thread_prologue_and_epilogue_insns): Delete all code dealing with
2947 simple_return for shrink-wrapped blocks.
2948 * shrink-wrap.c (try_shrink_wrapping): Insert simple_return at the
2949 end of blocks that need one.
2950 (get_unconverted_simple_return): Delete.
2951 (convert_to_simple_return): Delete.
2952 * shrink-wrap.c (get_unconverted_simple_return): Delete declaration.
2953 (convert_to_simple_return): Ditto.
2954
2955 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
2956
2957 * cfgcleanup.c (bb_is_just_return): New function.
2958 (try_optimize_cfg): Simplify jumps to return, branches to return,
2959 and branches around return.
2960
2961 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
2962
2963 * cfgcleanup.c (try_simplify_condjump): Don't try to simplify a
2964 branch to a return.
2965
2966 2016-05-04 Jakub Jelinek <jakub@redhat.com>
2967
2968 PR c++/70906
2969 PR c++/70933
2970 * tree-core.h (enum operand_equal_flag): Add OEP_HASH_CHECK.
2971 * tree.c (inchash::add_expr): If !IS_EXPR_CODE_CLASS (tclass),
2972 assert flags & OEP_HASH_CHECK, instead of asserting it
2973 never happens. Handle TARGET_EXPR.
2974 * fold-const.c (operand_equal_p): For hash verification,
2975 or in OEP_HASH_CHECK into flags.
2976
2977 2016-05-04 Eric Botcazou <ebotcazou@adacore.com>
2978
2979 * tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
2980 comment.
2981 (compute_samebase_partition_bases): Fix typo.
2982
2983 2016-05-04 Jakub Jelinek <jakub@redhat.com>
2984
2985 * config/i386/sse.md (vec_interleave_highv8sf,
2986 vec_interleave_lowv8sf, vec_interleave_highv4df,
2987 vec_interleave_lowv4df): Remove constraints from expanders.
2988
2989 * config/i386/sse.md (sse2_movq128): Use v constraint instead of x.
2990
2991 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
2992
2993 * tree-inline.c (expand_call_inline): Fix path dealing with
2994 making lhs of call statement undefined.
2995
2996 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
2997
2998 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
2999 Check availability on NODE, too.
3000 * cgraph.h (symtab_node::call_for_symbol_and_aliases): Likewise.
3001 (cgraph_node::call_for_symbol_and_aliases): Likewise.
3002 (varpool_node::call_for_symbol_and_aliase): Likewise.
3003 * ipa-pure-const.c (add_new_function): Analyze all bodies.
3004 (propagate_pure_const): Propagate across interposable functions, too.
3005 (skip_function_for_local_pure_const): Do not skip interposable bodies
3006 with aliases.
3007 (pass_local_pure_const::execute): Update.
3008
3009 2016-05-04 Marek Polacek <polacek@redhat.com>
3010
3011 * doc/invoke.texi: Document -Wdangling-else.
3012
3013 2016-05-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
3014
3015 * config.gcc: Error out when conflicting multilib is detected. Do not
3016 loop over multilibs since no combination is legal.
3017
3018 2016-05-04 Alan Modra <amodra@gmail.com>
3019
3020 * config/rs6000/rs6000.h (PIC_OFFSET_TABLE_REGNUM): Correct.
3021 * config/rs6000/sysv4.h (TARGET_TOC): Simplify.
3022 * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
3023 Align .toc.
3024
3025 2016-05-04 Matthew Fortune <matthew.fortune@imgtec.com>
3026
3027 * config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
3028 Clean up p5600 comments.
3029
3030 2016-05-04 Richard Biener <rguenther@suse.de>
3031
3032 * match.pd: Add BIT_FIELD_REF canonicalizations and vector
3033 constructor simplifications.
3034 * fold-const.c (fold_ternary_loc): Remove duplicate functionality here.
3035
3036 2016-05-04 Oleg Endo <olegendo@gcc.gnu.org>
3037
3038 * config/sh/predicates (post_inc_mem, pre_dec_mem): New predicates.
3039 * config/sh/sh-protos.h (sh_find_set_of_reg): Return null result if
3040 result.set_rtx is null instead of aborting.
3041 * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT):
3042 Always enable.
3043 (USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT): Enable for SH2A.
3044 * config/sh/sh.md (*extend<mode>si2_predec, *mov<mode>_load_predec,
3045 *mov<mode>_store_postinc): New patterns.
3046
3047 2016-05-04 Marc Glisse <marc.glisse@inria.fr>
3048
3049 * match.pd ((A | B) & (A | C)): Generalize to BIT_XOR_EXPR. Mark
3050 as commutative. Check both conversions are NOP.
3051 ((A & B) OP (C & B)): Remove.
3052
3053 2016-05-04 Alan Modra <amodra@gmail.com>
3054
3055 * combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.
3056
3057 2016-05-04 Alan Modra <amodra@gmail.com>
3058
3059 PR target/70866
3060 * config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
3061 when cr2,3,4 are all fixed regs.
3062
3063 2016-05-04 Bernd Schmidt <bschmidt@redhat.com>
3064
3065 PR rtl-optimization/57193
3066 * opts.c (default_options_table): Revert OPT_frename_registers change.
3067 * doc/invoke.texi (-frename-registers, -O2): Likewise.
3068
3069 2016-05-03 Martin Sebor <msebor@redhat.com>
3070
3071 PR c++/66561
3072 * builtins.c (fold_builtin_FILE): New function.
3073 (fold_builtin_FUNCTION, fold_builtin_LINE): New functions.
3074 (fold_builtin_0): Call them.
3075 * gimplify.c (gimplify_call_expr): Remove the handling of
3076 BUILT_IN_FILE, BUILT_IN_FUNCTION, and BUILT_IN_LINE.
3077
3078 PR c++/66561
3079 * doc/extend.texi (Other Builtins): Update __builtin_FILE,
3080 __builtin_FUNCTION, and __builtin_LINE to reflect they yield
3081 constants.
3082
3083 PR c++/66639
3084 * doc/extend.texi (Function Names as Strings): Update __func__,
3085 __FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
3086 constants.
3087
3088 2016-05-03 Jakub Jelinek <jakub@redhat.com>
3089 Richard Biener <rguenther@suse.de>
3090
3091 PR tree-optimization/70916
3092 * tree-if-conv.c: Include cfganal.h.
3093 (pass_if_conversion::execute): Call connect_infinite_loops_to_exit
3094 and remove_fake_exit_edges around the optimization pass.
3095
3096 2016-05-03 Jan Hubicka <hubicka@ucw.cz>
3097
3098 * cgraph.c (symbol_table::create_edge): Set inline_failed.
3099 (cgraph_edge::make_direct): Likewise.
3100 (cgraph_edge::dump_edge_flags): Dump call_stmt_cannot_inline_p.
3101 * cgraphclones.c (duplicate_thunk_for_node): Set inline_failed.
3102 * cif-code.def (CIF_LTO_MISMATCHED_DECLARATIONS): New code
3103 (CIF_THUNK): New code.
3104 * ipa-inline-analysis.c (initialize_inline_failed): Preserve
3105 CIF_FINAL_ERROR codes; do not deal with call_stmt_cannot_inline_p.
3106 (compute_inline_parameters): Set inline_failed for thunks.
3107 (inline_analyze_function): Cleanup.
3108 * ipa-inline.c (can_inline_edge_p): Do not deal with
3109 call_stmt_cannot_inline_p.
3110 (can_early_inline_edge_p): Likewise.
3111 (early_inliner): Initialize inline_failed.
3112 * lto-cgraph.c (lto_output_edge): Sanity check inline_failed.
3113
3114 2016-05-03 Uros Bizjak <ubizjak@gmail.com>
3115
3116 * config/i386/predicates.md (x87nonimm_ssenomem_operand): Rename
3117 from nonimm_ssenomem_operand.
3118 (nonimm_ssenomem_operand): New predicate.
3119 * config/i386/i386.md (extendsfdf2): Use nonimm_ssenomem_operand
3120 as operand 0 predicate.
3121 (*extendsfdf2): Merge from *extendsfdf2_mixed and *extendsfdf2_i387.
3122 Disable unsupported alternatives using "enabled" attribute.
3123 Use register_ssemem_operand as operand 0 predicate.
3124 (*fop_<mode>_1): Use x87nonimm_ssenomem_operand as operand 1 predicate.
3125
3126 2016-05-03 Marek Polacek <polacek@redhat.com>
3127
3128 PR c/70859
3129 * input.c (expansion_point_location): New function.
3130 * input.h (expansion_point_location): Declare.
3131
3132 2016-05-03 Pierre-Marie de Rodat <derodat@adacore.com>
3133
3134 * dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
3135 occurence with frame_offset_ ones.
3136
3137 2016-05-03 Alan Modra <amodra@gmail.com>
3138
3139 PR rtl-optimization/70890
3140 * ira.c (combine_and_move_insns): When moving def_insn, remove
3141 equivs on use_insn.
3142
3143 2016-05-03 Dominik Vogt <vogt@linux.vnet.ibm.com>
3144
3145 * config/s390/s390.md ("*r<noxa>sbg_<mode>_sll")
3146 ("*r<noxa>sbg_<mode>_srl"): New define_insns.
3147 ("*r<noxa>sbg_<mode>_srl_bitmask"): Rename by adding "_bitmask".
3148 ("*r<noxa>sbg_<mode>_sll_bitmask"): Likewise.
3149
3150 2016-05-03 Alan Modra <amodra@gmail.com>
3151
3152 * config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
3153 for SAVE_MULTIPLE/STORE_MULTIPLE.
3154
3155 2016-05-03 Jakub Jelinek <jakub@redhat.com>
3156
3157 * config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
3158 *truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead of x.
3159
3160 2016-05-03 Richard Biener <rguenther@suse.de>
3161
3162 * gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
3163 default true.
3164 (gimplify_arg): Likewise.
3165 * gimplify.c (gimplify_expr): Add overload with allow_ssa parameter,
3166 re-writing the result to a decl if required.
3167 (internal_get_tmp_var): Add allow_ssa parameter
3168 and override into_ssa with it.
3169 (get_formal_tmp_var): Adjust.
3170 (get_initialized_tmp_var): Add allow_ssa parameter.
3171 (gimplify_arg): Add allow_ssa parameter and avoid generating
3172 SSA names for the result false.
3173 (gimplify_call_expr): If the call may return twice do not
3174 gimplify parameters into SSA.
3175 (prepare_gimple_addressable): Do not allow an SSA name as temporary.
3176 (gimplify_modify_expr): Adjust assert. For noreturn calls
3177 with a SSA name LHS adjust its def.
3178 (gimplify_save_expr): Do not allow an SSA name as save-expr result.
3179 (gimplify_one_sizepos): Do not allow an SSA name as a sizepos.
3180 (gimplify_body): Init GIMPLE SSA data structures and gimplify into-SSA.
3181 (gimplify_scan_omp_clauses): Make sure OMP_CLAUSE_SIZE is not
3182 an SSA name. Likewise for OMP_CLAUSE_REDUCTION operands.
3183 (gimplify_omp_for): Likewise for OMP_CLAUSE_DECL. Likewise
3184 for OMP_FOR_COND, OMP_FOR_INCR and OMP_CLAUSE_LINEAR_STEP.
3185 (optimize_target_teams): Do not allow SSA names for clause operands.
3186 (gimplify_expr): Likewise for where we mark the result addressable.
3187 * passes.def (pass_init_datastructures): Remove.
3188 * tree-into-ssa.c (mark_def_sites): Ignore existing SSA names.
3189 (rewrite_stmt): Likewise.
3190 * tree-inline.c (initialize_cfun): Properly transfer SSA state.
3191 (replace_locals_op): Replace SSA names.
3192 (copy_gimple_seq_and_replace_locals): Init src_cfun.
3193 * gimple-low.c (lower_builtin_setjmp): Deal with SSA.
3194 * cgraph.c (release_function_body): Free CFG annotations only
3195 when we have a CFG. Simplify.
3196 * gimple-fold.c (gimplify_and_update_call_from_tree): Use
3197 force_gimple_operand instead of get_initialized_tmp_var.
3198 * tree-pass.h (make_pass_init_datastructures): Remove.
3199 * tree-ssa.c (execute_init_datastructures): Remove.
3200 (pass_data_init_datastructures): Likewise.
3201 (class pass_init_datastructures): Likewise.
3202 (make_pass_init_datastructures): Likewise.
3203 * omp-low.c (create_omp_child_function): Init SSA data structures.
3204 (grid_expand_target_grid_body): Likewise.
3205 * tree-cfg.c (move_block_to_fn): Double-check the DEF is an SSA
3206 name before adding it to names_to_release.
3207 (remove_bb): Always release SSA defs.
3208 * tree-ssa-ccp.c (get_default_value): Check SSA_NAME_VAR
3209 before dereferencing it.
3210 * cgraphunit.c (init_lowered_empty_function): Always
3211 int SSA data structures.
3212 * tree-ssanames.c (release_defs): Remove assert that we are in
3213 SSA form.
3214 * trans-mem.c (diagnose_tm_1): Handle SSA name function.
3215
3216 2016-05-03 Jakub Jelinek <jakub@redhat.com>
3217 Uros Bizjak <ubizjak@gmail.com>
3218
3219 PR rtl-optimization/70467
3220 * config/i386/predicates.md (x86_64_hilo_int_operand,
3221 x86_64_hilo_general_operand): New predicates.
3222 * config/i386/constraints.md (Wd): New constraint.
3223 * config/i386/i386.md (mode attr di): Use Wd instead of e.
3224 (general_hilo_operand): New mode attr.
3225 (add<mode>3, sub<mode>3): Use <general_hilo_operand>
3226 instead of <general_operand>.
3227 (*add<dwi>3_doubleword, *sub<dwi>3_doubleword): Use
3228 x86_64_hilo_general_operand instead of <general_operand>.
3229
3230 2016-05-03 Jakub Jelinek <jakub@redhat.com>
3231
3232 PR tree-optimization/70916
3233 * tree-if-conv.c (constant_or_ssa_name): Removed.
3234 (fold_build_cond_expr): Use is_gimple_val instead of
3235 constant_or_ssa_name.
3236
3237 PR tree-optimization/70916
3238 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
3239 if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.
3240
3241 PR target/49244
3242 * tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h.
3243 (optimize_atomic_bit_test_and): New function.
3244 (pass_fold_builtins::execute): Use it.
3245 * optabs.def (atomic_bit_test_and_set_optab,
3246 atomic_bit_test_and_complement_optab,
3247 atomic_bit_test_and_reset_optab): New optabs.
3248 * internal-fn.def (ATOMIC_BIT_TEST_AND_SET,
3249 ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_BIT_TEST_AND_RESET): New ifns.
3250 * builtins.h (expand_ifn_atomic_bit_test_and): New prototype.
3251 * builtins.c (expand_ifn_atomic_bit_test_and): New function.
3252 * internal-fn.c (expand_ATOMIC_BIT_TEST_AND_SET,
3253 expand_ATOMIC_BIT_TEST_AND_COMPLEMENT,
3254 expand_ATOMIC_BIT_TEST_AND_RESET): New functions.
3255 * doc/md.texi (atomic_bit_test_and_set@var{mode},
3256 atomic_bit_test_and_complement@var{mode},
3257 atomic_bit_test_and_reset@var{mode}): Document.
3258 * config/i386/sync.md (atomic_bit_test_and_set<mode>,
3259 atomic_bit_test_and_complement<mode>,
3260 atomic_bit_test_and_reset<mode>): New expanders.
3261 (atomic_bit_test_and_set<mode>_1,
3262 atomic_bit_test_and_complement<mode>_1,
3263 atomic_bit_test_and_reset<mode>_1): New insns.
3264
3265 2016-05-03 Richard Sandiford <richard.sandiford@arm.com>
3266
3267 PR rtl-optimization/70687
3268 * combine.c (change_zero_ext): Check for scalar modes. Use wide_int
3269 instead of unsigned HOST_WIDE_INT.
3270
3271 2016-05-03 Bernd Schmidt <bschmidt@redhat.com>
3272
3273 PR rtl-optimization/44281
3274 * hard-reg-set.h (struct target_hard_regs): New field
3275 x_fixed_nonglobal_reg_set.
3276 (fixed_nonglobal_reg_set): New macro.
3277 * reginfo.c (init_reg_sets_1): Initialize it.
3278 * ira.c (setup_alloc_regs): Use fixed_nonglobal_reg_set instead
3279 of fixed_reg_set.
3280 * df-scan.c (df_insn_refs_collect): Asms may reference global regs.
3281
3282 2016-05-03 Bin Cheng <bin.cheng@arm.com>
3283
3284 PR tree-optimization/56541
3285 * doc/invoke.texi (@item max-tree-if-conversion-phi-args): New item.
3286 * params.def (PARAM_MAX_TREE_IF_CONVERSION_PHI_ARGS): new param.
3287 * tree-if-conv.c (MAX_PHI_ARG_NUM): new macro.
3288 (any_complicated_phi): new static variable.
3289 (aggressive_if_conv): delete.
3290 (if_convertible_phi_p): support phis with more than two arguments.
3291 (if_convertible_bb_p): remvoe check on aggressive_if_conv and
3292 critical pred edges.
3293 (ifcvt_split_critical_edges): support phis with more than two
3294 arguments by checking new parameter. only split critical edges
3295 if needed.
3296 (tree_if_conversion): handle simd pragma marked loop using new
3297 local variable aggressive_if_conv. check any_complicated_phi.
3298
3299 2016-05-03 Bin Cheng <bin.cheng@arm.com>
3300
3301 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
3302 before using it.
3303
3304 2016-05-03 Bin Cheng <bin.cheng@arm.com>
3305
3306 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
3307 cbase.
3308
3309 2016-05-03 Oleg Endo <olegendo@gcc.gnu.org>
3310
3311 * config/sh/sh.md (udivsi3, divsi3, mulsi3): Simplify.
3312 (mulhisi3, umulhisi3, (smulsi3_highpart, umulsi3_highpart): Convert to
3313 define_insn_and_split.
3314 (mulsi3_i): New define_insn_and_split.
3315 (mulsi3_call): Convert to define_insn.
3316 (mulsidi3, mulsidi3_compact, umulsidi3, umulsidi3_compact):
3317 Remove constraints.
3318
3319 2016-05-02 Michael Meissner <meissner@linux.vnet.ibm.com>
3320
3321 * machmode.h (mode_complex): Add support to give the complex mode
3322 for a given mode.
3323 (GET_MODE_COMPLEX_MODE): Likewise.
3324 * stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
3325 stored by build_complex_type and gfc_build_complex_type instead of
3326 trying to figure out the appropriate mode based on the size. Raise
3327 an assertion error, if the type was not set.
3328 * genmodes.c (struct mode_data): Add field for the complex type of
3329 the given type.
3330 (blank_mode): Likewise.
3331 (make_complex_modes): Remember the complex mode created in the
3332 base type.
3333 (emit_mode_complex): Write out the mode_complex array to map a
3334 type mode to the complex version.
3335 (emit_insn_modes_c): Likewise.
3336 * tree.c (build_complex_type): Set the complex type to use before
3337 calling layout_type.
3338 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
3339 support for __float128 complex datatypes.
3340 (rs6000_hard_regno_mode_ok): Likewise.
3341 (rs6000_setup_reg_addr_masks): Likewise.
3342 (rs6000_complex_function_value): Likewise.
3343 * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
3344 __float128 and __ibm128 complex.
3345 (FLOAT128_IBM_P): Likewise.
3346 (ALTIVEC_ARG_MAX_RETURN): Likewise.
3347 * doc/extend.texi (Additional Floating Types): Document that
3348 -mfloat128 must be used to enable __float128. Document complex
3349 __float128 and __ibm128 support.
3350
3351 2016-05-02 Jakub Jelinek <jakub@redhat.com>
3352
3353 PR target/49244
3354 * gimple.c (gimple_builtin_call_types_compatible_p): Allow
3355 char/short arguments promoted to int because of promote_prototypes.
3356
3357 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
3358
3359 * config/i386/predicates.md (register_ssemem_operand): New predicate.
3360 * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Merge from
3361 *cmpi<FPCMP:unord><MODEF:mode>_mixed and
3362 *cmpi<FPCMP:unord><X87MODEF:mode>_i387. Disable unsupported
3363 alternatives using "enabled" attribute. Use register_ssemem_operand
3364 as operand 1 predicate.
3365 (*cmpi<unord>xf_i387): Split XFmode pattern from
3366 *cmpi<FPCMP:unord><X87MODEF:mode>_i387.
3367 (*absneg<mode>2): Merge from *absneg<mode>2_mixed and
3368 *absneg<mode>2_i387. Disable unsupported alternatives using
3369 "enabled" attribute.
3370 (*absnegxf2_i387): Split XFmode pattern from *absneg<mode>2_i387.
3371
3372 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
3373
3374 * omp-low.c (lower_oacc_head_tail): Assert there is at least one
3375 marker.
3376 (oacc_loop_process): Check mask for loop termination.
3377
3378 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
3379
3380 * cif-code.def (CIF_THUNK): Add.
3381 * ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
3382 accidental change.
3383
3384 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
3385
3386 * ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
3387 (dump_inline_summary): Dump it.
3388 (fp_expression_p): New predicate.
3389 (estimate_function_body_sizes): Use it.
3390 (inline_merge_summary): Merge fp_expressions.
3391 (inline_read_section): Read fp_expressions.
3392 (inline_write_summary): Write fp_expressions.
3393 * ipa-inline.c (can_inline_edge_p): Permit inlining across fp math
3394 codegen boundary if either caller or callee is !fp_expressions.
3395 * ipa-inline.h (inline_summary): Add fp_expressions.
3396 * ipa-inline-transform.c (inline_call): When inlining !fp_expressions
3397 to fp_expressions be sure the fp generation flags are updated.
3398
3399 2016-05-02 Jakub Jelinek <jakub@redhat.com>
3400
3401 PR rtl-optimization/70467
3402 * cse.c (cse_insn): Handle no-op MEM moves after folding.
3403
3404 PR rtl-optimization/70467
3405 * ipa-pure-const.c (check_call): Handle internal calls even in
3406 ipa mode like in local mode.
3407
3408 2016-05-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
3409
3410 * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.
3411
3412 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
3413
3414 * match.pd (X u< X, X u> X): New transformations.
3415
3416 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
3417
3418 * flag-types.h (enum warn_strict_overflow_code): Move ...
3419 * coretypes.h: ... here.
3420 * fold-const.h (fold_overflow_warning): Declare.
3421 * fold-const.c (fold_overflow_warning): Make non-static.
3422 (fold_comparison): Move the transformation of X +- C1 CMP C2
3423 into X CMP C2 -+ C1 ...
3424 * match.pd: ... here.
3425 * gimple-fold.c (fold_stmt_1): Protect with
3426 fold_defer_overflow_warnings.
3427
3428 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
3429
3430 * omp-low.c (struct oacc_loop): Add 'inner' field.
3431 (new_oacc_loop_raw): Initialize it to zero.
3432 (oacc_loop_fixed_partitions): Initialize it.
3433 (oacc_loop_auto_partitions): Partition outermost loop to outermost
3434 available partitioning.
3435
3436 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
3437
3438 * config/arc/arc.md (mulsidi3): Change operand 0 predicate to
3439 register_operand.
3440 (umulsidi3): Likewise.
3441 (indirect_jump): Fix jump instruction assembly patterns.
3442
3443 2016-05-02 Thomas Schwinge <thomas@codesourcery.com>
3444
3445 PR target/70860
3446 * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
3447 (nvptx_function_value): Assert non-NULL cfun.
3448
3449 2016-05-02 Eric Botcazou <ebotcazou@adacore.com>
3450
3451 PR rtl-optimization/70886
3452 * sched-deps.c (estimate_dep_weak): Canonicalize cselib values.
3453
3454 * cselib.h (rtx_equal_for_cselib_1): Declare.
3455 (rtx_equal_for_cselib_p: New inline function.
3456 * cselib.c (rtx_equal_for_cselib_p): Delete.
3457 (rtx_equal_for_cselib_1): Make public.
3458
3459 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
3460
3461 * config/i386/predicates.md (nonimm_ssenomem_operand): New predicate.
3462 (register_mixssei387nonimm_operand): Remove predicate.
3463 * config/i386/i386.md (*fop_<mode>_comm): Merge from
3464 *fop_<mode>_comm_mixed and *fop_<mode>_comm_i387. Disable unsupported
3465 alternatives using "enabled" attribute. Also check X87_ENABLE_ARITH
3466 for TARGET_MIX_SSE_I387 alternatives.
3467 (*fop_<mode>_1): Merge from *fop_<mode>_1_mixed and *fop_<mode>_1_i387.
3468 Disable unsupported alternatives using "enabled" attribute. Use
3469 nonimm_ssenomem_operand as operand 1 predicate. Also check
3470 X87_ENABLE_ARITH for TARGET_MIX_SSE_I387 alternatives.
3471
3472 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
3473
3474 * tree.c (cst_and_fits_in_hwi): Simplify.
3475
3476 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
3477
3478 * tree.h (wi::to_wide): New function.
3479 * expr.c (expand_expr_real_1): Use wi::to_wide.
3480 * fold-const.c (int_const_binop_1): Likewise.
3481 (extract_muldiv_1): Likewise.
3482
3483 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
3484
3485 * wide-int.h: Update offset_int and widest_int documentation.
3486 (WI_SIGNED_SHIFT_RESULT): New macro.
3487 (wi::binary_shift): Define signed_shift_result_type for
3488 shifts on offset_int- and widest_int-like types.
3489 (generic_wide_int): Support <<= and >>= if << and >> are supported.
3490 * tree.h (int_bit_position): Use shift operators instead of wi::
3491 shifts.
3492 * alias.c (adjust_offset_for_component_ref): Likewise.
3493 * expr.c (get_inner_reference): Likewise.
3494 * fold-const.c (fold_comparison): Likewise.
3495 * gimple-fold.c (fold_nonarray_ctor_reference): Likewise.
3496 * gimple-ssa-strength-reduction.c (restructure_reference): Likewise.
3497 * tree-dfa.c (get_ref_base_and_extent): Likewise.
3498 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
3499 (stmt_kills_ref_p): Likewise.
3500 * tree-ssa-ccp.c (bit_value_binop_1): Likewise.
3501 * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
3502 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
3503 (ao_ref_init_from_vn_reference): Likewise.
3504
3505 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
3506
3507 * wide-int.h: Update offset_int and widest_int documentation.
3508 (WI_SIGNED_BINARY_PREDICATE_RESULT): New macro.
3509 (wi::binary_traits): Allow ordered comparisons between offset_int and
3510 offset_int, between widest_int and widest_int, and between either
3511 of these types and basic C types.
3512 (operator <, <=, >, >=): Define for the same combinations.
3513 * tree.h (tree_int_cst_lt): Use comparison operators instead
3514 of wi:: comparisons.
3515 (tree_int_cst_le): Likewise.
3516 * gimple-fold.c (fold_array_ctor_reference): Likewise.
3517 (fold_nonarray_ctor_reference): Likewise.
3518 * gimple-ssa-strength-reduction.c (record_increment): Likewise.
3519 * tree-affine.c (aff_comb_cannot_overlap_p): Likewise.
3520 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Likewise.
3521 * tree-sra.c (completely_scalarize): Likewise.
3522 * tree-ssa-alias.c (stmt_kills_ref_p): Likewise.
3523 * tree-ssa-reassoc.c (extract_bit_test_mask): Likewise.
3524 * tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
3525 (check_for_binary_op_overflow): Likewise.
3526 (search_for_addr_array): Likewise.
3527 * ubsan.c (ubsan_expand_objsize_ifn): Likewise.
3528
3529 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
3530
3531 * config/arc/arc.c (arc_preferred_simd_mode): Remove enum keyword.
3532 (arc_save_restore): Likewise.
3533 (arc_dwarf_register_span): Likewise.
3534 (arc_output_pic_addr_const): Initialize suffix variable.
3535
3536 2016-05-02 Martin Liska <mliska@suse.cz>
3537
3538 * symbol-summary.h (function_summary::function_summary):
3539 Remove checking assert for all cgraph nodes.
3540 (function_summary::get): Check summary_uid.
3541 (symtab_insertion): Check summary_uid.
3542
3543 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
3544
3545 * config/arc/arc-protos.h (compact_memory_operand_p): Declare.
3546 * config/arc/arc.c (arc_output_commutative_cond_exec): Consider
3547 bmaskn instruction.
3548 (arc_dwarf_register_span): Remove enum keyword.
3549 (compact_memory_operand_p): New function.
3550 * config/arc/arc.h (reg_class): Add code density register classes.
3551 (REG_CLASS_NAMES): Likewise.
3552 (REG_CLASS_CONTENTS): Likewise.
3553 * config/arc/arc.md (*movqi_insn): Add code density instructions.
3554 (*movhi_insn, *movsi_insn, *movsf_insn): Likewise.
3555 (*extendhisi2_i, andsi3_i, cmpsi_cc_insn_mixed): Likewise.
3556 (*cmpsi_cc_c_insn, *movsi_ne): Likewise.
3557 * config/arc/constraints.md (C2p, Uts, Cm1, Cm3, Ucd): New
3558 constraints.
3559 (h, Rcd, Rsd, Rzd): New register constraints.
3560 (T): Use compact_memory_operand_p function.
3561 * config/arc/predicates.md (compact_load_memory_operand): Remove.
3562
3563 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
3564
3565 * config/sh/sh.md (*negnegt, *movtt): Remove.
3566
3567 2016-05-02 Marek Polacek <polacek@redhat.com>
3568 Tom de Vries <tom@codesourcery.com>
3569
3570 PR tree-optimization/70700
3571 * tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids
3572 bigger than FIRST_REF_NODE.
3573
3574 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
3575
3576 PR target/52898
3577 * config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4,
3578 TARGET_CMPEQDI_T.
3579 (prepare_cbranch_operands): Don't use scratch register. Assume that
3580 function is used when pseudos can be created.
3581 (expand_cbranchdi4): Likewise. Remove unused TARGET_CMPEQDI_T paths.
3582 * config/sh/sh.md (cbranchsi4): Allow only when pseudos can be created.
3583 (cbranchdi4, cbranchdi4_i): Simplify to single cbranchdi4
3584 define_expand. Allow it only when pseudos can be created.
3585 * config/sh/sh.opt (mcbranchdi, mcmpeqdi): Delete.
3586
3587 2016-05-01 Uros Bizjak <ubizjak@gmail.com>
3588
3589 * config/i386/constraints.md (BC): Only allow -1 operands.
3590 * config/i386/sse.md (mov<mode>_internal): Add (v,C) alternative.
3591 Add "enabled" attribute. Update XI mode attribute calculation.
3592 * config/i386/i386.md (*movxi_internal_avx512f): Add (v,C) alternative.
3593 (*movoi_internal_avx): Update XI mode attribute calculation.
3594 (*movti_internal): Ditto.
3595
3596 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
3597
3598 * config/sh/sh.md (push, pop, ic_invalidate_line, cstoresi4, cstoredi4,
3599 cstoresf4, cstoredf4, fix_truncsfsi2): Remove constraints.
3600
3601 2016-05-01 Eric Botcazou <ebotcazou@adacore.com>
3602
3603 * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Do not use switch
3604 statement on instruction code. Remove trailing spaces.
3605 (altivec_expand_stv_builtin): Likewise.
3606
3607 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
3608
3609 * config/sh/sh.h (TARGET_SH4): Remove and use default implementation.
3610 (TARGET_FPU_DOUBLE): Simplify.
3611 (BASE_ARG_REG, DOUBLE_TYPE_SIZE, OPTIMIZE_MODE_SWITCHING): Replace
3612 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions with 'TARGET_FPU_DOUBLE'.
3613 * config/sh/sh.c: Replace 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions
3614 with 'TARGET_FPU_DOUBLE'.
3615 * config/sh/sh.md: Likewise.
3616
3617 2016-05-01 Yoshinori Sato <ysato@users.sourceforge.jp>
3618
3619 * config/sh/linux.h (SH_DIV_STRATEGY_DEFAULT,
3620 SH_DIV_STR_FOR_SIZE): Remove.
3621 * config/sh/netbsd-elf.h (SH_DIV_STRATEGY_DEFAULT,
3622 SH_DIV_STR_FOR_SIZE): Remove.
3623
3624 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
3625
3626 * config/sh/predicates.md (any_register_operand, zero_extend_operand,
3627 logical_reg_operand): Delete.
3628 (arith_operand, arith_reg_dest, arith_or_int_operand, cmpsi_operand,
3629 arith_reg_or_0_operand, arith_reg_or_0_or_1_operand, logical_operand,
3630 logical_and_operand, movsrc_no_disp_mem_operand): Rewrite using
3631 match_operand and match_test.
3632 (sh_const_vec, sh_1el_vec): Remove redundant checks. Declare local
3633 variables on their first use. Return bool values.
3634 * config/sh/sh.h (LOAD_EXTEND_OP): Update comment.
3635 * config/sh/sh.md (andsi3, iorsi3): Use arith_reg_dest for result and
3636 arith_reg_operand for input operand. Remove empty constraints.
3637 (xorsi3): Delete.
3638 (*xorsi3_compact): Rename to xorsi3.
3639 (zero_extend<mode>si2): Use arith_reg_operand for input operand.
3640 (*zero_extend<mode>si2_disp_mem): Update comment.
3641 (mov_nop): Delete.
3642
3643 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
3644
3645 * config/sh/t-sh: Remove SH5 support.
3646 * config.gcc: Likewise.
3647 * configure: Likewise.
3648
3649 2016-04-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3650
3651 * config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus.
3652
3653 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
3654
3655 * config/sh/sh.c (register_sh_passes, sh_option_override,
3656 sh_print_operand, prepare_move_operands,
3657 sh_can_follow_jump): Remove TARGET_SH1 checks.
3658 * config/sh/sh.h (TARGET_VARARGS_PRETEND_ARGS, VALID_REGISTER_P,
3659 PROMOTE_MODE): Likewise.
3660 * config/sh/sh.md (adddi3, addsi3, subdi3, subsi3, andsi3,
3661 movdi): Likewise.
3662
3663 2016-04-30 Alan Modra <amodra@gmail.com>
3664
3665 * config/rs6000/rs6000.c (rs6000_savres_strategy): Force inline
3666 restoring when fixed_reg_p, but allow out-of-line or stmw save.
3667 Check for user regs later to avoid unnecessary looping over regs.
3668 Merge user reg check with non-saved reg check. Don't force
3669 inline VR restore when static chain used.
3670 (rs6000_frame_related): Omit eh_frame info for user regs when
3671 saving.
3672 (fixed_regs_p): Delete.
3673
3674 2016-04-30 Alan Modra <amodra@gmail.com>
3675
3676 * config/rs6000/rs6000.c (SAVRES_MULTIPLE): Replace with..
3677 (SAVE_STRATEGY, REST_STRATEGY): ..this. Renumber and sort enum.
3678 Update all uses.
3679
3680 2016-04-30 Alan Modra <amodra@gmail.com>
3681
3682 PR target/69645
3683 * config/rs6000/rs6000.c (fixed_reg_p): New function.
3684 (fixed_regs_p): Rename from global_regs_p. Call fixed_reg_p.
3685 Update all uses.
3686
3687 2016-04-30 Alan Modra <amodra@gmail.com>
3688
3689 * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
3690 Remove redundant PIC_OFFSET_TABLE_REGNUM test. Replace with
3691 flag_pic test for Darwin.
3692
3693 2016-04-30 Alan Modra <amodra@gmail.com>
3694
3695 * regs.h (struct reg_info_t): Delete freq_calls_crossed and
3696 throw_calls_crossed.
3697 (REG_FREQ_CALLS_CROSSED): Delete.
3698 (REG_N_THROWING_CALLS_CROSSED): Delete.
3699 * regstat.c (regstat_bb_compute_ri): Don't calculate
3700 REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED.
3701 (dump_reg_info): Don't print call cross frequency.
3702 * ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED
3703 and REG_N_THROWING_CALLS_CROSSED.
3704
3705 2016-04-30 Alan Modra <amodra@gmail.com>
3706
3707 * regs.h (struct reg_info_t): Delete live_length.
3708 (REG_LIVE_LENGTH): Delete macro.
3709 * regstat.c (regstat_bb_compute_ri): Delete artificial_uses,
3710 local_live, local_processed and local_live_last_luid params.
3711 Replace bb_index param with bb. Don't set REG_LIVE_LENGTH.
3712 Formatting fixes.
3713 (regstat_compute_ri): Adjust for above. Don't set
3714 REG_LIVE_LENGTH.
3715 (dump_reg_info): Don't print live length.
3716 * ira.c (update_equiv_regs): Replace test of REG_LIVE_LENGTH
3717 with test of setjmp_crosses. Don't set REG_LIVE_LENGTH.
3718 Localize loop_depth var.
3719
3720 2016-04-30 Alan Modra <amodra@gmail.com>
3721
3722 * ira.c (enum valid_equiv): New.
3723 (validate_equiv_mem): Return enum.
3724 (update_equiv_mem): Create replacement in more cases.
3725 (add_store_equivs): Update validate_equiv_mem call.
3726
3727 2016-04-30 Alan Modra <amodra@gmail.com>
3728
3729 * ira.c (combine_and_move_insns): Rather than scanning insns,
3730 use DF infrastucture to find use and def insns.
3731
3732 2016-04-30 Alan Modra <amodra@gmail.com>
3733
3734 ira.c (combine_and_move_insns): Move invariant conditions..
3735 (ira.c): ..to here. Call combine_and_move_insns before
3736 add_store_equivs. Call grow_reg_equivs later. Allocate
3737 req_equiv later using max_reg_num() rather than global max_regno.
3738 (contains_replace_regs): Delete.
3739 (add_store_equivs): Remove contains_replace_regs test.
3740
3741 2016-04-30 Alan Modra <amodra@gmail.com>
3742
3743 * ira.c (struct equiv_mem_data): New.
3744 (equiv_mem, equiv_mem_modified): Delete static vars.
3745 (validate_equiv_mem_from_store): Use "data" param to communicate..
3746 (validate_equiv_mem): ..from here.
3747
3748 2016-04-30 Alan Modra <amodra@gmail.com>
3749
3750 * ira.c (add_store_equivs, combine_and_move_insns): New functions,
3751 split out from..
3752 (update_reg_equivs): ..here. Move allocation and freeing of
3753 reg_equiv, and calls to grow_reg_equivs, init_alias_analysis,
3754 end_alias_analysis to..
3755 (ira): ..here.
3756
3757 2016-04-30 Alan Modra <amodra@gmail.com>
3758
3759 * ira.c (pdx_subregs): Delete.
3760 (struct equivalence): Add pdx_subregs field.
3761 (set_paradoxical_subreg): Remove pdx_subregs param. Update
3762 pdx_subregs access.
3763 (update_equiv_regs): Don't create or free pdx_subregs. Update
3764 pdx_subregs access.
3765
3766 2016-04-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3767
3768 * config/rs6000/altivec.h: Change definitions of vec_xl and
3769 vec_xst.
3770 * config/rs6000/rs6000-builtin.def (LD_ELEMREV_V2DF): New.
3771 (LD_ELEMREV_V2DI): New.
3772 (LD_ELEMREV_V4SF): New.
3773 (LD_ELEMREV_V4SI): New.
3774 (LD_ELEMREV_V8HI): New.
3775 (LD_ELEMREV_V16QI): New.
3776 (ST_ELEMREV_V2DF): New.
3777 (ST_ELEMREV_V2DI): New.
3778 (ST_ELEMREV_V4SF): New.
3779 (ST_ELEMREV_V4SI): New.
3780 (ST_ELEMREV_V8HI): New.
3781 (ST_ELEMREV_V16QI): New.
3782 (XL): New.
3783 (XST): New.
3784 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
3785 descriptions for VSX_BUILTIN_VEC_XL and VSX_BUILTIN_VEC_XST.
3786 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Map from
3787 TARGET_P9_VECTOR to RS6000_BTM_P9_VECTOR.
3788 (altivec_expand_builtin): Add handling for
3789 VSX_BUILTIN_ST_ELEMREV_<MODE> and VSX_BUILTIN_LD_ELEMREV_<MODE>.
3790 (rs6000_invalid_builtin): Add error-checking for
3791 RS6000_BTM_P9_VECTOR.
3792 (altivec_init_builtins): Define builtins used to implement vec_xl
3793 and vec_xst.
3794 (rs6000_builtin_mask_names): Define power9-vector.
3795 * config/rs6000/rs6000.h (MASK_P9_VECTOR): Define.
3796 (RS6000_BTM_P9_VECTOR): Define.
3797 (RS6000_BTM_COMMON): Include RS6000_BTM_P9_VECTOR.
3798 * config/rs6000/vsx.md (vsx_ld_elemrev_v2di): New define_insn.
3799 (vsx_ld_elemrev_v2df): Likewise.
3800 (vsx_ld_elemrev_v4sf): Likewise.
3801 (vsx_ld_elemrev_v4si): Likewise.
3802 (vsx_ld_elemrev_v8hi): Likewise.
3803 (vsx_ld_elemrev_v16qi): Likewise.
3804 (vsx_st_elemrev_v2df): Likewise.
3805 (vsx_st_elemrev_v2di): Likewise.
3806 (vsx_st_elemrev_v4sf): Likewise.
3807 (vsx_st_elemrev_v4si): Likewise.
3808 (vsx_st_elemrev_v8hi): Likewise.
3809 (vsx_st_elemrev_v16qi): Likewise.
3810 * doc/extend.texi: Add prototypes for vec_xl and vec_xst. Correct
3811 grammar.
3812
3813 2016-04-29 Patrick Palka <ppalka@gcc.gnu.org>
3814
3815 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Split
3816 out into ...
3817 (simplify_control_stmt_condition_1): ... here. Recurse into
3818 BIT_AND_EXPRs and BIT_IOR_EXPRs.
3819
3820 2016-04-29 David Edelsohn <dje.gcc@gmail.com>
3821
3822 PR target/69810
3823 * config/rs6000/rs6000.md (EXTQI): Don't allow extension to HImode.
3824 (zero_extendqi<mode>2_dot): Revert earlier conversion from
3825 define_insn_and_split to define_insn.
3826 (zero_extendqi<mode>2_dot2): Same.
3827 (extendqi<mode>2_dot): Same.
3828 (extendqi<mode>2_dot2): Same.
3829
3830 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
3831
3832 * config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK.
3833 (probe_stack): New expander.
3834 (probe_stack_<mode>): New insn pattern.
3835
3836 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
3837
3838 * config/i386/i386.md
3839 (operations with memory inputs setting flags peephole2):
3840 Remove uneeded REG_P checks. Cleanup pattern generation.
3841
3842 2016-04-29 Ilya Enkovich <ilya.enkovich@intel.com>
3843
3844 * tree-vect-loop.c (vect_transform_loop): Fix
3845 nb_iterations_upper_bound computation for vectorized loop.
3846
3847 2016-04-29 Marek Polacek <polacek@redhat.com>
3848 Jakub Jelinek <jakub@redhat.com>
3849
3850 PR sanitizer/70342
3851 * fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
3852 TARGET_EXPR_SLOT as a base.
3853
3854 2016-04-29 Andrew Burgess <andrew.burgess@embecosm.com>
3855
3856 * config/arc/arc.md (*loadqi_update): Replace use of 'rI' constraint
3857 with 'rCm2' constraints to limit possible immediate size.
3858 (*load_zeroextendqisi_update): Likewise.
3859 (*load_signextendqisi_update): Likewise.
3860 (*loadhi_update): Likewise.
3861 (*load_zeroextendhisi_update): Likewise.
3862 (*load_signextendhisi_update): Likewise.
3863 (*loadsi_update): Likewise.
3864 (*loadsf_update): Likewise.
3865
3866 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
3867
3868 * config/i386/predicates.md (constm1_operand): Fix comparison.
3869
3870 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
3871
3872 * testsuite/gcc.target/arc/ieee_eq.c: New test.
3873
3874 2016-04-29 Oleg Endo <olegendo@gcc.gnu.org>
3875
3876 * common/config/sh/sh-common.c (sh_option_optimization_table): Remove
3877 remaining SH5 related settings.
3878 * config/sh/sh-protos.h (shmedia_cleanup_truncate,
3879 shmedia_prepare_call_address): Delete.
3880 * config/sh/sh.c (sh_print_operand, output_stack_adjust,
3881 DWARF_CIE_DATA_ALIGNMENT, LOCAL_ALIGNMENT): Update comments.
3882 * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC,
3883 UNSUPPORTED_SH2A): Remove m5 checks.
3884 (sh_divide_strategy_e): Remove SH5 division strategies.
3885 (TARGET_PTRMEMFUNC_VBIT_LOCATION): Remove and use default.
3886 * config/sh/sh.md (divsf3): Reinstate define_expand pattern.
3887
3888 2016-04-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
3889
3890 * config/s390/s390.c (s390_rtx_costs): Update documentation.
3891
3892 2016-04-29 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3893
3894 * config/s390/2964.md ("z13_unit_fxu", "z13_0"): Remove lder.
3895 * config/s390/s390.md ("movsi_larl", "*movsi_esa", "mov<mode>"):
3896 Change lder to ldr.
3897 * config/s390/vector.md ("mov<mode>"): Likewise.
3898
3899 2016-04-29 Ulrich Weigand <uweigand@de.ibm.com>
3900
3901 * config/s390/constraints.md ("U", "W"): Invoke
3902 s390_mem_constraint with "ZR" and "ZT".
3903 * config/s390/s390.c (s390_check_qrst_address): Reject invalid
3904 addresses when using LRA. Accept also short displacements for S
3905 and T constraints. Do not check for long displacement target for
3906 S and T constraints.
3907 (s390_mem_constraint): Remove handling of U and W constraints.
3908 * config/s390/s390.md (various patterns): Remove the short
3909 displacement constraints (Q and R) if a long displacement
3910 constraint is present. Add longdisp as required CPU capability.
3911 * config/s390/vector.md: Likewise.
3912 * config/s390/vx-builtins.md: Likewise.
3913
3914 2016-04-29 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
3915
3916 PR target/60040
3917 * reload1.c (reload): Call finish_spills before
3918 restarting reload loop. Skip select_reload_regs
3919 if update_eliminables_and_spill returns true.
3920
3921 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
3922
3923 * config/arc/arc.h (UNSIGNED_INT12, UNSIGNED_INT16): Define.
3924 * config/arc/arc.md (umulhisi3): Use arc_short_operand predicate.
3925 (umulhisi3_imm): Update predicates and constraint letters.
3926 (umulhisi3_reg): Declare instruction as commutative.
3927 * config/arc/constraints.md (J12, J16): New constraints.
3928 * config/arc/predicates.md (short_unsigned_const_operand): New
3929 predicate.
3930 (arc_short_operand): Likewise.
3931 * testsuite/gcc.target/arc/umulsihi3_z.c: New file.
3932
3933 2016-04-29 Richard Biener <rguenther@suse.de>
3934
3935 PR tree-optimization/13962
3936 PR tree-optimization/65686
3937 * tree-ssa-alias.h (ptrs_compare_unequal): Declare.
3938 * tree-ssa-alias.c (ptrs_compare_unequal): New function
3939 using PTA to compare pointers.
3940 * match.pd: Add pattern for pointer equality compare simplification
3941 using ptrs_compare_unequal.
3942
3943 2016-04-29 Richard Biener <rguenther@suse.de>
3944
3945 * stor-layout.c (layout_type): Do not build a pointer-to-element
3946 type for arrays.
3947
3948 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
3949
3950 * config/i386/i386.md (Load+RegOp to Mov+MemOp peephole2):
3951 Use SWI mode iterator. Use general_reg_operand predicate.
3952 (Load+RegOp to Mov+MemOp peephole2 with vector regs): Split
3953 peephole to MMX and SSE part. Use mmx_reg_operand and sse_reg_operand
3954 predicates.
3955
3956 2016-04-29 Jakub Jelinek <jakub@redhat.com>
3957
3958 PR middle-end/70843
3959 * fold-const.c (operand_equal_p): Don't verify hash value equality
3960 if arg0 == arg1.
3961 * tree.c (inchash::add_expr): Handle STATEMENT_LIST. Ignore BLOCK
3962 and OMP_CLAUSE.
3963
3964 2016-04-28 Jakub Jelinek <jakub@redhat.com>
3965
3966 PR target/70858
3967 * config/i386/i386.c (bdesc_special_args): Add | OPTION_MASK_ISA_64BIT
3968 to __builtin_ia32_lwpval64 and __builtin_ia32_lwpins64.
3969 (bdesc_args): Add | OPTION_MASK_ISA_64BIT to __builtin_ia32_bextr_u64,
3970 __builtin_ia32_bextri_u64, __builtin_ia32_bzhi_di,
3971 __builtin_ia32_pdep_di and __builtin_ia32_pext_di.
3972
3973 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
3974
3975 * config/rs6000/rs6000.c (compute_save_world_info): Rename info_ptr
3976 to info. Don't initialize separate fields to 0. Clean up
3977 formatting a bit.
3978
3979 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
3980
3981 * config/i386/i386.md (peephole2s for operations with memory inputs):
3982 Use SWI mode iterator.
3983 (peephole2s for operations with memory outputs): Ditto.
3984 Do not check for stack checking probe.
3985
3986 (probe_stack): Remove expander.
3987
3988 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
3989 Andrew Burgess <andrew.burgess@embecosm.com>
3990
3991 * config/arc/arc.c (arc_print_operand): Print integer 'H' / 'L'
3992 operands as 32-bits.
3993
3994 2016-04-28 Jason Merrill <jason@redhat.com>
3995
3996 * gdbinit.in: Skip line-map.h.
3997
3998 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
3999 Andrew Burgess <andrew.burgess@embecosm.com>
4000
4001 * config/arc/arc.c (arc_conditional_register_usage): Take
4002 TARGET_RRQ_CLASS into account.
4003 (arc_print_operand): Support printing 'p' and 's' operands.
4004 * config/arc/arc.h (TARGET_NPS_BITOPS_DEFAULT): Provide default
4005 as 0.
4006 (TARGET_RRQ_CLASS): Define.
4007 (IS_POWEROF2_OR_0_P): Define.
4008 * config/arc/arc.md (*movsi_insn): Add w/Clo, w/Chi, and w/Cbi
4009 alternatives.
4010 (*tst_movb): New define_insn.
4011 (*tst): Avoid recognition if it could prevent '*tst_movb'
4012 combination; replace c/CnL with c/Chs alternative.
4013 (*tst_bitfield_tst): New define_insn.
4014 (*tst_bitfield_asr): New define_insn.
4015 (*tst_bitfield): New define_insn.
4016 (andsi3_i): Add Rrq variant.
4017 (extzv): New define_expand.
4018 (insv): New define_expand.
4019 (*insv_i): New define_insn.
4020 (*movb): New define_insn.
4021 (*movb_signed): New define_insn.
4022 (*movb_high): New define_insn.
4023 (*movb_high_signed): New define_insn.
4024 (*movb_high_signed + 1): New define_split pattern.
4025 (*mrgb): New define_insn.
4026 (*mrgb + 1): New define_peephole2 pattern.
4027 (*mrgb + 2): New define_peephole2 pattern.
4028 * config/arc/arc.opt (mbitops): New option for nps400, uses
4029 TARGET_NPS_BITOPS_DEFAULT.
4030 * config/arc/constraints.md (q): Make register class conditional.
4031 (Rrq): New register constraint.
4032 (Chs): New constraint.
4033 (Clo): New constraint.
4034 (Chi): New constraint.
4035 (Cbf): New constraint.
4036 (Cbn): New constraint.
4037 (C18): New constraint.
4038 (Cbi): New constraint.
4039
4040 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
4041
4042 * cfganal.c (bitmap_intersection_of_succs): Delete assert checking
4043 dst->popcount.
4044 (bitmap_intersection_of_preds): Ditto.
4045 (bitmap_union_of_succs): Ditto.
4046 (bitmap_union_of_preds): Ditto.
4047 * sbitmap.c (do_popcount): Delete.
4048 (BITMAP_DEBUGGING): Delete.
4049 (sbitmap_verify_popcount): Delete.
4050 (sbitmap_alloc): Don't initialize the popcount field.
4051 (sbitmap_alloc_with_popcount): Delete.
4052 (sbitmap_resize): Don't resize the popcount array.
4053 (sbitmap_vector_alloc): Don't initialize the popcount field.
4054 (bitmap_copy): Don't copy the popcount array.
4055 (bitmap_clear): Don't clear the popcount array.
4056 (bitmap_clear): Delete the popcount array handling.
4057 (bitmap_ior_and_compl): Delete the popcount assert.
4058 (bitmap_not): Ditto.
4059 (bitmap_and_compl): Ditto.
4060 (bitmap_and): Delete the popcount array handling.
4061 (bitmap_xor): Ditto.
4062 (bitmap_ior): Ditto.
4063 (bitmap_or_and): Delete the popcount assert.
4064 (bitmap_and_or): Ditto.
4065 (popcount_table): Delete.
4066 (sbitmap_elt_popcount): Delete.
4067 * sbitmap.h (simple_bitmap_def): Delete the popcount field.
4068 (bitmap_set_bit): Delete the popcount assert.
4069 (bitmap_clear_bit): Ditto.
4070 (sbitmap_free): Don't free the popcount array.
4071 (sbitmap_alloc_with_popcount): Delete declaration.
4072 (sbitmap_popcount): Ditto.
4073
4074 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
4075 Andrew Burgess <andrew.burgess@embecosm.com>
4076
4077 * config/arc/arc.h (SYMBOL_FLAG_CMEM): Define.
4078 (TARGET_NPS_CMEM_DEFAULT): Provide default definition.
4079 * config/arc/arc.c (arc_address_cost): Return 0 for cmem_address.
4080 (arc_encode_section_info): Set SYMBOL_FLAG_CMEM where indicated.
4081 * config/arc/arc.opt (mcmem): New option.
4082 * config/arc/arc.md (*extendqihi2_i): Add r/Uex alternative,
4083 supply length for r/m alternative.
4084 (*extendqisi2_ac): Likewise.
4085 (*extendhisi2_i): Add r/Uex alternative, supply length for r/m and
4086 r/Uex alternative.
4087 (movqi_insn): Add r/Ucm and Ucm/?Rac alternatives.
4088 (movhi_insn): Likewise.
4089 (movsi_insn): Add r/Ucm,Ucm/w alternatives.
4090 (*zero_extendqihi2_i): Add r/Ucm alternative.
4091 (*zero_extendqisi2_ac): Likewise.
4092 (*zero_extendhisi2_i): Likewise.
4093 * config/arc/constraints.md (Uex): New memory constraint.
4094 (Ucm): New define_constraint.
4095 * config/arc/predicates.md (long_immediate_loadstore_operand):
4096 Return 0 for MEM with cmem_address address.
4097 (cmem_address_0): New predicates.
4098 (cmem_address_1): Likewise.
4099 (cmem_address_2): Likewise.
4100 (cmem_address): Likewise.
4101
4102 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
4103
4104 * config/rs6000/rs6000.c (machine_function): Rename
4105 insn_chain_scanned_p to spe_insn_chain_scanned_p.
4106 (rs6000_stack_info): Adjust.
4107
4108 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
4109 Andrew Burgess <andrew.burgess@embecosm.com>
4110
4111 * config/arc/constraints.md (Usd): Convert to define_constraint.
4112 (Us<): Likewise.
4113 (Us>): Likewise.
4114
4115 2016-04-28 Jakub Jelinek <jakub@redhat.com>
4116
4117 PR target/70821
4118 * config/i386/sync.md (define_peephole2 *atomic_fetch_add_cmp<mode>):
4119 Add new peephole2 where the first insn is *mov<mode>_or instead of
4120 *mov<mode>_internal.
4121
4122 2016-04-28 Segher Boesssenkool <segher@kernel.crashing.org>
4123
4124 * tracer.c (bb_seen): Make static.
4125
4126 2016-04-28 Andrew Burgess <andrew.burgess@embecosm.com>
4127
4128 * common/config/arc/arc-common.c (arc_handle_option): Add NPS400
4129 support, setup defaults.
4130 * config/arc/arc-opts.h (enum processor_type): Add NPS400.
4131 * config/arc/arc.c (arc_init): Add NPS400 support.
4132 * config/arc/arc.h (CPP_SPEC): Add NPS400 defines.
4133 (TARGET_ARC700): NPS400 is also an ARC700.
4134 * config/arc/arc.opt: Add NPS400 options to -mcpu=.
4135
4136 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
4137
4138 PR target/70668
4139 * config/nds32/nds32.md (casesi): Don't access the operands array
4140 out of bounds.
4141
4142 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
4143
4144 * config/i386/i386.md (zeroing peephole2): Use general_reg_operand.
4145 (or $-1,reg peephole2): Ditto.
4146 (strict_low_part zeroing peephole2): Use SWI12 mode iterator.
4147
4148 2016-04-28 Markus Trippelsdorf <markus@trippelsdorf.de>
4149
4150 * doc/extend.texi (Common Function Attributes) [optimize]:
4151 Discourage use of the optimize attribute.
4152
4153 2016-04-28 Bill Seurer <seurer@linux.vnet.ibm.com>
4154
4155 * config/rs6000/rs6000-builtin.def (vec_adde): Change vec_adde to a
4156 special case builtin.
4157 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
4158 ALTIVEC_BUILTIN_VEC_ADDE.
4159 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
4160 support for ALTIVEC_BUILTIN_VEC_ADDE.
4161 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
4162 for __builtin_vec_adde.
4163
4164 2016-04-28 Jakub Jelinek <jakub@redhat.com>
4165
4166 * config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
4167 * config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise.
4168
4169 2016-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4170
4171 PR testsuite/70595
4172 * doc/sourcebuild.texi (Effective-Target Keywords, Other
4173 attributes): Document cilkplus_runtime.
4174
4175 2016-04-28 Martin Jambor <mjambor@suse.cz>
4176
4177 * tree-cfg.c (verify_expr): Verify that local declarations belong to
4178 this function. Call verify_expr on MEM_REFs and bases of other
4179 handled_components.
4180
4181 2016-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4182
4183 * internal-fn.c (expand_arith_overflow): Convert preprocessor check
4184 for WORD_REGISTER_OPERATIONS to runtime check.
4185
4186 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
4187
4188 * config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.
4189
4190 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
4191
4192 * config/arc/arc.c (arc_process_double_reg_moves): Fix for
4193 big-endian compilation.
4194 * config/arc/arc.md (addf3): Likewise.
4195 (subdf3): Likewise.
4196 (muldf3): Likewise.
4197
4198 2016-04-28 Richard Biener <rguenther@suse.de>
4199
4200 PR tree-optimization/70840
4201 * match.pd: powi(-x, y) and powi(|x|,y) -> powi(x,y) if y is even;
4202 Fix pow(copysign(x, y), z) -> pow(x, z) and add powi variant;
4203 Mark x * pow(x,c) -> pow(x,c+1) commutative.
4204 Add powi(x,y) * powi(z,y) -> powi(x*z,y).
4205
4206 2015-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4207
4208 * config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
4209 and explain why in a comment.
4210
4211 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
4212
4213 * config/arc/arc.md (cpu_facility): Add fpx variant.
4214 (subdf3): Prohibit use reverse sub when assist operations option
4215 is enabled.
4216 * config/arc/fpx.md (subdf3_insn, *dsubh_peep2_insn): Allow drsub
4217 instructions only when FPX is enabled.
4218 * testsuite/gcc.target/arc/trsub.c: New test.
4219
4220 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
4221
4222 * config/i386/i386.md (*fop_<mode>_1_mixed): Do not check for
4223 mult_operator when calculating "type" attribute.
4224 (*fop_<mode>_1_i387): Ditto.
4225 (*fop_xf_1_i387): Ditto.
4226 (x87 stack loads peephole2): Add "reg = op (mem, reg)" peephole2.
4227 Use std::swap to swap operands. Use RTL expressions to generate
4228 converted pattern.
4229
4230 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
4231 Joern Rennecke <joern.rennecke@embecosm.com>
4232
4233 * config/arc/arc-protos.h (arc_legitimize_pic_address): Remove
4234 declaration.
4235 (emit_pic_move): Remove.
4236 (arc_eh_uses, insn_is_tls_gd_dispatch): Declare.
4237 * config/arc/arc.c (emit_pic_move): Removed.
4238 (TARGET_HAVE_TLS): Define.
4239 (arc_conditional_register_usage): Test for arc_tp_regno.
4240 (arc_print_operand, arc_print_operand_address): Handle TLS
4241 unspecs.
4242 (arc_needs_pcl_p): New function.
4243 (arc_legitimate_pc_offset_p): Use arc_needs_pcl_p.
4244 (arc_legitimate_pic_addr_p): Handle TLS unspecs.
4245 (arc_raw_symbolic_reference_mentioned_p): Likewise.
4246 (arc_get_tp, arc_emit_call_tls_get_addr): New function.
4247 (arc_legitimize_tls_address): Likewise.
4248 (DTPOFF_ZERO_SYM): Define.
4249 (arc_legitimize_pic_address): Make it static, handle TLS cases.
4250 (arc_output_pic_addr_const): Print TLS unspecs.
4251 (prepare_pic_move): New function, replaces emit_pic_move.
4252 (arc_legitimate_constant_p): Handle TLS unspecs.
4253 (arc_legitimate_address_p): Likewise.
4254 (arc_rewrite_small_data_p): Use assert for TLS constants.
4255 (prepare_move_operands): Use prepare_pic_move.
4256 (arc_legitimize_address): Legitimize tls addresses.
4257 (arc_epilogue_uses): Check for arc_tp_regno.
4258 (arc_eh_uses, insn_is_tls_gd_dispatch): New function.
4259 * config/arc/arc.h [DEFAULT_LIBC != LIBC_UCLIBC] (EXTRA_SPECS):
4260 Define.
4261 [DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC):
4262 Likewise.
4263 [DEFAULT_LIBC != LIBC_UCLIBC] (STARTFILE_SPEC): Add
4264 %(arc_tls_extra_start_spec).
4265 (TARGET_CPU_CPP_BUILTINS): Define __ARC_TLS_REGNO__.
4266 (REGNO_OK_FOR_BASE_P): Check for arc_tp_regno.
4267 (EH_USES): Define.
4268 (INSN_REFERENCES_ARE_DELAYED): Use insn_is_tls_gd_dispatch.
4269 * config/arc/arc.md (UNSPEC_TLS_GD, UNSPEC_TLS_LD, UNSPEC_TLS_IE)
4270 (UNSPEC_TLS_OFF): Add.
4271 (R10_REG): Define.
4272 (tls_load_tp_soft, tls_gd_load, tls_gd_get_addr, tls_gd_dispatch)
4273 (get_thread_pointersi): New patterns.
4274 * config/arc/arc.opt (mtp-regno): New option.
4275 * config/arc/predicates.md (move_src_operand): Handle TLS symbols.
4276 (move_dest_operand): Likewise.
4277 * configure: Regenerate.
4278 * configure.ac: Add arc*-*-* case to test for tls.
4279 * doc/invoke.texi (ARC options): Document mtp-regno.
4280
4281 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
4282
4283 * config/arc/arc.c (arc_vector_mode_supported_p): Add support for
4284 the new ARC HS SIMD instructions.
4285 (arc_preferred_simd_mode): New function.
4286 (arc_autovectorize_vector_sizes): Likewise.
4287 (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
4288 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
4289 (arc_init_reg_tables): Accept new ARC HS SIMD modes.
4290 (arc_init_builtins): Add new SIMD builtin types.
4291 (arc_split_move): Handle 64 bit vector moves.
4292 * config/arc/arc.h (TARGET_PLUS_DMPY, TARGET_PLUS_MACD)
4293 (TARGET_PLUS_QMACW): Define.
4294 * config/arc/builtins.def (QMACH, QMACHU, QMPYH, QMPYHU, DMACH)
4295 (DMACHU, DMPYH, DMPYHU, DMACWH, DMACWHU, VMAC2H, VMAC2HU, VMPY2H)
4296 (VMPY2HU, VADDSUB2H, VSUBADD2H, VADDSUB, VSUBADD, VADDSUB4H)
4297 (VSUBADD4H): New builtins.
4298 * config/arc/simdext.md: Add new ARC HS SIMD instructions.
4299 * testsuite/gcc.target/arc/builtin_simdarc.c: New file.
4300
4301 2016-04-28 Eduard Sanou <dhole@openmailbox.org>
4302 Matthias Klose <doko@debian.org>
4303
4304 * doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable.
4305
4306 2016-04-28 Richard Biener <rguenther@suse.de>
4307
4308 PR middle-end/70777
4309 * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
4310 canonicalization.
4311
4312 2016-04-28 Oleg Endo <olegendo@gcc.gnu.org>
4313
4314 * common/config/sh/sh-common.c: Remove SH5 support.
4315 * config/sh/constraints.md: Likewise.
4316 * config/sh/config/sh/elf.h: Likewise.
4317 * config/sh/linux.h: Likewise.
4318 * config/sh/netbsd-elf.h: Likewise.
4319 * config/sh/predicates.md: Likewise.
4320 * config/sh/sh-c.c: Likewise.
4321 * config/sh/sh-protos.h: Likewise.
4322 * config/sh/sh.c: Likewise.
4323 * config/sh/sh.h: Likewise.
4324 * config/sh/sh.md: Likewise.
4325 * config/sh/sh.opt: Likewise.
4326 * config/sh/sync.md: Likewise.
4327 * config/sh/sh64.h: Delete.
4328 * config/sh/shmedia.h: Likewise.
4329 * config/sh/shmedia.md: Likewise.
4330 * config/sh/sshmedia.h: Likewise.
4331 * config/sh/t-netbsd-sh5-64: Likewise.
4332 * config/sh/t-sh64: Likewise.
4333 * config/sh/ushmedia.h: Likewise.
4334
4335 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
4336
4337 * config/i386/i386.md (sign_extend to memory peephole2s): Use
4338 general_reg_operand instead of register_operand predicate.
4339
4340 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
4341
4342 * params.def (MIN_PARTITION_SIZE): Set default value to 10000.
4343
4344 2016-04-27 Marc Glisse <marc.glisse@inria.fr>
4345
4346 * match.pd (A - B > A, A + B < A): New transformations.
4347
4348 2016-04-27 Patrick Palka <ppalka@gcc.gnu.org>
4349
4350 * genattrtab.c (write_test_expr): New parameter EMIT_PARENS
4351 which defaults to true. Emit an outer pair of parentheses only if
4352 EMIT_PARENS. When continuing a chain of && or || (or & or |),
4353 don't emit parentheses for the right-hand operand.
4354
4355 2016-04-27 Jeff Law <law@redhat.com>
4356
4357 * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.
4358
4359 2016-04-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4360
4361 * config/rs6000/altivec.md (altivec_lvx_<mode>): Remove.
4362 (altivec_lvx_<mode>_internal): Document.
4363 (altivec_lvx_<mode>_2op): New define_insn.
4364 (altivec_lvx_<mode>_1op): Likewise.
4365 (altivec_lvx_<mode>_2op_si): Likewise.
4366 (altivec_lvx_<mode>_1op_si): Likewise.
4367 (altivec_stvx_<mode>): Remove.
4368 (altivec_stvx_<mode>_internal): Document.
4369 (altivec_stvx_<mode>_2op): New define_insn.
4370 (altivec_stvx_<mode>_1op): Likewise.
4371 (altivec_stvx_<mode>_2op_si): Likewise.
4372 (altivec_stvx_<mode>_1op_si): Likewise.
4373 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
4374 Expand vec_ld and vec_st during parsing.
4375 * config/rs6000/rs6000.c (altivec_expand_lvx_be): Commentary
4376 changes.
4377 (altivec_expand_stvx_be): Likewise.
4378 (altivec_expand_lv_builtin): Expand lvx built-ins to expose the
4379 address-masking behavior in RTL.
4380 (altivec_expand_stv_builtin): Expand stvx built-ins to expose the
4381 address-masking behavior in RTL.
4382 (altivec_expand_builtin): Change builtin code arguments for calls
4383 to altivec_expand_stv_builtin and altivec_expand_lv_builtin.
4384 (insn_is_swappable_p): Avoid incorrect swap optimization in the
4385 presence of lvx/stvx patterns.
4386 (alignment_with_canonical_addr): New function.
4387 (alignment_mask): Likewise.
4388 (find_alignment_op): Likewise.
4389 (recombine_lvx_pattern): Likewise.
4390 (recombine_stvx_pattern): Likewise.
4391 (recombine_lvx_stvx_patterns): Likewise.
4392 (rs6000_analyze_swaps): Perform a pre-pass to recognize lvx and
4393 stvx patterns from expand.
4394 * config/rs6000/vector.md (vector_altivec_load_<mode>): Use new
4395 expansions.
4396 (vector_altivec_store_<mode>): Likewise.
4397
4398 2016-04-26 Evandro Menezes <e.menezes@samsung.com>
4399
4400 * config/aarch64/aarch64.md
4401 (*movhf_aarch64): Add "movi %0, #0" to zero up register and
4402 remove the "fp" attributes.
4403 (*movsf_aarch64): Add "movi %0, #0" to zero up register and
4404 add the "simd" attributes.
4405 (*movdf_aarch64): Likewise.
4406 (*movtf_aarch64): Remove the "fp" attributes.
4407 * testsuite/gcc.target/aarch64/fmovf-zero-reg.c: Update accordingly.
4408 * testsuite/gcc.target/aarch64/fmovd-zero-reg.c: Likewise.
4409
4410 2016-04-27 David Malcolm <dmalcolm@redhat.com>
4411
4412 * emit-rtl.c (maybe_set_first_label_num): Strengthen param from
4413 rtx to rtx_code_label *.
4414 * rtl.h (maybe_set_first_label_num): Likewise.
4415
4416 2016-04-27 David Malcolm <dmalcolm@redhat.com>
4417
4418 * df-core.c (df_add_problem): Make the problem param be const.
4419 (df_remove_problem): Make local "problem" be const.
4420 * df-problems.c (problem_RD): Make const.
4421 (problem_LR): Likewise.
4422 (problem_LIVE): Likewise.
4423 (problem_MIR): Likewise.
4424 (problem_CHAIN): Likewise.
4425 (problem_WORD_LR): Likewise.
4426 (problem_NOTE): Likewise.
4427 (problem_MD): Likewise.
4428 * df-scan.c (problem_SCAN): Likewise.
4429 * df.h (struct df_problem): Make field "dependent_problem" be
4430 const.
4431 (struct dataflow): Likewise for field "problem".
4432 (df_add_problem): Make param const.
4433
4434 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
4435
4436 * config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when
4437 inter-unit moves to/from vector registers are enabled. Do not disable
4438 for TARGET_MMX.
4439
4440 2016-04-27 David Malcolm <dmalcolm@redhat.com>
4441
4442 * df.h (DF_SCAN, DF_LR, DF_LIVE, DF_RD, DF_CHAIN, DF_WORD_LR,
4443 DF_NOTE, DF_MD, DF_MIR, DF_LAST_PROBLEM_PLUS1): Convert from
4444 #define to...
4445 (enum df_problem_id): ...this new enum.
4446 (struct df_problem): Convert field "id" from "int" to
4447 enum df_problem_id.
4448
4449 2016-04-27 David Malcolm <dmalcolm@redhat.com>
4450
4451 * rtl.def: Update comment for "things in the instruction chain" to
4452 reflect the removal of the leading "i" field for INSN_UID in
4453 r210360. Fix bogus apostrophe.
4454
4455 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
4456
4457 * config/i386/i386.md
4458 (lea arith with mem operand + setcc peephole2): Set operator mode.
4459
4460 2016-04-27 H.J. Lu <hongjiu.lu@intel.com>
4461
4462 PR target/70155
4463 * config/i386/i386.c (scalar_to_vector_candidate_p): Renamed to ...
4464 (dimode_scalar_to_vector_candidate_p): This.
4465 (timode_scalar_to_vector_candidate_p): New function.
4466 (scalar_to_vector_candidate_p): Likewise.
4467 (timode_check_non_convertible_regs): Likewise.
4468 (timode_remove_non_convertible_regs): Likewise.
4469 (remove_non_convertible_regs): Likewise.
4470 (remove_non_convertible_regs): Renamed to ...
4471 (dimode_remove_non_convertible_regs): This.
4472 (scalar_chain::~scalar_chain): Make it virtual.
4473 (scalar_chain::compute_convert_gain): Make it pure virtual.
4474 (scalar_chain::mark_dual_mode_def): Likewise.
4475 (scalar_chain::convert_insn): Likewise.
4476 (scalar_chain::convert_registers): Likewise.
4477 (scalar_chain::add_to_queue): Make it protected.
4478 (scalar_chain::emit_conversion_insns): Likewise.
4479 (scalar_chain::replace_with_subreg): Likewise.
4480 (scalar_chain::replace_with_subreg_in_insn): Likewise.
4481 (scalar_chain::convert_op): Likewise.
4482 (scalar_chain::convert_reg): Likewise.
4483 (scalar_chain::make_vector_copies): Likewise.
4484 (scalar_chain::convert_registers): New pure virtual function.
4485 (class dimode_scalar_chain): New class.
4486 (class timode_scalar_chain): Likewise.
4487 (scalar_chain::mark_dual_mode_def): Renamed to ...
4488 (dimode_scalar_chain::mark_dual_mode_def): This.
4489 (timode_scalar_chain::mark_dual_mode_def): New function.
4490 (timode_scalar_chain::convert_insn): Likewise.
4491 (dimode_scalar_chain::convert_registers): Likewise.
4492 (scalar_chain::compute_convert_gain): Renamed to ...
4493 (dimode_scalar_chain::compute_convert_gain): This.
4494 (scalar_chain::replace_with_subreg): Renamed to ...
4495 (dimode_scalar_chain::replace_with_subreg): This.
4496 (scalar_chain::replace_with_subreg_in_insn): Renamed to ...
4497 (dimode_scalar_chain::replace_with_subreg_in_insn): This.
4498 (scalar_chain::make_vector_copies): Renamed to ...
4499 (dimode_scalar_chain::make_vector_copies): This.
4500 (scalar_chain::convert_reg): Renamed to ...
4501 (dimode_scalar_chain::convert_reg ): This.
4502 (scalar_chain::convert_op): Renamed to ...
4503 (dimode_scalar_chain::convert_op): This.
4504 (scalar_chain::convert_insn): Renamed to ...
4505 (dimode_scalar_chain::convert_insn): This.
4506 (scalar_chain::convert): Call convert_registers.
4507 (convert_scalars_to_vector): Change to scalar_chain pointer to
4508 use timode_scalar_chain in 64-bit mode and dimode_scalar_chain
4509 in 32-bit mode. Delete scalar_chain pointer. Call
4510 free_dominance_info in 64-bit mode.
4511 (pass_stv::gate): Remove TARGET_64BIT check.
4512 (ix86_option_override): Put the 64-bit STV pass before the CSE
4513 pass.
4514
4515 2016-04-27 Pierre-Marie de Rodat <derodat@adacore.com>
4516
4517 * dwarf2out.h (struct dw_loc_descr_node): Remove the
4518 dw_loc_frame_offset field.
4519 * dwarf2out.c (new_loc_descr): Likewise.
4520 (resolve_args_picking_1): Turn the VISITED hash set into a
4521 FRAME_OFFSET hash map. Use it to associate a frame offset to
4522 visited nodes. Remove uses of the CHECKING_P macro.
4523 (resolve_args_picking): Update call to resolve_args_picking_1.
4524
4525 2016-04-27 Martin Liska <mliska@suse.cz>
4526
4527 * tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
4528 (free_loop_data): Release vuses of groups.
4529
4530 2016-04-27 Bin Cheng <bin.cheng@arm.com>
4531
4532 * tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use
4533 instead of redundant use_id and boolean have_use_for.
4534 (struct iv_use): Change sub_id into group_id. Remove field next.
4535 Move fields: related_cands, n_map_members, cost_map and selected
4536 to ...
4537 (struct iv_group): ... here. New structure.
4538 (struct iv_common_cand): Use structure declaration directly.
4539 (struct ivopts_data, iv_ca, iv_ca_delta): Rename fields.
4540 (MAX_CONSIDERED_USES): Rename macro to ...
4541 (MAX_CONSIDERED_GROUPS): ... here.
4542 (n_iv_uses, iv_use, n_iv_cands, iv_cand): Delete.
4543 (dump_iv, dump_use, dump_cand): Refactor format of dump information.
4544 (dump_uses): Rename to ...
4545 (dump_groups): ... here. Update all uses.
4546 (tree_ssa_iv_optimize_init, alloc_iv): Update all uses.
4547 (find_induction_variables): Refactor format of dump information.
4548 (record_sub_use): Delete.
4549 (record_use): Update all uses.
4550 (record_group): New function.
4551 (record_group_use, find_interesting_uses_op): Call above functions.
4552 Update all uses.
4553 (find_interesting_uses_cond): Ditto.
4554 (group_compare_offset): New function.
4555 (split_all_small_groups): Rename to ...
4556 (split_small_address_groups_p): ... here. Update all uses.
4557 (split_address_groups): Update all uses.
4558 (find_interesting_uses): Refactor format of dump information.
4559 (add_candidate_1): Update all uses. Remove redundant check on iv,
4560 base and step.
4561 (add_candidate, record_common_cand): Remove redundant assert.
4562 (add_iv_candidate_for_biv): Update use.
4563 (add_iv_candidate_derived_from_uses): Update all uses.
4564 (add_iv_candidate_for_groups, record_important_candidates): Ditto.
4565 (alloc_use_cost_map): Ditto.
4566 (set_use_iv_cost, get_use_iv_cost): Rename to ...
4567 (set_group_iv_cost, get_group_iv_cost): ... here. Update all uses.
4568 (determine_use_iv_cost_generic): Ditto.
4569 (determine_group_iv_cost_generic): Ditto.
4570 (determine_use_iv_cost_address): Ditto.
4571 (determine_group_iv_cost_address): Ditto.
4572 (determine_use_iv_cost_condition): Ditto.
4573 (determine_group_iv_cost_cond): Ditto.
4574 (determine_use_iv_cost): Ditto.
4575 (determine_group_iv_cost): Ditto.
4576 (set_autoinc_for_original_candidates): Update all uses.
4577 (find_iv_candidates): Update all uses. Refactor dump information.
4578 (determine_use_iv_costs): Ditto.
4579 (determine_iv_costs): Ditto.
4580 (iv_ca_cand_for_use): Rename to ...
4581 (iv_ca_cand_for_group): ... here. Update all uses.
4582 (iv_ca_add_use, iv_ca_add_group): Ditto.
4583 (iv_ca_set_cp, iv_ca_cost, iv_ca_delta_add): Update all uses.
4584 (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_delta_free): Ditto.
4585 (iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow): Ditto.
4586 (iv_ca_prune, cheaper_cost_with_cand, iv_ca_replace): Ditto.
4587 (try_add_cand_for, try_improve_iv_set, find_optimal_iv_set): Ditto.
4588 (create_new_iv, adjust_iv_update_pos): Ditto.
4589 (rewrite_use_address): Delete.
4590 (rewrite_use_address_1): Rename to ...
4591 (rewrite_use_address): ... here.
4592 (rewrite_use_compare): Update all uses.
4593 (rewrite_use): Delete.
4594 (rewrite_uses): Rename to ...
4595 (rewrite_groups): ... here. Update all uses.
4596 (remove_unused_ivs, free_loop_data): Update all uses.
4597 (tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize_loop): Ditto.
4598
4599 2016-04-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4600
4601 * rtlanal.c (nonzero_bits1): Convert preprocessor check
4602 for WORD_REGISTER_OPERATIONS to runtime check.
4603
4604 2016-04-27 Richard Biener <rguenther@suse.de>
4605
4606 PR ipa/70760
4607 * tree-ssa-structalias.c (find_func_aliases_for_call): Use
4608 aggregate_value_p to determine if a function result is
4609 returned by reference.
4610 (ipa_pta_execute): Functions having their address taken are
4611 not automatically nonlocal.
4612
4613 2016-04-27 Jakub Jelinek <jakub@redhat.com>
4614
4615 PR sanitizer/70683
4616 * tree-core.h (enum operand_equal_flag): Add OEP_NO_HASH_CHECK.
4617 * fold-const.c (operand_equal_p): If flag_checking and
4618 OEP_NO_HASH_CHECK is not set in flag, recurse with OEP_NO_HASH_CHECK
4619 and if it returns non-zero, assert iterative_hash_expr on both
4620 args is the same.
4621
4622 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
4623
4624 * doc/invoke.texi (-frename-registers): Also enabled at -Os.
4625
4626 2016-04-27 Nick Clifton <nickc@redhat.com>
4627
4628 PR middle-end/49889
4629 * varasm.c (merge_weak): Generate an error if an attempt is made
4630 to convert a non-weak static function into a weak, public function.
4631
4632 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
4633
4634 * params.def (MAX_PARTITION_SIZE): New param.
4635 * doc/invoke.texi: Document lto-max-partition.
4636
4637 2016-04-27 Richard Biener <rguenther@suse.de>
4638
4639 PR ipa/70785
4640 * tree-ssa-structalias.c (refered_from_nonlocal_fn): New
4641 function cummulating used_from_other_partition, externally_visible
4642 and force_output from aliases.
4643 (refered_from_nonlocal_var): Likewise.
4644 (ipa_pta_execute): Use call_for_symbol_and_aliases to cummulate
4645 node flags properly.
4646
4647 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
4648
4649 * doc/invoke.texi (Warning Options): Add -Wmemset-elt-size.
4650 (-Wmemset-elt-size): New item.
4651
4652 2016-04-27 Eric Botcazou <ebotcazou@adacore.com>
4653
4654 PR ada/70759
4655 * stor-layout.h (internal_reference_types): Delete.
4656 * stor-layout.c (reference_types_internal): Likewise.
4657 (internal_reference_types): Likewise.
4658 (layout_type) <REFERENCE_TYPE>: Adjust.
4659
4660 2016-04-27 Jakub Jelinek <jakub@redhat.com>
4661
4662 PR sanitizer/70683
4663 * tree.h (inchash::add_expr): Add FLAGS argument.
4664 * tree.c (inchash::add_expr): Likewise. If not OEP_ADDRESS_OF,
4665 use STRIP_NOPS first. For INTEGER_CST assert not OEP_ADDRESS_OF.
4666 For REAL_CST and !HONOR_SIGNED_ZEROS (t) hash +/- 0 the same.
4667 Formatting fix. Adjust recursive calls. For tcc_comparison,
4668 if swap_tree_comparison (code) is smaller than code, hash that
4669 and arguments in the other order. Hash CONVERT_EXPR the same
4670 as NOP_EXPR. For OEP_ADDRESS_OF hash MEM_REF with 0 offset
4671 of ADDR_EXPR of decl as the decl itself. Add or remove
4672 OEP_ADDRESS_OF from recursive flags as needed. For
4673 FMA_EXPR, WIDEN_MULT_{PLUS,MINUS}_EXPR hash the first two
4674 operands commutatively and only the third one normally.
4675 For internal CALL_EXPR hash in CALL_EXPR_IFN.
4676
4677 2016-04-27 Sebastian Huber <sebastian.huber@embedded-brains.de>
4678
4679 * config/rtems.h (LIB_SPEC): Add -latomic.
4680
4681 2016-04-27 Joel Sherrill <joel@rtems.org>
4682
4683 * config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
4684 xilink.ld and flags not relevant to RTEMS.
4685
4686 2016-04-26 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
4687
4688 * toplev.c (backend_init_target): Avoid calling init_reload when using
4689 LRA.
4690
4691 2016-04-26 Jakub Jelinek <jakub@redhat.com>
4692
4693 * reorg.c (try_merge_delay_insns): Declare i and j inside the
4694 for loops rather than one for the whole function.
4695
4696 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
4697
4698 * match.pd (X + CST CMP X): New transformation.
4699
4700 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
4701
4702 * genmatch.c (write_predicate): Add ATTRIBUTE_UNUSED.
4703 * fold-const.c (fold_binary_loc): Remove 2 transformations
4704 superseded by match.pd.
4705 * match.pd (x+x -> x*2): Generalize to integers.
4706
4707 2016-04-26 Bernd Schmidt <bschmidt@redhat.com>
4708
4709 * config/i386/i386.md (operation on memory peephole): Duplicate an
4710 existing peephole and adapt it to match lea rather than an operation
4711 that clobbers CC.
4712
4713 PR rtl-optimization/57193
4714 * opts.c (default_options_table): Add OPT_frename_registers at -O2
4715 and above.
4716 * doc/invoke.texi (-frename-registers, -O2): Update documentation.
4717
4718 2016-04-26 Bin Cheng <bin.cheng@arm.com>
4719
4720 * tree-if-conv.c (any_pred_load_store): New static variable.
4721 (if_convertible_gimple_assign_stmt_p): Remove parameter. Use
4722 any_pred_load_store instead of and_mask_load_store.
4723 (if_convertible_stmt_p, if_convertible_loop_p_1): Ditto.
4724 (if_convertible_loop_p, insert_gimplified_predicates): Ditto.
4725 (combine_blocks, tree_if_conversion): Ditto.
4726
4727 2016-04-26 Bin Cheng <bin.cheng@arm.com>
4728
4729 PR tree-optimization/70771
4730 PR tree-optimization/70775
4731 * tree-if-conv.c (if_convertible_phi_p): Remove check on special
4732 virtual PHI nodes. Delete parameter.
4733 (if_convertible_loop_p_1): Delete argument to above function.
4734 (predicate_all_scalar_phis): Delete code handling single-argument
4735 PHIs.
4736 (tree_if_conversion): Mark and update virtual SSA.
4737
4738 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4739
4740 PR target/61821
4741 * config/i386/i386.c (LARGECOMM_SECTION_ASM_OP): Define default.
4742 (x86_elf_aligned_common): Rename to ...
4743 (x86_elf_aligned_decl_common): ... this.
4744 Add decl arg. Switch to .lbss for largecomm object. Use
4745 LARGECOMM_SECTION_ASM_OP.
4746 * config/i386/i386-protos.h (x86_elf_aligned_common): Reflect
4747 renaming.
4748 * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_COMMON): Rename to ...
4749 (ASM_OUTPUT_ALIGNED_DECL_COMMON): ... this.
4750 Pass new decl arg.
4751 * config/i386/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
4752 [!USE_GAS] (LARGECOMM_SECTION_ASM_OP): Define.
4753
4754 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4755
4756 PR target/59407
4757 * config/i386/i386.c (SECTION_LARGE): Define.
4758 (x86_64_elf_select_section): Set it for large data/bss sections.
4759 Only clear SECTION_WRITE for .lrodata.
4760 (x86_64_elf_section_type_flags): Set SECTION_LARGE for large
4761 data/bss sections.
4762 * config/i386/sol2.h (MACH_DEP_SECTION_ASM_FLAG): Define.
4763 * varasm.c (default_elf_asm_named_section): Grow flagchars.
4764 [MACH_DEP_SECTION_ASM_FLAG] Emit MACH_DEP_SECTION_ASM_FLAG for
4765 SECTION_MACH_DEP.
4766 * doc/tm.texi.in (Sections, MACH_DEP_SECTION_ASM_FLAG): Describe.
4767 * doc/tm.texi: Regenerate.
4768
4769 2016-04-26 Jakub Jelinek <jakub@redhat.com>
4770
4771 PR bootstrap/70704
4772 * configure.ac (--enable-checking): Document extra flag, for
4773 non-release builds default to --enable-checking=yes,extra.
4774 If misc checking and extra checking, define CHECKING_P to 2 instead
4775 of 1.
4776 * common.opt (fchecking=): Add.
4777 * doc/invoke.texi (-fchecking=): Document.
4778 * doc/install.texi: Document --enable-checking changes.
4779 * configure: Regenerated.
4780 * config.in: Regenerated.
4781
4782 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
4783
4784 * config/i386/i386.md (*movxi_internal_avx512f): Use insn type
4785 attribute instead of which_alternative.
4786 * config/i386/sse.md (*mov<mode>_internal): Ditto.
4787 Use EXT_REX_SSE_REG_P where appropriate.
4788
4789 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
4790
4791 * config/i386/predicates.md (const0_operand): Do not match
4792 const_wide_int code.
4793 (const1_operand): Ditto.
4794
4795 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
4796
4797 * config/i386/i386.md (*movoi_internal_avx): Set mode attribute to XI
4798 for SSE constm1 operands and TARGET_AVX512VL.
4799 (*movti_internal): Ditto.
4800 (*mov<mode>_or): Use constm1_operand predicate.
4801 * config/i386/sse.md (*mov<mode>_internal): Set mode attribute to XI
4802 for SSE vector_all_ones operands and TARGET_AVX512VL.
4803 * config/i386/predicates.md (constm1_operand): New predicate.
4804 * config/i386/i386.c (standard_sse_constant_opcode): Simplify
4805 emission of constant -1 load.
4806
4807 2016-04-25 Jason Merrill <jason@redhat.com>
4808
4809 * gdbinit.in: Skip is-a.h.
4810
4811 * attribs.c (register_scoped_attributes): Fix logic.
4812 * attribs.h: Declare register_scoped_attributes.
4813
4814 2016-04-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4815
4816 * config/rs6000/rs6000-builtin.def: Correct pasto error for
4817 stxvd2x and stxvw4x built-in functions.
4818
4819 2016-04-25 DJ Delorie <dj@redhat.com>
4820
4821 * config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
4822 (ashrhi3): Likewise.
4823 (lshrhi3): Likewise.
4824
4825 2016-04-25 Richard Biener <rguenther@suse.de>
4826
4827 PR tree-optimization/70780
4828 * tree-ssa-pre.c (compute_antic_aux): Also return true if the block
4829 wasn't visited yet.
4830 (compute_antic): Mark blocks with abnormal preds as visited as
4831 they have a final empty antic-in solution already.
4832
4833 2016-04-25 Michael Collison <michael.collison@linaro.org>
4834
4835 * ChangeLog(2016-04-25): Fix ChangeLog formatting.
4836
4837 2016-04-25 Michael Collison <michael.collison@linaro.org>
4838
4839 * config/arm/neon.md (widen_<us>sum<mode>): New patterns where
4840 mode is VQI to improve mixed mode vectorization.
4841 * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3): New
4842 define_insn to match low half of signed vaddw.
4843 * config/arm/neon.md (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): New
4844 define_insn to match high half of signed vaddw.
4845 * config/arm/neon.md (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): New
4846 define_insn to match low half of unsigned vaddw.
4847 * config/arm/neon.md (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): New
4848 define_insn to match high half of unsigned vaddw.
4849 * config/arm/arm.c (arm_simd_vect_par_cnst_half): New function.
4850 (arm_simd_check_vect_par_cnst_half_p): Likewise.
4851 * config/arm/arm-protos.h (arm_simd_vect_par_cnst_half): Prototype
4852 for new function.
4853 (arm_simd_check_vect_par_cnst_half_p): Likewise.
4854 * config/arm/predicates.md (vect_par_constant_high): Support
4855 big endian and simplify by calling
4856 arm_simd_check_vect_par_cnst_half
4857 (vect_par_constant_low): Likewise.
4858
4859 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
4860
4861 * config/i386/i386.md (*lea<mode>_general_4): Use const_0_to_3_operand
4862 predicate for operand 2.
4863
4864 2016-04-24 Uros Bizjak <ubizjak@gmail.com>
4865 H.J. Lu <hongjiu.lu@intel.com>
4866
4867 * config/i386/i386-protos.h (standard_sse_constant_p): Add
4868 machine_mode argument.
4869 * config/i386/i386.c (standard_sse_constant_p): Return 2 for
4870 constm1_rtx operands. For VOIDmode constants, get mode from
4871 pred_mode. Check mode size if the mode is supported by ABI.
4872 (standard_sse_constant_opcode): Do not use standard_constant_p.
4873 Strictly check ABI support for all-ones operands.
4874 (ix86_legitimate_constant_p): Handle TImode, OImode and XImode
4875 immediates. Update calls to standard_sse_constant_p.
4876 (ix86_expand_vector_move): Update calls to standard_sse_constant_p.
4877 (ix86_rtx_costs): Ditto.
4878 * config/i386/i386.md (*movxi_internal_avx512f): Use
4879 nonimmediate_or_sse_const_operand instead of vector_move_operand.
4880 Use (v,BC) alternative instead of (v,C). Use register_operand
4881 checks instead of MEM_P.
4882 (*movoi_internal_avx): Use nonimmediate_or_sse_const_operand instead
4883 of vector_move_operand. Add (v,BC) alternative and corresponding avx2
4884 isa attribute. Use register_operand checks instead of MEM_P.
4885 (*movti_internal): Use nonimmediate_or_sse_const_operand for
4886 TARGET_SSE. Improve TARGET_SSE insn constraint. Add (v,BC)
4887 alternative and corresponding sse2 isa attribute.
4888 (*movtf_internal, *movdf_internal, *movsf_interal): Update calls
4889 to standard_sse_constant_p.
4890 (FP constant splitters): Ditto.
4891 * config/i386/constraints.md (BC): Do not use standard_sse_constant_p.
4892 (C): Ditto.
4893 * config/i386/predicates.md (constm1_operand): Remove.
4894 (nonimmediate_or_sse_const_operand): Rewrite using RTX.
4895 * config/i386/sse.md (*<avx512>_cvtmask2<ssemodesuffix><mode>): Use
4896 vector_all_ones_operand instead of constm1_operand.
4897
4898 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4899
4900 * print-rtl.c (print_rtx_insn_vec): New function.
4901 * print-rtl.h: New prototype.
4902 * store-motion.c (struct st_expr): Make avail_stores a vector.
4903 (st_expr_entry): Adjust.
4904 (free_st_expr_entry): Likewise.
4905 (print_store_motion_mems): Likewise.
4906 (find_moveable_store): Likewise.
4907 (compute_store_table): Likewise.
4908 (delete_store): Likewise.
4909 (build_store_vectors): Likewise.
4910
4911 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4912
4913 * reorg.c (try_merge_delay_insns): Make merged_insns a vector.
4914
4915 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4916
4917 * vec.h (vec_safe_contains): New function.
4918 (vec::contains): Likewise.
4919 (vec::begin): Likewise.
4920 (vec::end): Likewise.
4921
4922 2016-04-23 Jakub Jelinek <jakub@redhat.com>
4923
4924 PR sanitizer/70712
4925 * cfgexpand.c (expand_stack_vars): Fix typo.
4926
4927 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
4928
4929 * system.h (list, map, set, vector): Include conditionally.
4930 * auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define.
4931 * graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define.
4932 * ipa-icf.c (INCLUDE_LIST): Define.
4933 * config/aarch64/cortex-a57-fma-steering.c (INCLUDE_LIST): Define.
4934 * config/sh/sh.c (INCLUDE_VECTOR): Define.
4935 * config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define.
4936 (INCLUDE_LIST, INCLUDE_VECTOR): Define.
4937 * cp/logic.cc (INCLUDE_LIST): Define.
4938 * fortran/trans-common.c (INCLUDE_MAP): Define.
4939
4940 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
4941
4942 * auto-profile.c: Remove <string.h> include.
4943 * ipa-icf-gimple.c: Remove <list> include.
4944 * diagnostic.c: Remove <new> include.
4945 * genmatch.c: Likewise.
4946 * pretty-print.c: Likewise.
4947 * toplev.c: Likewise
4948 * c/c-objc-common.c: Likewise.
4949 * cp/error.c: Likewise.
4950 * fortran/error.c: Likewise.
4951
4952 2016-04-22 Richard Biener <rguenther@suse.de>
4953
4954 * lto-streamer-in.c (input_ssa_names): Do not allocate
4955 GIMPLE_NOP for all SSA names.
4956 * lto-streamer-out.c (output_ssa_names): Do not output
4957 SSA names that should have been released.
4958
4959 2016-04-22 Richard Biener <rguenther@suse.de>
4960
4961 PR tree-optimization/70740
4962 * tree-ssa-phiprop.c (propagate_with_phi): Handle inserted
4963 VDEF.
4964
4965 2016-04-21 H.J. Lu <hongjiu.lu@intel.com>
4966
4967 PR target/70750
4968 * config/i386/predicates.md (call_insn_operand): Replace
4969 sibcall_memory_operand with memory_operand.
4970
4971 2016-04-21 Patrick Palka <ppalka@gcc.gnu.org>
4972
4973 * tree-vrp.c (register_edge_assert_for_2): Remove redundant
4974 has_single_use() tests.
4975 (register_edge_assert_for_1): Likewise.
4976 (find_assert_locations_1): Check the liveness bitmap instead of
4977 checking has_single_use().
4978
4979 2016-04-21 Kirill Yukhin <kirill.yukhin@intel.com>
4980
4981 PR target/70728
4982 * config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
4983 Extract AVX-512BW constraint from AVX.
4984
4985 2016-04-21 Richard Biener <rguenther@suse.de>
4986
4987 PR tree-optimization/70725
4988 * tree-if-conv.c (if_convertible_phi_p): Adjust guard
4989 for phi_convertible_by_degenerating_args.
4990 (predicate_all_scalar_phis): Handle single-argument PHIs.
4991
4992 2016-04-21 Richard Biener <rguenther@suse.de>
4993
4994 PR middle-end/70747
4995 * fold-const.c (fold_comparison): Return properly typed
4996 constant boolean.
4997
4998 2016-04-21 Bin Cheng <bin.cheng@arm.com>
4999
5000 PR tree-optimization/70715
5001 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
5002 after expanding BASE using expand_simple_operations.
5003
5004 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
5005
5006 * match.pd (min(-x, -y), max(-x, -y), min(~x, ~y), max(~x, ~y)):
5007 New transformations.
5008
5009 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
5010
5011 * match.pd (min(int_max, x), max(int_min, x)): New transformations.
5012
5013 2016-04-20 Jan Hubicka <jh@suse.cz>
5014
5015 * ipa-inline.c (can_inline_edge_p): Pass caller info to
5016 ultiimate_alias_target.
5017 (update_callee_keys): Likewise.
5018 (lookup_recursive_calls): Likewise.
5019 (speculation_useful_p): Likewise.
5020
5021 2016-04-20 Jan Hubicka <jh@suse.cz>
5022
5023 PR ipa/70018
5024 * cgraph.c (cgraph_set_nothrow_flag_1): Rename to ...
5025 (set_nothrow_flag_1): ... this; handle interposition correctly;
5026 recurse on aliases and thunks.
5027 (cgraph_node::set_nothrow_flag): New.
5028 * ipa-pure-const.c (ignore_edge_for_nothrow): Ignore calls to
5029 functions compiled with non-call exceptions that binds to current
5030 def.
5031 (propagate_nothrow): Be safe WRT interposition.
5032 * cgraph.h (set_nothrow_flag): Update prototype.
5033
5034 2016-04-18 Jan Hubicka <jh@suse.cz>
5035
5036 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
5037 max_loop_iterations_int.
5038 (tree_unswitch_outer_loop): Likewise.
5039
5040 2016-04-20 Bin Cheng <bin.cheng@arm.com>
5041
5042 PR tree-optimization/69489
5043 * tree-if-conv.c (phi_convertible_by_degenerating_args): New.
5044 (if_convertible_phi_p): Call phi_convertible_by_degenerating_args.
5045 Revise dump message.
5046 (if_convertible_bb_p): Remove check on edge count of basic block's
5047 predecessors.
5048
5049 2016-04-20 Bin Cheng <bin.cheng@arm.com>
5050
5051 PR tree-optimization/56625
5052 PR tree-optimization/69489
5053 * tree-data-ref.h (DR_INNERMOST): New macro.
5054 * tree-if-conv.c (innermost_loop_behavior_hash): New class for
5055 hashing struct innermost_loop_behavior.
5056 (ref_DR_map): Remove.
5057 (innermost_DR_map): New map.
5058 (baseref_DR_map): Revise comment.
5059 (hash_memrefs_baserefs_and_store_DRs_read_written_info): Store DR
5060 to innermost_DR_map accroding to its innermost loop behavior.
5061 (ifcvt_memrefs_wont_trap): Get DR from innermost_DR_map according
5062 to its innermost loop behavior.
5063 (if_convertible_loop_p_1): Remove intialization for ref_DR_map.
5064 Add initialization for innermost_DR_map. Record memory reference
5065 in DR_BASE_ADDRESS if the reference is compound one or it doesn't
5066 have innermost loop behavior.
5067 (if_convertible_loop_p): Remove release for ref_DR_map. Release
5068 innermost_DR_map.
5069
5070 2016-04-20 Uros Bizjak <ubizjak@gmail.com>
5071
5072 * config/i386/i386.md (*lea<mode>_general_1): Rename from
5073 *lea_general_1. Use explicit SWI12 mode interator.
5074 (*lea<mode>_general_2): Rename from *lea_general_2.
5075 Use explicit SWI12 mode interator.
5076 (*lea<mode>_general_3): Rename from *lea_general_3.
5077 Use explicit SWI12 mode interator.
5078 (*lea<SWI12:mode>_general_4): Split from *lea_general_4.
5079 Use explicit SWI12 mode interator.
5080 (*lea<SWI48:mode>_general_4): Split from *lea_general_4.
5081 Use explicit SWI48 mode interator.
5082
5083 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
5084
5085 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
5086 Short-cut unaligned load and store cases. Handle all integer
5087 vector modes.
5088 (ix86_expand_vector_move_misalign): Short-cut unaligned load
5089 and store cases. Call ix86_avx256_split_vector_move_misalign
5090 directly without checking mode class.
5091
5092 2016-04-20 Andrew Pinski <apinski@cavium.com>
5093 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5094
5095 PR target/64971
5096 * config/aarch64/aarch64.md (sibcall): Force call
5097 address to be DImode for ILP32.
5098 (sibcall_value): Likewise.
5099
5100 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
5101
5102 * doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.
5103
5104 2016-04-20 Richard Biener <rguenther@suse.de>
5105
5106 * gimple-match.h (maybe_build_generic_op): Adjust prototype.
5107 * gimple-match-head.c (maybe_build_generic_op): Pass all ops
5108 by reference, clear op1 and op2 when GENERICizing BIT_FIELD_REF.
5109 (maybe_push_res_to_seq): Adjust.
5110 * gimple-fold.c (maybe_build_generic_op): Likewise.
5111
5112 2016-04-20 Marek Polacek <polacek@redhat.com>
5113
5114 * tree-if-conv.c (is_false_predicate): For NULL_TREE return false
5115 rather than true.
5116
5117 2016-04-20 Ilya Enkovich <ilya.enkovich@intel.com>
5118
5119 * config/i386/sse.md (vec_unpacks_lo_hi): Always
5120 use kmovw to support AVX512F target.
5121
5122 2016-04-20 Bin Cheng <bin.cheng@arm.com>
5123
5124 * tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
5125
5126 2016-04-20 Marek Polacek <polacek@redhat.com>
5127
5128 PR tree-optimization/70725
5129 * tree-if-conv.c (is_false_predicate): New function.
5130 (predicate_mem_writes): Use it.
5131
5132 2016-04-20 Richard Biener <rguenther@suse.de>
5133
5134 PR tree-optimization/70726
5135 * tree-vect-stmts.c (vectorizable_shift): Do not use scalar
5136 shift amounts from a pattern stmt operand.
5137
5138 2016-04-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5139
5140 PR target/70674
5141 * config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new
5142 stack_restore_from_fpr pattern when restoring r15.
5143 (s390_optimize_prologue): Strip away the memory barrier in the
5144 parallel when trying to get rid of restore insns.
5145 * config/s390/s390.md ("stack_restore_from_fpr"): New insn
5146 definition for loading the stack pointer from an FPR. Compared to
5147 the normal move insn this pattern includes a full memory barrier.
5148
5149 2016-04-19 Jakub Jelinek <jakub@redhat.com>
5150
5151 PR middle-end/70680
5152 * gimplify.c (gimplify_omp_for): Call omp_notice_variable for
5153 implicitly linear or lastprivate iterator on the outer context.
5154
5155 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
5156
5157 * config/i386/i386.c (ix86_legitimate_combined_insn): Remove
5158 alignment check.
5159 * config/i386/i386.md (ssememalign): Removed.
5160 * config/i386/sse.md: Remove ssememalign attribute from patterns.
5161
5162 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
5163
5164 PR target/69201
5165 * config/i386/avx512bwintrin.h (_mm512_mask_loadu_epi16): Pass
5166 const short * to __builtin_ia32_loaddquhi512_mask.
5167 (_mm512_maskz_loadu_epi16): Likewise.
5168 (_mm512_mask_storeu_epi16): Pass short * to
5169 __builtin_ia32_storedquhi512_mask.
5170 (_mm512_mask_loadu_epi8): Pass const char * to
5171 __builtin_ia32_loaddquqi512_mask.
5172 (_mm512_maskz_loadu_epi8): Likewise.
5173 (_mm512_mask_storeu_epi8): Pass char * to
5174 __builtin_ia32_storedquqi512_mask.
5175 * config/i386/avx512fintrin.h (_mm512_loadu_pd): Pass
5176 const double * to __builtin_ia32_loadupd512_mask.
5177 (_mm512_mask_loadu_pd): Likewise.
5178 (_mm512_maskz_loadu_pd): Likewise.
5179 (_mm512_storeu_pd): Pass double * to
5180 __builtin_ia32_storeupd512_mask.
5181 (_mm512_mask_storeu_pd): Likewise.
5182 (_mm512_loadu_ps): Pass const float * to
5183 __builtin_ia32_loadups512_mask.
5184 (_mm512_mask_loadu_ps): Likewise.
5185 (_mm512_maskz_loadu_ps): Likewise.
5186 (_mm512_storeu_ps): Pass float * to
5187 __builtin_ia32_storeups512_mask.
5188 (_mm512_mask_storeu_ps): Likewise.
5189 (_mm512_mask_loadu_epi64): Pass const long long * to
5190 __builtin_ia32_loaddqudi512_mask.
5191 (_mm512_maskz_loadu_epi64): Likewise.
5192 (_mm512_mask_storeu_epi64): Pass long long *
5193 to __builtin_ia32_storedqudi512_mask.
5194 (_mm512_loadu_si512): Pass const int * to
5195 __builtin_ia32_loaddqusi512_mask.
5196 (_mm512_mask_loadu_epi32): Likewise.
5197 (_mm512_maskz_loadu_epi32): Likewise.
5198 (_mm512_storeu_si512): Pass int * to
5199 __builtin_ia32_storedqusi512_mask.
5200 (_mm512_mask_storeu_epi32): Likewise.
5201 * config/i386/avx512vlbwintrin.h (_mm256_mask_storeu_epi8): Pass
5202 char * to __builtin_ia32_storedquqi256_mask.
5203 (_mm_mask_storeu_epi8): Likewise.
5204 (_mm256_mask_loadu_epi16): Pass const short * to
5205 __builtin_ia32_loaddquhi256_mask.
5206 (_mm256_maskz_loadu_epi16): Likewise.
5207 (_mm_mask_loadu_epi16): Pass const short * to
5208 __builtin_ia32_loaddquhi128_mask.
5209 (_mm_maskz_loadu_epi16): Likewise.
5210 (_mm256_mask_loadu_epi8): Pass const char * to
5211 __builtin_ia32_loaddquqi256_mask.
5212 (_mm256_maskz_loadu_epi8): Likewise.
5213 (_mm_mask_loadu_epi8): Pass const char * to
5214 __builtin_ia32_loaddquqi128_mask.
5215 (_mm_maskz_loadu_epi8): Likewise.
5216 (_mm256_mask_storeu_epi16): Pass short * to.
5217 __builtin_ia32_storedquhi256_mask.
5218 (_mm_mask_storeu_epi16): Pass short * to.
5219 __builtin_ia32_storedquhi128_mask.
5220 * config/i386/avx512vlintrin.h (_mm256_mask_loadu_pd): Pass
5221 const double * to __builtin_ia32_loadupd256_mask.
5222 (_mm256_maskz_loadu_pd): Likewise.
5223 (_mm_mask_loadu_pd): Pass onst double * to
5224 __builtin_ia32_loadupd128_mask.
5225 (_mm_maskz_loadu_pd): Likewise.
5226 (_mm256_mask_storeu_pd): Pass double * to
5227 __builtin_ia32_storeupd256_mask.
5228 (_mm_mask_storeu_pd): Pass double * to
5229 __builtin_ia32_storeupd128_mask.
5230 (_mm256_mask_loadu_ps): Pass const float * to
5231 __builtin_ia32_loadups256_mask.
5232 (_mm256_maskz_loadu_ps): Likewise.
5233 (_mm_mask_loadu_ps): Pass const float * to
5234 __builtin_ia32_loadups128_mask.
5235 (_mm_maskz_loadu_ps): Likewise.
5236 (_mm256_mask_storeu_ps): Pass float * to
5237 __builtin_ia32_storeups256_mask.
5238 (_mm_mask_storeu_ps): ass float * to
5239 __builtin_ia32_storeups128_mask.
5240 (_mm256_mask_loadu_epi64): Pass const long long * to
5241 __builtin_ia32_loaddqudi256_mask.
5242 (_mm256_maskz_loadu_epi64): Likewise.
5243 (_mm_mask_loadu_epi64): Pass const long long * to
5244 __builtin_ia32_loaddqudi128_mask.
5245 (_mm_maskz_loadu_epi64): Likewise.
5246 (_mm256_mask_storeu_epi64): Pass long long * to
5247 __builtin_ia32_storedqudi256_mask.
5248 (_mm_mask_storeu_epi64): Pass long long * to
5249 __builtin_ia32_storedqudi128_mask.
5250 (_mm256_mask_loadu_epi32): Pass const int * to
5251 __builtin_ia32_loaddqusi256_mask.
5252 (_mm256_maskz_loadu_epi32): Likewise.
5253 (_mm_mask_loadu_epi32): Pass const int * to
5254 __builtin_ia32_loaddqusi128_mask.
5255 (_mm_maskz_loadu_epi32): Likewise.
5256 (_mm256_mask_storeu_epi32): Pass int * to
5257 __builtin_ia32_storedqusi256_mask.
5258 (_mm_mask_storeu_epi32): Pass int * to
5259 __builtin_ia32_storedqusi128_mask.
5260 * config/i386/i386-builtin-types.def (PCSHORT): New.
5261 (PINT64): Likewise.
5262 (V64QI_FTYPE_PCCHAR_V64QI_UDI): Likewise.
5263 (V32HI_FTYPE_PCSHORT_V32HI_USI): Likewise.
5264 (V32QI_FTYPE_PCCHAR_V32QI_USI): Likewise.
5265 (V16SF_FTYPE_PCFLOAT_V16SF_UHI): Likewise.
5266 (V8DF_FTYPE_PCDOUBLE_V8DF_UQI): Likewise.
5267 (V16SI_FTYPE_PCINT_V16SI_UHI): Likewise.
5268 (V16HI_FTYPE_PCSHORT_V16HI_UHI): Likewise.
5269 (V16QI_FTYPE_PCCHAR_V16QI_UHI): Likewise.
5270 (V8SF_FTYPE_PCFLOAT_V8SF_UQI): Likewise.
5271 (V8DI_FTYPE_PCINT64_V8DI_UQI): Likewise.
5272 (V8SI_FTYPE_PCINT_V8SI_UQI): Likewise.
5273 (V8HI_FTYPE_PCSHORT_V8HI_UQI): Likewise.
5274 (V4DF_FTYPE_PCDOUBLE_V4DF_UQI): Likewise.
5275 (V4SF_FTYPE_PCFLOAT_V4SF_UQI): Likewise.
5276 (V4DI_FTYPE_PCINT64_V4DI_UQI): Likewise.
5277 (V4SI_FTYPE_PCINT_V4SI_UQI): Likewise.
5278 (V2DF_FTYPE_PCDOUBLE_V2DF_UQI): Likewise.
5279 (V2DI_FTYPE_PCINT64_V2DI_UQI): Likewise.
5280 (VOID_FTYPE_PDOUBLE_V8DF_UQI): Likewise.
5281 (VOID_FTYPE_PDOUBLE_V4DF_UQI): Likewise.
5282 (VOID_FTYPE_PDOUBLE_V2DF_UQI): Likewise.
5283 (VOID_FTYPE_PFLOAT_V16SF_UHI): Likewise.
5284 (VOID_FTYPE_PFLOAT_V8SF_UQI): Likewise.
5285 (VOID_FTYPE_PFLOAT_V4SF_UQI): Likewise.
5286 (VOID_FTYPE_PINT64_V8DI_UQI): Likewise.
5287 (VOID_FTYPE_PINT64_V4DI_UQI): Likewise.
5288 (VOID_FTYPE_PINT64_V2DI_UQI): Likewise.
5289 (VOID_FTYPE_PINT_V16SI_UHI): Likewise.
5290 (VOID_FTYPE_PINT_V8SI_UHI): Likewise.
5291 (VOID_FTYPE_PINT_V4SI_UHI): Likewise.
5292 (VOID_FTYPE_PSHORT_V32HI_USI): Likewise.
5293 (VOID_FTYPE_PSHORT_V16HI_UHI): Likewise.
5294 (VOID_FTYPE_PSHORT_V8HI_UQI): Likewise.
5295 (VOID_FTYPE_PCHAR_V64QI_UDI): Likewise.
5296 (VOID_FTYPE_PCHAR_V32QI_USI): Likewise.
5297 (VOID_FTYPE_PCHAR_V16QI_UHI): Likewise.
5298 (V64QI_FTYPE_PCV64QI_V64QI_UDI): Removed.
5299 (V32HI_FTYPE_PCV32HI_V32HI_USI): Likewise.
5300 (V32QI_FTYPE_PCV32QI_V32QI_USI): Likewise.
5301 (V16HI_FTYPE_PCV16HI_V16HI_UHI): Likewise.
5302 (V16QI_FTYPE_PCV16QI_V16QI_UHI): Likewise.
5303 (V8HI_FTYPE_PCV8HI_V8HI_UQI): Likewise.
5304 (VOID_FTYPE_PV32HI_V32HI_USI): Likewise.
5305 (VOID_FTYPE_PV16HI_V16HI_UHI): Likewise.
5306 (VOID_FTYPE_PV8HI_V8HI_UQI): Likewise.
5307 (VOID_FTYPE_PV64QI_V64QI_UDI): Likewise.
5308 (VOID_FTYPE_PV32QI_V32QI_USI): Likewise.
5309 (VOID_FTYPE_PV16QI_V16QI_UHI): Likewise.
5310 * config/i386/i386.c (ix86_emit_save_reg_using_mov): Don't
5311 use UNSPEC_STOREU.
5312 (ix86_emit_restore_sse_regs_using_mov): Don't use UNSPEC_LOADU.
5313 (ix86_avx256_split_vector_move_misalign): Don't use unaligned
5314 load nor store.
5315 (ix86_expand_vector_move_misalign): Likewise.
5316 (bdesc_special_args): Use CODE_FOR_movvNXY_internal and pointer
5317 to scalar function prototype for unaligned load/store builtins.
5318 (ix86_expand_special_args_builtin): Updated.
5319 * config/i386/sse.md (UNSPEC_LOADU): Removed.
5320 (UNSPEC_STOREU): Likewise.
5321 (VI_ULOADSTORE_BW_AVX512VL): Likewise.
5322 (VI_ULOADSTORE_F_AVX512VL): Likewise.
5323 (ssescalarsize): Handle V4TI, V2TI and V1TI.
5324 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
5325 (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
5326 (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Likewise.
5327 (<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask): Likewise.
5328 (<sse2_avx_avx512f>_loaddqu<mode><mask_name>): Likewise.
5329 (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"): Likewise.
5330 (sse2_avx_avx512f>_storedqu<mode>): Likewise.
5331 (<avx512>_storedqu<mode>_mask): Likewise.
5332 (*sse4_2_pcmpestr_unaligned): Likewise.
5333 (*sse4_2_pcmpistr_unaligned): Likewise.
5334 (*mov<mode>_internal): Renamed to ...
5335 (mov<mode>_internal): This. Remove check of AVX and IAMCU on
5336 misaligned operand. Replace vmovdqu64 with vmovdqu<ssescalarsize>.
5337 (movsd/movhpd to movupd peephole): Don't use UNSPEC_LOADU.
5338 (movlpd/movhpd to movupd peephole): Don't use UNSPEC_STOREU.
5339
5340 2016-04-19 Richard Biener <rguenther@suse.de>
5341
5342 PR tree-optimization/70171
5343 * tree-ssa-phiprop.c: Include stor-layout.h.
5344 (phiprop_insert_phi): Handle the aggregate copy case.
5345 (propagate_with_phi): Likewise.
5346
5347 2016-04-19 Uros Bizjak <ubizjak@gmail.com>
5348
5349 * config/i386/i386.c (ix86_decompose_address): Use lowpart_subreg
5350 instead of simplify_gen_subreg (... , 0).
5351 (ix86_delegitimize_address): Ditto.
5352 (ix86_split_divmod): Ditto.
5353 (ix86_split_copysign_const): Ditto.
5354 (ix86_split_copysign_var): Ditto.
5355 (ix86_expand_args_builtin): Ditto.
5356 (ix86_expand_round_builtin): Ditto.
5357 (ix86_expand_special_args_builtin): Ditto.
5358 * config/i386/i386.md (TARGET_USE_VECTOR_FP_CONVERTS splitters): Ditto.
5359 (TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters and peephole2s): Ditto.
5360 (udivmodqi4): Ditto.
5361 (absneg splitters): Ditto.
5362 (*jcc_bt<mode>_1): Ditto.
5363
5364 2016-04-19 Richard Biener <rguenther@suse.de>
5365
5366 PR tree-optimization/70724
5367 * tree-ssa-sccvn.c (scc_vn_restore_ssa_info): Split SSA info
5368 restoring out from ...
5369 (free_scc_vn): ... here.
5370 * tree-ssa-sccvn.h (scc_vn_restore_ssa_info): Declare.
5371 * tres-ssa-pre.c (pass_pre::execute): Restore SSA info before
5372 tail merging.
5373 (pass_fre::execute): Restore SSA info.
5374
5375 2016-04-19 Richard Biener <rguenther@suse.de>
5376
5377 * gimple-walk.h (struct walk_stmt_info): Add stmt member.
5378 * gimple-walk.c (walk_gimple_op): Initialize it.
5379 (walk_gimple_asm): Set wi->is_lhs before each callback invocation.
5380 * tree-inline.c (remap_gimple_op_r): Set SSA_NAME_DEF_STMT when
5381 remapping SSA names of defs.
5382 (copy_bb): Remove walk over all SSA defs and SSA_NAME_DEF_STMT
5383 adjustment.
5384
5385 2016-04-18 Vladimir Makarov <vmakarov@redhat.com>
5386
5387 PR middle-end/70689
5388 * lra-constraints.c (equiv_substition_p): New.
5389 (process_alt_operands): Use it.
5390 (swap_operands): Swap it.
5391 (curr_insn_transform): Update it.
5392
5393 2016-04-18 Michael Matz <matz@suse.de>
5394
5395 * tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount.
5396 (SET_TYPE_ALIGN, SET_DECL_ALIGN): New.
5397 * tree-core.h (tree_type_common.align): Use bit-field.
5398 (tree_type_common.spare): New.
5399 (tree_decl_common.off_align): Make smaller.
5400 (tree_decl_common.align): Use bit-field.
5401
5402 * expr.c (expand_expr_addr_expr_1): Use SET_TYPE_ALIGN.
5403 * omp-low.c (install_var_field): Use SET_DECL_ALIGN.
5404 (scan_sharing_clauses): Ditto.
5405 (finish_taskreg_scan): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
5406 (omp_finish_file): Ditto.
5407 * stor-layout.c (do_type_align): Use SET_DECL_ALIGN.
5408 (layout_decl): Ditto.
5409 (relayout_decl): Ditto.
5410 (finalize_record_size): Use SET_TYPE_ALIGN.
5411 (finalize_type_size): Ditto.
5412 (finish_builtin_struct): Ditto.
5413 (layout_type): Ditto.
5414 (initialize_sizetypes): Ditto.
5415 * targhooks.c (std_gimplify_va_arg_expr): Use SET_TYPE_ALIGN.
5416 * tree-nested.c (insert_field_into_struct): Use SET_TYPE_ALIGN.
5417 (lookup_field_for_decl): Use SET_DECL_ALIGN.
5418 (get_chain_field): Ditto.
5419 (get_trampoline_type): Ditto.
5420 (get_nl_goto_field): Ditto.
5421 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
5422 SET_DECL_ALIGN.
5423 (unpack_ts_type_common_value_fields): Use SET_TYPE_ALIGN.
5424 * gimple-expr.c (copy_var_decl): Use SET_DECL_ALIGN.
5425 * tree.c (make_node_stat): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
5426 (build_qualified_type): Use SET_TYPE_ALIGN.
5427 (build_aligned_type, build_range_type_1): Ditto.
5428 (build_atomic_base): Ditto.
5429 (build_common_tree_nodes): Ditto.
5430 * cfgexpand.c (align_local_variable): Use SET_DECL_ALIGN.
5431 (expand_one_stack_var_at): Ditto.
5432 * coverage.c (build_var): Use SET_DECL_ALIGN.
5433 * except.c (init_eh): Ditto.
5434 * function.c (assign_parm_setup_block): Ditto.
5435 * symtab.c (increase_alignment_1): Ditto.
5436 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Ditto.
5437 * tree-vect-stmts.c (ensure_base_align): Ditto.
5438 * varasm.c (align_variable): Ditto.
5439 (assemble_variable): Ditto.
5440 (build_constant_desc): Ditto.
5441 (output_constant_def_contents): Ditto.
5442
5443 * config/arm/arm.c (arm_relayout_function): Use SET_DECL_ALIGN.
5444 * config/avr/avr.c (avr_adjust_type_node): Use SET_TYPE_ALIGN.
5445 * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Ditto.
5446 * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Ditto.
5447 * config/spu/spu.c (spu_build_builtin_va_list): Use SET_DECL_ALIGN.
5448
5449 2016-04-18 H.J. Lu <hongjiu.lu@intel.com>
5450
5451 PR target/70708
5452 * config/i386/sse.md (sse2_loadlpd): Accept load from "xm" and
5453 replace %vmovsd with "%vmovq".
5454 (vec_concatv2df): Likewise.
5455
5456 2016-04-18 Uros Bizjak <ubizjak@gmail.com>
5457
5458 * config/i386/mmx.md (*vec_extractv2sf_0): Use gen_lowpart.
5459 (*vec_extractv2si_0): Ditto.
5460 * config/i386/sse.md (*vec_extractv4sf_0): Ditto.
5461 (zero_extended_scalar_load_operand splitters): Ditto.
5462 (vec_extract splitters): Ditto.
5463 (*vec_extractv4si_0_zext): Ditto.
5464 (avx_<castmode><avxsizesuffix>_<castmode>): Use gen_lowpart
5465 and lowpart_subreg.
5466 (avx512f_<castmode><avxsizesuffix>_<castmode>): Ditto.
5467 (avx512f_<castmode><avxsizesuffix>_256<castmode>): Ditto.
5468 (*sse4_1_extractps): Use lowpart_subreg.
5469 * config/i386/i386.md (x87 floatsplitter): Use gen_lowpart.
5470
5471 2016-04-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5472
5473 * doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
5474 gld requirements.
5475 (Specific, *-*-solaris2*): Update Solaris 11 bundled gcc versions.
5476 Mention Solaris 11 packaging changes.
5477 Update gas and gld requirements.
5478 Remove reference to pre-Solaris 10 bug.
5479 (Specific, sparc-sun-solaris2*): Remove reference to pre-Solaris 10
5480 systems and bugs.
5481 (Specific, sparc64-*-solaris2*): Remove reference to bootstrap
5482 with cc.
5483
5484 2016-04-17 Jan Hubicka <jh@suse.cz>
5485
5486 * tree-ssa-loop-ivopts.c (avg_loop_niter): Use also
5487 max_loop_iterations_int.
5488
5489 2016-04-18 Richard Biener <rguenther@suse.de>
5490
5491 PR tree-optimization/43434
5492 * tree-ssa-structalias.c (struct vls_data): New.
5493 (visit_loadstore): Handle all pointer-based accesses.
5494 (compute_dependence_clique): Compute a bitmap of restrict tags
5495 assigned bases and pass it to visit_loadstore.
5496
5497 2016-04-18 Matthew Wahab <matthew.wahab@arm.com>
5498
5499 PR target/70711
5500 * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc,
5501 armv8.1-a and armv8.1-a+crc.
5502
5503 2016-04-18 Richard Biener <rguenther@suse.de>
5504
5505 PR tree-optimization/70701
5506 * tree-ssa-sccvn.c (vn_reference_lookup_3): Resolve fully constant
5507 references after translating through a memcpy.
5508
5509 2016-04-18 Richard Biener <rguenther@suse.de>
5510
5511 * tree-ssa-pre.c (postorder, postorder_num): Make locals ...
5512 (compute_antic): ... here. For partial antic use regular
5513 postorder and scrap iteration.
5514 (compute_partial_antic_aux): Remove unused return value.
5515 (init_pre): Do not allocate postorder.
5516 (fini_pre): Do not free postorder.
5517
5518 2016-04-18 Richard Biener <rguenther@suse.de>
5519
5520 PR middle-end/37870
5521 * expmed.c (extract_bit_field_1): Remove broken case
5522 using a wider MODE_INT mode.
5523
5524 2016-04-18 Segher Boessenkool <segher@kernel.crashing.org>
5525
5526 * has-brig.c (lendian16): Don't try to use __builtin_bswap16
5527 unless compiling with at least GCC-4.8.
5528
5529 2016-04-17 Jan Hubicka <jh@suse.cz>
5530
5531 PR bootstrap/70706
5532 * graphite.c (graphite_finalize): Update call to
5533 tree_estimate_probability.
5534 * predict.h (tree_estimate_probability): Update prototype.
5535
5536 2016-04-17 Jan Hubicka <jh@suse.cz>
5537
5538 * predict.c (combine_predictions_for_bb): Add dry_run parmaeter.
5539 (tree_estimate_probability): Likewise.
5540 (pass_profile::execute): Update.
5541 (report_predictor_hitrates): New function.
5542 * profile.c (compute_branch_probabilities): Use it.
5543 * predict.h (report_predictor_hitrates): Declare.
5544
5545 2016-04-17 Jan Hubicka <jh@suse.cz>
5546
5547 PR ipa/70018
5548 * cgraph.h (cgraph_node::set_const_flag,
5549 cgraph_node::set_pure_flag): Update prototype to return bool;
5550 update comment.
5551 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Thunks
5552 of interposable symbol are interposable, too.
5553 (cgraph_set_const_flag_1): Rename to ...
5554 (set_const_flag_1): ... this one; change to self recursive function
5555 instead of call_for_symbol_thunks_and_aliases. Handle correctly
5556 clearnig the flag in all variants and also virtual thunks of const
5557 functions are pure; track if any change was done.
5558 (cgraph_node::set_const_flag): Update.
5559 (struct set_pure_flag_info): New struct.
5560 (cgraph_set_pure_flag_1): Rename to ...
5561 (set_pure_flag_1): ... this one; take set_pure_flag_info parameter
5562 rather than pointer encoded flags; track if any changes was done;
5563 handle correctly clearning flag and setting flag of aliases already
5564 declared const.
5565 (cgraph_node::set_pure_flag): Update.
5566 (cgraph_node::set_nothrow_flag): Handle correctly clearning the flag.
5567
5568 2016-04-17 Tom de Vries <tom@codesourcery.com>
5569
5570 PR other/70433
5571 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Escape
5572 backslash in label.
5573
5574 2016-04-17 Tom de Vries <tom@codesourcery.com>
5575
5576 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Classify chars
5577 '{}<> ' as escape-for-record.
5578
5579 2016-04-17 Tom de Vries <tom@codesourcery.com>
5580
5581 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Simplify loop
5582 structure.
5583
5584 2016-04-17 Tom de Vries <tom@codesourcery.com>
5585
5586 PR other/70185
5587 * tree-pass.h (class opt_pass): Remove graph_dump_initialized member.
5588 * dumpfile.h (struct dump_file_info): Add graph_dump_initialized field.
5589 * dumpfile.c (dump_files): Initialize graph_dump_initialized field.
5590 * passes.c (finish_optimization_passes): Only call
5591 finish_graph_dump_file if dfi->graph_dump_initialized.
5592 (execute_function_dump, pass_init_dump_file): Use
5593 dfi->graph_dump_initialized instead of pass->graph_dump_initialized.
5594
5595 2016-04-17 Tom de Vries <tom@codesourcery.com>
5596
5597 PR tree-optimization/70256
5598 * tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap)
5599 (debug_varmap): New function.
5600
5601 2016-04-17 Tom de Vries <tom@codesourcery.com>
5602
5603 PR other/70183
5604 * passes.c (pass_manager::register_pass): Propagate pflags.
5605
5606 2016-04-17 Tom de Vries <tom@codesourcery.com>
5607
5608 PR other/68875
5609 * pass_manager.h (TERMINATE_PASS_LIST): Add pass argument.
5610 * passes.c (pass_manager::pass_manager): Declare and init p_start in
5611 INSERT_PASSES_AFTER. Add pass parameter to TERMINATE_PASS_LIST, and
5612 check if it's equal to p_start.
5613 * passes.def: Add arguments to TERMINATE_PASS_LISTs.
5614
5615 2016-04-15 Jan Hubicka <jh@suse.cz>
5616
5617 PR ipa/70018
5618 * cgraph.c (cgraph_set_const_flag_1): Only set as pure if
5619 function does not bind to current def.
5620 * ipa-pure-const.c (worse_state): Add FROM and TO parameters;
5621 handle conservatively calls to functions that does not need to bind
5622 to current def.
5623 (check_call): Update call of worse_state.
5624 (ignore_edge_for_nothrow): Update.
5625 (ignore_edge_for_pure_const): Likewise.
5626 (propagate_pure_const): Update calls to worse_state.
5627 (skip_function_for_local_pure_const): Reformat comments.
5628
5629 2016-04-15 Jan Hubicka <jh@suse.cz>
5630
5631 PR ipa/70018
5632 * cgraph.c (cgraph_node::get_availability): Add REF parameter.
5633 (cgraph_node::function_symbol): Likewise.
5634 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
5635 * cgraph.h (symtab_node::get_availabbility): Add REF parameter.
5636 (symtab_node::ultimate_alias_target): Add REF parameter.
5637 (symtab_node::binds_to_current_def_p): Declare.
5638 (symtab_node;:ultimate_alias_target_1): Add REF parameter.
5639 (cgraph_node::function_symbol): Likewise.
5640 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
5641 (cgraph_node::get_availability): Likewise.
5642 (cgraph_edge::binds_to_current_def_p): New inline function.
5643 (varpool_node::get_availability): Add REF parameter.
5644 (varpool_node::ultimate_alias_target): Likewise.
5645 * symtab.c (symtab_node::ultimate_alias_target_1): Likewise.
5646 (symtab_node::binds_to_current_def_p): Likewise.
5647 * varpool.c (varpool_node::get_availability): Likewise.
5648
5649 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
5650
5651 PR target/70662
5652 * config/i386/sse.md(define_insn "<avx512>_vec_dup<mode><mask_name>"):
5653 Fix mode size check.
5654
5655 2016-04-15 Jakub Jelinek <jakub@redhat.com>
5656
5657 * BASE-VER: Set to 7.0.0.
5658
5659 2016-04-15 Alexander Monakov <amonakov@ispras.ru>
5660
5661 * config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.
5662
5663 2016-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5664
5665 * doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T
5666 architecture revisions.
5667
5668 2016-04-15 Bernd Schmidt <bschmidt@redhat.com>
5669
5670 * config/i386/i386-protos.h (ix86_using_red_zone): Declare.
5671 * config/i386/i386.c (ix86_using_red_zone): No longer static.
5672 * config/i386/i386.md (stack decrement to push peepholes): Guard
5673 with !x86_using_red_zone ().
5674
5675 2016-04-15 Jakub Jelinek <jakub@redhat.com>
5676
5677 PR c++/70675
5678 * tree-pretty-print.c (do_niy): Add FLAGS argument, pass it down
5679 to dump_generic_node.
5680 (NIY): Pass also flags to do_niy.
5681
5682 2016-04-15 Thomas Schwinge <thomas@codesourcery.com>
5683
5684 * omp-low.c (simd_clone_struct_alloc, simd_clone_struct_copy)
5685 (simd_clone_vector_of_formal_parm_types)
5686 (simd_clone_clauses_extract, simd_clone_compute_base_data_type)
5687 (simd_clone_mangle, simd_clone_create)
5688 (simd_clone_adjust_return_type, create_tmp_simd_array)
5689 (simd_clone_adjust_argument_types, simd_clone_init_simd_arrays)
5690 (struct modify_stmt_info, ipa_simd_modify_stmt_ops)
5691 (ipa_simd_modify_function_body, simd_clone_linear_addend)
5692 (simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone)
5693 (pass_data_omp_simd_clone, class pass_omp_simd_clone)
5694 (pass_omp_simd_clone::gate, make_pass_omp_simd_clone): Move into...
5695 * omp-simd-clone.c: ... this new file.
5696 (simd_clone_vector_of_formal_parm_types): Make it static.
5697 * Makefile.in (OBJS): Add omp-simd-clone.o.
5698
5699 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
5700
5701 PR target/70662
5702 * config/i386/sse.md: Use proper memory operand modifiers.
5703
5704
5705 2016-04-15 Richard Biener <rguenther@suse.de>
5706 Alan Modra <amodra@gmail.com>
5707
5708 PR tree-optimization/70130
5709 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Detect
5710 when alignment stays not the same and no not use the realign
5711 scheme then.
5712
5713 2016-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
5714
5715 PR target/70669
5716 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
5717 direct move handlers for KFmode. Change TFmode handlers test from
5718 FLOAT128_IEEE_P to FLOAT128_VECTOR_P.
5719
5720 2016-04-14 Jakub Jelinek <jakub@redhat.com>
5721
5722 PR c++/70594
5723 * ipa-utils.h (polymorphic_ctor_dtor_p): New prototype.
5724 * ipa-polymorphic-call.c (polymorphic_ctor_dtor_p): New function.
5725 (inlined_polymorphic_ctor_dtor_block_p): Use it.
5726 * tree-ssa-live.c (remove_unused_scope_block_p): When
5727 in_ctor_dtor_block, avoid discarding not just BLOCKs with
5728 BLOCK_ABSTRACT_ORIGIN being FUNCTION_DECL, but even when
5729 block_ultimate_origin is FUNCTION_DECL.
5730 (remove_unused_locals): If current_function_decl is
5731 polymorphic_ctor_dtor_p, pass initial true to
5732 remove_unused_scope_block_p' is_ctor_dtor_block.
5733
5734 2016-04-14 Martin Sebor <msebor@redhat.com>
5735
5736 PR c++/69517
5737 PR c++/70019
5738 PR c++/70588
5739 * doc/extend.texi (Variable Length): Revert.
5740
5741 2016-04-14 Marek Polacek <polacek@redhat.com>
5742 Jan Hubicka <hubicka@ucw.cz>
5743
5744 PR c++/70029
5745 * tree.c (verify_type): Disable the canonical type of main variant
5746 check.
5747
5748 2016-04-14 Jason Merrill <jason@redhat.com>
5749
5750 * cfgexpand.c, expr.c: Revert previous change.
5751
5752 2016-04-14 Cesar Philippidis <cesar@codesourcery.com>
5753
5754 PR middle-end/70643
5755 * omp-low.c (lower_oacc_reductions): Check for TREE_CONSTANT
5756 when building a mem ref for the incoming reduction variable.
5757
5758 2016-04-14 Richard Biener <rguenther@suse.de>
5759
5760 PR tree-optimization/70614
5761 * tree-scalar-evolution.c (analyze_evolution_in_loop): Terminate
5762 loop if the evolution dropped to chrec_dont_know.
5763 (interpret_condition_phi): Likewise.
5764
5765 2016-04-14 Richard Biener <rguenther@suse.de>
5766
5767 PR tree-optimization/70623
5768 * tree-ssa-pre.c (changed_blocks): Make global ...
5769 (compute_antic): ... local here. Move and fix worklist
5770 handling here. Do not clear EDGE_DFS_BACK or call mark_dfs_back_edges.
5771 (compute_antic_aux): Add dumping for MAX assumed succs. Remove
5772 worklist handling, dump when ANTIC_IN changed.
5773 (compute_partial_antic_aux): Remove worklist handling.
5774 (init_pre): Do not compute post dominators. Add a comment about
5775 the CFG order chosen.
5776 (fini_pre): Do not free post dominators.
5777
5778 2016-04-13 Martin Sebor <msebor@redhat.com>
5779
5780 PR c++/69517
5781 PR c++/70019
5782 PR c++/70588
5783 * doc/extend.texi (Variable Length): Document C++ specifics.
5784
5785 2016-04-13 Jakub Jelinek <jakub@redhat.com>
5786
5787 PR c++/70641
5788 * ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt
5789 on all recursive call stmts. Return TODO_cleanup_cfg if any dead
5790 eh edges have been purged.
5791
5792 PR c++/70594
5793 * tree-sra.c (create_access_replacement,
5794 get_replaced_param_substitute): Set DECL_NAMELESS on repl if it
5795 gets fancy name.
5796 * tree-pretty-print.c (dump_fancy_name): New function.
5797 (dump_decl_name, dump_generic_node): Use it.
5798
5799 2016-04-13 Jason Merrill <jason@redhat.com>
5800
5801 * cfgexpand.c (pass_expand::execute): Handle attribute "abi warning".
5802 * expr.c (expand_expr_real_1): Likewise.
5803
5804 2016-04-13 Ilya Enkovich <ilya.enkovich@intel.com>
5805
5806 * config/i386/i386.md (kunpckhi): Swap operands.
5807 (kunpcksi): Likewise.
5808 (kunpckdi): Likewise.
5809 * config/i386/sse.md (vec_pack_trunc_qi): Likewise.
5810 (vec_pack_trunc_<mode>): Likewise.
5811
5812 2016-04-13 Jakub Jelinek <jakub@redhat.com>
5813
5814 PR debug/70628
5815 * explow.c (convert_memory_address_addr_space_1): Formatting fix.
5816
5817 PR middle-end/70633
5818 * gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
5819 gimplification turns some element into non-constant.
5820
5821 PR debug/70628
5822 * rtl.h (convert_memory_address_addr_space_1): New prototype.
5823 * explow.c (convert_memory_address_addr_space_1): No longer static,
5824 add NO_EMIT argument and don't call convert_modes if true, pass
5825 it down recursively, remove break after return.
5826 (convert_memory_address_addr_space): Adjust caller.
5827 * simplify-rtx.c (simplify_unary_operation_1): Call
5828 convert_memory_address_addr_space_1 instead of convert_memory_address,
5829 if it returns NULL, don't simplify.
5830
5831 2016-04-12 Eric Botcazou <ebotcazou@adacore.com>
5832
5833 PR target/70630
5834 * config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.
5835
5836 2016-04-12 Jakub Jelinek <jakub@redhat.com>
5837
5838 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
5839 Bump the upper SIMDLEN limits, so that if the return type or
5840 characteristic type if the return type is void can be passed in
5841 all available SSE2/AVX/AVX2/AVX512-F registers, the SIMDLEN is
5842 allowed.
5843
5844 2016-04-12 Michael Meissner <meissner@linux.vnet.ibm.com>
5845
5846 PR target/70640
5847 * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2_internal):
5848 Do not use "=" constraint on an input constraint.
5849 (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
5850 (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
5851 (ieee_128bit_vsx_nabs<mode>2): Correct splitter so that it
5852 generates (neg (abs ...)) instead of (abs ...).
5853
5854 2016-04-12 Jakub Jelinek <jakub@redhat.com>
5855
5856 PR rtl-optimization/70596
5857 * lra-spills.c (spill_pseudos): Don't delete debug insns, instead
5858 just invalidate LRA data and reset them. Adjust dump wording.
5859
5860 2016-04-12 Martin Liska <mliska@suse.cz>
5861
5862 Revert
5863 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
5864
5865 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
5866 estimates here.
5867 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
5868 max_loop_iterations_int.
5869 (tree_unswitch_outer_loop): Likewise.
5870 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
5871 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
5872
5873 2016-04-12 Tom de Vries <tom@codesourcery.com>
5874
5875 PR tree-optimization/68756
5876 * graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr
5877 instead of new_name.
5878
5879 2016-04-12 Jakub Jelinek <jakub@redhat.com>
5880
5881 PR tree-optimization/70602
5882 * tree-sra.c (generate_subtree_copies): Don't write anything into
5883 constant pool decls.
5884
5885 * omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
5886 regardless whether there are depend clauses or not.
5887
5888 2016-04-11 Michael Meissner <meissner@linux.vnet.ibm.com>
5889
5890 PR target/70381
5891 * config/rs6000/rs6000.c (rs6000_opt_masks): Disable using the
5892 target attribute and pragma from changing the -mfloat128
5893 and -mfloat128-hardware options.
5894
5895 * doc/extend.texi (Additional Floating Types): Document PowerPC
5896 __float128 restrictions.
5897
5898 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
5899
5900 PR target/70133
5901 * config/aarch64/driver-aarch64.c
5902 (aarch64_get_extension_string_for_isa_flags): New.
5903 (arch_extension): Rename to...
5904 (aarch64_arch_extension): ...This.
5905 (ext_to_feat_string): Rename to...
5906 (aarch64_extensions): ...This.
5907 (aarch64_core_data): Keep track of architecture extension flags.
5908 (cpu_data): Rename to...
5909 (aarch64_cpu_data): ...This.
5910 (aarch64_arch_driver_info): Keep track of architecture extension
5911 flags.
5912 (get_arch_name_from_id): Rename to...
5913 (get_arch_from_id): ...This, change return type.
5914 (host_detect_local_cpu): Update and reformat for renames, handle
5915 extensions through common infrastructure.
5916
5917 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
5918
5919 PR target/70133
5920 * config/aarch64/aarch64-common.c (aarch64_option_extension): Keep
5921 track of a canonical flag name.
5922 (all_extensions): Likewise.
5923 (arch_to_arch_name): Also track extension flags enabled by the arch.
5924 (all_architectures): Likewise.
5925 (aarch64_parse_extension): Move to here.
5926 (aarch64_get_extension_string_for_isa_flags): Take a new argument,
5927 rework.
5928 (aarch64_rewrite_selected_cpu): Update for above change.
5929 * config/aarch64/aarch64-option-extensions.def: Rework the way flags
5930 are handled, such that the single explicit value enabled by an
5931 extension is kept seperate from the implicit values it also enables.
5932 * config/aarch64/aarch64-protos.h (aarch64_parse_opt_result): Move
5933 to here.
5934 (aarch64_parse_extension): New.
5935 * config/aarch64/aarch64.c (aarch64_parse_opt_result): Move from
5936 here to config/aarch64/aarch64-protos.h.
5937 (aarch64_parse_extension): Move from here to
5938 common/config/aarch64/aarch64-common.c.
5939 (aarch64_option_print): Update.
5940 (aarch64_declare_function_name): Likewise.
5941 (aarch64_start_file): Likewise.
5942 * config/aarch64/driver-aarch64.c (arch_extension): Keep track of
5943 the canonical flag for extensions.
5944 * config.gcc (aarch64*-*-*): Extend regex for capturing extension
5945 flags.
5946
5947 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
5948
5949 * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
5950 AARCH64_FL_CRC.
5951
5952 2016-04-09 Tom de Vries <tom@codesourcery.com>
5953
5954 PR tree-optimization/68953
5955 * graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from
5956 first to last subscript.
5957
5958 2016-04-09 Jakub Jelinek <jakub@redhat.com>
5959
5960 PR tree-optimization/70586
5961 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false
5962 for any calls.
5963
5964 2016-04-08 Cesar Philippidis <cesar@codesourcery.com>
5965
5966 PR lto/70289
5967 PR ipa/70348
5968 PR tree-optimization/70373
5969 PR middle-end/70533
5970 PR middle-end/70534
5971 PR middle-end/70535
5972 * gimplify.c (gimplify_adjust_omp_clauses): Add or adjust data
5973 clauses for acc parallel reductions as necessary. Error on those
5974 that are private.
5975 * omp-low.c (scan_sharing_clauses): Don't install variables which
5976 are used in acc parallel reductions.
5977 (lower_rec_input_clauses): Remove dead code.
5978 (lower_oacc_reductions): Add support for reference reductions.
5979 (lower_reduction_clauses): Remove dead code.
5980 (lower_omp_target): Don't remap variables appearing in acc parallel
5981 reductions.
5982 * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro.
5983
5984 2016-04-08 Jakub Jelinek <jakub@redhat.com>
5985
5986 PR middle-end/70593
5987 * tree-ssa-coalesce.c (build_ssa_conflict_graph): For stmt
5988 with multiple SSA_NAME defs, force the outputs other than first
5989 to be live before calling live_track_process_def on each output.
5990
5991 PR rtl-optimization/70574
5992 * fwprop.c (forward_propagate_and_simplify): Don't add
5993 REG_EQUAL note if DF_REF_REG (use) is a paradoxical subreg.
5994 (try_fwprop_subst): Don't add REG_EQUAL note if there are any
5995 paradoxical subregs within *loc.
5996
5997 2016-04-08 Thomas Schwinge <thomas@codesourcery.com>
5998
5999 * config/arc/arc.h (LINK_COMMAND_SPEC): Use gt to ignore
6000 -ftree-parallelize-loops={0,1}.
6001 * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
6002 * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
6003 * config/ia64/hpux.h (LIB_SPEC): Likewise.
6004 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
6005 * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
6006
6007 2016-04-08 Maxim Ostapenko <m.ostapenko@samsung.com>
6008
6009 PR sanitizer/70541
6010 * asan.c (instrument_derefs): If we get unknown location, extract it
6011 with EXPR_LOCATION.
6012 (maybe_instrument_call): Instrument gimple_call's arguments if needed.
6013
6014 2016-04-08 Tom de Vries <tom@codesourcery.com>
6015
6016 * omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc
6017 implicit firstprivate clause.
6018
6019 2016-04-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6020
6021 PR target/70566
6022 * config/arm/thumb2.md (tst + branch-> lsls + branch
6023 peephole below *orsi_not_shiftsi_si): Require that condition
6024 register is dead after the peephole.
6025 (second peephole after the above): Likewise.
6026
6027 2016-04-08 Alan Modra <amodra@gmail.com>
6028
6029 PR target/70117
6030 * builtins.c (fold_builtin_classify): For IBM extended precision,
6031 look at just the high-order double to test for NaN.
6032 (fold_builtin_interclass_mathfn): Similarly for Inf. For isnormal
6033 test just the high double for Inf but both doubles for subnormal
6034 limit.
6035
6036 2016-04-07 Jakub Jelinek <jakub@redhat.com>
6037
6038 * cgraph.h (struct cgraph_simd_clone): Add mask_mode field.
6039 * omp-low.c (simd_clone_init_simd_arrays, simd_clone_adjust): Handle
6040 node->simdclone->mask_mode != VOIDmode masks.
6041 (simd_clone_adjust_argument_types): Likewise. Move sc var definition
6042 earlier, use it instead of node->simdclone.
6043 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
6044 Set clonei->mask_mode.
6045
6046 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
6047
6048 PR c/70436
6049 * parser.c (cp_parser_iteration_statement): New parameter IF_P.
6050 Pass it through to cp_parser_already_scoped_statement.
6051 (cp_parser_already_scoped_statement): New parameter IF_P. Pass
6052 it through to cp_parser_statement.
6053 (cp_parser_statement): Pass IF_P through to
6054 cp_parser_iteration_statement.
6055 (cp_parser_pragma): Adjust call to
6056 cp_parser_iteration_statement.
6057
6058 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
6059
6060 PR c/70436
6061 * gimplify.c (gimplify_omp_ordered): Add explicit braces to
6062 resolve a future -Wparentheses warning.
6063 * omp-low.c (scan_sharing_clauses): Likewise.
6064 * tree-parloops.c (eliminate_local_variables): Likewise.
6065
6066 2016-04-06 Vladimir Makarov <vmakarov@redhat.com>
6067
6068 PR rtl-optimization/70398
6069 * lra-constraints.c (process_address_1): Check zero scale and code
6070 for reloading with zero scale.
6071
6072 2016-04-06 Uros Bizjak <ubizjak@gmail.com>
6073
6074 * config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
6075 (ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.
6076
6077 2016-04-06 Jakub Jelinek <jakub@redhat.com>
6078
6079 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
6080 Add support for AVX512F clones, include them by default for
6081 exported OpenMP declare simd functions. For AVX2 allow simdlen 32
6082 and use it if charasteric type is 8-bit, for AVX512F allow simdlen
6083 up to 128.
6084
6085 PR middle-end/70550
6086 * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define.
6087 * gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit
6088 firstprivate clauses.
6089 * omp-low.c (lower_send_clauses): Set TREE_NO_WARNING for
6090 OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT !by_ref vars in task contexts.
6091 (lower_omp_target): Set TREE_NO_WARNING for
6092 non-addressable possibly uninitialized vars which are copied into
6093 addressable temporaries or copied for GOMP_MAP_FIRSTPRIVATE_INT.
6094
6095 2016-04-05 John David Anglin <danglin@gcc.gnu.org>
6096
6097 * config/pa/predicates.md (integer_store_memory_operand): Accept
6098 REG+D operands with a large offset when reload_in_progress is true.
6099 (floating_point_store_memory_operand): Likewise.
6100
6101 2016-04-05 Jakub Jelinek <jakub@redhat.com>
6102
6103 PR c++/70336
6104 * match.pd (nested int casts): Limit to GIMPLE.
6105
6106 2016-04-05 Jan Hubicka <hubicka@ucw.cz>
6107
6108 PR ipa/66223
6109 * ipa-devirt.c (maybe_record_node): Fix comment; use
6110 SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.
6111
6112 2016-04-05 Jakub Jelinek <jakub@redhat.com>
6113
6114 PR rtl-optimization/70542
6115 * ree.c (add_removable_extension): For VECTOR_MODE_P punt
6116 if there are any uses other than insn or debug insns.
6117
6118 2016-04-05 Marc Glisse <marc.glisse@inria.fr>
6119 Jakub Jelinek <jakub@redhat.com>
6120
6121 PR tree-optimization/70509
6122 * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SELECT>:
6123 Shift HOST_WIDE_INT_1U instead of 1.
6124
6125 2016-04-05 Zdenek Sojka <zsojka@seznam.cz>
6126
6127 PR tree-optimization/70509
6128 * tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int instead
6129 of the vector base type for index.
6130
6131 2016-04-05 Uros Bizjak <ubizjak@gmail.com>
6132
6133 PR target/70510
6134 * config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.
6135
6136 2016-04-05 Richard Biener <rguenther@suse.de>
6137
6138 PR tree-optimization/70526
6139 * tree-sra.c (build_ref_for_offset): Use prev_base to
6140 extract the alias pointer type.
6141
6142 2016-04-05 Richard Biener <rguenther@suse.de>
6143
6144 * dse.c (struct store_info): Remove alias_set member.
6145 (struct read_info_type): Likewise.
6146 (clear_alias_group, clear_alias_mode_table, clear_alias_mode_holder,
6147 spill_deleted, clear_alias_set_lookup): Remove.
6148 (get_group_info): Remove dead base == NULL_RTX case.
6149 (dse_step0): Remove initialization of removed variables.
6150 (delete_dead_store_insn): Reomve alias set dumping.
6151 (free_read_records): Remove alias_set handling.
6152 (canon_address): Remove alias_set_out parameter.
6153 (record_store): Remove spill_alias_set, it's always zero.
6154 (check_mem_read_rtx): Likewise.
6155 (dse_step2): Rename from ...
6156 (dse_step2_nospill): ... this. Adjust.
6157 (scan_stores): Rename from ...
6158 (scan_stores_nospill): ... this.
6159 (scan_reads): Rename from ...
6160 (scan_reads_nospill): ... this.
6161 (scan_stores_spill, scan_reads_spill): Remove.
6162 (dse_step3_scan): Remove for_spills argument which is always false.
6163 (dse_step3): Likewise.
6164 (dse_step5): Rename from ...
6165 (dse_step5_nospill): ... this. Remove alias_set handling.
6166 (rest_of_handle_dse): Adjust.
6167
6168 2016-04-05 Jakub Jelinek <jakub@redhat.com>
6169
6170 PR target/70525
6171 * config/i386/sse.md (*andnot<mode>3): Simplify assertions.
6172 Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for
6173 V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting.
6174 (*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator.
6175
6176 2016-04-05 Richard Biener <rguenther@suse.de>
6177
6178 PR middle-end/70499
6179 * gimplify-me.c (gimple_regimplify_operands): Do not rewrite
6180 non-register type temporaries into SSA.
6181
6182 2016-04-04 Jan Hubicka <hubicka@ucw.cz>
6183
6184 PR ipa/66223
6185 * ipa-devirt.c (maybe_record_node): Do not optimize cxa_pure_virtual
6186 calls when sanitizing.
6187 (possible_polymorphic_call_target_p): Fix formatting.
6188
6189 2016-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6190 Jakub Jelinek <jakub@redhat.com>
6191
6192 PR middle-end/70457
6193 * tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p
6194 to ensure a call statement is compatible with a built-in's
6195 prototype.
6196 * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
6197 Likewise.
6198
6199 2016-04-04 Richard Biener <rguenther@suse.de>
6200
6201 PR rtl-optimization/70484
6202 * rtl.h (canon_output_dependence): Declare.
6203 * alias.c (canon_output_dependence): New function.
6204 * dse.c (record_store): Use canon_output_dependence rather
6205 than canon_true_dependence.
6206
6207 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
6208
6209 PR ipa/68881
6210 * cgraph.h (symtab_node::copy_visibility_from): New function.
6211 * symtab.c (symtab_node::copy_visibility_from): New function.
6212 * ipa-visibility.c (optimize_weakref): New function.
6213 (function_and_variable_visibility): Use it.
6214
6215 2016-04-04 Martin Liska <mliska@suse.cz>
6216
6217 PR hsa/70402
6218 * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Guard index
6219 value that is really in range handled by SBR instruction.
6220 * hsa-brig.c (emit_switch_insn): Do not emit unconditional jump.
6221 * hsa-dump.c (dump_hsa_insn_1): Do not dump default BB.
6222 * hsa.h (hsa_insn_sbr::m_default_bb): Remove field.
6223
6224 2016-04-03 Oleg Endo <olegendo@gcc.gnu.org>
6225
6226 PR target/70416
6227 PR target/67391
6228 * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
6229 set, but not for SP_REG operands.
6230
6231 2016-04-02 Martin Sebor <msebor@redhat.com>
6232
6233 PR c++/67376
6234 * fold-const.c (maybe_nonzero_address): New function.
6235 (fold_comparison): Call it. Fold equality and relational
6236 expressions involving null pointers.
6237 (tree_single_nonzero_warnv_p): Call maybe_nonzero_address.
6238
6239 2016-03-31 Evandro Menezes <e.menezes@samsung.com>
6240
6241 Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
6242 the "Y" constraint (scalar FP 0.0 immediate).
6243
6244 * config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
6245 Add the "const_double" to the list of operand constraints.
6246
6247 2016-04-01 Jakub Jelinek <jakub@redhat.com>
6248
6249 PR rtl-optimization/70467
6250 * config/i386/i386.md (*add<dwi>3_doubleword, *sub<dwi>3_doubleword):
6251 If low word of the last operand is 0, just emit addition/subtraction
6252 for the high word.
6253
6254 2016-04-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
6255
6256 PR target/70404
6257 * config/s390/s390.c (s390_expand_insv): Check for everything
6258 constant instead of just VOIDmode stuff.
6259
6260 2016-04-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6261
6262 PR target/70496
6263 * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB.
6264
6265 2016-04-01 Nathan Sidwell <nathan@acm.org>
6266
6267 * tree.def (TRY_CATCH_EXPR): Correct documentation.
6268
6269 2016-03-31 Vladimir Makarov <vmakarov@redhat.com>
6270
6271 PR rtl-optimization/70461
6272 * ira-color.c (allocno_copy_cost_saving): Use allocno class if it
6273 is necessary.
6274
6275 2016-03-31 Martin Liska <mliska@suse.cz>
6276
6277 PR hsa/70399
6278 * hsa-brig.c (hsa_op_immed::emit_to_buffer): Emit either
6279 a tree value or an immediate integer value to a buffer
6280 that is eventually copied to a BRIG section.
6281 (emit_immediate_operand): Call the function here.
6282 * hsa-dump.c (dump_hsa_immed): Remove checking assert.
6283 * hsa-gen.c (hsa_op_immed::hsa_op_immed): Remove initialization
6284 of class' fields that are removed.
6285 (hsa_op_immed::~hsa_op_immed): Remove deinitialization.
6286 * hsa.h (class hsa_op_immed): Remove m_brig_repr and
6287 m_brig_repr_size fields.
6288
6289 2016-03-31 Martin Liska <mliska@suse.cz>
6290
6291 PR hsa/70391
6292 * hsa-gen.c (hsa_function_representation::update_dominance): New
6293 function.
6294 (convert_addr_to_flat_segment): Likewise.
6295 (gen_hsa_memory_set): New alignment argument.
6296 (gen_hsa_ctor_assignment): Likewise.
6297 (gen_hsa_insns_for_single_assignment): Provide alignment
6298 to gen_hsa_ctor_assignment.
6299 (gen_hsa_insns_for_direct_call): Add new argument.
6300 (expand_lhs_of_string_op): New function.
6301 (expand_string_operation_builtin): Likewise.
6302 (expand_memory_copy): New function.
6303 (expand_memory_set): New function.
6304 (gen_hsa_insns_for_call): Use HOST_WIDE_INT.
6305 (convert_switch_statements): Change signature.
6306 (generate_hsa): Use a return value of the function.
6307 (pass_gen_hsail::execute): Do not call
6308 convert_switch_statements here.
6309 * hsa-regalloc.c (hsa_regalloc): Call update_dominance.
6310 * hsa.h (hsa_function_representation::m_modified_cfg): New flag.
6311 (hsa_function_representation::update_dominance): New function.
6312
6313 2016-03-31 Martin Liska <mliska@suse.cz>
6314
6315 PR hsa/70391
6316 * hsa-brig.c (emit_directive_variable): Emit alignment
6317 according to hsa_symbol::m_align.
6318 * hsa-dump.c (hsa_byte_alignment): Move the function to another file.
6319 (dump_hsa_symbol): Dump alignment of HSA symbols.
6320 * hsa-gen.c (get_symbol_for_decl): Set-up alignment of a symbol.
6321 (gen_hsa_addr_with_align): New function.
6322 (hsa_bitmemref_alignment): Use newly added function.
6323 (gen_hsa_insns_for_load): Likewise.
6324 (gen_hsa_insns_for_store): Likewise.
6325 (gen_hsa_memory_copy): New argument added.
6326 (gen_hsa_insns_for_single_assignment): Respect
6327 alignment for assignments processed via gen_hsa_memory_copy.
6328 (gen_hsa_insns_for_direct_call): Likewise.
6329 (gen_hsa_insns_for_return): Likewise.
6330 (gen_function_def_parameters): Set default alignment.
6331 * hsa.c (hsa_object_alignment): New function.
6332 (hsa_byte_alignment): Pasted function.
6333 * hsa.h (hsa_symbol::m_align): New field.
6334
6335 2016-03-31 Bin Cheng <bin.cheng@arm.com>
6336
6337 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
6338 scratch field for goto case.
6339
6340 2016-03-31 James Greenhalgh <james.greenhalgh@arm.com>
6341
6342 * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.
6343
6344 2016-03-31 Ilya Enkovich <enkovich.gnu@gmail.com>
6345
6346 PR target/70442
6347 * config/i386/i386.c (scalar_chain::convert_op): Fix description.
6348 (scalar_chain::convert_insn): Call convert_op for reg
6349 moves to handle undefined registers.
6350
6351 2016-03-31 Nathan Sidwell <nathan@acm.org>
6352
6353 PR c++/70393
6354 * varasm.c (output_constructor_regular_field): Flush bitfield earlier.
6355 Assert we don't want to move backwards.
6356
6357 2016-03-31 Kirill Yukhin <kirill.yukhin@intel.com>
6358
6359 PR target/70453
6360 * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
6361
6362 2016-03-31 Jakub Jelinek <jakub@redhat.com>
6363
6364 PR rtl-optimization/70460
6365 * ira.c (indirect_jump_optimize): Don't substitute LABEL_REF
6366 with operand from REG_LABEL_OPERAND, instead substitute
6367 SET_SRC or REG_EQUAL note content if it is a LABEL_REF.
6368 Don't do anything for REG_NON_LOCAL_GOTO jumps.
6369
6370 2016-03-31 Martin Liska <mliska@suse.cz>
6371
6372 * passes.c (execute_one_pass): Do not call
6373 todo_after for a discarded function.
6374
6375 2016-03-31 Bin Cheng <bin.cheng@arm.com>
6376
6377 * tree-ssa-loop-ivopts.c (struct comp_cost): New scrach field.
6378 (no_cost, infinite_cost): Initialize the new field.
6379 (get_computation_cost_at): Record setup cost.
6380 (determine_use_iv_cost_address): Skip cost computation for sub
6381 uses if we can estimate it without losing accuracy.
6382
6383 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
6384
6385 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
6386 estimates here.
6387 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
6388 max_loop_iterations_int.
6389 (tree_unswitch_outer_loop): Likewise.
6390 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
6391 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
6392
6393 2016-03-30 Richard Biener <rguenther@suse.de>
6394
6395 PR middle-end/70450
6396 * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage.
6397
6398 2016-03-30 Jakub Jelinek <jakub@redhat.com>
6399
6400 PR target/70421
6401 * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
6402 in gen_blendm expander.
6403
6404 2016-03-30 Nick Clifton <nickc@redhat.com>
6405
6406 PR target/62254
6407 * config/arm/arm.c (arm_reload_out_hi): Add code to handle the
6408 case where we are already provided with an SImode SUBREG.
6409
6410 2016-03-30 H.J. Lu <hongjiu.lu@intel.com>
6411
6412 PR target/70439
6413 * config/i386/i386.c (ix86_expand_epilogue): Properly check
6414 conflict between DRAP register and __builtin_eh_return.
6415
6416 2016-03-30 Michael Matz <matz@suse.de>
6417 Richard Biener <rguenther@suse.de>
6418
6419 PR ipa/12392
6420 * ipa-polymorphic-call.c (struct type_change_info): Change
6421 speculative to an unsigned allowing to limit the work we do.
6422 (csftc_abort_walking_p): New inline function..
6423 (check_stmt_for_type_change): Limit the number of may-defs
6424 skipped for speculative devirtualization to
6425 max-speculative-devirt-maydefs.
6426 * params.def (max-speculative-devirt-maydefs): New param.
6427 * doc/invoke.texi (--param max-speculative-devirt-maydefs): Document.
6428
6429 2016-03-30 Mike Stump <mrs@gcc.gnu.org>
6430
6431 PR target/63890
6432 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
6433 and TARGET_MACHO.
6434
6435 2016-03-30 Patrick Palka <ppalka@gcc.gnu.org>
6436
6437 PR tree-optimization/59124
6438 * tree-vrp.c (register_edge_assert_for_2): For NAME != CST1
6439 where NAME = A +- CST2 add the assertion A != (CST1 -+ CST2).
6440
6441 2016-03-29 Jeff Law <law@redhat.com>
6442
6443 * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment.
6444
6445 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
6446
6447 * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
6448 to HOST_WIDE_INT.
6449
6450 2016-03-29 Thomas Schwinge <thomas@codesourcery.com>
6451
6452 * config/gnu.h (CPP_SPEC, LIB_SPEC): Don't override.
6453 * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt1.o instead of
6454 gcrt0.o if linking dynamically.
6455
6456 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
6457
6458 PR ipa/70283
6459 * ipa-devirt.c (methods_equal_p): New function.
6460 (compare_virtual_tables): Use it.
6461 * cgraph.h (symbol_table::symbol_suffix_separator): Declare.
6462 * cgraphclones.c (clone_function_name_1): Use
6463 symbol_table::symbol_suffix_separator.
6464 * coverage.c (build_var): Likewise.
6465 * symtab.c (symbol_table::symbol_suffix_separator): New.
6466
6467 2016-03-29 Jakub Jelinek <jakub@redhat.com>
6468
6469 PR rtl-optimization/70429
6470 * combine.c (simplify_shift_const_1): For ASHIFTRT don't optimize
6471 (cst1 >> count) >> cst2 into (cst1 >> cst2) >> count if
6472 mode != result_mode.
6473
6474 PR c++/70353
6475 * tree-inline.c (remap_decls): Don't add_local_decl if cfun is null.
6476
6477 PR tree-optimization/70405
6478 * ssa-iterators.h (num_imm_uses): Add missing braces.
6479
6480 2016-03-29 Vladimir Makarov <vmakarov@redhat.com>
6481
6482 PR rtl-optimization/68695
6483 * ira-color.c (allocno_copy_cost_saving): New.
6484 (improve_allocation): Use it.
6485
6486 2016-03-29 Richard Henderson <rth@redhat.com>
6487
6488 PR middle-end/70355
6489 * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.
6490
6491 2016-03-29 Richard Biener <rguenther@suse.de>
6492
6493 PR middle-end/70424
6494 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
6495 use alignment returned by get_pointer_alignment_1 if it is
6496 bigger than BITS_PER_UNIT.
6497 * builtins.c (get_pointer_alignment_1): Do not return true
6498 for alignment extracted from SSA info.
6499
6500 2016-03-28 James Bowman <james.bowman@ftdichip.com>
6501
6502 * config/ft32/ft32.opt (mnodiv): New.
6503 * config/ft32/ft32.md (*divsi3, *modsi3): Qualify with TARGET_NODIV.
6504 * doc/invoke.texi (FT32 Options -mnodiv): New.
6505
6506 2016-03-28 Kirill Yukhin <kirill.yukhin@intel.com>
6507
6508 PR target/70406
6509 * config/i386/i386.md (define_split, andn): Fix modes.
6510
6511 2016-03-26 Richard Biener <rguenther@suse.de>
6512 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6513
6514 PR ipa/70366
6515 * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
6516 instead of
6517 TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
6518 as 2nd argument to cl_optimization_restore().
6519
6520 2016-03-25 Richard Henderson <rth@redhat.com>
6521
6522 PR target/70120
6523 * config/aarch64/aarch64.c (aarch64_asm_output_pool_epilogue): New.
6524 * config/aarch64/aarch64-protos.h: Declare it.
6525 * config/aarch64/aarch64.h (ASM_OUTPUT_POOL_EPILOGUE): New.
6526
6527 2016-03-25 Alan Modra <amodra@gmail.com>
6528
6529 PR target/70052
6530 * config/rs6000/constraints.md (j): Simplify.
6531 * config/rs6000/predicates.md (easy_fp_constant): Exclude
6532 decimal float 0.D.
6533 * config/rs6000/rs6000.md (zero_fp): New mode_attr.
6534 (mov<mode>_hardfloat, mov<mode>_hardfloat32, mov<mode>_hardfloat64,
6535 mov<mode>_64bit_dm, mov<mode>_32bit): Use zero_fp in place of j
6536 in all constraint alternatives.
6537 (movtd_64bit_nodm): Delete "j" constraint alternative.
6538
6539 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
6540
6541 * tree-ssa-propagate.c: Enhance docs for
6542 SSA_PROP_NOT_INTERESTING.
6543
6544 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
6545
6546 * doc/extend.texi: Fix typo in documentation to pure attribute.
6547
6548 2016-03-24 John David Anglin <danglin@gcc.gnu.org>
6549
6550 PR target/70319
6551 * config/pa/pa.md (bswapdi2): Use a scratch register.
6552
6553 2016-03-24 Richard Henderson <rth@redhat.com>
6554
6555 PR middle-end/69845
6556 * fold-const.c (extract_muldiv_1): Correct test for multiplication
6557 overflow.
6558
6559 2016-03-24 Uros Bizjak <ubizjak@gmail.com>
6560
6561 * config/i386/i386.md (*anddi3_doubleword): Generate AND insn
6562 using ix86_expand_binary_operator instead of gen_andsi3.
6563
6564 2016-03-24 Richard Biener <rguenther@suse.de>
6565
6566 PR tree-optimization/70396
6567 * tree-vect-stmts.c (vectorizable_comparison): Use
6568 get_vectype_for_scalar_type.
6569
6570 2016-03-24 Richard Biener <rguenther@suse.de>
6571
6572 PR middle-end/70370
6573 * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
6574 with register bases.
6575
6576 2016-03-24 Richard Biener <rguenther@suse.de>
6577
6578 PR tree-optimization/70372
6579 * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Use
6580 build_all_ones_cst to also handle vector types correctly.
6581
6582 2016-03-23 Michael Meissner <meissner@linux.vnet.ibm.com>
6583
6584 PR target/70381
6585 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
6586 -mfloat128 here.
6587
6588 2016-03-23 Marek Polacek <polacek@redhat.com>
6589
6590 PR c++/69884
6591 * doc/invoke.texi: Document -Wignored-attributes.
6592
6593 2016-03-23 Bin Cheng <bin.cheng@arm.com>
6594
6595 PR tree-optimization/69042
6596 * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
6597 parameter from 30 to 40.
6598
6599 2016-03-23 Bin Cheng <bin.cheng@arm.com>
6600
6601 PR tree-optimization/69042
6602 * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Add IV cand
6603 for use with constant offset stripped in base.
6604
6605 2016-03-23 Richard Biener <rguenther@suse.de>
6606
6607 PR middle-end/70251
6608 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust
6609 mode compatibility check.
6610 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
6611
6612 2016-03-23 Jeff Law <law@redhat.com>
6613
6614 PR tree-optimization/64058
6615 * tree-ssa-coalesce.c (struct coalesce_pair): Add new field
6616 CONFLICT_COUNT.
6617 (struct ssa_conflicts): Move up earlier in the file.
6618 (conflicts_, var_map_): New static variables.
6619 (initialize_conflict_count): New function to initialize the
6620 CONFLICT_COUNT field for each conflict pair.
6621 (compare_pairs): Lazily initialize the conflict count and use it
6622 as the first tie-breaker.
6623 (sort_coalesce_list): Add new arguments conflicts, map. Initialize
6624 and wipe conflicts_ and map_ around the call to qsort. Remove
6625 special case for 2 coalesce pairs.
6626 * bitmap.c (bitmap_count_unique_bits): New function.
6627 (bitmap_count_bits_in_word): New function, extracted from
6628 bitmap_count_bits.
6629 (bitmap_count_bits): Use bitmap_count_bits_in_word.
6630 * bitmap.h (bitmap_count_unique_bits): Declare it.
6631
6632 2016-03-23 Ilya Enkovich <enkovich.gnu@gmail.com>
6633
6634 PR target/69917
6635 * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
6636 transparent alias chain for decl assembler name.
6637 * config/sol2.c (solaris_assemble_visibility): Likewise.
6638
6639 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6640
6641 * config/arm/arm1020e.md (1020call_op): Reduce reservation
6642 duration.
6643 (v10_fdivs): Likewise.
6644 (v10_fdivd): Likewise.
6645
6646 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6647
6648 PR driver/70132
6649 * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
6650 to not call fclose twice on file.
6651
6652 2016-03-23 Jakub Jelinek <jakub@redhat.com>
6653
6654 PR tree-optimization/70354
6655 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
6656 oprnd0 is wider than oprnd1 and there is a cast from the wider
6657 type to oprnd1, mask it with the mask of the narrower type.
6658
6659 PR target/70321
6660 * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
6661 Optimize TARGET_STV splitters, if high or low word of last argument
6662 is 0 or -1.
6663
6664 2016-03-22 Jeff Law <law@redhat.com>
6665
6666 PR target/70232
6667 tree-ssa-threadbackward.c
6668 (fsm_find_control_statement_thread_paths): Correctly distinguish
6669 between old style jump threads vs FSM jump threads.
6670
6671 2016-03-22 Ilya Enkovich <enkovich.gnu@gmail.com>
6672
6673 PR target/70302
6674 * config/i386/i386.c (scalar_chain::convert_op): Support
6675 uninitialized register usage case.
6676
6677 2016-03-22 Richard Biener <rguenther@suse.de>
6678
6679 PR middle-end/70251
6680 * genmatch.c (gen_transform): Adjust last parameter to a three-state
6681 int...
6682 (capture::gen_transform): ... to change behavior when substituting
6683 a condition into cond or not-cond expr context.
6684 (dt_simplify::gen_1): Adjust.
6685 * gimple-match-head.c: Include gimplify.h for unshare_expr.
6686 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Revert
6687 last change and instead change to
6688 A + (B vcmp C ? 1 : 0) -> A - (B vcmp C ? -1 : 0).
6689 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
6690
6691 2016-03-22 Anthony Green <green@moxielogic.com>
6692
6693 * config/moxie/moxiebox.h (CC1_SPEC): Define. Fix endianness
6694 issue for moxiebox targets.
6695 (CC1PLUS_SPEC): Ditto.
6696
6697 2016-03-22 Richard Biener <rguenther@suse.de>
6698
6699 PR middle-end/70333
6700 * fold-const.c (extract_muldiv_1): Properly perform multiplication
6701 in the wide type.
6702
6703 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
6704
6705 * config/i386/i386.c (def_builtin): Remove duplicated functionality.
6706
6707 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
6708
6709 PR target/70325
6710 * config/i386/i386.c (def_builtin): Handle
6711 OPTION_MASK_ISA_AVX512VL to be and-ed with other
6712 bits.
6713 (const struct builtin_description bdesc_special_args[]):
6714 Remove duplicate ISA bits.
6715
6716 2016-03-22 Jakub Jelinek <jakub@redhat.com>
6717
6718 PR target/70329
6719 * config/i386/i386.c (ix86_expand_vecop_qihi): Don't bother computing
6720 d.perm[i] for i >= d.nelt. If not full_interleave, compute d.perm[i]
6721 in a way that works also for AVX512BW.
6722
6723 PR target/70300
6724 * config/i386/i386.md (cvtsd2ss splitter): Unpack in destination
6725 instead of source if operands[1] is xmm16 and above and
6726 !TARGET_AVX512VL. Use avx512f_vec_dupv16sf_1 instead of
6727 vec_interleave_lowv4sf if we need to unpack xmm16 and above.
6728
6729 PR c++/70295
6730 * gimplify.c (gimplify_modify_expr): Call gimple_set_no_warning
6731 on assign if (*from_p) is a comparison, set it to
6732 TREE_NO_WARNING (*from_p).
6733
6734 2016-03-21 Jakub Jelinek <jakub@redhat.com>
6735
6736 PR middle-end/70326
6737 * lra.c (restore_scratches): Ignore deleted insns.
6738
6739 2016-03-21 Marc Glisse <marc.glisse@inria.fr>
6740 Jakub Jelinek <jakub@redhat.com>
6741
6742 PR tree-optimization/70317
6743 * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
6744 to HONOR_NANS.
6745
6746 2016-03-21 Uros Bizjak <ubizjak@gmail.com>
6747
6748 PR target/70327
6749 * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
6750 of ix86_expand_move.
6751 (movoi): Ditto.
6752 (movti): Use general_operand for operand 1 predicate.
6753
6754 2016-03-21 Martin Liska <mliska@suse.cz>
6755
6756 * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
6757 insns.
6758 (dump_hsa_symbol): Dump BRIG offset of hsa_symbols.
6759
6760 2016-03-21 Martin Liska <mliska@suse.cz>
6761
6762 PR ipa/70306
6763 * ipa-icf.c (sem_function::parse): Skip static
6764 constructors and destructors.
6765
6766 2016-03-21 Jakub Jelinek <jakub@redhat.com>
6767
6768 PR target/70296
6769 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If IDENT is
6770 function-like macro, peek following token(s) if it is followed
6771 by CPP_OPEN_PAREN token with optional padding in between, and
6772 if not, don't treat it like a macro.
6773
6774 2016-03-21 Thomas Schwinge <thomas@codesourcery.com>
6775 Alexander Monakov <amonakov@ispras.ru>
6776
6777 * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
6778 for the stabs debug format.
6779
6780 2016-03-21 Richard Biener <rguenther@suse.de>
6781
6782 PR tree-optimization/70310
6783 * tree-vect-generic.c (expand_vector_condition): Fold the built
6784 condition.
6785
6786 2016-03-21 Kirill Yukhin <kirill.yukhin@intel.com>
6787
6788 PR target/70293
6789 * config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2):
6790 Block third alternative for AVX-512VL target,
6791
6792 2016-03-21 Martin Liska <mliska@suse.cz>
6793
6794 PR hsa/70234
6795 * hsa-brig.c (emit_function_directives): Mark unemitted
6796 global variables for emission.
6797 * hsa-gen.c (hsa_symbol::hsa_symbol): Initialize a new flag.
6798 (get_symbol_for_decl): Likewise.
6799 * hsa.h (struct hsa_symbol): New flag.
6800
6801 2016-03-21 Richard Biener <rguenther@suse.de>
6802
6803 PR tree-optimization/70288
6804 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Make sure
6805 we do not estimate unsimplified all-constant conditionals or
6806 switches as optimized away.
6807
6808 2016-03-21 Andrey Belevantsev <abel@ispras.ru>
6809
6810 PR rtl-optimization/69102
6811 * sched-deps.c (sched_analyze_insn): Do not set last_args_size field
6812 when we have a readonly dependency context.
6813
6814 2016-03-18 Jeff Law <law@redhat.com>
6815
6816 PR rtl-optimization/70263
6817 * ira.c (memref_used_between_p): Assert we found END in the insn chain.
6818 (update_equiv_regs): When trying to move a store to after the insn
6819 that sets the source of the store, make sure the store occurs after
6820 the insn that sets the source of the store. When successful note
6821 the REG_EQUIV note created in the dump file.
6822
6823 2016-03-16 David Wohlferd <dw@LimeGreenSocks.com>
6824 Bernd Schmidt <bschmidt@redhat.com>
6825
6826 * doc/extend.texi: Document more potential problems with basic asms.
6827
6828 2016-03-18 Bernd Schmidt <bschmidt@redhat.com>
6829
6830 PR rtl-optimization/70278
6831 * lra-constraints.c (split_reg): Handle the case where biggest_mode is
6832 VOIDmode.
6833
6834 2016-03-18 Jason Merrill <jason@redhat.com>
6835
6836 * calls.c (load_register_parameters): Fix zero size sibcall logic.
6837
6838 2016-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
6839
6840 * config/i386/sse.md: Use vpbroadcastq for broadcasting DF
6841 values to 128b regs.
6842
6843 2016-03-18 Ilya Enkovich <enkovich.gnu@gmail.com>
6844
6845 PR tree-optimization/70252
6846 * tree-vect-stmts.c (supportable_widening_operation): Check resulting
6847 boolean vector has a proper number of elements.
6848 (supportable_narrowing_operation): Likewise.
6849
6850 2016-03-18 Tom de Vries <tom@codesourcery.com>
6851
6852 PR ipa/70269
6853 * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.
6854
6855 2016-03-18 Jakub Jelinek <jakub@redhat.com>
6856
6857 * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
6858 instead of replace_rtx for DEBUG_INSNs.
6859
6860 2016-03-18 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
6861
6862 * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
6863 load type reservations.
6864
6865 2016-03-17 John David Anglin <danglin@gcc.gnu.org>
6866
6867 PR target/70188
6868 * config/pa/constraints.md: Revert 2015-02-13 change. Use
6869 define_constraint for "Q" and "T" constraints.
6870
6871 2016-03-17 Evandro Menezes <e.menezes@samsung.com>
6872
6873 Tweak the pipeline model for Exynos M1
6874
6875 * config/aarch64/aarch64.c (exynosm1_tunings): Enable weak prefetching
6876 model.
6877
6878 2016-03-17 David Malcolm <dmalcolm@redhat.com>
6879
6880 PR c/70264
6881 * diagnostic-show-locus.c (compatible_locations_p): Handle the case
6882 where one or both locations aren't within a line_map.
6883
6884 2016-03-17 H.J. Lu <hongjiu.lu@intel.com>
6885
6886 PR driver/70192
6887 * opts.c (finish_options): Don't set flag_pie to the default if
6888 -fpic, -fPIC, -fno-pic or -fno-PIC is used. Set flag_pic to 0
6889 if it is -1.
6890
6891 2016-03-17 Joern Rennecke <joern.rennecke@embecosm.com>
6892
6893 * config/i386/i386.md (*movv4qicc_insn+1..36): Pass
6894 true as ALL_REGS argument to replace_rtx.
6895
6896 2016-03-17 Richard Biener <rguenther@suse.de>
6897
6898 PR debug/70271
6899 * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
6900 last.
6901
6902 2016-03-17 Jakub Jelinek <jakub@redhat.com>
6903
6904 PR target/70245
6905 * rtl.h (replace_rtx): Add ALL_REGS argument.
6906 * rtlanal.c (replace_rtx): Likewise. If true, use REGNO
6907 equality and assert mode is the same, instead of just rtx pointer
6908 equality.
6909 * config/i386/i386.md (mov + arithmetics with load peephole): Pass
6910 true as ALL_REGS argument to replace_rtx.
6911
6912 2016-03-17 Ilya Enkovich <enkovich.gnu@gmail.com>
6913
6914 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply
6915 for boolean vector with vector mode only.
6916 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
6917
6918 2016-03-17 Nick Clifton <nickc@redhat.com>
6919
6920 PR target/70162
6921 * config/rx/rx.c (rx_print_integer): Print negative constants in
6922 decimal.
6923
6924 2016-03-17 Jakub Jelinek <jakub@redhat.com>
6925
6926 PR target/70261
6927 * rtlanal.c (replace_rtx): Revert 2016-03-16 change.
6928
6929 2016-03-16 Richard Henderson <rth@redhat.com>
6930 Richard Biener <rguenth@suse.de>
6931
6932 PR middle-end/70240
6933 PR middle-end/68215
6934 PR tree-opt/68714
6935 * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
6936 first operand as is_gimple_condexpr.
6937
6938 PR middle-end/70240
6939 PR middle-end/68215
6940 Revert r231575
6941 2015-12-11 Eric Botcazou <ebotcazou@adacore.com>
6942 * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter.
6943 Do not gimplify the result.
6944 (do_unop): Adjust call to tree_vec_extract.
6945 (do_binop): Likewise.
6946 (do_compare): Likewise.
6947 (do_plus_minus): Likewise.
6948 (do_negate): Likewise.
6949 (expand_vector_condition): Likewise.
6950 (do_cond): Likewise.
6951
6952 2016-03-16 Richard Henderson <rth@redhat.com>
6953
6954 PR target/70048
6955 * config/aarch64/aarch64.c (virt_or_elim_regno_p): New.
6956 (aarch64_classify_address): Use it.
6957 (aarch64_legitimize_address): Force all subexpressions of PLUS
6958 into registers. Simplify as (sfp+const)+reg or (reg+reg)+const.
6959
6960 2016-03-16 Jakub Jelinek <jakub@redhat.com>
6961 Richard Biener <rguenth@suse.de>
6962
6963 PR target/70245
6964 * rtlanal.c (replace_rtx): For REG, if from is a REG,
6965 return to even if only REGNO is equal, and assert
6966 mode is the same.
6967
6968 2016-03-11 Jeff Law <law@redhat.com>
6969
6970 PR rtl-optimization/70224
6971 * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
6972
6973 2016-03-16 Richard Henderson <rth@redhat.com>
6974
6975 PR middle-end/70199
6976 * function.h (struct function): Add has_forced_label_in_static.
6977 * gimplify.c (force_labels_r): Set it.
6978 * lto-streamer-in.c (input_struct_function_base): Read it.
6979 * lto-streamer-out.c (output_struct_function_base): Write it.
6980 * tree-inline.c (has_label_address_in_static_1): Remove.
6981 (copy_forbidden): Remove fndecl parameter; test
6982 has_forced_label_in_static.
6983 (inline_forbidden_p): Update call to copy_forbidden.
6984 (tree_versionable_function_p): Likewise.
6985 * ipa-chkp.c (chkp_instrumentable_p): Likewise.
6986 (chkp_versioning): Likewise.
6987 * tree-inline.h (copy_forbidden): Update decl.
6988
6989 2016-03-16 Marek Polacek <polacek@redhat.com>
6990
6991 PR c/70093
6992 * cgraphunit.c (cgraph_node::expand_thunk): Also build call to the
6993 function being thunked if the result type doesn't have fixed size.
6994 * gimplify.c (gimplify_modify_expr): Also set LHS if the result type
6995 doesn't have fixed size.
6996
6997 2016-03-16 Bin Cheng <bin.cheng@arm.com>
6998
6999 * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
7000 reporting malformed loop nest.
7001
7002 2016-03-16 Tom de Vries <tom@codesourcery.com>
7003
7004 PR lto/70187
7005 * ipa-devirt.c (possible_polymorphic_call_targets): Move
7006 nodes.length () == 1 test to before first nodes[0] access.
7007
7008 2016-03-16 Tom de Vries <tom@codesourcery.com>
7009
7010 PR tree-optimization/68715
7011 * graphite-scop-detection.c (scop_detection::merge_sese): Add missing
7012 single_pred_p test.
7013
7014 2016-03-16 Tom de Vries <tom@codesourcery.com>
7015
7016 PR tree-optimization/68809
7017 * graphite-scop-detection.c (same_close_phi_node): Test if result types
7018 are the same.
7019
7020 2016-03-16 Carlos O'Donell <carlos@redhat.com>
7021 Sandra Loosemore <sandra@codesourcery.com>
7022
7023 * doc/extend.texi (Common Function Attributes): Describe ifunc impact
7024 on leaf attribute. Mention ELF interposition problems.
7025
7026 2016-03-16 Alan Modra <amodra@gmail.com>
7027
7028 PR rtl-optimization/69195
7029 PR rtl-optimization/47992
7030 * ira.c (indirect_jump_optimize): Ignore artificial defs.
7031 Add comments.
7032
7033 2016-03-15 Eric Botcazou <ebotcazou@adacore.com>
7034
7035 PR bootstrap/69513
7036 * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.
7037
7038 2016-03-15 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
7039
7040 * config/avr/avr.md (rotl<mode>3): Set mode for operand 2.
7041
7042 2016-03-15 Jakub Jelinek <jakub@redhat.com>
7043
7044 PR rtl-optimization/70222
7045 * combine.c (simplify_shift_const_1): For A >> B >> C LSHIFTRT
7046 optimization if mode is different from result_mode, queue up masking
7047 of the result in outer_op. Formatting fix.
7048
7049 PR middle-end/70239
7050 * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
7051 of safe_grow.
7052
7053 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
7054
7055 PR rtl-optimization/69032
7056 * sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
7057 looping backwards over basic block insns.
7058
7059 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
7060
7061 PR target/66660
7062 * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
7063 to non-speculative when propagating trap bits.
7064
7065 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
7066
7067 PR rtl-optimization/63384
7068 * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
7069 DEBUG_INSN_P insns.
7070
7071 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
7072
7073 PR target/64411
7074 * sched-deps.c (get_implicit_reg_pending_clobbers): New function,
7075 factored out from ...
7076 (sched_analyze_insn): ... here.
7077 * sched-int.h (get_implicit_reg_pending_clobbers): Declare it.
7078 * sel-sched-ir.c (setup_id_implicit_regs): New function, use
7079 get_implicit_reg_pending_clobbers in it.
7080 (setup_id_reg_sets): Use setup_id_implicit_regs.
7081 (deps_init_id): Ditto.
7082
7083 2016-03-15 Tom de Vries <tom@codesourcery.com>
7084
7085 PR ipa/70161
7086 * cgraph.c (cgraph_node::get_body): Save, reset and restore
7087 dump_file_name.
7088 * passes.c (execute_one_ipa_transform_pass): Add missing argument to
7089 execute_function_dump.
7090 (execute_one_pass): Don't dump function if it will be dumped after ipa
7091 transform.
7092
7093 2016-03-15 Segher Boessenkool <segher@kernel.crashing.org>
7094
7095 * genrecog.c (match_pattern_2): If pred is NULL don't call
7096 safe_predicate_mode on it.
7097
7098 2016-03-14 Jakub Jelinek <jakub@redhat.com>
7099
7100 PR middle-end/70219
7101 * lra-constraints.c (delete_move_and_clobber): Change assertion
7102 to also allow dregno == 0.
7103
7104 2016-03-14 Richard Henderson <rth@redhat.com>
7105
7106 PR tree-opt/68714
7107 * tree-ssa-reassoc.c (ovce_extract_ops, optimize_vec_cond_expr): New.
7108 (can_reassociate_p): Allow ANY_INTEGRAL_TYPE_P.
7109 (reassociate_bb): Use optimize_vec_cond_expr; avoid
7110 optimize_range_tests, attempt_builtin_copysign and attempt_builtin_powi
7111 on vectors.
7112
7113 2016-03-14 Bernd Schmidt <bschmidt@redhat.com>
7114
7115 PR target/70083
7116 * lra-lives.c (process_bb_lives): Also update biggest mode for hard
7117 regs.
7118 (lra_create_live_ranges_1): initialize hard register biggest_mode to
7119 VOIDmode.
7120 * lra-constraints.c (split_reg): For hard regs, try to find the
7121 biggest single-register mode used in the function.
7122
7123 2016-03-14 Richard Biener <rguenther@suse.de>
7124
7125 PR tree-optimization/56365
7126 * tree-ssa-phiopt.c (minmax_replacement): Handle alternate
7127 constants to compare against.
7128
7129 2016-03-14 Segher Boessenkool <segher@kernel.crashing.org>
7130
7131 PR target/70098
7132 * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
7133 *ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output.
7134 (define_split for the GPR case): Use int_reg_operand instead of
7135 gpc_reg_operand for the output.
7136
7137 2016-03-14 Tom de Vries <tom@codesourcery.com>
7138
7139 PR tree-optimization/70045
7140 * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Unshare
7141 create_empty_if_region_on_edge argument.
7142
7143 2016-03-13 Eric Botcazou <ebotcazou@adacore.com>
7144
7145 * config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define.
7146 (STACK_CHECK_PROTECT): Likewise.
7147 * config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
7148 (STACK_CHECK_PROTECT): Likewise.
7149 * config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
7150 (STACK_CHECK_PROTECT): Likewise.
7151 * config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise.
7152 * config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
7153 (STACK_CHECK_PROTECT): Likewise.
7154
7155 2016-03-12 Andrey Belevantsev <abel@ispras.ru>
7156
7157 PR rtl-optimization/69307
7158 * sel-sched.c (choose_best_pseudo_reg): Properly check for hard
7159 registers in modes that span more than one register.
7160
7161 2016-03-12 Vladimir Makarov <vmakarov@redhat.com>
7162
7163 PR target/69614
7164 * lra-constraints.c (delete_move_and_clobber): New.
7165 (remove_inheritance_pseudos): Use it.
7166
7167 2016-03-12 Eric Botcazou <ebotcazou@adacore.com>
7168
7169 PR ada/70017
7170 * calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if
7171 the libcall is LCT_THROW.
7172 * explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call
7173 for the checking routine.
7174
7175 2016-03-11 Michael Meissner <meissner@linux.vnet.ibm.com>
7176
7177 PR target/70131
7178 * config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the
7179 optimization if we have direct move.
7180 (roundu32<mode>2_fprs): Likewise.
7181
7182 2016-03-11 Bernd Schmidt <bschmidt@redhat.com>
7183
7184 PR target/70123
7185 * lra-remat.c (operand_to_remat): Disallow hard regs in the value t
7186 be rematerialized.
7187 (reg_overlap_for_remat_p): Renamed from input_regno_present_p.
7188 Arguments swapped. All callers changed. Take reg_renumber into
7189 account, and Calculate and compare register ranges for hard regs.
7190
7191 2016-03-11 Jeff Law <law@redhat.com>
7192
7193 PR tree-optimization/70190
7194 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
7195 Handle cases where we can not extract the taken edge, even though we
7196 found a constant value.
7197
7198 PR tree-optimization/64058
7199 * tree-ssa-coalesce.c (struct coalesce_pair): Add new field INDEX.
7200 (num_coalesce_pairs): Move up earlier in file.
7201 (find_coalesce_pair): Initialize the INDEX field for each pair
7202 discovered.
7203 (compare_pairs): No longer sort on the elements in each pair.
7204 Instead break ties with the index of the coalesce pair.
7205
7206 2016-03-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7207
7208 PR target/70002
7209 * config/aarch64/aarch64-protos.h
7210 (aarch64_save_restore_target_globals): New prototype.
7211 * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
7212 Call the above when popping pragma.
7213 * config/aarch64/aarch64.c (aarch64_save_restore_target_globals):
7214 New function.
7215 (aarch64_set_current_function): Rewrite using the above.
7216
7217 2016-03-11 Jakub Jelinek <jakub@redhat.com>
7218
7219 PR tree-optimization/70177
7220 * gimple-expr.h (extract_ops_from_tree_1): Renamed to ...
7221 (extract_ops_from_tree): ... this. In the 2 argument
7222 overload remove _1 suffix.
7223 * gimple-expr.c (extract_ops_from_tree_1): Renamed to ...
7224 (extract_ops_from_tree): ... this.
7225 * gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree):
7226 Adjust callers.
7227 * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
7228 * tree-ssa-forwprop.c (defcodefor_name): Call 3 operand
7229 extract_ops_from_tree instead of 2 operand one.
7230
7231 2016-03-11 Alan Lawrence <alan.lawrence@arm.com>
7232
7233 PR tree-optimization/70013
7234 * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
7235 for constant-pool entries.
7236
7237 2016-03-11 Jakub Jelinek <jakub@redhat.com>
7238
7239 PR rtl-optimization/70174
7240 * expmed.c (store_bit_field_using_insv): Use gen_lowpart_if_possible
7241 followed by gen_lowpart on force_reg instead of just gen_lowpart.
7242
7243 PR tree-optimization/70169
7244 * tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and
7245 LABEL_DECL like VAR_DECL. Emit nothing instead of gcc_unreachable
7246 for unknown codes.
7247
7248 2016-03-11 Ilya Enkovich <enkovich.gnu@gmail.com>
7249 Jakub Jelinek <jakub@redhat.com>
7250
7251 PR target/70160
7252 * config/i386/i386.c (scalar_chain::convert_reg): Skip uses
7253 of uninitialized values.
7254
7255 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7256
7257 * config/s390/s390.md ("trunctddd2"): Turn former define_insn into
7258 define_expand.
7259 ("*trunctddd2"): New pattern definition.
7260 ("trunctdsd2"): Set prep_for_short_prec rounding mode for the
7261 TD->DD truncation.
7262
7263 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7264
7265 * config/s390/s390.md (BFP_RND_*, DFP_RND_*): Add new constant
7266 definitions for BFP and DFP rounding modes.
7267 ("fixuns_truncdddi2", "fixuns_trunctddi2")
7268 ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2")
7269 ("fix_trunc<DSF:mode><GPR:mode>2", "fix_trunc<mode>di2")
7270 ("fix_trunctf<mode>2"): Use the new constants instead of magic
7271 numbers.
7272
7273 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7274
7275 * config/s390/constraints.md: Adjust comment.
7276 ("Y"): Adjust comment. Rename s390_decompose_shift_count to
7277 s390_decompose_addrstyle_without_index.
7278 * config/s390/predicates.md (shift_count_or_setmem_operand):
7279 Rename to setmem_operand.
7280 * config/s390/s390-protos.h
7281 (s390_decompose_shift_count): Rename to
7282 s390_decompose_addrstyle_without_index.
7283 * config/s390/s390.c (s390_decompose_shift_count)
7284 (s390_mem_constraint, print_shift_count_operand)
7285 (print_operand_address, print_operand): Rename
7286 s390_decompose_shift_count to
7287 s390_decompose_addrstyle_without_index and rename
7288 print_shift_count_operand to print_addrstyle_operand troughout the
7289 file.
7290 * config/s390/s390.md ("setmem_long_<P:mode>", "*setmem_long")
7291 ("*setmem_long_and", "*setmem_long_31z", "*setmem_long_and_31z"):
7292 Rename shift_count_or_setmem_operand to setmem_operand.
7293 * config/s390/vx-builtins.md ("vec_insert<mode>")
7294 ("vec_promote<mode>"): Replace shift_count_or_setmem_operand with
7295 nonmemory_operand.
7296
7297 2016-03-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7298
7299 PR target/70168
7300 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
7301 Handle overlapping retval and newval.
7302
7303 2016-03-10 Nick Clifton <nickc@redhat.com>
7304
7305 PR target/7044
7306 * config/aarch64/aarch64.c
7307 (aarch64_override_options_after_change_1): When forcing
7308 flag_omit_frame_pointer to be true, use a special value that can
7309 be detected if this function is called again, thus preventing
7310 flag_omit_leaf_frame_pointer from being forced to be false.
7311
7312 2016-03-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7313
7314 * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
7315 Set x_flag_omit_leaf_frame_pointer when handling
7316 -momit-leaf-frame-pointer.
7317
7318 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
7319
7320 PR lto/69589
7321 * cgraph.c (cgraph_node::dump): Dump split_part and
7322 indirect_call_target.
7323 * cgraph.h (cgraph_node): Add indirect_call_target flag.
7324 * ipa.c (has_addr_references_p): Cleanup.
7325 (is_indirect_call_target_p): New.
7326 (walk_polymorphic_call_targets): Do not mark virtuals that may be
7327 called indirectly as local.
7328 (symbol_table::remove_unreachable_nodes): Compute indirect_call_target.
7329
7330 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
7331
7332 PR ipa/69630
7333 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
7334 on cxa_pure_virtual.
7335
7336 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
7337
7338 PR lto/69589
7339 * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
7340
7341 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
7342
7343 PR lto/69589
7344 * tree.c (need_assembler_name_p): Only record main variant type names.
7345
7346 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
7347
7348 PR target/70113.
7349 * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_843419_DEFAULT):
7350 Always define to 0 or 1.
7351 (TARGET_FIX_ERR_A53_843419): New macro.
7352 * config/aarch64/aarch64-elf-raw.h
7353 (TARGET_FIX_ERR_A53_843419_DEFAULT): Update for above changes.
7354 * config/aarch64/aarch64-linux.h: Likewise.
7355 * config/aarch64/aarch64.c
7356 (aarch64_override_options_after_change_1): Do not default
7357 aarch64_nopcrelative_literal_loads to true if Cortex-A53 erratum
7358 843419 is on.
7359 (aarch64_attributes): Handle fix-cortex-a53-843419.
7360 (aarch64_can_inline_p): Likewise.
7361 * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.
7362
7363 2016-03-10 Alan Lawrence <alan.lawrence@arm.com>
7364 Jakub Jelinek <jakub@redhat.com>
7365
7366 * common.opt (funconstrained-commons, flag_unconstrained_commons): New.
7367 * tree.c (array_at_struct_end_p): Do not limit to size of decl for
7368 DECL_COMMONS if flag_unconstrained_commons is set.
7369 * tree-dfa.c (get_ref_base_and_extent): Likewise.
7370 * doc/invoke.texi (Optimize Options): Add -funconstrained-commons.
7371 (funconstrained-commons): Document.
7372
7373 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
7374
7375 * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
7376 aarch64-fusion-pairs.def and aarch64-tuning-flags.def
7377
7378 2016-03-10 Ilya Enkovich <enkovich.gnu@gmail.com>
7379
7380 * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
7381 has a proper number of elements.
7382
7383 2016-03-10 Alan Modra <amodra@gmail.com>
7384
7385 PR rtl-optimization/69195
7386 PR rtl-optimization/47992
7387 * ira.c (recorded_label_ref): Delete.
7388 (update_equiv_regs): Return void.
7389 (indirect_jump_optimize): New function.
7390 (ira): Call indirect_jump_optimize and delete_trivially_dead_insns
7391 before regstat_compute_ri. Don't rebuild_jump_labels here.
7392 Delete update_regstat.
7393
7394 2016-03-10 Richard Biener <rguenther@suse.de>
7395
7396 PR tree-optimization/70128
7397 * tree-ssa-structalias.c (set_uids_in_ptset): Set
7398 vars_contains_nonlocal for any FUNCTION_DECL or LABEL_DECL.
7399
7400 2016-03-09 Jakub Jelinek <jakub@redhat.com>
7401
7402 PR tree-optimization/70152
7403 * tree-sra.c (replace_removed_params_ssa_names): Copy over
7404 SSA_NAME_OCCURS_IN_ABNORMAL_PHI from old_name to new_name.
7405
7406 PR target/70086
7407 * config/i386/i386.md (truncdfsf2 splitter): Use gen_vec_concatv2df
7408 instead of gen_sse2_loadlpd.
7409 * config/i386/sse.md (*vec_concatv2df): Rename to...
7410 (vec_concatv2df): ... this.
7411
7412 PR tree-optimization/70127
7413 * fold-const.c (operand_equal_p): Revert the 2015-10-28 change.
7414
7415 2016-03-09 David Malcolm <dmalcolm@redhat.com>
7416
7417 PR c/68473
7418 PR c++/70105
7419 * diagnostic-show-locus.c (compatible_locations_p): New function.
7420 (layout::layout): Sanitize ranges using compatible_locations_p.
7421
7422 2016-03-09 David Malcolm <dmalcolm@redhat.com>
7423
7424 PR c/68473
7425 PR c++/70105
7426 * diagnostic-show-locus.c (layout_range::layout_range): Replace
7427 location_range param with three const expanded_locations * and a
7428 bool.
7429 (layout::layout): Replace call to
7430 rich_location::lazily_expand_location with get_expanded_location.
7431 Extract the range and perform location expansion here, passing
7432 the results to the layout_range ctor.
7433 * diagnostic.c (source_range::debug): Delete.
7434 * diagnostic.h (diagnostic_expand_location): Reimplement in terms
7435 of rich_location::get_expanded_location.
7436 * gcc-rich-location.c (get_range_for_expr): Delete.
7437 (gcc_rich_location::add_expr): Reimplement to avoid the
7438 rich_location::add_range overload that took a location_range,
7439 passing a location_t instead.
7440
7441 2016-03-09 Richard Biener <rguenther@suse.de>
7442 Jakub Jelinek <jakub@redhat.com>
7443
7444 PR tree-optimization/70138
7445 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
7446 Also skip vect_double_reduction_def.
7447
7448 2016-03-09 Jakub Jelinek <jakub@redhat.com>
7449
7450 PR target/70049
7451 * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
7452 if the operand is "m".
7453
7454 2016-03-09 Nathan Sidwell <nathan@acm.org>
7455
7456 * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.
7457
7458 2016-03-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
7459
7460 * config/i386/i386.c (processor_target_table): Fix cost table
7461 intialization order for znver1.
7462
7463 2016-03-08 Jakub Jelinek <jakub@redhat.com>
7464
7465 * ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling
7466 - becuase -> because.
7467 * ipa-reference.c (ignore_module_statics): Likewise.
7468 * cgraph.c (cgraph_node::get_body): Likewise.
7469 * ipa-inline.c (early_inliner): Likewise.
7470 * ipa-devirt.c (types_same_for_odr): Likewise.
7471 * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
7472 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Likewise.
7473
7474 2016-03-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7475
7476 * tree-ssa-math-opts.c: Fix typo in comment.
7477
7478 2016-03-08 Jakub Jelinek <jakub@redhat.com>
7479
7480 PR target/70110
7481 * config/i386/i386.c (scalar_chain::make_vector_copies,
7482 scalar_chain::convert_reg): Call end_sequence in between
7483 get_insns and emit_conversion_insns rather than after both
7484 calls.
7485
7486 2016-03-07 Uros Bizjak <ubizjak@gmail.com>
7487
7488 PR target/70064
7489 * config/i386/i386.h (machine_function): Add
7490 pc_thunk_call_expanded flag.
7491 (ix86_pc_thunk_call_expanded): New define.
7492 * config/i386/i386.md (set_got, set_got_labelled): New expanders.
7493 (*set_got): Rename insn pattern from set_got.
7494 (*set_got_labelled): Rename inst pattern from set_got_labelled.
7495 * config/i386/i386.c (ix86_compute_frame_layout): Use
7496 ix86_pc_thunk_call_expanded to prevent red-zone.
7497
7498 2016-03-07 Martin Jambor <mjambor@suse.cz>
7499
7500 * hsa.h (hsa_get_ctor_statements): Declare.
7501 (hsa_get_dtor_statements): Likewise.
7502 (hsa_get_kernel_dispatch_type): Likewise.
7503 * hsa.c (hsa_get_ctor_statements): New function.
7504 (hsa_get_dtor_statements): Likewise.
7505 (hsa_get_kernel_dispatch_type): Likewise.
7506 * hsa-brig.c (hsa_cdtor_statements): Removed.
7507 (hsa_output_libgomp_mapping): Use hsa_get_ctor_statements and
7508 hsa_get_dtor_statements.
7509 * hsa-gen.c (hsa_kernel_dispatch_type): Removed.
7510 (get_hsa_kernel_dispatch_offset): Use hsa_get_kernel_dispatch_type.
7511
7512 2016-03-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
7513
7514 * config/arm/arm-cores.def (cortex-r8): New.
7515 * config/arm/arm-tables.opt (cortex-r8): Regenerate.
7516 * config/arm/arm-tune.md: Likewise.
7517 * doc/invoke.texi: Add cortex-r8 to list of cpu values.
7518
7519 2016-03-07 Martin Sebor <msebor@redhat.com>
7520
7521 PR rtl-optimization/19705
7522 * doc/invoke.texi (Options That Control Optimization): Clarify
7523 -fno-branch-count-reg.
7524
7525 2016-02-26 Richard Biener <rguenther@suse.de>
7526 Jeff Law <law@redhat.com>
7527
7528 PR tree-optimization/69740
7529 * cfghooks.c (remove_edge): Request loop fixups if we delete
7530 an edge that might turn an irreducible loop into a natural
7531 loop.
7532 * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
7533 Move after definition of loops_state_clear.
7534
7535 2016-03-07 Bin Cheng <bin.cheng@arm.com>
7536
7537 PR rtl-optimization/69052
7538 * rtlanal.c (commutative_operand_precedence): Set higher precedence
7539 to CONST_WIDE_INT.
7540
7541 2016-03-07 Tom de Vries <tom@codesourcery.com>
7542
7543 PR tree-optimization/70116
7544 * tree-ssa-tail-merge.c (merge_stmts_p): New function, handling
7545 is_tm_ending stmts and ubsan/asan internal functions.
7546 (find_duplicate): Use it. Don't test is_tm_ending here.
7547
7548 2016-03-07 Richard Biener <rguenther@suse.de>
7549
7550 PR tree-optimization/70115
7551 * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
7552 (propagate_constants_for_unrolling): Use replace_uses_by.
7553
7554 2016-03-07 Nathan Sidwell <nathan@codesourcery.com>
7555
7556 PR middle-end/69916
7557 * omp-low.c (struct oacc_loop): Add ifns.
7558 (new_oacc_loop_raw): Initialize it.
7559 (finish_oacc_loop): Clear mask & flags if no ifns.
7560 (oacc_loop_discover_walk): Count IFN_GOACC_LOOP calls.
7561 (oacc_loop_xform_loop): Add ifns arg & adjust.
7562 (oacc_loop_process): Adjust oacc_loop_xform_loop call.
7563
7564 2016-03-07 Richard Henderson <rth@redhat.com>
7565
7566 PR rtl-opt/70061
7567 * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
7568 (insert_value_copy_on_edge): Likewise.
7569
7570 2016-03-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7571
7572 * config/arm/arm_neon.h: Show error if using with soft-float ABI.
7573
7574 2016-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7575
7576 PR target/62281
7577 * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
7578
7579 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
7580
7581 * config/i386/i386.c (znver1_cost): Fix Multiply cost.
7582
7583 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
7584
7585 Fix sseimul type attribute.
7586 * config/i386/znver1.md
7587 (znver1_sseimul, znver1_sseimul_avx256, znver1_sseimul_load,
7588 znver1_sseimul_avx256_load) : Fix the type attribute.
7589 (znver1_sseimul_di, znver1_sseimul_load_di): Fix type attribute,
7590 pipe usage and latency.
7591
7592 2016-03-05 Jakub Jelinek <jakub@redhat.com>
7593
7594 PR c++/70084
7595 * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
7596 of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
7597 to the right type.
7598
7599 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
7600
7601 PR c/69973
7602 * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
7603
7604 PR rtl-optimization/69941
7605 * postreload.c (reload_combine_recognize_pattern): Ensure all uses of
7606 the reg share its mode.
7607
7608 2016-03-04 Jeff Law <law@redhat.com>
7609
7610 PR tree-optimization/69196
7611 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
7612 If the both SSA_NAMEs are anonymous, then consider them unassociated
7613 and include the PHI in the statement count.
7614
7615 2016-03-05 Tom de Vries <tom@codesourcery.com>
7616
7617 * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
7618 construct in oacc routine. Check for oacc region in oacc routine.
7619
7620 2016-03-04 Jakub Jelinek <jakub@redhat.com>
7621
7622 PR target/70062
7623 * config/i386/i386.c (decide_alg): Add RECUR argument. Revert
7624 2016-02-22 changes, instead don't recurse if RECUR is already true.
7625 Don't change *dynamic_check if RECUR. Adjust recursive caller
7626 to pass true to the new argument.
7627 (ix86_expand_set_or_movmem): Adjust decide_alg caller.
7628
7629 PR target/70059
7630 * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
7631 <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
7632 fixes.
7633 (vec_set_hi_<mode><mask_name>): Likewise. Swap VEC_CONCAT operands.
7634
7635 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
7636
7637 PR rtl-optimization/57676
7638 * lra-assigns.c (lra_assign): Guard test for maximum iterations
7639 with flag_checking.
7640
7641 2016-03-04 Ilya Enkovich <enkovich.gnu@gmail.com>
7642
7643 * tree-vect-patterns.c (search_type_for_mask): Handle
7644 comparison of booleans.
7645
7646 2016-03-04 Jakub Jelinek <jakub@redhat.com>
7647
7648 * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
7649 Fix @xref usage.
7650
7651 PR debug/69947
7652 * dwarf2out.c (prune_unused_types_walk_loc_descr): Handle
7653 all other ops that have dw_val_class_die_ref operands,
7654 and DW_OP_GNU_entry_value.
7655
7656 2016-03-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7657
7658 PR rtl-optimization/69904
7659 * config/arm/arm.c (arm_cannot_copy_insn_p):
7660 Return true for load-exclusive instructions.
7661
7662 2016-03-03 Jakub Jelinek <jakub@redhat.com>
7663
7664 PR target/70021
7665 * tree-vect-stmts.c (vect_mark_relevant): Remove USED_IN_PATTERN
7666 argument, if STMT_VINFO_IN_PATTERN_P (stmt_info), always mark
7667 the pattern no matter if it is used just by non-pattern, pattern
7668 or mix thereof.
7669 (process_use, vect_mark_stmts_to_be_vectorized): Adjust callers.
7670 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
7671 oprnd1 def_stmt is in pattern, don't look through it.
7672
7673 2016-03-03 Marek Polacek <polacek@redhat.com>
7674
7675 PR middle-end/70050
7676 * match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
7677
7678 2016-03-03 Martin Liska <mliska@suse.cz>
7679
7680 PR tree-optimization/70043
7681 * tree-vect-loop.c (optimize_mask_stores): Move iterator to
7682 previous statement if we see a debug statement.
7683
7684 2016-03-03 Richard Biener <rguenther@suse.de>
7685
7686 PR tree-optimization/55936
7687 * tree-vrp.c (compare_name_with_value): Add use_equiv_p
7688 parameter and guard unsafe equivalence use.
7689 (vrp_evaluate_conditional_warnv_with_ops): Always use
7690 safe equivalences but not via the quadratic compare_names
7691 helper.
7692
7693 2016-03-03 Michael Collison <michael.collison@linaro.org>
7694
7695 PR target/70014
7696 * config/arm/arm.md (*subsi3_carryin_const): Change predicate
7697 for operand 1 to s_register_operand. Change predicate for operand
7698 2 to arm_not_immediate_operand.
7699
7700 2016-03-02 H.J. Lu <hongjiu.lu@intel.com>
7701
7702 * doc/tm.texi: Regenerated.
7703
7704 2016-03-02 Richard Henderson <rth@redhat.com>
7705
7706 PR rtl-opt/67145
7707 * simplify-rtx.c (simplify_plus_minus): Allow reassoc without
7708 simplification when all args are positive non-fixed registers.
7709
7710 2016-03-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7711
7712 * target.def (lra_p): Specify that new ports should use LRA.
7713
7714 2016-03-02 Jakub Jelinek <jakub@redhat.com>
7715
7716 PR libgomp/69555
7717 * gimplify.c (gimplify_decl_expr): For decls with REFERENCE_TYPE, also
7718 gimplify_type_sizes the type they refer to.
7719 (omp_notice_variable): Handle reference vars to VLAs.
7720 * omp-low.c (lower_omp_target): Emit setup of OMP_CLAUSE_PRIVATE
7721 reference to VLA decls in the second pass instead of first pass.
7722
7723 2016-03-02 Tom de Vries <tom@codesourcery.com>
7724
7725 PR tree-optimization/68659
7726 * graphite-isl-ast-to-gimple.c (collect_all_ssa_names): Handle
7727 new_expr == NULL_TREE.
7728 (get_new_name): Handle ADDR_EXPR.
7729
7730 2016-03-02 Bin Cheng <bin.cheng@arm.com>
7731
7732 PR rtl-optimization/69052
7733 * loop-invariant.c (canonicalize_address): New function.
7734 (inv_can_prop_to_addr_use): Check validity of address expression
7735 which is canonicalized by above function.
7736
7737 2016-03-02 Alan Modra <amodra@gmail.com>
7738
7739 PR ipa/69990
7740 * ipa-icf.c (sem_variable::merge): Do not merge an alias with
7741 larger alignment.
7742
7743 2016-03-02 Jakub Jelinek <jakub@redhat.com>
7744
7745 PR target/70028
7746 * config/i386/i386.md (kmovw): Move m constraint to 2nd alternative.
7747 (*movhi_internal): Put mask moves from and to memory separately
7748 from moves from/to GPRs.
7749
7750 2016-03-02 Richard Biener <rguenther@suse.de>
7751
7752 * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
7753 GENERIC expressions in GIMPLE.
7754
7755 2016-03-02 Richard Biener <rguenther@suse.de>
7756
7757 * config/i386/i386.c (type_natural_mode): Fix typo.
7758
7759 2016-03-02 Nick Clifton <nickc@redhat.com>
7760
7761 * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.
7762
7763 2016-03-02 Richard Biener <rguenther@suse.de>
7764 Uros Bizjak <ubizjak@gmail.com>
7765
7766 PR target/67278
7767 * config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
7768
7769 2016-03-02 Richard Biener <rguenther@suse.de>
7770
7771 PR middle-end/67278
7772 * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
7773
7774 2016-03-02 Marek Polacek <polacek@redhat.com>
7775
7776 PR c/67854
7777 * gimplify.c (gimplify_va_arg_expr): Use expanded location for the
7778 "is promoted to" warning.
7779
7780 2016-03-01 DJ Delorie <dj@redhat.com>
7781
7782 * config.gcc: Deprecate mep-*.
7783
7784 2016-03-01 Vladimir Makarov <vmakarov@redhat.com>
7785
7786 PR middle-end/70025
7787 * lra-constraints.c (regno_val_use_in): New.
7788 (match_reload): Use it instead of regno_use_in.
7789
7790 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
7791
7792 PR rtl-optimization/70007
7793 * gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
7794 references present in REG_EQUAL notes attached to non-SET patterns.
7795
7796 2016-03-01 Jeff Law <law@redhat.com>
7797
7798 PR tree-optimization/69196
7799 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
7800 Appropriately clamp the number of statements to copy when the
7801 thread path does not traverse a loop backedge.
7802
7803 PR tree-optimization/69196
7804 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
7805 Do count some PHIs in the thread path against the insn count. Decrease
7806 final statement count by one as the control statement in the last
7807 block will get removed. Remove special cased code for handling PHIs
7808 in the last block.
7809
7810 2016-03-01 Uros Bizjak <ubizjak@gmail.com>
7811
7812 PR target/70027
7813 * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
7814 asm dialect alternatives to explicit GOTPCREL calls.
7815
7816 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
7817
7818 PR ada/70017
7819 * ira.c (do_reload): Issue warning for generic stack checking here...
7820 * reload1.c (reload): ...instead of here and streamline it.
7821
7822 2016-03-01 Nick Clifton <nickc@redhat.com>
7823
7824 * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
7825
7826 2016-03-01 Richard Biener <rguenther@suse.de>
7827
7828 PR tree-optimization/69983
7829 * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
7830 types and fall back to operand_equal_p.
7831
7832 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7833
7834 Revert
7835 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7836
7837 * config/s390/constraints.md ("jm8"): New constraint.
7838 * config/s390/predicates.md ("const_int_8bitset_operand"): New
7839 predicate.
7840 * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
7841 into ...
7842 ("*setmem_long<setmem_and>"): New pattern.
7843 ("*setmem_long_31z", "*setmem_long_and_31z"): Merge
7844 into ...
7845 ("*setmem_long_31z<setmem_and>"): New pattern.
7846 * config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
7847 New substitution rules with the required attributes.
7848
7849
7850 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7851
7852 Revert
7853 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7854
7855 * gensupport.c (process_substs_on_one_elem): Split loop to
7856 complete mark_operands_used_in_match_dup on all expressions in the
7857 vector first.
7858 (adjust_operands_numbers): Inline into process_substs_on_one_elem
7859 and remove function.
7860
7861 2016-03-01 Richard Biener <rguenther@suse.de>
7862
7863 PR middle-end/70022
7864 * fold-const.c (fold_indirect_ref_1): Fix range checking for
7865 vector BIT_FIELD_REF extract.
7866
7867 2016-03-01 Richard Biener <rguenther@suse.de>
7868
7869 PR tree-optimization/69994
7870 * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
7871
7872 2016-03-01 Ilya Enkovich <enkovich.gnu@gmail.com>
7873
7874 PR tree-optimization/69956
7875 * tree-vect-stmts.c (supportable_widening_operation): Support
7876 multi-step conversion of boolean vectors.
7877 (supportable_narrowing_operation): Likewise.
7878
7879 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7880
7881 * config/s390/s390.c (s390_decompose_address): Don't accept SImode
7882 anymore.
7883
7884 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7885
7886 * config/s390/subst.md (DSI_VI): New mode iterator.
7887 ("addr_style_op_subst"): Use DSI_VI instead of DSI.
7888 * config/s390/vector.md ("vec_set<mode>"): Move expander before
7889 the insn definition.
7890 ("*vec_set<mode>"): Change predicate and add alternative to
7891 support only either register or const_int operands as element
7892 selector.
7893 ("*vec_set<mode>_plus"): New pattern to support reg + const_int
7894 operands.
7895 ("vec_extract<mode>"): New expander.
7896 ("*vec_extract<mode>"): New insn definition supporting reg and
7897 const_int element selectors.
7898 ("*vec_extract<mode>_plus"): New insn definition supporting
7899 reg+const_int element selectors.
7900 ("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
7901 following expander+insn definition.
7902 ("<vec_shifts_name><mode>3"): New expander.
7903 ("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.
7904
7905 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7906
7907 * config/s390/s390.md ("*tabort_1"): Change predicate to
7908 nonmemory_operand. Add a second alternative to cover
7909 register as well as const int operands.
7910 ("*tabort_1_plus"): New pattern definition.
7911
7912 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7913
7914 * config/s390/s390.md ("*ashrdi3_cc_31")
7915 ("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
7916 ("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
7917 Merge insn definitions into ...
7918 ("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
7919 New pattern definition.
7920 ("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
7921 ("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
7922 ("*ashr<mode>3_and"): Merge insn definitions into ...
7923 ("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
7924 New pattern definition.
7925 * config/s390/subst.md ("addr_style_op_cc_subst")
7926 ("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
7927 substitutions patterns plus attributes.
7928 Add ashiftrt to SUBST iterator.
7929
7930 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7931
7932 * config/s390/s390.md ("<shift><mode>3"): Change predicate of
7933 op2 to nonmemory_operand.
7934 ("*<shift>di3_31", "*<shift>di3_31_and"):
7935 Merge into single pattern definition ...
7936 ("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
7937 ("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
7938 pattern definition ...
7939 ("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
7940 * config/s390/subst.md: Add ashift and lshiftrt to SUBST
7941 iterator.
7942
7943 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7944
7945 * config/s390/predicates.md (const_int_6bitset_operand): New
7946 predicate.
7947 * config/s390/s390.md: Include subst.md.
7948 ("rotl<mode>3"): New expander.
7949 ("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
7950 ...
7951 ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
7952 * config/s390/subst.md: New file.
7953
7954 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7955
7956 * config/s390/s390.md ("op_type", "atype", "length" attributes):
7957 Remove RRR type. It doesn't really exist.
7958 ("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
7959 attributes.
7960 ("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
7961 ("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
7962 ("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
7963 ("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
7964 ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
7965 ("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
7966 `enabled' attribute.
7967
7968 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7969
7970 * gensupport.c (process_substs_on_one_elem): Split loop to
7971 complete mark_operands_used_in_match_dup on all expressions in the
7972 vector first.
7973 (adjust_operands_numbers): Inline into process_substs_on_one_elem
7974 and remove function.
7975
7976 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
7977
7978 PR target/69706
7979 * config/sparc/sparc.c (NWORDS_UP): Rename to...
7980 (CEIL_NWORDS): ...this. Use CEIL macro.
7981 (compute_fp_layout): Adjust to above renaming.
7982 (function_arg_union_value): Likewise.
7983 (sparc_arg_partial_bytes): Likewise.
7984 (sparc_function_arg_advance): Likewise.
7985
7986 2016-02-29 Jeff Law <law@redhat.com>
7987
7988 PR tree-optimization/70005
7989 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
7990 where an object with a boolean range is compared against a value
7991 outside [0..1].
7992
7993 PR tree-optimization/69999
7994 * gimple-ssa-split-paths.c (split_paths): When duplicating a block
7995 with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule
7996 loop cleanups.
7997
7998 2016-02-29 Richard Biener <rguenther@suse.de>
7999
8000 PR tree-optimization/69994
8001 * tree-ssa-reassoc.c (gimple_nop_conversion_p): New function.
8002 (get_unary_op): Look through nop conversions.
8003 (ops_equal_values_p): New function, look for equality diregarding
8004 nop conversions.
8005 (eliminate_plus_minus_pair): Use ops_equal_values_p
8006 (repropagate_negates): Do not use get_unary_op here.
8007
8008 2016-02-29 Martin Liska <mliska@suse.cz>
8009
8010 * system.h: Poison ENABLE_CHECKING macro.
8011
8012 2016-02-29 Martin Liska <mliska@suse.cz>
8013
8014 * hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS
8015 is presented in dump flags.
8016 * hsa-regalloc.c (linear_scan_regalloc): Likewise.
8017 (hsa_regalloc): Likewise.
8018
8019 2016-02-19 Richard Biener <rguenther@suse.de>
8020
8021 PR tree-optimization/69980
8022 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
8023 permutation of those we need to keep.
8024
8025 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
8026
8027 PR target/69706
8028 * config/sparc/sparc.c (ROUND_ADVANCE): Rename to...
8029 (NWORDS_UP): ...this
8030 (init_cumulative_args): Minor tweaks.
8031 (sparc_promote_function_mode): Likewise.
8032 (scan_record_type): Delete.
8033 (traverse_record_type): New function template.
8034 (classify_data_t): New structure type.
8035 (classify_registers): New inline function.
8036 (function_arg_slotno): In 64-bit mode, bail out early if FP slots are
8037 exhausted. Instantiate traverse_record_type on classify_registers and
8038 deal with the case of a structure passed in slot #15 with no FP field
8039 in the first word.
8040 (assign_data_t): New structure type.
8041 (compute_int_layout): New static function.
8042 (compute_fp_layout): Likewise.
8043 (count_registers): New inline function.
8044 (assign_int_registers): New static function.
8045 (assign_fp_registers): Likewise.
8046 (assign_registers): New inline function.
8047 (function_arg_record_value_1): Delete.
8048 (function_arg_record_value_2): Likewise.
8049 (function_arg_record_value_3): Likewise.
8050 (function_arg_record_value): Adjust to above changes. Instantiate
8051 traverse_record_type on count_registers to first count the number of
8052 registers to be used and then on assign_registers to assign them.
8053 (function_arg_union_value): Adjust to above renaming.
8054 (sparc_function_arg_1); Minor tweaks. Remove commented out code.
8055 (sparc_arg_partial_bytes): Adjust to above renaming. Deal with the
8056 case of a structure passed in slot #15
8057 (sparc_function_arg_advance): Likewise.
8058 (function_arg_padding): Minor tweak.
8059
8060 2016-02-29 Richard Biener <rguenther@suse.de>
8061
8062 PR tree-optimization/69720
8063 * tree-vect-loop.c (get_initial_def_for_reduction): Avoid
8064 the adjustment_def path for possibly vectorized defs.
8065 (vect_create_epilog_for_reduction): Handle vectorized initial
8066 defs properly.
8067
8068 2016-02-28 Eric Botcazou <ebotcazou@adacore.com>
8069
8070 * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
8071
8072 2016-02-27 Jeff Law <law@redhat.com>
8073
8074 Revert
8075 2016-02-26 Richard Biener <rguenther@suse.de>
8076 Jeff Law <law@redhat.com>
8077
8078 PR tree-optimization/69740
8079 * cfghooks.c (remove_edge): Request loop fixups if we delete
8080 an edge that might turn an irreducible loop into a natural
8081 loop.
8082
8083 2016-02-27 Jakub Jelinek <jakub@redhat.com>
8084
8085 PR rtl-optimization/69896
8086 * tree-vect-generic.c (get_compute_type): Avoid single element
8087 vector types.
8088
8089 2016-02-26 Evandro Menezes <e.menezes@samsung.com>
8090
8091 Rename the AArch64 tuning option and related functions to enable the
8092 Newton series for the reciprocal square root to reflect its
8093 approximative characteristic.
8094
8095 * config/aarch64/aarch64-protos.h (aarch64_emit_swrsqrt): Rename
8096 function to "aarch64_emit_approx_rsqrt".
8097 * config/aarch64/aarch64-tuning-flags.def: Rename tuning flag to
8098 AARCH64_EXTRA_TUNE_APPROX_RSQRT.
8099 * config/aarch64/aarch64.c (exynosm1_tunigs): Use new flag name.
8100 (xgene1_tunings): Likewise.
8101 (use_rsqrt_p): Likewise.
8102 (aarch64_emit_swrsqrt): Use new function name.
8103 * config/aarch64/aarch64-simd.md (aarch64_rsqrts_*): Likewise.
8104 * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): Reword the
8105 text explaining this option.
8106 * doc/invoke.texi (-mlow-precision-recip-sqrt): Likewise.
8107
8108 2016-02-26 Jakub Jelinek <jakub@redhat.com>
8109
8110 PR target/69969
8111 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
8112 complain about -mallow-movmisalign without -mvsx if
8113 TARGET_ALLOW_MOVMISALIGN was not set explicitly.
8114
8115 2016-02-26 Joel Sherrill <joel@rtems.org>
8116
8117 * config.gcc: Add x86_64-*-rtems*.
8118 * config/i386/rtems-64.h: New file.
8119
8120 2016-02-26 Joel Sherrill <joel@rtems.org>
8121
8122 * config.gcc: Add aarch64-*-rtems*.
8123 * config/aarch64/rtems.h: New file.
8124
8125 2016-02-26 Segher Boessenkool <segher@kernel.crashing.org>
8126
8127 PR target/69946
8128 * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
8129 shift amount using %h. Add comment.
8130
8131 2016-02-26 Richard Biener <rguenther@suse.de>
8132 Jeff Law <law@redhat.com>
8133
8134 PR tree-optimization/69740
8135 * cfghooks.c (remove_edge): Request loop fixups if we delete
8136 an edge that might turn an irreducible loop into a natural
8137 loop.
8138
8139 2016-02-26 Martin Jambor <mjambor@suse.cz>
8140
8141 PR middle-end/69920
8142 * tree-sra.c (sra_modify_assign): Do not remove loads of
8143 uninitialized aggregates to SSA_NAMEs.
8144
8145 2016-02-26 Richard Henderson <rth@redhat.com>
8146
8147 PR target/69709
8148 * config/s390/s390.md (risbg and risbgn splitters): Allocate new
8149 pseudo in case the target rtx matches the source of the left
8150 shift.
8151
8152 2016-02-26 Martin Jambor <mjambor@suse.cz>
8153
8154 PR hsa/69568
8155 * hsa.h (hsa_type_packed_p): Declare.
8156 * hsa.c (hsa_type_packed_p): New function.
8157 * hsa-gen.c (mem_type_for_type): Use unsigned type for packed
8158 loads.
8159 (gen_hsa_insns_for_store): Use hsa_type_packed_p.
8160 * hsa-brig.c (emit_basic_insn): Likewise.
8161
8162 2016-02-26 Martin Jambor <mjambor@suse.cz>
8163
8164 pr hsa/69674
8165 * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
8166 pointers.
8167 (gen_hsa_addr): Allow integer constants in TMR_INDEX2.
8168
8169 2016-02-26 Martin Jambor <mjambor@suse.cz>
8170
8171 * hsa.h (is_a_helper): New overload for hsa_op_immed for
8172 hsa_op_with_type operands.
8173 (hsa_unsigned_type_for_type): Declare.
8174 * hsa.c (hsa_unsigned_type_for_type): New function.
8175 * hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type.
8176 (gen_hsa_insns_for_operation_assignment): Satisfy constrains of
8177 the finalizer. Do not emit extra move.
8178
8179 2016-02-26 Martin Jambor <mjambor@suse.cz>
8180
8181 * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
8182 atomic operations in private segment.
8183
8184 2016-02-26 Martin Jambor <mjambor@suse.cz>
8185
8186 * omp-low.c (grid_find_ungridifiable_statement): Store problematic
8187 statements to wi->info. Also disallow omp simd constructs.
8188 (grid_target_follows_gridifiable_pattern): Use wi.info to dump reason
8189 for not gridifying. Dump special string for omp_for.
8190
8191 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8192
8193 PR target/69245
8194 * config/aarch64/aarch64.c (aarch64_set_current_function):
8195 Save/restore target globals when switching to
8196 target_option_default_node.
8197
8198 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8199
8200 PR target/69613
8201 * config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
8202 Return 0 if !SHIFT_COUNT_TRUNCATED.
8203
8204 2016-02-26 Jakub Jelinek <jakub@redhat.com>
8205 Eric Botcazou <ebotcazou@adacore.com>
8206
8207 PR rtl-optimization/69891
8208 * dse.c (scan_insn): If we can't figure out memset arguments
8209 or they are non-constant, call clear_rhs_from_active_local_stores.
8210
8211 2016-02-26 Martin Liska <mliska@suse.cz>
8212
8213 * doc/extend.texi: Mention clog10, clog10f an clog10l
8214 in Builtins section.
8215
8216 2016-02-26 Martin Liska <mliska@suse.cz>
8217
8218 * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
8219 CHECKING_P.
8220 (resolve_args_picking_1): Likewise.
8221 * dwarf2out.h (struct GTY): Likewise.
8222
8223 2016-02-26 Martin Liska <mliska@suse.cz>
8224
8225 * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
8226 with flag_checking.
8227 * hsa-regalloc.c (linear_scan_regalloc): Likewise.
8228
8229 2016-02-26 Markus Trippelsdorf <markus@trippelsdorf.de>
8230 Martin Liska <mliska@suse.cz>
8231
8232 * doc/install.texi: Mention --enable-valgrind-annotations.
8233
8234 2016-02-26 Richard Biener <rguenther@suse.de>
8235
8236 PR tree-optimization/69551
8237 * tree-ssa-structalias.c (get_constraint_for_ssa_var): When
8238 looking through aliases adjust DECL_PT_UID to refer to the
8239 ultimate alias target.
8240
8241 2016-02-25 Martin Liska <mliska@suse.cz>
8242
8243 PR middle-end/69919
8244 * alloc-pool.c (after_memory_report): New variable.
8245 * alloc-pool.h (base_pool_allocator ::release): Do not use
8246 the infrastructure if after_memory_report.
8247 * toplev.c (toplev::main): Mark after memory report.
8248
8249 2016-02-25 Richard Biener <rguenther@suse.de>
8250
8251 PR tree-optimization/48795
8252 * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
8253
8254 2016-02-25 Ilya Verbin <ilya.verbin@intel.com>
8255
8256 PR driver/68463
8257 * config/gnu-user.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o if
8258 offloading is enabled and -fopenacc or -fopenmp is specified.
8259 (CRTOFFLOADEND): Likewise.
8260 (GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
8261 (GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
8262 * lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
8263 (offload_objects_file_name): New static var.
8264 (tool_cleanup): Remove offload_objects_file_name file.
8265 (find_offloadbeginend): Replace with ...
8266 (find_crtoffloadtable): ... this.
8267 (run_gcc): Remove offload_argc and offload_argv.
8268 Get offload_objects_file_name from -foffload-objects=... option.
8269 Read names of object files with offload from this file, pass them to
8270 compile_images_for_offload_targets. Don't call find_offloadbeginend and
8271 don't pass offloadbegin and offloadend to the linker. Don't pass
8272 offload non-LTO files to the linker, because now they're not claimed.
8273
8274 2016-02-25 Jan Hubicka <hubicka@ucw.cz>
8275
8276 PR ipa/69630
8277 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
8278 on builtin_unreachable.
8279
8280 2016-02-25 Jakub Jelinek <jakub@redhat.com>
8281
8282 PR rtl-optimization/69896
8283 * regcprop.c: Include cfgrtl.h.
8284 (copyprop_hardreg_forward_1): If noop_p insn uses narrower
8285 than remembered mode, either delete it (if noop_move_p), or
8286 treat like copy_p but not noop_p instruction.
8287
8288 2016-02-24 Jakub Jelinek <jakub@redhat.com>
8289
8290 PR debug/69705
8291 * dwarf2out.c (gen_variable_die): Work around buggy LTO
8292 - allow NULL decl for Fortran DW_TAG_common_block variables.
8293
8294 2016-02-24 Jason Merrill <jason@redhat.com>
8295
8296 * common.opt (flifetime-dse): Add -flifetime-dse=1.
8297
8298 2016-02-24 Richard Biener <rguenther@suse.de>
8299 Jakub Jelinek <jakub@redhat.com>
8300
8301 PR middle-end/69760
8302 * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
8303 conditionally executed ops to well-defined overflow behavior.
8304
8305 2016-02-24 Jakub Jelinek <jakub@redhat.com>
8306
8307 PR middle-end/69915
8308 * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
8309 elements.
8310
8311 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8312
8313 PR rtl-optimization/69886
8314 * gcse.c (can_assign_to_reg_without_clobbers_p): Accept mode
8315 argument. Use it when checking validity of set instructions.
8316 (want_to_gcse_p): Pass mode to can_assign_to_reg_without_clobbers_p.
8317 (compute_ld_motion_mems): Update can_assign_to_reg_without_clobbers_p
8318 callsite.
8319 * rtl.h (can_assign_to_reg_without_clobbers_p): Update prototype.
8320 * store-motion.c (find_moveable_store): Update
8321 can_assign_to_reg_without_clobbers_p callsite.
8322
8323 2016-02-24 Richard Biener <rguenther@suse.de>
8324
8325 PR middle-end/68963
8326 * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
8327 bogus check.
8328 (record_nonwrapping_iv): Do not fall back to the low/high bound
8329 for non-constant IV bases if the stmt is not always executed.
8330
8331 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8332
8333 * config/arm/arm-cores.def (cortex-a32): New entry.
8334 * config/arm/arm-tables.opt: Regenerate.
8335 * config/arm/arm-tune.md: Regenerate.
8336 * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a32.
8337 * config/arm/t-aprofile: Handle mcpu=cortex-a32.
8338 * doc/invoke.texi (ARM Options): Document cortex-a32 as value
8339 for -mcpu and -mtune.
8340
8341 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8342
8343 PR target/69875
8344 * config/arm/arm.h (TARGET_HAVE_LPAE): Define.
8345 * config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value.
8346 * config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern.
8347 (atomic_loaddi_1): Delete.
8348 (atomic_loaddi): Rewrite expander using the above changes.
8349
8350 2016-02-24 Jakub Jelinek <jakub@redhat.com>
8351
8352 PR c/69918
8353 * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
8354 2 to 3.
8355
8356 2016-02-24 Jakub Jelinek <jakub@redhat.com>
8357 Richard Biener <rguenth@suse.de>
8358
8359 PR middle-end/69909
8360 * expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid
8361 set_mem_attributes if tem is SSA_NAME which got expanded
8362 as a MEM.
8363
8364 2016-02-24 Richard Biener <rguenther@suse.de>
8365
8366 PR tree-optimization/69907
8367 * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
8368 end of permutations for BB vectorization.
8369
8370 2016-02-24 Christian Bruel <christian.bruel@st.com>
8371
8372 * config/arm/arm-c.c (arm_option_override): Initialize
8373 target_option_current_node.
8374 * config/arm/arm.c (arm_pragma_target_parse): Replace
8375 build_target_option_node call by target_option_current_node.
8376 Set target_option_current_node.
8377 Fix comments.
8378
8379 2016-02-23 David Edelsohn <dje.gcc@gmail.com>
8380
8381 PR target/69810
8382 * config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
8383 define_insn_and_split to define_insn.
8384 (zero_extendqi<mode>2_dot2): Same.
8385 (extendqi<mode>2_dot): Same.
8386 (extendqi<mode>2_dot2): Same.
8387
8388 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
8389
8390 * config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores
8391 and add bypass for AES{D,E} and AESMC pairs.
8392 * config/aarch64/aarch64.c (exynosm1_tunings): Enable fusion of AES{D,E}
8393 and AESMC pairs.
8394
8395 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
8396
8397 * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
8398 series for reciprocal square root in Exynos M1.
8399
8400 2016-02-23 Martin Sebor <msebor@redhat.com>
8401
8402 PR c/69759
8403 * doc/extend.texi (Other Builtins): Document __builtin_alloca and
8404 __builtin_alloca_with_align.
8405
8406 2016-02-23 Richard Henderson <rth@redhat.com>
8407
8408 * config/i386/i386-c.c (ix86_target_macros): Remove __SEG_TLS.
8409 (ix86_register_pragmas): Remove __seg_tls.
8410 * config/i386/i386-protos.h (ADDR_SPACE_SEG_TLS): Remove.
8411 * config/i386/i386.c (ix86_print_operand_address_as): Don't handle it.
8412 (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): Remove.
8413 (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): Remove.
8414 (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): Remove.
8415 * doc/extend.texi (__seg_tls): Remove item.
8416
8417 2016-02-23 Richard Biener <rguenther@suse.de>
8418
8419 * alloc-pool.h (struct allocation_object): Make id member
8420 conditional on CHECKING_P again.
8421 (get_instance): Adjust.
8422 (base_pool_allocator): Likewise.
8423
8424 2016-02-23 Thomas Schwinge <thomas@codesourcery.com>
8425
8426 * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
8427 (parallelize_loops): In OpenACC kernels mode, set n_threads to
8428 zero.
8429 (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
8430 flag_openacc.
8431 * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
8432
8433 2016-02-23 Richard Biener <rguenther@suse.de>
8434
8435 * mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
8436 * bitmap.h (struct bitmap_usage): Likewise.
8437 (bitmap_move): Declare.
8438 * bitmap.c (register_overhead): Take size_t argument.
8439 (bitmap_move): New function.
8440 * df-problems.c (df_rd_transfer_function): Use bitmap_move
8441 to properly account overhead.
8442 * tree.c (free_node): Use tree_size.
8443
8444 2016-02-23 Jakub Jelinek <jakub@redhat.com>
8445
8446 PR c++/69902
8447 * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
8448 when inverting comparison.
8449
8450 PR c/69900
8451 * common.opt (Wunreachable-code): Add Warning flag.
8452
8453 2016-02-23 Mark Wielaard <mjw@redhat.com>
8454 Jakub Jelinek <jakub@redhat.com>
8455
8456 PR c/69911
8457 * cgraphunit.c (check_global_declaration): Check main_input_filename
8458 and DECL_SOURCE_FILE are not NULL.
8459
8460 2016-02-23 Martin Jambor <mjambor@suse.cz>
8461
8462 PR tree-optimization/69666
8463 * tree-sra.c (sra_modify_assign): Do not attempt to create
8464 default_def replacements for unscalarizable regions.
8465
8466 2016-02-20 Mark Wielaard <mjw@redhat.com>
8467
8468 PR c/28901
8469 * cgraphunit.c (check_global_declaration): Check level of
8470 warn_unused_const_variable and main_input_filename.
8471 * doc/invoke.texi (Warning Options): Add -Wunused-const-variable=.
8472 (-Wunused-variable): For C implies -Wunused-const-variable=1.
8473 (-Wunused-const-variable): Explain levels 1 and 2.
8474
8475 2016-02-22 Jakub Jelinek <jakub@redhat.com>
8476
8477 PR target/69888
8478 * config/i386/i386.c (decide_alg): Ensure we don't recurse with
8479 identical arguments. Formatting and spelling fixes.
8480
8481 PR target/69885
8482 * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
8483 be specified.
8484
8485 PR target/69894
8486 PR target/69895
8487 * config/m68k/t-opts (OPTIONS_H_EXTRA): Add m68k-microarchs.def
8488 and m68k-devices.def.
8489 * config/c6x/t-c6x (OPTIONS_H_EXTRA): Add c6x-isas.def.
8490 * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add aarch64-arches.def.
8491
8492 2016-02-22 Cesar Philippidis <cesar@codesourcery.com>
8493
8494 * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
8495 and HImode registers.
8496
8497 2016-02-22 Richard Biener <rguenther@suse.de>
8498
8499 PR tree-optimization/69882
8500 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Properly
8501 preserve permutations present because of gaps.
8502 (vect_supported_load_permutation_p): Always continue checking
8503 permutations after vect_attempt_slp_rearrange_stmts.
8504
8505 2016-02-22 Bin Cheng <bin.cheng@arm.com>
8506
8507 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
8508 min_profitable_estimate, rather than min_profitable_iters.
8509
8510 2016-02-22 Jakub Jelinek <jakub@redhat.com>
8511
8512 PR target/69885
8513 * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
8514 SImode for last match_operand.
8515
8516 2016-02-22 Martin Liska <mliska@suse.cz>
8517
8518 * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
8519 return bitsize - 1 as the return value.
8520
8521 2016-02-22 Oleg Endo <olegendo@gcc.gnu.org>
8522
8523 PR target/69806
8524 PR target/54089
8525 * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
8526 Handle negative shift counts.
8527 * config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
8528 force_reg on the shift constant.
8529 (lshrsi3): Likewise. Expand into lshrsi3_n* instead of lshrsi3_d.
8530 (lshrsi3_d): Handle negative shift counts.
8531
8532 2016-02-22 Richard Biener <rguenther@suse.de>
8533 Tom de Vries <tom@codesourcery.com>
8534
8535 * graph.c: Include dumpfile.h.
8536 (print_graph_cfg): Split into three overloads.
8537 * gdbhooks.py (class DotFn): Add and instantiate, adding command dot-fn.
8538
8539 2016-02-22 Tom de Vries <tom@codesourcery.com>
8540
8541 * gdbhooks.py (class DumpFn): Add and instantiate, adding command
8542 dump-fn.
8543
8544 2016-02-22 Richard Biener <rguenther@suse.de>
8545
8546 PR ipa/37448
8547 * ipa-inline-transform.c (inline_call): When not updating
8548 overall summaries adjust self size by the growth estimate.
8549 * ipa-inline.c (inline_to_all_callers_1): Add to the callers
8550 hash-set, do not update overall summaries here. Renamed from ...
8551 (inline_to_all_callers): ... this which is now wrapping the
8552 above and performing delayed overall summary update.
8553 (early_inline_small_functions): Delay updating of the overall
8554 summary.
8555
8556 2016-02-21 Markus Trippelsdorf <markus@trippelsdorf.de>
8557
8558 * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
8559 variable.
8560
8561 2016-02-19 Jakub Jelinek <jakub@redhat.com>
8562
8563 PR driver/69805
8564 * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use
8565 :%* in %:gt() argument.
8566 (greater_than_spec_func): Adjust for expecting only numbers,
8567 if there are more than two numbers, compare the last two.
8568
8569 2016-02-19 Jonathan Wakely <jwakely@redhat.com>
8570
8571 * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
8572 -Wnarrowing with -std.
8573
8574 2016-02-19 Jakub Jelinek <jakub@redhat.com>
8575
8576 PR c++/69851
8577 * expr.c (store_field): Don't use bit-field path if exp is
8578 COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is
8579 different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize
8580 and the assignment can be performed by bitwise copy. Formatting
8581 fix.
8582
8583 PR middle-end/69838
8584 * lra.c (lra_process_new_insns): If non-call exceptions are enabled,
8585 call copy_reg_eh_region_note_forward on before and/or after sequences
8586 and remove note from insn if it no longer can throw.
8587
8588 PR target/69820
8589 * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
8590 if TARGET_AVX512BW.
8591
8592 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8593
8594 * config/s390/vector.md: Add missing commutative operand markers
8595 to the patterns which qualify for one.
8596 * config/s390/vx-builtins.md: Likewise.
8597
8598 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8599
8600 * config/s390/vector.md (VI, VI_QHS): Add single element vector
8601 types to mode iterators.
8602 (vec_double): ... and mode attribute.
8603 * config/s390/vx-builtins.md (non_vec_int): Likewise.
8604
8605 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8606
8607 * config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
8608 Change the predicate of op2 from nonimmediate to general and let
8609 reload fix it if necessary.
8610
8611 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8612
8613 * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
8614
8615 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8616
8617 * config/s390/s390.c (s390_expand_vcond): Use the compare operand
8618 mode.
8619
8620 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8621
8622 * config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
8623 * config/s390/s390.c (s390_expand_vec_movstr): New function.
8624 * config/s390/s390.md ("movstr<P:mode>"): Call
8625 s390_expand_vec_movstr.
8626
8627 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8628
8629 * config/s390/s390.md: Add missing output modifier for operand 1
8630 to print it as address properly.
8631
8632 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8633
8634 * config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
8635 * config/s390/2964.md: New file.
8636 * config/s390/s390.c (s390_get_sched_attrmask): Use the right set
8637 of insn grouping attributes depending on the CPU level.
8638 (s390_get_unit_mask): New function.
8639 (s390_sched_score): Remove the OOO from the scheduling macros.
8640 Add loop to calculate a score for the instruction mix.
8641 (s390_sched_reorder): Likewise plus improve debug output.
8642 (s390_sched_variable_issue): Rename macros as above. Calculate
8643 the unit distances after actually scheduling an insn. Improve
8644 debug output.
8645 (s390_sched_init): Clear last_scheduled_unit_distance array.
8646 * config/s390/s390.md: Include 2964.md.
8647
8648 2016-02-18 Jakub Jelinek <jakub@redhat.com>
8649
8650 PR target/69671
8651 * config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
8652 *avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
8653 *avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
8654 *avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
8655 *avx512f_<code>v8div16qi2_mask_1): New insns.
8656
8657 2016-02-18 Michael Meissner <meissner@linux.vnet.ibm.com>
8658
8659 PR target/68404
8660 * config/rs6000/predicates.md (fusion_gpr_addis): Revert
8661 2016-02-09 change.
8662
8663 * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
8664 earlyclobber from target. Use wF constraint for fused memory
8665 address.
8666 (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
8667
8668 2016-02-18 Jakub Jelinek <jakub@redhat.com>
8669 Martin Liska <mliska@suse.cz>
8670
8671 PR sanitizer/69863
8672 * cfgexpand.c (asan_sanitize_stack_p): New function.
8673 (partition_stack_vars): Use the function.
8674 (expand_stack_vars): Likewise.
8675 (defer_stack_allocation): Likewise.
8676 (expand_used_vars): Likewise.
8677
8678 2016-02-18 Richard Biener <rguenther@suse.de>
8679
8680 PR middle-end/69553
8681 * fold-const.c (operand_equal_p): Properly compare offsets for
8682 IMAGPART_EXPR and ARRAY_REF.
8683
8684 2016-02-18 Nick Clifton <nickc@redhat.com>
8685
8686 PR target/62254
8687 PR target/69610
8688 * config/arm/arm.c (arm_option_override_internal): Disable
8689 interworking if the target does not support thumb instructions.
8690 (arm_reload_in_hi): Handle the case where a register to register
8691 move needs reloading because there is no simple pattern to handle
8692 it.
8693 (arm_reload_out_hi): Likewise.
8694
8695 2016-02-18 Richard Biener <rguenther@suse.de>
8696
8697 PR middle-end/69854
8698 * match.pd: Don't use fold_binary or fold_unary for folding
8699 constants.
8700
8701 2016-02-17 Jakub Jelinek <jakub@redhat.com>
8702
8703 PR c++/69850
8704 * gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
8705 on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
8706 * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
8707 warn on gimple_no_warning_p statements.
8708
8709 2016-02-17 Jonathan Wakely <jwakely@redhat.com>
8710
8711 * doc/extend.texi (C++ Attributes): Correct description of
8712 warn_unused type attribute.
8713
8714 2016-02-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8715
8716 * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
8717 correct instruction.
8718
8719 2016-02-17 Richard Biener <rguenther@suse.de>
8720
8721 PR rtl-optimization/69609
8722 * bb-reorder.c (struct bbro_basic_block_data): Add priority member.
8723 (find_traces_1_round): When ending a trace update cached priority
8724 of successors.
8725 (bb_to_key): Use cached priority when available.
8726 (copy_bb): Initialize cached priority.
8727 (reorder_basic_blocks_software_trace_cache): Likewise.
8728
8729 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8730
8731 PR target/69161
8732 * config/aarch64/predicates.md (aarch64_comparison_operator_mode):
8733 New predicate.
8734 (aarch64_comparison_operator): Break overly long line into two.
8735 (aarch64_comparison_operation): Likewise.
8736 * config/aarch64/aarch64.md (cstorecc4): Use
8737 aarch64_comparison_operator_mode instead of
8738 aarch64_comparison_operator.
8739 (cstore<mode>4): Likewise.
8740 (aarch64_cstore<mode>): Likewise.
8741 (*cstoresi_insn_uxtw): Likewise.
8742 (cstore<mode>_neg): Likewise.
8743 (*cstoresi_neg_uxtw): Likewise.
8744
8745 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8746
8747 PR target/69161
8748 * config/arm/predicates.md (arm_comparison_operator_mode):
8749 New predicate.
8750 * config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode
8751 instead of arm_comparison_operator.
8752 (*mov_negscc): Likewise.
8753 (*mov_notscc): Likewise.
8754 * config/arm/thumb2.md (*thumb2_mov_scc): Likewise.
8755 (*thumb2_mov_negscc): Likewise.
8756 (*thumb2_mov_negscc_strict_it): Likewise.
8757 (*thumb2_mov_notscc): Likewise.
8758 (*thumb2_mov_notscc_strict_it): Likewise.
8759
8760 2016-02-17 Wilco Dijkstra <wdijkstr@arm.com>
8761
8762 * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
8763 Add missing return.
8764
8765 2016-02-17 Eric Botcazou <ebotcazou@adacore.com>
8766
8767 * config/visium/visium.c (machine_libfunc_index): New enum.
8768 (machine_libfuncs): New structure.
8769 (visium_libfuncs): New static variable.
8770 (TARGET_INIT_LIBFUNCS): Define to...
8771 (visium_init_libfuncs): ...this. New function.
8772 (expand_block_move_4): Use the appropriate libfunc.
8773 (expand_block_move_2): Likewise.
8774 (expand_block_move_1): Likewise.
8775 (expand_block_set_4): Likewise.
8776 (expand_block_set_2): Likewise.
8777 (expand_block_set_1): Likewise.
8778 (visium_trampoline_init): Likewise.
8779
8780 2016-02-17 Nick Clifton <nickc@redhat.com>
8781
8782 * config/msp430/msp430.c (msp430_mcu_data): Sync with data from
8783 TI's devices.csv file as of March 2016.
8784
8785 2016-02-16 Kelvin Nilsen <kelvin@gcc.gnu.org>
8786
8787 PR Target/48344
8788 * opts-global.c (handle_common_deferred_options): Introduce and
8789 initialize two global variables to remember command-line options
8790 specifying a stack-limiting register.
8791 * opts.h: Add extern declarations of the two new global variables.
8792 * emit-rtl.c (init_emit_once): Initialize the stack_limit_rtx
8793 variable based on the values of the two new global variables.
8794
8795 2016-02-16 Jakub Jelinek <jakub@redhat.com>
8796
8797 PR c/69835
8798 * common.opt (Wnonnull-compare): New warning.
8799 * doc/invoke.texi (-Wnonnull): Remove text about comparison
8800 of arguments against NULL.
8801 (-Wnonnull-compare): Document.
8802 * Makefile.in (OBJS): Add gimple-ssa-nonnull-compare.o.
8803 * tree-pass.h (make_pass_warn_nonnull_compare): Declare.
8804 * passes.def (pass_warn_nonnull_compare): Add.
8805 * gimple-ssa-nonnull-compare.c: New file.
8806
8807 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
8808
8809 * config/aarch64/aarch64.c (cortexa57_tunings): Remove
8810 AARCH64_EXTRA_TUNE_RECIP_SQRT.
8811
8812 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
8813
8814 * config/aarch64/aarch64.c (use_rsqrt_p): Always use software
8815 reciprocal sqrt for -mlow-precision-recip-sqrt.
8816
8817 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
8818 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8819
8820 * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
8821 always use lane loads to construct non-constant vectors.
8822
8823 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
8824
8825 * config/aarch64/aarch64.md
8826 (arch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Fix register
8827 constraints for operand 3.
8828 (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
8829
8830 2016-02-16 Jakub Jelinek <jakub@redhat.com>
8831 Richard Biener <rguenther@suse.de>
8832
8833 PR tree-optimization/69820
8834 * tree-vect-patterns.c (type_conversion_p): Return false if
8835 *orig_type is unsigned single precision or boolean.
8836 (vect_recog_dot_prod_pattern, vect_recog_widen_mult_pattern):
8837 Formatting fix.
8838
8839 2016-02-16 Jakub Jelinek <jakub@redhat.com>
8840
8841 PR rtl-optimization/69764
8842 PR rtl-optimization/69771
8843 * optabs.c (expand_binop): Ensure for shift optabs invalid CONST_INT
8844 op1 is valid for GET_MODE_INNER (mode) and force it into a reg.
8845
8846 2016-02-16 Richard Biener <rguenther@suse.de>
8847
8848 PR tree-optimization/69776
8849 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
8850 sets from caller.
8851 (indirect_refs_may_alias_p): Likewise.
8852 (refs_may_alias_p_1): Pass alias sets as from ao_ref.
8853 * tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set
8854 according to tbaa_p.
8855 * tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag.
8856 (optimize_stmt): For redundant store discovery do not allow tbaa.
8857
8858 2016-02-16 Bernd Schmidt <bschmidt@redhat.com>
8859
8860 PR tree-optimization/69714
8861 * tree-ssa-math-opts.c (find_bswap_or_nop): Revert previous change.
8862 Return NULL if we have irrelevant high bytes on BIG_ENDIAN.
8863
8864 2016-02-16 Claudiu Zissulescu <claziss@synopsys.com>
8865
8866 * config/arc/arc-modes.def (CC_FPU, CC_FPU_UNEQ): New modes.
8867 * config/arc/arc-opts.h (FPU_SP, FPU_SF, FPU_SC, FPU_SD, FPU_DP)
8868 (FPU_DF, FPU_DC, FPU_DD, FXP_DP): Define.
8869 * config/arc/arc.c (arc_init): Check FPU options.
8870 (get_arc_condition_code): Handle new CC_FPU* modes.
8871 (arc_select_cc_mode): Likewise.
8872 (arc_conditional_register_usage): Allow 64 bit datum into even-odd
8873 register pair only. Allow access for ARCv2 accumulator.
8874 (gen_compare_reg): Whenever we have FPU support use FPU compare
8875 instructions.
8876 (arc_reorg): Don't generate brcc insns when FPU compare
8877 instructions are involved.
8878 * config/arc/arc.h (TARGET_DPFP): Add TARGET_FP_DPAX condition.
8879 (TARGET_OPTFPE): Add condition when ARC EM can use optimized
8880 floating point emulation.
8881 (ACC_REG_FIRST, ACC_REG_LAST, ACCL_REGNO, ACCH_REGNO): Define.
8882 (REVERSE_CONDITION): Add new CC_FPU* modes.
8883 (TARGET_FP_SP_BASE): Define.
8884 (TARGET_FP_DP_BASE): Likewise.
8885 (TARGET_FP_SP_FUSED): Likewise.
8886 (TARGET_FP_DP_FUSED): Likewise.
8887 (TARGET_FP_SP_CONV): Likewise.
8888 (TARGET_FP_DP_CONV): Likewise.
8889 (TARGET_FP_SP_SQRT): Likewise.
8890 (TARGET_FP_DP_SQRT): Likewise.
8891 (TARGET_FP_DP_AX): Likewise.
8892 * config/arc/arc.md (ARCV2_ACC): New constant.
8893 (type): New fpu type attribute.
8894 (SDF): Conditional iterator.
8895 (cstore<mode>, cbranch<mode>): Change expand condition.
8896 (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3): New expands,
8897 handles FPU/FPX cases as well.
8898 * config/arc/arc.opt (mfpu): New option.
8899 * config/arc/fpx.md (addsf3_fpx, subsf3_fpx, mulsf3_fpx):
8900 Renamed.
8901 (adddf3, muldf3, subdf3): Removed.
8902 * config/arc/predicates.md (proper_comparison_operator): Recognize
8903 CC_FPU* modes.
8904 * config/arc/fpu.md: New file.
8905 * doc/invoke.texi (ARC Options): Document mfpu option.
8906
8907 2016-02-16 Richard Biener <rguenther@suse.de>
8908
8909 PR rtl-optimization/69291
8910 * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
8911 noce_operand_ok check.
8912
8913 2016-02-16 Tom de Vries <tom@codesourcery.com>
8914
8915 PR lto/67709
8916 * omp-low.c (simd_clone_create): Remove call to
8917 symtab->call_cgraph_insertion_hooks.
8918
8919 2016-02-16 Jakub Jelinek <jakub@redhat.com>
8920
8921 PR tree-optimization/69802
8922 * tree-ssa-reassoc.c (update_range_test): If op is
8923 SSA_NAME_IS_DEFAULT_DEF, give up unless tem is a positive
8924 op == 1 test of precision 1 integral op, otherwise handle
8925 that case as op itself. Fix up formatting.
8926 (optimize_range_tests_to_bit_test, optimize_range_tests): Fix
8927 up formatting.
8928
8929 2016-02-16 Richard Biener <rguenther@suse.de>
8930
8931 PR tree-optimization/69586
8932 * tree-vrp.c (register_edge_assert_for_2): Handle all integral
8933 types for conversion sources.
8934
8935 2016-02-16 Richard Biener <rguenther@suse.de>
8936
8937 PR middle-end/69801
8938 * fold-const.c (operand_equal_p): For COND_EXPR zero operand
8939 mask OEP_ADDRESS_OF.
8940
8941 2016-02-16 Alan Modra <amodra@gmail.com>
8942
8943 PR target/68973
8944 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter.
8945 (p8_mtvsrd_df, p8_mtvsrd_sf): New.
8946 (p8_mtvsrd_1, p8_mtvsrd_2): Delete.
8947 (p8_mtvsrwz): New.
8948 (p8_mtvsrwz_1, p8_mtvsrwz_2): Delete.
8949 (p8_xxpermdi_<mode>): Take two DF inputs rather than one TF.
8950 (p8_fmrgow_<mode>): Likewise.
8951 (reload_vsx_from_gpr<mode>): Make clobber IF. Adjust for above
8952 changes.
8953 (reload_fpr_from_gpr<mode>): Similarly. Use "d" for op0 constraint.
8954 (reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting
8955 to use movdi_internal64. Remove op0_di.
8956 * config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode.
8957
8958 2016-02-15 Evandro Menezes <e.menezes@samsung.com>
8959
8960 Add support for the FCCMP insn types
8961
8962 * config/aarch64/aarch64.md (fccmp): Change insn type.
8963 (fccmpe): Likewise.
8964 * config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types.
8965 * config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise.
8966 * config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise.
8967 * config/arm/xgene1.md (xgene1_fcmp): Likewise.
8968 * config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation.
8969 * config/arm/types.md (fccmps): Add new insn type.
8970 (fccmpd): Likewise.
8971
8972 2016-02-15 Bernd Edlinger <bernd.edlinger@hotmail.de>
8973
8974 * alias.c (get_alias_set): Fix a typo in comment.
8975
8976 2016-02-15 Richard Biener <rguenther@suse.de>
8977
8978 PR tree-optimization/69595
8979 * match.pd: Complete range test simplification to true.
8980
8981 2016-02-15 Bernd Schmidt <bschmidt@redhat.com>
8982
8983 PR rtl-optimization/69648
8984 * lra-constraints.c (update_ebb_live_info): Don't remove sets of
8985 pic_offset_table_rtx.
8986
8987 PR rtl-optimization/69752
8988 * ira.c (update_equiv_regs): When looking for more than a single SET,
8989 also take other side effects into account.
8990
8991 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
8992
8993 * config/s390/s390.c (s390_function_profiler): Add a new sequence
8994 for z900+ CPUs in 31-bit mode.
8995
8996 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
8997
8998 * common/config/s390/s390-common.c (s390_supports_split_stack):
8999 New function.
9000 (TARGET_SUPPORTS_SPLIT_STACK): New macro.
9001 * config/s390/s390-protos.h: Add s390_expand_split_stack_prologue.
9002 * config/s390/s390.c (struct machine_function): New field
9003 split_stack_varargs_pointer.
9004 (s390_register_info): Mark r12 as clobbered if it'll be used as temp
9005 in s390_emit_prologue.
9006 (s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack
9007 vararg pointer.
9008 (morestack_ref): New global.
9009 (SPLIT_STACK_AVAILABLE): New macro.
9010 (s390_expand_split_stack_prologue): New function.
9011 (s390_live_on_entry): New function.
9012 (s390_va_start): Use split-stack vararg pointer if appropriate.
9013 (s390_asm_file_end): Emit the split-stack note sections.
9014 (TARGET_EXTRA_LIVE_ON_ENTRY): New macro.
9015 * config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec.
9016 (UNSPECV_SPLIT_STACK_CALL): New unspec.
9017 (UNSPECV_SPLIT_STACK_DATA): New unspec.
9018 (split_stack_prologue): New expand.
9019 (split_stack_space_check): New expand.
9020 (split_stack_data): New insn.
9021 (split_stack_call): New expand.
9022 (split_stack_call_*): New insn.
9023 (split_stack_cond_call): New expand.
9024 (split_stack_cond_call_*): New insn.
9025
9026 2016-02-15 Richard Biener <rguenther@suse.de>
9027
9028 PR tree-optimization/69783
9029 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
9030 Add trivially correct cases.
9031
9032 2016-02-15 Tom de Vries <tom@codesourcery.com>
9033
9034 PR lto/69655
9035 * lto-cgraph.c (input_offload_tables): Add and handle bool parameter
9036 do_force_output.
9037 * lto-streamer.h (input_offload_tables): Add and handle bool parameter.
9038
9039 2016-02-15 Richard Biener <rguenther@suse.de>
9040
9041 PR tree-optimization/69776
9042 * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
9043 * tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to
9044 indicate whether we can use TBAA to disambiguate against stores.
9045 Use alias-set zero if not.
9046 (visit_reference_op_store): Do not use TBAA when looking up
9047 redundant stores.
9048 * tree-ssa-pre.c (compute_avail): Use TBAA here.
9049 (eliminate_dom_walker::before_dom_children): But not when looking
9050 up redundant stores.
9051
9052 2016-02-14 John David Anglin <danglin@gcc.gnu.org>
9053
9054 * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.
9055
9056 2016-02-14 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
9057
9058 * config/i386/znver1.md
9059 (znver1_pop, znver1_pop_mem,
9060 znver1_load_imov_double_store,
9061 znver1_load_imov_direct_store,
9062 znver1_load_imov_direct_load,
9063 znver1_load_imov_double_load): Add new.
9064 (znver1_insn, znver1_insn_load): Add icmov type.
9065 (znver1_sseavx_fma,
9066 znver1_sseavx_fma_load,
9067 znver1_avx256_fma,
9068 znver1_avx256_fma_load): Fix pipe usage.
9069
9070 2016-02-14 Alan Modra <amodra@gmail.com>
9071
9072 PR target/68973
9073 * reloads.c (find_reloads_address_1): For pre/post-inc/dec
9074 with an invalid hard reg, reload just the reg not the entire
9075 pre/post-inc/dec address expression.
9076
9077 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
9078
9079 PR target/67260
9080 * config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with
9081 fixed R1_REG scratch reg.
9082 (sibcall_value_pcrel_fdpic): Likewise.
9083
9084 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
9085
9086 PR target/67636
9087 PR target/64345
9088 * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.
9089
9090 2016-02-12 Walter Lee <walt@tilera.com>
9091
9092 * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
9093 * config/tilegx/t-tilegx: Likewise.
9094
9095 2016-02-12 David Malcolm <dmalcolm@redhat.com>
9096
9097 PR other/69554
9098 * diagnostic-show-locus.c (struct line_span): New struct.
9099 (layout::get_first_line): Delete.
9100 (layout::get_last_line): Delete.
9101 (layout::get_num_line_spans): New member function.
9102 (layout::get_line_span): Likewise.
9103 (layout::print_heading_for_line_span_index_p): Likewise.
9104 (layout::get_expanded_location): Likewise.
9105 (layout::calculate_line_spans): Likewise.
9106 (layout::m_first_line): Delete.
9107 (layout::m_last_line): Delete.
9108 (layout::m_line_spans): New field.
9109 (layout::layout): Update comment. Replace m_first_line and
9110 m_last_line with m_line_spans, replacing their initialization
9111 with a call to calculate_line_spans.
9112 (diagnostic_show_locus): When printing source lines and
9113 annotations, rather than looping over a single span
9114 of lines, instead loop over each line_span within
9115 the layout, with an inner loop over the lines within them.
9116 Call the context's start_span callback when changing line spans.
9117 * diagnostic.c (diagnostic_initialize): Initialize start_span.
9118 (diagnostic_build_prefix): Break out the building of the location
9119 part of the string into...
9120 (diagnostic_get_location_text): ...this new function, rewriting
9121 it from nested ternary expressions to a sequence of "if"
9122 statements.
9123 (default_diagnostic_start_span_fn): New function.
9124 * diagnostic.h (diagnostic_start_span_fn): New typedef.
9125 (diagnostic_context::start_span): New field.
9126 (default_diagnostic_start_span_fn): New prototype.
9127
9128 2016-02-12 David Malcolm <dmalcolm@redhat.com>
9129
9130 PR driver/69779
9131 * gcc.c (driver::finalize): Fix cleanup of "specs".
9132
9133 2016-02-12 David Malcolm <dmalcolm@redhat.com>
9134
9135 PR driver/69265
9136 PR driver/69453
9137 * gcc.c (driver::driver): Initialize m_option_suggestions.
9138 (driver::~driver): Clean up m_option_suggestions.
9139 (suggest_option): Convert to...
9140 (driver::suggest_option): ...this, and split out into
9141 driver::build_option_suggestions and find_closest_string.
9142 (driver::build_option_suggestions): New function, from
9143 first half of suggest_option. Special-case
9144 OPT_fsanitize_ and OPT_fsanitize_recover_, making use of
9145 the sanitizer_opts array. For options of enum types, add the
9146 various enum values to the candidate strings.
9147 (driver::handle_unrecognized_options): Remove "const".
9148 * gcc.h (driver::handle_unrecognized_options): Likewise.
9149 (driver::build_option_suggestions): New decl.
9150 (driver::suggest_option): New decl.
9151 (driver::m_option_suggestions): New field.
9152 * opts-common.c (add_misspelling_candidates): New function.
9153 * opts.c (sanitizer_opts): Remove decl of struct sanitizer_opts_s
9154 and make non-static.
9155 * opts.h (sanitizer_opts): New array decl.
9156 (add_misspelling_candidates): New function decl.
9157 * spellcheck.c (find_closest_string): New function.
9158 * spellcheck.h (find_closest_string): New function decl.
9159
9160 2016-02-12 Jakub Jelinek <jakub@redhat.com>
9161
9162 PR rtl-optimization/69764
9163 PR rtl-optimization/69771
9164 * optabs.c (expand_binop_directly): For shift_optab_p, force
9165 convert_modes with VOIDmode if xop1 has VOIDmode.
9166
9167 2016-02-12 Ilya Enkovich <enkovich.gnu@gmail.com>
9168
9169 PR target/69729
9170 * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
9171 to correctly determine instrumentation thunks.
9172
9173 2016-02-12 Jakub Jelinek <jakub@redhat.com>
9174
9175 PR ipa/69241
9176 * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
9177 type by reference, force lhs on the call.
9178
9179 PR ipa/68672
9180 * ipa-split.c (split_function): Don't compute/use main_part_return_p.
9181 Compute retval and retbnd early in all cases if split_part_return_p
9182 and return_bb is not EXIT. Remove all clobber stmts and reset
9183 all debug stmts that refer to SSA_NAMEs defined in split part,
9184 except if it is retval, in that case replace the old retval with the
9185 lhs of the call to the split part.
9186
9187 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
9188
9189 revert:
9190 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
9191
9192 PR middle-end/66726
9193 * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
9194 whose result is used in PHI.
9195 (maybe_optimize_range_tests): Likewise.
9196 (final_range_test_p): Likweise.
9197
9198 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
9199
9200 PR middle-end/66726
9201 * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
9202 whose result is used in PHI.
9203 (maybe_optimize_range_tests): Likewise.
9204 (final_range_test_p): Likweise.
9205
9206 2016-02-12 Jakub Jelinek <jakub@redhat.com>
9207
9208 * cgraph.c: Spelling fixes - behaviour -> behavior and
9209 neighbour -> neighbor.
9210 * target.def: Likewise.
9211 * sel-sched.c: Likewise.
9212 * config/mips/mips.c: Likewise.
9213 * config/arc/arc.md: Likewise.
9214 * config/arm/cortex-a57.md: Likewise.
9215 * config/arm/arm.c: Likewise.
9216 * config/arm/neon.md: Likewise.
9217 * config/arm/arm-c.c: Likewise.
9218 * config/vms/vms-c.c: Likewise.
9219 * config/s390/s390.c: Likewise.
9220 * config/i386/znver1.md: Likewise.
9221 * config/i386/i386.c: Likewise.
9222 * config/ia64/hpux-unix2003.h: Likewise.
9223 * config/msp430/msp430.md: Likewise.
9224 * config/rx/rx.c: Likewise.
9225 * config/rx/rx.md: Likewise.
9226 * config/aarch64/aarch64-simd.md: Likewise.
9227 * config/aarch64/aarch64.c: Likewise.
9228 * config/nvptx/nvptx.c: Likewise.
9229 * config/bfin/bfin.c: Likewise.
9230 * config/cris/cris.opt: Likewise.
9231 * config/rs6000/rs6000.c: Likewise.
9232 * target.h: Likewise.
9233 * spellcheck.c: Likewise.
9234 * ira-build.c: Likewise.
9235 * tree-inline.c: Likewise.
9236 * builtins.c: Likewise.
9237 * lra-constraints.c: Likewise.
9238 * explow.c: Likewise.
9239 * hwint.h: Likewise.
9240 * targhooks.c: Likewise.
9241 * tree-vect-data-refs.c: Likewise.
9242 * expr.c: Likewise.
9243 * doc/tm.texi: Likewise.
9244 * doc/extend.texi: Likewise.
9245 * doc/install.texi: Likewise.
9246 * doc/md.texi: Likewise.
9247 * tree-ssa-tail-merge.c: Likewise.
9248 * sched-int.h: Likewise.
9249 * match.pd: Likewise.
9250 * sched-ebb.c: Likewise.
9251 * target.def (omit_struct_return_reg): Likewise.
9252 * gimple-ssa-isolate-paths.c: Likewise.
9253 (find_implicit_erroneous_behaviour): Renamed to...
9254 (find_implicit_erroneous_behavior): ... this.
9255 (find_explicit_erroneous_behaviour): Renamed to...
9256 (find_explicit_erroneous_behavior): ... this.
9257 (gimple_ssa_isolate_erroneous_paths): Adjust caller.
9258
9259 2016-02-11 Segher Boessenkool <segher@kernel.crashing.org>
9260
9261 PR rtl-optimization/64682
9262 PR rtl-optimization/69567
9263 PR rtl-optimization/69737
9264 * combine.c (distribute_notes) <REG_DEAD>: If the register is set
9265 in I2 as well, just lose it.
9266
9267 2016-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9268
9269 * config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
9270 New variable.
9271 (aarch64_last_printed_tune_string): Likewise.
9272 (aarch64_declare_function_name): Only output .arch assembler
9273 directive if it will be different from the previously output
9274 directive. Same for .tune comment but only if -dA is set.
9275 (aarch64_start_file): New function.
9276 (TARGET_ASM_FILE_START): Define.
9277
9278 2016-02-11 David Malcolm <dmalcolm@redhat.com>
9279
9280 PR plugins/69758
9281 * Makefile.in (PLUGIN_HEADERS): Add params.list.
9282
9283 2016-02-11 Jakub Jelinek <jakub@redhat.com>
9284
9285 PR target/65313
9286 * tree-vect-slp.c (vect_schedule_slp_instance): Avoid
9287 -Wmaybe-uninitialized warning.
9288
9289 2016-02-11 Oleg Endo <olegendo@gcc.gnu.org>
9290
9291 PR target/69713
9292 * config/sh/sh.md (casesi_worker_0): Add T_REG use.
9293
9294 2016-02-11 Richard Biener <rguenther@suse.de>
9295
9296 PR rtl-optimization/69291
9297 * ifcvt.c (noce_try_store_flag_constants): Do not allow
9298 subexpressions affected by changing the result.
9299
9300 2016-02-10 Vladimir Makarov <vmakarov@redhat.com>
9301
9302 PR target/69148
9303 * lra-constraints.c (curr_insn_transform): Find in/out operands
9304 for secondary memory moves. Update dups.
9305
9306 2016-02-10 Yuri Rumyantsev <ysrumyan@gmail.com>
9307
9308 PR tree-optimization/69652
9309 * tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1
9310 to nested loop, did source re-formatting, skip debug statements,
9311 add check on statement with volatile operand, remove dead scalar
9312 statements.
9313
9314 2016-02-10 Jakub Jelinek <jakub@redhat.com>
9315 Patrick Palka <ppalka@gcc.gnu.org>
9316
9317 PR ipa/69241
9318 PR c++/69649
9319 * gimplify.c (gimplify_modify_expr): Set lhs even for noreturn
9320 calls if the return type is TREE_ADDRESSABLE.
9321 * cgraphunit.c (cgraph_node::expand_thunk): Likewise.
9322 * ipa-split.c (split_function): Fix doubled "we" in comment.
9323 Use void return type for the split part even if
9324 !split_point->split_part_set_retval.
9325
9326 2016-02-10 Bin Cheng <bin.cheng@arm.com>
9327
9328 PR tree-optimization/68021
9329 * tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if
9330 when computing the value of biv cand by itself.
9331
9332 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
9333
9334 * config/aarch64/aarch64.c (cortexa53_tunings): Enable AES fusion.
9335 (cortexa57_tunings): Likewise.
9336 (cortexa72_tunings): Likewise.
9337 (arch_macro_fusion_pair_p): Add support for AES fusion.
9338 * config/aarch64/aarch64-fusion-pairs.def: Add AES_AESMC entry.
9339 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
9340 Allow virtual registers before reload so early scheduling works.
9341 * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Use
9342 correct latency and pipeline.
9343 (cortex_a57_crypto_complex): Likewise.
9344 (cortex_a57_crypto_xor): Likewise.
9345 (define_bypass): Add AES bypass.
9346
9347 2016-02-10 Richard Biener <rguenther@suse.de>
9348
9349 PR tree-optimization/69726
9350 * passes.def: Add DCE pass before late uninit.
9351 * match.pd: Add A ? B : (!A ? C : X) -> A ? B : C patterns to
9352 really fixup if-conversions job.
9353
9354 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
9355
9356 * config/arm/arm.c (arm_cortex_a53_tune): Enable AES fusion.
9357 (arm_cortex_a57_tune): Likewise.
9358 (aarch_macro_fusion_pair_p): Add support for AES fusion.
9359 * config/arm/arm-protos.h (fuse_ops): Add FUSE_AES_AESMC.
9360
9361 2016-02-10 Eric Botcazou <ebotcazou@adacore.com>
9362
9363 * timevar.def (TV_PHASE_DBGINFO): Delete.
9364 (TV_PHASE_CHECK_DBGINFO): Likewise.
9365 * varpool.c (varpool_node::assemble_decl): Do not change timevar.
9366
9367 2016-02-10 Richard Biener <rguenther@suse.de>
9368
9369 PR tree-optimization/69719
9370 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
9371 Adjust previous fix by ensuring that dr_a1 is left of dr_a2.
9372
9373 2016-02-09 Andrew Pinski <apinski@cavium.com>
9374
9375 PR tree-opt/69282
9376 * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
9377 get_vcond_mask_icode returns false.
9378
9379 2016-02-09 Michael Meissner <meissner@linux.vnet.ibm.com>
9380
9381 PR target/68404
9382 * config/rs6000/predicates.md (fusion_gpr_addis): Prevent fusing
9383 an ADDIS that adds a pointer to a large constant that sets the
9384 upper16 bits with a load operation.
9385
9386 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
9387
9388 PR target/68532
9389 * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
9390 order.
9391 * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
9392 endian.
9393 (vzipq_s16): Likewise.
9394 (vzipq_s32): Likewise.
9395 (vzipq_f32): Likewise.
9396 (vzipq_u8): Likewise.
9397 (vzipq_u16): Likewise.
9398 (vzipq_u32): Likewise.
9399 (vzipq_p8): Likewise.
9400 (vzipq_p16): Likewise.
9401
9402 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
9403
9404 PR target/68532
9405 * config/arm/arm.c (neon_endian_lane_map): New function.
9406 (neon_vector_pair_endian_lane_map): New function.
9407 (arm_evpc_neon_vuzp): Allow for big endian lane order.
9408 * config/arm/arm_neon.h (vuzpq_s8): Adjust shuffle patterns for big
9409 endian.
9410 (vuzpq_s16): Likewise.
9411 (vuzpq_s32): Likewise.
9412 (vuzpq_f32): Likewise.
9413 (vuzpq_u8): Likewise.
9414 (vuzpq_u16): Likewise.
9415 (vuzpq_u32): Likewise.
9416 (vuzpq_p8): Likewise.
9417 (vuzpq_p16): Likewise.
9418
9419 2016-02-11 Alexandre Oliva <aoliva@redhat.com>
9420
9421 PR target/69634
9422 * regstat.c (regstat_bb_compute_calls_crossed): Disregard
9423 debug insns.
9424
9425 2016-02-09 Uros Bizjak <ubizjak@gmail.com>
9426
9427 * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
9428 truncate const_int operand 1 to QImode.
9429
9430 2016-02-09 Eric Botcazou <ebotcazou@adacore.com>
9431
9432 * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
9433 corresponding to an abnormal edge.
9434
9435 2016-02-09 Tom de Vries <tom@codesourcery.com>
9436
9437 PR tree-optimization/69599
9438 * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
9439 function.
9440 (find_func_aliases_for_builtin_call, find_func_clobbers)
9441 (ipa_pta_execute): Handle case that foo and foo._0 are not in same lto
9442 partition.
9443
9444 2016-02-09 Richard Biener <rguenther@suse.de>
9445
9446 PR tree-optimization/69715
9447 * tree-ssa.c (execute_update_addresses_taken): Mark non-decl
9448 LHS on calls as non-rewritable.
9449
9450 2016-02-09 Tom de Vries <tom@codesourcery.com>
9451
9452 PR lto/69707
9453 * lto-wrapper.c (append_diag_options): New function.
9454 (compile_offload_image): Call append_diag_options.
9455
9456 2016-02-08 Sandra Loosemore <sandra@codesourcery.com>
9457
9458 PR other/69722
9459 * doc/extend.texi (Flag Output Operands): Correct sectioning.
9460 Minor copy-edit to fix verb tenses.
9461
9462 2016-02-08 Jakub Jelinek <jakub@redhat.com>
9463
9464 PR tree-optimization/69209
9465 * ipa-split.c (split_function): If split part is not
9466 returning retval, retval has gimple type but is not
9467 gimple value, force it into a SSA_NAME first.
9468
9469 2016-02-08 Nicklas Bo Jensen <nbjensen@gmail.com>
9470
9471 * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
9472 outdated section.
9473
9474 2016-02-08 Jason Merrill <jason@redhat.com>
9475
9476 PR c++/69631
9477 * convert.c (convert_to_integer_1): Check dofold on truncation
9478 distribution.
9479 (convert_to_pointer_maybe_fold, convert_to_real_maybe_fold)
9480 (convert_to_integer_maybe_fold, convert_to_complex_maybe_fold):
9481 Rename from *_nofold.
9482 * convert.h (convert_to_pointer_nofold, convert_to_integer_nofold)
9483 (convert_to_real_nofold, convert_to_complex_nofold): New inlines.
9484
9485 2016-02-08 Bernd Schmidt <bschmidt@redhat.com>
9486
9487 PR target/60410
9488 * tree.c (build_common_tree_nodes): Remove short_double argument.
9489 All callers changed.
9490 * tree.h (build_common_tree_nodes): Adjust declaration.
9491 * doc/invoke.texi (-fshort-double): Remove documentation.
9492 * config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
9493 MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
9494 * lto-wrapper.c (merge_and_complain, append_compiler_options)
9495 (append_linker_options): Don't handle OPT_fshort_double.
9496
9497 PR rtl-optimization/68730
9498 * lra-remat.c (insn_to_cand_activation): New static variable.
9499 (lra_remat): Allocate and free it.
9500 (create_cand): New arg activation. Initialize a field in
9501 insn_to_cand_activation if it is nonnull.
9502 (create_cands): Pass the activation insn to create_cand when making
9503 a candidate involving an output reload. Reorganize code a little.
9504 (do_remat): Keep track of active status of candidates in a separate
9505 bitmap.
9506
9507 2016-02-08 Richard Biener <rguenther@suse.de>
9508
9509 PR tree-optimization/69719
9510 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
9511 Properly use absolute of the difference of the two offsets to
9512 compare or adjust the segment length.
9513
9514 2016-02-08 Richard Biener <rguenther@suse.de>
9515 Jeff Law <law@redhat.com>
9516
9517 PR target/68273
9518 * tree-ssanames.c (make_ssa_name_fn): Always use unqualified
9519 types for anonymous SSA names.
9520
9521 2016-02-08 Richard Biener <rguenther@suse.de>
9522
9523 PR rtl-optimization/69274
9524 * ira.c (ira_setup_alts): Do not change recog_data.operand order.
9525
9526 2016-02-08 Jeff Law <law@redhat.com>
9527
9528 PR tree-optimization/65917
9529 * tree-ssa-dom.c (record_temporary_equivalences): Record both
9530 equivalences from if (x == y) style conditionals.
9531 (loop_depth_of_name): Remove.
9532 (record_equality): Remove loop depth check.
9533 * tree-ssa-scopedtables.h (const_and_copies): Refine comments.
9534 (const_and_copies::record_const_or_copy_raw): New member function.
9535 * tree-ssa-scopedtables.c
9536 (const_and_copies::record_const_or_copy_raw): New, factored out of
9537 (const_and_copies::record_const_or_copy): Call new member function.
9538
9539 2016-02-05 Jeff Law <law@redhat.com>
9540
9541 PR tree-optimization/68541
9542 * gimple-ssa-split-paths.c: Include tree-cfg.h and params.h.
9543 (count_stmts_in_block): New function.
9544 (poor_ifcvt_candidate_code): Likewise.
9545 (is_feasible_trace): Add some heuristics to determine when path
9546 splitting is profitable.
9547 (find_block_to_duplicate_for_splitting_paths): Make sure the graph
9548 is a diamond with a single exit.
9549
9550 2016-02-05 Martin Sebor <msebor@redhat.com>
9551
9552 PR c++/69662
9553 * doc/invoke.texi: Update -Wplacement-new to take an optional
9554 argument.
9555
9556 2016-02-06 Richard Henderson <rth@redhat.com>
9557
9558 PR c/69643
9559 * tree.c (tree_nop_conversion_p): Do not strip casts into or
9560 out of non-standard address spaces.
9561
9562 2016-02-05 Jakub Jelinek <jakub@redhat.com>
9563
9564 PR rtl-optimization/69691
9565 * lra-eliminations.c (move_plus_up): Don't add the addend twice.
9566
9567 2016-02-05 Pat Haugen <pthaugen@us.ibm.com>
9568
9569 * config/rs6000/crypto.md (crypto_vpermxor_<mode>): Correct insn type.
9570 * config/rs6000/rs6000.md (mov<mode>_hardfloat): Likewise.
9571 (*ieee128_mfvsrd_64bit): Likewise.
9572 (*ieee128_mfvsrd_32bit): Likewise.
9573
9574 2016-02-05 Ilya Enkovich <enkovich.gnu@gmail.com>
9575
9576 PR target/69369
9577 Revert r232560:
9578 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
9579
9580 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
9581 instrumented_version.
9582
9583 2016-01-05 Jeremy Bennett <jeremy.bennett@embecosm.com>
9584
9585 * doc/invoke.texi (Optimize Options): In table of --param options
9586 rename second occurrence of tracer-min-branch-ratio to
9587 tracer-min-branch-probability, rename
9588 tracer-min-branch-ratio-feedback to
9589 tracer-min-branch-probability-feedback and clarify description,
9590 rename sched-spec-state-edge-prob-cutoff to
9591 sched-state-edge-prob-cutoff, rename selsched-max-insns-to-rename
9592 to selsched-insns-to-rename, rename lto-minpartition to
9593 lto-min-partition, delete reorder-blocks-duplicate and
9594 reorder-blocks-duplicate-feedback.
9595
9596 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9597
9598 * config/s390/s390.c (s390_register_info_set_ranges): Remove
9599 superfluous loops.
9600
9601 2016-02-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
9602
9603 * doc/extend.texi: S/390: Correct some typos.
9604
9605 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9606
9607 * config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
9608
9609 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9610
9611 PR target/69625
9612 * config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines.
9613 (s390_register_info_gprtofpr): Use new macros above.
9614 (s390_register_info_stdarg_fpr): Adjust max_fpr to better match
9615 its name.
9616 (s390_register_info_stdarg_gpr): Adjust max_gpr to better match
9617 its name. Adjust restore and save gpr ranges.
9618 (s390_register_info_set_ranges): New function.
9619 (s390_register_info): Use new macros above. Call
9620 s390_register_info_set_ranges.
9621 (s390_optimize_register_info): Likewise.
9622 (s390_hard_regno_rename_ok): Use new macros.
9623 (s390_hard_regno_scratch_ok): Likewise.
9624 (s390_emit_epilogue): Likewise.
9625 (s390_can_use_return_insn): Likewise.
9626 (s390_optimize_prologue): Likewise.
9627 * config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants.
9628
9629 2016-02-05 Jakub Jelinek <jakub@redhat.com>
9630
9631 PR bootstrap/69677
9632 * config/i386/i386.c (convert_scalars_to_vector): Readd stack
9633 alignment fixes.
9634 (ix86_option_override_internal): Disable TARGET_STV even for
9635 -m{incoming,preferred}-stack-boundary=3.
9636
9637 2016-02-03 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9638
9639 * config.gcc: Mark deprecated rtems targets as obsolete.
9640
9641 2016-02-04 Segher Boessenkool <segher@kernel.crashing.org>
9642
9643 PR rtl-optimization/64682
9644 PR rtl-optimization/69567
9645 * combine.c (distribute_notes) <REG_DEAD>: Place the death note
9646 before I2 only if the register is both used and set in I2.
9647
9648 2016-02-04 DJ Delorie <dj@redhat.com>
9649
9650 * config/msp430/msp430.c (msp430_start_function): Add function type.
9651
9652 2016-02-04 Jakub Jelinek <jakub@redhat.com>
9653
9654 PR fortran/69368
9655 * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
9656
9657 2016-02-04 Uros Bizjak <ubizjak@gmail.com>
9658
9659 PR rtl-optimization/69577
9660 Revert:
9661 2015-10-29 Richard Henderson <rth@redhat.com>
9662
9663 PR target/68124
9664 PR rtl-opt/67609
9665 * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
9666 sse check to the exact conditions of PR 67609.
9667
9668 2016-02-04 Michael Meissner <meissner@linux.vnet.ibm.com>
9669
9670 PR target/69667
9671 * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Use 'd' constraint
9672 instead of 'ws', and 'wh' instead of 'wm' since TFmode/IFmode are
9673 not allowed into the traditional Altivec registers.
9674 (movtd_64bit_nodm): Likewise.
9675 (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
9676
9677 2016-02-04 David Malcolm <dmalcolm@redhat.com>
9678
9679 * config/aarch64/cortex-a57-fma-steering.c
9680 (aarch64_register_fma_steering): Remove "static" from arguments
9681 to register_pass.
9682
9683 2016-02-04 Wilco Dijkstra <wdijkstr@arm.com>
9684
9685 PR target/69619
9686 * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
9687 twice when complex.
9688
9689 2016-02-04 Mike Frysinger <vapier@gentoo.org>
9690
9691 * doc/invoke.texi: Delete -mno-fma4.
9692
9693 2016-02-04 Richard Sandiford <richard.sandiford@arm.com>
9694
9695 PR rtl-optimization/69577
9696 * reginfo.c (record_subregs_of_mode): Add a partial_def parameter.
9697 (find_subregs_of_mode): Update accordingly. Iterate over partial
9698 definitions.
9699
9700 2016-02-04 Alan Lawrence <alan.lawrence@arm.com>
9701
9702 * config/arm/arm-protos.h (neon_reinterpret): Remove.
9703 * config/arm/arm.c (neon_reinterpret): Remove.
9704 * config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi,
9705 vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi,
9706 vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di,
9707 vreinterpretti): Remove.
9708 * config/arm/neon.md (neon_vreinterpretv8qi<mode>,
9709 neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
9710 neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>,
9711 neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>,
9712 neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>,
9713 neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove.
9714 * config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32,
9715 vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64,
9716 vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32,
9717 vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32,
9718 vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64,
9719 vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8,
9720 vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8,
9721 vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8,
9722 vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64,
9723 vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16,
9724 vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16,
9725 vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16,
9726 vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64,
9727 vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32,
9728 vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32,
9729 vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32,
9730 vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8,
9731 vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8,
9732 vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8,
9733 vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64,
9734 vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16,
9735 vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16,
9736 vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16,
9737 vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64,
9738 vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32,
9739 vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32,
9740 vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32,
9741 vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64,
9742 vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8,
9743 vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8,
9744 vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64,
9745 vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8,
9746 vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16,
9747 vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16,
9748 vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64,
9749 vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16,
9750 vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32,
9751 vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32,
9752 vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64,
9753 vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32,
9754 vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8,
9755 vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64,
9756 vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8,
9757 vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8,
9758 vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32,
9759 vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64,
9760 vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16,
9761 vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16,
9762 vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32,
9763 vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64,
9764 vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16,
9765 vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16,
9766 vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16,
9767 vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64,
9768 vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16,
9769 vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16,
9770 vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16,
9771 vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64,
9772 vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16,
9773 vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16,
9774 vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16,
9775 vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64,
9776 vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16,
9777 vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16,
9778 vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16,
9779 vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128,
9780 vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16,
9781 vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16,
9782 vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16,
9783 vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128,
9784 vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16,
9785 vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16,
9786 vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16,
9787 vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128,
9788 vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16,
9789 vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16,
9790 vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16,
9791 vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128,
9792 vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8,
9793 vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16,
9794 vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16,
9795 vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64,
9796 vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64,
9797 vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8,
9798 vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8,
9799 vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64,
9800 vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64,
9801 vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32,
9802 vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8,
9803 vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64,
9804 vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64,
9805 vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32,
9806 vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8,
9807 vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64,
9808 vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64,
9809 vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32,
9810 vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts.
9811
9812 2016-02-04 Martin Liska <mliska@suse.cz>
9813
9814 PR sanitizer/69276
9815 * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
9816 that are gimple_store_p.
9817 (maybe_instrument_call): Likewise.
9818
9819 2016-02-04 Bin Cheng <bin.cheng@arm.com>
9820
9821 * config/aarch64/aarch64.c (aarch64_legitimize_address): Force
9822 register scaling out of memory reference and comment why.
9823
9824 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9825
9826 PR target/65932
9827 PR target/67714
9828 * cse.c (cse_insn): Pass NULL to fold_rtx when initially
9829 folding the source of a SET.
9830
9831 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9832
9833 PR target/65932
9834 PR target/67714
9835 * config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
9836 the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.
9837
9838 2016-02-04 Jim Wilson <jim.wilson@linaro.org>
9839
9840 PR target/65932
9841 PR target/67714
9842 * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
9843 HImode.
9844
9845 2016-02-04 Christian Bruel <christian.bruel@st.com>
9846
9847 * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
9848 * config/arm/arm.c (arm_set_current_function): Likewise.
9849
9850 2016-02-04 Jakub Jelinek <jakub@redhat.com>
9851 Ilya Enkovich <enkovich.gnu@gmail.com>
9852 H.J. Lu <hongjiu.lu@intel.com>
9853
9854 PR target/69454
9855 * config/i386/i386.c (convert_scalars_to_vector): Remove
9856 stack alignment fixes.
9857 (ix86_option_override_internal): Disable TARGET_STV if stack
9858 might not be aligned enough.
9859 (ix86_minimum_alignment): Assert that TARGET_STV is false.
9860
9861 2016-02-04 Victoria Stepanyan <victoria.stepanyan@amd.com>
9862
9863 * config/i386/x86-tune.def: Disable default prefetching
9864 for -march=znver1.
9865
9866 2016-02-03 Michael Meissner <meissner@linux.vnet.ibm.com>
9867 Vladimir Makarov <vmakarov@redhat.com>
9868
9869 PR target/69461
9870 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
9871 in validating fused toc addresses.
9872
9873 2016-02-03 Jakub Jelinek <jakub@redhat.com>
9874
9875 PR c/69627
9876 * diagnostic-show-locus.c (layout::get_state_at_point): Don't read
9877 range->m_caret fields if range->m_show_caret_p is false.
9878
9879 PR target/69644
9880 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
9881 Force oldval into register if it does not satisfy reg_or_short_operand
9882 predicate. Fix up formatting.
9883
9884 2016-02-03 Vladimir Makarov <vmakarov@redhat.com>
9885 Alexandre Oliva <aoliva@redhat.com>
9886
9887 PR target/69461
9888 * lra-constraints.c (simplify_operand_subreg): Check additionally
9889 address validity after potential reloading.
9890 (process_address_1): Check insns validity. In case of failure do
9891 nothing.
9892
9893 2016-02-03 Kirill Yukhin <kirill.yukhin@intel.com>
9894
9895 PR target/69118
9896 * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
9897 Fix target.
9898
9899 2016-02-02 Jakub Jelinek <jakub@redhat.com>
9900
9901 * wide-int.cc (canonize_uhwi): New function.
9902 (wi::divmod_internal): Use it.
9903
9904 2016-02-02 James Norris <jnorris@codesourcery.com
9905
9906 * gimplify.c (omp_notice_variable): Add usage check.
9907
9908 2016-02-02 Alexander Monakov <amonakov@ispras.ru>
9909
9910 * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
9911 like LE, GE, LT, GT when emitting relational operator.
9912
9913 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
9914
9915 * ira-costs.c (find_costs_and_classes): Add extra argument.
9916 * target.def (ira_change_pseudo_allocno_class): Add parameter.
9917 * targhooks.h (ira_change_pseudo_allocno_class): Likewise.
9918 * targhooks.c (ira_change_pseudo_allocno_class): Likewise.
9919 * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
9920 Add best_class parameter, and return it if not ALL_REGS.
9921 * config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
9922 Add parameter.
9923 * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
9924 Update target hook.
9925
9926 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
9927
9928 * config/aarch64/aarch64.c
9929 (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
9930 (aarch64_ira_change_pseudo_allocno_class): New function.
9931
9932 2016-02-02 Uros Bizjak <ubizjak@gmail.com>
9933
9934 PR target/67032
9935 * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
9936
9937 2016-02-02 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
9938
9939 * config/avr/avr.c (avr_option_override): Set
9940 PARAM_ALLOW_STORE_DATA_RACES to 1.
9941
9942 2016-02-02 Richard Biener <rguenther@suse.de>
9943
9944 PR tree-optimization/69595
9945 * match.pd: Add range test simplifications to true/false.
9946
9947 2016-02-02 Thomas Schwinge <thomas@codesourcery.com>
9948
9949 * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
9950 * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
9951 instead.
9952
9953 2016-02-02 Richard Biener <rguenther@suse.de>
9954
9955 PR tree-optimization/69606
9956 * tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
9957 info on the result before moving a stmt.
9958
9959 2016-02-02 Yuri Rumyantsev <ysrumyan@gmail.com>
9960
9961 PR middle-end/68542
9962 * config/i386/i386.c (ix86_expand_branch): Add support for conditional
9963 branch with vector comparison.
9964 * config/i386/sse.md (VI48_AVX): New mode iterator.
9965 (define_expand "cbranch<mode>4): Add support for conditional branch
9966 with vector comparison.
9967 * tree-vect-loop.c (optimize_mask_stores): New function.
9968 * tree-vect-stmts.c (vectorizable_mask_load_store): Initialize
9969 has_mask_store field of vect_info.
9970 * tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for
9971 vectorized loops having masked stores after vec_info destroy.
9972 * tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and
9973 correspondent macros.
9974 (optimize_mask_stores): Add prototype.
9975
9976 2016-02-02 Alan Modra <amodra@gmail.com>
9977
9978 PR target/69548
9979 * config/rs6000/predicates.md (quad_int_reg_operand): Don't
9980 allow subregs.
9981
9982 2016-02-02 Alan Modra <amodra@gmail.com>
9983
9984 PR target/68662
9985 * config/rs6000/rs6000.c (need_toc_init): New var, set it
9986 whenever toc_label_name used.
9987 (rs6000_file_start): Don't set up toc section here,
9988 (rs6000_output_function_epilogue): do so here instead,
9989 (rs6000_xcoff_file_start): and here.
9990 * config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init.
9991 (load_toc_aix_di): Likewise.
9992
9993 2016-02-01 Jakub Jelinek <jakub@redhat.com>
9994
9995 PR rtl-optimization/69592
9996 * rtlanal.c (nonzero_bits_binary_arith_p): New inline function.
9997 (cached_nonzero_bits): Use it instead of ARITHMETIC_P.
9998 (num_sign_bit_copies_binary_arith_p): New inline function.
9999 (cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P.
10000
10001 2016-02-01 Jeff Law <law@redhat.com>
10002
10003 PR tree-optimization/69580
10004 * params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param.
10005 * tree-ssa-threadbackward.c
10006 (fsm_find_control_statement_thread_paths): Do not try to walk
10007 through large PHI nodes.
10008
10009 2016-02-01 Jakub Jelinek <jakub@redhat.com>
10010
10011 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
10012 when count is incremented above limit, don't analyze further
10013 insns afterwards.
10014
10015 * omp-low.c (oacc_parse_default_dims): Avoid
10016 -Wsign-compare warning, make sure value fits into int
10017 rather than just unsigned int.
10018
10019 2016-02-01 Bin Cheng <bin.cheng@arm.com>
10020
10021 PR tree-optimization/67921
10022 * fold-const.c (split_tree): New parameters. Convert pointer
10023 type variable part to proper type before negating.
10024 (fold_binary_loc): Pass new arguments to split_tree.
10025
10026 2016-02-01 Nathan Sidwell <nathan@codesourcery.com>
10027
10028 * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New.
10029 (nvptx_goacc_validate_dims): Extend to handle global defaults.
10030 * target.def (OACC_VALIDATE_DIMS): Extend documentation.
10031 * doc/tm.texti: Rebuilt.
10032 * doc/invoke.texi (fopenacc-dim): Document.
10033 * lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case.
10034 (append_compiler_options): Likewise.
10035 * omp-low.c (oacc_default_dims, oacc_min_dims): New.
10036 (oacc_parse_default_dims): New.
10037 (oacc_validate_dims): Add USED arg. Select non-unity default when
10038 possible.
10039 (oacc_loop_fixed_partitions): Return mask of used partitions.
10040 (oacc_loop_auto_partitions): Emit dump info.
10041 (oacc_loop_partition): Return mask of used partitions.
10042 (execute_oacc_device_lower): Parse default dimension arg. Adjust
10043 loop partitioning and validation calls.
10044
10045 2016-02-01 Richard Biener <rguenther@suse.de>
10046
10047 PR middle-end/69556
10048 * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
10049
10050 2016-02-01 Richard Biener <rguenther@suse.de>
10051
10052 PR tree-optimization/69574
10053 * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
10054 of asserting return chrec_dont_know.
10055
10056 2016-02-01 Martin Liska <mliska@suse.cz>
10057
10058 * mem-stats-traits.h: Add copyright header.
10059 * mem-stats.h: Likewise.
10060
10061 2016-02-01 Richard Biener <rguenther@suse.de>
10062
10063 PR tree-optimization/69579
10064 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
10065 Do not propagate through abnormal PHI results.
10066
10067 2016-02-01 Eric Botcazou <ebotcazou@adacore.com>
10068
10069 * postreload.c (reload_cse_simplify): Remove dead code.
10070
10071 2016-02-01 Jakub Jelinek <jakub@redhat.com>
10072
10073 PR rtl-optimization/69570
10074 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only
10075 if there is more than one set, not if there is a single set.
10076
10077 2016-02-01 Richard Henderson <rth@redhat.com>
10078
10079 PR rtl-opt/69535
10080 * combine.c (make_compound_operation): When looking through a
10081 subreg, make sure to re-extend to the width of the outer mode.
10082
10083 2016-01-30 Jakub Jelinek <jakub@redhat.com>
10084
10085 PR tree-optimization/69546
10086 * wide-int.cc (wi::divmod_internal): For unsigned division
10087 where both operands fit into uhwi, if o1 is 1 and o0 has
10088 msb set, if divident_prec is larger than bits per hwi,
10089 clear another quotient word and return 2 instead of 1.
10090 Similarly for remainder with msb in HWI set, if dividend_prec
10091 is larger than bits per hwi.
10092
10093 2016-01-29 Martin Jambor <mjambor@suse.cz>
10094
10095 * hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK.
10096 Use short lowercase names.
10097 (get_memory_order): Mask with MEMMODEL_BASE_MASK. Support
10098 MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with
10099 acq_rel one. Protect warning agains segfaults if
10100 get_memory_order_name returns NULL.
10101 (gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST
10102 with release semantics. Do not warn if get_memory_order already did.
10103 (gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire
10104 semantics. Fix check for relaxed or acquire semantics. Do not warn
10105 if get_memory_order already did.
10106
10107 2016-01-29 Sebastian Pop <s.pop@samsung.com>
10108
10109 * doc/install.texi: Document that isl-0.16 is supported.
10110
10111 2016-01-29 Vladimir Makarov <vmakarov@redhat.com>
10112
10113 PR target/69299
10114 * config/i386/constraints.md (Bm): Describe as special memory
10115 constraint.
10116 * doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it.
10117 * genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
10118 * genpreds.c (struct constraint_data): Add is_special_memory.
10119 (have_special_memory_constraints, special_memory_start): New
10120 static vars.
10121 (special_memory_end): Ditto.
10122 (add_constraint): Add new arg is_special_memory. Add code to
10123 process its true value. Update have_special_memory_constraints.
10124 (process_define_constraint): Pass the new arg.
10125 (process_define_register_constraint): Ditto.
10126 (choose_enum_order): Process special memory.
10127 (write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and
10128 function insn_extra_special_memory_constraint.
10129 (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
10130 * gensupport.c (process_rtx): Process
10131 DEFINE_SPECIAL_MEMORY_CONSTRAINT.
10132 * ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY.
10133 * ira-lives.c (single_reg_class): Use
10134 insn_extra_special_memory_constraint.
10135 * ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY.
10136 * lra-constraints.c (process_alt_operands): Ditto.
10137 (curr_insn_transform): Use insn_extra_special_memory_constraint.
10138 * recog.c (asm_operand_ok, preprocess_constraints): Process
10139 CT_SPECIAL_MEMORY.
10140 * reload.c (find_reloads): Ditto.
10141 * rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New.
10142 * stmt.c (parse_input_constraint): Use
10143 insn_extra_special_memory_constraint.
10144
10145 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
10146
10147 PR target/69530
10148 * lra-splill.c (lra_final_code_change): Revert r229087 by
10149 removing all sub-registers.
10150
10151 2016-01-29 Steve Ellcey <sellcey@imgtec.com>
10152
10153 PR target/65604
10154 * config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
10155
10156 2016-01-29 Jakub Jelinek <jakub@redhat.com>
10157
10158 PR target/69551
10159 * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
10160 SSE1, copy target into the temporary reg first before recursing
10161 on it.
10162
10163 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
10164
10165 * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
10166 with vm.
10167
10168 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
10169
10170 * ginclude/stdarg.h: Test __cplusplus instead of
10171 __GXX_EXPERIMENTAL_CXX0X__.
10172
10173 2016-01-29 Richard Biener <rguenther@suse.de>
10174
10175 PR tree-optimization/69547
10176 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
10177 Do not mark clobbers necessary.
10178 (mark_all_reaching_defs_necessary_1): Likewise.
10179
10180 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
10181
10182 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
10183 declaration name with %qs and print it in both error messages.
10184 Also fix indentation.
10185
10186 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
10187
10188 PR other/69006
10189 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
10190 trailing blank line from error message.
10191
10192 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
10193
10194 PR c++/69462
10195 * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
10196 for C++-11.
10197
10198 2016-01-29 Richard Biener <rguenther@suse.de>
10199
10200 PR middle-end/69537
10201 * match.pd: Allow all integral types when simplifying a
10202 widening or sign-changing conversion.
10203
10204 2016-01-28 Sebastian Pop <s.pop@samsung.com>
10205
10206 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
10207 back to setting codegen_error to fail codegen.
10208
10209 2016-01-28 Uros Bizjak <ubizjak@gmail.com>
10210
10211 PR target/69459
10212 * config/i386/constraints.md (C): Only accept constant zero operand.
10213 (BC): New constraint.
10214 * config/i386/sse.md (*mov<mode>_internal): Use BC constraint
10215 instead of C constraint.
10216 * doc/md.texi (Machine Constraints): Update description
10217 of C constraint.
10218
10219 2016-01-28 Steve Ellcey <sellcey@imgtec.com>
10220
10221 PR target/68400
10222 * config/mips/mips.c (and_operands_ok): Add MIPS16 check.
10223
10224 2016-01-28 Jakub Jelinek <jakub@redhat.com>
10225
10226 PR middle-end/69542
10227 * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
10228 non-debug insns.
10229
10230 2016-01-28 Pat Haugen <pthaugen@us.ibm.com>
10231
10232 * config/rs6000/rs6000.c (output_cbranch): Don't statically predict
10233 branches if using guessed profile.
10234
10235 2016-01-28 H.J. Lu <hongjiu.lu@intel.com>
10236
10237 * graphite-optimize-isl.c (optimize_isl): Fix dump.
10238
10239 2016-01-28 Richard Henderson <rth@redhat.com>
10240
10241 PR target/69305
10242 * config/aarch64/aarch64-modes.def (CC_Cmode): New
10243 * config/aarch64/aarch64-protos.h: Update.
10244 * config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
10245 (aarch64_select_cc_mode): Add check for use of CC_Cmode.
10246 (aarch64_get_condition_code_1): Handle CC_Cmode.
10247 * config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
10248 (*add<mode>3_compareC_cconly_imm): New.
10249 (*add<mode>3_compareC_cconly): New.
10250 (*add<mode>3_compareC_imm): New.
10251 (add<mode>3_compareC): New.
10252 (add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
10253 to be first. Use aarch64_carry_operation.
10254 (*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
10255 (*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
10256 (*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
10257 (subti3): Use subdi3_compare1.
10258 (*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
10259 (sub<mode>3_compare1): New.
10260 (*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
10261 (*sub<mode>3_carryin): Use aarch64_borrow_operation.
10262 (*subsi3_carryin_uxtw): Likewise.
10263 (*ngc<mode>, *ngcsi_uxtw): Likewise.
10264 (*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
10265 * config/aarch64/iterators.md (DWI): New.
10266 * config/aarch64/predicates.md (aarch64_carry_operation): New.
10267 (aarch64_borrow_operation): New.
10268
10269 2016-01-28 Abderrazek Zaafrani <a.zaafrani@samsung.com>
10270
10271 * graphite-optimize-isl.c (optimize_isl): Print a different debug
10272 message when isl does not return a valid schedule.
10273
10274 2016-01-28 Sebastian Pop <s.pop@samsung.com>
10275
10276 * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
10277 Remove comments from class declarations: they are already in the code
10278 close by the defs.
10279
10280 2016-01-28 Sebastian Pop <s.pop@samsung.com>
10281
10282 * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
10283 codegen_error_p.
10284 (ternary_op_to_tree): Same.
10285 (unary_op_to_tree): Same.
10286 (nary_op_to_tree): Same.
10287 (gcc_expression_from_isl_expr_op): Same.
10288 (gcc_expression_from_isl_expression): Same.
10289 (graphite_create_new_loop): Same.
10290 (graphite_create_new_loop_guard): Same.
10291 (build_iv_mapping): Same.
10292 (graphite_create_new_guard): Same.
10293 (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same.
10294 (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same.
10295
10296 2016-01-28 Sebastian Pop <s.pop@samsung.com>
10297
10298 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
10299 instead of setting codegen_error to fail codegen.
10300
10301 2016-01-28 Jason Merrill <jason@redhat.com>
10302
10303 * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
10304
10305 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
10306
10307 * config/aarch64/aarch64.c (aarch64_if_then_else_costs):
10308 Remove CONST_INT_P check in CCMP cost calculation.
10309
10310 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
10311
10312 * config/aarch64/aarch64.c (generic_vector_cost):
10313 Set vec_permute_cost.
10314 (cortexa57_vector_cost): Likewise.
10315 (exynosm1_vector_cost): Likewise.
10316 (xgene1_vector_cost): Likewise.
10317 (aarch64_builtin_vectorization_cost): Use vec_permute_cost.
10318 * config/aarch64/aarch64-protos.h (cpu_vector_cost):
10319 Add vec_permute_cost entry.
10320
10321 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
10322
10323 * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
10324 immediate as %1.
10325 (add<mode>3_compare0): Likewise.
10326 (addsi3_compare0_uxtw): Likewise.
10327 (add<mode>3nr_compare0): Likewise.
10328 (compare_neg<mode>): Likewise.
10329 (<optab><mode>3): Likewise.
10330
10331 2016-01-28 Ilya Enkovich <enkovich.gnu@gmail.com>
10332
10333 * tree-vect-stmts.c (vectorizable_comparison): Add
10334 NULL check for vectype.
10335
10336 2016-01-28 Richard Biener <rguenther@suse.de>
10337
10338 PR tree-optimization/69466
10339 * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
10340 Account for PHIs we couldn't duplicate.
10341
10342 2016-01-28 Martin Liska <mliska@suse.cz>
10343
10344 PR pch/68758
10345 * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
10346 instead of ENABLE_VALGRIND_CHECKING.
10347
10348 2016-01-27 Richard Henderson <rth@redhat.com>
10349
10350 PR rtl-opt/69447
10351 * lra-remat.c (subreg_regs): New.
10352 (dump_candidates_and_remat_bb_data): Dump it.
10353 (operand_to_remat): Reject if operand in subreg_regs.
10354 (set_bb_regs): Collect subreg_regs.
10355 (lra_remat): Init and free subreg_regs. Compute
10356 calculate_local_reg_remat_bb_data before create_cands.
10357
10358 2016-01-27 H.J. Lu <hongjiu.lu@intel.com>
10359
10360 PR target/68986
10361 * config/i386/i386.c (ix86_update_stack_boundary): Don't
10362 change stack_alignment_needed for __tls_get_addr call.
10363
10364 2016-01-27 Segher Boessenkool <segher@kernel.crashing.org>
10365
10366 * config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
10367
10368 2016-01-27 Jeff Law <law@redhat.com>
10369
10370 PR tree-optimization/68398
10371 PR tree-optimization/69196
10372 * params.def (PARAM_FSM_SCALE_PATH_STMTS): New parameter.
10373 (PARAM_FSM_SCALE_PATH_BLOCKS): Likewise.
10374 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
10375 Only count PHIs in the last block in the path. The others will
10376 const/copy propagate away. Add heuristic to allow more irreducible
10377 subloops to be created when it is likely profitable to do so.
10378
10379 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
10380 Fix typo in comment. Use gsi_after_labels and remove the GIMPLE_LABEL
10381 check from within the loop. Use gsi_next_nondebug rather than gsi_next.
10382
10383 2016-01-27 Jakub Jelinek <jakub@redhat.com>
10384
10385 PR lto/69254
10386 * sanitizer.def: Add BEGIN_SANITIZER_BUILTINS and
10387 END_SANITIZER_BUILTINS markers using DEF_BUILTIN_STUB.
10388 * asan.c (DEF_BUILTIN_STUB): Temporarily define.
10389 * tree-streamer-in.c: Include asan.h.
10390 (streamer_get_builtin_tree): For builtins in sanitizer
10391 range call initialize_sanitizer_builtins and retry.
10392
10393 2016-01-27 Ian Lance Taylor <iant@google.com>
10394
10395 * common.opt (fkeep-gc-roots-live): New undocumented option.
10396 * tree-ssa-loop-ivopts.c (add_candidate_1): If
10397 -fkeep-gc-roots-live, skip pointers.
10398 (add_iv_candidate_for_biv): Handle add_candidate_1 returning
10399 NULL.
10400
10401 2016-01-27 Uros Bizjak <ubizjak@gmail.com>
10402
10403 PR target/69512
10404 * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
10405 (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.
10406
10407 2016-01-27 Thomas Klausner <wiz@NetBSD.org>
10408
10409 PR target/68380
10410 * configure.ac: NetBSD provides SSP in its C library.
10411 * configure: Updated.
10412
10413 2016-01-27 Richard Biener <rguenther@suse.de>
10414
10415 PR tree-optimization/69166
10416 * tree-vect-loop.c (vect_is_simple_reduction): Always check
10417 reduction code for commutativity / associativity.
10418
10419 2016-01-27 Martin Jambor <mjambor@suse.cz>
10420
10421 PR tree-optimization/69355
10422 * tree-sra.c (analyze_access_subtree): Correct hole detection when
10423 total_scalarization fails.
10424
10425 2016-01-27 David Edelsohn <dje.gcc@gmail.com>
10426
10427 * config/rs6000/driver-rs6000.c (detect_processor_aix): Add
10428 power9.
10429
10430 2016-01-27 Christian Bruel <christian.bruel@st.com>
10431
10432 PR target/69245
10433 * config/arm/arm-c.c (arm_pragma_target_parse): Add comments.
10434 Move arm_reset_previous_fndecl and set_target_option_current_node in
10435 the conditional part. Call save_restore_target_globals.
10436 * config/arm/arm.c (arm_set_current_function):
10437 Refactor to better support #pragma target and attribute mix.
10438 Call save_restore_target_globals.
10439 * config/arm/arm-protos.h (save_restore_target_globals): New function.
10440
10441 2016-01-27 Martin Liska <mliska@suse.cz>
10442
10443 * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
10444 reference for an HSA kernel and its host function.
10445
10446 2016-01-27 Jakub Jelinek <jakub@redhat.com>
10447
10448 PR tree-optimization/69399
10449 * wide-int.h (wi::lrshift): For larger precisions, only
10450 use fast path if shift is known to be < HOST_BITS_PER_WIDE_INT.
10451
10452 2016-01-27 Claudiu Zissulescu <claziss@synopsys.com>
10453
10454 * config/arc/predicates.md (proper_comparison_operator): Reject
10455 constant-constant comparison.
10456
10457 2016-01-26 Tom de Vries <tom@codesourcery.com>
10458
10459 PR tree-optimization/69110
10460 * tree-data-ref.c (initialize_data_dependence_relation): Handle
10461 DR_NUM_DIMENSIONS == 0.
10462
10463 2016-01-26 Abderrazek Zaafrani <a.zaafrani@samsung.com>
10464 Sebastian Pop <s.pop@samsung.com>
10465
10466 * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Handle
10467 isl_ast_op_cond and isl_ast_op_select.
10468 (gcc_expression_from_isl_expr_op): Same.
10469
10470 2016-01-26 Jason Merrill <jason@redhat.com>
10471
10472 PR c++/68782
10473 * tree.c (recompute_constructor_flags): Split out from
10474 build_constructor.
10475 (verify_constructor_flags): New.
10476 * tree.h: Declare them.
10477
10478 2016-01-26 Iain Buclaw <ibuclaw@gdcproject.org>
10479
10480 PR rtl-optimization/69217
10481 * var-tracking.c (tracked_record_parameter_p): Don't segfault if there
10482 are no TYPE_FIELDS set for the record type.
10483
10484 2016-01-26 Jakub Jelinek <jakub@redhat.com>
10485
10486 PR target/68662
10487 * config/rs6000/rs6000.c (rs6000_option_override_internal): Initialize
10488 toc_label_name unconditionally.
10489 (rs6000_emit_load_toc_table): Call ggc_strdup on toc_label_name for
10490 SYMBOL_REF string. Use toc_label_name instead of constructing
10491 LCTOC1.
10492 (rs6000_elf_declare_function_name): Use toc_label_name instead of
10493 constructing LCTOC1.
10494
10495 2016-01-26 Martin Sebor <msebor@redhat.com>
10496
10497 PR other/69477
10498 * doc/extend.texi (Common Type Attributes): Move text that talks about
10499 attribute packed from attribute aligned to the section discussing
10500 the former attribute for clarity.
10501
10502 2016-01-26 Richard Henderson <rth@redhat.com>
10503
10504 PR middle-end/60908
10505 * trans-mem.c (tm_region_init): Mark entry block as visited.
10506
10507 2016-01-26 David Malcolm <dmalcolm@redhat.com>
10508
10509 PR other/69006
10510 * diagnostic-show-locus.c (layout::print_source_line): Replace
10511 call to pp_newline with call to layout::print_newline.
10512 (layout::print_annotation_line): Likewise.
10513 (layout::move_to_column): Likewise.
10514 (layout::print_any_fixits): After printing any fixits, print a
10515 trailing newline, if necessary.
10516 (layout::print_newline): New method, resetting any colorization
10517 before a newline.
10518 (diagnostic_show_locus): Move the pp_newline to before the
10519 early bailout. Remove dummy block enclosing the layout instance.
10520 * diagnostic.c (default_diagnostic_finalizer): Replace invocation
10521 of pp_newline_and_flush with pp_flush.
10522 (diagnostic_append_note): Delete use of pp_newline.
10523 (diagnostic_append_note_at_rich_loc): Delete.
10524 * diagnostic.h (diagnostic_append_note_at_rich_loc): Delete.
10525 * pretty-print.h (output_buffer_append_r): Reset buff->line_length
10526 when newline characters are added to the buffer.
10527
10528 2016-01-26 Michael Matz <matz@suse.de>
10529
10530 * configure.ac (ac_cv_std_swap_in_utility): New test.
10531 * system.h (<algorithm>): Check HAVE_SWAP_IN_UTILITY as well.
10532 * configure: Regenerate.
10533 * config.in: Regenerate.
10534
10535 2016-01-26 Claudiu Zissulescu <claziss@synopsys.com>
10536
10537 * config/arc/arc.md (cstoresi4): Force operand into register.
10538 (arcset<code>): Fix predicate.
10539 (arcsetltu): Likewise.
10540 (arcsetgeu): Likewise.
10541 (arcsethi): Likewise.
10542 (arcsetls): Likewise.
10543
10544 2016-01-26 Jakub Jelinek <jakub@redhat.com>
10545
10546 PR tree-optimization/69483
10547 * gimple-fold.c (canonicalize_constructor_val): Return NULL
10548 if base has error_mark_node type.
10549
10550 2016-01-26 Christophe Lyon <christophe.lyon@linaro.org>
10551
10552 PR target/68620
10553 * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
10554 * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
10555 New helper macros.
10556 (vget_lane_f16): Handle big-endian.
10557 (vgetq_lane_f16): Likewise.
10558 (vset_lane_f16): Likewise.
10559 (vsetq_lane_f16): Likewise.
10560 * config/arm/iterators.md (VQXMOV): Add V8HF.
10561 (VDQ): Add V4HF and V8HF.
10562 (V_reg): Handle V4HF and V8HF.
10563 (Is_float_mode): Likewise.
10564 * config/arm/neon.md (movv4hf, movv8hf, neon_vdup_nv4hf,
10565 neon_vdup_nv8hf): New patterns.
10566 (vec_set<mode>_internal, vec_extract<mode>, neon_vld1_dup<mode>):
10567 Use VD_LANE iterator.
10568 (neon_vld1_dup<mode>): Use VQ2 iterator.
10569
10570 2016-01-26 Nathan Sidwell <nathan@acm.org>
10571
10572 * omp-low.h (oacc_fn_attrib_kernels_p): Declare.
10573 (set_oacc_fn_attrib): Add IS_KERNEL arg.
10574 * omp-low.c (set_oacc_fn_attrib): Add IS_KERNEL arg.
10575 (oacc_fn_attrib_kernels_p, oacc_fn_attrib_level): New.
10576 (expand_omp_target): Pass is_kernel to set_oacc_fn_attrib.
10577 (oacc_validate_dims): Add LEVEL arg, don't return level.
10578 (new_oacc_loop_routine): Use oacc_fn_attrib_level, not
10579 oacc_validate_dims.
10580 (execute_oacc_device_lower): Adjust, add more dump output.
10581 * tree-ssa-loop.c (gate_oacc_kernels): Use
10582 oacc_fn_attrib_kernels_p.
10583 * tree-parloops.c (create_parallel_loop): Adjust
10584 set_oacc_fn_attrib call.
10585
10586 2016-01-26 Jakub Jelinek <jakub@redhat.com>
10587
10588 PR lto/69254
10589 * lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
10590 (append_compiler_options): Handle -fcilkplus.
10591 (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.
10592
10593 2016-01-26 Nick Clifton <nickc@redhat.com>
10594
10595 PR target/66655
10596 * config/i386/winnt.c (i386_pe_binds_local_p): If a function has
10597 been marked as DECL_ONE_ONLY but we do not the means to make it
10598 so, then do not allow it to bind locally.
10599
10600 2016-01-26 Jakub Jelinek <jakub@redhat.com>
10601
10602 PR lto/69254
10603 * opts.h (parse_sanitizer_options): New prototype.
10604 * opts.c (sanitizer_opts): New array.
10605 (parse_sanitizer_options): New function.
10606 (common_handle_option): Use parse_sanitizer_options.
10607
10608 2016-01-26 H.J. Lu <hongjiu.lu@intel.com>
10609
10610 PR target/68986
10611 * config/i386/i386.c (ix86_compute_frame_layout): Move stack
10612 alignment adjustment to ...
10613 (ix86_update_stack_boundary): Here. Don't over-align stack for
10614 __tls_get_addr.
10615 (ix86_finalize_stack_realign_flags): Use stack_alignment_needed
10616 if __tls_get_addr is called.
10617
10618 2016-01-26 Christian Bruel <christian.bruel@st.com>
10619
10620 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.
10621
10622 2016-01-26 Eric Botcazou <ebotcazou@adacore.com>
10623
10624 * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.
10625
10626 2016-01-26 Richard Biener <rguenther@suse.de>
10627
10628 PR middle-end/69467
10629 * match.pd: Guard X * CST CMP 0 pattern with single_use.
10630
10631 2016-01-26 Richard Biener <rguenther@suse.de>
10632
10633 PR tree-optimization/69452
10634 * tree-ssa-loop-im.c (move_computations_dom_walker): Remove.
10635 (move_computations_dom_walker::before_dom_children): Rename
10636 to ...
10637 (move_computations_worker): This.
10638 (move_computations): Perform an RPO rather than a DOM walk.
10639
10640 2016-01-26 Jakub Jelinek <jakub@redhat.com>
10641
10642 PR target/69442
10643 * combine.c (combine_instructions): For REG_EQUAL note with
10644 SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST
10645 to the underlying register.
10646 * doc/rtl.texi (REG_EQUAL): Document the behavior of
10647 REG_EQUAL/REG_EQUIV notes if SET_DEST is ZERO_EXTRACT.
10648
10649 2016-01-26 Roger Ferrer Ibáñez <rofirrim@gmail.com>
10650
10651 PR target/67896
10652 * config/aarch64/aarch64-builtins.c
10653 (aarch64_init_simd_builtin_types): Do not set structural
10654 equality to __Poly{8,16,64,128}_t types.
10655
10656 2016-01-26 Richard Sandiford <richard.sandiford@arm.com>
10657
10658 PR tree-optimization/69400
10659 * wide-int.cc (wi_pack): Take the precision as argument and
10660 perform canonicalization here rather than in the callers.
10661 Use the main loop to handle all full-width HWIs. Add a
10662 zero HWI if in_len isn't a full result.
10663 (wi::divmod_internal): Update accordingly.
10664 (wi::mul_internal): Likewise. Simplify.
10665
10666 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
10667 Sebastian Pop <s.pop@samsung.com>
10668
10669 * graphite-poly.c (apply_poly_transforms): Simplify.
10670 (print_isl_set): Use more readable format: ISL_YAML_STYLE_BLOCK.
10671 (print_isl_map): Same.
10672 (print_isl_union_map): Same.
10673 (print_isl_schedule): New.
10674 (debug_isl_schedule): New.
10675 * graphite-dependences.c (scop_get_reads): Do not call
10676 isl_union_map_add_map that is undocumented isl functionality.
10677 (scop_get_must_writes): Same.
10678 (scop_get_may_writes): Same.
10679 (scop_get_original_schedule): Remove.
10680 (scop_get_dependences): Do not call isl_union_map_compute_flow that
10681 is deprecated in isl 0.15. Instead, use isl_union_access_* interface.
10682 (compute_deps): Remove.
10683 * graphite-isl-ast-to-gimple.c (print_schedule_ast): New.
10684 (debug_schedule_ast): New.
10685 (translate_isl_ast_to_gimple::scop_to_isl_ast): Call
10686 set_separate_option.
10687 (graphite_regenerate_ast_isl): Add dump.
10688 (translate_isl_ast_to_gimple::scop_to_isl_ast): Generate code
10689 from scop->transformed_schedule.
10690 (graphite_regenerate_ast_isl): Add more dump.
10691 * graphite-optimize-isl.c (optimize_isl): Set
10692 scop->transformed_schedule. Check whether schedules are equal.
10693 (apply_poly_transforms): Move here.
10694 * graphite-poly.c (apply_poly_transforms): ... from here.
10695 (free_poly_bb): Static.
10696 (free_scop): Static.
10697 (pbb_number_of_iterations_at_time): Remove.
10698 (print_isl_ast): New.
10699 (debug_isl_ast): New.
10700 (debug_scop_pbb): New.
10701 * graphite-scop-detection.c (print_edge): Move.
10702 (print_sese): Move.
10703 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
10704 (build_scop_scattering): Remove.
10705 (create_pw_aff_from_tree): Assert instead of bailing out.
10706 (add_condition_to_pbb): Remove unused code, do not fail.
10707 (add_conditions_to_domain): Same.
10708 (add_conditions_to_constraints): Remove.
10709 (build_scop_context): New.
10710 (add_iter_domain_dimension): New.
10711 (build_iteration_domains): Initialize pbb->iterators.
10712 Call add_conditions_to_domain.
10713 (nested_in): New.
10714 (loop_at): New.
10715 (index_outermost_in_loop): New.
10716 (index_pbb_in_loop): New.
10717 (outermost_pbb_in): New.
10718 (add_in_sequence): New.
10719 (add_outer_projection): New.
10720 (outer_projection_mupa): New.
10721 (add_loop_schedule): New.
10722 (build_schedule_pbb): New.
10723 (build_schedule_loop): New.
10724 (embed_in_surrounding_loops): New.
10725 (build_schedule_loop_nest): New.
10726 (build_original_schedule): New.
10727 (build_poly_scop): Call build_original_schedule.
10728 * graphite.h: Declare print_isl_schedule and debug_isl_schedule.
10729 (free_poly_dr): Remove.
10730 (struct poly_bb): Add iterators. Remove schedule, transformed, saved.
10731 (free_poly_bb): Remove.
10732 (debug_loop_vec): Remove.
10733 (print_isl_ast): Declare.
10734 (debug_isl_ast): Declare.
10735 (scop_do_interchange): Remove.
10736 (scop_do_strip_mine): Remove.
10737 (scop_do_block): Remove.
10738 (flatten_all_loops): Remove.
10739 (optimize_isl): Remove.
10740 (pbb_number_of_iterations_at_time): Remove.
10741 (debug_scop_pbb): Declare.
10742 (print_schedule_ast): Declare.
10743 (debug_schedule_ast): Declare.
10744 (struct scop): Remove schedule. Add original_schedule,
10745 transformed_schedule.
10746 (free_gimple_poly_bb): Remove.
10747 (print_generated_program): Remove.
10748 (debug_generated_program): Remove.
10749 (unify_scattering_dimensions): Remove.
10750 * sese.c (print_edge): ... here.
10751 (print_sese): ... here.
10752 (debug_edge): ... here.
10753 (debug_sese): ... here.
10754 * sese.h (print_edge): Declare.
10755 (print_sese): Declare.
10756 (dump_edge): Declare.
10757 (dump_sese): Declare.
10758
10759 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
10760 Sebastian Pop <s.pop@samsung.com>
10761
10762 * Makefile.in: Set ISLVER in site.exp.
10763
10764 2016-01-25 Jakub Jelinek <jakub@redhat.com>
10765
10766 * omp-low.c (lower_omp_target) <case USE_DEVICE_PTR>: Set
10767 DECL_VALUE_EXPR of new_var even for the non-array case. Look
10768 through DECL_VALUE_EXPR for expansion.
10769
10770 2016-01-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
10771
10772 * config/mips/mips.c (mips_compute_frame_info): Skip re-computing
10773 the frame info after reload completed.
10774
10775 2016-01-25 Jeff Law <law@redhat.com>
10776
10777 PR tree-optimization/69196
10778 PR tree-optimization/68398
10779 * tree-ssa-threadupdate.h (enum bb_dom_status): Moved here from
10780 tree-ssa-threadupdate.c.
10781 (determine_bb_domination_status): Prototype
10782 * tree-ssa-threadupdate.c (enum bb_dom_status): Remove
10783 (determine_bb_domination_status): No longer static.
10784 (valid_jump_thread_path): Remove code to detect characteristics
10785 of the jump thread path not associated with correctness.
10786 * tree-ssa-threadbackward.c (fsm_find_control_statment_thread_paths):
10787 Correct test for thread path length. Count PHIs for real operands as
10788 statements that need to be copied. Do not count ASSERT_EXPRs.
10789 Look at all the blocks in the thread path. Compute and selectively
10790 filter thread paths based on threading through the latch, threading
10791 a multiway branch or crossing a multiway branch.
10792
10793 2016-01-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10794
10795 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): Add
10796 decl with __attribute__ ((unused)) annotation.
10797
10798 2016-01-25 Ilya Enkovich <enkovich.gnu@gmail.com>
10799
10800 PR target/69421
10801 * tree-vect-stmts.c (vectorizable_condition): Check vectype
10802 of operands is compatible with a statement vectype.
10803
10804 2016-01-25 Eric Botcazou <ebotcazou@adacore.com>
10805
10806 * doc/extend.texi (scalar_storage_order type attribute): Fix typo and
10807 improve wording for mixed storage order support.
10808
10809 2016-01-25 Bilyan Borisov <bilyan.borisov@arm.com>
10810
10811 * config/aarch64/arm_neon.h (vcvt_s64_f64): New intrinsic.
10812 (vcvt_u64_f64): Likewise.
10813 (vcvta_s64_f64): Likewise.
10814 (vcvta_u64_f64): Likewise.
10815 (vcvtm_s64_f64): Likewise.
10816 (vcvtm_u64_f64): Likewise.
10817 (vcvtn_s64_f64): Likewise.
10818 (vcvtn_u64_f64): Likewise.
10819 (vcvtp_s64_f64): Likewise.
10820 (vcvtp_u64_f64): Likewise.
10821
10822 2016-01-25 Claudiu Zissulescu <claziss@synopsys.com>
10823
10824 * config/arc/arc.c (TARGET_DWARF_REGISTER_SPAN): Define.
10825 (arc_init): Check validity mll64 option.
10826 (arc_save_restore): Use double load/store instruction.
10827 (arc_expand_movmem): Likewise.
10828 (arc_split_move): Don't split if we have double load/store
10829 instructions. Returns a boolean.
10830 (arc_process_double_reg_moves): Change function to return boolean
10831 instead of a sequence of instructions.
10832 (arc_dwarf_register_span): New function.
10833 * config/arc/arc-protos.h (arc_split_move): Change prototype.
10834 * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __ARC_LL64__.
10835 * config/arc/arc.md (*movdi_insn): Emit ldd/std instructions.
10836 (*movdf_insn): Likewise.
10837 * config/arc/arc.opt (mll64): New option.
10838 * config/arc/predicates.md (even_register_operand): New predicate.
10839 * doc/invoke.texi (ARC Options): Add mll64 documentation.
10840
10841 2016-01-25 Richard Biener <rguenther@suse.de>
10842
10843 PR lto/69393
10844 * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
10845 * tree-streamer-out.c (pack_ts_base_value_fields): Stream
10846 DECL_NAMELESS.
10847 * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
10848
10849 2016-01-25 Richard Biener <rguenther@suse.de>
10850
10851 PR tree-optimization/69376
10852 * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
10853 flag.
10854 (VN_INFO_ANTI_RANGE_P): New inline.
10855 (VN_INFO_RANGE_TYPE): Likewise.
10856 * tree-ssa-sccvn.c (set_ssa_val_to): Also record and copy
10857 SSA_NAME_ANTI_RANGE_P.
10858 (free_scc_vn): Restore SSA_NAME_ANTI_RANGE_P.
10859 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
10860 Properly query VN_INFO_RANGE_TYPE.
10861
10862 2016-01-25 Nick Clifton <nickc@redhat.com>
10863
10864 PR target/66655
10865 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.
10866
10867 2016-01-23 Tom de Vries <tom@codesourcery.com>
10868
10869 PR tree-optimization/69426
10870 * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
10871 removed clobber.
10872
10873 2016-01-23 Jakub Jelinek <jakub@redhat.com>
10874
10875 * tree-ssanames.c (release_free_names_and_compact_live_names): Replace
10876 "the the" with "the" in the comments.
10877 * ipa-devirt.c (build_type_inheritance_graph,
10878 update_type_inheritance_graph): Likewise.
10879 * tree.c (build_function_type_list_1): Likewise.
10880 * cfgloopmanip.c (scale_loop_profile): Likewise.
10881 * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Likewise.
10882 * gimple-ssa-split-paths.c
10883 (find_block_to_duplicate_for_splitting_paths): Likewise.
10884 * tree-sra.c (init_subtree_with_zero, clobber_subtree): Likewise.
10885 * expr.c (convert_move): Likewise.
10886 * var-tracking.c (vt_stack_adjustments): Likewise.
10887 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
10888 * tree-vrp.c (test_for_singularity): Likewise.
10889
10890 * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
10891 directly instead of building a temporary tree.
10892
10893 PR bootstrap/69434
10894 * genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
10895 remove <algorithm> include.
10896
10897 2016-01-22 Jakub Jelinek <jakub@redhat.com>
10898
10899 PR target/69432
10900 * config/i386/i386.c: Include dojump.h.
10901 (expand_small_movmem_or_setmem,
10902 expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Spelling
10903 fixes.
10904 (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
10905 if dynamic_check != -1.
10906
10907 2016-01-21 Jeff Law <law@redhat.com>
10908
10909 PR middle-end/69347
10910 * tree-ssa-dom.c (back_propagate_equivalences): Factored out of
10911 record_temporary_equivalences. Rewritten to avoid unnecessary calls
10912 into dominated_by_p.
10913 (cprop_into_successor_phis): Avoid unnecessary tests.
10914
10915 2016-01-22 Richard Henderson <rth@redhat.com>
10916
10917 PR target/69416
10918 * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
10919 (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
10920
10921 2016-01-22 Michael Matz <matz@suse.de>
10922
10923 * system.h (string, algorithm): Include only conditionally.
10924 (new): Include always under C++.
10925 * bb-reorder.c (toplevel): Define INCLUDE_ALGORITHM.
10926 * final.c (toplevel): Ditto.
10927 * ipa-chkp.c (toplevel): Define INCLUDE_STRING.
10928 * genconditions.c (write_header): Make gencondmd.c define
10929 INCLUDE_STRING.
10930 * mem-stats.h (mem_usage::print_dash_line): Don't use std::string.
10931
10932 * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
10933 * common/config/aarch64/aarch64-common.c (toplevel): Ditto.
10934
10935 2016-01-22 Christian Bruel <christian.bruel@st.com>
10936
10937 PR target/68674
10938 * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.
10939
10940 2016-01-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10941
10942 PR target/69403
10943 * config/arm/thumb2.md (*thumb2_ior_scc_strict_it): Convert to
10944 define_insn_and_split. Ensure operands[1] and operands[0] do not
10945 get assigned the same register.
10946
10947 2016-01-22 Kugan Vivekanandarajah <kuganv@linaro.org>
10948
10949 * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.
10950
10951 2016-01-22 Christian Bruel <christian.bruel@st.com>
10952
10953 * config/arm/arm-c.c (arm_pragma_target_parse):
10954 Remove warn_builtin_macro_redefined overwrite.
10955
10956 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
10957
10958 * ipa-inline.c (can_inline_edge_p): Back out overzealous check on
10959 flag_non_call_exceptions compatibility.
10960
10961 2016-01-22 Jakub Jelinek <jakub@redhat.com>
10962
10963 PR debug/66668
10964 * dwarf2out.c (add_child_die_after): New function.
10965 (dwarf_qual_info_t): New type.
10966 (dwarf_qual_info): New variable.
10967 (qualified_die_p): New function.
10968 (modified_type_die): For -fdebug-types-section, ensure
10969 canonical order of qualifiers. Put qualified DIEs adjacent
10970 to the corresponding non-qualified type DIE and search there
10971 for existing qualified DIEs.
10972
10973 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
10974
10975 * doc/extend.texi (scalar_storage_order type attribute): Document
10976 restriction on type punning and aliasing, and remove future tense.
10977
10978 2016-01-21 Roman Zhuykov <zhroma@ispras.ru>
10979
10980 PR target/69252
10981 * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
10982 first stage.
10983
10984 2016-01-21 Jeff Law <law@redhat.com>
10985
10986 PR middle-end/69347
10987 * tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid
10988 useless call to record_temporary_equivalences.
10989 * tree-ssa-threadbackward.c (find_jump_threads_backwards): Just
10990 allocate 10 slots in the bb_path vector and let it grow as needed.
10991 (fsm_find_control_statement_thread_paths): Similarly for the next_path
10992 vector.
10993
10994 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
10995
10996 * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
10997 Detangle.
10998 * configure: Regenerate.
10999
11000 2016-01-21 Pat Haugen <pthaugen@us.ibm.com>
11001
11002 * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
11003 * config/rs6000/driver-rs6000.c (struct asm_names): Likewise.
11004
11005 2016-01-21 Bernd Schmidt <bschmidt@redhat.com>
11006
11007 PR middle-end/66178
11008 * expr.c (expand_expr_real_2) [PLUS_EXPR, MINUS_EXPR]: Don't
11009 drop EXPAND_INITIALIZER.
11010 * rtl.h (contains_symbolic_reference_p): Declare.
11011 * rtlanal.c (contains_symbolic_reference_p): New function.
11012 * simplify-rtx.c (simplify_binary_operation_1): Don't turn
11013 a subtraction into a NOT if symbolic constants are involved.
11014
11015 2016-01-21 Anton Blanchard <anton@samba.org>
11016 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11017
11018 PR target/63354
11019 * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
11020 #define.
11021 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
11022 function.
11023
11024 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
11025
11026 * config/microblaze/microblaze.c
11027 (get_branch_target): New.
11028 (insert_wic_for_ilb_runout): New.
11029 (insert_wic): New.
11030 (microblaze_machine_dependent_reorg): New.
11031 (TARGET_MACHINE_DEPENDENT_REORG): Define macro.
11032 * config/microblaze/microblaze.md
11033 (UNSPEC_IPREFETCH): Define.
11034 (iprefetch): New pattern
11035 * config/microblaze/microblaze.opt
11036 (mxl-prefetch): New flag.
11037
11038 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
11039
11040 * config/microblaze/microblaze.h
11041 (FIXED_REGISTERS): Update in macro.
11042 (CALL_USED_REGISTERS): Update in macro.
11043
11044 2016-01-21 Yuri Rumyantsev <ysrumyan@gmail.com>
11045
11046 PR rtl-optimization/68920
11047 * ifcvt.c (cond_move_process_if_block): Limit number of conditional
11048 moves.
11049
11050 2016-01-21 Vladimir Makarov <vmakarov@redhat.com>
11051
11052 PR rtl-optimization/68990
11053 * lra-coalesce.c (lra_coalesce): Invalidate value for the result
11054 pseudo instead of inheritance ones.
11055
11056 2016-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
11057 Nick Clifton <nickc@redhat.com>
11058
11059 PR target/69129
11060 PR target/69012
11061 * config/mips/mips.c (mips_compute_frame_info): Initialise
11062 args_size and hard_frame_pointer_offset fields of the frame
11063 structure before calling mips_global_pointer.
11064
11065 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
11066
11067 * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
11068 label reference.
11069 * configure: Regenerate.
11070
11071 2016-01-21 Richard Biener <rguenther@suse.de>
11072
11073 * graphite-optimize-isl.c (get_schedule_map): Fix typo.
11074
11075 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
11076
11077 * config/s390/s390.c (s390_asm_declare_function_size): Add code
11078 to actually emit the .size directive.
11079
11080 2016-01-21 Stefan Sørensen <stefan.sorensen@spectralink.com>
11081 Jakub Jelinek <jakub@redhat.com>
11082
11083 PR target/69187
11084 PR target/65624
11085 * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
11086 args array size by one to avoid buffer overflow.
11087
11088 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
11089
11090 * config/s390/s390.md (pool_section_start): Use switch_to_section
11091 to select proper read-only data section instead of hardcoding
11092 .rodata.
11093 (pool_section_end): Use switch_to_section to match the above.
11094
11095 2016-01-21 Richard Biener <rguenther@suse.de>
11096
11097 PR tree-optimization/69378
11098 * tree-ssa-sccvn.c (dominated_by_p_w_unex): New function.
11099 (set_ssa_val_to): Use it for dominance checks taking into
11100 account not executable edges.
11101
11102 2016-01-21 Jakub Jelinek <jakub@redhat.com>
11103
11104 PR c++/69355
11105 * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
11106 for bitsize instead of GET_MODE_PRECISION (mode).
11107
11108 2016-01-20 Martin Sebor <msebor@redhat.com>
11109
11110 PR c/52291
11111 * extend.texi (__sync Builtins): Clarify the semantics of
11112 __sync_fetch_and_OP built-ins on pointers.
11113 (__atomic Builtins): Same.
11114
11115 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11116 Sebastian Pop <s.pop@samsung.com>
11117
11118 * graphite-isl-ast-to-gimple.c (enum phi_node_kind): New.
11119 (class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool.
11120 (is_valid_rename): Same.
11121 (translate_isl_ast_to_gimple::get_rename): Same.
11122 (translate_isl_ast_to_gimple::rename_all_uses): Same.
11123 (translate_isl_ast_to_gimple::rename_uses): Same.
11124 (get_new_name): Check for close_phi nodes.
11125 (copy_loop_phi_args): Use phi_node_kind.
11126 (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
11127 (translate_isl_ast_to_gimple::copy_cond_phi_args): Same.
11128
11129 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11130 Sebastian Pop <s.pop@samsung.com>
11131
11132 Revert commit r229783.
11133 * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
11134 Remove use of parameter_rename_map.
11135 (copy_def): Remove.
11136 (copy_internal_parameters): Remove.
11137 (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
11138 * sese.c (new_sese_info): Do not initialize parameter_rename_map.
11139 (free_sese_info): Do not free parameter_rename_map.
11140 (set_rename): Do not use parameter_rename_map.
11141 (rename_uses): Update call to set_rename.
11142 (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
11143 * sese.h (parameter_rename_map_t): Remove.
11144 (struct sese_info_t): Remove field parameter_rename_map.
11145
11146 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11147 Sebastian Pop <s.pop@samsung.com>
11148
11149 * graphite-isl-ast-to-gimple.c: Fix comment.
11150 * graphite-scop-detection.c (defined_in_loop_p): New.
11151 (canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
11152 names defined in loop.
11153
11154 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11155 Sebastian Pop <s.pop@samsung.com>
11156
11157 * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
11158 Discard unstructured if-then-else regions.
11159
11160 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11161 Sebastian Pop <s.pop@samsung.com>
11162
11163 * graphite-sese-to-poly.c (set_scop_parameter_dim): Remove.
11164 (cleanup_loop_iter_dom): Remove.
11165 (build_loop_iteration_domains): Remove.
11166 (build_scop_context): Remove.
11167 (build_scop_iteration_domain): Remove.
11168 (add_loop_constraints): New.
11169 (build_iteration_domains): New.
11170 (build_poly_scop): Call build_iteration_domains.
11171
11172 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11173 Sebastian Pop <s.pop@samsung.com>
11174
11175 * graphite-scop-detection.c
11176 (scop_detection::harmful_loop_in_region): Free dom and loops.
11177 (scop_detection::loop_body_is_valid_scop): Free bbs.
11178
11179 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11180 Sebastian Pop <s.pop@samsung.com>
11181
11182 * graphite-scop-detection.c (record_loop_in_sese): New.
11183 (gather_bbs::before_dom_children): Call record_loop_in_sese.
11184 (build_scops): Remove call to build_sese_loop_nests.
11185 * sese.c (sese_record_loop): Remove.
11186 (build_sese_loop_nests): Remove.
11187 (new_sese_info): Remove region->loops.
11188 (free_sese_info): Same.
11189 * sese.h (sese_contains_loop): Same.
11190 (build_sese_loop_nests): Remove.
11191 (sese_contains_loop): Remove.
11192
11193 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11194 Sebastian Pop <s.pop@samsung.com>
11195
11196 * graphite-scop-detection.c (loop_is_valid_scop): Renamed
11197 loop_is_valid_in_scop.
11198 (scop_detection::harmful_stmt_in_region): Renamed
11199 harmful_loop_in_region.
11200 Call loop_is_valid_in_scop.
11201
11202 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11203 Sebastian Pop <s.pop@samsung.com>
11204
11205 * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
11206 isl_ast_node_mark.
11207
11208 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11209 Sebastian Pop <s.pop@samsung.com>
11210
11211 * graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION.
11212 * graphite.h (struct poly_bb): Remove field is_reduction.
11213 (PBB_IS_REDUCTION): Remove.
11214
11215 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11216 Sebastian Pop <s.pop@samsung.com>
11217
11218 * graphite-dependences.c (constrain_domain): Add call to isl_*_coalesce.
11219 (add_pdr_constraints): Same.
11220 (scop_get_reads): Same.
11221 (scop_get_must_writes): Same.
11222 (scop_get_may_writes): Same.
11223 (scop_get_original_schedule): Same.
11224 (extend_schedule): Same.
11225 (apply_schedule_on_deps): Same.
11226 (carries_deps): Same.
11227 (compute_deps): Same.
11228 (scop_get_dependences): Same.
11229 * graphite-isl-ast-to-gimple.c
11230 (translate_isl_ast_to_gimple::generate_isl_schedule): Same.
11231 * graphite-optimize-isl.c (get_schedule_for_band): Same.
11232 (get_schedule_for_band_list): Same.
11233 (get_schedule_map): Same.
11234 (apply_schedule_map_to_scop): Same.
11235 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
11236 (build_loop_iteration_domains): Same.
11237 (add_condition_to_pbb): Same.
11238 (add_param_constraints): Same.
11239 (pdr_add_memory_accesses): Same.
11240 (pdr_add_data_dimensions): Same.
11241
11242 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
11243
11244 * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
11245 requirements.
11246
11247 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
11248
11249 * common.opt (feliminate-dwarf2-dups): Replace references to
11250 "DWARF 2" with just "DWARF".
11251 * config/ia64/ia64.opt (mdwarf2-asm): Likewise.
11252 * doc/extend.texi: Likewise.
11253 * doc/cpp.texi: Likewise.
11254 * doc/invoke.texi: Likewise.
11255 (Option Summary): Add -gdwarf to list of Debugging Options.
11256 (Debugging Options): Document -gdwarf.
11257 * doc/contrib.texi: Spell "DWARF" like that.
11258
11259 2016-01-21 Jakub Jelinek <jakub@redhat.com>
11260
11261 * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
11262 warning. Fix up formatting.
11263
11264 PR middle-end/67653
11265 * gimplify.c (gimplify_asm_expr): Warn if it is too late to
11266 attempt to mark memory input operand addressable and
11267 call prepare_gimple_addressable in that case. Don't adjust
11268 input_location for diagnostics, use error_at instead.
11269
11270 2016-01-20 Peter Bergner <bergner@vnet.ibm.com>
11271
11272 * config/rs6000/ppc-auxv.h: New file.
11273 * config/rs6000/rs6000-builtin.def (cpu_init): Add new builtin.
11274 (cpu_is): Likewise.
11275 (cpu_supports): Likewise.
11276 * config/rs6000/rs6000.c: include "ppc-auxv.h".
11277 (cpu_is_info): New variable.
11278 (cpu_supports_info): Likewise.
11279 (tcb_verification_symbol): Likewise.
11280 (cpu_builtin_p): Likewise.
11281 (cpu_expand_builtin): New function.
11282 (rs6000_expand_ternop_builtin): Add support for CPU builtin functions.
11283 (rs6000_init_builtins): Likewise.
11284 (rs6000_elf_file_end): Emit HWCAP in TCB verification symbol.
11285 * config/rs6000/rs6000.h (TLS_REGNUM): New define.
11286 * configure.ac (gcc_cv_libc_provides_hwcap_in_tcb): New test.
11287 * configure: Regenerate.
11288 * config.in: Likewise.
11289 * doc/extend.texi (PowerPC Built-in Functions): Document
11290 __builtin_cpu_init, __builtin_cpu_is and __builtin_cpu_supports.
11291
11292 2016-01-20 David Edelsohn <dje.gcc@gmail.com>
11293
11294 PR target/68609
11295 * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
11296 domain check.
11297 * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
11298 for V4SFmode.
11299
11300 2016-01-20 Richard Henderson <rth@redhat.com>
11301
11302 PR bootstrap/69343
11303 PR bootstrap/69339
11304 PR tree-opt/68964
11305 Revert:
11306 * tree.c (tm_define_builtin): New.
11307 (find_tm_vector_type): New.
11308 (build_tm_vector_builtins): New.
11309 (build_common_builtin_nodes): Call it.
11310
11311 2016-01-20 Christophe Lyon <christophe.lyon@linaro.org>
11312
11313 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
11314 (arm_fp_ok): Likewise.
11315 (arm_fp): Likewise.
11316 (arm_crypto): Likewise.
11317
11318 2016-01-20 Ilya Enkovich <enkovich.gnu@gmail.com>
11319 Richard Biener <rguenther@suse.de>
11320
11321 PR tree-optimization/69328
11322 * tree-vect-stmts.c (vect_is_simple_cond): Check compared
11323 vectors have same number of elements.
11324 (vectorizable_condition): Fix masked version recognition.
11325
11326 2016-01-20 Richard Biener <rguenther@suse.de>
11327
11328 PR tree-optimization/69345
11329 * tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function.
11330 (VN_INFO_PTR_INFO): Likewise.
11331 * tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to
11332 info when it is equal between non-dominating SSA names.
11333 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
11334 Make sure to look at original SSA infos.
11335
11336 2016-01-20 Jeff Law <law@redhat.com>
11337
11338 PR target/25114
11339 * config/m68k/predicates.md (pow2_m1_operand): New predicate
11340 extracted from ...
11341 (reg_or_pow2_m1_operand): Call pow2_m1_operand.
11342 (pc_or_label_operand): New predicate.
11343 * config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU
11344 tests for small integers that are 2^n - 1.
11345
11346 2016-01-20 Jonathan Wakely <jwakely@redhat.com>
11347
11348 * doc/invoke.texi (Options Summary): Add '.' after @xref.
11349
11350 2016-01-19 Jeff Law <law@redhat.com>
11351
11352 PR middle-end/69347
11353 * tree-ssa-threadbackwards.c
11354 (fsm_find_control_statement_thread_paths): Do not try to lookup
11355 FSM paths for SSA_NAMEs appearing in abnormal PHIs.
11356
11357 2016-01-20 Kugan Vivekanandarajah <kuganv@linaro.org>
11358
11359 * doc/lto.texi: Remove text that says only Gold has linker plugin
11360 support.
11361
11362 2016-01-19 Eric Botcazou <ebotcazou@adacore.com>
11363
11364 * dwarf2out.c (need_endianity_attribute_p): New inline predicate.
11365 (base_type_die): Add REVERSE parameter and attach DW_AT_endianity to
11366 the DIE accordingly.
11367 (modified_type_die): Add REVERSE parameter and pass it recursively,
11368 as well as to base_type_die. Adjust presence check accordingly.
11369 (base_type_for_mode): Adjust call to modified_type_die.
11370 (add_type_attribute): Add REVERSE parameter and pass it to
11371 modified_type_die.
11372 (generic_parameter_die): Adjust call to add_type_attribute.
11373 (add_scalar_info): Likewise.
11374 (add_subscript_info): Likewise.
11375 (gen_array_type_die): Likewise.
11376 (gen_descr_array_type_die): Likewise.
11377 (gen_entry_point_die): Likewise.
11378 (gen_enumeration_type_die): Likewise.
11379 (gen_formal_parameter_die): Likewise.
11380 (gen_subprogram_die): Likewise.
11381 (gen_variable_die ): Likewise.
11382 (gen_const_die): Likewise.
11383 (gen_field_die): Likewise.
11384 (gen_pointer_type_die): Likewise.
11385 (gen_reference_type_die): Likewise.
11386 (gen_ptr_to_mbr_type_die): Likewise.
11387 (gen_inheritance_die): Likewise.
11388 (gen_subroutine_type_die): Likewise.
11389 (gen_typedef_die): Likewise.
11390 (force_type_die): Adjust call to modified_type_die.
11391
11392 2016-01-19 Sandra Loosemore <sandra@codesourcery.com>
11393
11394 * doc/standards.texi: Copy-editing for grammar, markup, and sentence
11395 flow throughout the file. Fix broken link to Objective-C 2.0
11396 documentation.
11397 * doc/invoke.texi: More copy-editing; fix numerous typos and spelling
11398 errors.
11399
11400 2016-01-19 Wilco Dijkstra <wdijkstr@arm.com>
11401
11402 * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.
11403
11404 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
11405
11406 PR ipa/66223
11407 * ipa-devirt.c (is_cxa_pure_virtual_p): New function.
11408 (maybe_record_node): Record cxa_pure_virtual as the only possible
11409 target if there are not ohter candidates.
11410 (possible_polymorphic_call_target_p): Accept cxa_pure_virtual.
11411
11412 2016-01-19 Richard Biener <rguenther@suse.de>
11413
11414 * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
11415 (get_memory_order): Likewise.
11416
11417 2016-01-19 Kirill Yukhin <kirill.yukhin@intel.com>
11418
11419 * tree-vect-stmts.c (vectorizable_store): Check
11420 rhs vectype.
11421
11422 2016-01-19 David Malcolm <dmalcolm@redhat.com>
11423
11424 PR jit/68446
11425 * gcc.c (driver::decode_argv): Add call to
11426 init_opts_obstack before init_options_struct.
11427 * opts.c (init_opts_obstack): Remove idempotency.
11428 (init_options_struct): Replace call to init_opts_obstack
11429 with a gcc_assert to verify that it has already been called.
11430 * toplev.c (toplev::main): Add call to init_opts_obstack before
11431 calls to init_options_struct.
11432 (toplev::finalize): Move cleanup of opts_obstack next to
11433 cleanup of save_decoded_options, clearing the latter, and
11434 save_decoded_options_count.
11435
11436 2016-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11437
11438 PR target/69135
11439 * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
11440 attribute to unconditional. Remove %? from output template.
11441
11442 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
11443 Jiong Wang <jiong.wang@arm.com>
11444
11445 * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
11446 generated from different expand order.
11447
11448 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
11449
11450 * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
11451 Add support for CCMP costing.
11452
11453 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
11454
11455 * ccmp.c (ccmp_candidate_p): Remove integer-only restriction.
11456 * config/aarch64/aarch64.md (fccmp<mode>): New pattern.
11457 (fccmpe<mode>): Likewise.
11458 (fcmp): Rename to fcmp and globalize pattern.
11459 (fcmpe): Likewise.
11460 * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
11461 (aarch64_gen_ccmp_next): Add FP support.
11462
11463 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
11464
11465 * target.def (gen_ccmp_first): Update documentation.
11466 (gen_ccmp_next): Likewise.
11467 * doc/tm.texi (gen_ccmp_first): Update documentation.
11468 (gen_ccmp_next): Likewise.
11469 * ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of
11470 expand_ccmp_expr_1. Improve comments.
11471 * config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp.
11472 (ccmp_ior<mode>): Remove pattern.
11473 (cmp<mode>): Remove expand.
11474 (cmp): Globalize pattern.
11475 (cstorecc4): Use cc_register.
11476 (mov<mode>cc): Remove ccmp_cc_register check.
11477 * config/aarch64/aarch64.c (aarch64_get_condition_code_1):
11478 Simplify after removal of CC_DNE/* modes.
11479 (aarch64_ccmp_mode_to_code): Remove.
11480 (aarch64_print_operand): Remove 'K' case. Merge 'm' and 'M' cases.
11481 In 'k' case use integer as condition.
11482 (aarch64_nzcv_codes): Remove inverted cases.
11483 (aarch64_code_to_ccmode): Remove.
11484 (aarch64_gen_ccmp_first): Use cmp pattern directly. Return the correct
11485 comparison with CC register to be used in folowing CCMP/branch/CSEL.
11486 (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP
11487 pattern. Return the comparison with CC register. Invert conditions
11488 when bitcode is OR.
11489 * config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes.
11490 * config/aarch64/predicates.md (ccmp_cc_register): Remove.
11491
11492 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
11493
11494 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
11495 instrumented_version.
11496
11497 2016-01-19 Richard Biener <rguenther@suse.de>
11498
11499 PR tree-optimization/69336
11500 * tree-ssa-scopedtables.c (avail_expr_hash): Handle all
11501 handled components with get_ref_base_and_extent.
11502 (equal_mem_array_ref_p): Adjust.
11503
11504 2016-01-19 Jakub Jelinek <jakub@redhat.com>
11505
11506 PR debug/65779
11507 * shrink-wrap.c: Include valtrack.h.
11508 (move_insn_for_shrink_wrap): Add DEBUG argument. If
11509 MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs
11510 in between insn and where it will be moved to. Call
11511 dead_debug_insert_temp.
11512 (prepare_shrink_wrap): Adjust caller. Call dead_debug_local_init
11513 first and dead_debug_local_finish at the end.
11514 For uses and defs bitmap, handle all regs in between REGNO and
11515 END_REGNO, not just the first one.
11516
11517 2016-01-19 Richard Biener <rguenther@suse.de>
11518
11519 PR tree-optimization/69352
11520 * tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1.
11521 (equal_mem_array_ref_p): Constrain size and max size properly.
11522 Compare the reverse flag.
11523
11524 2016-01-19 Bernd Schmidt <bschmidt@redhat.com>
11525
11526 * ira.c (ira): Update regstat data if we deleted insns.
11527
11528 2016-01-19 Jakub Jelinek <jakub@redhat.com>
11529
11530 PR rtl-optimization/68955
11531 PR rtl-optimization/64557
11532 * dse.c (record_store, check_mem_read_rtx): Don't call get_addr
11533 here. Fix up formatting.
11534 * alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.
11535
11536 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
11537
11538 PR lto/69133
11539 * cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple
11540 assume that the node has body.
11541 * cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p
11542 check.
11543
11544 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
11545
11546 * lto-streamer-out.c (lto_output): Do not stream instrumentation
11547 thunks.
11548
11549 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
11550
11551 * symtab.c (symtab_node::asm_name): Do not call printable name directly.
11552 (symtab_node::name): Report name as unnamed if DECL_NAME is not set.
11553
11554 2016-01-19 Martin Jambor <mjambor@suse.cz>
11555 Martin Liska <mliska@suse.cz>
11556 Michael Matz <matz@suse.de>
11557
11558 * Makefile.in (OBJS): Add new source files.
11559 (GTFILES): Add hsa.c.
11560 * common.opt (disable_hsa): New variable.
11561 (-Whsa): New warning.
11562 * config.in (ENABLE_HSA): New.
11563 * configure.ac: Treat hsa differently from other accelerators.
11564 (OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
11565 $enable_offloading.
11566 (ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
11567 * doc/install.texi (Configuration): Document --with-hsa-runtime,
11568 --with-hsa-runtime-include, --with-hsa-runtime-lib and
11569 --with-hsa-kmt-lib.
11570 * doc/invoke.texi (-Whsa): Document.
11571 (hsa-gen-debug-stores): Likewise.
11572 * lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
11573 to invoke offload compiler for hsa acclerator.
11574 * opts.c (common_handle_option): Determine whether HSA offloading
11575 should be performed.
11576 * params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
11577 * builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
11578 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
11579 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
11580 * gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
11581 * gimple-pretty-print.c (dump_gimple_omp_for): Also handle
11582 GF_OMP_FOR_KIND_GRID_LOOP.
11583 (dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
11584 (pp_gimple_stmt_1): Likewise.
11585 * gimple-walk.c (walk_gimple_stmt): Likewise.
11586 * gimple.c (gimple_build_omp_grid_body): New function.
11587 (gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
11588 * gimple.def (GIMPLE_OMP_GRID_BODY): New.
11589 * gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
11590 GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
11591 GF_OMP_TEAMS_GRID_PHONY.
11592 (gimple_statement_omp_single_layout): Updated comments.
11593 (gimple_build_omp_grid_body): New function.
11594 (gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
11595 (gimple_omp_for_grid_phony): New function.
11596 (gimple_omp_for_set_grid_phony): Likewise.
11597 (gimple_omp_parallel_grid_phony): Likewise.
11598 (gimple_omp_parallel_set_grid_phony): Likewise.
11599 (gimple_omp_teams_grid_phony): Likewise.
11600 (gimple_omp_teams_set_grid_phony): Likewise.
11601 (gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
11602 * omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
11603 (BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
11604 (BUILT_IN_GOMP_TARGET): Updated type.
11605 * omp-low.c: Include symbol-summary.h, hsa.h and params.h.
11606 (adjust_for_condition): New function.
11607 (get_omp_for_step_from_incr): Likewise.
11608 (extract_omp_for_data): Moved parts to adjust_for_condition and
11609 get_omp_for_step_from_incr.
11610 (build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
11611 (fixup_child_record_type): Bail out if receiver_decl is NULL.
11612 (scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
11613 (scan_omp_parallel): Do not create child functions for phony
11614 constructs.
11615 (check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
11616 (scan_omp_1_op): Checking assert we are not remapping to
11617 ERROR_MARK. Also also handle GIMPLE_OMP_GRID_BODY.
11618 (parallel_needs_hsa_kernel_p): New function.
11619 (expand_parallel_call): Register apprpriate parallel child
11620 functions as HSA kernels.
11621 (grid_launch_attributes_trees): New type.
11622 (grid_attr_trees): New variable.
11623 (grid_create_kernel_launch_attr_types): New function.
11624 (grid_insert_store_range_dim): Likewise.
11625 (grid_get_kernel_launch_attributes): Likewise.
11626 (get_target_argument_identifier_1): Likewise.
11627 (get_target_argument_identifier): Likewise.
11628 (get_target_argument_value): Likewise.
11629 (push_target_argument_according_to_value): Likewise.
11630 (get_target_arguments): Likewise.
11631 (expand_omp_target): Call get_target_arguments instead of looking
11632 up for teams and thread limit.
11633 (grid_expand_omp_for_loop): New function.
11634 (grid_arg_decl_map): New type.
11635 (grid_remap_kernel_arg_accesses): New function.
11636 (grid_expand_target_kernel_body): New function.
11637 (expand_omp): Call it.
11638 (lower_omp_for): Do not emit phony constructs.
11639 (lower_omp_taskreg): Do not emit phony constructs but create for them
11640 a temporary variable receiver_decl.
11641 (lower_omp_taskreg): Do not emit phony constructs.
11642 (lower_omp_teams): Likewise.
11643 (lower_omp_grid_body): New function.
11644 (lower_omp_1): Call it.
11645 (grid_reg_assignment_to_local_var_p): New function.
11646 (grid_seq_only_contains_local_assignments): Likewise.
11647 (grid_find_single_omp_among_assignments_1): Likewise.
11648 (grid_find_single_omp_among_assignments): Likewise.
11649 (grid_find_ungridifiable_statement): Likewise.
11650 (grid_target_follows_gridifiable_pattern): Likewise.
11651 (grid_remap_prebody_decls): Likewise.
11652 (grid_copy_leading_local_assignments): Likewise.
11653 (grid_process_kernel_body_copy): Likewise.
11654 (grid_attempt_target_gridification): Likewise.
11655 (grid_gridify_all_targets_stmt): Likewise.
11656 (grid_gridify_all_targets): Likewise.
11657 (execute_lower_omp): Call grid_gridify_all_targets.
11658 (make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
11659 * tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
11660 (tree_omp_clause): Added union field dimension.
11661 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
11662 * tree.c (omp_clause_num_ops): Added number of arguments of
11663 OMP_CLAUSE__GRIDDIM_.
11664 (omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
11665 (walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
11666 * tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
11667 (OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
11668 (OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
11669 (OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
11670 * passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
11671 * tree-pass.h (make_pass_gen_hsail): Declare.
11672 (make_pass_ipa_hsa): Likewise.
11673 * ipa-hsa.c: New file.
11674 * lto-section-in.c (lto_section_name): Add hsa section name.
11675 * lto-streamer.h (lto_section_type): Add hsa section.
11676 * timevar.def (TV_IPA_HSA): New.
11677 * hsa-brig-format.h: New file.
11678 * hsa-brig.c: New file.
11679 * hsa-dump.c: Likewise.
11680 * hsa-gen.c: Likewise.
11681 * hsa.c: Likewise.
11682 * hsa.h: Likewise.
11683 * toplev.c (compile_file): Call hsa_output_brig.
11684 * hsa-regalloc.c: New file.
11685
11686 2016-01-18 Jeff Law <law@redhat.com>
11687
11688 PR tree-optimization/69320
11689 * tree-ssa-dom.c (record_edge_info): For comparisons against a boolean
11690 ranged object, do nothing if the RHS constant is not [0..1].
11691 (optimize_stmt): Comparing a boolean ranged object against a
11692 constant outside [0..1] results in a compile-time constant.
11693
11694 * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
11695 test.
11696
11697 2016-01-18 Sandra Loosemore <sandra@codesourcery.com>
11698
11699 * doc/invoke.texi (Invoking GCC): Add new section to menu.
11700 (Option Summary): Update to reflect new section and moved options.
11701 (C++ Dialect Options): Move -fstats to new section.
11702 (Debugging Options): Move all dump, statistics, and other GCC
11703 developer options to new section. Rewrite section introduction
11704 and re-order remaining options to put the more basic ones first.
11705 (Optimization Options): Move -fira-verbose and -flto-report* to
11706 new section.
11707 (Developer Options): New section incorporating moved options.
11708 * doc/cppopts.texi (-dM): Update cross-reference.
11709
11710 2016-01-18 Richard Henderson <rth@redhat.com>
11711
11712 PR target/69176
11713 * config/aarch64/aarch64.md (add<GPI>3): Move long immediate
11714 operands to pseudo only if CSE is expected. Split long immediate
11715 operands only after reload, and for the stack pointer.
11716 (*add<GPI>3_pluslong): Remove.
11717 (*addsi3_aarch64, *adddi3_aarch64): Merge into...
11718 (*add<GPI>3_aarch64): ... here. Add r/rk/Upl alternative.
11719 (*addsi3_aarch64_uxtw): Add r/rk/Upl alternative.
11720 (*add<GPI>3 peepholes): New.
11721 (*add<GPI>3 splitters): New.
11722 * config/aarch64/constraints.md (Upl): New.
11723 * config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New.
11724
11725 2016-01-18 Richard Biener <rguenther@suse.de>
11726
11727 PR tree-optimization/69297
11728 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
11729 stmt at most once.
11730 (vect_bb_vectorization_profitable_p): Clear visited flag again.
11731
11732 2016-01-18 Yuri Rumyantsev <ysrumyan@gmail.com>
11733
11734 PR middle-end/68542
11735 * fold-const.c (fold_binary_op_with_conditional_arg): Bail out for case
11736 of mixind vector and scalar types.
11737 (fold_relational_const): Add handling of vector
11738 comparison with boolean result.
11739 * tree-cfg.c (verify_gimple_comparison): Add argument CODE, allow
11740 comparison of vector operands with boolean result for EQ/NE only.
11741 (verify_gimple_assign_binary): Adjust call for verify_gimple_comparison.
11742 (verify_gimple_cond): Likewise.
11743 * tree-vrp.c (extract_code_and_val_from_cond_with_ops): Modify check on
11744 valid type of VAL.
11745
11746 2016-01-18 Joseph Myers <joseph@codesourcery.com>
11747
11748 * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
11749 !TARGET_OCTEON.
11750
11751 2016-01-18 Richard Biener <rguenther@suse.de>
11752
11753 PR middle-end/69308
11754 * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.
11755
11756 2016-01-18 Tom de Vries <tom@codesourcery.com>
11757
11758 * passes.def: Add pass_parallelize_loops to pass_oacc_kernels.
11759
11760 2016-01-18 Tom de Vries <tom@codesourcery.com>
11761
11762 * omp-low.c (set_oacc_fn_attrib): Make extern.
11763 * omp-low.h (set_oacc_fn_attrib): Declare.
11764 * tree-parloops.c (struct reduction_info): Add reduc_addr field.
11765 (create_call_for_reduction_1): Handle case that reduc_addr is non-NULL.
11766 (create_parallel_loop, gen_parallel_loop, try_create_reduction_list):
11767 Add and handle function parameter oacc_kernels_p.
11768 (find_reduc_addr, get_omp_data_i_param): New function.
11769 (ref_conflicts_with_region, oacc_entry_exit_ok_1)
11770 (oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function.
11771 (parallelize_loops): Add and handle function parameter oacc_kernels_p.
11772 Calculate dominance info. Skip loops that are not in a kernels region
11773 in oacc_kernels_p mode. Skip inner loops of parallelized loops.
11774 (pass_parallelize_loops::execute): Call parallelize_loops with
11775 oacc_kernels_p argument.
11776 (pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param):
11777 New member function.
11778 (pass_parallelize_loops::bool oacc_kernels_p): New member var.
11779 * passes.def: Add argument to pass_parallelize_loops instantation.
11780
11781 2016-01-18 Tom de Vries <tom@codesourcery.com>
11782
11783 * tree-parloops.c (pass_parallelize_loops::execute): Allow
11784 pass_parallelize_loops to be run outside the loop pipeline.
11785
11786 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
11787
11788 * tree-scalar-evolution.c (follow_copies_to_constant): New.
11789 (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
11790
11791 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
11792
11793 PR target/63679
11794 * tree-ssa-scopedtables.c (avail_expr_hash): Hash MEM_REF and ARRAY_REF
11795 using get_ref_base_and_extent.
11796 (equal_mem_array_ref_p): New.
11797 (hashable_expr_equal_p): Add call to previous.
11798
11799 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
11800
11801 PR target/63679
11802 * tree-sra.c (disqualified_constants, constant_decl_p): New.
11803 (sra_initialize): Allocate disqualified_constants.
11804 (sra_deinitialize): Free disqualified_constants.
11805 (disqualify_candidate): Update disqualified_constants when appropriate.
11806 (create_access): Scan for constant-pool entries as we go along.
11807 (scalarizable_type_p): Add check against type_contains_placeholder_p.
11808 (maybe_add_sra_candidate): Allow constant-pool entries.
11809 (load_assign_lhs_subreplacements): Bind debug for constant pool vars.
11810 (initialize_constant_pool_replacements): New.
11811 (sra_modify_assign): Avoid mangling assignments created by previous,
11812 and don't generate writes into constant pool.
11813 (sra_modify_function_body): Call initialize_constant_pool_replacements.
11814
11815 2016-01-18 Ilya Enkovich <enkovich.gnu@gmail.com>
11816
11817 * config/i386/i386.c (scalar_to_vector_candidate_p): Support
11818 andnot instruction.
11819 (scalar_chain::convert_op): Likewise.
11820 * config/i386/i386.md (*andndi3_doubleword): New.
11821
11822 2016-01-18 Richard Biener <rguenther@suse.de>
11823
11824 PR tree-optimization/69170
11825 * tree-vect-slp.c (vect_build_slp_tree): Verify we are not
11826 building a vector from scalar results of a pattern stmt.
11827
11828 2016-01-18 Jakub Jelinek <jakub@redhat.com>
11829
11830 * haifa-sched.c (autopref_multipass_init): Work around
11831 -Wmaybe-uninitialized warning.
11832
11833 2016-01-18 Thomas Preud'homme <thomas.preudhomme@arm.com>
11834
11835 * config/arm/arm.c (thumb1_reorg): Check that the comparison is
11836 against the constant 0.
11837
11838 2016-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11839
11840 PR tree-optimization/68799
11841 * gimple-ssa-strength-reduction.c (create_phi_basis): Directly
11842 look up phi candidates in the statement-candidate map.
11843 (phi_add_costs): Likewise.
11844 (record_phi_increments): Likewise.
11845 (phi_incr_cost): Likewise.
11846 (ncd_with_phi): Likewise.
11847 (all_phi_incrs_profitable): Likewise.
11848
11849 2016-01-17 Jakub Jelinek <jakub@redhat.com>
11850
11851 * omp-low.c (mark_loops_in_oacc_kernels_region): Work around
11852 -Wmaybe-uninitialized warning.
11853
11854 2016-01-16 Sandra Loosemore <sandra@codesourcery.com>
11855
11856 * doc/invoke.texi (Invoking GCC): Add new section to menu.
11857 (Option Summary): Update to reflect new section and moved options.
11858 (C++ Dialect Options): Move -fvtable-verify and related options.
11859 (Debugging Options): Move Sanitizer, Pointer Bounds Checker,
11860 and profiling-related options.
11861 (Optimization Options): Move profile generation options and
11862 -fstack-protector and related options.
11863 (Instrumentation Options): New section incorporating moved options.
11864 (Code Generation Options): Move -finstrument-functions and
11865 related options, -fstack-check, -fstack-limit*, and -fbounds-check.
11866
11867 2016-01-16 Tom de Vries <tom@codesourcery.com>
11868
11869 * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.
11870
11871 2016-01-16 Tom de Vries <tom@codesourcery.com>
11872
11873 * omp-low.c (expand_omp_atomic_fetch_op): Release defs of update stmt.
11874
11875 2016-01-16 Richard Sandiford <richard.sandiford@arm.com>
11876
11877 * hash-table.h (hash_table::empty): Turn into an inline wrapper
11878 that checks whether the table is already empty. Rename the
11879 original implementation to...
11880 (hash_table::empty_slot): ...this new private function.
11881
11882 2016-01-15 David Malcolm <dmalcolm@redhat.com>
11883
11884 PR diagnostic/68899
11885 * diagnostic-show-locus.c (layout::print_source_line): Move x
11886 offset of line until after call to
11887 get_line_width_without_trailing_whitespace.
11888
11889 2016-01-15 Jeff Law <law@redhat.com>
11890
11891 PR tree-optimization/69270
11892 * tree-ssanames.c (ssa_name_has_boolean_range): Moved here from
11893 tree-ssa-dom.c. Improve test for [0..1] ranve from VRP.
11894 * tree-ssa-dom.c (ssa_name_has_boolean_range): Remove.
11895 * tree-ssanames.h (ssa_name_has_boolean_range): Prototype.
11896 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
11897 ssa_name_has_boolean_range and constant_boolean_node.
11898
11899 2016-01-15 Vladimir Makarov <vmakarov@redhat.com>
11900
11901 PR rtl-optimization/69030
11902 * lra-spills.c (remove_pseudos): Check nrefs and make the function
11903 returning bool.
11904 (spill_pseudos): Delete debug insn for dead pseudo.
11905 (lra_spill): Initiate spill_hard_reg and slots memory separately.
11906
11907 2016-01-15 Jiong Wang <jiong.wang@arm.com>
11908
11909 * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
11910 New.
11911 (TYPES_UNOPUS): Likewise.
11912 * config/aarch64/aarch64-simd-builtins.def (lbtruncuv2sf): Correct
11913 builtin type, from UNOP to UNOPUS.
11914 (lbtruncuv4sf): Likewise.
11915 (lbtruncuv2df): Likewise.
11916 (lrounduv2sf): Likewise.
11917 (lrounduv4sf): Likewise.
11918 (lrounduv2df): Likewise.
11919 (lroundusf): Likewise.
11920 (lroundusf): Likewise.
11921 (lceiluv2sf): Likewise.
11922 (lceiluv4sf): Likewise.
11923 (lceiluv2df): Likewise.
11924 (lceilusf): Likewise.
11925 (lceiludf): Likewise.
11926 (lflooruv2sf): Likewise.
11927 (lflooruv4sf): Likewise.
11928 (lflooruv2df): Likewise.
11929 (lfloorusf): Likewise.
11930 (lfloorudf): Likewise.
11931 (lfrintnuv2sf): Likewise.
11932 (lfrintnuv4sf): Likewise.
11933 (lfrintnuv2df): Likewise.
11934 (lfrintnusf): Likewise.
11935 (lfrintnudf): Likewise.
11936 * config/aarch64/arm_neon.h (vcvt_u32_f32): Remove unncessary type
11937 conversion.
11938 (vcvtq_u32_f32): Likewise.
11939 (vcvtq_u64_f64): Likewise.
11940 (vcvta_u32_f32): Likewise.
11941 (vcvtaq_u32_f32): Likewise.
11942 (vcvtaq_u64_f64): Likewise.
11943 (vcvtm_u32_f32): Likewise.
11944 (vcvtmq_u32_f32): Likewise.
11945 (vcvtmq_u64_f64): Likewise.
11946 (vcvtn_u32_f32): Likwise.
11947 (vcvtnq_u32_f32): Likewise.
11948 (vcvtnq_u64_f64): Likewise.
11949 (vcvtp_u32_f32): Likewise.
11950 (vcvtpq_u32_f32): Likewise.
11951 (vcvtpq_u64_f64): Likewise.
11952 (vcvtmd_u64_f64): Likewise.
11953 (vcvtms_u32_f32): Likewise.
11954 (vcvtad_u64_f64): Likewise.
11955 (vcvtas_u32_f32): Likewise.
11956 (vcvtnd_u64_f64): Likewise.
11957 (vcvtns_u32_f32): Likewise.
11958 (vcvtpd_u64_f64): Likewise.
11959 (vcvtps_u32_f32): Likewise.
11960
11961 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11962
11963 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
11964 CSEL of zero_extended registers.
11965
11966 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11967
11968 * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
11969 Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
11970
11971 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11972
11973 * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
11974 false when argument string is not found in the attributes table
11975 at all.
11976
11977 2016-01-15 David Edelsohn <dje.gcc@gmail.com>
11978
11979 PR target/68609
11980 * config/rs6000/rs6000.c (rs6000_emit_msub): Delete.
11981 (rs6000_emit_swsqrt): Convert to Goldschmidt's Algorithm
11982 * config/rs6000/rs6000.md (sqrt<mode>2): Limit swsqrt to high
11983 precision estimate.
11984
11985 2016-01-15 Richard Biener <rguenther@suse.de>
11986
11987 PR tree-optimization/66856
11988 * tree-vect-loop.c (vect_transform_loop): Free SLP instances here.
11989 * tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count.
11990 (vect_create_new_slp_node): Increment stmt reference count.
11991 (vect_get_and_check_slp_defs): Make sure stmts are nor already in
11992 an SLP tree before swapping operands.
11993 (vect_build_slp_tree): Likewise.
11994 (destroy_bb_vec_info): Free stmt info after SLP instances.
11995 * tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count.
11996 * tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field.
11997 (STMT_VINFO_NUM_SLP_USES): New macro.
11998
11999 2016-01-15 Richard Biener <rguenther@suse.de>
12000
12001 PR debug/69137
12002 * dwarf2out.c (add_linkage_name_raw): New function split out from ...
12003 (add_linkage_name): ... here.
12004 (gen_typedef_die): Use add_linkage_name_raw instead of
12005 add_linkage_attr to delay DECL_ASSEMBLER_NAME computation
12006 if necessary.
12007
12008 2016-01-15 Cesar Philippidis <cesar@codesourcery.com>
12009
12010 * gimplify.c (oacc_default_clause): Decode reference and pointer
12011 types for both kernels and parallel regions.
12012
12013 2016-01-15 Richard Sandiford <richard.sandiford@arm.com>
12014
12015 PR middle-end/69246
12016 * calls.c (emit_call_1): Force n_popped to zero for sibcalls.
12017
12018 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
12019
12020 * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
12021 (convert_scalars_to_vector): Likewise.
12022
12023 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
12024
12025 * doc/extend.texi (Type Traits): Fix grammar.
12026
12027 2016-01-15 Martin Jambor <mjambor@suse.cz>
12028
12029 * tree-inline.c (remap_decl): Use existing dclarations if
12030 remapping a type and prevent_decl_creation_for_types.
12031 (replace_locals_stmt): Do an initial remapping of non-VLA typed
12032 decls first. Do real remapping with
12033 prevent_decl_creation_for_types set.
12034 * tree-inline.h (copy_body_data): New field
12035 prevent_decl_creation_for_types, moved remap_var_for_cilk to avoid
12036 padding.
12037
12038 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
12039
12040 * config/s390/s390.opt (mmvcle): More verbose help text.
12041
12042 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
12043
12044 * config/s390/s390.opt: Add period to -mzvector option text.
12045
12046 2016-01-15 Richard Biener <rguenther@suse.de>
12047
12048 PR tree-optimization/68961
12049 * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
12050 of invariants in stores again.
12051
12052 2016-01-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
12053
12054 * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.
12055
12056 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
12057
12058 * config/i386/i386.c (ix86_expand_branch): Don't split
12059 DI mode xor instruction to SI mode.
12060
12061 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
12062
12063 PR ipa/68148
12064 * ipa-icf.c (sem_function::merge): Virtual functions may become
12065 reachable even if they address is not taken and there are no
12066 idrect calls.
12067
12068 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
12069
12070 * lto-streamer-out.c (subtract_estimated_size): New function.
12071 (get_symbol_initial_value): Use it.
12072
12073 2016-01-15 Christian Bruel <christian.bruel@st.com>
12074
12075 PR target/65837
12076 * config/arm/arm-builtins.c (ARM_BUILTIN_CRYPTO_BASE): New enum tag.
12077 (arm_init_neon_builtins_internal): Rename arm_init_neon_builtins,
12078 (arm_init_crypto_builtins_internal): Rename arm_init_crypto_builtins.
12079 use add_builtin_function_ext_scope instead of add_builtin_function.
12080 (neon_set_p, neon_crypto_set_p): Remove.
12081 (arm_init_builtins): Always call arm_init_neon_builtins and
12082 arm_init_crypto_builtins.
12083 (arm_expand_builtin): Check that builtins are allowed for the arch.
12084 * config/arm/arm-protos.h (arm_init_neon_builtins): Remove prototype.
12085 * config/arm/arm.c (arm_valid_target_attribute_tree): Remove
12086 arm_init_neon_builtins call.
12087
12088 2016-01-15 Richard Biener <rguenther@suse.de>
12089
12090 PR tree-optimization/69117
12091 * tree-ssa-sccvn.h (struct vn_ssa_aux): Add info member.
12092 * tree-ssa-sccvn.c (set_ssa_val_to): Save and adjust SSA name info
12093 of the leader conservatively.
12094 (free_scc_vn): Restore original SSA name infos.
12095
12096 2016-01-14 Jeff Law <law@redhat.com>
12097
12098 PR tree-optimization/69270
12099 * tree-ssa-dom.c (ssa_name_has_boolean_range): If the type has a
12100 single bit of precision, verify it's also unsigned.
12101 (record_edge_info): Use constant_boolean_node rather than fold_convert
12102 to convert boolean_true/boolean_false to the right type.
12103
12104 2016-01-14 Richard Henderson <rth@redhat.com>
12105
12106 PR rtl-opt/69014
12107 * loop-doloop.c (record_reg_sets): New.
12108 (doloop_optimize): Reject the transform if the sequence
12109 clobbers registers live at the end of the loop block.
12110 (doloop_optimize_loops): Enable df_live if needed.
12111
12112 2016-01-14 Michael Meissner <meissner@linux.vnet.ibm.com>
12113
12114 * config/rs6000/rs6000-builtin.def: Revert 2016-01-13 change.
12115 * config/rs6000/rs6000.c: Likewise.
12116 * config/rs6000/rs6000.h: Likewise.
12117 * config/rs6000/rs6000.md: Likewise.
12118 * doc/extend.texi: Likewsie.
12119
12120 2016-01-14 Jeff Law <law@redhat.com>
12121
12122 * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
12123 typo.
12124
12125 2016-01-14 Richard Henderson <rth@redhat.com>
12126
12127 PR c/69272
12128 PR tree-opt/68964
12129 * trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size.
12130 * tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p
12131 instead of builtin_decl_declared_p to test for declaration.
12132
12133 2016-01-14 Nicklas Bo Jensen <nbjensen@gmail.com>
12134
12135 * doc/loop.texi (Loop Analysis and Representation): Document
12136 loop_depth function.
12137
12138 2016-01-14 Tom de Vries <tom@codesourcery.com>
12139
12140 PR tree-optimization/68773
12141 * omp-low.c (expand_omp_target): Don't set force_output.
12142 * varpool.c (varpool_node::get_create): Same.
12143 * lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and
12144 offload_funcs with force_output.
12145
12146 2016-01-14 Jakub Jelinek <jakub@redhat.com>
12147
12148 PR debug/69244
12149 * lra-eliminations.c (move_plus_up): Don't change anything if either
12150 the outer or inner subreg mode is not MODE_INT.
12151 * dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is
12152 integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards.
12153
12154 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
12155
12156 * doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m},
12157 reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m},
12158 reduc_uplus_@var{m}): Remove.
12159 * expr.c (expand_expr_real_2): Remove expansion path for
12160 reduc_[us](min|max|plus) optabs.
12161 * optabs-tree.c (scalar_reduc_to_vector): Remove.
12162 * optabs-tree.h (scalar_reduc_to_vector): Remove.
12163 * optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab,
12164 reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove.
12165 * tree-vect-loop.c (vectorizable_reduction): Remove test for
12166 reduc_[us](min|max|plus) optabs.
12167
12168 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
12169
12170 * config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove.
12171 (reduc_plus_scal_v2sf): New.
12172 (reduc_smax_v2sf): Rename to...
12173 (reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract.
12174 (reduc_smin_v2sf): Rename to...
12175 (reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract.
12176
12177 2016-01-14 Jan Hubicka <hubicka@ucw.cz>
12178
12179 * alias.c (compare_base_symbol_refs): New function.
12180 (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
12181 it.
12182
12183 2016-01-14 Jakub Jelinek <jakub@redhat.com>
12184
12185 PR middle-end/68146
12186 PR tree-optimization/69155
12187 * tree-complex.c: Include cfganal.h.
12188 (phis_to_revisit): New variable.
12189 (extract_component): Add phiarg_p argument. Assert that returned
12190 SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true.
12191 (update_phi_components): Partly rewrite to use loop over real/imag
12192 components instead of code duplication. If extract_component returns
12193 SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or
12194 create_tmp_reg into the PHI node instead, and mention the phi triplet
12195 in phis_to_revisit.
12196 (tree_lower_complex): Walk bbs in rpo order. Adjust phis recorded
12197 in phis_to_revisit at the end.
12198
12199 2016-01-14 Richard Biener <rguenther@suse.de>
12200
12201 PR tree-optimization/68060
12202 * tree-vect-loop.c (vect_is_simple_reduction): Check the
12203 outer loop reduction is only used in the inner loop before
12204 detecting a double reduction.
12205
12206 2016-01-14 Jakub Jelinek <jakub@redhat.com>
12207
12208 PR target/68269
12209 * combine.c (expand_field_assignment): Punt if compute_mode is
12210 unsupported scalar mode.
12211
12212 2016-01-14 Richard Biener <rguenther@suse.de>
12213
12214 PR tree-optimization/66856
12215 * tree-vect-slp.c (vect_build_slp_tree): Refactor to build
12216 SLP node only if it built successfully.
12217 (vect_analyze_slp_instance): Adjust.
12218
12219 2016-01-14 Jeff Law <law@redhat.com>
12220
12221 PR tree-optimization/69270
12222 * tree-ssa-dom.c (ssa_name_has_boolean_range): New function.
12223 (record_edge_info): Use it. Convert boolean_{true,false}_node
12224 to the type of op0.
12225
12226 2016-01-13 Jan Hubicka <hubicka@ucw.cz>
12227
12228 PR ipa/66487
12229 * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
12230 use block_ultimate_origin
12231 (noncall-stmt_may_be_vtbl_ptr_store): Likewise.
12232
12233 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
12234
12235 * doc/invoke.texi (Submodel Options): Rename section to
12236 "Machine-Dependent Options" to better reflect its content.
12237 Rewrite introductory text to remove archaic CPU names.
12238 Update references.
12239
12240 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
12241
12242 * doc/invoke.texi (Code Gen Options): Move section up in file,
12243 before target-specific options. Update menu and option summary
12244 to reflect the new section ordering.
12245
12246 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
12247
12248 * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
12249 (C++ Dialect Options): Add cross-reference to -std option.
12250 * doc/standards.texi (C++ Language): Document C++14 support.
12251
12252 2016-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
12253
12254 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
12255 for pack/unpack functions for __ibm128.
12256 (PACK_IF): Likewise.
12257 (UNPACK_IF): Likewise.
12258
12259 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
12260 support for __ibm128 pack/unpack functions.
12261 (rs6000_invalid_builtin): Likewise.
12262 (rs6000_init_builtins): Likewise.
12263 (rs6000_opt_masks): Likewise.
12264
12265 * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
12266 (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
12267 functions
12268 (RS6000_BTM_COMMON): Likewise.
12269
12270 * config/rs6000/rs6000.md (f128_vsx): New mode attribute.
12271 (unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
12272 disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
12273 128-bit floating point. Add support for the double values to be
12274 in Altivec registers for TF/IF packing and unpacking, but restrict
12275 TD packing sub-fields to be FPR registers. Don't allow overlapped
12276 register support for packing. Allow pack inputs to be memory
12277 locations. Don't build generator functions for unpack<mode>_dm
12278 and unpack<mode>_nodm.
12279 (unpack<mode>_dm): Likewise.
12280 (unpack<mode>_nodm): Likewise.
12281 (pack<mode>): Likewise.
12282
12283 * config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
12284 built-in functions to pack/unpack explicit __ibm128 values.
12285 (__builtin_unpack_ibm128): Likewise.
12286
12287 * doc/extend.texi (PowerPC Built-in Functions): Document
12288 __builtin_pack_ibm128 and __builtin_unpack_ibm128.
12289
12290 2016-01-13 Bernd Schmidt <bschmidt@redhat.com>
12291
12292 PR c/66208
12293 * c-common.c (check_function_nonnull): Remove unnecessary declaration.
12294 Add new arg loc and pass it down as context.
12295 (check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
12296 to the location to use for the warning.
12297 (check_function_arguments): New arg loc. All callers changed. Pass
12298 it to check_function_nonnull.
12299 * c-common.h (check_function_arguments): Adjust declaration.
12300
12301 2016-01-13 Jakub Jelinek <jakub@redhat.com>
12302
12303 PR tree-optimization/69156
12304 * gimple.c (validate_type): Removed.
12305 (gimple_builtin_call_types_compatible_p): Use
12306 useless_type_conversion_p instead of validate_type.
12307 * value-prof.c (gimple_stringop_fixed_value): Fold
12308 icall_size to correct type.
12309
12310 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
12311
12312 * doc/extend.texi (__atomic Builtins): Clarify compare_exchange
12313 effects.
12314
12315 2016-01-13 Richard Henderson <rth@redhat.com>
12316
12317 PR tree-opt/68964
12318 * target.def (builtin_tm_load, builtin_tm_store): Remove.
12319 * config/i386/i386.c (ix86_builtin_tm_load): Remove.
12320 (ix86_builtin_tm_store): Remove.
12321 (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
12322 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
12323 * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
12324 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
12325 * doc/tm.texi: Rebuild.
12326
12327 * gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New.
12328 (BUILT_IN_TM_MEMCPY_RTWN): New.
12329 * trans-mem.c (tm_log_emit_stmt): Rearrange code for better
12330 fallback from vector to integer helpers.
12331 (build_tm_load): Handle vector types directly, instead of
12332 via target hook.
12333 (build_tm_store): Likewise.
12334 (expand_assign_tm): Prepare for register types not handled by
12335 the above. Copy them to memory and use memcpy.
12336 * tree.c (tm_define_builtin): New.
12337 (find_tm_vector_type): New.
12338 (build_tm_vector_builtins): New.
12339 (build_common_builtin_nodes): Call it.
12340
12341 2016-01-13 Uros Bizjak <ubizjak@gmail.com>
12342
12343 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
12344 TARGET_SSE_MATH without TARGET_SSE2. Rewrite.
12345
12346 2016-01-13 Tom de Vries <tom@codesourcery.com>
12347
12348 PR tree-optimization/69169
12349 * tree-ssa-structalias.c (create_variable_info_for_1): Add and handle
12350 handled_struct_type param.
12351 (create_variable_info_for, intra_create_variable_infos): Call
12352 create_variable_info_for_1 with extra arg.
12353
12354 2016-01-13 Yvan Roux <yvan.roux@linaro.org>
12355
12356 * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
12357 and "armv8.1-a+crc" entries.
12358
12359 2016-01-13 Alexander Fomin <alexander.fomin@intel.com>
12360
12361 PR target/69228
12362 * config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
12363 Change first operand predicate from register_or_constm1_operand
12364 to register_operand.
12365 (define_expand "avx512pf_gatherpf<mode>df"): Likewise.
12366 (define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
12367 (define_expand "avx512pf_scatterpf<mode>df"): Likewise.
12368 (define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
12369 (define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
12370 (define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
12371 (define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
12372 * config/i386/i386.c (ix86_expand_builtin): Remove first operand
12373 comparison with constm1_rtx from vec_prefetch_gen part.
12374
12375 2016-01-13 Richard Biener <rguenther@suse.de>
12376
12377 PR tree-optimization/69013
12378 * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
12379 Exchange assert for a test.
12380
12381 2016-01-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
12382
12383 PR target/69247
12384 * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.
12385
12386 2016-01-13 Richard Biener <rguenther@suse.de>
12387
12388 PR tree-optimization/69242
12389 * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
12390 assert with a check.
12391
12392 2016-01-13 Richard Biener <rguenther@suse.de>
12393
12394 PR tree-optimization/69186
12395 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
12396 Properly guard vect_update_misalignment_for_peel call.
12397
12398 2016-01-12 Jeff Law <law@redhat.com>
12399
12400 PR tree-optimization/pr67755
12401 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
12402 "need_profile_correction".
12403 (thread_block_1): Initialize new field to false by default. If we
12404 have multiple thread paths through a common joiner to different
12405 final targets, then set new field to true.
12406 (compute_path_counts): Only do count adjustment when it's really
12407 needed.
12408
12409 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
12410
12411 * doc/invoke.texi (Spec Files): Move section down in file, past
12412 all command-line option descriptions.
12413
12414 2016-01-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12415
12416 PR middle-end/54809
12417 * doc/gty.texi: Remove documentation of mark_hook.
12418 * gengtype.c (struct write_types_data): Remove code to support
12419 mark_hook attribute.
12420 (walk_type): Likewise.
12421 (write_func_for_structure): Likewise.
12422
12423 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
12424
12425 * doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to
12426 Directory Options, and -specs= to Overall Options.
12427 (Overall Options): Adjust similarly. Reorder to group related
12428 options together. Make -specs= cross-reference the spec file details.
12429 (Directory Options): Adjust similarly.
12430
12431 2016-01-12 Jeff Law <law@redhat.com>
12432
12433 * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
12434
12435 2016-01-12 Olivier Hainque <hainque@adacore.com>
12436
12437 * gcc.c (spec_undefvar_allowed): New global.
12438 (process_command): Set to true when running for --version or --help,
12439 alone or together.
12440 (getenv_spec_function): When the variable is not defined, use the
12441 variable name as the variable value if we're allowed not to issue
12442 a fatal error.
12443
12444 2016-01-12 Bin Cheng <bin.cheng@arm.com>
12445
12446 PR tree-optimization/68911
12447 * tree-vrp.c (adjust_range_with_scev): Check overflow in range
12448 information computed for expression "init + nit * step".
12449
12450 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
12451
12452 * doc/invoke.texi (Invoking GCC): Copy-edit. Incorporate information
12453 about name of GCC executable. Remove deleted node from menu.
12454 (Directory Options) <-B>: Remove cross-reference to deleted node.
12455 (Target Options): Delete section.
12456
12457 2016-01-12 Christian Bruel <christian.bruel@st.com>
12458
12459 PR target/69180
12460 * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
12461 for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.
12462
12463 2016-01-12 Jakub Jelinek <jakub@redhat.com>
12464
12465 PR target/69198
12466 * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
12467 aligned_mem is properly set for AVX512-VL floating point masked
12468 stores.
12469
12470 PR target/69175
12471 * ifcvt.c (cond_exec_process_if_block): When removing the last
12472 insn from then_bb, remove also any possible barriers that follow it.
12473
12474 2016-01-12 H.J. Lu <hongjiu.lu@intel.com>
12475
12476 PR target/68456
12477 PR target/69226
12478 * config/i386/iamcu.h (SIZE_TYPE): New macro.
12479 (PTRDIFF_TYPE): Likewise.
12480 (WCHAR_TYPE): Likewise.
12481 (WCHAR_TYPE_SIZE): Likewise.
12482 (STDINT_LONG32): Likewise.
12483
12484 2016-01-12 Richard Biener <rguenther@suse.de>
12485
12486 PR tree-optimization/69053
12487 * tree-vect-loop.c (get_initial_def_for_reduction): Properly
12488 convert initial value for cond reductions.
12489
12490 2016-01-12 Richard Biener <rguenther@suse.de>
12491
12492 PR tree-optimization/69007
12493 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
12494 widen_sum after dot_prod and sad.
12495
12496 2016-01-12 Richard Biener <rguenther@suse.de>
12497
12498 PR tree-optimization/69168
12499 * tree-vect-loop.c (vect_analyze_loop_2): Reset both main and
12500 pattern stmt SLP type.
12501 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may
12502 end up unused so cope with that case.
12503
12504 2016-01-12 Richard Biener <rguenther@suse.de>
12505
12506 PR tree-optimization/69157
12507 * tree-vect-stmts.c (vectorizable_mask_load_store): Check
12508 stmts def type only during analyze phase.
12509 (vectorizable_call): Likewise.
12510 (vectorizable_simd_clone_call): Likewise.
12511 (vectorizable_conversion): Likewise.
12512 (vectorizable_assignment): Likewise.
12513 (vectorizable_shift): Likewise.
12514 (vectorizable_operation): Likewise.
12515 (vectorizable_store): Likewise.
12516 (vectorizable_load): Likewise.
12517
12518 2016-01-12 Richard Biener <rguenther@suse.de>
12519
12520 PR tree-optimization/69174
12521 * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
12522 space.
12523 (vectorizable_load): Properly compute the number of loads needed
12524 for permuted strided SLP loads and do not spuriously assign
12525 to SLP_TREE_VEC_STMTS.
12526
12527 2016-01-12 Andris Pavenis <andris.pavenis@iki.fi>
12528
12529 * config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2
12530 (TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive
12531 (MD_EXEC_PREFIX): Remove.
12532 (MD_STARTFILE_PREFIX) Removee.
12533 (FILE_NAME_ABSOLUTE_P): Remove.
12534 (CPP_SPEC): Do not read macros from sys/version.h.
12535 (LINK_COMMAND_SPEC): Remove.
12536 (LOCAL_INCLUDE_DIR): Remove.
12537 (TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section
12538 (TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix.
12539 (POST_LINK_SPEC): Define to invoke stubify after linker
12540 (LIBSTDCXX): Remove define
12541 (DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map.
12542 (DEFAULT_PCC_STRUCT_RETURN): Define to 1.
12543 (SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210.
12544 (SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message.
12545 (SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info.
12546 (IX86_MAYBE_NO_LIBGCC_TFMODE): Remove.
12547 (i386_djgpp_asm_named_section): Add propotype of new procedure
12548
12549 * config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define.
12550 (MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h).
12551 (STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX
12552 in config/i386/djgpp.h).
12553 (STANDARD_STARTFILE_PREFIX_2): Define identical to
12554 STANDARD_STARTFILE_PREFIX_1.
12555 (LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h).
12556 (GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal
12557 installation errors.
12558 (MAX_OFILE_ALIGNMENT): Define to 128.
12559 (HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h.
12560
12561 * config/i386/djgpp.c: New file. Add implementation of
12562 i386_djgpp_asm_named_section.
12563
12564 * config/i386/djgpp.opt: Remove obsolete option -mbnu210.
12565
12566 * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
12567 Add rule for building djgpp.o.
12568
12569 2016-01-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12570
12571 * config/rs6000/rs6000.c (v2df_reduction_p): New function.
12572 (rtx_is_swappable_p): Reductions are swappable.
12573 (insn_is_swappable_p): V2DF reductions are swappable.
12574
12575 2016-01-11 John David Anglin <danglin@gcc.gnu.org>
12576
12577 * config/pa/pa.c (pa_emit_move_sequence): Handle floating point
12578 reloads for other unsupported memory operands.
12579
12580 2016-01-12 Kugan Vivekanandarajah <kuganv@linaro.org>
12581 Jim Wilson <jim.wilson@linaro.org>
12582
12583 PR target/69194
12584 * config/arm/arm-builtins.c (arm_expand_neon_args): Call
12585 copy_to_mode_reg instead of force_reg.
12586
12587 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
12588
12589 PR target/69225
12590 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
12591 TARGET_80387 is true.
12592
12593 2016-01-11 Jakub Jelinek <jakub@redhat.com>
12594
12595 PR target/69071
12596 * lra-eliminations.c (move_plus_up): Only move plus up
12597 if subreg of the constant can be simplified into constant
12598 and use the simplified subreg of the constant instead of
12599 the original constant.
12600
12601 * fold-const.c (fold_convertible_p): Don't return true
12602 for conversion of VECTOR_TYPE to same sized integral type.
12603 (fold_convert_loc): Fix up formatting. Fold conversion of
12604 VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR
12605 instead of NOP_EXPR.
12606
12607 PR tree-optimization/69214
12608 * tree-vrp.c (simplify_cond_using_ranges): Don't propagate
12609 innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
12610 Formatting fix.
12611
12612 PR tree-optimization/69207
12613 * tree-vect-slp.c (vect_get_constant_vectors): For
12614 VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
12615 fold_convertible_p to vector_type's element type, and always
12616 use VCE for non-VECTOR_BOOLEAN_TYPE_P.
12617
12618 2016-01-11 Richard Biener <rguenther@suse.de>
12619
12620 PR tree-optimization/69173
12621 * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only
12622 fixup the cycle if all stmts are in a pattern.
12623
12624 2016-01-11 Uros Bizjak <ubizjak@gmail.com>
12625
12626 PR middle-end/68999
12627 * alias.c (base_alias_check): Move check for addresses with
12628 alignment ANDs before the call for compare_base_decls.
12629 (memrefs_conflict_p): Return -1 for different decls
12630 that went through alignment adjustments.
12631
12632 2016-01-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12633
12634 PR rtl-optimization/68796
12635 * config/aarch64/aarch64.md (*and<mode>_compare0): New pattern.
12636 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle HImode
12637 and QImode comparisons against zero with CC_NZmode.
12638 * config/aarch64/iterators.md (short_mask): New mode_attr.
12639
12640 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
12641
12642 * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
12643 (<avx512>_store<mode>_mask): Likewise.
12644
12645 2016-01-11 Bernd Schmidt <bschmidt@redhat.com>
12646 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12647
12648 PR rtl-optimization/68841
12649 * ifcvt.c (struct noce_if_info): Add orig_x field.
12650 (bbs_ok_for_cmove_arith): Add to_rename parameter.
12651 Don't record conflicts on to_rename if it's present.
12652 Allow memory destinations in sets.
12653 (noce_try_cmove_arith): Call bbs_ok_for_cmove_arith even on simple
12654 blocks, passing orig_x to the checks.
12655 (noce_process_if_block): Set if_info->orig_x appropriately.
12656
12657 2016-01-11 Tom de Vries <tom@codesourcery.com>
12658
12659 PR tree-optimization/69069
12660 * tree-parloops.c (create_parallel_loop): Add missing phi args.
12661
12662 2016-01-11 Yuri Rumyantsev <ysrumyan@gmail.com>
12663
12664 PR rtl-optimization/68920
12665 * config/i386/i386.c (ix86_option_override_internal): Restrict number
12666 of conditional moves for RTL if-conversion to 1 for
12667 TARGET_ONE_IF_CONV_INSN.
12668 * config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros.
12669 * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros.
12670 * params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new
12671 parameter to restirct number of conditional moves for
12672 RTL if-conversion.
12673 * doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
12674 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
12675 conditionl moves.
12676
12677 2016-01-11 Alexandre Oliva <aoliva@redhat.com>
12678
12679 PR bootstrap/69123
12680 * var-tracking.c (drop_overlapping_mem_locs): Operate on all
12681 onepart vars. Fix typo in comment. Fix reversed condition in
12682 unshare test.
12683 (dataflow_set_remove_mem_locs): Operate on all onepart vars.
12684
12685 PR bootstrap/69123
12686 * var-tracking.c (dump_onepart_variable_differences): New.
12687 (dataflow_set_different): If a detailed dump is requested,
12688 delay early returns and dump differences between onepart
12689 variables present before and after, and added variables.
12690
12691 2016-01-11 Ilya Enkovich <enkovich.gnu@gmail.com>
12692
12693 PR target/69010
12694 * expr.c (expand_expr_real_1): For boolean vector constants
12695 with a scalar mode use const_scalar_mask_from_tree.
12696 (const_scalar_mask_from_tree): New.
12697 * optabs.c (expand_vec_cond_mask_expr): Use mask mode
12698 assigned to a mask type to handle constants.
12699
12700 2016-01-11 Martin Jambor <mjambor@suse.cz>
12701
12702 PR ipa/69044
12703 * ipa-cp.c (estimate_local_effects): Do not clone for removal of
12704 useless parameters if we cannot change function signature.
12705
12706 2016-01-11 Martin Jambor <mjambor@suse.cz>
12707
12708 PR ipa/66616
12709 * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
12710 flag.
12711
12712 2016-01-11 Tom de Vries <tom@codesourcery.com>
12713
12714 PR tree-optimization/69109
12715 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
12716 latch with phi.
12717
12718 2016-01-11 Tom de Vries <tom@codesourcery.com>
12719
12720 PR tree-optimization/69108
12721 * tree-parloops.c (gather_scalar_reductions): Handle case that outer phi
12722 res is not used in a phi.
12723
12724 2016-01-11 Yury Gribov <y.gribov@samsung.com>
12725
12726 PR 67425
12727 * common.opt (frandom-seed): Fix parameter name.
12728 * doc/invoke.texi (frandom-seed): Ditto and describe parameter.
12729
12730 2016-01-11 Tom de Vries <tom@codesourcery.com>
12731
12732 PR tree-optimization/69058
12733 * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
12734 not supported.
12735
12736 2016-01-11 Andrew Burgess <andrew.burgess@embecosm.com>
12737
12738 * config/arc/arc.opt (mdiv-rem): Add period to the end.
12739 (mcode-density): Likewise.
12740
12741 2016-01-10 Tom de Vries <tom@codesourcery.com>
12742
12743 PR tree-optimization/69062
12744 * tree-parloops.c (loop_has_phi_with_address_arg): New function.
12745 (parallelize_loops): Don't paralelize loop that has phi with address
12746 arg.
12747
12748 2016-01-10 Tom de Vries <tom@codesourcery.com>
12749
12750 PR tree-optimization/69039
12751 * tree-parloops.c (try_create_reduction_list): Only allow single exit
12752 phi for reduction.
12753
12754 2016-01-09 John David Anglin <danglin@gcc.gnu.org>
12755
12756 PR middle-end/68743
12757 * match.pd: Require target has function_c99_misc before doing
12758 truncl(extend(x)) and trunc(extend(x)) -> extend(truncf(x)), etc.
12759
12760 2016-01-09 Gerald Pfeifer <gerald@pfeifer.com>
12761
12762 * configure.ac (isl_options_set_schedule_serialize_sccs): Also
12763 use GMPINC.
12764 * configure: Regenerate.
12765
12766 2016-01-09 Jakub Jelinek <jakub@redhat.com>
12767
12768 PR middle-end/50865
12769 PR tree-optimization/69097
12770 * fold-const.h (expr_not_equal_to): New prototype.
12771 * fold-const.c: Include stringpool.h and tree-ssanames.h.
12772 (expr_not_equal_to): New function.
12773 * match.pd (X % -Y is the same as X % Y): Don't optimize
12774 unless X is known not to be equal to minimum or Y is known
12775 not to be equal to -1.
12776 * tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument.
12777 fold TRUNC_MOD_EXPR if the second argument is not a power of two.
12778 (simplify_stmt_using_ranges): Adjust caller.
12779 (vrp_finalize): Call set_value_range on SSA_NAMEs before calling
12780 substitute_and_fold.
12781
12782 2016-01-09 Jan Hubicka <hubicka@ucw.cz>
12783
12784 * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
12785 w/o DECL_NAME.
12786
12787 2016-01-08 Jakub Jelinek <jakub@redhat.com>
12788
12789 PR tree-optimization/69167
12790 * gimple-fold.c (replace_stmt_with_simplification): Also punt if
12791 new SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs appear in operands of
12792 ops[0] comparison.
12793 * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
12794
12795 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
12796 Richard Biener <rguenther@suse.de>
12797
12798 PR tree-optimization/68707
12799 * tree-vect-slp.c (vect_analyze_slp_instance): Cancel permuted SLP
12800 instances that can be handled via vect_load_lanes.
12801
12802 2016-01-08 Uros Bizjak <ubizjak@gmail.com>
12803
12804 * symtab.c (symtab_node::equal_address_to): Return -1 instead of 2
12805 if we can't determine address equivalence.
12806 * alias.c (compare_base_decl): Update for changed return value of
12807 symtab_node::equal_address_to.
12808
12809 2016-01-08 Jason Merrill <jason@redhat.com>
12810
12811 PR c++/68983
12812 PR c++/67557
12813 * function.c (assign_temp): Guard against TREE_ADDRESSABLE types here.
12814 * expr.c (store_field): Not here.
12815 * tree-cfgcleanup.c (fixup_noreturn_call): Don't clear LHS of a
12816 call with TREE_ADDRESSABLE type.
12817 * tree-cfg.c (verify_gimple_call): Adjust.
12818
12819 2016-01-08 Olivier Hainque <hainque@adacore.com>
12820
12821 * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
12822 libc_internal.
12823
12824 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
12825
12826 * gcc.target/rs6000/paired.md (reduc_smax_v2sf): Rename to...
12827 (reduc_smax_scal_v2sf): ...here, make result SFmode, extract element.
12828 (reduc_smin_v2sf): Rename to...
12829 (reduc_smin_scal_v2sf): ...here, make result SFmode, extract element.
12830 (reduc_splus_v2sf): Rename to...
12831 (reduc_plus_scal_v2sf): ...here, make result SFmode, extract element.
12832
12833 2016-01-08 Jakub Jelinek <jakub@redhat.com>
12834
12835 PR tree-optimization/69162
12836 * gimplify.c (gimplify_va_arg_expr): Encode original type of
12837 valist argument in another argument.
12838 (gimplify_modify_expr): Adjust for the above change. Cleanup.
12839 * tree-stdarg.c (expand_ifn_va_arg_1): Use new 3rd argument
12840 to determine the va_list type, build a MEM_REF instead of
12841 build_fold_indirect_ref.
12842
12843 PR tree-optimization/69172
12844 * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
12845 gimple_build.
12846
12847 2016-01-08 Thomas Preud'homme <thomas.preudhomme@arm.com>
12848
12849 PR tree-optimization/67781
12850 * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
12851 and cmpnop in two steps: first the ones not accessed in original
12852 gimple expression in a endian independent way and then the ones not
12853 accessed in the final result in an endian-specific way.
12854
12855 2016-01-08 Jakub Jelinek <jakub@redhat.com>
12856
12857 PR tree-optimization/69083
12858 * tree-vect-slp.c (vect_get_constant_vectors): For
12859 VECTOR_BOOLEAN_TYPE_P assert op is fold_convertible_p to vector_type's
12860 element type. If op is fold_convertible_p to vector_type's element
12861 type, use NOP_EXPR instead of VCE.
12862
12863 2016-01-08 Segher Boessenkool <segher@kernel.crashing.org>
12864
12865 PR rtl-optimization/67778
12866 PR rtl-optimization/68634
12867 PR rtl-optimization/68909
12868 * shrink-wrap.c (try_shrink_wrapping): Add comment. Don't pop
12869 block from the stack until done with it. Remove a superfluous
12870 bitmap set. Remove a superfluous bitmap test.
12871
12872 2016-01-07 Martin Sebor <msebor@redhat.com>
12873
12874 PR c/68966
12875 * doc/extend.texi (__atomic Builtins, __sync Builtins): Document
12876 constraint on the type of arguments.
12877
12878 2016-01-07 Andreas Tobler <andreast@gcc.gnu.org>
12879
12880 * config/arm/freebsd.h: Rename SUBTARGET_OVERRIDE_OPTIONS to
12881 SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. Adjust to check
12882 unaligned_access on the gcc_options set.
12883 * config/arm/arm.c (arm_option_override_internal): Use
12884 SUBTARGET_OVERRIDE_INTERNAL_OPTIONS.
12885
12886 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
12887
12888 PR target/69140
12889 * config/i386/i386.c (ix86_frame_pointer_required): Enable
12890 frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
12891
12892 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
12893
12894 Revert
12895 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
12896
12897 PR target/69140
12898 * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
12899 depending on frame_pointer_needed before remaining integer and SSE
12900 registers are saved.
12901
12902 2016-01-07 Sandra Loosemore <sandra@codesourcery.com>
12903
12904 PR 1078
12905 * doc/extend.texi (Nvidia PDX Function Attributes): New section.
12906
12907 2016-01-07 H.J. Lu <hongjiu.lu@intel.com>
12908
12909 PR target/69171
12910 * config/i386/sse.md (<sse>_sqrt<mode>2<mask_name><round_name>):
12911 Use the "xBm" constraint.
12912 (float<sseintvecmodelower><mode>2<mask_name><round_name):
12913 Likewise.
12914 (sse_cvtsi2ss<round_name>): Use round_nimm_scalar_predicate.
12915 (sse_cvtsi2ssq<round_name>): Likewise.
12916 (sse_cvtss2si<round_name>): Likewise.
12917 (sse_cvtss2siq<round_name>): Likewise.
12918 (sse2_cvtsi2sdq<round_name>): Likewise.
12919 (sse2_cvtsd2si<round_name>): Likewise.
12920 (sse2_cvtsd2siq<round_name>): Likewise.
12921 * config/i386/subst.md (round_nimm_scalar_predicate): New
12922 predicate.
12923
12924 2015-12-15 Bernd Schmidt <bschmidt@redhat.com>
12925
12926 PR middle-end/67639
12927 * varasm.c (make_decl_rtl): Mark invalid register vars as
12928 DECL_EXTERNAL.
12929
12930 PR rtl-optimization/66206
12931 * bt-load.c (find_btr_use): Change first arg to be a pointer to an rtx.
12932 All callers changed.
12933
12934 2016-01-07 Jakub Jelinek <jakub@redhat.com>
12935
12936 PR tree-optimization/69141
12937 * tree-ssa-pre.c: Include langhooks.h.
12938 (eliminate_dom_walker::before_dom_children): Use
12939 lang_hooks.decl_printable_name instead of
12940 cgraph_node::get ()->name ().
12941
12942 PR middle-end/68960
12943 * gimple-expr.c (copy_var_decl): If var has DECL_USER_ALIGN set, copy
12944 it and DECL_ALIGN too.
12945
12946 2016-01-06 Robert Suchanek <robert.suchanek@imgtec.com>
12947
12948 * config/mips/mips-ftypes.def: Sort to lexicographical order.
12949
12950 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
12951
12952 PR target/69140
12953 * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
12954 depending on frame_pointer_needed before remaining integer and SSE
12955 registers are saved.
12956
12957 2015-01-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12958
12959 * config/rs6000/vsx.md (*p9_vecload_<mode>): Replace VSX_M
12960 mode iterator with VSX_M2.
12961 (*p9_vecstore_<mode>): Likewise.
12962 (*vsx_le_permute_<mode>): Restrict to !TARGET_P9_VECTOR.
12963 (*vsx_le_perm_load_<mode> for VSX_LE_128): Likewise.
12964 (*vsx_le_perm_store_<mode> for VSX_LE_128): Likewise.
12965 (define_split for VSX_LE128 stores): Likewise.
12966 (define_peephole2 for TImode LE swaps): Likewise.
12967 (define_split for VSX_LE128 post-reload stores): Likewise.
12968
12969 2016-01-06 Marek Polacek <polacek@redhat.com>
12970
12971 PR sanitizer/69099
12972 * convert.c (convert_to_integer_1): Adjust call to
12973 ubsan_instrument_float_cast. Use NULL_TREE instead of NULL.
12974 * ubsan.c (ubsan_instrument_float_cast): Drop the ARG parameter. Use
12975 EXPR instead of ARG.
12976 * ubsan.h (ubsan_instrument_float_cast): Adjust declaration.
12977
12978 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
12979
12980 PR 1078
12981 * doc/extend.texi (RL78 Variable Attributes): New section.
12982
12983 2016-01-05 Marek Polacek <polacek@redhat.com>
12984
12985 PR c/69104
12986 * builtins.c (get_memmodel): Use expansion point location rather than
12987 the input location. Call warning_at rather than warning.
12988 (expand_builtin_atomic_compare_exchange): Likewise.
12989 (expand_builtin_atomic_load): Likewise.
12990 (expand_builtin_atomic_store): Likewise.
12991 (expand_builtin_atomic_clear): Likewise.
12992
12993 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
12994
12995 PR target/68991
12996 * config/i386/i386.c (ix86_expand_vector_logical_operator):
12997 Replace nonimmediate_operand with vector_operand.
12998 * config/i386/predicates.md (vector_operand): New predicate.
12999 (general_vector_operand): Replace nonimmediate_operand with
13000 vector_operand.
13001 * config/i386/sse.md: Replace nonimmediate_operand with
13002 vector_operand and m constraint with Bm constraint on SSE
13003 patterns with 16-byte memory operand.
13004 * config/i386/subst.md (round_nimm_predicate): Replace
13005 nonimmediate_operand with vector_operand.
13006 (round_saeonly_nimm_predicate): Likewise.
13007 (round_saeonly_nimm_scalar_predicate): New.
13008
13009 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
13010
13011 PR target/68991
13012 * config/i386/constraints.md (Bm): New constraint.
13013 * config/i386/predicates.md (vector_memory_operand): New
13014 predicate.
13015 * config/i386/sse.md: Replace xm with xBm in plusminus and
13016 any_logic patterns.
13017
13018 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
13019
13020 PR 1078
13021 * doc/extend.texi (V850 Function Attributes): New section.
13022 (V850 Variable Attributes): New section.
13023
13024 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
13025
13026 PR 1078
13027 * doc/extend.texi (MicroBlaze Function Attributes): Document
13028 interrupt_handler and fast_interrupt attributes.
13029
13030 2016-01-05 Sergei Trofimovich <siarheit@google.com>
13031
13032 PR other/60465
13033 * config/ia64/ia64.c (ia64_expand_load_address): Use gprel64
13034 for local symbolic operands.
13035 * config/ia64/predicates.md (local_symbolic_operand64): New
13036 predicate.
13037
13038 2016-01-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13039
13040 PR rtl-optimization/68651
13041 * combine.c (combine_simplify_rtx): Canonicalize x + x into
13042 x << 1.
13043
13044 2016-01-05 Nathan Sidwell <nathan@acm.org>
13045
13046 * alias.c (compare_base_decls): Use symtab_node::get.
13047
13048 2016-01-05 Nick Clifton <nickc@redhat.com>
13049
13050 PR target/68770
13051 * ira-costs.c (copy_cost): Initialise the t_icode field of the
13052 secondary_reload_info structure.
13053
13054 PR target/66655
13055 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
13056 decls if weak support is available.
13057
13058 2016-01-04 Martin Sebor <msebor@redhat.com>
13059
13060 * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.
13061
13062 2016-01-04 Michael Meissner <meissner@linux.vnet.ibm.com>
13063
13064 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
13065 OPTION_MASK_P9_DFORM.
13066
13067 * config/rs6000/constraints.md (wo constraint): New constraint for
13068 ISA 3.0 (power9).
13069
13070 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
13071 for wo constraint.
13072 (rs6000_init_hard_regno_mode_ok): Likewise.
13073
13074 * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
13075 wo constraint.
13076
13077 * config/rs6000/altivec.md (altivec_vperm_<mode>): Clean up vperm
13078 expanders not to have constraints. Add support for ISA 3.0 xxperm
13079 instruction. Add support for fusing xxlor with xxperm.
13080 (altivec_vperm_<mode>_internal): Likewise.
13081 (altivec_vperm_v8hiv16qi): Likewise.
13082 (altivec_vperm_<mode>v16q): Likewise.
13083 (altivec_vperm_<mode>_uns): Likewise.
13084 (vperm_v8hiv4si): Likewise.
13085 (vperm_v16qiv8hi): Likewise.
13086
13087 * doc/md.texi (RS/6000 constraints): Document wo constraint.
13088
13089 2016-01-04 Jakub Jelinek <jakub@redhat.com>
13090
13091 Update copyright years.
13092
13093 * gcc.c (process_command): Update copyright notice dates.
13094 * gcov-dump.c (print_version): Ditto.
13095 * gcov.c (print_version): Ditto.
13096 * gcov-tool.c (print_version): Ditto.
13097 * gengtype.c (create_file): Ditto.
13098 * doc/cpp.texi: Bump @copying's copyright year.
13099 * doc/cppinternals.texi: Ditto.
13100 * doc/gcc.texi: Ditto.
13101 * doc/gccint.texi: Ditto.
13102 * doc/gcov.texi: Ditto.
13103 * doc/install.texi: Ditto.
13104 * doc/invoke.texi: Ditto.
13105
13106 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
13107
13108 * config/arm/arm.c (aapcs_vfp_allocate_return_reg): Treat all integer
13109 modes larger than TImode as TImode if NEON is not enabled.
13110
13111 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
13112
13113 PR target/69100
13114 * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
13115 mode for %f0-%f31 only if TARGET_FPU.
13116
13117 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
13118
13119 PR target/69072
13120 * config/sparc/sparc.c (scan_record_type): Take into account subfields
13121 to compute the PACKED_P predicate.
13122 (function_arg_record_value): Minor tweaks.
13123
13124 2016-01-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
13125
13126 * doc/install.texi (--with-multilib-list): Describe the meaning of the
13127 option for arm*-*-* targets.
13128
13129 2016-01-03 Sandra Loosemore <sandra@codesourcery.com>
13130
13131 * doc/extend.texi (Common Function Attributes): Move docs for
13132 MSP430-specific attributes to....
13133 (MSP430 Function Attributes): ...here. Delete the redundant
13134 entries and copy-edit the remaining text.
13135 (MSP430 Variable Attributes): Use uniform format for index
13136 entries and add a cross-reference to the corresponding function
13137 attribute docs.
13138
13139 2016-01-03 Vladimír Čunát <vcunat@gmail.com>
13140
13141 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix
13142 -finite-math typo.
13143 (x86 Options): Likewise.
13144
13145 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
13146
13147 PR 1078
13148
13149 * extend.texi (Common Function Attributes) <no_stack_limit>: New.
13150 * invoke.texi (Code Gen Options) <-fno-stack-limit>: Add pointer
13151 to corresponding attribute.
13152
13153 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
13154
13155 * doc/extend.texi (Common Function Attributes) <noplt>: Move
13156 to correct alphabetization of table. Copy-edit and correct
13157 markup.
13158 <stack_protect>: Likewise.
13159 <target_clones>: Likewise.
13160 <simd>: Likewise.
13161 * doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>:
13162 Correct punctuation.
13163 (Code Gen Options) <-fno-plt>: Copy-edit.
13164
13165 2016-01-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
13166
13167 PR target/68917
13168 * config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of
13169 SI values. Explicitly convert SI to DI and vice-versa.
13170
13171 2016-01-01 Jakub Jelinek <jakub@redhat.com>
13172
13173 PR tree-optimization/69070
13174 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Only test
13175 REAL_VALUE_ISSIGNALING_NAN on arg0 if arg0 is a REAL_CST.
13176
13177 PR sanitizer/69055
13178 * ubsan.c (ubsan_instrument_float_cast): Call
13179 initialize_sanitizer_builtins.
13180
13181 PR target/69015
13182 * ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).
13183 \f
13184 Copyright (C) 2016 Free Software Foundation, Inc.
13185
13186 Copying and distribution of this file, with or without modification,
13187 are permitted in any medium without royalty provided the copyright
13188 notice and this notice are preserved.