re PR tree-optimization/71239 (ICE in operand_equal_p (fold-const.c:2769))
[gcc.git] / gcc / ChangeLog
1 2016-05-25 Martin Liska <mliska@suse.cz>
2
3 PR tree-optimization/71239
4 * tree.c (array_at_struct_end_p): Do not call operand_equal_p
5 if DECL_SIZE is NULL.
6
7 2016-05-25 Richard Biener <rguenther@suse.de>
8
9 * timevar.def (TV_TREE_LOOP_IFCVT): Add.
10 * tree-if-conv.c (pass_data_if_conversion): Use it.
11
12 2016-05-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
13
14 * cgraph.c (cgraph_node::get_availability): Fix typo in comment.
15 * symtab.c (symtab_node::binds_to_current_def_p): Likewise.
16 * varpool.c (varpool_node::get_availability): Likewise.
17
18 2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
19
20 * config/rs6000/altivec.md (VNEG iterator): New iterator for
21 VNEGW/VNEGD instructions.
22 (p9_neg<mode>2): New insns for ISA 3.0 VNEGW/VNEGD.
23 (neg<mode>2): Add expander for V2DImode added in ISA 2.06, and
24 support for ISA 3.0 VNEGW/VNEGD instructions.
25
26 2016-05-24 Cesar Philippidis <cesar@codesourcery.com>
27
28 * gimplify.c (omp_notice_variable): Use zero-length arrays for data
29 pointers inside OACC_DATA regions.
30 (gimplify_scan_omp_clauses): Prune firstprivate clause associated
31 with OACC_DATA, OACC_ENTER_DATA and OACC_EXIT data regions.
32 (gimplify_adjust_omp_clauses): Fix typo in comment.
33
34 2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
35
36 * config/rs6000/altivec.md (VParity): New mode iterator for vector
37 parity built-in functions.
38 (p9v_ctz<mode>2): Add support for ISA 3.0 vector count trailing
39 zeros.
40 (p9v_parity<mode>2): Likewise.
41 * config/rs6000/vector.md (VEC_IP): New mode iterator for vector
42 parity.
43 (ctz<mode>2): ISA 3.0 expander for vector count trailing zeros.
44 (parity<mode>2): ISA 3.0 expander for vector parity.
45 * config/rs6000/rs6000-builtin.def (BU_P9_MISC_1): New macros for
46 power9 built-ins.
47 (BU_P9_64BIT_MISC_0): Likewise.
48 (BU_P9_MISC_0): Likewise.
49 (BU_P9V_AV_1): Likewise.
50 (BU_P9V_AV_2): Likewise.
51 (BU_P9V_AV_3): Likewise.
52 (BU_P9V_AV_P): Likewise.
53 (BU_P9V_VSX_1): Likewise.
54 (BU_P9V_OVERLOAD_1): Likewise.
55 (BU_P9V_OVERLOAD_2): Likewise.
56 (BU_P9V_OVERLOAD_3): Likewise.
57 (VCTZB): Add vector count trailing zeros support.
58 (VCTZH): Likewise.
59 (VCTZW): Likewise.
60 (VCTZD): Likewise.
61 (VPRTYBD): Add vector parity support.
62 (VPRTYBQ): Likewise.
63 (VPRTYBW): Likewise.
64 (VCTZ): Add overloaded vector count trailing zeros support.
65 (VPRTYB): Add overloaded vector parity support.
66 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
67 overloaded vector count trailing zeros and parity instructions.
68 * config/rs6000/rs6000.md (wd mode attribute): Add V1TI and TI for
69 vector parity support.
70 * config/rs6000/altivec.h (vec_vctz): Add ISA 3.0 vector count
71 trailing zeros support.
72 (vec_cntlz): Likewise.
73 (vec_vctzb): Likewise.
74 (vec_vctzd): Likewise.
75 (vec_vctzh): Likewise.
76 (vec_vctzw): Likewise.
77 (vec_vprtyb): Add ISA 3.0 vector parity support.
78 (vec_vprtybd): Likewise.
79 (vec_vprtybw): Likewise.
80 (vec_vprtybq): Likewise.
81 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
82 the ISA 3.0 vector count trailing zeros and vector parity built-in
83 functions.
84
85 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
86
87 * tree-ssa-reassoc.c (sort_by_operand_rank): Skip checking gimple_bb
88 when there is stmt_to_insert.
89
90 2016-05-24 Martin Sebor <msebor@redhat.com>
91
92 PR c++/71147
93 * gcc/tree.h (complete_or_array_type_p): New inline function.
94
95 2016-05-24 Jakub Jelinek <jakub@redhat.com>
96
97 * config/i386/i386.h (TARGET_AVOID_4BYTE_PREFIXES): Define.
98 * config/i386/constraints.md (Yr): Test TARGET_AVOID_4BYTE_PREFIXES
99 rather than X86_TUNE_AVOID_4BYTE_PREFIXES.
100
101 * config/i386/sse.md (<sse4_1>_round<ssemodesuffix><avxsizesuffix>):
102 Limit 1st alternative to noavx isa, split 2nd alternative into one
103 noavx and one avx alternative, use *x and Bm in the former and
104 x and m in the latter.
105
106 * config/i386/sse.md (vec_set<mode>_0): Use sse4_noavx isa instead
107 of sse4 for the first alternative, drop %v from the template
108 and d operand modifier. Split second alternative into one sse4_noavx
109 and one avx alternative, use *x instead of *v in the former and v
110 instead of *v in the latter.
111 (*sse4_1_extractps): Use noavx isa instead of * for the first
112 alternative, drop %v from the template. Split second alternative into
113 one noavx and one avx alternative, use *x instead of *v in the
114 former and v instead of *v in the latter.
115 (<vi8_sse4_1_avx2_avx512>_movntdqa): Guard the first 2 alternatives
116 with noavx and the last one with avx.
117 (sse4_1_phminposuw): Guard first alternative with noavx isa,
118 split the second one into one noavx and one avx alternative,
119 use *x and Bm in the former and x and m in the latter one.
120 (<sse4_1>_ptest<mode>): Use noavx instead of * for the first two
121 alternatives.
122
123 * config/i386/sse.md (sse4_1_<code>v8qiv8hi2<mask_name>): Limit
124 first two alternatives to noavx, use *x instead of *v in the second
125 one, add avx alternative without *.
126 (sse4_1_<code>v4qiv4si2<mask_name>, sse4_1_<code>v4hiv4si2<mask_name>,
127 sse4_1_<code>v2qiv2di2<mask_name>, sse4_1_<code>v2hiv2di2<mask_name>,
128 sse4_1_<code>v2siv2di2<mask_name>): Likewise.
129
130 2016-05-24 Jeff Law <law@redhat.com>
131
132 * tree-ssa-threadbackwards.c (convert_and_register_jump_thread_path):
133 New function, extracted from...
134 (fsm_find_control_statement_thread_paths): Here. Use the new function.
135 Allow simple copies and constant initializations in the SSA chain.
136
137 2016-05-24 Marek Polacek <polacek@redhat.com>
138
139 PR c/71249
140 * gimplify.c (gimplify_switch_expr): Look into the innermost lexical
141 scope.
142
143 2016-05-24 Jakub Jelinek <jakub@redhat.com>
144
145 PR c++/71257
146 * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
147 SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
148 SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP. Add
149 SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP and
150 SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP cases explicitly.
151
152 2016-05-24 Richard Biener <rguenther@suse.de>
153
154 PR tree-optimization/71240
155 * tree-ssa-math-opts.c (init_symbolic_number): Verify the source
156 has integral type.
157
158 2016-05-24 Richard Biener <rguenther@suse.de>
159
160 PR tree-optimization/71230
161 * tree-ssa-reassoc.c (zero_one_operation): Handle negate special ops.
162
163 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
164
165 * tree-vectorizer.h (vectorizable_comparison): Delete.
166 * tree-vect-loop.c (vectorizable_reduction): Remove redundant
167 PURE_SLP_STMT check.
168 * tree-vect-stmts.c (vectorizable_call): Likewise.
169 (vectorizable_simd_clone_call): Likewise.
170 (vectorizable_conversion): Likewise.
171 (vectorizable_assignment): Likewise.
172 (vectorizable_shift): Likewise.
173 (vectorizable_operation): Likewise.
174 (vectorizable_load): Likewise.
175 (vectorizable_condition): Likewise.
176 (vectorizable_store): Likewise. Assert that we don't have
177 hybrid SLP.
178 (vectorizable_comparison): Make static. Remove redundant
179 PURE_SLP_STMT check.
180 (vect_transform_stmt): Assert that we always have an slp_node
181 if PURE_SLP_STMT.
182
183 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
184
185 * config/arm/neon.md (ashldi3_neon): Replace comparison of INTVAL of
186 operands[2] against 1 with comparison against CONST1_RTX.
187 (<shift>di3_neon): Likewise.
188 * config/arm/predicates.md (const0_operand): Replace with comparison
189 against CONST0_RTX.
190
191 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
192
193 * config/arm/arm.md (ashldi3): Replace comparison of INTVAL of
194 operands[2] against 1 with comparison against CONST1_RTX.
195 (ashrdi3): Likewise.
196 (lshrdi3): Likewise.
197 (ashlsi3): Replace cast of INTVAL to unsigned HOST_WIDE_INT with
198 UINTVAL.
199 (ashrsi3): Likewise.
200 (lshrsi3): Likewise.
201 (rotrsi3): Likewise.
202 (define_split above *compareqi_eq0): Likewise.
203 (define_split above "prologue"): Likewise.
204 * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
205 * config/arm/predicates.md (shift_operator): Likewise.
206 (shift_nomul_operator): Likewise.
207 (sat_shift_operator): Likewise.
208 (thumb1_cmp_operand): Likewise.
209 (const_neon_scalar_shift_amount_operand): Replace manual range
210 check with IN_RANGE.
211 * config/arm/thumb1.md (define_peephole2 above *thumb_subdi3):
212 Replace cast of INTVAL to unsigned HOST_WIDE_INT with UINTVAL.
213
214 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
215
216 * config/arm/arm.md (andsi3): Replace cast of 1 to HOST_WIDE_INT
217 with HOST_WIDE_INT_1.
218 (insv): Likewise.
219 * config/arm/arm.c (optimal_immediate_sequence): Replace cast of
220 1 to unsigned HOST_WIDE_INT with HOST_WIDE_INT_1U.
221 (arm_canonicalize_comparison): Likewise.
222 (thumb1_rtx_costs): Replace cast of 1 to HOST_WIDE_INT with
223 HOST_WIDE_INT_1.
224 (thumb1_size_rtx_costs): Likewise.
225 (vfp_const_double_index): Replace cast of 1 to unsigned
226 HOST_WIDE_INT with HOST_WIDE_INT_1U.
227 (get_jump_table_size): Replace cast of 1 to HOST_WIDE_INT with
228 HOST_WIDE_INT_1.
229 (arm_asan_shadow_offset): Replace cast of 1 to unsigned
230 HOST_WIDE_INT with HOST_WIDE_INT_1U.
231 * config/arm/neon.md (vec_set<mode>): Replace cast of 1 to
232 HOST_WIDE_INT with HOST_WIDE_INT_1.
233
234 2016-05-24 Marek Polacek <polacek@redhat.com>
235
236 * tree-cfg.h (should_remove_lhs_p): New predicate.
237 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
238 * gimplify.c (gimplify_modify_expr): Likewise.
239 * tree-cfg.c (verify_gimple_call): Likewise.
240 * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
241 * gimple-fold.c: Include "tree-cfg.h".
242 (gimple_fold_call): Use should_remove_lhs_p.
243
244 2016-05-24 Richard Biener <rguenther@suse.de>
245
246 PR tree-optimization/71253
247 * cfganal.h (control_dependences): Make robust against edge
248 and BB removal.
249 (control_dependences::control_dependences): Remove edge_list argument.
250 (control_dependences::get_edge): Remove.
251 (control_dependences::get_edge_src): Add.
252 (control_dependences::get_edge_dest): Likewise.
253 (control_dependences::m_el): Make a vector of edge src/dest index.
254 * cfganal.c (control_dependences::find_control_dependence): Adjust.
255 (control_dependences::control_dependences): Likewise.
256 (control_dependences::~control_dependence): Likewise.
257 (control_dependences::get_edge): Remove.
258 (control_dependences::get_edge_src): Add.
259 (control_dependences::get_edge_dest): Likewise.
260 * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Use
261 get_edge_src.
262 (perform_tree_ssa_dce): Adjust.
263 * tree-loop-distribution.c (create_edge_for_control_dependence): Use
264 get_edge_src.
265 (pass_loop_distribution::execute): Adjust. Do loop destroying
266 conditional on changed.
267
268 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
269
270 PR target/69857
271 * config/arm/arm.c (gen_operands_ldrd_strd): Remove bogus early
272 return. Reindent transformation comment and mention the ARM state
273 behavior.
274
275 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
276
277 PR middle-end/71252
278 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Add stmt_to_insert
279 after build_and_add_sum creates new use stmt.
280
281 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
282
283 * tree-vect-stmts.c (vectorizable_load): Reorder checks so that
284 load_lanes/grouped_load classification comes first. Don't check
285 whether the vectorization factor is a multiple of the group size
286 for load_lanes.
287
288 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
289
290 * tree-vect-data-refs.c (vect_analyze_group_access_1): Set
291 GROUP_GAP for single-element interleaving.
292 * tree-vect-stmts.c (vectorizable_load): Remove force_peeling
293 variable.
294
295 2016-05-24 Richard Biener <rguenther@suse.de>
296
297 PR middle-end/70434
298 PR c/69504
299 * tree-ssa.c (non_rewritable_mem_ref_base): Make sure to mark
300 bases which are accessed with non-invariant indices.
301 * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Re-write
302 constant index ARRAY_REFs of vectors into BIT_FIELD_REFs.
303
304 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
305
306 PR middle-end/71170
307 * tree-ssa-reassoc.c (struct operand_entry): Add field stmt_to_insert.
308 (add_to_ops_vec): Add stmt_to_insert.
309 (add_repeat_to_ops_vec): Init stmt_to_insert.
310 (insert_stmt_before_use): New.
311 (transform_add_to_multiply): Remove mult_stmt insertion and add it
312 to ops vector.
313 (get_ops): Init stmt_to_insert.
314 (maybe_optimize_range_tests): Likewise.
315 (rewrite_expr_tree): Insert stmt_to_insert before use stmt.
316 (rewrite_expr_tree_parallel): Likewise.
317 (reassociate_bb): Likewise.
318
319 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
320
321 PR target/71201
322 * config/rs6000/altivec.md (altivec_vperm_<mode>_internal): Drop
323 ISA 3.0 xxperm fusion alternative.
324 (altivec_vperm_v8hiv16qi): Likewise.
325 (altivec_vperm_<mode>_uns_internal): Likewise.
326 (vperm_v8hiv4si): Likewise.
327 (vperm_v16qiv8hi): Likewise.
328
329 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
330 Kelvin Nilsen <kelvin@gcc.gnu.org>
331
332 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate
333 vpermr/xxpermr on ISA 3.0.
334 (altivec_expand_vec_perm_le): Likewise.
335 * config/rs6000/altivec.md (UNSPEC_VPERMR): New unspec.
336 (altivec_vpermr_<mode>_internal): Add VPERMR/XXPERMR support for
337 ISA 3.0.
338
339 2016-05-23 Uros Bizjak <ubizjak@gmail.com>
340
341 * config/i386/i386.h (IS_STACK_MODE): Enable for
342 TARGET_MIX_SSE_I387. Rewrite using X87_FLOAT_MODE_P and
343 SSE_FLOAT_MODE_P macros.
344 * config/i386/i386.c (ix86_preferred_reload_class): Use
345 IS_STACK_MODE, INTEGER_CLASS_P, FLOAT_CLASS_P and Q_CLASS_P macros.
346 Cleanup regclass processing for CONST_DOUBLE_P.
347 (ix86_preferred_output_reload_class): Use IS_STACK_MODE macro.
348 (ix86_rtx_costs): Remove redundant TARGET_80387 check
349 with IS_STACK_MODE macro.
350 * config/i386/i386.md: Replace SSE_FLOAT_MODE_P (DFmode)
351 with TARGET_SSE2.
352 (*movdf_internal): Use IS_STACK_MODE macro.
353 (*movsf_internal): Ditto.
354
355 2016-05-23 Marc Glisse <marc.glisse@inria.fr>
356
357 * match.pd (a * (1 << b), ~x & ~y, ~X ^ ~Y, (X ^ Y) ^ Y, ~ (-A),
358 ~ (A - 1), ~(~X >> Y), ~(~X >>r Y)): Relax constraints.
359
360 2016-05-23 Jeff Law <law@redhat.com>
361
362 * tree-ssa-threadbackward.c (profitable_jump_thread_path): New function
363 extracted from ...
364 (fsm_find_control_statement_thread_paths): Call it.
365
366 2016-05-23 Martin Jambor <mjambor@suse.cz>
367
368 PR ipa/71234
369 * ipa-cp.c (ipa_get_indirect_edge_target_1): Only check value of
370 from_global_constant if t is not NULL.
371
372 2016-05-23 Marek Polacek <polacek@redhat.com>
373
374 PR c/49859
375 * common.opt (Wswitch-unreachable): New option.
376 * doc/invoke.texi: Document -Wswitch-unreachable.
377 * gimplify.c (gimplify_switch_expr): Implement the -Wswitch-unreachable
378 warning.
379
380 2016-05-23 Bin Cheng <bin.cheng@arm.com>
381
382 * tree-ssa-address.c (copy_ref_info): Check NULL TMR_STEP when
383 TMR_INDEX is non-NULL.
384
385 2016-05-23 Richard Biener <rguenther@suse.de>
386
387 PR tree-optimization/71230
388 * tree-ssa-reassoc.c (acceptable_pow_call): Move initial condition...
389 (try_special_add_to_ops): ... here. Always test for single-use.
390
391 2016-05-23 Martin Jambor <mjambor@suse.cz>
392
393 * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Create an empty
394 default block if a PHI node in the original one would be resized.
395
396 2016-05-23 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
397
398 PR tree-optimization/58135
399 * tree-vect-slp.c: When group size is not multiple
400 of vector size, allow splitting of store group at
401 vector boundary.
402
403 2016-05-23 Christophe Lyon <christophe.lyon@linaro.org>
404
405 * config/arm/arm_neon.h (vtst_p16, vtstq_p16): New.
406
407 2016-05-22 Jakub Jelinek <jakub@redhat.com>
408
409 * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
410 vec_set_hi_<mode><mask_name>): Add && <mask_avx512dq_condition>
411 condition. For !TARGET_AVX512DQ, emit 32x4 instruction instead
412 of 64x2.
413
414 * config/i386/sse.md (vec_set_lo_v16hi, vec_set_hi_v16hi,
415 vec_set_lo_v32qi, vec_set_hi_v32qi): Add alternative with
416 v constraint instead of x and vinserti32x4 insn.
417
418 * config/i386/sse.md (i128vldq): New mode iterator.
419 (avx2_vbroadcasti128_<mode>, avx_vbroadcastf128_<mode>): Add
420 avx512dq and avx512vl alternatives.
421
422 * config/i386/sse.md (avx2_vec_dupv4df): Use v instead of x
423 constraint, use maybe_evex prefix instead of vex.
424 (vec_dupv4sf): Use v constraint instead of x for output
425 operand except for noavx alternative, use Yv constraint
426 instead of x for input. Use maybe_evex prefix instead of vex.
427 (*vec_dupv4si): Likewise.
428 (*vec_dupv2di): Likewise.
429
430 2016-05-22 Kugan Vivekanandarajah <kuganv@linaro.org>
431
432 PR middle-end/40921
433 * tree-ssa-reassoc.c (try_special_add_to_ops): New.
434 (linearize_expr_tree): Call try_special_add_to_ops.
435 (reassociate_bb): Convert MULT_EXPR by (-1) to NEGATE_EXPR.
436
437 2016-05-21 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
438
439 * config/avr/avr.c (avr_expand_prologue): Add INCOMING_FRAME_SP_OFFSET
440 to computed stack_usage.
441
442 2016-05-21 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
443
444 PR target/71103
445 * config/avr/avr.md (define_expand "mov<mode>"): If the source
446 operand is subreg (symbol_ref) then move the symbol ref to register.
447
448 2016-05-21 Jan Hubicka <hubicka@ucw.cz>
449
450 * tree.c (array_at_struct_end_p): Look through MEM_REF.
451
452 2016-05-21 Kugan Vivekanandarajah <kuganv@linaro.org>
453
454 PR middle-end/71179
455 * tree-ssa-reassoc.c (transform_add_to_multiply): Disallow float
456 VECTOR type.
457
458 2016-05-20 Eric Botcazou <ebotcazou@adacore.com>
459
460 * tree-vrp.c (compare_values_warnv): Simplify handling of symbolic
461 ranges by calling get_single_symbol and tidy up. Look more closely
462 into NAME + CST1 vs CST2 comparisons if type overflow is undefined.
463
464 2016-05-20 Jeff Law <law@redhat.com>
465
466 * bitmap.c (bitmap_find_bit): Remove useless test.
467
468 2016-05-20 Segher Boessenkool <segher@kernel.crashing.org>
469
470 * function.c (thread_prologue_and_epilogue_insns): Commit the
471 insertion of the epilogue.
472
473 2016-05-20 Martin Jambor <mjambor@suse.cz>
474
475 PR tree-optimization/70884
476 * tree-sra.c (initialize_constant_pool_replacements): Do not check
477 should_scalarize_away_bitmap and cannot_scalarize_away_bitmap bits.
478 (sort_and_splice_var_accesses): Do not consider multiple scalar reads
479 of constant pool data as a reason for scalarization.
480
481 2016-05-20 Eric Botcazou <ebotcazou@adacore.com>
482
483 * config/arm/arm.c (arm_expand_prologue): Set the stack usage to 0
484 for naked functions.
485 (thumb1_expand_prologue): Likewise.
486
487 2016-05-20 Nathan Sidwell <nathan@acm.org>
488
489 * config/nvptx/nptx.c (nvptx_option_override): Only set
490 flag_toplevel_reorder, if not explicitly specified. Set
491 flag_no_common, unless explicitly specified.
492
493 2016-05-20 David Malcolm <dmalcolm@redhat.com>
494
495 * calls.c (can_implement_as_sibling_call_p): Mark param
496 reg_parm_stack_space with ATTRIBUTE_UNUSED.
497
498 2016-05-20 Uros Bizjak <ubizjak@gmail.com>
499
500 * config/i386/i386.c (ix86_rtx_costs) <case CONST_DOUBLE>:
501 Use IS_STACK_MODE when calculating cost of standard 80387 constants.
502 Fallthru to CONST_VECTOR case to calculate cost of standard SSE
503 constants.
504 <case CONST_WIDE_INT>: Calculate cost of (MEM (SYMBOL_REF)).
505 (ix86_legitimate_constant_p): Use CASE_CONST_SCALAR_INT
506 and CASE_CONST_ANY.
507
508 2016-05-20 Cesar Philippidis <cesar@codesourcery.com>
509
510 * config/nvptx/nvptx.md (sincossf3): New pattern.
511
512 2016-05-20 David Malcolm <dmalcolm@redhat.com>
513
514 * calls.c (maybe_complain_about_tail_call): New function.
515 (initialize_argument_information): Call
516 maybe_complain_about_tail_call when clearing *may_tailcall.
517 (can_implement_as_sibling_call_p): Call
518 maybe_complain_about_tail_call when returning false.
519 (expand_call): Read CALL_EXPR_MUST_TAIL_CALL and, if set,
520 ensure try_tail_call is set. Call maybe_complain_about_tail_call
521 if tail-call optimization fails.
522 * cfgexpand.c (expand_call_stmt): Initialize
523 CALL_EXPR_MUST_TAIL_CALL from gimple_call_must_tail_p.
524 * gimple-pretty-print.c (dump_gimple_call): Dump
525 gimple_call_must_tail_p.
526 * gimple.c (gimple_build_call_from_tree): Call
527 gimple_call_set_must_tail with the value of
528 CALL_EXPR_MUST_TAIL_CALL.
529 * gimple.h (enum gf_mask): Add GF_CALL_MUST_TAIL_CALL.
530 (gimple_call_set_must_tail): New function.
531 (gimple_call_must_tail_p): New function.
532 * print-tree.c (print_node): Update printing of TREE_STATIC
533 to reflect its use for CALL_EXPR_MUST_TAIL_CALL.
534 * tree-core.h (struct tree_base): Add MUST_TAIL_CALL to the
535 trailing comment listing applicable flags.
536 * tree.h (CALL_EXPR_MUST_TAIL_CALL): New macro.
537
538 2016-05-20 David Malcolm <dmalcolm@redhat.com>
539
540 * calls.c (expand_call): Move "Rest of purposes for tail call
541 optimizations to fail" to...
542 (can_implement_as_sibling_call_p): ...this new function, and
543 split into multiple "if" statements.
544
545 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
546
547 * cfgloop.h (expected_loop_iterations_unbounded,
548 expected_loop_iterations): Unconstify.
549 * cfgloopanal.c (expected_loop_iterations_unbounded): Sanity check the
550 profile with known upper bound; return 3 when profile is absent.
551 (expected_loop_iterations): Update.
552
553 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
554
555 * loop-doloop.c (doloop_optimize): Use get_estimated_loop_iterations_int
556 and get_max_loop_iterations_int.
557
558 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
559
560 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can not produce
561 realistic upper bounds here.
562
563 2016-05-20 Jakub Jelinek <jakub@redhat.com>
564
565 PR c++/71210
566 * gimple-fold.c (gimple_fold_call): Do not remove lhs of noreturn
567 calls if the LHS is variable length or has addressable type.
568 If targets[0]->decl is a noreturn call with void return type and
569 zero arguments, adjust fntype and remove lhs in that case.
570
571 2016-05-20 Marc Glisse <marc.glisse@inria.fr>
572
573 PR tree-optimization/71079
574 PR tree-optimization/71206
575 * match.pd ((X ^ Y) ^ (X ^ Z)): Convert the arguments.
576
577 2016-05-20 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
578
579 * tree-vectorizer.c (get_vec_alignment_for_decl): New static function.
580 (get_vec_alignment_for_array_decl): Likewise.
581 (get_vec_alignment_for_record_decl): Likewise.
582 (increase_alignment::execute): Move code to find alignment to
583 get_vec_alignment_for_array_decl and call get_vec_alignment_for_decl.
584 (type_align_map): New hash_map.
585
586 2016-05-20 Richard Guenther <rguenther@suse.de>
587
588 PR tree-optimization/29756
589 * tree.def (BIT_INSERT_EXPR): New tcc_expression tree code.
590 * expr.c (expand_expr_real_2): Handle BIT_INSERT_EXPR.
591 * fold-const.c (operand_equal_p): Likewise.
592 (fold_ternary_loc): Add constant folding of BIT_INSERT_EXPR.
593 * gimplify.c (gimplify_expr): Handle BIT_INSERT_EXPR.
594 * tree-inline.c (estimate_operator_cost): Likewise.
595 * tree-pretty-print.c (dump_generic_node): Likewise.
596 * tree-ssa-operands.c (get_expr_operands): Likewise.
597 * cfgexpand.c (expand_debug_expr): Likewise.
598 * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
599 * gimple.c (get_gimple_rhs_num_ops): Handle BIT_INSERT_EXPR.
600 * tree-cfg.c (verify_gimple_assign_ternary): Verify BIT_INSERT_EXPR.
601 * tree-ssa.c (non_rewritable_lvalue_p): We can rewrite
602 vector inserts using BIT_FIELD_REF or MEM_REF on the lhs.
603 (execute_update_addresses_taken): Do it.
604
605 2016-05-20 Richard Biener <rguenther@suse.de>
606
607 PR tree-optimization/71185
608 * tree-ssa-loop-prefetch.c (gather_memory_references): Drop
609 register operations.
610
611 2016-05-20 Richard Biener <rguenther@suse.de>
612
613 * tree-if-conv.c (add_bb_predicate_gimplified_stmts): Use
614 gimple_seq_add_seq_without_update.
615 (release_bb_predicate): Assert we have no operands to free.
616 (if_convertible_loop_p_1): Calculate post dominators later.
617 Do not free BB predicates here.
618 (combine_blocks): Do not recompute BB predicates.
619 (version_loop_for_if_conversion): Save BB predicates around
620 loop versioning.
621
622 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org>
623
624 * function.c (make_epilogue_seq): Remove epilogue_end parameter.
625 (thread_prologue_and_epilogue_insns): Remove bb_flags. Restructure
626 code. Ignore sibcalls on EDGE_IGNORE edges.
627 * shrink-wrap.c (handle_simple_exit): New function. Set EDGE_IGNORE
628 on edges for sibcalls that run without prologue. The rest of the
629 function is combined from...
630 (fix_fake_fallthrough_edge): ... this, and ...
631 (try_shrink_wrapping): ... a part of this. Remove the bb_with
632 function argument, make it a local variable.
633
634 2016-05-19 Sandra Loosemore <sandra@codesourcery.com>
635
636 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Allow
637 --disable-sjlj-exceptions for TARGET_BI_ARCH to select DWARF-2 EH
638 for 32-bit mode and SEH for 64-bit.
639 * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): Handle
640 TARGET_64BIT_DEFAULT.
641
642 2016-05-19 Ryan Burn <contact@rnburn.com>
643
644 * Makefile.in (GTFILES): Add cilk.h and cilk-common.c.
645 * gengtype.c (open_base_files): Add cilk.h to ifiles.
646
647 2016-05-19 Uros Bizjak <ubizjak@gmail.com>
648
649 * sched-deps.c (sched_analyze_2) <case TRAP_IF>: Also
650 force pending loads from memory.
651
652 2016-05-19 Kelvin Nilsen <kelvin@gcc.gnu.org>
653
654 * config/rs6000/altivec.md (UNSPEC_DARN): New unspec constant.
655 (UNSPEC_DARN_32): New unspec constant.
656 (UNSPEC_DARN_RAW): New unspec constant.
657 (darn_32): New instruction.
658 (darn_raw): New instruction.
659 (darn): New instruction.
660 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_0): Add
661 support and documentation for this macro.
662 (BU_P9_MISC_1): New macro definition.
663 (BU_P9_64BIT_MISC_0): New macro definition.
664 (BU_P9_MISC_0): New macro definition.
665 (darn_32): New builtin definition.
666 (darn_raw): New builtin definition.
667 (darn): New builtin definition.
668 * config/rs6000/rs6000.c: Add #define RS6000_BUILTIN_0 and #undef
669 RS6000_BUILTIN_0 directives to surround each occurrence of
670 #include "rs6000-builtin.def".
671 (rs6000_builtin_mask_calculate): Add in the RS6000_BTM_MODULO and
672 RS6000_BTM_64BIT flags to the returned mask, depending on
673 configuration.
674 (def_builtin): Correct an error in the assignments made to the
675 debugging variable attr_string.
676 (rs6000_expand_builtin): Add support for no-operand built-in
677 functions.
678 (builtin_function_type): Remove fatal_error assertion that is no
679 longer valid.
680 (rs6000_common_init_builtins): Add support for no-operand built-in
681 functions.
682 * config/rs6000/rs6000.h (RS6000_BTM_MODULO): New macro
683 definition.
684 (RS6000_BTM_PURE): Enhance comment to clarify intent of this flag
685 definition.
686 (RS6000_BTM_64BIT): New macro definition.
687 * doc/extend.texi: Document __builtin_darn (void),
688 __builtin_darn_raw (void), and __builtin_darn_32 (void) built-in
689 functions.
690
691 2016-05-19 Jan Hubicka <hubicka@ucw.cz>
692
693 * tree-vect-loop.c (vect_analyze_loop_2): Use also
694 max_loop_iterations_int.
695
696 2016-05-19 Marek Polacek <polacek@redhat.com>
697
698 PR tree-optimization/71031
699 * tree-vrp.c (extract_range_from_binary_expr_1): Turn assert into a
700 condition and adjust the code a bit.
701
702 2016-05-19 Martin Liska <mliska@suse.cz>
703
704 * tree-vect-stmts.c (vectorizable_simd_clone_call): Utilize
705 auto_vec instead of vec.
706
707 2016-05-19 Martin Liska <mliska@suse.cz>
708
709 * tree-parloops.c (oacc_entry_exit_ok): Release a vector.
710
711 2016-05-19 Martin Liska <mliska@suse.cz>
712
713 * tree-if-conv.c (ifcvt_repair_bool_pattern): Utilize auto_vecs.
714
715 2016-05-19 Martin Liska <mliska@suse.cz>
716
717 * ipa-pure-const.c (set_function_state): Remove an existing
718 funct_state.
719 (remove_node_data): Do not free it as it's released
720 in set_function_state.
721
722 2016-05-19 Martin Liska <mliska@suse.cz>
723
724 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Release
725 bitmap.
726
727 2016-05-19 Martin Liska <mliska@suse.cz>
728
729 * omp-simd-clone.c (simd_clone_adjust): Release vector.
730
731 2016-05-19 Martin Liska <mliska@suse.cz>
732
733 * tree-ssa-reassoc.c (eliminate_duplicate_pair): Truncate
734 an auto_vec instead of re-creating it.
735
736 2016-05-19 Martin Liska <mliska@suse.cz>
737
738 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Use
739 auto_vec instead of vec.
740
741 2016-05-19 Martin Liska <mliska@suse.cz>
742
743 * lto-section-in.c (lto_get_section_data): Call
744 lto_check_version with additional argument.
745 * lto-streamer.c (lto_check_version): Add new argument.
746 * lto-streamer.h (lto_check_version): Likewise.
747
748 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
749
750 * config/arm/arm.c (arm_new_rtx_costs, SIGN_EXTEND case):
751 Don't add cost of inner memory when handling sign-extended loads.
752
753 2016-05-19 Ilya Enkovich <ilya.enkovich@intel.com>
754
755 PR rtl-optimization/71148
756 * cse.c (cse_main): Free dominance info.
757 (rest_of_handle_cse): Don't free dominance info.
758 (rest_of_handle_cse2): Likewise.
759 (rest_of_handle_cse_after_global_opts): Likewise.
760
761 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
762
763 PR target/71056
764 * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Return
765 NULL_TREE early if NEON is not available. Remove now redundant check
766 in ARM_CHECK_BUILTIN_MODE.
767
768 2016-05-19 Maxim Ostapenko <m.ostapenko@samsung.com>
769
770 PR sanitizer/64354
771 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add new
772 builtin __SANITIZE_THREAD__ macros for fsanitize=thread switch.
773 * doc/cpp.texi: Document new macros.
774
775 2016-05-19 Bin Cheng <bin.cheng@arm.com>
776
777 PR tree-optimization/69848
778 * tree-vect-loop.c (vectorizable_reduction): Don't factor
779 comparison expr out of VEC_COND_EXPR for COND_REDUCTION.
780
781 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org>
782
783 * function.c (thread_prologue_and_epilogue_insn): Move the
784 "goto epilogue_done" one block later.
785
786 2016-05-19 Richard Biener <rguenther@suse.de>
787
788 PR tree-optimization/70729
789 * passes.def: Move LIM pass before PRE. Remove no longer
790 required copyprop and move first DCE out of the loop pipeline.
791
792 2016-05-18 David Malcolm <dmalcolm@redhat.com>
793
794 PR driver/69265
795 * Makefile.in (GCC_OBJS): Move spellcheck.o to...
796 (OBJS-libcommon-target): ...here.
797 * opts-common.c: Include spellcheck.h.
798 (cmdline_handle_error): Build a vec of valid options and use it
799 to suggest provide hints for misspelled arguments.
800
801 2016-05-18 Jakub Jelinek <jakub@redhat.com>
802
803 PR c++/71100
804 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Don't drop
805 lhs if it has TREE_ADDRESSABLE type.
806
807 2016-05-18 Uros Bizjak <ubizjak@gmail.com>
808
809 PR target/71145
810 * config/alpha/alpha.md (trap): Add (use (reg:DI 29)).
811 (*exception_receiver_1): Return "#" for TARGET_EXPLICIT_RELOCS.
812
813 2016-05-18 Martin Jambor <mjambor@suse.cz>
814
815 PR ipa/69708
816 * ipa-cp.c (ipa_get_jf_pass_through_result): Allow non-ip constant
817 input for NOP_EXPR pass-through functions.
818 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Allow
819 aggregate global constant VAR_DECLs in constant jump functions.
820
821 2016-05-18 Martin Jambor <mjambor@suse.cz>
822
823 PR ipa/69708
824 * ipa-prop.c (parm_preserved_before_stmt_p): Return true for loads
825 from TREE_READONLY parameters.
826
827 2016-05-18 Martin Jambor <mjambor@suse.cz>
828
829 PR ipa/69708
830 * cgraph.h (cgraph_indirect_call_info): New field
831 guaranteed_unmodified.
832 * ipa-cp.c (ipa_get_indirect_edge_target_1): Also pass parameter value
833 to ipa_find_agg_cst_for_param, check guaranteed_unmodified when
834 appropriate.
835 * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Also
836 pass the parameter value to ipa_find_agg_cst_for_param.
837 * ipa-prop.c (ipa_load_from_parm_agg): New parameter
838 guaranteed_unmodified, store AA results there instead of bailing out
839 if present.
840 (ipa_note_param_call): Also initialize guaranteed_unmodified flag.
841 (ipa_analyze_indirect_call_uses): Also set guaranteed_unmodified flag.
842 (find_constructor_constant_at_offset): New function.
843 (ipa_find_agg_cst_from_init): Likewise.
844 (ipa_find_agg_cst_for_param): Also seearch for aggregate values in
845 static initializers of contants, report back through a new paameter
846 from_global_constant if that was the case.
847 (try_make_edge_direct_simple_call): Also pass parameter value to
848 ipa_find_agg_cst_for_param, check guaranteed_unmodified when
849 appropriate.
850 (ipa_write_indirect_edge_info): Stream new flag guaranteed_unmodified.
851 (ipa_read_indirect_edge_info): Likewise.
852 * ipa-prop.h (ipa_find_agg_cst_for_param): Update declaration.
853 (ipa_load_from_parm_agg): Likewise.
854
855 2016-05-18 Jiong Wang <jiong.wang@arm.com>
856
857 PR rtl-optimization/71150
858 * lra-constraint (process_addr_reg): Guard "in_class_p" with REG_P
859 check.
860
861 2016-05-18 Michael Meissner <meissner@linux.vnet.ibm.com>
862
863 PR target/70915
864 * config/rs6000/constraints.md (wE constraint): New constraint
865 for a vector constant that can be loaded with XXSPLTIB.
866 (wM constraint): New constraint for a vector constant of a 1's.
867 (wS constraint): New constraint for a vector constant that can be
868 loaded with XXSPLTIB and a vector sign extend instruction.
869 * config/rs6000/predicates.md (xxspltib_constant_split): New
870 predicates for wE/wS constraints.
871 (xxspltib_constant_nosplit): Likewise.
872 (easy_vector_constant): Add support for constants that can be
873 loaded via XXSPLTIB.
874 (all_ones_constant): New predicate for vector constant with all
875 1's set.
876 (splat_input_operand): Add support for ISA 3.0 word splat operations.
877 * config/rs6000/rs6000.c (xxspltib_constant_p): New function to
878 return if a constant can be loaded with the ISA 3.0 XXSPLTIB
879 instruction and possibly with a sign extension.
880 (output_vec_const_move): Add support for XXSPLTIB. If we are
881 loading up 0/-1 into Altivec registers, prefer using VSPLTISW
882 instead of XXLXOR/XXLORC.
883 (rs6000_expand_vector_init): Add support for ISA 3.0 word splat
884 operations.
885 (rs6000_legitimize_reload_address): Likewise.
886 (rs6000_output_move_128bit): Use output_vec_const_move to emit
887 constants.
888 * config/rs6000/vsx.md (VSX_M): Add TImode (if -mvsx-timode) and
889 combine VSX_M and VSX_M2 into one iterator.
890 (VSX_M2): Likewise.
891 (VSINT_84): New iterators for loading constants with XXSPLTIB.
892 (VSINT_842): Likewise.
893 (UNSPEC_VSX_SIGN_EXTEND): New UNSPEC.
894 (xxspltib_v16qi): New insns to load up constants with the ISA 3.0
895 XXSPLTIB instruction.
896 (xxspltib_<mode>_nosplit): Likewise.
897 (xxspltib_<mode>_split): New insn to load up constants with
898 XXSPLTIB and a sign extend instruction.
899 (vsx_mov<mode>): Replace single move that handled all vector types
900 with separate 32-bit and 64-bit moves. Combine the movti_<bit>
901 moves (when -mvsx-timode is in effect) into the main vector
902 moves. Eliminate separate moves for <VSr> <VSa>, where the
903 preferred register class (<VSr>) is listed first, and the
904 secondary register class (<VSa>) is listed second with a '?' to
905 discourage use. Prefer loading 0/-1 in any VSX register for ISA
906 3.0, and Altivec registers for ISA 2.06/2.07 (PR target/70915) so
907 that if the register was involved in a slow operation, the
908 clear/set operation does not wait for the slow operation to
909 finish. Adjust the length attributes for 32-bit mode. Use
910 rs6000_output_move_128bit and drop the use of the string
911 instructions for 32-bit movti when -mvsx-timode is in effect. Use
912 spacing so that the alternatives and attributes don't generate
913 long lines, and put things in columns, so that it is easier to
914 match up the operands and attributes with the insn alternatives.
915 (vsx_mov<mode>_64bit): Likewise.
916 (vsx_mov<mode>_32bit): Likewise.
917 (vsx_movti_64bit): Fold movti into normal vector moves.
918 (vsx_movti_32bit): Likewise.
919 (vsx_splat_<mode>, V4SI/V4SF modes): Add support for ISA 3.0 word
920 splat instructions.
921 (vsx_splat_v4si_internal): Likewise.
922 (vsx_splat_v4sf_internal): Likewise.
923 (vector fusion peepholes): Use VSX_M instead of VSX_M2.
924 (vsx_sign_extend_qi_<mode>): New ISA 3.0 instructions to sign
925 extend vector elements.
926 (vsx_sign_extend_hi_<mode>): Likewise.
927 (vsx_sign_extend_si_v2di): Likewise.
928 * config/rs6000/rs6000-protos.h (xxspltib_constant_p): Add
929 declaration.
930 * doc/md.texi (PowerPC constraints): Document the wE, wM, and wS
931 constraints. Add trailing period to wL documentation.
932
933 2016-05-18 Richard Sandiford <richard.sandiford@arm.com>
934
935 PR middle-end/71020
936 * tree-dfa.h (replace_abnormal_ssa_names): Declare.
937 * tree-dfa.c (replace_abnormal_ssa_names): New function.
938 * tree-call-cdce.c: Include tree-dfa.h.
939 (can_guard_call_p): New function, extracted from...
940 (can_use_internal_fn): ...here.
941 (shrink_wrap_one_built_in_call_with_conds): Remove failure path
942 and return void.
943 (shrink_wrap_one_built_in_call): Likewise.
944 (use_internal_fn): Likewise.
945 (shrink_wrap_conditional_dead_built_in_calls): Update accordingly
946 and return void. Call replace_abnormal_ssa_names.
947 (pass_call_cdce::execute): Check can_guard_call_p during the
948 initial walk. Assume shrink_wrap_conditional_dead_built_in_calls
949 will always change something.
950
951 2016-05-18 Martin Jambor <mjambor@suse.cz>
952
953 PR ipa/70646
954 * ipa-prop.c (determine_locally_known_aggregate_parts): Bail out early
955 if parameter PARAM_IPA_MAX_AGG_ITEMS is zero.
956
957 2016-05-18 Martin Jambor <mjambor@suse.cz>
958
959 PR ipa/70646
960 * ipa-inline.h (condition): New field size.
961 * ipa-inline-analysis.c (add_condition): New parameter SIZE, use it
962 for comaprison and store it into the new condition.
963 (evaluate_conditions_for_known_args): Use condition size to check
964 access sizes for all but CHANGED conditions.
965 (unmodified_parm_1): New parameter size_p, store access size into it.
966 (unmodified_parm): Likewise.
967 (unmodified_parm_or_parm_agg_item): Likewise.
968 (eliminated_by_inlining_prob): Pass NULL to unmodified_parm as size_p.
969 (set_cond_stmt_execution_predicate): Extract access sizes and store
970 them to conditions.
971 (set_switch_stmt_execution_predicate): Likewise.
972 (will_be_nonconstant_expr_predicate): Likewise.
973 (will_be_nonconstant_predicate): Likewise.
974 (inline_read_section): Stream condition size.
975 (inline_write_summary): Likewise.
976
977 2016-05-18 Richard Biener <rguenther@suse.de>
978
979 * tree-ssa-loop-im.c (determine_max_movement): Properly add
980 condition cost to PHI cost instead of total_cost.
981
982 2016-05-18 Martin Liska <mliska@suse.cz>
983
984 PR fortran/70856
985 * ipa-icf.c (sem_variable::merge): Set DECL_PT_UID for
986 merged variables.
987
988 2016-05-18 Richard Biener <rguenther@suse.de>
989
990 * lto-streamer.h (LTO_major_version): Bump to 6.
991
992 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org>
993
994 * function.c (make_split_prologue_seq, make_prologue_seq,
995 make_epilogue_seq): New functions, factored out from...
996 (thread_prologue_and_epilogue_insns): Here.
997
998 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org>
999
1000 * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
1001 cleanup_cfg with CLEANUP_EXPENSIVE after shrink-wrapping instead
1002 of before. Add a comment.
1003
1004 2016-05-18 Bin Cheng <bin.cheng@arm.com>
1005
1006 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check invariant
1007 expression pointer, not pointer to the pointer.
1008
1009 2016-05-18 Jakub Jelinek <jakub@redhat.com>
1010
1011 * config/i386/sse.md (pbroadcast_evex_isa): New mode attr.
1012 (avx2_pbroadcast<mode>): Add another alternative with v instead
1013 of x constraints in it, using <pbroadcast_evex_isa> isa.
1014 (avx2_pbroadcast<mode>_1): Similarly, add two such alternatives.
1015
1016 * config/i386/sse.md (<ssse3_avx2>_palignr<mode>): Use
1017 constraint x instead of v in second alternative, add avx512bw
1018 alternative.
1019
1020 * config/i386/sse.md (<ssse3_avx2>_pshufb<mode>3<mask_name>): Use
1021 constraint x instead of v in second alternative, add avx512bw
1022 alternative.
1023
1024 * config/i386/sse.md (*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>): Use
1025 constraint x instead of v in second alternative, add avx512bw
1026 alternative.
1027
1028 * config/i386/sse.md (avx2_pmaddubsw256, ssse3_pmaddubsw128): Add
1029 avx512bw alternative.
1030
1031 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
1032
1033 * config/i386/sse.md (define_insn "*andnot<mode>3"): Extend static
1034 array to 128 chars.
1035 (define_insn "*andnottf3"): Ditto.
1036 (define_insn "*<code><mode>3"/any_logic): Ditto.
1037 (define_insn "*<code>tf3"/any_logic): Ditto.
1038 (define_insn "sse2_storehpd"): Use Yv constraint for scalar
1039 operand to block AVX-512VL insn variant emit when it is not enabled.
1040
1041 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
1042
1043 * config/i386/sse.md (define_insn "*vec_concatv2sf_sse4_1"): Use 'Yv'
1044 constraint fot SF mode.
1045
1046 2016-05-18 Petr Murzin <petr.murzin@intel.com>
1047 Kirill Yukhin <kirill.yukhin@intel.com>
1048
1049 * config/i386/sse.md (define_insn "srcp14<mode>"): Use proper operand
1050 modifiers.
1051 (define_insn "rsqrt14<mode>"): Ditto.
1052 (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
1053 (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
1054 (define_insn "avx512f_<code>v8div16qi2_mask_store"): Ditto.
1055 (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
1056 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"):
1057 Ditto.
1058 (define_insn "*avx512f_gatherdi<mode>"): Ditto.
1059 (define_insn "*avx512f_scatterdi<mode>"): Ditto.
1060 * config/i386/i386.c (ix86_print_operand): Expand check for size
1061 override codes for Intel syntax.
1062
1063 2016-05-18 Richard Biener <rguenther@suse.de>
1064
1065 PR tree-optimization/71168
1066 * tree-loop-distribution.c (distribute_loop): Move *destroy_p
1067 initialization earlier.
1068
1069 2016-05-18 James Greenhalgh <james.greenhalgh@arm.com>
1070
1071 * config/aarch64/aarch64-simd.md
1072 (aarch64_reduc_plus_internal<mode>): Rename to...
1073 (reduc_plus_scal): ...This, and remove previous implementation.
1074
1075 2016-05-18 Richard Biener <rguenther@suse.de>
1076
1077 * passes.def: Put late dse and cd_dce in canonical order.
1078
1079 2016-05-17 Jan Hubicka <hubicka@ucw.cz>
1080
1081 * ipa-inline-transform.c (preserve_function_body_p): Look for
1082 first non-thunk clone.
1083 (save_function_body): Save into first non-thunk.
1084 * lto-cgraph.c (lto_output_edge): When streaming thunk do not look
1085 up call stmt id.
1086 (lto_output_node): Inline thunks don't need body in every
1087 partition.
1088 * lto-streamer-in.c: Do not fixup thunk clones.
1089 * cgraphclones.c (cgraph_node::create_edge_including_clone): Skip
1090 thunks.
1091 * tree-inline.c (copy_bb): Be prepared for target node to be new after
1092 folding suceeds.
1093
1094 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org>
1095
1096 PR middle-end/63586
1097 * tree-ssa-reassoc.c (transform_add_to_multiply): New.
1098 (reassociate_bb): Call transform_add_to_multiply.
1099
1100 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org>
1101
1102 * config/aarch64/aarch64.c (all_extensions): Removed unused
1103 static variable.
1104
1105 2016-05-17 Nathan Sidwell <nathan@acm.org>
1106
1107 * config/nvptx/nvptx.c (nvptx_function_arg_boundary): New.
1108 (TARGET_FUNCTION_ARG_BOUNDARY): Override.
1109
1110 2016-05-17 Mikhail Maltsev <maltsevm@gmail.com>
1111
1112 PR tree-optimization/54579
1113 PR middle-end/55299
1114 * match.pd (~(~X >> Y), ~(~X >>r Y), ~(~X <<r Y)): New patterns.
1115
1116 2016-05-17 Marek Polacek <polacek@redhat.com>
1117
1118 PR ipa/71146
1119 * tree-inline.c (expand_call_inline): Call
1120 maybe_remove_unused_call_args.
1121
1122 2016-05-17 Jim Wilson <jim.wilson@linaro.org>
1123
1124 * doc/cpp.texi (__GNUC__): Major version changes are no longer rare.
1125 * doc/invoke.texi (-mnan=2008): Change signalling to signaling.
1126 * doc/md.texi (fmin@var{m}3): Likewise.
1127
1128 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
1129
1130 * match.pd (X & C): New transformation.
1131
1132 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
1133
1134 * match.pd (~X & Y): New transformation.
1135
1136 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
1137
1138 * tree-vrp.c (simplify_truth_ops_using_ranges): Set range
1139 information for new SSA_NAME.
1140 (simplify_conversion_using_ranges): Get range through get_range_info
1141 instead of get_value_range.
1142
1143 2016-05-17 Jiong Wang <jiong.wang@arm.com>
1144
1145 * config/aarch64/arm_neon.h (vmvn_s8): Reimplement using C operator.
1146 Remove inline assembly.
1147 (vmvn_s16): Likewise.
1148 (vmvn_s32): Likewise.
1149 (vmvn_u8): Likewise.
1150 (vmvn_u16): Likewise.
1151 (vmvn_u32): Likewise.
1152 (vmvnq_s8): Likewise.
1153 (vmvnq_s16): Likewise.
1154 (vmvnq_s32): Likewise.
1155 (vmvnq_u8): Likewise.
1156 (vmvnq_u16): Likewise.
1157 (vmvnq_u32): Likewise.
1158 (vmvn_p8): Likewise.
1159 (vmvnq_p16): Likewise.
1160
1161 2016-05-17 Jiong Wang <jiong.wang@arm.com>
1162
1163 * config/aarch64/aarch64-simd.md (vmul_n_f32): Remove inline assembly.
1164 Use builtin.
1165 (vmul_n_s16): Likewise.
1166 (vmul_n_s32): Likewise.
1167 (vmul_n_u16): Likewise.
1168 (vmul_n_u32): Likewise.
1169 (vmulq_n_f32): Likewise.
1170 (vmulq_n_f64): Likewise.
1171 (vmulq_n_s16): Likewise.
1172 (vmulq_n_s32): Likewise.
1173 (vmulq_n_u16): Likewise.
1174 (vmulq_n_u32): Likewise.
1175
1176 2016-05-17 Jiong Wang <jiong.wang@arm.com>
1177
1178 * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_to_128df): Extend
1179 to all supported modes. Rename to "*aarch64_mul3_elt_from_dup".
1180
1181 2016-05-17 Jiong Wang <jiong.wang@arm.com>
1182
1183 * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_to_128df): Rename
1184 to *aarch64_fma4_elt_from_dup<mode>.
1185 (*aarch64_fnma4_elt_to_128df): Rename to
1186 *aarch64_fnma4_elt_from_dup<mode>.
1187 * config/aarch64/arm_neon.h (vfma_n_f64): New.
1188 (vfms_n_f32): Likewise.
1189 (vfms_n_f64): Likewise.
1190 (vfmsq_n_f32): Likewise.
1191 (vfmsq_n_f64): Likewise.
1192
1193 2016-05-17 Gerald Pfeifer <gerald@pfeifer.com>
1194
1195 * wide-int.h: Change fixed_wide_int_storage from class to struct.
1196
1197 2016-05-17 Richard Biener <rguenther@suse.de>
1198
1199 PR tree-optimization/71132
1200 * tree-loop-distribution.c (create_rdg_cd_edges): Pass in loop.
1201 Only add control dependences for blocks in the loop.
1202 (build_rdg): Adjust.
1203 (generate_code_for_partition): Return whether loop should
1204 be destroyed and delay that.
1205 (distribute_loop): Likewise.
1206 (pass_loop_distribution::execute): Record loops to be destroyed
1207 and perform delayed destroying of loops.
1208
1209 2016-05-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1210
1211 PR target/70809
1212 * config/aarch64/aarch64-simd.md (aarch64_vmls<mode>): Delete.
1213
1214 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
1215
1216 * config/aarch64/aarch64-elf.h (ASM_OUTPUT_DEF): Delete.
1217
1218 2016-05-17 Ilya Enkovich <ilya.enkovich@intel.com>
1219
1220 PR target/71114
1221 * config/i386/i386.c (dimode_scalar_chain::convert_op): Fix
1222 insertion point for instructions generated by validize_mem.
1223
1224 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
1225
1226 * config/aarch64/aarch64.c (SHIFT_COUNT_TRUNCATED): Wrap definition
1227 in brackets.
1228
1229 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
1230
1231 * config/aarch64/aarch64.c
1232 (aarch64_output_simd_mov_immediate): Make "buf_size" a variable
1233 rather than a macro.
1234
1235 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
1236
1237 * doc/invoke.texi (AArch64 Options): Various updates.
1238
1239 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
1240
1241 * ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig
1242 into instrumentation thunks.
1243 * cif-code.def (CIF_CHKP): New.
1244
1245 2016-05-16 Uros Bizjak <ubizjak@gmail.com>
1246
1247 * config/i386/xopintrin.h: Correct "unsinged" typo in the comments.
1248
1249 2016-05-16 Martin Jambor <mjambor@suse.cz>
1250
1251 * hsa-gen.c (fillup_for_decl): Increase alignment to natural one.
1252 (get_symbol_for_decl): Sorry if a global symbol in under-aligned.
1253
1254 2016-05-16 Marek Polacek <polacek@redhat.com>
1255
1256 * gimple.c (maybe_remove_unused_call_args): Fix typos in the
1257 commentary.
1258
1259 2016-05-16 Martin Jambor <mjambor@suse.cz>
1260
1261 PR hsa/70857
1262 * omp-low.c (grid_expand_target_grid_body): Copy RESULT_DECL of
1263 the outlined kernel function.
1264
1265 2016-05-16 Robert Suchanek <robert.suchanek@imgtec.com>
1266
1267 * config/mips/mips.h (ISA_HAS_LSA): Enable for -mmsa.
1268 (ISA_HAS_DLSA): Ditto.
1269
1270 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com>
1271
1272 * config/mips/m5100.md (m51_int_load): Update the latency to 2.
1273
1274 2016-05-16 Nathan Sidwell <nathan@acm.org>
1275
1276 * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): Revert.
1277 (nvptx_name_replacement): Restore. Add comment.
1278 (write_fn_proto, write_fn_proto_from_insn,
1279 nvptx_output_call_insn): Restore
1280 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Delete.
1281
1282 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
1283
1284 * config/aarch64/aarch64.md
1285 (add<mode>3_compareC_cconly_imm): Remove use of %w.
1286 (add<mode>3_compareC_imm): Likewise.
1287 (<optab>si3_uxtw): Split into register and immediate variants.
1288 (andsi3_compare0_uxtw): Likewise.
1289 (and<mode>3_compare0): Likewise.
1290 (and<mode>3nr_compare0): Likewise.
1291 (stack_protect_test_<mode>): Don't use %x for memory operands.
1292
1293 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com>
1294
1295 * config/mips/mips-cpus.def (p5600): Add multi-line brackets.
1296
1297 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
1298
1299 * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
1300 Split integer shifts into shift_reg and bfm.
1301 (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
1302 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
1303 (ror<mode>3_insn): Likewise.
1304 (<optab>si3_insn_uxtw): Likewise.
1305 (<optab><mode>3_insn): Change to rotate_imm.
1306 (extr<mode>5_insn_alt): Likewise.
1307 (extrsi5_insn_uxtw): Likewise.
1308 (extrsi5_insn_uxtw_alt): Likewise.
1309
1310 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
1311
1312 * doc/tm.texi: Regenerate.
1313 * doc/tm.texi.in (TARGET_INVALID_PARAMETER_TYPE): Remove.
1314 (TARGET_INVALID_RETURN_TYPE): Remove.
1315 * system.h: Poison TARGET_INVALID_PARAMETER_TYPE and
1316 TARGET_INVALID_RETURN_TYPE.
1317 * target.def (invalid_parameter_type): Remove.
1318 (invalid_return_type): Remove.
1319
1320 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
1321
1322 * ipa-inline-analysis.c (compute_inline_parameters): Be more reailistic
1323 on estimating thunk bodies; do not set inline_failed to CIF_THUNK for
1324 calls from thunk.
1325 * ipa-inline-transform.c (inline_call): When inlining into thunk produce
1326 gimple body.
1327 (preserve_function_body_p): No need to preserve function body
1328 * cif-codes.def (CIF_THUNK): Remove.
1329 * cgraphclones.c (duplicate_thunk_for_node): Thunks calls are inlinable.
1330
1331 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
1332
1333 * tree-inline.c (expand_call_inline): recurse after inlining thunk.
1334
1335 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
1336
1337 * tree.c (free_lang_data_in_decl): Also set target/optimization flags
1338 for thunks.
1339
1340 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
1341
1342 * ipa-inline.c (report_inline_failed_reason): Look into thunks, too
1343 (inline_small_functions): Do not look for function symbol when
1344 resetting caches.
1345
1346 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
1347
1348 * lto-cgraph.c (compute_ltrans_boundary, output_symtab): Fix handling
1349 of inline thunks
1350
1351 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
1352 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1353 Jiong Wang <jiong.wang@arm.com>
1354
1355 * config/arm/arm-c.c (arm_cpu_builtins): Use def_or_undef_macro
1356 for __ARM_FP16_FORMAT_IEEE and __ARM_FP16_FORMAT_ALTERNATIVE.
1357 Define __ARM_FP16_ARGS when appropriate.
1358 * config/arm/arm.c (arm_invalid_parameter_type): Remove
1359 declaration.
1360 (arm_invalid_return_type): Likewise.
1361 (TARGET_INVALID_PARAMETER_TYPE): Remove.
1362 (TARGET_INVALID_RETURN_TYPE): Remove.
1363 (aapcs_vfp_sub_candidate): Allow HFmode.
1364 (aapcs_vfp_allocate): Add comment. Support HFmode.
1365 (aapcs_vfp_allocate_return_reg): Likewise.
1366 (struct aapcs_cp_arg_layout): Slightly reword comments for
1367 is_return_candidate and allocate_return_reg.
1368 (output_mov_vfp): Update assert.
1369 (arm_hard_regno_mode_ok): Remove comment, update HF-mode
1370 condition.
1371 (arm_invalid_parameter_type): Remove.
1372 (amr_invalid_return_type): Remove.
1373 * config/arm/arm.h (TARGET_NEON_FP16): Fix definition.
1374 * config/arm/arm.md (*arm32_movhf): Disable for TARGET_VFP.
1375 * config/arm/vfp.md (*movhf_vfp): Enable for TARGET_VFP.
1376
1377 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
1378
1379 * config/aarch64/aarch64.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
1380 * config/aarch64/arch64-protos.h
1381 (aarch64_legitimize_reload_address): Remove.
1382 * config/aarch64/aarch64.c (aarch64_legitimize_reload_address):
1383 Remove.
1384
1385 2016-05-16 Eric Botcazou <ebotcazou@adacore.com>
1386
1387 * configure.ac: Add ACX_NONCANONICAL_HOST.
1388 * configure: Regenerate.
1389 * Makefile.in: Set host_noncanonical.
1390
1391 2016-05-14 Uros Bizjak <ubizjak@gmail.com>
1392
1393 PR target/71097
1394 * config/i386/i386.md (*movtf_internal): Before register allocation,
1395 do not allow FP constants for CM_MEDIUM memory model, allow only
1396 standard FP constants for CM_LARGE and CM_LARGE_PIC models.
1397 (*movxf_internal): Ditto.
1398 (*movdf_internal): Ditto.
1399 (*movsf_internal): Ditto.
1400
1401 2016-05-13 Segher Boessenkool <segher@kernel.crashing.org>
1402
1403 PR rtl-optimization/67483
1404 * combine.c (make_compound_operation): Don't call extract_left_shift
1405 with negative shift amounts.
1406
1407 2016-05-13 Jakub Jelinek <jakub@redhat.com>
1408
1409 PR bootstrap/71071
1410 * fold-const.c (fold_checksum_tree): Allow modification
1411 of TYPE_ALIAS_SET during folding.
1412
1413 * config/i386/i386.c (ix86_compute_frame_layout, ix86_expand_prologue,
1414 ix86_expand_split_stack_prologue): Use HOST_WIDE_INT_C macro.
1415 (ix86_split_to_parts): Likewise. Fix up formatting.
1416
1417 2016-05-13 H.J. Lu <hongjiu.lu@intel.com>
1418
1419 * tree-ssa-loop-ivopts.c (create_new_ivs): Cast to
1420 unsigned HOST_WIDE_INT with HOST_WIDE_INT_PRINT_UNSIGNED in
1421 printf format.
1422
1423 2016-05-13 Nathan Sidwell <nathan@acm.org>
1424
1425 * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): New.
1426 (nvptx_name_replacement): Delete.
1427 (write_fn_proto, write_fn_proto_from_insn,
1428 nvptx_output_call_insn): Remove nvptx_name_replacement call.
1429 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Override.
1430 * langhooks.c (add_builtin_funcction_common): Call
1431 targetm.mangle_decl_assembler_name.
1432
1433 * config/nvptx/nvptx.c (write_fn_proto): Handle
1434 BUILT_IN_ATOMIC_COMPARE_EXCHANGE_n oddity.
1435
1436 2016-05-13 Martin Liska <mliska@suse.cz>
1437
1438 * tree-ssa-loop-ivopts.c (create_new_ivs): Use HOST_WIDE_INT_PRINT_DEC
1439 and PRIu64 in printf format.
1440
1441 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1442
1443 * tree-ssa-loop-ivanon.c (try_unroll_loop_completely): Typo fix in
1444 comment.
1445
1446 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1447
1448 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
1449 Change --param max-completely-peeled-times to
1450 --param max-completely-peel-times in dump file printing.
1451
1452 2016-05-13 Richard Biener <rguenther@suse.de>
1453
1454 PR tree-optimization/42587
1455 * tree-ssa-math-opts.c (perform_symbolic_merge): Handle BIT_FIELD_REF.
1456 (find_bswap_or_nop_1): Likewise.
1457 (bswap_replace): Likewise.
1458
1459 2016-05-13 Martin Liska <mliska@suse.cz>
1460
1461 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
1462 Initialize a variable with default value.
1463
1464 2016-05-13 Martin Liska <mliska@suse.cz>
1465
1466 * doc/invoke.texi: Enhance explanation of error recovery
1467 of sanitizers.
1468
1469 2016-05-13 Martin Liska <mliska@suse.cz>
1470
1471 * tree-ssa-loop-ivopts.c (avg_loop_niter): Fix coding style.
1472 (struct cost_pair): Change inv_expr_id (int) to inv_expr
1473 (iv_inv_expr_ent *).
1474 (struct iv_inv_expr_ent): Comment struct fields.
1475 (sort_iv_inv_expr_ent): New function.
1476 (struct ivopts_data): Rename inv_expr_id to max_inv_expr_id.
1477 (struct iv_ca): Replace used_inv_expr and num_used_inv_expr with
1478 a hash_map between iv_inv_expr_ent and number of usages.
1479 (niter_for_exit): Fix coding style.
1480 (tree_ssa_iv_optimize_init): Use renamed variable.
1481 (determine_base_object): Fix coding style.
1482 (alloc_iv): Likewise.
1483 (find_interesting_uses_outside): Likewise.
1484 (add_candidate_1): Likewise.
1485 (add_standard_iv_candidates): Likewise.
1486 (set_group_iv_cost): Replace inv_expr_id with inv_expr.
1487 (prepare_decl_rtl): Fix coding style.
1488 (get_address_cost): Likewise.
1489 (get_shiftadd_cost): Likewise.
1490 (force_expr_to_var_cost): Likewise.
1491 (compare_aff_trees): Likewise.
1492 (get_expr_id): Restructure the function.
1493 (get_loop_invariant_expr_id): Renamed to
1494 get_loop_invariant_expr.
1495 (get_computation_cost_at): Replace usage of inv_expr_id with
1496 inv_expr.
1497 (get_computation_cost): Likewise.
1498 (determine_group_iv_cost_generic): Likewise.
1499 (determine_group_iv_cost_address): Likewise.
1500 (iv_period): Fix coding style.
1501 (iv_elimination_compare_lt): Likewise.
1502 (may_eliminate_iv): Likewise.
1503 (determine_group_iv_cost_cond): Replace usage of inv_expr_id with
1504 inv_expr.
1505 (determine_group_iv_costs): Dump invariant expressions.
1506 (iv_ca_recount_cost): Use the newly added hash_map.
1507 (iv_ca_set_remove_invariants): Fix coding style.
1508 (iv_ca_set_add_invariants): Fix coding style.
1509 (iv_ca_set_no_cp): Utilize the newly added hash_map for used
1510 invariants.
1511 (iv_ca_set_cp): Likewise.
1512 (iv_ca_new): Initialize the newly added hash_map and remove
1513 initialization of fields.
1514 (iv_ca_free): Delete the hash_map.
1515 (iv_ca_dump): Dump invariant expressions.
1516 (iv_ca_extend): Fix coding style.
1517 (try_add_cand_for): Likewise.
1518 (create_new_ivs): Dump information about # of avg iterations and
1519 # of used invariant expressions.
1520 (rewrite_use_compare): Fix coding style.
1521 (free_loop_data): Set default value for max_inv_expr_id.
1522
1523 2016-05-13 Ilya Enkovich <ilya.enkovich@intel.com>
1524
1525 * cse.c (rest_of_handle_cse): Use cleanup_cfg
1526 returned value cse_cfg_altered computation.
1527 (rest_of_handle_cse2): Likewise.
1528 (rest_of_handle_cse_after_global_opts): Likewise.
1529
1530 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1531
1532 PR target/53440
1533 * config/arm/arm.c (arm32_output_mi_thunk): New.
1534 (arm_output_mi_thunk): Rename to arm_thumb1_mi_thunk. Rework
1535 to split Thumb1 vs TARGET_32BIT functionality.
1536 (arm_thumb1_mi_thunk): New.
1537
1538 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1539
1540 * config/aarch64/aarch64.c (TARGET_OMIT_STRUCT_RETURN_REG): Set
1541 to true.
1542
1543 2016-05-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1544
1545 PR target/71080
1546 * config/i386/i386.c (ix86_in_large_data_p): Guard against NULL exp.
1547
1548 2016-05-13 Eric Botcazou <ebotcazou@adacore.com>
1549
1550 * builtins.c (expand_builtin_memcmp): Do not emit the call here.
1551 (expand_builtin_trap): Emit a regular call.
1552 (set_builtin_user_assembler_name): Remove obsolete cases.
1553 * dse.c (scan_insn): Adjust.
1554 * except.c: Include calls.h.
1555 (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is defined,
1556 emit a regular call to setjmp.
1557 * expr.c (emit_block_move_hints): Call emit_block_copy_via_libcall.
1558 (block_move_libcall_safe_for_call_parm): Use memcpy builtin.
1559 (emit_block_move_via_libcall): Delete.
1560 (block_move_fn): Delete.
1561 (init_block_move_fn): Likewise.
1562 (emit_block_move_libcall_fn): Likewise.
1563 (emit_block_op_via_libcall): New function.
1564 (set_storage_via_libcall): Tidy up and use memset builtin.
1565 (block_clear_fn): Delete.
1566 (init_block_clear_fn): Likewise.
1567 (clear_storage_libcall_fn): Likewise.
1568 (expand_assignment): Call emit_block_move_via_libcall.
1569 Do not include gt-expr.h.
1570 * expr.h (emit_block_op_via_libcall): Declare.
1571 (emit_block_copy_via_libcall): New inline function.
1572 (emit_block_move_via_libcall): Likewise.
1573 (emit_block_comp_via_libcall): Likewise.
1574 (block_clear_fn): Delete.
1575 (init_block_move_fn): Likewise.
1576 (init_block_clear_fn): Likewise.
1577 (emit_block_move_via_libcall): Likewise.
1578 (set_storage_via_libcall): Add default parameter value.
1579 * libfuncs.h (enum libfunc_index): Remove obsolete values.
1580 (abort_libfunc): Delete.
1581 (memcpy_libfunc): Likewise.
1582 (memmove_libfunc): Likewise.
1583 (memcmp_libfunc): Likewise.
1584 (memset_libfunc): Likewise.
1585 (setbits_libfunc): Likewise.
1586 (setjmp_libfunc): Likewise.
1587 (longjmp_libfunc): Likewise.
1588 (profile_function_entry_libfunc): Likewise.
1589 (profile_function_exit_libfunc): Likewise.
1590 (gcov_flush_libfunc): Likewise.
1591 * optabs-libfuncs.c (build_libfunc_function): Set DECL_ARTIFICIAL
1592 and DECL_VISIBILITY on the declaration.
1593 (init_optabs): Do not initialize obsolete libfuncs.
1594 * optabs.c (prepare_cmp_insn): Call emit_block_comp_via_libcall.
1595 * tree-core.h (ECF_RET1): Define.
1596 (ECF_TM_PURE): Adjust.
1597 (ECF_TM_BUILTIN): Likewise.
1598 * tree.c (set_call_expr_flags): Deal with ECF_RET1.
1599 (build_common_builtin_nodes): Initialize abort builtin.
1600 Add ECF_RET1 on memcpy, memmove and memset builtins.
1601 Pass final flags for alloca and alloca_with_align builtins.
1602 * config/alpha/alpha.c (alpha_init_libfuncs): Do not initialize
1603 obsolete builtins.
1604 * config/ia64/ia64.c (ia64_vms_init_libfuncs): Likewise.
1605 * config/i386/i386.c (ix86_expand_set_or_movmem): Adjust call to
1606 set_storage_via_libcall and call emit_block_copy_via_libcall.
1607
1608 2016-05-12 Uros Bizjak <ubizjak@gmail.com>
1609
1610 * config/i386/i386.md (*call_got_x32): Change operand 0 to
1611 DImode before it is passed to ix86_output_call_operand.
1612 (*call_value_got_x32): Ditto for operand 1.
1613
1614 2016-05-12 Jiong Wang <jiong.wang@arm.com>
1615
1616 PR rtl-optimization/70904
1617 * lra-constraint.c (process_addr_reg): Relax the restriction on subreg
1618 reload for wide mode.
1619
1620 2016-05-12 Marek Polacek <polacek@redhat.com>
1621
1622 PR c/70756
1623 * langhooks-def.h (lhd_incomplete_type_error): Adjust declaration.
1624 * langhooks.c (lhd_incomplete_type_error): Add location parameter.
1625 * langhooks.h (incomplete_type_error): Likewise.
1626 * tree.c (size_in_bytes_loc): Renamed from size_in_bytes. Add location
1627 parameter, pass it down to incomplete_type_error.
1628 * tree.h (size_in_bytes): New inline overload.
1629 (size_in_bytes_loc): Renamed from size_in_bytes.
1630
1631 2016-05-12 Richard Biener <rguenther@suse.de>
1632
1633 PR tree-optimization/71059
1634 * tree-ssa-pre.c (phi_translate_1): Fully fold translated
1635 nary before looking up or entering the expression into the VN
1636 hashes.
1637 * tree-ssa-sccvn.c (vn_nary_build_or_lookup): Fix comment typo.
1638 Make sure to re-use NARYs without result as inserted by
1639 phi-translation.
1640
1641 2016-05-12 Richard Biener <rguenther@suse.de>
1642
1643 PR tree-optimization/71062
1644 * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
1645 field.
1646 * tree-ssa-structalias.c (set_uids_in_ptset): Set
1647 vars_contains_restrict if the var is a restrict tag.
1648 * tree-ssa-alias.c (ptrs_compare_unequal): If vars_contains_restrict
1649 do not disambiguate pointers against it.
1650 (dump_points_to_solution): Re-structure and adjust for new
1651 vars_contains_restrict flag.
1652 * gimple-pretty-print.c (pp_points_to_solution): Likewise.
1653
1654 2016-05-12 Martin Liska <mliska@suse.cz>
1655
1656 * doc/invoke.texi: Explain connection between
1657 -fsanitize-recover=address and ASAN_OPTIONS="halt_on_error=1".
1658
1659 2016-05-12 Ilya Enkovich <ilya.enkovich@intel.com>
1660
1661 PR tree-optimization/71006
1662 * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
1663 consider COND_EXPR as a mask producer.
1664
1665 2016-05-12 Marek Polacek <polacek@redhat.com>
1666
1667 PR driver/71063
1668 * opts.c (common_handle_option): Detect missing argument for --help^.
1669
1670 2016-05-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1671
1672 PR target/70830
1673 * config/arm/arm.c (arm_output_multireg_pop): Avoid POP instruction
1674 when popping the PC and within an interrupt handler routine.
1675 Add missing tab to output of "ldmfd".
1676 (output_return_instruction): Output LDMFD with SP update rather
1677 than POP when returning from interrupt handler.
1678
1679 2016-05-12 Jakub Jelinek <jakub@redhat.com>
1680
1681 * config/i386/i386.md (isa): Add x64_avx512dq, enable if
1682 TARGET_64BIT && TARGET_AVX512DQ.
1683 * config/i386/sse.md (*vec_extract<mode>): Add avx512bw alternatives.
1684 (*vec_extract<PEXTR_MODE12:mode>_zext): Add avx512bw alternative.
1685 (*vec_extract<ssevecmodelower>_0, *vec_extractv4si_0_zext,
1686 *vec_extractv2di_0_sse): Use v constraint instead of x constraint.
1687 (*vec_extractv4si): Add avx512dq and avx512bw alternatives.
1688 (*vec_extractv4si_zext): Add avx512dq alternative.
1689 (*vec_extractv2di_1): Add x64_avx512dq and avx512bw alternatives,
1690 use v instead of x constraint in other alternatives where possible.
1691
1692 * config/i386/sse.md (sse2_loadld): Use v instead of x
1693 constraint in alternatives 0,1,4.
1694
1695 * config/i386/sse.md (pinsr_evex_isa): New mode attr.
1696 (<sse2p4_1>_pinsr<ssemodesuffix>): Add 2 alternatives with
1697 v constraints instead of x and <pinsr_evex_isa> isa attribute.
1698
1699 PR target/71019
1700 * config/i386/sse.md (<sse2_avx2>_packssdw<mask_name>,
1701 <sse4_1_avx2>_packusdw<mask_name>): Make sure EVEX encoded insn
1702 is not emitted unless TARGET_AVX512BW.
1703 (<sse2_avx2>_packuswb<mask_name>, <sse2_avx2>_packsswb<mask_name>):
1704 Likewise. For TARGET_AVX512BW, use "=v" constraint instead of "=x"
1705 for the result operand.
1706
1707 * config/i386/sse.md (*vec_setv4sf_sse4_1, sse4_1_insertps): Use v
1708 constraint instead of x in avx alternatives. Use maybe_evex instead
1709 of vex prefix.
1710
1711 * config/i386/constraints.md (Yv): New constraint.
1712 * config/i386/i386.h (VALID_AVX512VL_128_REG_MODE): Allow
1713 TFmode and V1TImode in xmm16+ registers for TARGET_AVX512VL.
1714 * config/i386/i386.md (avx512fvecmode): New mode attr.
1715 (*pushtf): Use v constraint instead of x.
1716 (*movtf_internal): Likewise. For TARGET_AVX512VL and
1717 xmm16+ registers, use vmovdqu64 or vmovdqa64 instructions.
1718 (*absneg<mode>2): Use Yv constraint instead of x constraint.
1719 (*absnegtf2_sse): Likewise.
1720 (copysign<mode>3_const, copysign<mode>3_var): Likewise.
1721 * config/i386/sse.md (*andnot<mode>3): Add avx512vl and
1722 avx512f alternatives.
1723 (*andnottf3, *<code><mode>3, *<code>tf3): Likewise.
1724
1725 2016-05-12 Richard Biener <rguenther@suse.de>
1726
1727 PR tree-optimization/71060
1728 * tree-data-ref.c (initialize_data_dependence_relation): Do not
1729 require exact match of DR_BASE_OBJECT but only matching address and
1730 type.
1731
1732 2016-05-12 Richard Biener <rguenther@suse.de>
1733
1734 PR tree-optimization/70986
1735 * cfganal.c: Include cfgloop.h.
1736 (dfs_find_deadend): Prefer to take edges exiting loops.
1737
1738 2016-05-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1739
1740 * gcc.target/powerpc/pr70963.c: Require at least power8 at both
1741 compile and run time.
1742
1743 2016-05-11 Mikhail Maltsev <maltsevm@gmail.com>
1744
1745 PR c/43651
1746 * doc/invoke.texi (Wduplicate-decl-specifier): Document new option.
1747
1748 2016-05-11 Uros Bizjak <ubizjak@gmail.com>
1749
1750 * config/i386/i386.c (legitimize_pic_address): Use
1751 copy_to_suggested_reg instead of gen_movsi.
1752
1753 2016-05-11 Michael Meissner <meissner@linux.vnet.ibm.com>
1754
1755 * config/rs6000/predicates.md (quad_memory_operand): Move most of
1756 the code into quad_address_p and call it to share code with
1757 vsx_quad_dform_memory_operand.
1758 (vsx_quad_dform_memory_operand): New predicate for ISA 3.0 vector
1759 d-form support.
1760 * config/rs6000/rs6000.opt (-mlra): Switch to being an option mask
1761 bit instead of being a separate word. Split -mpower9-dform into
1762 two switches, -mpower9-dform-scalar and -mpower9-dform-vector.
1763 * config/rs6000/rs6000.c (RELOAD_REG_QUAD_OFFSET): New addr_mask
1764 for the register class supporting 128-bit quad word memory offsets.
1765 (mode_supports_vsx_dform_quad): Helper function to return if the
1766 register class uses quad word memory offsets.
1767 (rs6000_debug_addr_mask): Add support for quad word memory offsets.
1768 (rs6000_debug_reg_global): Always print if we are using LRA or not.
1769 (rs6000_setup_reg_addr_masks): If ISA 3.0 vector d-form
1770 instructions are enabled, set up the appropriate addr_masks for
1771 128-bit types.
1772 (rs6000_init_hard_regno_mode_ok): wb constraint is now based on
1773 -mpower9-dform-scalar, instead of -mpower9-dform.
1774 (rs6000_option_override_internal): Split -mpower9-dform into two
1775 switches, -mpower9-dform-scalar and -mpower9-dform-vector. The
1776 -mpower9-dform switch sets or clears both. If we are not using
1777 the LRA register allocator, do not enable -mpower9-dform-vector by
1778 default. If we are using LRA, enable -mpower9-dform-vector and
1779 -mvsx-timode if it is appropriate. Issue a warning if either
1780 -mpower9-dform-vector or -mvsx-timode are explicitly used without
1781 enabling LRA.
1782 (quad_address_offset_p): New helper function to return if the
1783 offset is legal for quad word memory instructions.
1784 (quad_address_p): New function to determin if GPR or vector
1785 register quad word memory addresses are legal.
1786 (mem_operand_gpr): Validate quad word address offsets.
1787 (reg_offset_addressing_ok_p): Add support for ISA 3.0 vector
1788 d-form (register + offset) instructions.
1789 (offsettable_ok_by_alignment): Likewise.
1790 (rs6000_legitimate_offset_address_p): Likewise.
1791 (legitimate_lo_sum_address_p): Likewise.
1792 (rs6000_legitimize_address): Likewise.
1793 (rs6000_legitimize_reload_address): Add more debug statements for
1794 -mdebug=addr.
1795 (rs6000_legitimate_address_p): Add support for ISA 3.0 vector
1796 d-form instructions.
1797 (rs6000_secondary_reload_memory): Add support for ISA 3.0 vector
1798 d-form instructions. Distinguish different cases in debug
1799 output. (rs6000_secondary_reload_inner): Add support for ISA 3.0 vector
1800 d-form instructions.
1801 (rs6000_preferred_reload_class): Likewise.
1802 (rs6000_output_move_128bit): Add support for ISA 3.0 d-form
1803 instructions. If ISA 3.0 is available, generate lxvx/stxvx instead
1804 of the ISA 2.06 indexed memory instructions.
1805 (rs6000_emit_prologue): If we have ISA 3.0 d-form instructions,
1806 use them to save/restore the saved vector registers instead of
1807 using Altivec instructions.
1808 (rs6000_emit_epilogue): Likewise.
1809 (rs6000_lra_p): Use TARGET_LRA instead of the old option word.
1810 (rs6000_opt_masks): Split -mpower9-dform into
1811 -mpower9-dform-scalar and -mpower9-dform-vector.
1812 (rs6000_print_options_internal): Print -mno-<switch> if <switch>
1813 was not selected.
1814 * config/rs6000/vsx.md (p9_vecload_<mode>): Delete hack to emit
1815 ISA 3.0 vector indexed memory instructions, and fold the code into
1816 the normal mov<mode> patterns.
1817 (p9_vecstore_<mode>): Likewise.
1818 (vsx_mov<mode>): Add support for ISA 3.0 vector d-form
1819 instructions.
1820 (vsx_movti_64bit): Likewise.
1821 (vsx_movti_32bit): Likewise.
1822 * config/rs6000/constraints.md (wO constraint): New constraint for
1823 ISA 3.0 vector d-form support.
1824 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Use
1825 -mpower9-dform-scalar instead of -mpower9-dform. Add note not to
1826 include -mpower9-dform-vector until we switch over to LRA.
1827 (POWERPC_MASKS): Add -mlra. Split -mpower9-dform into two.
1828 switches, -mpower9-dform-scalar and -mpower9-dform-vector.
1829 * config/rs6000/rs6000-protos.h (quad_address_p): Add declaration.
1830 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
1831 for -mpower9-dform and -mlra.
1832 * doc/md.texi (wO constraint): Document wO constraint.
1833
1834 2016-05-11 Alexander Monakov <amonakov@ispras.ru>
1835
1836 * genattr.c (main): Change 'rtx' to 'rtx_insn *' in prototypes of
1837 'insn_latency', 'maximal_insn_latency', 'min_insn_conflict_delay'.
1838 * genautomata.c (output_internal_insn_code_evaluation): Simplify.
1839 Move handling of non-insn arguments inline into the sole user:
1840 (output_trans_func): ...here.
1841 (output_min_insn_conflict_delay_func): Change 'rtx' to 'rtx_insn *'
1842 in emitted function prototype.
1843 (output_internal_insn_latency_func): Ditto. Simplify.
1844 (output_internal_maximal_insn_latency_func): Ditto. Delete
1845 always-unused argument.
1846 (output_insn_latency_func): Ditto.
1847 (output_maximal_insn_latency_func): Ditto.
1848
1849 2016-05-11 Richard Biener <rguenther@suse.de>
1850
1851 PR tree-optimization/71055
1852 * tree-ssa-sccvn.c (vn_reference_lookup_3): When native-interpreting
1853 sth with precision not equal to access size verify we don't chop
1854 off bits.
1855
1856 2016-05-11 Richard Biener <rguenther@suse.de>
1857
1858 PR debug/71057
1859 * dwarf2out.c (retry_incomplete_types): Set early_dwarf.
1860 (dwarf2out_finish): Move retry_incomplete_types call ...
1861 (dwarf2out_early_finish): ... here.
1862
1863 2016-05-11 Richard Biener <rguenther@suse.de>
1864
1865 PR middle-end/71002
1866 * alias.c (reference_alias_ptr_type): Preserve alias-set zero
1867 if the langhook insists on it.
1868 * fold-const.c (make_bit_field_ref): Add arg for the original
1869 reference and preserve its alias-set.
1870 (decode_field_reference): Take exp by reference and adjust it
1871 to the original memory reference.
1872 (optimize_bit_field_compare): Adjust callers.
1873 (fold_truth_andor_1): Likewise.
1874 * gimplify.c (gimplify_expr): Adjust in-SSA form test.
1875
1876 2016-05-11 Ilya Enkovich <ilya.enkovich@intel.com>
1877
1878 PR middle-end/70807
1879 * cfgrtl.h (delete_insn_and_edges): Now return bool.
1880 * cfgrtl.c (delete_insn_and_edges): Likewise.
1881 * config/i386/i386.c (convert_scalars_to_vector): Remove
1882 redundant code.
1883 * cse.c (cse_insn): Compute cse_cfg_altered.
1884 (delete_trivially_dead_insns): Likewise.
1885 (cse_cc_succs): Likewise.
1886 (rest_of_handle_cse): Free dominance info if required.
1887 (rest_of_handle_cse2): Likewise.
1888 (rest_of_handle_cse_after_global_opts): Likewise.
1889
1890 2016-05-11 Alan Modra <amodra@gmail.com>
1891
1892 * config/rs6000/rs6000.c (is_complex_IBM_long_double,
1893 abi_v4_pass_in_fpr): New functions.
1894 (rs6000_function_arg_boundary): Exclude complex IBM long double
1895 from 64-bit alignment when ABI_V4.
1896 (rs6000_function_arg, rs6000_function_arg_advance_1,
1897 rs6000_gimplify_va_arg): Use abi_v4_pass_in_fpr.
1898
1899 2016-05-10 Segher Boessenkool <segher@kernel.crashing.org>
1900
1901 PR rtl-optimization/71028
1902 * cfgcleanup.c (try_optimize_cfg): Do not flip a conditional
1903 jump with just a return in the fallthrough block if the branch
1904 block contains just a return as well.
1905
1906 2016-05-10 Marc Glisse <marc.glisse@inria.fr>
1907
1908 * fold-const.c (fold_binary_loc) [(X ^ Y) & Y]: Remove and merge with...
1909 * match.pd ((X & Y) ^ Y): ... this.
1910 ((X & Y) & Y, (X | Y) | Y, (X ^ Y) ^ Y, (X & Y) & (X & Z), (X | Y)
1911 | (X | Z), (X ^ Y) ^ (X ^ Z)): New transformations.
1912
1913 2016-05-10 David Malcolm <dmalcolm@redhat.com>
1914
1915 * read-md.c (require_char_ws): New function.
1916 (read_string): Simplify using require_char_ws.
1917 (handle_constants): Likewise.
1918 (handle_enum): Likewise.
1919 (handle_file): Likewise.
1920 * read-md.h (require_char_ws): New declaration.
1921 * read-rtl.c (read_conditions): Simplify using require_char_ws.
1922 (read_mapping): Likewise.
1923 (read_rtx_code): Likewise.
1924 (read_nested_rtx): Likewise.
1925
1926 2016-05-10 James Norris <jnorris@codesourcery.com>
1927
1928 * config/rs6000/sysv4.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o
1929 if offloading is enabled and -fopenacc or -fopenmp is specified.
1930 (CRTOFFLOADEND): Likewise.
1931 (STARTFILE_LINUX_SPEC): Add CRTOFFLOADBEGIN.
1932 (ENDFILE_LINUX_SPEC): Add CRTOFFLOADEND.
1933
1934 2016-05-10 Uros Bizjak <ubizjak@gmail.com>
1935
1936 * config/i386/i386.c (legitimize_pic_address): Merge 64-bit and 32-bit
1937 gotoff_operand code paths. Use copy_to_suggested_regs and
1938 expand_simple_binop where appropriate. Cleanup.
1939
1940 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
1941
1942 PR target/70799
1943 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Allow
1944 integer constants.
1945 (dimode_scalar_chain::vector_const_cost): New.
1946 (dimode_scalar_chain::compute_convert_gain): Handle constants.
1947 (dimode_scalar_chain::convert_op): Likewise.
1948 (dimode_scalar_chain::convert_insn): Likewise.
1949
1950 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com>
1951
1952 * dwarf2out.c (resolve_args_picking_1): Consider DW_OP_neg as an
1953 unary operation, not a binary one.
1954
1955 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
1956
1957 PR middle-end/70877
1958 * tree-chkp.c (chkp_add_bounds_to_call_stmt): Handle
1959 calls with type casted fndecl.
1960
1961 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
1962
1963 PR tree-optimization/70786
1964 * tree-chkp.c (chkp_find_bounds_1): Support WITH_SIZE_EXPR.
1965 * calls.c (initialize_argument_information): Bind bounds
1966 with corresponding args passed by reference.
1967
1968 2016-05-10 Jakub Jelinek <jakub@redhat.com>
1969
1970 PR target/70927
1971 * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>),
1972 *<code><mode>3<mask_name>): For !TARGET_AVX512DQ and EVEX encoding,
1973 use vp*[dq] instead of v*p[sd] instructions and adjust mode attribute
1974 accordingly.
1975
1976 2016-05-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1977
1978 PR target/70963
1979 * config/rs6000/vsx.md (vsx_xvcvdpsxds_scale): Generate correct
1980 code for a zero scale factor.
1981 (vsx_xvcvdpuxds_scale): Likewise.
1982
1983 2016-05-10 David Malcolm <dmalcolm@redhat.com>
1984
1985 * diagnostic-show-locus.c (layout::layout): Call show_ruler
1986 if show_ruler_p was set on the context.
1987 (layout::show_ruler): New method.
1988 * diagnostic.h (struct diagnostic_context): Add field
1989 "show_ruler_p".
1990
1991 2016-05-10 Richard Biener <rguenther@suse.de>
1992
1993 PR tree-optimization/71039
1994 * tree-ssa-phiprop.c: Include tree-ssa-loop.h.
1995 (chk_uses): New function.
1996 (propagate_with_phi): Verify we can safely replicate the lhs of an
1997 aggregate assignment on all incoming edges.
1998
1999 2016-05-10 Oleg Endo <olegendo@gcc.gnu.org>
2000
2001 * config/rx/rx-protos.h (is_interrupt_func, is_fast_interrupt_func):
2002 Forward declare.
2003 (rx_atomic_sequence): New class.
2004 * config/rx/rx.c (rx_print_operand): Use symbolic names for PSW bits.
2005 (is_interrupt_func, is_fast_interrupt_func): Make non-static and
2006 non-inline.
2007 (rx_atomic_sequence::rx_atomic_sequence,
2008 rx_atomic_sequence::~rx_atomic_sequence): New functions.
2009 * config/rx/rx.md (CTRLREG_PSW, CTRLREG_USP, CTRLREG_FPSW, CTRLREG_CPEN,
2010 CTRLREG_BPSW, CTRLREG_BPC, CTRLREG_ISP, CTRLREG_FINTV,
2011 CTRLREG_INTB): New constants.
2012 (FETCHOP): New code iterator.
2013 (fethcop_name, fetchop_name2): New iterator code attributes.
2014 (QIHI): New mode iterator.
2015 (atomic_exchange<mode>, atomic_exchangesi, xchg_mem<mode>,
2016 atomic_fetch_<fetchop_name>si, atomic_fetch_nandsi,
2017 atomic_<fetchop_name>_fetchsi, atomic_nand_fetchsi): New patterns.
2018
2019 2016-05-10 Martin Liska <mliska@suse.cz>
2020
2021 * tree-inline.c (remap_dependence_clique): Do not remap
2022 debugging statements.
2023
2024 2016-05-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2025
2026 * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly")
2027 ("*fixuns_truncdfdi2_z13")
2028 ("*fixuns_trunc<FP:mode><GPR:mode>2_z196")
2029 ("*fix_truncdfdi2_bfp_z13", "*floatunsdidf2_z13")
2030 ("*extendsfdf2_z13"): Replace TARGET_Z13 with TARGET_VX.
2031
2032 2016-05-10 Richard Biener <rguenther@suse.de>
2033
2034 PR tree-optimization/70497
2035 PR tree-optimization/28367
2036 * tree-ssa-sccvn.c (vn_nary_build_or_lookup): New function
2037 split out from ...
2038 (visit_reference_op_load): ... here.
2039 (vn_reference_lookup_3): Use it to handle subreg-like accesses
2040 with simplified BIT_FIELD_REFs.
2041 * tree-ssa-pre.c (eliminate_insert): Handle inserting BIT_FIELD_REFs.
2042 * tree-complex.c (extract_component): Handle BIT_FIELD_REFs
2043 correctly.
2044
2045 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com>
2046
2047 * dwarf2out.c (add_abstract_origin_attribute): Adjust
2048 documentation comment. For BLOCK nodes, add a
2049 DW_AT_abstract_origin attribute that points to the DIE generated
2050 for the origin BLOCK.
2051 (gen_lexical_block_die): Call add_abstract_origin_attribute for
2052 blocks from inlined functions.
2053
2054 2016-05-10 Alan Modra <amodra@gmail.com>
2055
2056 PR target/70947
2057 * config/rs6000/rs6000.c (rs6000_expand_split_stack_prologue): Stop
2058 regrename modifying insns saving lr before __morestack call.
2059 * config/rs6000/rs6000.md (split_stack_return): Similarly for
2060 insns restoring lr after __morestack call.
2061
2062 2016-05-09 Jakub Jelinek <jakub@redhat.com>
2063
2064 * config/i386/i386.md (set_got, set_got_labelled, lwp_llwpcb,
2065 lwp_lwpval<mode>3, lwp_lwpins<mode>3): Remove constraints from
2066 expanders.
2067 * config/i386/sse.md (vec_interleave_high<mode>,
2068 vec_interleave_low<mode>, <avx512>_vpermi2var<mode>3_maskz,
2069 <avx512>_vpermt2var<mode>3_maskz): Likewise.
2070
2071 2016-05-04 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
2072
2073 * config/rs6000/rs6000.c (rs6000_reassociation_width): Add
2074 function for TARGET_SCHED_REASSOCIATION_WIDTH to enable
2075 parallel reassociation for power8 and forward.
2076
2077 2016-05-09 Uros Bizjak <ubizjak@gmail.com>
2078
2079 * config/i386/i386.md (absneg splitters with general regs): Use
2080 general_reg_operand predicate.
2081 (btsq peephole2): Use x86_64_immediate_operand to check if new
2082 value is suitable for immediate operand. Generate emitted insn
2083 using RTL expressions.
2084 (btcq peephole2): Ditto.
2085 (btrq peephole2): Ditto. Generate correct immediate operand
2086 for AND masking.
2087
2088 2016-05-09 Richard Sandiford <richard.sandiford@arm.com>
2089
2090 * cfgexpand.c (expand_debug_expr): Fix address offset for negative
2091 bitpos.
2092
2093 2016-05-09 Richard Sandiford <richard.sandiford@arm.com>
2094
2095 * tree-affine.c (wide_int_constant_multiple_p): Add missing
2096 pointer dereference.
2097
2098 2016-05-09 Richard Biener <rguenther@suse.de>
2099
2100 PR tree-optimization/70985
2101 * match.pd (BIT_FIELD_REF -> (type)): Disable on GIMPLE when
2102 op0 isn't a gimple register.
2103
2104 2016-05-09 Prachi Godbole <prachi.godbole@imgtec.com>
2105
2106 * config/mips/i6400.md (i6400_fpu_intadd, i6400_fpu_logic)
2107 (i6400_fpu_div, i6400_fpu_cmp, i6400_fpu_float, i6400_fpu_store)
2108 (i6400_fpu_long_pipe, i6400_fpu_logic_l, i6400_fpu_float_l)
2109 (i6400_fpu_mult): New cpu units.
2110 (i6400_msa_add_d, i6400_msa_int_add, i6400_msa_short_logic3)
2111 (i6400_msa_short_logic2, i6400_msa_short_logic, i6400_msa_move)
2112 (i6400_msa_cmp, i6400_msa_short_float2, i6400_msa_div_d)
2113 (i6400_msa_div_w, i6400_msa_div_h, i6400_msa_div_b)
2114 (i6400_msa_copy, i6400_msa_branch, i6400_fpu_msa_store)
2115 (i6400_fpu_msa_load, i6400_fpu_msa_move, i6400_msa_long_logic1)
2116 (i6400_msa_long_logic2, i6400_msa_mult, i6400_msa_long_float2)
2117 (i6400_msa_long_float4, i6400_msa_long_float5)
2118 (i6400_msa_long_float8, i6400_msa_fdiv_df)
2119 (i6400_msa_fdiv_sf): New reservations.
2120 * config/mips/p5600.md (p5600_fpu_intadd, p5600_fpu_cmp)
2121 (p5600_fpu_float, p5600_fpu_logic_a, p5600_fpu_logic_b)
2122 (p5600_fpu_div, p5600_fpu_logic, p5600_fpu_float_a)
2123 (p5600_fpu_float_b, p5600_fpu_float_c, p5600_fpu_float_d)
2124 (p5600_fpu_mult, p5600_fpu_fdiv, p5600_fpu_load): New cpu units.
2125 (msa_short_int_add, msa_short_logic, msa_short_logic_move_v)
2126 (msa_short_cmp, msa_short_float2, msa_short_logic3)
2127 (msa_short_store4, msa_long_load, msa_short_store)
2128 (msa_long_logic, msa_long_float2, msa_long_float4)
2129 (msa_long_float5, msa_long_float8, msa_long_mult)
2130 (msa_long_fdiv, msa_long_div): New reservations.
2131
2132 2016-05-09 Robert Suchanek <robert.suchanek@imgtec.com>
2133 Sameera Deshpande <sameera.deshpande@imgtec.com>
2134 Matthew Fortune <matthew.fortune@imgtec.com>
2135 Graham Stott <graham.stott@imgtec.com>
2136 Chao-ying Fu <chao-ying.fu@imgtec.com>
2137
2138 * config.gcc: Add MSA header file for mips*-*-* target.
2139 * config/mips/constraints.md (YI, YC, YZ, Unv5, Uuv5, Usv5, Uuv6)
2140 (Ubv8i, Urv8): New constraints.
2141 * config/mips/mips-ftypes.def: Add function types for MSA
2142 builtins.
2143 * config/mips/mips-modes.def (V16QI, V8HI, V4SI, V2DI, V4SF)
2144 (V2DF, V32QI, V16HI, V8SI, V4DI, V8SF, V4DF): New modes.
2145 * config/mips/mips-msa.md: New file.
2146 * config/mips/mips-protos.h
2147 (mips_split_128bit_const_insns): New prototype.
2148 (mips_msa_idiv_insns): Likewise.
2149 (mips_split_128bit_move): Likewise.
2150 (mips_split_128bit_move_p): Likewise.
2151 (mips_split_msa_copy_d): Likewise.
2152 (mips_split_msa_insert_d): Likewise.
2153 (mips_split_msa_fill_d): Likewise.
2154 (mips_expand_msa_branch): Likewise.
2155 (mips_const_vector_same_val_p): Likewise.
2156 (mips_const_vector_same_bytes_p): Likewise.
2157 (mips_const_vector_same_int_p): Likewise.
2158 (mips_const_vector_shuffle_set_p): Likewise.
2159 (mips_const_vector_bitimm_set_p): Likewise.
2160 (mips_const_vector_bitimm_clr_p): Likewise.
2161 (mips_msa_vec_parallel_const_half): Likewise.
2162 (mips_msa_output_division): Likewise.
2163 (mips_ldst_scaled_shift): Likewise.
2164 (mips_expand_vec_cond_expr): Likewise.
2165 * config/mips/mips.c (enum mips_builtin_type): Add
2166 MIPS_BUILTIN_MSA_TEST_BRANCH.
2167 (mips_gen_const_int_vector_shuffle): New prototype.
2168 (mips_const_vector_bitimm_set_p): New function.
2169 (mips_const_vector_bitimm_clr_p): Likewise.
2170 (mips_const_vector_same_val_p): Likewise.
2171 (mips_const_vector_same_bytes_p): Likewise.
2172 (mips_const_vector_same_int_p): Likewise.
2173 (mips_const_vector_shuffle_set_p): Likewise.
2174 (mips_symbol_insns): Forbid loading symbols via immediate for
2175 MSA.
2176 (mips_valid_offset_p): Limit offset to 10-bit for MSA loads and
2177 stores.
2178 (mips_valid_lo_sum_p): Forbid loadings symbols via %lo(base) for
2179 MSA.
2180 (mips_lx_address_p): Add support load indexed address for MSA.
2181 (mips_address_insns): Add calculation of instructions needed for
2182 stores and loads for MSA.
2183 (mips_const_insns): Move CONST_DOUBLE below CONST_VECTOR. Handle
2184 CONST_VECTOR for MSA and let it fall through.
2185 (mips_ldst_scaled_shift): New function.
2186 (mips_subword_at_byte): Likewise.
2187 (mips_msa_idiv_insns): Likewise.
2188 (mips_legitimize_move): Validate MSA moves.
2189 (mips_rtx_costs): Add UNGE, UNGT, UNLE, UNLT cases. Add
2190 calculation of costs for MSA division.
2191 (mips_split_move_p): Check if MSA moves need splitting.
2192 (mips_split_move): Split MSA moves if necessary.
2193 (mips_split_128bit_move_p): New function.
2194 (mips_split_128bit_move): Likewise.
2195 (mips_split_msa_copy_d): Likewise.
2196 (mips_split_msa_insert_d): Likewise.
2197 (mips_split_msa_fill_d): Likewise.
2198 (mips_output_move): Handle MSA moves.
2199 (mips_expand_msa_branch): New function.
2200 (mips_print_operand): Add 'E', 'B', 'w', 'v' and 'V' modifiers.
2201 Reinstate 'y' modifier.
2202 (mips_file_start): Add MSA .gnu_attribute.
2203 (mips_hard_regno_mode_ok_p): Allow TImode and 128-bit vectors in
2204 FPRs.
2205 (mips_hard_regno_nregs): Always return 1 for MSA supported mode.
2206 (mips_class_max_nregs): Add register size for MSA supported mode.
2207 (mips_cannot_change_mode_class): Allow conversion between MSA
2208 vector modes and TImode.
2209 (mips_mode_ok_for_mov_fmt_p): Allow MSA to use move.v
2210 instruction.
2211 (mips_secondary_reload_class): Force MSA loads/stores via memory.
2212 (mips_preferred_simd_mode): Add preffered modes for MSA.
2213 (mips_vector_mode_supported_p): Add MSA supported modes.
2214 (mips_autovectorize_vector_sizes): New function.
2215 (mips_msa_output_division): Likewise.
2216 (MSA_BUILTIN, MIPS_BUILTIN_DIRECT_NO_TARGET)
2217 (MSA_NO_TARGET_BUILTIN, MSA_BUILTIN_TEST_BRANCH): New macros.
2218 (CODE_FOR_msa_adds_s_b, CODE_FOR_msa_adds_s_h)
2219 (CODE_FOR_msa_adds_s_w, CODE_FOR_msa_adds_s_d)
2220 (CODE_FOR_msa_adds_u_b, CODE_FOR_msa_adds_u_h)
2221 (CODE_FOR_msa_adds_u_w, CODE_FOR_msa_adds_u_du
2222 (CODE_FOR_msa_addv_b, CODE_FOR_msa_addv_h, CODE_FOR_msa_addv_w)
2223 (CODE_FOR_msa_addv_d, CODE_FOR_msa_and_v, CODE_FOR_msa_bmnz_v)
2224 (CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bmz_v, CODE_FOR_msa_bmzi_b)
2225 (CODE_FOR_msa_bnz_v, CODE_FOR_msa_bz_v, CODE_FOR_msa_bsel_v)
2226 (CODE_FOR_msa_bseli_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w)
2227 (CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b)
2228 (CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w)
2229 (CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clti_u_b)
2230 (CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w)
2231 (CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_s_b)
2232 (CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w)
2233 (CODE_FOR_msa_clei_s_d, CODE_FOR_msa_clei_u_b)
2234 (CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w)
2235 (CODE_FOR_msa_clei_u_d, CODE_FOR_msa_div_s_b)
2236 (CODE_FOR_msa_div_s_h, CODE_FOR_msa_div_s_w)
2237 (CODE_FOR_msa_div_s_d, CODE_FOR_msa_div_u_b)
2238 (CODE_FOR_msa_div_u_h, CODE_FOR_msa_div_u_w)
2239 (CODE_FOR_msa_div_u_d, CODE_FOR_msa_fadd_w, CODE_FOR_msa_fadd_d)
2240 (CODE_FOR_msa_fexdo_w, CODE_FOR_msa_ftrunc_s_w)
2241 (CODE_FOR_msa_ftrunc_s_d, CODE_FOR_msa_ftrunc_u_w)
2242 (CODE_FOR_msa_ftrunc_u_d, CODE_FOR_msa_ffint_s_w)
2243 (CODE_FOR_msa_ffint_s_d, CODE_FOR_msa_ffint_u_w)
2244 (CODE_FOR_msa_ffint_u_d, CODE_FOR_msa_fsub_w)
2245 (CODE_FOR_msa_fsub_d, CODE_FOR_msa_fmsub_d, CODE_FOR_msa_fmadd_w)
2246 (CODE_FOR_msa_fmadd_d, CODE_FOR_msa_fmsub_w, CODE_FOR_msa_fmul_w)
2247 (CODE_FOR_msa_fmul_d, CODE_FOR_msa_fdiv_w, CODE_FOR_msa_fdiv_d)
2248 (CODE_FOR_msa_fmax_w, CODE_FOR_msa_fmax_d, CODE_FOR_msa_fmax_a_w)
2249 (CODE_FOR_msa_fmax_a_d, CODE_FOR_msa_fmin_w, CODE_FOR_msa_fmin_d)
2250 (CODE_FOR_msa_fmin_a_w, CODE_FOR_msa_fmin_a_d)
2251 (CODE_FOR_msa_fsqrt_w, CODE_FOR_msa_fsqrt_d)
2252 (CODE_FOR_msa_max_s_b, CODE_FOR_msa_max_s_h)
2253 (CODE_FOR_msa_max_s_w, CODE_FOR_msa_max_s_d)
2254 (CODE_FOR_msa_max_u_b, CODE_FOR_msa_max_u_h)
2255 (CODE_FOR_msa_max_u_w, CODE_FOR_msa_max_u_d)
2256 (CODE_FOR_msa_min_s_b, CODE_FOR_msa_min_s_h)
2257 (CODE_FOR_msa_min_s_w, CODE_FOR_msa_min_s_d)
2258 (CODE_FOR_msa_min_u_b, CODE_FOR_msa_min_u_h)
2259 (CODE_FOR_msa_min_u_w, CODE_FOR_msa_min_u_d)
2260 (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
2261 (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
2262 (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
2263 (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
2264 (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
2265 (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
2266 (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
2267 (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
2268 (CODE_FOR_msa_mulv_b, CODE_FOR_msa_mulv_h, CODE_FOR_msa_mulv_w)
2269 (CODE_FOR_msa_mulv_d, CODE_FOR_msa_nlzc_b, CODE_FOR_msa_nlzc_h)
2270 (CODE_FOR_msa_nlzc_w, CODE_FOR_msa_nlzc_d, CODE_FOR_msa_nor_v)
2271 (CODE_FOR_msa_or_v, CODE_FOR_msa_ori_b, CODE_FOR_msa_nori_b)
2272 (CODE_FOR_msa_pcnt_b, CODE_FOR_msa_pcnt_h, CODE_FOR_msa_pcnt_w)
2273 (CODE_FOR_msa_pcnt_d, CODE_FOR_msa_xor_v, CODE_FOR_msa_xori_b)
2274 (CODE_FOR_msa_sll_b, CODE_FOR_msa_sll_h, CODE_FOR_msa_sll_w)
2275 (CODE_FOR_msa_sll_d, CODE_FOR_msa_slli_b, CODE_FOR_msa_slli_h)
2276 (CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d, CODE_FOR_msa_sra_b)
2277 (CODE_FOR_msa_sra_h, CODE_FOR_msa_sra_w, CODE_FOR_msa_sra_d)
2278 (CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w)
2279 (CODE_FOR_msa_srai_d, CODE_FOR_msa_srl_b, CODE_FOR_msa_srl_h)
2280 (CODE_FOR_msa_srl_w, CODE_FOR_msa_srl_d, CODE_FOR_msa_srli_b)
2281 (CODE_FOR_msa_srli_h, CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d)
2282 (CODE_FOR_msa_subv_b, CODE_FOR_msa_subv_h, CODE_FOR_msa_subv_w)
2283 (CODE_FOR_msa_subv_d, CODE_FOR_msa_subvi_b, CODE_FOR_msa_subvi_h)
2284 (CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d, CODE_FOR_msa_move_v)
2285 (CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h, CODE_FOR_msa_vshf_w)
2286 (CODE_FOR_msa_vshf_d, CODE_FOR_msa_ilvod_d, CODE_FOR_msa_ilvev_d)
2287 (CODE_FOR_msa_pckod_d, CODE_FOR_msa_pckdev_d, CODE_FOR_msa_ldi_b)
2288 (CODE_FOR_msa_ldi_hi, CODE_FOR_msa_ldi_w)
2289 (CODE_FOR_msa_ldi_d): New code_aliasing macros.
2290 (mips_builtins): Add MSA sll_b, sll_h, sll_w, sll_d, slli_b,
2291 slli_h, slli_w, slli_d, sra_b, sra_h, sra_w, sra_d, srai_b,
2292 srai_h, srai_w, srai_d, srar_b, srar_h, srar_w, srar_d, srari_b,
2293 srari_h, srari_w, srari_d, srl_b, srl_h, srl_w, srl_d, srli_b,
2294 srli_h, srli_w, srli_d, srlr_b, srlr_h, srlr_w, srlr_d, srlri_b,
2295 srlri_h, srlri_w, srlri_d, bclr_b, bclr_h, bclr_w, bclr_d,
2296 bclri_b, bclri_h, bclri_w, bclri_d, bset_b, bset_h, bset_w,
2297 bset_d, bseti_b, bseti_h, bseti_w, bseti_d, bneg_b, bneg_h,
2298 bneg_w, bneg_d, bnegi_b, bnegi_h, bnegi_w, bnegi_d, binsl_b,
2299 binsl_h, binsl_w, binsl_d, binsli_b, binsli_h, binsli_w,
2300 binsli_d, binsr_b, binsr_h, binsr_w, binsr_d, binsri_b, binsri_h,
2301 binsri_w, binsri_d, addv_b, addv_h, addv_w, addv_d, addvi_b,
2302 addvi_h, addvi_w, addvi_d, subv_b, subv_h, subv_w, subv_d,
2303 subvi_b, subvi_h, subvi_w, subvi_d, max_s_b, max_s_h, max_s_w,
2304 max_s_d, maxi_s_b, maxi_s_h, maxi_s_w, maxi_s_d, max_u_b,
2305 max_u_h, max_u_w, max_u_d, maxi_u_b, maxi_u_h, maxi_u_w,
2306 maxi_u_d, min_s_b, min_s_h, min_s_w, min_s_d, mini_s_b, mini_s_h,
2307 mini_s_w, mini_s_d, min_u_b, min_u_h, min_u_w, min_u_d, mini_u_b,
2308 mini_u_h, mini_u_w, mini_u_d, max_a_b, max_a_h, max_a_w, max_a_d,
2309 min_a_b, min_a_h, min_a_w, min_a_d, ceq_b, ceq_h, ceq_w, ceq_d,
2310 ceqi_b, ceqi_h, ceqi_w, ceqi_d, clt_s_b, clt_s_h, clt_s_w,
2311 clt_s_d, clti_s_b, clti_s_h, clti_s_w, clti_s_d, clt_u_b,
2312 clt_u_h, clt_u_w, clt_u_d, clti_u_b, clti_u_h, clti_u_w,
2313 clti_u_d, cle_s_b, cle_s_h, cle_s_w, cle_s_d, clei_s_b, clei_s_h,
2314 clei_s_w, clei_s_d, cle_u_b, cle_u_h, cle_u_w, cle_u_d, clei_u_b,
2315 clei_u_h, clei_u_w, clei_u_d, ld_b, ld_h, ld_w, ld_d, st_b, st_h,
2316 st_w, st_d, sat_s_b, sat_s_h, sat_s_w, sat_s_d, sat_u_b, sat_u_h,
2317 sat_u_w, sat_u_d, add_a_b, add_a_h, add_a_w, add_a_d, adds_a_b,
2318 adds_a_h, adds_a_w, adds_a_d, adds_s_b, adds_s_h, adds_s_w,
2319 adds_s_d, adds_u_b, adds_u_h, adds_u_w, adds_u_d, ave_s_b,
2320 ave_s_h, ave_s_w, ave_s_d, ave_u_b, ave_u_h, ave_u_w, ave_u_d,
2321 aver_s_b, aver_s_h, aver_s_w, aver_s_d, aver_u_b, aver_u_h,
2322 aver_u_w, aver_u_d, subs_s_b, subs_s_h, subs_s_w, subs_s_d,
2323 subs_u_b, subs_u_h, subs_u_w, subs_u_d, subsuu_s_b, subsuu_s_h,
2324 subsuu_s_w, subsuu_s_d, subsus_u_b, subsus_u_h, subsus_u_w,
2325 subsus_u_d, asub_s_b, asub_s_h, asub_s_w, asub_s_d, asub_u_b,
2326 asub_u_h, asub_u_w, asub_u_d, mulv_b, mulv_h, mulv_w, mulv_d,
2327 maddv_b, maddv_h, maddv_w, maddv_d, msubv_b, msubv_h, msubv_w,
2328 msubv_d, div_s_b, div_s_h, div_s_w, div_s_d, div_u_b, div_u_h,
2329 div_u_w, div_u_d, hadd_s_h, hadd_s_w, hadd_s_d, hadd_u_h,
2330 hadd_u_w, hadd_u_d, hsub_s_h, hsub_s_w, hsub_s_d, hsub_u_h,
2331 hsub_u_w, hsub_u_d, mod_s_b, mod_s_h, mod_s_w, mod_s_d, mod_u_b,
2332 mod_u_h, mod_u_w, mod_u_d, dotp_s_h, dotp_s_w, dotp_s_d,
2333 dotp_u_h, dotp_u_w, dotp_u_d, dpadd_s_h, dpadd_s_w, dpadd_s_d,
2334 dpadd_u_h, dpadd_u_w, dpadd_u_d, dpsub_s_h, dpsub_s_w, dpsub_s_d,
2335 dpsub_u_h, dpsub_u_w, dpsub_u_d, sld_b, sld_h, sld_w, sld_d,
2336 sldi_b, sldi_h, sldi_w, sldi_d, splat_b, splat_h, splat_w,
2337 splat_d, splati_b, splati_h, splati_w, splati_d, pckev_b,
2338 pckev_h, pckev_w, pckev_d, pckod_b, pckod_h, pckod_w, pckod_d,
2339 ilvl_b, ilvl_h, ilvl_w, ilvl_d, ilvr_b, ilvr_h, ilvr_w, ilvr_d,
2340 ilvev_b, ilvev_h, ilvev_w, ilvev_d, ilvod_b, ilvod_h, ilvod_w,
2341 ilvod_d, vshf_b, vshf_h, vshf_w, vshf_d, and_v, andi_b, or_v,
2342 ori_b, nor_v, nori_b, xor_v, xori_b, bmnz_v, bmnzi_b, bmz_v,
2343 bmzi_b, bsel_v, bseli_b, shf_b, shf_h, shf_w, bnz_v, bz_v,
2344 fill_b, fill_h, fill_w, fill_d, pcnt_b, pcnt_h, pcnt_w,
2345 pcnt_d, nloc_b, nloc_h, nloc_w, nloc_d, nlzc_b, nlzc_h, nlzc_w,
2346 nlzc_d, copy_s_b, copy_s_h, copy_s_w, copy_s_d, copy_u_b,
2347 copy_u_h, copy_u_w, copy_u_d, insert_b, insert_h, insert_w,
2348 insert_d, insve_b, insve_h, insve_w, insve_d, bnz_b, bnz_h,
2349 bnz_w, bnz_d, bz_b, bz_h, bz_w, bz_d, ldi_b, ldi_h, ldi_w, ldi_d,
2350 fcaf_w, fcaf_d, fcor_w, fcor_d, fcun_w, fcun_d, fcune_w, fcune_d,
2351 fcueq_w, fcueq_d, fceq_w, fceq_d, fcne_w, fcne_d, fclt_w, fclt_d,
2352 fcult_w, fcult_d, fcle_w, fcle_d, fcule_w, fcule_d, fsaf_w,
2353 fsaf_d, fsor_w, fsor_d, fsun_w, fsun_d, fsune_w, fsune_d,
2354 fsueq_w, fsueq_d, fseq_w, fseq_d, fsne_w, fsne_d, fslt_w,
2355 fslt_d, fsult_w, fsult_d, fsle_w, fsle_d, fsule_w, fsule_d,
2356 fadd_w, fadd_d, fsub_w, fsub_d, fmul_w, fmul_d, fdiv_w, fdiv_d,
2357 fmadd_w, fmadd_d, fmsub_w, fmsub_d, fexp2_w, fexp2_d, fexdo_h,
2358 fexdo_w, ftq_h, ftq_w, fmin_w, fmin_d, fmin_a_w, fmin_a_d,
2359 fmax_w, fmax_d, fmax_a_w, fmax_a_d, mul_q_h, mul_q_w, mulr_q_h,
2360 mulr_q_w, madd_q_h, madd_q_w, maddr_q_h, maddr_q_w, msub_q_h,
2361 msub_q_w, msubr_q_h, msubr_q_w, fclass_w, fclass_d, fsqrt_w,
2362 fsqrt_d, frcp_w, frcp_d, frint_w, frint_d, frsqrt_w, frsqrt_d,
2363 flog2_w, flog2_d, fexupl_w, fexupl_d, fexupr_w, fexupr_d, ffql_w,
2364 ffql_d, ffqr_w, ffqr_d, ftint_s_w, ftint_s_d, ftint_u_w,
2365 ftint_u_d, ftrunc_s_w, ftrunc_s_d, ftrunc_u_w, ftrunc_u_d,
2366 ffint_s_w, ffint_s_d, ffint_u_w, ffint_u_d, ctcmsa, cfcmsa,
2367 move_v builtins.
2368 (mips_get_builtin_decl_index): New array.
2369 (MIPS_ATYPE_QI, MIPS_ATYPE_HI, MIPS_ATYPE_V2DI, MIPS_ATYPE_V4SI)
2370 (MIPS_ATYPE_V8HI, MIPS_ATYPE_V16QI, MIPS_ATYPE_V2DF)
2371 (MIPS_ATYPE_V4SF, MIPS_ATYPE_UV2DI, MIPS_ATYPE_UV4SI)
2372 (MIPS_ATYPE_UV8HI, MIPS_ATYPE_UV16QI): New.
2373 (mips_init_builtins): Initialize mips_get_builtin_decl_index
2374 array.
2375 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
2376 hook.
2377 (mips_expand_builtin_insn): Prepare operands for
2378 CODE_FOR_msa_addvi_b, CODE_FOR_msa_addvi_h, CODE_FOR_msa_addvi_w,
2379 CODE_FOR_msa_addvi_d, CODE_FOR_msa_clti_u_b,
2380 CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w,
2381 CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_u_b,
2382 CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w,
2383 CODE_FOR_msa_clei_u_d, CODE_FOR_msa_maxi_u_b,
2384 CODE_FOR_msa_maxi_u_h, CODE_FOR_msa_maxi_u_w,
2385 CODE_FOR_msa_maxi_u_d, CODE_FOR_msa_mini_u_b,
2386 CODE_FOR_msa_mini_u_h, CODE_FOR_msa_mini_u_w,
2387 CODE_FOR_msa_mini_u_d, CODE_FOR_msa_subvi_b,
2388 CODE_FOR_msa_subvi_h, CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d,
2389 CODE_FOR_msa_ceqi_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w,
2390 CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b,
2391 CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w,
2392 CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clei_s_b,
2393 CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w,
2394 CODE_FOR_msa_clei_s_d, CODE_FOR_msa_maxi_s_b,
2395 CODE_FOR_msa_maxi_s_h, CODE_FOR_msa_maxi_s_w,
2396 CODE_FOR_msa_maxi_s_d, CODE_FOR_msa_mini_s_b,
2397 CODE_FOR_msa_mini_s_h, CODE_FOR_msa_mini_s_w,
2398 CODE_FOR_msa_mini_s_d, CODE_FOR_msa_andi_b, CODE_FOR_msa_ori_b,
2399 CODE_FOR_msa_nori_b, CODE_FOR_msa_xori_b, CODE_FOR_msa_bmzi_b,
2400 CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bseli_b, CODE_FOR_msa_fill_b,
2401 CODE_FOR_msa_fill_h, CODE_FOR_msa_fill_w, CODE_FOR_msa_fill_d,
2402 CODE_FOR_msa_ilvl_b, CODE_FOR_msa_ilvl_h, CODE_FOR_msa_ilvl_w,
2403 CODE_FOR_msa_ilvl_d, CODE_FOR_msa_ilvr_b, CODE_FOR_msa_ilvr_h,
2404 CODE_FOR_msa_ilvr_w, CODE_FOR_msa_ilvr_d, CODE_FOR_msa_ilvev_b,
2405 CODE_FOR_msa_ilvev_h, CODE_FOR_msa_ilvev_w, CODE_FOR_msa_ilvod_b,
2406 CODE_FOR_msa_ilvod_h, CODE_FOR_msa_ilvod_w, CODE_FOR_msa_pckev_b,
2407 CODE_FOR_msa_pckev_h, CODE_FOR_msa_pckev_w, CODE_FOR_msa_pckod_b,
2408 CODE_FOR_msa_pckod_h, CODE_FOR_msa_pckod_w, CODE_FOR_msa_slli_b,
2409 CODE_FOR_msa_slli_h, CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d,
2410 CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w,
2411 CODE_FOR_msa_srai_d, CODE_FOR_msa_srli_b, CODE_FOR_msa_srli_h,
2412 CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d, CODE_FOR_msa_insert_b,
2413 CODE_FOR_msa_insert_h, CODE_FOR_msa_insert_w,
2414 CODE_FOR_msa_insert_d, CODE_FOR_msa_insve_b,
2415 CODE_FOR_msa_insve_h, CODE_FOR_msa_insve_w, CODE_FOR_msa_insve_d,
2416 CODE_FOR_msa_shf_b, CODE_FOR_msa_shf_h, CODE_FOR_msa_shf_w,
2417 CODE_FOR_msa_shf_w_f, CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h,
2418 CODE_FOR_msa_vshf_w, CODE_FOR_msa_vshf_d.
2419 (mips_expand_builtin): Add case for MIPS_BULTIN_MSA_TEST_BRANCH.
2420 (mips_set_compression_mode): Disallow MSA with MIPS16 code.
2421 (mips_option_override): -mmsa requires -mfp64 and -mhard-float.
2422 These are set implicitly and an error is reported if overridden.
2423 (mips_expand_builtin_msa_test_branch): New function.
2424 (mips_expand_msa_shuffle): Likewise.
2425 (MAX_VECT_LEN): Increase maximum length of a vector to 16 bytes.
2426 (TARGET_SCHED_REASSOCIATION_WIDTH): Define target hook.
2427 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Likewise.
2428 (mips_expand_vec_unpack): Add support for MSA.
2429 (mips_expand_vector_init): Likewise.
2430 (mips_expand_vi_constant): Use CONST0_RTX (element_mode)
2431 instead of const0_rtx.
2432 (mips_msa_vec_parallel_const_half): New function.
2433 (mips_gen_const_int_vector): Likewise.
2434 (mips_gen_const_int_vector_shuffle): Likewise.
2435 (mips_expand_msa_cmp): Likewise.
2436 (mips_expand_vec_cond_expr): Likewise.
2437 * config/mips/mips.h
2438 (TARGET_CPU_CPP_BUILTINS): Add __mips_msa and __mips_msa_width.
2439 (OPTION_DEFAULT_SPECS): Ignore --with-fp-32 if -mmsa is
2440 specified.
2441 (ASM_SPEC): Pass mmsa and mno-msa to the assembler.
2442 (ISA_HAS_MSA): New macro.
2443 (UNITS_PER_MSA_REG): Likewise.
2444 (BITS_PER_MSA_REG): Likewise.
2445 (BIGGEST_ALIGNMENT): Redefine using ISA_HAS_MSA.
2446 (MSA_REG_FIRST): New macro.
2447 (MSA_REG_LAST): Likewise.
2448 (MSA_REG_NUM): Likewise.
2449 (MSA_REG_P): Likewise.
2450 (MSA_REG_RTX_P): Likewise.
2451 (MSA_SUPPORTED_MODE_P): Likewise.
2452 (HARD_REGNO_CALL_PART_CLOBBERED): Redefine using TARGET_MSA.
2453 (ADDITIONAL_REGISTER_NAMES): Add named registers $w0-$w31.
2454 * config/mips/mips.md: Include mips-msa.md.
2455 (alu_type): Add simd_add.
2456 (mode): Add V2DI, V4SI, V8HI, V16QI, V2DF, V4SF.
2457 (type): Add simd_div, simd_fclass, simd_flog2, simd_fadd,
2458 simd_fcvt, simd_fmul, simd_fmadd, simd_fdiv, simd_bitins,
2459 simd_bitmov, simd_insert, simd_sld, simd_mul, simd_fcmp,
2460 simd_fexp2, simd_int_arith, simd_bit, simd_shift, simd_splat,
2461 simd_fill, simd_permute, simd_shf, simd_sat, simd_pcnt,
2462 simd_copy, simd_branch, simd_cmsa, simd_fminmax, simd_logic,
2463 simd_move, simd_load, simd_store. Choose "multi" for moves
2464 for "qword_mode".
2465 (qword_mode): New attribute.
2466 (insn_count): Add instruction count for quad moves.
2467 Increase the count for MIPS SIMD division.
2468 (UNITMODE): Add UNITMODEs for vector types.
2469 (addsub): New code iterator.
2470 * config/mips/mips.opt (mmsa): New option.
2471 * config/mips/msa.h: New file.
2472 * config/mips/mti-elf.h: Don't infer -mfpxx if -mmsa is
2473 specified.
2474 * config/mips/mti-linux.h: Likewise.
2475 * config/mips/predicates.md
2476 (const_msa_branch_operand): New constraint.
2477 (const_uimm3_operand): Likewise.
2478 (const_uimm4_operand): Likewise.
2479 (const_uimm5_operand): Likewise.
2480 (const_uimm8_operand): Likewise.
2481 (const_imm5_operand): Likewise.
2482 (aq10b_operand): Likewise.
2483 (aq10h_operand): Likewise.
2484 (aq10w_operand): Likewise.
2485 (aq10d_operand): Likewise.
2486 (const_m1_operand): Likewise.
2487 (reg_or_m1_operand): Likewise.
2488 (const_exp_2_operand): Likewise.
2489 (const_exp_4_operand): Likewise.
2490 (const_exp_8_operand): Likewise.
2491 (const_exp_16_operand): Likewise.
2492 (const_vector_same_val_operand): Likewise.
2493 (const_vector_same_simm5_operand): Likewise.
2494 (const_vector_same_uimm5_operand): Likewise.
2495 (const_vector_same_uimm6_operand): Likewise.
2496 (const_vector_same_uimm8_operand): Likewise.
2497 (par_const_vector_shf_set_operand): Likewise.
2498 (reg_or_vector_same_val_operand): Likewise.
2499 (reg_or_vector_same_simm5_operand): Likewise.
2500 (reg_or_vector_same_uimm6_operand): Likewise.
2501 * doc/extend.texi (MIPS SIMD Architecture Functions): New
2502 section.
2503 * doc/invoke.texi (-mmsa): Document new option.
2504
2505 2016-05-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2506
2507 * configure.ac (enable_vtable_verify): Handle --enable-vtable-verify.
2508 * configure: Regenerate.
2509 * config.in: Regenerate.
2510 * gcc.c (VTABLE_VERIFICATION_SPEC) [!ENABLE_VTABLE_VERIFY]: Error
2511 on -fvtable-verify.
2512 * config/sol2.h [!ENABLE_VTABLE_VERIFY] (STARTFILE_VTV_SPEC): Define.
2513 (ENDFILE_VTV_SPEC): Define.
2514
2515 2016-05-09 Kaushik Phatak <kaushik.phatak@kpit.com>
2516
2517 * config/rl78/rl78.c (rl78_expand_prologue): Save the MDUC related
2518 registers in all interrupt handlers if necessary.
2519 (rl78_option_override): Add warning.
2520 (MUST_SAVE_MDUC_REGISTERS): New macro.
2521 (rl78_expand_epilogue): Restore the MDUC registers if necessary.
2522 * config/rl78/rl78.c (check_mduc_usage): New function.
2523 (mduc_regs): New structure to hold MDUC register data.
2524 * config/rl78/rl78.md (is_g13_muldiv_insn): New attribute.
2525 (mulsi3_g13): Add is_g13_muldiv_insn attribute.
2526 (udivmodsi4_g13): Add is_g13_muldiv_insn attribute.
2527 (mulhi3_g13): Add is_g13_muldiv_insn attribute.
2528 * config/rl78/rl78.opt (msave-mduc-in-interrupts): New option.
2529 * doc/invoke.texi (RL78 Options): Add -msave-mduc-in-interrupts.
2530
2531 2016-05-09 Bin Cheng <bin.cheng@arm.com>
2532
2533 * tree-if-conv.c (tree-ssa-loop.h): Include header file.
2534 (tree-ssa-loop-niter.h): Ditto.
2535 (idx_within_array_bound, ref_within_array_bound): New functions.
2536 (ifcvt_memrefs_wont_trap): Check if array ref is within bound.
2537 Factor out check on writable base object to ...
2538 (base_object_writable): ... here.
2539
2540 2016-05-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2541
2542 * config/arm/arm.md (probe_stack): Add modes to set source
2543 and destination.
2544
2545 2016-05-09 Bernd Schmidt <bschmidt@redhat.com>
2546
2547 * regrename.c (base_reg_class_for_rename): New static function.
2548 (scan_rtx_address, scan_rtx): Use it instead of base_reg_class.
2549
2550 2016-05-08 Jan Hubicka <hubicka@ucw.cz>
2551
2552 * cgraph.c (thunk_adjust): Export.
2553 * cgraphclones.c (cgraph_node::create_clone): Clone thunk info.
2554 * cgraphunit.c (thunk_adjust): Export.
2555 (cgraph_node::assemble_thunks_and_aliases): Do not assemble inlined
2556 thunks.
2557 * ipa-inline-analyssi.c (compute_inline_parameters): Thunks are
2558 inlinable.
2559 * tree-inline.c (expand_call_inline): Expand thunks inline.
2560
2561 2016-05-08 Uros Bizjak <ubizjak@gmail.com>
2562
2563 PR target/70998
2564 * config/i386/sse.md (*sse2_vd_cvtsd2ss): New insn pattern.
2565 (*sse2_vd_cvtss2sd): Ditto.
2566 * config/i386/i386.md
2567 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf splitter):
2568 Generate *sse2_vd_cvtsd2ss pattern.
2569 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df splitter):
2570 Generate *sse2_vd_cvtss2sd pattern.
2571
2572 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
2573
2574 * config/sh/sh.h (GET_SH_ARG_CLASS): Convert macro into ...
2575 * config/sh/sh.c (get_sh_arg_class): ... this new function. Update its
2576 users.
2577
2578 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
2579
2580 * config/sh/sh-protos.h (sh_media_register_for_return): Remove.
2581 * config/sh/sh.c: Define and declare variables on first use throughout
2582 the file.
2583 (current_function_interrupt): Change to bool type.
2584 (frame_insn): Rename to emit_frame_insn and update users.
2585 (push_regs): Use bool for 'interrupt_handler' argument.
2586 (save_schedule_s): Remove.
2587 (TARGET_ASM_UNALIGNED_DI_OP, TARGET_ASM_ALIGNED_DI_OP): Remove.
2588 (sh_option_override): Don't nullify targetm.asm_out.aligned_op.di and
2589 targetm.asm_out.unaligned_op.di.
2590 (gen_far_branch): Remove redundant forward declaration.
2591 (sh_media_register_for_return, MAX_SAVED_REGS, save_entry_s, save_entry,
2592 MAX_TEMPS, save_schedule_ssave_schedule): Remove.
2593 (sh_set_return_address, sh_function_ok_for_sibcall,
2594 scavenge_reg): Update comments.
2595 (sh_builtin_saveregs): Use TRAGET_FPU_ANY condition.
2596 (sh2a_get_function_vector_number, sh2a_function_vector_p): Use for loop.
2597 (sh_attr_renesas_p): Remove unnecessary parentheses.
2598 (branch_dest): Simplify.
2599 * config/sh/sh.h (sh_args): Remove byref, byref_regs, stack_regs fields.
2600 Change force_mem, prototype_p, outgoing, renesas_abi fields to bool.
2601 (CUMULATIVE_ARGS): Change macro to typedef.
2602 (current_function_interrupt): Change to bool type.
2603 (sh_arg_class, sh_args, CUMULATIVE_ARGS, current_function_interrupt):
2604 Surround with __cplusplus ifdef.
2605 (sh_compare_op0, sh_compare_op1): Remove.
2606 (EPILOGUE_USES): Use TARGET_FPU_ANY condition.
2607
2608 2016-05-07 Jim Wilson <jim.wilson@linaro.org>
2609
2610 * config/arm/arm.md: (arch): Add neon.
2611 (arch_enabled): Return yes for arch neon when TARGET_NEON.
2612 * config/arm/vfp.md (movdf_vfp): Add w/G as alternative 3. Add
2613 neon_move as type for alt 3. Add arch attr enabling alt 3 for neon.
2614 Emit vmov.i64 for alt 3. Renumber alternatives 3 to 8. Adjust
2615 attributes for alt renumbering. Mark alt 3 as non-predicable.
2616 (thumb2_movdf_vfp): Likewise.
2617
2618 2016-05-07 Uros Bizjak <ubizjak@gmail.com>
2619
2620 * config/i386/i386.md (*addqi_1): Add preferred_for_speed attribute
2621 to disparage alternatives 3 and 4 for TARGET_PARTIAL_REG_STALL targets.
2622 (*andqi_1): Add preferred_for_speed attribute to disparage
2623 alternative 2 for TARGET_PARTIAL_REG_STALL targets.
2624 (*<code>qi_1): Ditto.
2625 (*one_cmplqi2_1): Add preferred_for_speed attribute to disparage
2626 alternative 1 for TARGET_PARTIAL_REG_STALL targets.
2627 (*ashlqi3_1): Ditto.
2628 (*swap<mode>): Merge from *swap<mode>_1 and *swap<mode>_2 patterns.
2629 Add preferred_for_size attribute to disparage alternative 0 and
2630 preferred_for_speed attribute to disparage alternative 1 for
2631 TARGET_PARTIAL_REG_STALL targets.
2632
2633 2016-05-07 Tom de Vries <tom@codesourcery.com>
2634
2635 PR tree-optimization/70956
2636 * graphite-scop-detection.c (build_cross_bb_scalars_def): Handle NULL
2637 def.
2638
2639 2016-05-07 Oleg Endo <olegendo@gcc.gnu.org>
2640
2641 * config/sh/sh-protos.h (sh_cbranch_distance): Declare new function.
2642 * config/sh/sh.c (sh_cbranch_distance): Implement it.
2643 * config/sh/sh.md (branch_zero): Remove define_attr.
2644 (define_delay): Disable delay slot if branch distance is one insn.
2645
2646 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
2647
2648 * config/i386/i386.md (LEAMODE): New mode attribute.
2649 (plus to LEA splitter): Rewrite splitter using LEAMODE mode attribute.
2650 (ashift to LEA splitter): Rewrte splitter using SWI mode iterator
2651 and LEAMODE mode attribute. Use VOIDmode const_0_to_3_operand as
2652 operand 2 predicate.
2653 (*lea<mode>_general_2): Use VOIDmode for const248_operand.
2654 (*lea<mode>_general_3): Ditto.
2655 (*lea<mode>_general_4): Use VOIDmode for const_0_to_3_operand.
2656
2657 2016-05-06 Jakub Jelinek <jakub@redhat.com>
2658
2659 * genmddump.c (main): Convert argv from char ** to const char **.
2660
2661 2016-05-06 David Malcolm <dmalcolm@redhat.com>
2662
2663 * coretypes.h (OVERRIDE): New macro.
2664 (FINAL): New macro.
2665
2666 2016-05-06 Eric Botcazou <ebotcazou@adacore.com>
2667
2668 * tree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case,
2669 allow coalescing if the types are compatible.
2670
2671 2016-05-06 David Malcolm <dmalcolm@redhat.com>
2672
2673 * pass_manager.h (pass_manager::register_pass_name): New method.
2674 (pass_manager::get_pass_by_name): New method.
2675 (pass_manager::create_pass_tab): New method.
2676 (pass_manager::m_name_to_pass_map): New field.
2677 * passes.c (name_to_pass_map): Delete global in favor of field
2678 "m_name_to_pass_map" of pass_manager.
2679 (register_pass_name): Rename from a function to...
2680 (pass_manager::register_pass_name): ...this method, updating
2681 for renaming of global "name_to_pass_map" to field
2682 "m_name_to_pass_map".
2683 (create_pass_tab): Rename from a function to...
2684 (pass_manager::create_pass_tab): ...this method, updating
2685 for renaming of global "name_to_pass_map" to field.
2686 (get_pass_by_name): Rename from a function to...
2687 (pass_manager::get_pass_by_name): ...this method.
2688 (enable_disable_pass): Convert use of get_pass_by_name to
2689 a method call, locating the pass_manager singleton.
2690
2691 2016-05-06 David Malcolm <dmalcolm@redhat.com>
2692
2693 * genattr-common.c (main): Convert argv from char ** to const char **.
2694 * genattr.c (main): Likewise.
2695 * genattrtab.c (main): Likewise.
2696 * genautomata.c (initiate_automaton_gen): Likewise.
2697 (main): Likewise.
2698 * gencodes.c (main): Likewise.
2699 * genconditions.c (main): Likewise.
2700 * genconfig.c (main): Likewise.
2701 * genconstants.c (main): Likewise.
2702 * genemit.c (main): Likewise.
2703 * genenums.c (main): Likewise.
2704 * genextract.c (main): Likewise.
2705 * genflags.c (main): Likewise.
2706 * genmddeps.c (main): Likewise.
2707 * genopinit.c (main): Likewise.
2708 * genoutput.c (main): Likewise.
2709 * genpeep.c (main): Likewise.
2710 * genpreds.c (main): Likewise.
2711 * genrecog.c (main): Likewise.
2712 * gensupport.c (init_rtx_reader_args_cb): Likewise.
2713 (init_rtx_reader_args): Likewise.
2714 * gensupport.h (init_rtx_reader_args_cb): Likewise.
2715 (init_rtx_reader_args): Likewise.
2716 * gentarget-def.c (main): Likewise.
2717 * read-md.c (read_md_files): Likewise.
2718 * read-md.h (read_md_files): Likewise.
2719
2720 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
2721
2722 * config/i386/i386.md (int cmove peephole2s): Use general_reg_operand
2723 instead of register_and_not_any_fp_reg_operand as operand 0 predicate.
2724 * config/i386/predicates.md (register_and_not_any_fp_reg_operand):
2725 Remove unused predicate.
2726 (register_and_not_fp_reg_operand): Ditto.
2727
2728 2016-05-06 Martin Liska <mliska@suse.cz>
2729
2730 * tree-if-conv.c (ifcvt_split_critical_edges): Use auto_vec
2731 instead of vec as the vector is local to the function.
2732
2733 2016-05-06 Jakub Jelinek <jakub@redhat.com>
2734
2735 * config/i386/sse.md (*<code>v8hi3, *<code>v16qi3): Add
2736 avx512bw alternative.
2737
2738 * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>): Move
2739 before the ashr<mode>3 pattern.
2740
2741 * config/i386/sse.md (*avx2_pmaddwd, *sse2_pmaddwd): Use
2742 v instead of x in vex or maybe_vex alternatives, use
2743 maybe_evex instead of vex in prefix.
2744
2745 * config/i386/sse.md (*vec_extractv4sf_0, *sse4_1_extractps,
2746 *vec_extractv4sf_mem, vec_extract_lo_v16hi, vec_extract_hi_v16hi,
2747 vec_extract_lo_v32qi, vec_extract_hi_v32qi): Use v instead of x
2748 in vex or maybe_vex alternatives, use maybe_evex instead of vex
2749 in prefix.
2750
2751 * config/i386/sse.md (*vec_concatv2sf_sse4_1, *vec_concatv4sf): Use
2752 v instead of x in vex or maybe_vex alternatives, use
2753 maybe_evex instead of vex in prefix.
2754
2755 * config/i386/sse.md (sse_shufps_<mode>, sse_storehps, sse_loadhps,
2756 sse_storelps, sse_movss, avx2_vec_dup<mode>, avx2_vec_dupv8sf_1,
2757 sse2_shufpd_<mode>, sse2_storehpd, sse2_storelpd, sse2_loadhpd,
2758 sse2_loadlpd, sse2_movsd): Use v instead of x in vex or maybe_vex
2759 alternatives, use maybe_evex instead of vex in prefix.
2760
2761 * config/i386/sse.md (vec_interleave_lowv4sf,
2762 *vec_interleave_highv2df, *vec_interleave_lowv2df): Use
2763 v instead of x in vex or maybe_vex alternatives, use
2764 maybe_evex instead of vex in prefix.
2765
2766 * config/i386/sse.md (sse_movhlps, sse_movlhps): Use
2767 v instead of x in vex or maybe_vex alternatives, use
2768 maybe_evex instead of vex in prefix.
2769
2770 * config/i386/sse.md (*avx_cvtpd2dq256_2, *avx_cvtps2pd256_2): Use
2771 v constraint instead of x.
2772
2773 2016-05-06 Nathan Sidwell <nathan@codesourcery.com>
2774
2775 * gimple.c (gimple_call_same_target_p): Unique functions are eq.
2776 * tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
2777 equality first.
2778
2779 2016-05-06 Richard Biener <rguenther@suse.de>
2780
2781 PR tree-optimization/70948
2782 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
2783 Properly clobber all fields of va_list for __builtin_va_start.
2784
2785 2016-05-06 Yuri Rumyantsev <ysrumyan@gmail.com>
2786
2787 PR debug/70935
2788 * tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
2789 loop latch destination.
2790
2791 2016-05-06 Martin Liska <mliska@suse.cz>
2792
2793 * tree-ssa-uninit.c: Apply manual changes
2794 to the GNU coding style.
2795 (prune_uninit_phi_opnds): Rename from
2796 prune_uninit_phi_opnds_in_unrealizable_paths.
2797
2798 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
2799
2800 * config/sh/sh.opt (madjust-unroll, minvalid-symbols, msoft-atomic,
2801 mspace): Remove deprecated options.
2802 * doc/invoke.texi (SH options): Remove -mspace.
2803
2804 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
2805
2806 * config/sh/sh.md (ic_invalidate_line_sh4a): Fix insn length.
2807
2808 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
2809
2810 * config/sh/sh.md (*cmpeqsi_t): Remove combine insn pattern and similar
2811 corresponding combine split pattern.
2812
2813 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
2814
2815 PR target/58219
2816 * config/sh/predicates.md (long_displacement_mem_operand): New.
2817 * config/sh/sh.md (movsi_i): Allow for SH2A, disallow for any FPU.
2818 Add movi20, movi20s alternatives. Adjust length attribute for
2819 alternatives.
2820 (movsi_ie): Allow for any FPU. Adjust length attribute for
2821 alternatives.
2822 (movsi_i_lowpart): Add movi20, movi20s alternatives. Adjust length
2823 attribute for alternatives.
2824 (*mov<mode>): Use long_displacement_mem_operand for length attribute.
2825 (*movdi_i, movdf_k, movdf_i4, movsf_i, movsf_ie, movsf_ie_ra): Adjust
2826 length attribute for alternatives.
2827
2828 2016-05-06 Richard Biener <rguenther@suse.de>
2829
2830 PR tree-optimization/70960
2831 * tree-if-conv.c (ifcvt_walk_pattern_tree): Handle non-SSA ops.
2832
2833 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
2834
2835 PR target/52933
2836 * config/sh/sh.md (*cmp_div0s_7, *cmp_div0s_8): Add div0s variants.
2837 * config/sh/sh.c (sh_rtx_costs): Add another div0s case.
2838
2839 2016-05-06 Marek Polacek <polacek@redhat.com>
2840
2841 PR sanitizer/70875
2842 * ubsan.c (get_ubsan_type_info_for_type): Remove assert.
2843
2844 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
2845
2846 PR target/54089
2847 * config/sh/sh.md (*rotcr): Add another variant.
2848
2849 2016-05-06 Richard Biener <rguenther@suse.de>
2850
2851 PR middle-end/70931
2852 * dwarf2out.c (native_encode_initializer): Skip zero-sized fields.
2853
2854 2016-05-06 Richard Biener <rguenther@suse.de>
2855
2856 PR middle-end/70941
2857 * fold-const.c (split_tree): Always convert to the original type
2858 before negating.
2859
2860 2016-05-06 Richard Biener <rguenther@suse.de>
2861
2862 * fwprop.c (fwprop): Remove duplicate cleanup_cfg call.
2863 (fwprop_addr): Likewise.
2864
2865 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
2866
2867 PR target/70873
2868 * config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p):
2869 New prototype.
2870 * config/i386/i386.c (ix86_standard_x87sse_constant_load_p): New.
2871 * config/i386/i386.md (push mem splitter): Use find_constant_src in
2872 the splitter condition.
2873 (FP load splitter): Use ix86_standard_x87sse_constant_load_p in
2874 the splitter condition.
2875 (FP float_extend load splitter): Ditto.
2876
2877 2016-05-05 Uros Bizjak <ubizjak@gmail.com>
2878
2879 * config/i386/i386.md (peehole2 patterns): Change true_regnum
2880 to REGNO in all peephole2 patterns.
2881 (post-reload splitters): Change true_regnum to REGNO in
2882 post-reload splitters.
2883 (zero_extend splitters): Use general_reg_operand and
2884 nonimmediate_gr_operand predicates.
2885
2886 2016-05-05 Jakub Jelinek <jakub@redhat.com>
2887
2888 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use
2889 v constraint instead of x.
2890
2891 2016-05-05 Alan Modra <amodra@gmail.com>
2892
2893 PR target/68662
2894 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
2895 set OPTION_MASK_RELOCATABLE when flag_pic == 2. Set
2896 TARGET_NO_FP_IN_TOC for -mrelocatable.
2897 (MINIMAL_TOC_SECTION_ASM_OP): Remove redundant
2898 TARGET_RELOCATABLE test.
2899 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
2900 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
2901 * config/rs6000/linux64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
2902 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
2903 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
2904 * config/rs6000/freebsd64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
2905 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
2906 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
2907 * config/rs6000/predicates.md (easy_fp_constant): Likewise.
2908 * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
2909 Likewise.
2910 (rs6000_assemble_integer): Update TARGET_RELOCATABLE test.
2911 (rs6000_stack_info): Likewise.
2912 (rs6000_elf_asm_out_constructor): Likewise.
2913 (rs6000_elf_asm_out_destructor): Likewise.
2914 (rs6000_elf_declare_function_name): Likewise.
2915 * config/rs6000/rs6000.md (load_toc_aix_di): Likewise.
2916 * config/rs6000/rs6000.h (MASK_RELOCATABLE, MASK_MINIMAL_TOC):
2917 Don't define.
2918
2919 2016-05-05 Alan Modra <amodra@gmail.com>
2920
2921 * config/rs6000/rs6000.c (rs6000_frame_related): Rewrite.
2922
2923 2016-05-05 Alan Modra <amodra@gmail.com>
2924
2925 * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
2926 out-of-line gpr restore for one or two regs if that would add
2927 a save of lr.
2928
2929 2016-05-04 Uros Bizjak <ubizjak@gmail.com>
2930
2931 PR target/70873
2932 * config/i386/i386.md
2933 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df peephole2):
2934 Change to post-epilogue_completed late splitter. Use sse_reg_operand
2935 as operand 0 predicate.
2936 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf peephole2):
2937 Ditto.
2938 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2):
2939 Ditto. Emit the pattern using RTX.
2940
2941 (TARGET_USE_VECTOR_FP_CONVERTS float_extend sf->df splitter):
2942 Use sse_reg_opreand as operand 0 predicate. Do not use true_regnum in
2943 the post-reload splitter. Use lowpart_subreg instead of gen_rtx_REG.
2944 (TARGET_USE_VECTOR_FP_CONVERTS float_truncate df->sf splitter):
2945 Ditto.
2946 (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use
2947 sse_reg_operand as operand 0 predicate.
2948
2949 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_extend sf->df peephole2):
2950 Use sse_reg_opreand as operand 0 predicate. Use lowpart_subreg
2951 instead of gen_rtx_REG.
2952 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_truncate sf->df peephole2):
2953 Ditto.
2954
2955 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
2956
2957 * function.c (emit_use_return_register_into_block): Delete.
2958 (gen_return_pattern): Delete.
2959 (emit_return_into_block): Delete.
2960 (active_insn_between): Delete.
2961 (convert_jumps_to_returns): Delete.
2962 (emit_return_for_exit): Delete.
2963 (thread_prologue_and_epilogue_insns): Delete all code dealing with
2964 simple_return for shrink-wrapped blocks.
2965 * shrink-wrap.c (try_shrink_wrapping): Insert simple_return at the
2966 end of blocks that need one.
2967 (get_unconverted_simple_return): Delete.
2968 (convert_to_simple_return): Delete.
2969 * shrink-wrap.c (get_unconverted_simple_return): Delete declaration.
2970 (convert_to_simple_return): Ditto.
2971
2972 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
2973
2974 * cfgcleanup.c (bb_is_just_return): New function.
2975 (try_optimize_cfg): Simplify jumps to return, branches to return,
2976 and branches around return.
2977
2978 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
2979
2980 * cfgcleanup.c (try_simplify_condjump): Don't try to simplify a
2981 branch to a return.
2982
2983 2016-05-04 Jakub Jelinek <jakub@redhat.com>
2984
2985 PR c++/70906
2986 PR c++/70933
2987 * tree-core.h (enum operand_equal_flag): Add OEP_HASH_CHECK.
2988 * tree.c (inchash::add_expr): If !IS_EXPR_CODE_CLASS (tclass),
2989 assert flags & OEP_HASH_CHECK, instead of asserting it
2990 never happens. Handle TARGET_EXPR.
2991 * fold-const.c (operand_equal_p): For hash verification,
2992 or in OEP_HASH_CHECK into flags.
2993
2994 2016-05-04 Eric Botcazou <ebotcazou@adacore.com>
2995
2996 * tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
2997 comment.
2998 (compute_samebase_partition_bases): Fix typo.
2999
3000 2016-05-04 Jakub Jelinek <jakub@redhat.com>
3001
3002 * config/i386/sse.md (vec_interleave_highv8sf,
3003 vec_interleave_lowv8sf, vec_interleave_highv4df,
3004 vec_interleave_lowv4df): Remove constraints from expanders.
3005
3006 * config/i386/sse.md (sse2_movq128): Use v constraint instead of x.
3007
3008 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
3009
3010 * tree-inline.c (expand_call_inline): Fix path dealing with
3011 making lhs of call statement undefined.
3012
3013 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
3014
3015 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
3016 Check availability on NODE, too.
3017 * cgraph.h (symtab_node::call_for_symbol_and_aliases): Likewise.
3018 (cgraph_node::call_for_symbol_and_aliases): Likewise.
3019 (varpool_node::call_for_symbol_and_aliase): Likewise.
3020 * ipa-pure-const.c (add_new_function): Analyze all bodies.
3021 (propagate_pure_const): Propagate across interposable functions, too.
3022 (skip_function_for_local_pure_const): Do not skip interposable bodies
3023 with aliases.
3024 (pass_local_pure_const::execute): Update.
3025
3026 2016-05-04 Marek Polacek <polacek@redhat.com>
3027
3028 * doc/invoke.texi: Document -Wdangling-else.
3029
3030 2016-05-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
3031
3032 * config.gcc: Error out when conflicting multilib is detected. Do not
3033 loop over multilibs since no combination is legal.
3034
3035 2016-05-04 Alan Modra <amodra@gmail.com>
3036
3037 * config/rs6000/rs6000.h (PIC_OFFSET_TABLE_REGNUM): Correct.
3038 * config/rs6000/sysv4.h (TARGET_TOC): Simplify.
3039 * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
3040 Align .toc.
3041
3042 2016-05-04 Matthew Fortune <matthew.fortune@imgtec.com>
3043
3044 * config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
3045 Clean up p5600 comments.
3046
3047 2016-05-04 Richard Biener <rguenther@suse.de>
3048
3049 * match.pd: Add BIT_FIELD_REF canonicalizations and vector
3050 constructor simplifications.
3051 * fold-const.c (fold_ternary_loc): Remove duplicate functionality here.
3052
3053 2016-05-04 Oleg Endo <olegendo@gcc.gnu.org>
3054
3055 * config/sh/predicates (post_inc_mem, pre_dec_mem): New predicates.
3056 * config/sh/sh-protos.h (sh_find_set_of_reg): Return null result if
3057 result.set_rtx is null instead of aborting.
3058 * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT):
3059 Always enable.
3060 (USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT): Enable for SH2A.
3061 * config/sh/sh.md (*extend<mode>si2_predec, *mov<mode>_load_predec,
3062 *mov<mode>_store_postinc): New patterns.
3063
3064 2016-05-04 Marc Glisse <marc.glisse@inria.fr>
3065
3066 * match.pd ((A | B) & (A | C)): Generalize to BIT_XOR_EXPR. Mark
3067 as commutative. Check both conversions are NOP.
3068 ((A & B) OP (C & B)): Remove.
3069
3070 2016-05-04 Alan Modra <amodra@gmail.com>
3071
3072 * combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.
3073
3074 2016-05-04 Alan Modra <amodra@gmail.com>
3075
3076 PR target/70866
3077 * config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
3078 when cr2,3,4 are all fixed regs.
3079
3080 2016-05-04 Bernd Schmidt <bschmidt@redhat.com>
3081
3082 PR rtl-optimization/57193
3083 * opts.c (default_options_table): Revert OPT_frename_registers change.
3084 * doc/invoke.texi (-frename-registers, -O2): Likewise.
3085
3086 2016-05-03 Martin Sebor <msebor@redhat.com>
3087
3088 PR c++/66561
3089 * builtins.c (fold_builtin_FILE): New function.
3090 (fold_builtin_FUNCTION, fold_builtin_LINE): New functions.
3091 (fold_builtin_0): Call them.
3092 * gimplify.c (gimplify_call_expr): Remove the handling of
3093 BUILT_IN_FILE, BUILT_IN_FUNCTION, and BUILT_IN_LINE.
3094
3095 PR c++/66561
3096 * doc/extend.texi (Other Builtins): Update __builtin_FILE,
3097 __builtin_FUNCTION, and __builtin_LINE to reflect they yield
3098 constants.
3099
3100 PR c++/66639
3101 * doc/extend.texi (Function Names as Strings): Update __func__,
3102 __FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
3103 constants.
3104
3105 2016-05-03 Jakub Jelinek <jakub@redhat.com>
3106 Richard Biener <rguenther@suse.de>
3107
3108 PR tree-optimization/70916
3109 * tree-if-conv.c: Include cfganal.h.
3110 (pass_if_conversion::execute): Call connect_infinite_loops_to_exit
3111 and remove_fake_exit_edges around the optimization pass.
3112
3113 2016-05-03 Jan Hubicka <hubicka@ucw.cz>
3114
3115 * cgraph.c (symbol_table::create_edge): Set inline_failed.
3116 (cgraph_edge::make_direct): Likewise.
3117 (cgraph_edge::dump_edge_flags): Dump call_stmt_cannot_inline_p.
3118 * cgraphclones.c (duplicate_thunk_for_node): Set inline_failed.
3119 * cif-code.def (CIF_LTO_MISMATCHED_DECLARATIONS): New code
3120 (CIF_THUNK): New code.
3121 * ipa-inline-analysis.c (initialize_inline_failed): Preserve
3122 CIF_FINAL_ERROR codes; do not deal with call_stmt_cannot_inline_p.
3123 (compute_inline_parameters): Set inline_failed for thunks.
3124 (inline_analyze_function): Cleanup.
3125 * ipa-inline.c (can_inline_edge_p): Do not deal with
3126 call_stmt_cannot_inline_p.
3127 (can_early_inline_edge_p): Likewise.
3128 (early_inliner): Initialize inline_failed.
3129 * lto-cgraph.c (lto_output_edge): Sanity check inline_failed.
3130
3131 2016-05-03 Uros Bizjak <ubizjak@gmail.com>
3132
3133 * config/i386/predicates.md (x87nonimm_ssenomem_operand): Rename
3134 from nonimm_ssenomem_operand.
3135 (nonimm_ssenomem_operand): New predicate.
3136 * config/i386/i386.md (extendsfdf2): Use nonimm_ssenomem_operand
3137 as operand 0 predicate.
3138 (*extendsfdf2): Merge from *extendsfdf2_mixed and *extendsfdf2_i387.
3139 Disable unsupported alternatives using "enabled" attribute.
3140 Use register_ssemem_operand as operand 0 predicate.
3141 (*fop_<mode>_1): Use x87nonimm_ssenomem_operand as operand 1 predicate.
3142
3143 2016-05-03 Marek Polacek <polacek@redhat.com>
3144
3145 PR c/70859
3146 * input.c (expansion_point_location): New function.
3147 * input.h (expansion_point_location): Declare.
3148
3149 2016-05-03 Pierre-Marie de Rodat <derodat@adacore.com>
3150
3151 * dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
3152 occurence with frame_offset_ ones.
3153
3154 2016-05-03 Alan Modra <amodra@gmail.com>
3155
3156 PR rtl-optimization/70890
3157 * ira.c (combine_and_move_insns): When moving def_insn, remove
3158 equivs on use_insn.
3159
3160 2016-05-03 Dominik Vogt <vogt@linux.vnet.ibm.com>
3161
3162 * config/s390/s390.md ("*r<noxa>sbg_<mode>_sll")
3163 ("*r<noxa>sbg_<mode>_srl"): New define_insns.
3164 ("*r<noxa>sbg_<mode>_srl_bitmask"): Rename by adding "_bitmask".
3165 ("*r<noxa>sbg_<mode>_sll_bitmask"): Likewise.
3166
3167 2016-05-03 Alan Modra <amodra@gmail.com>
3168
3169 * config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
3170 for SAVE_MULTIPLE/STORE_MULTIPLE.
3171
3172 2016-05-03 Jakub Jelinek <jakub@redhat.com>
3173
3174 * config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
3175 *truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead of x.
3176
3177 2016-05-03 Richard Biener <rguenther@suse.de>
3178
3179 * gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
3180 default true.
3181 (gimplify_arg): Likewise.
3182 * gimplify.c (gimplify_expr): Add overload with allow_ssa parameter,
3183 re-writing the result to a decl if required.
3184 (internal_get_tmp_var): Add allow_ssa parameter
3185 and override into_ssa with it.
3186 (get_formal_tmp_var): Adjust.
3187 (get_initialized_tmp_var): Add allow_ssa parameter.
3188 (gimplify_arg): Add allow_ssa parameter and avoid generating
3189 SSA names for the result false.
3190 (gimplify_call_expr): If the call may return twice do not
3191 gimplify parameters into SSA.
3192 (prepare_gimple_addressable): Do not allow an SSA name as temporary.
3193 (gimplify_modify_expr): Adjust assert. For noreturn calls
3194 with a SSA name LHS adjust its def.
3195 (gimplify_save_expr): Do not allow an SSA name as save-expr result.
3196 (gimplify_one_sizepos): Do not allow an SSA name as a sizepos.
3197 (gimplify_body): Init GIMPLE SSA data structures and gimplify into-SSA.
3198 (gimplify_scan_omp_clauses): Make sure OMP_CLAUSE_SIZE is not
3199 an SSA name. Likewise for OMP_CLAUSE_REDUCTION operands.
3200 (gimplify_omp_for): Likewise for OMP_CLAUSE_DECL. Likewise
3201 for OMP_FOR_COND, OMP_FOR_INCR and OMP_CLAUSE_LINEAR_STEP.
3202 (optimize_target_teams): Do not allow SSA names for clause operands.
3203 (gimplify_expr): Likewise for where we mark the result addressable.
3204 * passes.def (pass_init_datastructures): Remove.
3205 * tree-into-ssa.c (mark_def_sites): Ignore existing SSA names.
3206 (rewrite_stmt): Likewise.
3207 * tree-inline.c (initialize_cfun): Properly transfer SSA state.
3208 (replace_locals_op): Replace SSA names.
3209 (copy_gimple_seq_and_replace_locals): Init src_cfun.
3210 * gimple-low.c (lower_builtin_setjmp): Deal with SSA.
3211 * cgraph.c (release_function_body): Free CFG annotations only
3212 when we have a CFG. Simplify.
3213 * gimple-fold.c (gimplify_and_update_call_from_tree): Use
3214 force_gimple_operand instead of get_initialized_tmp_var.
3215 * tree-pass.h (make_pass_init_datastructures): Remove.
3216 * tree-ssa.c (execute_init_datastructures): Remove.
3217 (pass_data_init_datastructures): Likewise.
3218 (class pass_init_datastructures): Likewise.
3219 (make_pass_init_datastructures): Likewise.
3220 * omp-low.c (create_omp_child_function): Init SSA data structures.
3221 (grid_expand_target_grid_body): Likewise.
3222 * tree-cfg.c (move_block_to_fn): Double-check the DEF is an SSA
3223 name before adding it to names_to_release.
3224 (remove_bb): Always release SSA defs.
3225 * tree-ssa-ccp.c (get_default_value): Check SSA_NAME_VAR
3226 before dereferencing it.
3227 * cgraphunit.c (init_lowered_empty_function): Always
3228 int SSA data structures.
3229 * tree-ssanames.c (release_defs): Remove assert that we are in
3230 SSA form.
3231 * trans-mem.c (diagnose_tm_1): Handle SSA name function.
3232
3233 2016-05-03 Jakub Jelinek <jakub@redhat.com>
3234 Uros Bizjak <ubizjak@gmail.com>
3235
3236 PR rtl-optimization/70467
3237 * config/i386/predicates.md (x86_64_hilo_int_operand,
3238 x86_64_hilo_general_operand): New predicates.
3239 * config/i386/constraints.md (Wd): New constraint.
3240 * config/i386/i386.md (mode attr di): Use Wd instead of e.
3241 (general_hilo_operand): New mode attr.
3242 (add<mode>3, sub<mode>3): Use <general_hilo_operand>
3243 instead of <general_operand>.
3244 (*add<dwi>3_doubleword, *sub<dwi>3_doubleword): Use
3245 x86_64_hilo_general_operand instead of <general_operand>.
3246
3247 2016-05-03 Jakub Jelinek <jakub@redhat.com>
3248
3249 PR tree-optimization/70916
3250 * tree-if-conv.c (constant_or_ssa_name): Removed.
3251 (fold_build_cond_expr): Use is_gimple_val instead of
3252 constant_or_ssa_name.
3253
3254 PR tree-optimization/70916
3255 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
3256 if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.
3257
3258 PR target/49244
3259 * tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h.
3260 (optimize_atomic_bit_test_and): New function.
3261 (pass_fold_builtins::execute): Use it.
3262 * optabs.def (atomic_bit_test_and_set_optab,
3263 atomic_bit_test_and_complement_optab,
3264 atomic_bit_test_and_reset_optab): New optabs.
3265 * internal-fn.def (ATOMIC_BIT_TEST_AND_SET,
3266 ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_BIT_TEST_AND_RESET): New ifns.
3267 * builtins.h (expand_ifn_atomic_bit_test_and): New prototype.
3268 * builtins.c (expand_ifn_atomic_bit_test_and): New function.
3269 * internal-fn.c (expand_ATOMIC_BIT_TEST_AND_SET,
3270 expand_ATOMIC_BIT_TEST_AND_COMPLEMENT,
3271 expand_ATOMIC_BIT_TEST_AND_RESET): New functions.
3272 * doc/md.texi (atomic_bit_test_and_set@var{mode},
3273 atomic_bit_test_and_complement@var{mode},
3274 atomic_bit_test_and_reset@var{mode}): Document.
3275 * config/i386/sync.md (atomic_bit_test_and_set<mode>,
3276 atomic_bit_test_and_complement<mode>,
3277 atomic_bit_test_and_reset<mode>): New expanders.
3278 (atomic_bit_test_and_set<mode>_1,
3279 atomic_bit_test_and_complement<mode>_1,
3280 atomic_bit_test_and_reset<mode>_1): New insns.
3281
3282 2016-05-03 Richard Sandiford <richard.sandiford@arm.com>
3283
3284 PR rtl-optimization/70687
3285 * combine.c (change_zero_ext): Check for scalar modes. Use wide_int
3286 instead of unsigned HOST_WIDE_INT.
3287
3288 2016-05-03 Bernd Schmidt <bschmidt@redhat.com>
3289
3290 PR rtl-optimization/44281
3291 * hard-reg-set.h (struct target_hard_regs): New field
3292 x_fixed_nonglobal_reg_set.
3293 (fixed_nonglobal_reg_set): New macro.
3294 * reginfo.c (init_reg_sets_1): Initialize it.
3295 * ira.c (setup_alloc_regs): Use fixed_nonglobal_reg_set instead
3296 of fixed_reg_set.
3297 * df-scan.c (df_insn_refs_collect): Asms may reference global regs.
3298
3299 2016-05-03 Bin Cheng <bin.cheng@arm.com>
3300
3301 PR tree-optimization/56541
3302 * doc/invoke.texi (@item max-tree-if-conversion-phi-args): New item.
3303 * params.def (PARAM_MAX_TREE_IF_CONVERSION_PHI_ARGS): new param.
3304 * tree-if-conv.c (MAX_PHI_ARG_NUM): new macro.
3305 (any_complicated_phi): new static variable.
3306 (aggressive_if_conv): delete.
3307 (if_convertible_phi_p): support phis with more than two arguments.
3308 (if_convertible_bb_p): remvoe check on aggressive_if_conv and
3309 critical pred edges.
3310 (ifcvt_split_critical_edges): support phis with more than two
3311 arguments by checking new parameter. only split critical edges
3312 if needed.
3313 (tree_if_conversion): handle simd pragma marked loop using new
3314 local variable aggressive_if_conv. check any_complicated_phi.
3315
3316 2016-05-03 Bin Cheng <bin.cheng@arm.com>
3317
3318 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
3319 before using it.
3320
3321 2016-05-03 Bin Cheng <bin.cheng@arm.com>
3322
3323 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
3324 cbase.
3325
3326 2016-05-03 Oleg Endo <olegendo@gcc.gnu.org>
3327
3328 * config/sh/sh.md (udivsi3, divsi3, mulsi3): Simplify.
3329 (mulhisi3, umulhisi3, (smulsi3_highpart, umulsi3_highpart): Convert to
3330 define_insn_and_split.
3331 (mulsi3_i): New define_insn_and_split.
3332 (mulsi3_call): Convert to define_insn.
3333 (mulsidi3, mulsidi3_compact, umulsidi3, umulsidi3_compact):
3334 Remove constraints.
3335
3336 2016-05-02 Michael Meissner <meissner@linux.vnet.ibm.com>
3337
3338 * machmode.h (mode_complex): Add support to give the complex mode
3339 for a given mode.
3340 (GET_MODE_COMPLEX_MODE): Likewise.
3341 * stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
3342 stored by build_complex_type and gfc_build_complex_type instead of
3343 trying to figure out the appropriate mode based on the size. Raise
3344 an assertion error, if the type was not set.
3345 * genmodes.c (struct mode_data): Add field for the complex type of
3346 the given type.
3347 (blank_mode): Likewise.
3348 (make_complex_modes): Remember the complex mode created in the
3349 base type.
3350 (emit_mode_complex): Write out the mode_complex array to map a
3351 type mode to the complex version.
3352 (emit_insn_modes_c): Likewise.
3353 * tree.c (build_complex_type): Set the complex type to use before
3354 calling layout_type.
3355 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
3356 support for __float128 complex datatypes.
3357 (rs6000_hard_regno_mode_ok): Likewise.
3358 (rs6000_setup_reg_addr_masks): Likewise.
3359 (rs6000_complex_function_value): Likewise.
3360 * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
3361 __float128 and __ibm128 complex.
3362 (FLOAT128_IBM_P): Likewise.
3363 (ALTIVEC_ARG_MAX_RETURN): Likewise.
3364 * doc/extend.texi (Additional Floating Types): Document that
3365 -mfloat128 must be used to enable __float128. Document complex
3366 __float128 and __ibm128 support.
3367
3368 2016-05-02 Jakub Jelinek <jakub@redhat.com>
3369
3370 PR target/49244
3371 * gimple.c (gimple_builtin_call_types_compatible_p): Allow
3372 char/short arguments promoted to int because of promote_prototypes.
3373
3374 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
3375
3376 * config/i386/predicates.md (register_ssemem_operand): New predicate.
3377 * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Merge from
3378 *cmpi<FPCMP:unord><MODEF:mode>_mixed and
3379 *cmpi<FPCMP:unord><X87MODEF:mode>_i387. Disable unsupported
3380 alternatives using "enabled" attribute. Use register_ssemem_operand
3381 as operand 1 predicate.
3382 (*cmpi<unord>xf_i387): Split XFmode pattern from
3383 *cmpi<FPCMP:unord><X87MODEF:mode>_i387.
3384 (*absneg<mode>2): Merge from *absneg<mode>2_mixed and
3385 *absneg<mode>2_i387. Disable unsupported alternatives using
3386 "enabled" attribute.
3387 (*absnegxf2_i387): Split XFmode pattern from *absneg<mode>2_i387.
3388
3389 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
3390
3391 * omp-low.c (lower_oacc_head_tail): Assert there is at least one
3392 marker.
3393 (oacc_loop_process): Check mask for loop termination.
3394
3395 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
3396
3397 * cif-code.def (CIF_THUNK): Add.
3398 * ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
3399 accidental change.
3400
3401 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
3402
3403 * ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
3404 (dump_inline_summary): Dump it.
3405 (fp_expression_p): New predicate.
3406 (estimate_function_body_sizes): Use it.
3407 (inline_merge_summary): Merge fp_expressions.
3408 (inline_read_section): Read fp_expressions.
3409 (inline_write_summary): Write fp_expressions.
3410 * ipa-inline.c (can_inline_edge_p): Permit inlining across fp math
3411 codegen boundary if either caller or callee is !fp_expressions.
3412 * ipa-inline.h (inline_summary): Add fp_expressions.
3413 * ipa-inline-transform.c (inline_call): When inlining !fp_expressions
3414 to fp_expressions be sure the fp generation flags are updated.
3415
3416 2016-05-02 Jakub Jelinek <jakub@redhat.com>
3417
3418 PR rtl-optimization/70467
3419 * cse.c (cse_insn): Handle no-op MEM moves after folding.
3420
3421 PR rtl-optimization/70467
3422 * ipa-pure-const.c (check_call): Handle internal calls even in
3423 ipa mode like in local mode.
3424
3425 2016-05-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
3426
3427 * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.
3428
3429 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
3430
3431 * match.pd (X u< X, X u> X): New transformations.
3432
3433 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
3434
3435 * flag-types.h (enum warn_strict_overflow_code): Move ...
3436 * coretypes.h: ... here.
3437 * fold-const.h (fold_overflow_warning): Declare.
3438 * fold-const.c (fold_overflow_warning): Make non-static.
3439 (fold_comparison): Move the transformation of X +- C1 CMP C2
3440 into X CMP C2 -+ C1 ...
3441 * match.pd: ... here.
3442 * gimple-fold.c (fold_stmt_1): Protect with
3443 fold_defer_overflow_warnings.
3444
3445 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
3446
3447 * omp-low.c (struct oacc_loop): Add 'inner' field.
3448 (new_oacc_loop_raw): Initialize it to zero.
3449 (oacc_loop_fixed_partitions): Initialize it.
3450 (oacc_loop_auto_partitions): Partition outermost loop to outermost
3451 available partitioning.
3452
3453 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
3454
3455 * config/arc/arc.md (mulsidi3): Change operand 0 predicate to
3456 register_operand.
3457 (umulsidi3): Likewise.
3458 (indirect_jump): Fix jump instruction assembly patterns.
3459
3460 2016-05-02 Thomas Schwinge <thomas@codesourcery.com>
3461
3462 PR target/70860
3463 * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
3464 (nvptx_function_value): Assert non-NULL cfun.
3465
3466 2016-05-02 Eric Botcazou <ebotcazou@adacore.com>
3467
3468 PR rtl-optimization/70886
3469 * sched-deps.c (estimate_dep_weak): Canonicalize cselib values.
3470
3471 * cselib.h (rtx_equal_for_cselib_1): Declare.
3472 (rtx_equal_for_cselib_p: New inline function.
3473 * cselib.c (rtx_equal_for_cselib_p): Delete.
3474 (rtx_equal_for_cselib_1): Make public.
3475
3476 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
3477
3478 * config/i386/predicates.md (nonimm_ssenomem_operand): New predicate.
3479 (register_mixssei387nonimm_operand): Remove predicate.
3480 * config/i386/i386.md (*fop_<mode>_comm): Merge from
3481 *fop_<mode>_comm_mixed and *fop_<mode>_comm_i387. Disable unsupported
3482 alternatives using "enabled" attribute. Also check X87_ENABLE_ARITH
3483 for TARGET_MIX_SSE_I387 alternatives.
3484 (*fop_<mode>_1): Merge from *fop_<mode>_1_mixed and *fop_<mode>_1_i387.
3485 Disable unsupported alternatives using "enabled" attribute. Use
3486 nonimm_ssenomem_operand as operand 1 predicate. Also check
3487 X87_ENABLE_ARITH for TARGET_MIX_SSE_I387 alternatives.
3488
3489 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
3490
3491 * tree.c (cst_and_fits_in_hwi): Simplify.
3492
3493 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
3494
3495 * tree.h (wi::to_wide): New function.
3496 * expr.c (expand_expr_real_1): Use wi::to_wide.
3497 * fold-const.c (int_const_binop_1): Likewise.
3498 (extract_muldiv_1): Likewise.
3499
3500 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
3501
3502 * wide-int.h: Update offset_int and widest_int documentation.
3503 (WI_SIGNED_SHIFT_RESULT): New macro.
3504 (wi::binary_shift): Define signed_shift_result_type for
3505 shifts on offset_int- and widest_int-like types.
3506 (generic_wide_int): Support <<= and >>= if << and >> are supported.
3507 * tree.h (int_bit_position): Use shift operators instead of wi::
3508 shifts.
3509 * alias.c (adjust_offset_for_component_ref): Likewise.
3510 * expr.c (get_inner_reference): Likewise.
3511 * fold-const.c (fold_comparison): Likewise.
3512 * gimple-fold.c (fold_nonarray_ctor_reference): Likewise.
3513 * gimple-ssa-strength-reduction.c (restructure_reference): Likewise.
3514 * tree-dfa.c (get_ref_base_and_extent): Likewise.
3515 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
3516 (stmt_kills_ref_p): Likewise.
3517 * tree-ssa-ccp.c (bit_value_binop_1): Likewise.
3518 * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
3519 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
3520 (ao_ref_init_from_vn_reference): Likewise.
3521
3522 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
3523
3524 * wide-int.h: Update offset_int and widest_int documentation.
3525 (WI_SIGNED_BINARY_PREDICATE_RESULT): New macro.
3526 (wi::binary_traits): Allow ordered comparisons between offset_int and
3527 offset_int, between widest_int and widest_int, and between either
3528 of these types and basic C types.
3529 (operator <, <=, >, >=): Define for the same combinations.
3530 * tree.h (tree_int_cst_lt): Use comparison operators instead
3531 of wi:: comparisons.
3532 (tree_int_cst_le): Likewise.
3533 * gimple-fold.c (fold_array_ctor_reference): Likewise.
3534 (fold_nonarray_ctor_reference): Likewise.
3535 * gimple-ssa-strength-reduction.c (record_increment): Likewise.
3536 * tree-affine.c (aff_comb_cannot_overlap_p): Likewise.
3537 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Likewise.
3538 * tree-sra.c (completely_scalarize): Likewise.
3539 * tree-ssa-alias.c (stmt_kills_ref_p): Likewise.
3540 * tree-ssa-reassoc.c (extract_bit_test_mask): Likewise.
3541 * tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
3542 (check_for_binary_op_overflow): Likewise.
3543 (search_for_addr_array): Likewise.
3544 * ubsan.c (ubsan_expand_objsize_ifn): Likewise.
3545
3546 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
3547
3548 * config/arc/arc.c (arc_preferred_simd_mode): Remove enum keyword.
3549 (arc_save_restore): Likewise.
3550 (arc_dwarf_register_span): Likewise.
3551 (arc_output_pic_addr_const): Initialize suffix variable.
3552
3553 2016-05-02 Martin Liska <mliska@suse.cz>
3554
3555 * symbol-summary.h (function_summary::function_summary):
3556 Remove checking assert for all cgraph nodes.
3557 (function_summary::get): Check summary_uid.
3558 (symtab_insertion): Check summary_uid.
3559
3560 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
3561
3562 * config/arc/arc-protos.h (compact_memory_operand_p): Declare.
3563 * config/arc/arc.c (arc_output_commutative_cond_exec): Consider
3564 bmaskn instruction.
3565 (arc_dwarf_register_span): Remove enum keyword.
3566 (compact_memory_operand_p): New function.
3567 * config/arc/arc.h (reg_class): Add code density register classes.
3568 (REG_CLASS_NAMES): Likewise.
3569 (REG_CLASS_CONTENTS): Likewise.
3570 * config/arc/arc.md (*movqi_insn): Add code density instructions.
3571 (*movhi_insn, *movsi_insn, *movsf_insn): Likewise.
3572 (*extendhisi2_i, andsi3_i, cmpsi_cc_insn_mixed): Likewise.
3573 (*cmpsi_cc_c_insn, *movsi_ne): Likewise.
3574 * config/arc/constraints.md (C2p, Uts, Cm1, Cm3, Ucd): New
3575 constraints.
3576 (h, Rcd, Rsd, Rzd): New register constraints.
3577 (T): Use compact_memory_operand_p function.
3578 * config/arc/predicates.md (compact_load_memory_operand): Remove.
3579
3580 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
3581
3582 * config/sh/sh.md (*negnegt, *movtt): Remove.
3583
3584 2016-05-02 Marek Polacek <polacek@redhat.com>
3585 Tom de Vries <tom@codesourcery.com>
3586
3587 PR tree-optimization/70700
3588 * tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids
3589 bigger than FIRST_REF_NODE.
3590
3591 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
3592
3593 PR target/52898
3594 * config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4,
3595 TARGET_CMPEQDI_T.
3596 (prepare_cbranch_operands): Don't use scratch register. Assume that
3597 function is used when pseudos can be created.
3598 (expand_cbranchdi4): Likewise. Remove unused TARGET_CMPEQDI_T paths.
3599 * config/sh/sh.md (cbranchsi4): Allow only when pseudos can be created.
3600 (cbranchdi4, cbranchdi4_i): Simplify to single cbranchdi4
3601 define_expand. Allow it only when pseudos can be created.
3602 * config/sh/sh.opt (mcbranchdi, mcmpeqdi): Delete.
3603
3604 2016-05-01 Uros Bizjak <ubizjak@gmail.com>
3605
3606 * config/i386/constraints.md (BC): Only allow -1 operands.
3607 * config/i386/sse.md (mov<mode>_internal): Add (v,C) alternative.
3608 Add "enabled" attribute. Update XI mode attribute calculation.
3609 * config/i386/i386.md (*movxi_internal_avx512f): Add (v,C) alternative.
3610 (*movoi_internal_avx): Update XI mode attribute calculation.
3611 (*movti_internal): Ditto.
3612
3613 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
3614
3615 * config/sh/sh.md (push, pop, ic_invalidate_line, cstoresi4, cstoredi4,
3616 cstoresf4, cstoredf4, fix_truncsfsi2): Remove constraints.
3617
3618 2016-05-01 Eric Botcazou <ebotcazou@adacore.com>
3619
3620 * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Do not use switch
3621 statement on instruction code. Remove trailing spaces.
3622 (altivec_expand_stv_builtin): Likewise.
3623
3624 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
3625
3626 * config/sh/sh.h (TARGET_SH4): Remove and use default implementation.
3627 (TARGET_FPU_DOUBLE): Simplify.
3628 (BASE_ARG_REG, DOUBLE_TYPE_SIZE, OPTIMIZE_MODE_SWITCHING): Replace
3629 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions with 'TARGET_FPU_DOUBLE'.
3630 * config/sh/sh.c: Replace 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions
3631 with 'TARGET_FPU_DOUBLE'.
3632 * config/sh/sh.md: Likewise.
3633
3634 2016-05-01 Yoshinori Sato <ysato@users.sourceforge.jp>
3635
3636 * config/sh/linux.h (SH_DIV_STRATEGY_DEFAULT,
3637 SH_DIV_STR_FOR_SIZE): Remove.
3638 * config/sh/netbsd-elf.h (SH_DIV_STRATEGY_DEFAULT,
3639 SH_DIV_STR_FOR_SIZE): Remove.
3640
3641 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
3642
3643 * config/sh/predicates.md (any_register_operand, zero_extend_operand,
3644 logical_reg_operand): Delete.
3645 (arith_operand, arith_reg_dest, arith_or_int_operand, cmpsi_operand,
3646 arith_reg_or_0_operand, arith_reg_or_0_or_1_operand, logical_operand,
3647 logical_and_operand, movsrc_no_disp_mem_operand): Rewrite using
3648 match_operand and match_test.
3649 (sh_const_vec, sh_1el_vec): Remove redundant checks. Declare local
3650 variables on their first use. Return bool values.
3651 * config/sh/sh.h (LOAD_EXTEND_OP): Update comment.
3652 * config/sh/sh.md (andsi3, iorsi3): Use arith_reg_dest for result and
3653 arith_reg_operand for input operand. Remove empty constraints.
3654 (xorsi3): Delete.
3655 (*xorsi3_compact): Rename to xorsi3.
3656 (zero_extend<mode>si2): Use arith_reg_operand for input operand.
3657 (*zero_extend<mode>si2_disp_mem): Update comment.
3658 (mov_nop): Delete.
3659
3660 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
3661
3662 * config/sh/t-sh: Remove SH5 support.
3663 * config.gcc: Likewise.
3664 * configure: Likewise.
3665
3666 2016-04-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3667
3668 * config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus.
3669
3670 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
3671
3672 * config/sh/sh.c (register_sh_passes, sh_option_override,
3673 sh_print_operand, prepare_move_operands,
3674 sh_can_follow_jump): Remove TARGET_SH1 checks.
3675 * config/sh/sh.h (TARGET_VARARGS_PRETEND_ARGS, VALID_REGISTER_P,
3676 PROMOTE_MODE): Likewise.
3677 * config/sh/sh.md (adddi3, addsi3, subdi3, subsi3, andsi3,
3678 movdi): Likewise.
3679
3680 2016-04-30 Alan Modra <amodra@gmail.com>
3681
3682 * config/rs6000/rs6000.c (rs6000_savres_strategy): Force inline
3683 restoring when fixed_reg_p, but allow out-of-line or stmw save.
3684 Check for user regs later to avoid unnecessary looping over regs.
3685 Merge user reg check with non-saved reg check. Don't force
3686 inline VR restore when static chain used.
3687 (rs6000_frame_related): Omit eh_frame info for user regs when
3688 saving.
3689 (fixed_regs_p): Delete.
3690
3691 2016-04-30 Alan Modra <amodra@gmail.com>
3692
3693 * config/rs6000/rs6000.c (SAVRES_MULTIPLE): Replace with..
3694 (SAVE_STRATEGY, REST_STRATEGY): ..this. Renumber and sort enum.
3695 Update all uses.
3696
3697 2016-04-30 Alan Modra <amodra@gmail.com>
3698
3699 PR target/69645
3700 * config/rs6000/rs6000.c (fixed_reg_p): New function.
3701 (fixed_regs_p): Rename from global_regs_p. Call fixed_reg_p.
3702 Update all uses.
3703
3704 2016-04-30 Alan Modra <amodra@gmail.com>
3705
3706 * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
3707 Remove redundant PIC_OFFSET_TABLE_REGNUM test. Replace with
3708 flag_pic test for Darwin.
3709
3710 2016-04-30 Alan Modra <amodra@gmail.com>
3711
3712 * regs.h (struct reg_info_t): Delete freq_calls_crossed and
3713 throw_calls_crossed.
3714 (REG_FREQ_CALLS_CROSSED): Delete.
3715 (REG_N_THROWING_CALLS_CROSSED): Delete.
3716 * regstat.c (regstat_bb_compute_ri): Don't calculate
3717 REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED.
3718 (dump_reg_info): Don't print call cross frequency.
3719 * ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED
3720 and REG_N_THROWING_CALLS_CROSSED.
3721
3722 2016-04-30 Alan Modra <amodra@gmail.com>
3723
3724 * regs.h (struct reg_info_t): Delete live_length.
3725 (REG_LIVE_LENGTH): Delete macro.
3726 * regstat.c (regstat_bb_compute_ri): Delete artificial_uses,
3727 local_live, local_processed and local_live_last_luid params.
3728 Replace bb_index param with bb. Don't set REG_LIVE_LENGTH.
3729 Formatting fixes.
3730 (regstat_compute_ri): Adjust for above. Don't set
3731 REG_LIVE_LENGTH.
3732 (dump_reg_info): Don't print live length.
3733 * ira.c (update_equiv_regs): Replace test of REG_LIVE_LENGTH
3734 with test of setjmp_crosses. Don't set REG_LIVE_LENGTH.
3735 Localize loop_depth var.
3736
3737 2016-04-30 Alan Modra <amodra@gmail.com>
3738
3739 * ira.c (enum valid_equiv): New.
3740 (validate_equiv_mem): Return enum.
3741 (update_equiv_mem): Create replacement in more cases.
3742 (add_store_equivs): Update validate_equiv_mem call.
3743
3744 2016-04-30 Alan Modra <amodra@gmail.com>
3745
3746 * ira.c (combine_and_move_insns): Rather than scanning insns,
3747 use DF infrastucture to find use and def insns.
3748
3749 2016-04-30 Alan Modra <amodra@gmail.com>
3750
3751 ira.c (combine_and_move_insns): Move invariant conditions..
3752 (ira.c): ..to here. Call combine_and_move_insns before
3753 add_store_equivs. Call grow_reg_equivs later. Allocate
3754 req_equiv later using max_reg_num() rather than global max_regno.
3755 (contains_replace_regs): Delete.
3756 (add_store_equivs): Remove contains_replace_regs test.
3757
3758 2016-04-30 Alan Modra <amodra@gmail.com>
3759
3760 * ira.c (struct equiv_mem_data): New.
3761 (equiv_mem, equiv_mem_modified): Delete static vars.
3762 (validate_equiv_mem_from_store): Use "data" param to communicate..
3763 (validate_equiv_mem): ..from here.
3764
3765 2016-04-30 Alan Modra <amodra@gmail.com>
3766
3767 * ira.c (add_store_equivs, combine_and_move_insns): New functions,
3768 split out from..
3769 (update_reg_equivs): ..here. Move allocation and freeing of
3770 reg_equiv, and calls to grow_reg_equivs, init_alias_analysis,
3771 end_alias_analysis to..
3772 (ira): ..here.
3773
3774 2016-04-30 Alan Modra <amodra@gmail.com>
3775
3776 * ira.c (pdx_subregs): Delete.
3777 (struct equivalence): Add pdx_subregs field.
3778 (set_paradoxical_subreg): Remove pdx_subregs param. Update
3779 pdx_subregs access.
3780 (update_equiv_regs): Don't create or free pdx_subregs. Update
3781 pdx_subregs access.
3782
3783 2016-04-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3784
3785 * config/rs6000/altivec.h: Change definitions of vec_xl and
3786 vec_xst.
3787 * config/rs6000/rs6000-builtin.def (LD_ELEMREV_V2DF): New.
3788 (LD_ELEMREV_V2DI): New.
3789 (LD_ELEMREV_V4SF): New.
3790 (LD_ELEMREV_V4SI): New.
3791 (LD_ELEMREV_V8HI): New.
3792 (LD_ELEMREV_V16QI): New.
3793 (ST_ELEMREV_V2DF): New.
3794 (ST_ELEMREV_V2DI): New.
3795 (ST_ELEMREV_V4SF): New.
3796 (ST_ELEMREV_V4SI): New.
3797 (ST_ELEMREV_V8HI): New.
3798 (ST_ELEMREV_V16QI): New.
3799 (XL): New.
3800 (XST): New.
3801 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
3802 descriptions for VSX_BUILTIN_VEC_XL and VSX_BUILTIN_VEC_XST.
3803 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Map from
3804 TARGET_P9_VECTOR to RS6000_BTM_P9_VECTOR.
3805 (altivec_expand_builtin): Add handling for
3806 VSX_BUILTIN_ST_ELEMREV_<MODE> and VSX_BUILTIN_LD_ELEMREV_<MODE>.
3807 (rs6000_invalid_builtin): Add error-checking for
3808 RS6000_BTM_P9_VECTOR.
3809 (altivec_init_builtins): Define builtins used to implement vec_xl
3810 and vec_xst.
3811 (rs6000_builtin_mask_names): Define power9-vector.
3812 * config/rs6000/rs6000.h (MASK_P9_VECTOR): Define.
3813 (RS6000_BTM_P9_VECTOR): Define.
3814 (RS6000_BTM_COMMON): Include RS6000_BTM_P9_VECTOR.
3815 * config/rs6000/vsx.md (vsx_ld_elemrev_v2di): New define_insn.
3816 (vsx_ld_elemrev_v2df): Likewise.
3817 (vsx_ld_elemrev_v4sf): Likewise.
3818 (vsx_ld_elemrev_v4si): Likewise.
3819 (vsx_ld_elemrev_v8hi): Likewise.
3820 (vsx_ld_elemrev_v16qi): Likewise.
3821 (vsx_st_elemrev_v2df): Likewise.
3822 (vsx_st_elemrev_v2di): Likewise.
3823 (vsx_st_elemrev_v4sf): Likewise.
3824 (vsx_st_elemrev_v4si): Likewise.
3825 (vsx_st_elemrev_v8hi): Likewise.
3826 (vsx_st_elemrev_v16qi): Likewise.
3827 * doc/extend.texi: Add prototypes for vec_xl and vec_xst. Correct
3828 grammar.
3829
3830 2016-04-29 Patrick Palka <ppalka@gcc.gnu.org>
3831
3832 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Split
3833 out into ...
3834 (simplify_control_stmt_condition_1): ... here. Recurse into
3835 BIT_AND_EXPRs and BIT_IOR_EXPRs.
3836
3837 2016-04-29 David Edelsohn <dje.gcc@gmail.com>
3838
3839 PR target/69810
3840 * config/rs6000/rs6000.md (EXTQI): Don't allow extension to HImode.
3841 (zero_extendqi<mode>2_dot): Revert earlier conversion from
3842 define_insn_and_split to define_insn.
3843 (zero_extendqi<mode>2_dot2): Same.
3844 (extendqi<mode>2_dot): Same.
3845 (extendqi<mode>2_dot2): Same.
3846
3847 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
3848
3849 * config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK.
3850 (probe_stack): New expander.
3851 (probe_stack_<mode>): New insn pattern.
3852
3853 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
3854
3855 * config/i386/i386.md
3856 (operations with memory inputs setting flags peephole2):
3857 Remove uneeded REG_P checks. Cleanup pattern generation.
3858
3859 2016-04-29 Ilya Enkovich <ilya.enkovich@intel.com>
3860
3861 * tree-vect-loop.c (vect_transform_loop): Fix
3862 nb_iterations_upper_bound computation for vectorized loop.
3863
3864 2016-04-29 Marek Polacek <polacek@redhat.com>
3865 Jakub Jelinek <jakub@redhat.com>
3866
3867 PR sanitizer/70342
3868 * fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
3869 TARGET_EXPR_SLOT as a base.
3870
3871 2016-04-29 Andrew Burgess <andrew.burgess@embecosm.com>
3872
3873 * config/arc/arc.md (*loadqi_update): Replace use of 'rI' constraint
3874 with 'rCm2' constraints to limit possible immediate size.
3875 (*load_zeroextendqisi_update): Likewise.
3876 (*load_signextendqisi_update): Likewise.
3877 (*loadhi_update): Likewise.
3878 (*load_zeroextendhisi_update): Likewise.
3879 (*load_signextendhisi_update): Likewise.
3880 (*loadsi_update): Likewise.
3881 (*loadsf_update): Likewise.
3882
3883 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
3884
3885 * config/i386/predicates.md (constm1_operand): Fix comparison.
3886
3887 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
3888
3889 * testsuite/gcc.target/arc/ieee_eq.c: New test.
3890
3891 2016-04-29 Oleg Endo <olegendo@gcc.gnu.org>
3892
3893 * common/config/sh/sh-common.c (sh_option_optimization_table): Remove
3894 remaining SH5 related settings.
3895 * config/sh/sh-protos.h (shmedia_cleanup_truncate,
3896 shmedia_prepare_call_address): Delete.
3897 * config/sh/sh.c (sh_print_operand, output_stack_adjust,
3898 DWARF_CIE_DATA_ALIGNMENT, LOCAL_ALIGNMENT): Update comments.
3899 * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC,
3900 UNSUPPORTED_SH2A): Remove m5 checks.
3901 (sh_divide_strategy_e): Remove SH5 division strategies.
3902 (TARGET_PTRMEMFUNC_VBIT_LOCATION): Remove and use default.
3903 * config/sh/sh.md (divsf3): Reinstate define_expand pattern.
3904
3905 2016-04-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
3906
3907 * config/s390/s390.c (s390_rtx_costs): Update documentation.
3908
3909 2016-04-29 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3910
3911 * config/s390/2964.md ("z13_unit_fxu", "z13_0"): Remove lder.
3912 * config/s390/s390.md ("movsi_larl", "*movsi_esa", "mov<mode>"):
3913 Change lder to ldr.
3914 * config/s390/vector.md ("mov<mode>"): Likewise.
3915
3916 2016-04-29 Ulrich Weigand <uweigand@de.ibm.com>
3917
3918 * config/s390/constraints.md ("U", "W"): Invoke
3919 s390_mem_constraint with "ZR" and "ZT".
3920 * config/s390/s390.c (s390_check_qrst_address): Reject invalid
3921 addresses when using LRA. Accept also short displacements for S
3922 and T constraints. Do not check for long displacement target for
3923 S and T constraints.
3924 (s390_mem_constraint): Remove handling of U and W constraints.
3925 * config/s390/s390.md (various patterns): Remove the short
3926 displacement constraints (Q and R) if a long displacement
3927 constraint is present. Add longdisp as required CPU capability.
3928 * config/s390/vector.md: Likewise.
3929 * config/s390/vx-builtins.md: Likewise.
3930
3931 2016-04-29 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
3932
3933 PR target/60040
3934 * reload1.c (reload): Call finish_spills before
3935 restarting reload loop. Skip select_reload_regs
3936 if update_eliminables_and_spill returns true.
3937
3938 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
3939
3940 * config/arc/arc.h (UNSIGNED_INT12, UNSIGNED_INT16): Define.
3941 * config/arc/arc.md (umulhisi3): Use arc_short_operand predicate.
3942 (umulhisi3_imm): Update predicates and constraint letters.
3943 (umulhisi3_reg): Declare instruction as commutative.
3944 * config/arc/constraints.md (J12, J16): New constraints.
3945 * config/arc/predicates.md (short_unsigned_const_operand): New
3946 predicate.
3947 (arc_short_operand): Likewise.
3948 * testsuite/gcc.target/arc/umulsihi3_z.c: New file.
3949
3950 2016-04-29 Richard Biener <rguenther@suse.de>
3951
3952 PR tree-optimization/13962
3953 PR tree-optimization/65686
3954 * tree-ssa-alias.h (ptrs_compare_unequal): Declare.
3955 * tree-ssa-alias.c (ptrs_compare_unequal): New function
3956 using PTA to compare pointers.
3957 * match.pd: Add pattern for pointer equality compare simplification
3958 using ptrs_compare_unequal.
3959
3960 2016-04-29 Richard Biener <rguenther@suse.de>
3961
3962 * stor-layout.c (layout_type): Do not build a pointer-to-element
3963 type for arrays.
3964
3965 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
3966
3967 * config/i386/i386.md (Load+RegOp to Mov+MemOp peephole2):
3968 Use SWI mode iterator. Use general_reg_operand predicate.
3969 (Load+RegOp to Mov+MemOp peephole2 with vector regs): Split
3970 peephole to MMX and SSE part. Use mmx_reg_operand and sse_reg_operand
3971 predicates.
3972
3973 2016-04-29 Jakub Jelinek <jakub@redhat.com>
3974
3975 PR middle-end/70843
3976 * fold-const.c (operand_equal_p): Don't verify hash value equality
3977 if arg0 == arg1.
3978 * tree.c (inchash::add_expr): Handle STATEMENT_LIST. Ignore BLOCK
3979 and OMP_CLAUSE.
3980
3981 2016-04-28 Jakub Jelinek <jakub@redhat.com>
3982
3983 PR target/70858
3984 * config/i386/i386.c (bdesc_special_args): Add | OPTION_MASK_ISA_64BIT
3985 to __builtin_ia32_lwpval64 and __builtin_ia32_lwpins64.
3986 (bdesc_args): Add | OPTION_MASK_ISA_64BIT to __builtin_ia32_bextr_u64,
3987 __builtin_ia32_bextri_u64, __builtin_ia32_bzhi_di,
3988 __builtin_ia32_pdep_di and __builtin_ia32_pext_di.
3989
3990 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
3991
3992 * config/rs6000/rs6000.c (compute_save_world_info): Rename info_ptr
3993 to info. Don't initialize separate fields to 0. Clean up
3994 formatting a bit.
3995
3996 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
3997
3998 * config/i386/i386.md (peephole2s for operations with memory inputs):
3999 Use SWI mode iterator.
4000 (peephole2s for operations with memory outputs): Ditto.
4001 Do not check for stack checking probe.
4002
4003 (probe_stack): Remove expander.
4004
4005 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
4006 Andrew Burgess <andrew.burgess@embecosm.com>
4007
4008 * config/arc/arc.c (arc_print_operand): Print integer 'H' / 'L'
4009 operands as 32-bits.
4010
4011 2016-04-28 Jason Merrill <jason@redhat.com>
4012
4013 * gdbinit.in: Skip line-map.h.
4014
4015 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
4016 Andrew Burgess <andrew.burgess@embecosm.com>
4017
4018 * config/arc/arc.c (arc_conditional_register_usage): Take
4019 TARGET_RRQ_CLASS into account.
4020 (arc_print_operand): Support printing 'p' and 's' operands.
4021 * config/arc/arc.h (TARGET_NPS_BITOPS_DEFAULT): Provide default
4022 as 0.
4023 (TARGET_RRQ_CLASS): Define.
4024 (IS_POWEROF2_OR_0_P): Define.
4025 * config/arc/arc.md (*movsi_insn): Add w/Clo, w/Chi, and w/Cbi
4026 alternatives.
4027 (*tst_movb): New define_insn.
4028 (*tst): Avoid recognition if it could prevent '*tst_movb'
4029 combination; replace c/CnL with c/Chs alternative.
4030 (*tst_bitfield_tst): New define_insn.
4031 (*tst_bitfield_asr): New define_insn.
4032 (*tst_bitfield): New define_insn.
4033 (andsi3_i): Add Rrq variant.
4034 (extzv): New define_expand.
4035 (insv): New define_expand.
4036 (*insv_i): New define_insn.
4037 (*movb): New define_insn.
4038 (*movb_signed): New define_insn.
4039 (*movb_high): New define_insn.
4040 (*movb_high_signed): New define_insn.
4041 (*movb_high_signed + 1): New define_split pattern.
4042 (*mrgb): New define_insn.
4043 (*mrgb + 1): New define_peephole2 pattern.
4044 (*mrgb + 2): New define_peephole2 pattern.
4045 * config/arc/arc.opt (mbitops): New option for nps400, uses
4046 TARGET_NPS_BITOPS_DEFAULT.
4047 * config/arc/constraints.md (q): Make register class conditional.
4048 (Rrq): New register constraint.
4049 (Chs): New constraint.
4050 (Clo): New constraint.
4051 (Chi): New constraint.
4052 (Cbf): New constraint.
4053 (Cbn): New constraint.
4054 (C18): New constraint.
4055 (Cbi): New constraint.
4056
4057 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
4058
4059 * cfganal.c (bitmap_intersection_of_succs): Delete assert checking
4060 dst->popcount.
4061 (bitmap_intersection_of_preds): Ditto.
4062 (bitmap_union_of_succs): Ditto.
4063 (bitmap_union_of_preds): Ditto.
4064 * sbitmap.c (do_popcount): Delete.
4065 (BITMAP_DEBUGGING): Delete.
4066 (sbitmap_verify_popcount): Delete.
4067 (sbitmap_alloc): Don't initialize the popcount field.
4068 (sbitmap_alloc_with_popcount): Delete.
4069 (sbitmap_resize): Don't resize the popcount array.
4070 (sbitmap_vector_alloc): Don't initialize the popcount field.
4071 (bitmap_copy): Don't copy the popcount array.
4072 (bitmap_clear): Don't clear the popcount array.
4073 (bitmap_clear): Delete the popcount array handling.
4074 (bitmap_ior_and_compl): Delete the popcount assert.
4075 (bitmap_not): Ditto.
4076 (bitmap_and_compl): Ditto.
4077 (bitmap_and): Delete the popcount array handling.
4078 (bitmap_xor): Ditto.
4079 (bitmap_ior): Ditto.
4080 (bitmap_or_and): Delete the popcount assert.
4081 (bitmap_and_or): Ditto.
4082 (popcount_table): Delete.
4083 (sbitmap_elt_popcount): Delete.
4084 * sbitmap.h (simple_bitmap_def): Delete the popcount field.
4085 (bitmap_set_bit): Delete the popcount assert.
4086 (bitmap_clear_bit): Ditto.
4087 (sbitmap_free): Don't free the popcount array.
4088 (sbitmap_alloc_with_popcount): Delete declaration.
4089 (sbitmap_popcount): Ditto.
4090
4091 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
4092 Andrew Burgess <andrew.burgess@embecosm.com>
4093
4094 * config/arc/arc.h (SYMBOL_FLAG_CMEM): Define.
4095 (TARGET_NPS_CMEM_DEFAULT): Provide default definition.
4096 * config/arc/arc.c (arc_address_cost): Return 0 for cmem_address.
4097 (arc_encode_section_info): Set SYMBOL_FLAG_CMEM where indicated.
4098 * config/arc/arc.opt (mcmem): New option.
4099 * config/arc/arc.md (*extendqihi2_i): Add r/Uex alternative,
4100 supply length for r/m alternative.
4101 (*extendqisi2_ac): Likewise.
4102 (*extendhisi2_i): Add r/Uex alternative, supply length for r/m and
4103 r/Uex alternative.
4104 (movqi_insn): Add r/Ucm and Ucm/?Rac alternatives.
4105 (movhi_insn): Likewise.
4106 (movsi_insn): Add r/Ucm,Ucm/w alternatives.
4107 (*zero_extendqihi2_i): Add r/Ucm alternative.
4108 (*zero_extendqisi2_ac): Likewise.
4109 (*zero_extendhisi2_i): Likewise.
4110 * config/arc/constraints.md (Uex): New memory constraint.
4111 (Ucm): New define_constraint.
4112 * config/arc/predicates.md (long_immediate_loadstore_operand):
4113 Return 0 for MEM with cmem_address address.
4114 (cmem_address_0): New predicates.
4115 (cmem_address_1): Likewise.
4116 (cmem_address_2): Likewise.
4117 (cmem_address): Likewise.
4118
4119 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
4120
4121 * config/rs6000/rs6000.c (machine_function): Rename
4122 insn_chain_scanned_p to spe_insn_chain_scanned_p.
4123 (rs6000_stack_info): Adjust.
4124
4125 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
4126 Andrew Burgess <andrew.burgess@embecosm.com>
4127
4128 * config/arc/constraints.md (Usd): Convert to define_constraint.
4129 (Us<): Likewise.
4130 (Us>): Likewise.
4131
4132 2016-04-28 Jakub Jelinek <jakub@redhat.com>
4133
4134 PR target/70821
4135 * config/i386/sync.md (define_peephole2 *atomic_fetch_add_cmp<mode>):
4136 Add new peephole2 where the first insn is *mov<mode>_or instead of
4137 *mov<mode>_internal.
4138
4139 2016-04-28 Segher Boesssenkool <segher@kernel.crashing.org>
4140
4141 * tracer.c (bb_seen): Make static.
4142
4143 2016-04-28 Andrew Burgess <andrew.burgess@embecosm.com>
4144
4145 * common/config/arc/arc-common.c (arc_handle_option): Add NPS400
4146 support, setup defaults.
4147 * config/arc/arc-opts.h (enum processor_type): Add NPS400.
4148 * config/arc/arc.c (arc_init): Add NPS400 support.
4149 * config/arc/arc.h (CPP_SPEC): Add NPS400 defines.
4150 (TARGET_ARC700): NPS400 is also an ARC700.
4151 * config/arc/arc.opt: Add NPS400 options to -mcpu=.
4152
4153 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
4154
4155 PR target/70668
4156 * config/nds32/nds32.md (casesi): Don't access the operands array
4157 out of bounds.
4158
4159 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
4160
4161 * config/i386/i386.md (zeroing peephole2): Use general_reg_operand.
4162 (or $-1,reg peephole2): Ditto.
4163 (strict_low_part zeroing peephole2): Use SWI12 mode iterator.
4164
4165 2016-04-28 Markus Trippelsdorf <markus@trippelsdorf.de>
4166
4167 * doc/extend.texi (Common Function Attributes) [optimize]:
4168 Discourage use of the optimize attribute.
4169
4170 2016-04-28 Bill Seurer <seurer@linux.vnet.ibm.com>
4171
4172 * config/rs6000/rs6000-builtin.def (vec_adde): Change vec_adde to a
4173 special case builtin.
4174 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
4175 ALTIVEC_BUILTIN_VEC_ADDE.
4176 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
4177 support for ALTIVEC_BUILTIN_VEC_ADDE.
4178 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
4179 for __builtin_vec_adde.
4180
4181 2016-04-28 Jakub Jelinek <jakub@redhat.com>
4182
4183 * config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
4184 * config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise.
4185
4186 2016-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4187
4188 PR testsuite/70595
4189 * doc/sourcebuild.texi (Effective-Target Keywords, Other
4190 attributes): Document cilkplus_runtime.
4191
4192 2016-04-28 Martin Jambor <mjambor@suse.cz>
4193
4194 * tree-cfg.c (verify_expr): Verify that local declarations belong to
4195 this function. Call verify_expr on MEM_REFs and bases of other
4196 handled_components.
4197
4198 2016-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4199
4200 * internal-fn.c (expand_arith_overflow): Convert preprocessor check
4201 for WORD_REGISTER_OPERATIONS to runtime check.
4202
4203 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
4204
4205 * config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.
4206
4207 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
4208
4209 * config/arc/arc.c (arc_process_double_reg_moves): Fix for
4210 big-endian compilation.
4211 * config/arc/arc.md (addf3): Likewise.
4212 (subdf3): Likewise.
4213 (muldf3): Likewise.
4214
4215 2016-04-28 Richard Biener <rguenther@suse.de>
4216
4217 PR tree-optimization/70840
4218 * match.pd: powi(-x, y) and powi(|x|,y) -> powi(x,y) if y is even;
4219 Fix pow(copysign(x, y), z) -> pow(x, z) and add powi variant;
4220 Mark x * pow(x,c) -> pow(x,c+1) commutative.
4221 Add powi(x,y) * powi(z,y) -> powi(x*z,y).
4222
4223 2015-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4224
4225 * config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
4226 and explain why in a comment.
4227
4228 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
4229
4230 * config/arc/arc.md (cpu_facility): Add fpx variant.
4231 (subdf3): Prohibit use reverse sub when assist operations option
4232 is enabled.
4233 * config/arc/fpx.md (subdf3_insn, *dsubh_peep2_insn): Allow drsub
4234 instructions only when FPX is enabled.
4235 * testsuite/gcc.target/arc/trsub.c: New test.
4236
4237 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
4238
4239 * config/i386/i386.md (*fop_<mode>_1_mixed): Do not check for
4240 mult_operator when calculating "type" attribute.
4241 (*fop_<mode>_1_i387): Ditto.
4242 (*fop_xf_1_i387): Ditto.
4243 (x87 stack loads peephole2): Add "reg = op (mem, reg)" peephole2.
4244 Use std::swap to swap operands. Use RTL expressions to generate
4245 converted pattern.
4246
4247 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
4248 Joern Rennecke <joern.rennecke@embecosm.com>
4249
4250 * config/arc/arc-protos.h (arc_legitimize_pic_address): Remove
4251 declaration.
4252 (emit_pic_move): Remove.
4253 (arc_eh_uses, insn_is_tls_gd_dispatch): Declare.
4254 * config/arc/arc.c (emit_pic_move): Removed.
4255 (TARGET_HAVE_TLS): Define.
4256 (arc_conditional_register_usage): Test for arc_tp_regno.
4257 (arc_print_operand, arc_print_operand_address): Handle TLS
4258 unspecs.
4259 (arc_needs_pcl_p): New function.
4260 (arc_legitimate_pc_offset_p): Use arc_needs_pcl_p.
4261 (arc_legitimate_pic_addr_p): Handle TLS unspecs.
4262 (arc_raw_symbolic_reference_mentioned_p): Likewise.
4263 (arc_get_tp, arc_emit_call_tls_get_addr): New function.
4264 (arc_legitimize_tls_address): Likewise.
4265 (DTPOFF_ZERO_SYM): Define.
4266 (arc_legitimize_pic_address): Make it static, handle TLS cases.
4267 (arc_output_pic_addr_const): Print TLS unspecs.
4268 (prepare_pic_move): New function, replaces emit_pic_move.
4269 (arc_legitimate_constant_p): Handle TLS unspecs.
4270 (arc_legitimate_address_p): Likewise.
4271 (arc_rewrite_small_data_p): Use assert for TLS constants.
4272 (prepare_move_operands): Use prepare_pic_move.
4273 (arc_legitimize_address): Legitimize tls addresses.
4274 (arc_epilogue_uses): Check for arc_tp_regno.
4275 (arc_eh_uses, insn_is_tls_gd_dispatch): New function.
4276 * config/arc/arc.h [DEFAULT_LIBC != LIBC_UCLIBC] (EXTRA_SPECS):
4277 Define.
4278 [DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC):
4279 Likewise.
4280 [DEFAULT_LIBC != LIBC_UCLIBC] (STARTFILE_SPEC): Add
4281 %(arc_tls_extra_start_spec).
4282 (TARGET_CPU_CPP_BUILTINS): Define __ARC_TLS_REGNO__.
4283 (REGNO_OK_FOR_BASE_P): Check for arc_tp_regno.
4284 (EH_USES): Define.
4285 (INSN_REFERENCES_ARE_DELAYED): Use insn_is_tls_gd_dispatch.
4286 * config/arc/arc.md (UNSPEC_TLS_GD, UNSPEC_TLS_LD, UNSPEC_TLS_IE)
4287 (UNSPEC_TLS_OFF): Add.
4288 (R10_REG): Define.
4289 (tls_load_tp_soft, tls_gd_load, tls_gd_get_addr, tls_gd_dispatch)
4290 (get_thread_pointersi): New patterns.
4291 * config/arc/arc.opt (mtp-regno): New option.
4292 * config/arc/predicates.md (move_src_operand): Handle TLS symbols.
4293 (move_dest_operand): Likewise.
4294 * configure: Regenerate.
4295 * configure.ac: Add arc*-*-* case to test for tls.
4296 * doc/invoke.texi (ARC options): Document mtp-regno.
4297
4298 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
4299
4300 * config/arc/arc.c (arc_vector_mode_supported_p): Add support for
4301 the new ARC HS SIMD instructions.
4302 (arc_preferred_simd_mode): New function.
4303 (arc_autovectorize_vector_sizes): Likewise.
4304 (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
4305 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
4306 (arc_init_reg_tables): Accept new ARC HS SIMD modes.
4307 (arc_init_builtins): Add new SIMD builtin types.
4308 (arc_split_move): Handle 64 bit vector moves.
4309 * config/arc/arc.h (TARGET_PLUS_DMPY, TARGET_PLUS_MACD)
4310 (TARGET_PLUS_QMACW): Define.
4311 * config/arc/builtins.def (QMACH, QMACHU, QMPYH, QMPYHU, DMACH)
4312 (DMACHU, DMPYH, DMPYHU, DMACWH, DMACWHU, VMAC2H, VMAC2HU, VMPY2H)
4313 (VMPY2HU, VADDSUB2H, VSUBADD2H, VADDSUB, VSUBADD, VADDSUB4H)
4314 (VSUBADD4H): New builtins.
4315 * config/arc/simdext.md: Add new ARC HS SIMD instructions.
4316 * testsuite/gcc.target/arc/builtin_simdarc.c: New file.
4317
4318 2016-04-28 Eduard Sanou <dhole@openmailbox.org>
4319 Matthias Klose <doko@debian.org>
4320
4321 * doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable.
4322
4323 2016-04-28 Richard Biener <rguenther@suse.de>
4324
4325 PR middle-end/70777
4326 * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
4327 canonicalization.
4328
4329 2016-04-28 Oleg Endo <olegendo@gcc.gnu.org>
4330
4331 * common/config/sh/sh-common.c: Remove SH5 support.
4332 * config/sh/constraints.md: Likewise.
4333 * config/sh/config/sh/elf.h: Likewise.
4334 * config/sh/linux.h: Likewise.
4335 * config/sh/netbsd-elf.h: Likewise.
4336 * config/sh/predicates.md: Likewise.
4337 * config/sh/sh-c.c: Likewise.
4338 * config/sh/sh-protos.h: Likewise.
4339 * config/sh/sh.c: Likewise.
4340 * config/sh/sh.h: Likewise.
4341 * config/sh/sh.md: Likewise.
4342 * config/sh/sh.opt: Likewise.
4343 * config/sh/sync.md: Likewise.
4344 * config/sh/sh64.h: Delete.
4345 * config/sh/shmedia.h: Likewise.
4346 * config/sh/shmedia.md: Likewise.
4347 * config/sh/sshmedia.h: Likewise.
4348 * config/sh/t-netbsd-sh5-64: Likewise.
4349 * config/sh/t-sh64: Likewise.
4350 * config/sh/ushmedia.h: Likewise.
4351
4352 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
4353
4354 * config/i386/i386.md (sign_extend to memory peephole2s): Use
4355 general_reg_operand instead of register_operand predicate.
4356
4357 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
4358
4359 * params.def (MIN_PARTITION_SIZE): Set default value to 10000.
4360
4361 2016-04-27 Marc Glisse <marc.glisse@inria.fr>
4362
4363 * match.pd (A - B > A, A + B < A): New transformations.
4364
4365 2016-04-27 Patrick Palka <ppalka@gcc.gnu.org>
4366
4367 * genattrtab.c (write_test_expr): New parameter EMIT_PARENS
4368 which defaults to true. Emit an outer pair of parentheses only if
4369 EMIT_PARENS. When continuing a chain of && or || (or & or |),
4370 don't emit parentheses for the right-hand operand.
4371
4372 2016-04-27 Jeff Law <law@redhat.com>
4373
4374 * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.
4375
4376 2016-04-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4377
4378 * config/rs6000/altivec.md (altivec_lvx_<mode>): Remove.
4379 (altivec_lvx_<mode>_internal): Document.
4380 (altivec_lvx_<mode>_2op): New define_insn.
4381 (altivec_lvx_<mode>_1op): Likewise.
4382 (altivec_lvx_<mode>_2op_si): Likewise.
4383 (altivec_lvx_<mode>_1op_si): Likewise.
4384 (altivec_stvx_<mode>): Remove.
4385 (altivec_stvx_<mode>_internal): Document.
4386 (altivec_stvx_<mode>_2op): New define_insn.
4387 (altivec_stvx_<mode>_1op): Likewise.
4388 (altivec_stvx_<mode>_2op_si): Likewise.
4389 (altivec_stvx_<mode>_1op_si): Likewise.
4390 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
4391 Expand vec_ld and vec_st during parsing.
4392 * config/rs6000/rs6000.c (altivec_expand_lvx_be): Commentary
4393 changes.
4394 (altivec_expand_stvx_be): Likewise.
4395 (altivec_expand_lv_builtin): Expand lvx built-ins to expose the
4396 address-masking behavior in RTL.
4397 (altivec_expand_stv_builtin): Expand stvx built-ins to expose the
4398 address-masking behavior in RTL.
4399 (altivec_expand_builtin): Change builtin code arguments for calls
4400 to altivec_expand_stv_builtin and altivec_expand_lv_builtin.
4401 (insn_is_swappable_p): Avoid incorrect swap optimization in the
4402 presence of lvx/stvx patterns.
4403 (alignment_with_canonical_addr): New function.
4404 (alignment_mask): Likewise.
4405 (find_alignment_op): Likewise.
4406 (recombine_lvx_pattern): Likewise.
4407 (recombine_stvx_pattern): Likewise.
4408 (recombine_lvx_stvx_patterns): Likewise.
4409 (rs6000_analyze_swaps): Perform a pre-pass to recognize lvx and
4410 stvx patterns from expand.
4411 * config/rs6000/vector.md (vector_altivec_load_<mode>): Use new
4412 expansions.
4413 (vector_altivec_store_<mode>): Likewise.
4414
4415 2016-04-26 Evandro Menezes <e.menezes@samsung.com>
4416
4417 * config/aarch64/aarch64.md
4418 (*movhf_aarch64): Add "movi %0, #0" to zero up register and
4419 remove the "fp" attributes.
4420 (*movsf_aarch64): Add "movi %0, #0" to zero up register and
4421 add the "simd" attributes.
4422 (*movdf_aarch64): Likewise.
4423 (*movtf_aarch64): Remove the "fp" attributes.
4424 * testsuite/gcc.target/aarch64/fmovf-zero-reg.c: Update accordingly.
4425 * testsuite/gcc.target/aarch64/fmovd-zero-reg.c: Likewise.
4426
4427 2016-04-27 David Malcolm <dmalcolm@redhat.com>
4428
4429 * emit-rtl.c (maybe_set_first_label_num): Strengthen param from
4430 rtx to rtx_code_label *.
4431 * rtl.h (maybe_set_first_label_num): Likewise.
4432
4433 2016-04-27 David Malcolm <dmalcolm@redhat.com>
4434
4435 * df-core.c (df_add_problem): Make the problem param be const.
4436 (df_remove_problem): Make local "problem" be const.
4437 * df-problems.c (problem_RD): Make const.
4438 (problem_LR): Likewise.
4439 (problem_LIVE): Likewise.
4440 (problem_MIR): Likewise.
4441 (problem_CHAIN): Likewise.
4442 (problem_WORD_LR): Likewise.
4443 (problem_NOTE): Likewise.
4444 (problem_MD): Likewise.
4445 * df-scan.c (problem_SCAN): Likewise.
4446 * df.h (struct df_problem): Make field "dependent_problem" be
4447 const.
4448 (struct dataflow): Likewise for field "problem".
4449 (df_add_problem): Make param const.
4450
4451 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
4452
4453 * config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when
4454 inter-unit moves to/from vector registers are enabled. Do not disable
4455 for TARGET_MMX.
4456
4457 2016-04-27 David Malcolm <dmalcolm@redhat.com>
4458
4459 * df.h (DF_SCAN, DF_LR, DF_LIVE, DF_RD, DF_CHAIN, DF_WORD_LR,
4460 DF_NOTE, DF_MD, DF_MIR, DF_LAST_PROBLEM_PLUS1): Convert from
4461 #define to...
4462 (enum df_problem_id): ...this new enum.
4463 (struct df_problem): Convert field "id" from "int" to
4464 enum df_problem_id.
4465
4466 2016-04-27 David Malcolm <dmalcolm@redhat.com>
4467
4468 * rtl.def: Update comment for "things in the instruction chain" to
4469 reflect the removal of the leading "i" field for INSN_UID in
4470 r210360. Fix bogus apostrophe.
4471
4472 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
4473
4474 * config/i386/i386.md
4475 (lea arith with mem operand + setcc peephole2): Set operator mode.
4476
4477 2016-04-27 H.J. Lu <hongjiu.lu@intel.com>
4478
4479 PR target/70155
4480 * config/i386/i386.c (scalar_to_vector_candidate_p): Renamed to ...
4481 (dimode_scalar_to_vector_candidate_p): This.
4482 (timode_scalar_to_vector_candidate_p): New function.
4483 (scalar_to_vector_candidate_p): Likewise.
4484 (timode_check_non_convertible_regs): Likewise.
4485 (timode_remove_non_convertible_regs): Likewise.
4486 (remove_non_convertible_regs): Likewise.
4487 (remove_non_convertible_regs): Renamed to ...
4488 (dimode_remove_non_convertible_regs): This.
4489 (scalar_chain::~scalar_chain): Make it virtual.
4490 (scalar_chain::compute_convert_gain): Make it pure virtual.
4491 (scalar_chain::mark_dual_mode_def): Likewise.
4492 (scalar_chain::convert_insn): Likewise.
4493 (scalar_chain::convert_registers): Likewise.
4494 (scalar_chain::add_to_queue): Make it protected.
4495 (scalar_chain::emit_conversion_insns): Likewise.
4496 (scalar_chain::replace_with_subreg): Likewise.
4497 (scalar_chain::replace_with_subreg_in_insn): Likewise.
4498 (scalar_chain::convert_op): Likewise.
4499 (scalar_chain::convert_reg): Likewise.
4500 (scalar_chain::make_vector_copies): Likewise.
4501 (scalar_chain::convert_registers): New pure virtual function.
4502 (class dimode_scalar_chain): New class.
4503 (class timode_scalar_chain): Likewise.
4504 (scalar_chain::mark_dual_mode_def): Renamed to ...
4505 (dimode_scalar_chain::mark_dual_mode_def): This.
4506 (timode_scalar_chain::mark_dual_mode_def): New function.
4507 (timode_scalar_chain::convert_insn): Likewise.
4508 (dimode_scalar_chain::convert_registers): Likewise.
4509 (scalar_chain::compute_convert_gain): Renamed to ...
4510 (dimode_scalar_chain::compute_convert_gain): This.
4511 (scalar_chain::replace_with_subreg): Renamed to ...
4512 (dimode_scalar_chain::replace_with_subreg): This.
4513 (scalar_chain::replace_with_subreg_in_insn): Renamed to ...
4514 (dimode_scalar_chain::replace_with_subreg_in_insn): This.
4515 (scalar_chain::make_vector_copies): Renamed to ...
4516 (dimode_scalar_chain::make_vector_copies): This.
4517 (scalar_chain::convert_reg): Renamed to ...
4518 (dimode_scalar_chain::convert_reg ): This.
4519 (scalar_chain::convert_op): Renamed to ...
4520 (dimode_scalar_chain::convert_op): This.
4521 (scalar_chain::convert_insn): Renamed to ...
4522 (dimode_scalar_chain::convert_insn): This.
4523 (scalar_chain::convert): Call convert_registers.
4524 (convert_scalars_to_vector): Change to scalar_chain pointer to
4525 use timode_scalar_chain in 64-bit mode and dimode_scalar_chain
4526 in 32-bit mode. Delete scalar_chain pointer. Call
4527 free_dominance_info in 64-bit mode.
4528 (pass_stv::gate): Remove TARGET_64BIT check.
4529 (ix86_option_override): Put the 64-bit STV pass before the CSE
4530 pass.
4531
4532 2016-04-27 Pierre-Marie de Rodat <derodat@adacore.com>
4533
4534 * dwarf2out.h (struct dw_loc_descr_node): Remove the
4535 dw_loc_frame_offset field.
4536 * dwarf2out.c (new_loc_descr): Likewise.
4537 (resolve_args_picking_1): Turn the VISITED hash set into a
4538 FRAME_OFFSET hash map. Use it to associate a frame offset to
4539 visited nodes. Remove uses of the CHECKING_P macro.
4540 (resolve_args_picking): Update call to resolve_args_picking_1.
4541
4542 2016-04-27 Martin Liska <mliska@suse.cz>
4543
4544 * tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
4545 (free_loop_data): Release vuses of groups.
4546
4547 2016-04-27 Bin Cheng <bin.cheng@arm.com>
4548
4549 * tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use
4550 instead of redundant use_id and boolean have_use_for.
4551 (struct iv_use): Change sub_id into group_id. Remove field next.
4552 Move fields: related_cands, n_map_members, cost_map and selected
4553 to ...
4554 (struct iv_group): ... here. New structure.
4555 (struct iv_common_cand): Use structure declaration directly.
4556 (struct ivopts_data, iv_ca, iv_ca_delta): Rename fields.
4557 (MAX_CONSIDERED_USES): Rename macro to ...
4558 (MAX_CONSIDERED_GROUPS): ... here.
4559 (n_iv_uses, iv_use, n_iv_cands, iv_cand): Delete.
4560 (dump_iv, dump_use, dump_cand): Refactor format of dump information.
4561 (dump_uses): Rename to ...
4562 (dump_groups): ... here. Update all uses.
4563 (tree_ssa_iv_optimize_init, alloc_iv): Update all uses.
4564 (find_induction_variables): Refactor format of dump information.
4565 (record_sub_use): Delete.
4566 (record_use): Update all uses.
4567 (record_group): New function.
4568 (record_group_use, find_interesting_uses_op): Call above functions.
4569 Update all uses.
4570 (find_interesting_uses_cond): Ditto.
4571 (group_compare_offset): New function.
4572 (split_all_small_groups): Rename to ...
4573 (split_small_address_groups_p): ... here. Update all uses.
4574 (split_address_groups): Update all uses.
4575 (find_interesting_uses): Refactor format of dump information.
4576 (add_candidate_1): Update all uses. Remove redundant check on iv,
4577 base and step.
4578 (add_candidate, record_common_cand): Remove redundant assert.
4579 (add_iv_candidate_for_biv): Update use.
4580 (add_iv_candidate_derived_from_uses): Update all uses.
4581 (add_iv_candidate_for_groups, record_important_candidates): Ditto.
4582 (alloc_use_cost_map): Ditto.
4583 (set_use_iv_cost, get_use_iv_cost): Rename to ...
4584 (set_group_iv_cost, get_group_iv_cost): ... here. Update all uses.
4585 (determine_use_iv_cost_generic): Ditto.
4586 (determine_group_iv_cost_generic): Ditto.
4587 (determine_use_iv_cost_address): Ditto.
4588 (determine_group_iv_cost_address): Ditto.
4589 (determine_use_iv_cost_condition): Ditto.
4590 (determine_group_iv_cost_cond): Ditto.
4591 (determine_use_iv_cost): Ditto.
4592 (determine_group_iv_cost): Ditto.
4593 (set_autoinc_for_original_candidates): Update all uses.
4594 (find_iv_candidates): Update all uses. Refactor dump information.
4595 (determine_use_iv_costs): Ditto.
4596 (determine_iv_costs): Ditto.
4597 (iv_ca_cand_for_use): Rename to ...
4598 (iv_ca_cand_for_group): ... here. Update all uses.
4599 (iv_ca_add_use, iv_ca_add_group): Ditto.
4600 (iv_ca_set_cp, iv_ca_cost, iv_ca_delta_add): Update all uses.
4601 (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_delta_free): Ditto.
4602 (iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow): Ditto.
4603 (iv_ca_prune, cheaper_cost_with_cand, iv_ca_replace): Ditto.
4604 (try_add_cand_for, try_improve_iv_set, find_optimal_iv_set): Ditto.
4605 (create_new_iv, adjust_iv_update_pos): Ditto.
4606 (rewrite_use_address): Delete.
4607 (rewrite_use_address_1): Rename to ...
4608 (rewrite_use_address): ... here.
4609 (rewrite_use_compare): Update all uses.
4610 (rewrite_use): Delete.
4611 (rewrite_uses): Rename to ...
4612 (rewrite_groups): ... here. Update all uses.
4613 (remove_unused_ivs, free_loop_data): Update all uses.
4614 (tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize_loop): Ditto.
4615
4616 2016-04-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4617
4618 * rtlanal.c (nonzero_bits1): Convert preprocessor check
4619 for WORD_REGISTER_OPERATIONS to runtime check.
4620
4621 2016-04-27 Richard Biener <rguenther@suse.de>
4622
4623 PR ipa/70760
4624 * tree-ssa-structalias.c (find_func_aliases_for_call): Use
4625 aggregate_value_p to determine if a function result is
4626 returned by reference.
4627 (ipa_pta_execute): Functions having their address taken are
4628 not automatically nonlocal.
4629
4630 2016-04-27 Jakub Jelinek <jakub@redhat.com>
4631
4632 PR sanitizer/70683
4633 * tree-core.h (enum operand_equal_flag): Add OEP_NO_HASH_CHECK.
4634 * fold-const.c (operand_equal_p): If flag_checking and
4635 OEP_NO_HASH_CHECK is not set in flag, recurse with OEP_NO_HASH_CHECK
4636 and if it returns non-zero, assert iterative_hash_expr on both
4637 args is the same.
4638
4639 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
4640
4641 * doc/invoke.texi (-frename-registers): Also enabled at -Os.
4642
4643 2016-04-27 Nick Clifton <nickc@redhat.com>
4644
4645 PR middle-end/49889
4646 * varasm.c (merge_weak): Generate an error if an attempt is made
4647 to convert a non-weak static function into a weak, public function.
4648
4649 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
4650
4651 * params.def (MAX_PARTITION_SIZE): New param.
4652 * doc/invoke.texi: Document lto-max-partition.
4653
4654 2016-04-27 Richard Biener <rguenther@suse.de>
4655
4656 PR ipa/70785
4657 * tree-ssa-structalias.c (refered_from_nonlocal_fn): New
4658 function cummulating used_from_other_partition, externally_visible
4659 and force_output from aliases.
4660 (refered_from_nonlocal_var): Likewise.
4661 (ipa_pta_execute): Use call_for_symbol_and_aliases to cummulate
4662 node flags properly.
4663
4664 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
4665
4666 * doc/invoke.texi (Warning Options): Add -Wmemset-elt-size.
4667 (-Wmemset-elt-size): New item.
4668
4669 2016-04-27 Eric Botcazou <ebotcazou@adacore.com>
4670
4671 PR ada/70759
4672 * stor-layout.h (internal_reference_types): Delete.
4673 * stor-layout.c (reference_types_internal): Likewise.
4674 (internal_reference_types): Likewise.
4675 (layout_type) <REFERENCE_TYPE>: Adjust.
4676
4677 2016-04-27 Jakub Jelinek <jakub@redhat.com>
4678
4679 PR sanitizer/70683
4680 * tree.h (inchash::add_expr): Add FLAGS argument.
4681 * tree.c (inchash::add_expr): Likewise. If not OEP_ADDRESS_OF,
4682 use STRIP_NOPS first. For INTEGER_CST assert not OEP_ADDRESS_OF.
4683 For REAL_CST and !HONOR_SIGNED_ZEROS (t) hash +/- 0 the same.
4684 Formatting fix. Adjust recursive calls. For tcc_comparison,
4685 if swap_tree_comparison (code) is smaller than code, hash that
4686 and arguments in the other order. Hash CONVERT_EXPR the same
4687 as NOP_EXPR. For OEP_ADDRESS_OF hash MEM_REF with 0 offset
4688 of ADDR_EXPR of decl as the decl itself. Add or remove
4689 OEP_ADDRESS_OF from recursive flags as needed. For
4690 FMA_EXPR, WIDEN_MULT_{PLUS,MINUS}_EXPR hash the first two
4691 operands commutatively and only the third one normally.
4692 For internal CALL_EXPR hash in CALL_EXPR_IFN.
4693
4694 2016-04-27 Sebastian Huber <sebastian.huber@embedded-brains.de>
4695
4696 * config/rtems.h (LIB_SPEC): Add -latomic.
4697
4698 2016-04-27 Joel Sherrill <joel@rtems.org>
4699
4700 * config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
4701 xilink.ld and flags not relevant to RTEMS.
4702
4703 2016-04-26 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
4704
4705 * toplev.c (backend_init_target): Avoid calling init_reload when using
4706 LRA.
4707
4708 2016-04-26 Jakub Jelinek <jakub@redhat.com>
4709
4710 * reorg.c (try_merge_delay_insns): Declare i and j inside the
4711 for loops rather than one for the whole function.
4712
4713 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
4714
4715 * match.pd (X + CST CMP X): New transformation.
4716
4717 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
4718
4719 * genmatch.c (write_predicate): Add ATTRIBUTE_UNUSED.
4720 * fold-const.c (fold_binary_loc): Remove 2 transformations
4721 superseded by match.pd.
4722 * match.pd (x+x -> x*2): Generalize to integers.
4723
4724 2016-04-26 Bernd Schmidt <bschmidt@redhat.com>
4725
4726 * config/i386/i386.md (operation on memory peephole): Duplicate an
4727 existing peephole and adapt it to match lea rather than an operation
4728 that clobbers CC.
4729
4730 PR rtl-optimization/57193
4731 * opts.c (default_options_table): Add OPT_frename_registers at -O2
4732 and above.
4733 * doc/invoke.texi (-frename-registers, -O2): Update documentation.
4734
4735 2016-04-26 Bin Cheng <bin.cheng@arm.com>
4736
4737 * tree-if-conv.c (any_pred_load_store): New static variable.
4738 (if_convertible_gimple_assign_stmt_p): Remove parameter. Use
4739 any_pred_load_store instead of and_mask_load_store.
4740 (if_convertible_stmt_p, if_convertible_loop_p_1): Ditto.
4741 (if_convertible_loop_p, insert_gimplified_predicates): Ditto.
4742 (combine_blocks, tree_if_conversion): Ditto.
4743
4744 2016-04-26 Bin Cheng <bin.cheng@arm.com>
4745
4746 PR tree-optimization/70771
4747 PR tree-optimization/70775
4748 * tree-if-conv.c (if_convertible_phi_p): Remove check on special
4749 virtual PHI nodes. Delete parameter.
4750 (if_convertible_loop_p_1): Delete argument to above function.
4751 (predicate_all_scalar_phis): Delete code handling single-argument
4752 PHIs.
4753 (tree_if_conversion): Mark and update virtual SSA.
4754
4755 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4756
4757 PR target/61821
4758 * config/i386/i386.c (LARGECOMM_SECTION_ASM_OP): Define default.
4759 (x86_elf_aligned_common): Rename to ...
4760 (x86_elf_aligned_decl_common): ... this.
4761 Add decl arg. Switch to .lbss for largecomm object. Use
4762 LARGECOMM_SECTION_ASM_OP.
4763 * config/i386/i386-protos.h (x86_elf_aligned_common): Reflect
4764 renaming.
4765 * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_COMMON): Rename to ...
4766 (ASM_OUTPUT_ALIGNED_DECL_COMMON): ... this.
4767 Pass new decl arg.
4768 * config/i386/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
4769 [!USE_GAS] (LARGECOMM_SECTION_ASM_OP): Define.
4770
4771 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4772
4773 PR target/59407
4774 * config/i386/i386.c (SECTION_LARGE): Define.
4775 (x86_64_elf_select_section): Set it for large data/bss sections.
4776 Only clear SECTION_WRITE for .lrodata.
4777 (x86_64_elf_section_type_flags): Set SECTION_LARGE for large
4778 data/bss sections.
4779 * config/i386/sol2.h (MACH_DEP_SECTION_ASM_FLAG): Define.
4780 * varasm.c (default_elf_asm_named_section): Grow flagchars.
4781 [MACH_DEP_SECTION_ASM_FLAG] Emit MACH_DEP_SECTION_ASM_FLAG for
4782 SECTION_MACH_DEP.
4783 * doc/tm.texi.in (Sections, MACH_DEP_SECTION_ASM_FLAG): Describe.
4784 * doc/tm.texi: Regenerate.
4785
4786 2016-04-26 Jakub Jelinek <jakub@redhat.com>
4787
4788 PR bootstrap/70704
4789 * configure.ac (--enable-checking): Document extra flag, for
4790 non-release builds default to --enable-checking=yes,extra.
4791 If misc checking and extra checking, define CHECKING_P to 2 instead
4792 of 1.
4793 * common.opt (fchecking=): Add.
4794 * doc/invoke.texi (-fchecking=): Document.
4795 * doc/install.texi: Document --enable-checking changes.
4796 * configure: Regenerated.
4797 * config.in: Regenerated.
4798
4799 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
4800
4801 * config/i386/i386.md (*movxi_internal_avx512f): Use insn type
4802 attribute instead of which_alternative.
4803 * config/i386/sse.md (*mov<mode>_internal): Ditto.
4804 Use EXT_REX_SSE_REG_P where appropriate.
4805
4806 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
4807
4808 * config/i386/predicates.md (const0_operand): Do not match
4809 const_wide_int code.
4810 (const1_operand): Ditto.
4811
4812 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
4813
4814 * config/i386/i386.md (*movoi_internal_avx): Set mode attribute to XI
4815 for SSE constm1 operands and TARGET_AVX512VL.
4816 (*movti_internal): Ditto.
4817 (*mov<mode>_or): Use constm1_operand predicate.
4818 * config/i386/sse.md (*mov<mode>_internal): Set mode attribute to XI
4819 for SSE vector_all_ones operands and TARGET_AVX512VL.
4820 * config/i386/predicates.md (constm1_operand): New predicate.
4821 * config/i386/i386.c (standard_sse_constant_opcode): Simplify
4822 emission of constant -1 load.
4823
4824 2016-04-25 Jason Merrill <jason@redhat.com>
4825
4826 * gdbinit.in: Skip is-a.h.
4827
4828 * attribs.c (register_scoped_attributes): Fix logic.
4829 * attribs.h: Declare register_scoped_attributes.
4830
4831 2016-04-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4832
4833 * config/rs6000/rs6000-builtin.def: Correct pasto error for
4834 stxvd2x and stxvw4x built-in functions.
4835
4836 2016-04-25 DJ Delorie <dj@redhat.com>
4837
4838 * config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
4839 (ashrhi3): Likewise.
4840 (lshrhi3): Likewise.
4841
4842 2016-04-25 Richard Biener <rguenther@suse.de>
4843
4844 PR tree-optimization/70780
4845 * tree-ssa-pre.c (compute_antic_aux): Also return true if the block
4846 wasn't visited yet.
4847 (compute_antic): Mark blocks with abnormal preds as visited as
4848 they have a final empty antic-in solution already.
4849
4850 2016-04-25 Michael Collison <michael.collison@linaro.org>
4851
4852 * ChangeLog(2016-04-25): Fix ChangeLog formatting.
4853
4854 2016-04-25 Michael Collison <michael.collison@linaro.org>
4855
4856 * config/arm/neon.md (widen_<us>sum<mode>): New patterns where
4857 mode is VQI to improve mixed mode vectorization.
4858 * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3): New
4859 define_insn to match low half of signed vaddw.
4860 * config/arm/neon.md (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): New
4861 define_insn to match high half of signed vaddw.
4862 * config/arm/neon.md (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): New
4863 define_insn to match low half of unsigned vaddw.
4864 * config/arm/neon.md (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): New
4865 define_insn to match high half of unsigned vaddw.
4866 * config/arm/arm.c (arm_simd_vect_par_cnst_half): New function.
4867 (arm_simd_check_vect_par_cnst_half_p): Likewise.
4868 * config/arm/arm-protos.h (arm_simd_vect_par_cnst_half): Prototype
4869 for new function.
4870 (arm_simd_check_vect_par_cnst_half_p): Likewise.
4871 * config/arm/predicates.md (vect_par_constant_high): Support
4872 big endian and simplify by calling
4873 arm_simd_check_vect_par_cnst_half
4874 (vect_par_constant_low): Likewise.
4875
4876 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
4877
4878 * config/i386/i386.md (*lea<mode>_general_4): Use const_0_to_3_operand
4879 predicate for operand 2.
4880
4881 2016-04-24 Uros Bizjak <ubizjak@gmail.com>
4882 H.J. Lu <hongjiu.lu@intel.com>
4883
4884 * config/i386/i386-protos.h (standard_sse_constant_p): Add
4885 machine_mode argument.
4886 * config/i386/i386.c (standard_sse_constant_p): Return 2 for
4887 constm1_rtx operands. For VOIDmode constants, get mode from
4888 pred_mode. Check mode size if the mode is supported by ABI.
4889 (standard_sse_constant_opcode): Do not use standard_constant_p.
4890 Strictly check ABI support for all-ones operands.
4891 (ix86_legitimate_constant_p): Handle TImode, OImode and XImode
4892 immediates. Update calls to standard_sse_constant_p.
4893 (ix86_expand_vector_move): Update calls to standard_sse_constant_p.
4894 (ix86_rtx_costs): Ditto.
4895 * config/i386/i386.md (*movxi_internal_avx512f): Use
4896 nonimmediate_or_sse_const_operand instead of vector_move_operand.
4897 Use (v,BC) alternative instead of (v,C). Use register_operand
4898 checks instead of MEM_P.
4899 (*movoi_internal_avx): Use nonimmediate_or_sse_const_operand instead
4900 of vector_move_operand. Add (v,BC) alternative and corresponding avx2
4901 isa attribute. Use register_operand checks instead of MEM_P.
4902 (*movti_internal): Use nonimmediate_or_sse_const_operand for
4903 TARGET_SSE. Improve TARGET_SSE insn constraint. Add (v,BC)
4904 alternative and corresponding sse2 isa attribute.
4905 (*movtf_internal, *movdf_internal, *movsf_interal): Update calls
4906 to standard_sse_constant_p.
4907 (FP constant splitters): Ditto.
4908 * config/i386/constraints.md (BC): Do not use standard_sse_constant_p.
4909 (C): Ditto.
4910 * config/i386/predicates.md (constm1_operand): Remove.
4911 (nonimmediate_or_sse_const_operand): Rewrite using RTX.
4912 * config/i386/sse.md (*<avx512>_cvtmask2<ssemodesuffix><mode>): Use
4913 vector_all_ones_operand instead of constm1_operand.
4914
4915 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4916
4917 * print-rtl.c (print_rtx_insn_vec): New function.
4918 * print-rtl.h: New prototype.
4919 * store-motion.c (struct st_expr): Make avail_stores a vector.
4920 (st_expr_entry): Adjust.
4921 (free_st_expr_entry): Likewise.
4922 (print_store_motion_mems): Likewise.
4923 (find_moveable_store): Likewise.
4924 (compute_store_table): Likewise.
4925 (delete_store): Likewise.
4926 (build_store_vectors): Likewise.
4927
4928 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4929
4930 * reorg.c (try_merge_delay_insns): Make merged_insns a vector.
4931
4932 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4933
4934 * vec.h (vec_safe_contains): New function.
4935 (vec::contains): Likewise.
4936 (vec::begin): Likewise.
4937 (vec::end): Likewise.
4938
4939 2016-04-23 Jakub Jelinek <jakub@redhat.com>
4940
4941 PR sanitizer/70712
4942 * cfgexpand.c (expand_stack_vars): Fix typo.
4943
4944 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
4945
4946 * system.h (list, map, set, vector): Include conditionally.
4947 * auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define.
4948 * graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define.
4949 * ipa-icf.c (INCLUDE_LIST): Define.
4950 * config/aarch64/cortex-a57-fma-steering.c (INCLUDE_LIST): Define.
4951 * config/sh/sh.c (INCLUDE_VECTOR): Define.
4952 * config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define.
4953 (INCLUDE_LIST, INCLUDE_VECTOR): Define.
4954 * cp/logic.cc (INCLUDE_LIST): Define.
4955 * fortran/trans-common.c (INCLUDE_MAP): Define.
4956
4957 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
4958
4959 * auto-profile.c: Remove <string.h> include.
4960 * ipa-icf-gimple.c: Remove <list> include.
4961 * diagnostic.c: Remove <new> include.
4962 * genmatch.c: Likewise.
4963 * pretty-print.c: Likewise.
4964 * toplev.c: Likewise
4965 * c/c-objc-common.c: Likewise.
4966 * cp/error.c: Likewise.
4967 * fortran/error.c: Likewise.
4968
4969 2016-04-22 Richard Biener <rguenther@suse.de>
4970
4971 * lto-streamer-in.c (input_ssa_names): Do not allocate
4972 GIMPLE_NOP for all SSA names.
4973 * lto-streamer-out.c (output_ssa_names): Do not output
4974 SSA names that should have been released.
4975
4976 2016-04-22 Richard Biener <rguenther@suse.de>
4977
4978 PR tree-optimization/70740
4979 * tree-ssa-phiprop.c (propagate_with_phi): Handle inserted
4980 VDEF.
4981
4982 2016-04-21 H.J. Lu <hongjiu.lu@intel.com>
4983
4984 PR target/70750
4985 * config/i386/predicates.md (call_insn_operand): Replace
4986 sibcall_memory_operand with memory_operand.
4987
4988 2016-04-21 Patrick Palka <ppalka@gcc.gnu.org>
4989
4990 * tree-vrp.c (register_edge_assert_for_2): Remove redundant
4991 has_single_use() tests.
4992 (register_edge_assert_for_1): Likewise.
4993 (find_assert_locations_1): Check the liveness bitmap instead of
4994 checking has_single_use().
4995
4996 2016-04-21 Kirill Yukhin <kirill.yukhin@intel.com>
4997
4998 PR target/70728
4999 * config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
5000 Extract AVX-512BW constraint from AVX.
5001
5002 2016-04-21 Richard Biener <rguenther@suse.de>
5003
5004 PR tree-optimization/70725
5005 * tree-if-conv.c (if_convertible_phi_p): Adjust guard
5006 for phi_convertible_by_degenerating_args.
5007 (predicate_all_scalar_phis): Handle single-argument PHIs.
5008
5009 2016-04-21 Richard Biener <rguenther@suse.de>
5010
5011 PR middle-end/70747
5012 * fold-const.c (fold_comparison): Return properly typed
5013 constant boolean.
5014
5015 2016-04-21 Bin Cheng <bin.cheng@arm.com>
5016
5017 PR tree-optimization/70715
5018 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
5019 after expanding BASE using expand_simple_operations.
5020
5021 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
5022
5023 * match.pd (min(-x, -y), max(-x, -y), min(~x, ~y), max(~x, ~y)):
5024 New transformations.
5025
5026 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
5027
5028 * match.pd (min(int_max, x), max(int_min, x)): New transformations.
5029
5030 2016-04-20 Jan Hubicka <jh@suse.cz>
5031
5032 * ipa-inline.c (can_inline_edge_p): Pass caller info to
5033 ultiimate_alias_target.
5034 (update_callee_keys): Likewise.
5035 (lookup_recursive_calls): Likewise.
5036 (speculation_useful_p): Likewise.
5037
5038 2016-04-20 Jan Hubicka <jh@suse.cz>
5039
5040 PR ipa/70018
5041 * cgraph.c (cgraph_set_nothrow_flag_1): Rename to ...
5042 (set_nothrow_flag_1): ... this; handle interposition correctly;
5043 recurse on aliases and thunks.
5044 (cgraph_node::set_nothrow_flag): New.
5045 * ipa-pure-const.c (ignore_edge_for_nothrow): Ignore calls to
5046 functions compiled with non-call exceptions that binds to current
5047 def.
5048 (propagate_nothrow): Be safe WRT interposition.
5049 * cgraph.h (set_nothrow_flag): Update prototype.
5050
5051 2016-04-18 Jan Hubicka <jh@suse.cz>
5052
5053 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
5054 max_loop_iterations_int.
5055 (tree_unswitch_outer_loop): Likewise.
5056
5057 2016-04-20 Bin Cheng <bin.cheng@arm.com>
5058
5059 PR tree-optimization/69489
5060 * tree-if-conv.c (phi_convertible_by_degenerating_args): New.
5061 (if_convertible_phi_p): Call phi_convertible_by_degenerating_args.
5062 Revise dump message.
5063 (if_convertible_bb_p): Remove check on edge count of basic block's
5064 predecessors.
5065
5066 2016-04-20 Bin Cheng <bin.cheng@arm.com>
5067
5068 PR tree-optimization/56625
5069 PR tree-optimization/69489
5070 * tree-data-ref.h (DR_INNERMOST): New macro.
5071 * tree-if-conv.c (innermost_loop_behavior_hash): New class for
5072 hashing struct innermost_loop_behavior.
5073 (ref_DR_map): Remove.
5074 (innermost_DR_map): New map.
5075 (baseref_DR_map): Revise comment.
5076 (hash_memrefs_baserefs_and_store_DRs_read_written_info): Store DR
5077 to innermost_DR_map accroding to its innermost loop behavior.
5078 (ifcvt_memrefs_wont_trap): Get DR from innermost_DR_map according
5079 to its innermost loop behavior.
5080 (if_convertible_loop_p_1): Remove intialization for ref_DR_map.
5081 Add initialization for innermost_DR_map. Record memory reference
5082 in DR_BASE_ADDRESS if the reference is compound one or it doesn't
5083 have innermost loop behavior.
5084 (if_convertible_loop_p): Remove release for ref_DR_map. Release
5085 innermost_DR_map.
5086
5087 2016-04-20 Uros Bizjak <ubizjak@gmail.com>
5088
5089 * config/i386/i386.md (*lea<mode>_general_1): Rename from
5090 *lea_general_1. Use explicit SWI12 mode interator.
5091 (*lea<mode>_general_2): Rename from *lea_general_2.
5092 Use explicit SWI12 mode interator.
5093 (*lea<mode>_general_3): Rename from *lea_general_3.
5094 Use explicit SWI12 mode interator.
5095 (*lea<SWI12:mode>_general_4): Split from *lea_general_4.
5096 Use explicit SWI12 mode interator.
5097 (*lea<SWI48:mode>_general_4): Split from *lea_general_4.
5098 Use explicit SWI48 mode interator.
5099
5100 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
5101
5102 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
5103 Short-cut unaligned load and store cases. Handle all integer
5104 vector modes.
5105 (ix86_expand_vector_move_misalign): Short-cut unaligned load
5106 and store cases. Call ix86_avx256_split_vector_move_misalign
5107 directly without checking mode class.
5108
5109 2016-04-20 Andrew Pinski <apinski@cavium.com>
5110 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5111
5112 PR target/64971
5113 * config/aarch64/aarch64.md (sibcall): Force call
5114 address to be DImode for ILP32.
5115 (sibcall_value): Likewise.
5116
5117 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
5118
5119 * doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.
5120
5121 2016-04-20 Richard Biener <rguenther@suse.de>
5122
5123 * gimple-match.h (maybe_build_generic_op): Adjust prototype.
5124 * gimple-match-head.c (maybe_build_generic_op): Pass all ops
5125 by reference, clear op1 and op2 when GENERICizing BIT_FIELD_REF.
5126 (maybe_push_res_to_seq): Adjust.
5127 * gimple-fold.c (maybe_build_generic_op): Likewise.
5128
5129 2016-04-20 Marek Polacek <polacek@redhat.com>
5130
5131 * tree-if-conv.c (is_false_predicate): For NULL_TREE return false
5132 rather than true.
5133
5134 2016-04-20 Ilya Enkovich <ilya.enkovich@intel.com>
5135
5136 * config/i386/sse.md (vec_unpacks_lo_hi): Always
5137 use kmovw to support AVX512F target.
5138
5139 2016-04-20 Bin Cheng <bin.cheng@arm.com>
5140
5141 * tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
5142
5143 2016-04-20 Marek Polacek <polacek@redhat.com>
5144
5145 PR tree-optimization/70725
5146 * tree-if-conv.c (is_false_predicate): New function.
5147 (predicate_mem_writes): Use it.
5148
5149 2016-04-20 Richard Biener <rguenther@suse.de>
5150
5151 PR tree-optimization/70726
5152 * tree-vect-stmts.c (vectorizable_shift): Do not use scalar
5153 shift amounts from a pattern stmt operand.
5154
5155 2016-04-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5156
5157 PR target/70674
5158 * config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new
5159 stack_restore_from_fpr pattern when restoring r15.
5160 (s390_optimize_prologue): Strip away the memory barrier in the
5161 parallel when trying to get rid of restore insns.
5162 * config/s390/s390.md ("stack_restore_from_fpr"): New insn
5163 definition for loading the stack pointer from an FPR. Compared to
5164 the normal move insn this pattern includes a full memory barrier.
5165
5166 2016-04-19 Jakub Jelinek <jakub@redhat.com>
5167
5168 PR middle-end/70680
5169 * gimplify.c (gimplify_omp_for): Call omp_notice_variable for
5170 implicitly linear or lastprivate iterator on the outer context.
5171
5172 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
5173
5174 * config/i386/i386.c (ix86_legitimate_combined_insn): Remove
5175 alignment check.
5176 * config/i386/i386.md (ssememalign): Removed.
5177 * config/i386/sse.md: Remove ssememalign attribute from patterns.
5178
5179 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
5180
5181 PR target/69201
5182 * config/i386/avx512bwintrin.h (_mm512_mask_loadu_epi16): Pass
5183 const short * to __builtin_ia32_loaddquhi512_mask.
5184 (_mm512_maskz_loadu_epi16): Likewise.
5185 (_mm512_mask_storeu_epi16): Pass short * to
5186 __builtin_ia32_storedquhi512_mask.
5187 (_mm512_mask_loadu_epi8): Pass const char * to
5188 __builtin_ia32_loaddquqi512_mask.
5189 (_mm512_maskz_loadu_epi8): Likewise.
5190 (_mm512_mask_storeu_epi8): Pass char * to
5191 __builtin_ia32_storedquqi512_mask.
5192 * config/i386/avx512fintrin.h (_mm512_loadu_pd): Pass
5193 const double * to __builtin_ia32_loadupd512_mask.
5194 (_mm512_mask_loadu_pd): Likewise.
5195 (_mm512_maskz_loadu_pd): Likewise.
5196 (_mm512_storeu_pd): Pass double * to
5197 __builtin_ia32_storeupd512_mask.
5198 (_mm512_mask_storeu_pd): Likewise.
5199 (_mm512_loadu_ps): Pass const float * to
5200 __builtin_ia32_loadups512_mask.
5201 (_mm512_mask_loadu_ps): Likewise.
5202 (_mm512_maskz_loadu_ps): Likewise.
5203 (_mm512_storeu_ps): Pass float * to
5204 __builtin_ia32_storeups512_mask.
5205 (_mm512_mask_storeu_ps): Likewise.
5206 (_mm512_mask_loadu_epi64): Pass const long long * to
5207 __builtin_ia32_loaddqudi512_mask.
5208 (_mm512_maskz_loadu_epi64): Likewise.
5209 (_mm512_mask_storeu_epi64): Pass long long *
5210 to __builtin_ia32_storedqudi512_mask.
5211 (_mm512_loadu_si512): Pass const int * to
5212 __builtin_ia32_loaddqusi512_mask.
5213 (_mm512_mask_loadu_epi32): Likewise.
5214 (_mm512_maskz_loadu_epi32): Likewise.
5215 (_mm512_storeu_si512): Pass int * to
5216 __builtin_ia32_storedqusi512_mask.
5217 (_mm512_mask_storeu_epi32): Likewise.
5218 * config/i386/avx512vlbwintrin.h (_mm256_mask_storeu_epi8): Pass
5219 char * to __builtin_ia32_storedquqi256_mask.
5220 (_mm_mask_storeu_epi8): Likewise.
5221 (_mm256_mask_loadu_epi16): Pass const short * to
5222 __builtin_ia32_loaddquhi256_mask.
5223 (_mm256_maskz_loadu_epi16): Likewise.
5224 (_mm_mask_loadu_epi16): Pass const short * to
5225 __builtin_ia32_loaddquhi128_mask.
5226 (_mm_maskz_loadu_epi16): Likewise.
5227 (_mm256_mask_loadu_epi8): Pass const char * to
5228 __builtin_ia32_loaddquqi256_mask.
5229 (_mm256_maskz_loadu_epi8): Likewise.
5230 (_mm_mask_loadu_epi8): Pass const char * to
5231 __builtin_ia32_loaddquqi128_mask.
5232 (_mm_maskz_loadu_epi8): Likewise.
5233 (_mm256_mask_storeu_epi16): Pass short * to.
5234 __builtin_ia32_storedquhi256_mask.
5235 (_mm_mask_storeu_epi16): Pass short * to.
5236 __builtin_ia32_storedquhi128_mask.
5237 * config/i386/avx512vlintrin.h (_mm256_mask_loadu_pd): Pass
5238 const double * to __builtin_ia32_loadupd256_mask.
5239 (_mm256_maskz_loadu_pd): Likewise.
5240 (_mm_mask_loadu_pd): Pass onst double * to
5241 __builtin_ia32_loadupd128_mask.
5242 (_mm_maskz_loadu_pd): Likewise.
5243 (_mm256_mask_storeu_pd): Pass double * to
5244 __builtin_ia32_storeupd256_mask.
5245 (_mm_mask_storeu_pd): Pass double * to
5246 __builtin_ia32_storeupd128_mask.
5247 (_mm256_mask_loadu_ps): Pass const float * to
5248 __builtin_ia32_loadups256_mask.
5249 (_mm256_maskz_loadu_ps): Likewise.
5250 (_mm_mask_loadu_ps): Pass const float * to
5251 __builtin_ia32_loadups128_mask.
5252 (_mm_maskz_loadu_ps): Likewise.
5253 (_mm256_mask_storeu_ps): Pass float * to
5254 __builtin_ia32_storeups256_mask.
5255 (_mm_mask_storeu_ps): ass float * to
5256 __builtin_ia32_storeups128_mask.
5257 (_mm256_mask_loadu_epi64): Pass const long long * to
5258 __builtin_ia32_loaddqudi256_mask.
5259 (_mm256_maskz_loadu_epi64): Likewise.
5260 (_mm_mask_loadu_epi64): Pass const long long * to
5261 __builtin_ia32_loaddqudi128_mask.
5262 (_mm_maskz_loadu_epi64): Likewise.
5263 (_mm256_mask_storeu_epi64): Pass long long * to
5264 __builtin_ia32_storedqudi256_mask.
5265 (_mm_mask_storeu_epi64): Pass long long * to
5266 __builtin_ia32_storedqudi128_mask.
5267 (_mm256_mask_loadu_epi32): Pass const int * to
5268 __builtin_ia32_loaddqusi256_mask.
5269 (_mm256_maskz_loadu_epi32): Likewise.
5270 (_mm_mask_loadu_epi32): Pass const int * to
5271 __builtin_ia32_loaddqusi128_mask.
5272 (_mm_maskz_loadu_epi32): Likewise.
5273 (_mm256_mask_storeu_epi32): Pass int * to
5274 __builtin_ia32_storedqusi256_mask.
5275 (_mm_mask_storeu_epi32): Pass int * to
5276 __builtin_ia32_storedqusi128_mask.
5277 * config/i386/i386-builtin-types.def (PCSHORT): New.
5278 (PINT64): Likewise.
5279 (V64QI_FTYPE_PCCHAR_V64QI_UDI): Likewise.
5280 (V32HI_FTYPE_PCSHORT_V32HI_USI): Likewise.
5281 (V32QI_FTYPE_PCCHAR_V32QI_USI): Likewise.
5282 (V16SF_FTYPE_PCFLOAT_V16SF_UHI): Likewise.
5283 (V8DF_FTYPE_PCDOUBLE_V8DF_UQI): Likewise.
5284 (V16SI_FTYPE_PCINT_V16SI_UHI): Likewise.
5285 (V16HI_FTYPE_PCSHORT_V16HI_UHI): Likewise.
5286 (V16QI_FTYPE_PCCHAR_V16QI_UHI): Likewise.
5287 (V8SF_FTYPE_PCFLOAT_V8SF_UQI): Likewise.
5288 (V8DI_FTYPE_PCINT64_V8DI_UQI): Likewise.
5289 (V8SI_FTYPE_PCINT_V8SI_UQI): Likewise.
5290 (V8HI_FTYPE_PCSHORT_V8HI_UQI): Likewise.
5291 (V4DF_FTYPE_PCDOUBLE_V4DF_UQI): Likewise.
5292 (V4SF_FTYPE_PCFLOAT_V4SF_UQI): Likewise.
5293 (V4DI_FTYPE_PCINT64_V4DI_UQI): Likewise.
5294 (V4SI_FTYPE_PCINT_V4SI_UQI): Likewise.
5295 (V2DF_FTYPE_PCDOUBLE_V2DF_UQI): Likewise.
5296 (V2DI_FTYPE_PCINT64_V2DI_UQI): Likewise.
5297 (VOID_FTYPE_PDOUBLE_V8DF_UQI): Likewise.
5298 (VOID_FTYPE_PDOUBLE_V4DF_UQI): Likewise.
5299 (VOID_FTYPE_PDOUBLE_V2DF_UQI): Likewise.
5300 (VOID_FTYPE_PFLOAT_V16SF_UHI): Likewise.
5301 (VOID_FTYPE_PFLOAT_V8SF_UQI): Likewise.
5302 (VOID_FTYPE_PFLOAT_V4SF_UQI): Likewise.
5303 (VOID_FTYPE_PINT64_V8DI_UQI): Likewise.
5304 (VOID_FTYPE_PINT64_V4DI_UQI): Likewise.
5305 (VOID_FTYPE_PINT64_V2DI_UQI): Likewise.
5306 (VOID_FTYPE_PINT_V16SI_UHI): Likewise.
5307 (VOID_FTYPE_PINT_V8SI_UHI): Likewise.
5308 (VOID_FTYPE_PINT_V4SI_UHI): Likewise.
5309 (VOID_FTYPE_PSHORT_V32HI_USI): Likewise.
5310 (VOID_FTYPE_PSHORT_V16HI_UHI): Likewise.
5311 (VOID_FTYPE_PSHORT_V8HI_UQI): Likewise.
5312 (VOID_FTYPE_PCHAR_V64QI_UDI): Likewise.
5313 (VOID_FTYPE_PCHAR_V32QI_USI): Likewise.
5314 (VOID_FTYPE_PCHAR_V16QI_UHI): Likewise.
5315 (V64QI_FTYPE_PCV64QI_V64QI_UDI): Removed.
5316 (V32HI_FTYPE_PCV32HI_V32HI_USI): Likewise.
5317 (V32QI_FTYPE_PCV32QI_V32QI_USI): Likewise.
5318 (V16HI_FTYPE_PCV16HI_V16HI_UHI): Likewise.
5319 (V16QI_FTYPE_PCV16QI_V16QI_UHI): Likewise.
5320 (V8HI_FTYPE_PCV8HI_V8HI_UQI): Likewise.
5321 (VOID_FTYPE_PV32HI_V32HI_USI): Likewise.
5322 (VOID_FTYPE_PV16HI_V16HI_UHI): Likewise.
5323 (VOID_FTYPE_PV8HI_V8HI_UQI): Likewise.
5324 (VOID_FTYPE_PV64QI_V64QI_UDI): Likewise.
5325 (VOID_FTYPE_PV32QI_V32QI_USI): Likewise.
5326 (VOID_FTYPE_PV16QI_V16QI_UHI): Likewise.
5327 * config/i386/i386.c (ix86_emit_save_reg_using_mov): Don't
5328 use UNSPEC_STOREU.
5329 (ix86_emit_restore_sse_regs_using_mov): Don't use UNSPEC_LOADU.
5330 (ix86_avx256_split_vector_move_misalign): Don't use unaligned
5331 load nor store.
5332 (ix86_expand_vector_move_misalign): Likewise.
5333 (bdesc_special_args): Use CODE_FOR_movvNXY_internal and pointer
5334 to scalar function prototype for unaligned load/store builtins.
5335 (ix86_expand_special_args_builtin): Updated.
5336 * config/i386/sse.md (UNSPEC_LOADU): Removed.
5337 (UNSPEC_STOREU): Likewise.
5338 (VI_ULOADSTORE_BW_AVX512VL): Likewise.
5339 (VI_ULOADSTORE_F_AVX512VL): Likewise.
5340 (ssescalarsize): Handle V4TI, V2TI and V1TI.
5341 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
5342 (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
5343 (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Likewise.
5344 (<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask): Likewise.
5345 (<sse2_avx_avx512f>_loaddqu<mode><mask_name>): Likewise.
5346 (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"): Likewise.
5347 (sse2_avx_avx512f>_storedqu<mode>): Likewise.
5348 (<avx512>_storedqu<mode>_mask): Likewise.
5349 (*sse4_2_pcmpestr_unaligned): Likewise.
5350 (*sse4_2_pcmpistr_unaligned): Likewise.
5351 (*mov<mode>_internal): Renamed to ...
5352 (mov<mode>_internal): This. Remove check of AVX and IAMCU on
5353 misaligned operand. Replace vmovdqu64 with vmovdqu<ssescalarsize>.
5354 (movsd/movhpd to movupd peephole): Don't use UNSPEC_LOADU.
5355 (movlpd/movhpd to movupd peephole): Don't use UNSPEC_STOREU.
5356
5357 2016-04-19 Richard Biener <rguenther@suse.de>
5358
5359 PR tree-optimization/70171
5360 * tree-ssa-phiprop.c: Include stor-layout.h.
5361 (phiprop_insert_phi): Handle the aggregate copy case.
5362 (propagate_with_phi): Likewise.
5363
5364 2016-04-19 Uros Bizjak <ubizjak@gmail.com>
5365
5366 * config/i386/i386.c (ix86_decompose_address): Use lowpart_subreg
5367 instead of simplify_gen_subreg (... , 0).
5368 (ix86_delegitimize_address): Ditto.
5369 (ix86_split_divmod): Ditto.
5370 (ix86_split_copysign_const): Ditto.
5371 (ix86_split_copysign_var): Ditto.
5372 (ix86_expand_args_builtin): Ditto.
5373 (ix86_expand_round_builtin): Ditto.
5374 (ix86_expand_special_args_builtin): Ditto.
5375 * config/i386/i386.md (TARGET_USE_VECTOR_FP_CONVERTS splitters): Ditto.
5376 (TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters and peephole2s): Ditto.
5377 (udivmodqi4): Ditto.
5378 (absneg splitters): Ditto.
5379 (*jcc_bt<mode>_1): Ditto.
5380
5381 2016-04-19 Richard Biener <rguenther@suse.de>
5382
5383 PR tree-optimization/70724
5384 * tree-ssa-sccvn.c (scc_vn_restore_ssa_info): Split SSA info
5385 restoring out from ...
5386 (free_scc_vn): ... here.
5387 * tree-ssa-sccvn.h (scc_vn_restore_ssa_info): Declare.
5388 * tres-ssa-pre.c (pass_pre::execute): Restore SSA info before
5389 tail merging.
5390 (pass_fre::execute): Restore SSA info.
5391
5392 2016-04-19 Richard Biener <rguenther@suse.de>
5393
5394 * gimple-walk.h (struct walk_stmt_info): Add stmt member.
5395 * gimple-walk.c (walk_gimple_op): Initialize it.
5396 (walk_gimple_asm): Set wi->is_lhs before each callback invocation.
5397 * tree-inline.c (remap_gimple_op_r): Set SSA_NAME_DEF_STMT when
5398 remapping SSA names of defs.
5399 (copy_bb): Remove walk over all SSA defs and SSA_NAME_DEF_STMT
5400 adjustment.
5401
5402 2016-04-18 Vladimir Makarov <vmakarov@redhat.com>
5403
5404 PR middle-end/70689
5405 * lra-constraints.c (equiv_substition_p): New.
5406 (process_alt_operands): Use it.
5407 (swap_operands): Swap it.
5408 (curr_insn_transform): Update it.
5409
5410 2016-04-18 Michael Matz <matz@suse.de>
5411
5412 * tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount.
5413 (SET_TYPE_ALIGN, SET_DECL_ALIGN): New.
5414 * tree-core.h (tree_type_common.align): Use bit-field.
5415 (tree_type_common.spare): New.
5416 (tree_decl_common.off_align): Make smaller.
5417 (tree_decl_common.align): Use bit-field.
5418
5419 * expr.c (expand_expr_addr_expr_1): Use SET_TYPE_ALIGN.
5420 * omp-low.c (install_var_field): Use SET_DECL_ALIGN.
5421 (scan_sharing_clauses): Ditto.
5422 (finish_taskreg_scan): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
5423 (omp_finish_file): Ditto.
5424 * stor-layout.c (do_type_align): Use SET_DECL_ALIGN.
5425 (layout_decl): Ditto.
5426 (relayout_decl): Ditto.
5427 (finalize_record_size): Use SET_TYPE_ALIGN.
5428 (finalize_type_size): Ditto.
5429 (finish_builtin_struct): Ditto.
5430 (layout_type): Ditto.
5431 (initialize_sizetypes): Ditto.
5432 * targhooks.c (std_gimplify_va_arg_expr): Use SET_TYPE_ALIGN.
5433 * tree-nested.c (insert_field_into_struct): Use SET_TYPE_ALIGN.
5434 (lookup_field_for_decl): Use SET_DECL_ALIGN.
5435 (get_chain_field): Ditto.
5436 (get_trampoline_type): Ditto.
5437 (get_nl_goto_field): Ditto.
5438 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
5439 SET_DECL_ALIGN.
5440 (unpack_ts_type_common_value_fields): Use SET_TYPE_ALIGN.
5441 * gimple-expr.c (copy_var_decl): Use SET_DECL_ALIGN.
5442 * tree.c (make_node_stat): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
5443 (build_qualified_type): Use SET_TYPE_ALIGN.
5444 (build_aligned_type, build_range_type_1): Ditto.
5445 (build_atomic_base): Ditto.
5446 (build_common_tree_nodes): Ditto.
5447 * cfgexpand.c (align_local_variable): Use SET_DECL_ALIGN.
5448 (expand_one_stack_var_at): Ditto.
5449 * coverage.c (build_var): Use SET_DECL_ALIGN.
5450 * except.c (init_eh): Ditto.
5451 * function.c (assign_parm_setup_block): Ditto.
5452 * symtab.c (increase_alignment_1): Ditto.
5453 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Ditto.
5454 * tree-vect-stmts.c (ensure_base_align): Ditto.
5455 * varasm.c (align_variable): Ditto.
5456 (assemble_variable): Ditto.
5457 (build_constant_desc): Ditto.
5458 (output_constant_def_contents): Ditto.
5459
5460 * config/arm/arm.c (arm_relayout_function): Use SET_DECL_ALIGN.
5461 * config/avr/avr.c (avr_adjust_type_node): Use SET_TYPE_ALIGN.
5462 * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Ditto.
5463 * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Ditto.
5464 * config/spu/spu.c (spu_build_builtin_va_list): Use SET_DECL_ALIGN.
5465
5466 2016-04-18 H.J. Lu <hongjiu.lu@intel.com>
5467
5468 PR target/70708
5469 * config/i386/sse.md (sse2_loadlpd): Accept load from "xm" and
5470 replace %vmovsd with "%vmovq".
5471 (vec_concatv2df): Likewise.
5472
5473 2016-04-18 Uros Bizjak <ubizjak@gmail.com>
5474
5475 * config/i386/mmx.md (*vec_extractv2sf_0): Use gen_lowpart.
5476 (*vec_extractv2si_0): Ditto.
5477 * config/i386/sse.md (*vec_extractv4sf_0): Ditto.
5478 (zero_extended_scalar_load_operand splitters): Ditto.
5479 (vec_extract splitters): Ditto.
5480 (*vec_extractv4si_0_zext): Ditto.
5481 (avx_<castmode><avxsizesuffix>_<castmode>): Use gen_lowpart
5482 and lowpart_subreg.
5483 (avx512f_<castmode><avxsizesuffix>_<castmode>): Ditto.
5484 (avx512f_<castmode><avxsizesuffix>_256<castmode>): Ditto.
5485 (*sse4_1_extractps): Use lowpart_subreg.
5486 * config/i386/i386.md (x87 floatsplitter): Use gen_lowpart.
5487
5488 2016-04-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5489
5490 * doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
5491 gld requirements.
5492 (Specific, *-*-solaris2*): Update Solaris 11 bundled gcc versions.
5493 Mention Solaris 11 packaging changes.
5494 Update gas and gld requirements.
5495 Remove reference to pre-Solaris 10 bug.
5496 (Specific, sparc-sun-solaris2*): Remove reference to pre-Solaris 10
5497 systems and bugs.
5498 (Specific, sparc64-*-solaris2*): Remove reference to bootstrap
5499 with cc.
5500
5501 2016-04-17 Jan Hubicka <jh@suse.cz>
5502
5503 * tree-ssa-loop-ivopts.c (avg_loop_niter): Use also
5504 max_loop_iterations_int.
5505
5506 2016-04-18 Richard Biener <rguenther@suse.de>
5507
5508 PR tree-optimization/43434
5509 * tree-ssa-structalias.c (struct vls_data): New.
5510 (visit_loadstore): Handle all pointer-based accesses.
5511 (compute_dependence_clique): Compute a bitmap of restrict tags
5512 assigned bases and pass it to visit_loadstore.
5513
5514 2016-04-18 Matthew Wahab <matthew.wahab@arm.com>
5515
5516 PR target/70711
5517 * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc,
5518 armv8.1-a and armv8.1-a+crc.
5519
5520 2016-04-18 Richard Biener <rguenther@suse.de>
5521
5522 PR tree-optimization/70701
5523 * tree-ssa-sccvn.c (vn_reference_lookup_3): Resolve fully constant
5524 references after translating through a memcpy.
5525
5526 2016-04-18 Richard Biener <rguenther@suse.de>
5527
5528 * tree-ssa-pre.c (postorder, postorder_num): Make locals ...
5529 (compute_antic): ... here. For partial antic use regular
5530 postorder and scrap iteration.
5531 (compute_partial_antic_aux): Remove unused return value.
5532 (init_pre): Do not allocate postorder.
5533 (fini_pre): Do not free postorder.
5534
5535 2016-04-18 Richard Biener <rguenther@suse.de>
5536
5537 PR middle-end/37870
5538 * expmed.c (extract_bit_field_1): Remove broken case
5539 using a wider MODE_INT mode.
5540
5541 2016-04-18 Segher Boessenkool <segher@kernel.crashing.org>
5542
5543 * has-brig.c (lendian16): Don't try to use __builtin_bswap16
5544 unless compiling with at least GCC-4.8.
5545
5546 2016-04-17 Jan Hubicka <jh@suse.cz>
5547
5548 PR bootstrap/70706
5549 * graphite.c (graphite_finalize): Update call to
5550 tree_estimate_probability.
5551 * predict.h (tree_estimate_probability): Update prototype.
5552
5553 2016-04-17 Jan Hubicka <jh@suse.cz>
5554
5555 * predict.c (combine_predictions_for_bb): Add dry_run parmaeter.
5556 (tree_estimate_probability): Likewise.
5557 (pass_profile::execute): Update.
5558 (report_predictor_hitrates): New function.
5559 * profile.c (compute_branch_probabilities): Use it.
5560 * predict.h (report_predictor_hitrates): Declare.
5561
5562 2016-04-17 Jan Hubicka <jh@suse.cz>
5563
5564 PR ipa/70018
5565 * cgraph.h (cgraph_node::set_const_flag,
5566 cgraph_node::set_pure_flag): Update prototype to return bool;
5567 update comment.
5568 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Thunks
5569 of interposable symbol are interposable, too.
5570 (cgraph_set_const_flag_1): Rename to ...
5571 (set_const_flag_1): ... this one; change to self recursive function
5572 instead of call_for_symbol_thunks_and_aliases. Handle correctly
5573 clearnig the flag in all variants and also virtual thunks of const
5574 functions are pure; track if any change was done.
5575 (cgraph_node::set_const_flag): Update.
5576 (struct set_pure_flag_info): New struct.
5577 (cgraph_set_pure_flag_1): Rename to ...
5578 (set_pure_flag_1): ... this one; take set_pure_flag_info parameter
5579 rather than pointer encoded flags; track if any changes was done;
5580 handle correctly clearning flag and setting flag of aliases already
5581 declared const.
5582 (cgraph_node::set_pure_flag): Update.
5583 (cgraph_node::set_nothrow_flag): Handle correctly clearning the flag.
5584
5585 2016-04-17 Tom de Vries <tom@codesourcery.com>
5586
5587 PR other/70433
5588 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Escape
5589 backslash in label.
5590
5591 2016-04-17 Tom de Vries <tom@codesourcery.com>
5592
5593 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Classify chars
5594 '{}<> ' as escape-for-record.
5595
5596 2016-04-17 Tom de Vries <tom@codesourcery.com>
5597
5598 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Simplify loop
5599 structure.
5600
5601 2016-04-17 Tom de Vries <tom@codesourcery.com>
5602
5603 PR other/70185
5604 * tree-pass.h (class opt_pass): Remove graph_dump_initialized member.
5605 * dumpfile.h (struct dump_file_info): Add graph_dump_initialized field.
5606 * dumpfile.c (dump_files): Initialize graph_dump_initialized field.
5607 * passes.c (finish_optimization_passes): Only call
5608 finish_graph_dump_file if dfi->graph_dump_initialized.
5609 (execute_function_dump, pass_init_dump_file): Use
5610 dfi->graph_dump_initialized instead of pass->graph_dump_initialized.
5611
5612 2016-04-17 Tom de Vries <tom@codesourcery.com>
5613
5614 PR tree-optimization/70256
5615 * tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap)
5616 (debug_varmap): New function.
5617
5618 2016-04-17 Tom de Vries <tom@codesourcery.com>
5619
5620 PR other/70183
5621 * passes.c (pass_manager::register_pass): Propagate pflags.
5622
5623 2016-04-17 Tom de Vries <tom@codesourcery.com>
5624
5625 PR other/68875
5626 * pass_manager.h (TERMINATE_PASS_LIST): Add pass argument.
5627 * passes.c (pass_manager::pass_manager): Declare and init p_start in
5628 INSERT_PASSES_AFTER. Add pass parameter to TERMINATE_PASS_LIST, and
5629 check if it's equal to p_start.
5630 * passes.def: Add arguments to TERMINATE_PASS_LISTs.
5631
5632 2016-04-15 Jan Hubicka <jh@suse.cz>
5633
5634 PR ipa/70018
5635 * cgraph.c (cgraph_set_const_flag_1): Only set as pure if
5636 function does not bind to current def.
5637 * ipa-pure-const.c (worse_state): Add FROM and TO parameters;
5638 handle conservatively calls to functions that does not need to bind
5639 to current def.
5640 (check_call): Update call of worse_state.
5641 (ignore_edge_for_nothrow): Update.
5642 (ignore_edge_for_pure_const): Likewise.
5643 (propagate_pure_const): Update calls to worse_state.
5644 (skip_function_for_local_pure_const): Reformat comments.
5645
5646 2016-04-15 Jan Hubicka <jh@suse.cz>
5647
5648 PR ipa/70018
5649 * cgraph.c (cgraph_node::get_availability): Add REF parameter.
5650 (cgraph_node::function_symbol): Likewise.
5651 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
5652 * cgraph.h (symtab_node::get_availabbility): Add REF parameter.
5653 (symtab_node::ultimate_alias_target): Add REF parameter.
5654 (symtab_node::binds_to_current_def_p): Declare.
5655 (symtab_node;:ultimate_alias_target_1): Add REF parameter.
5656 (cgraph_node::function_symbol): Likewise.
5657 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
5658 (cgraph_node::get_availability): Likewise.
5659 (cgraph_edge::binds_to_current_def_p): New inline function.
5660 (varpool_node::get_availability): Add REF parameter.
5661 (varpool_node::ultimate_alias_target): Likewise.
5662 * symtab.c (symtab_node::ultimate_alias_target_1): Likewise.
5663 (symtab_node::binds_to_current_def_p): Likewise.
5664 * varpool.c (varpool_node::get_availability): Likewise.
5665
5666 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
5667
5668 PR target/70662
5669 * config/i386/sse.md(define_insn "<avx512>_vec_dup<mode><mask_name>"):
5670 Fix mode size check.
5671
5672 2016-04-15 Jakub Jelinek <jakub@redhat.com>
5673
5674 * BASE-VER: Set to 7.0.0.
5675
5676 2016-04-15 Alexander Monakov <amonakov@ispras.ru>
5677
5678 * config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.
5679
5680 2016-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5681
5682 * doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T
5683 architecture revisions.
5684
5685 2016-04-15 Bernd Schmidt <bschmidt@redhat.com>
5686
5687 * config/i386/i386-protos.h (ix86_using_red_zone): Declare.
5688 * config/i386/i386.c (ix86_using_red_zone): No longer static.
5689 * config/i386/i386.md (stack decrement to push peepholes): Guard
5690 with !x86_using_red_zone ().
5691
5692 2016-04-15 Jakub Jelinek <jakub@redhat.com>
5693
5694 PR c++/70675
5695 * tree-pretty-print.c (do_niy): Add FLAGS argument, pass it down
5696 to dump_generic_node.
5697 (NIY): Pass also flags to do_niy.
5698
5699 2016-04-15 Thomas Schwinge <thomas@codesourcery.com>
5700
5701 * omp-low.c (simd_clone_struct_alloc, simd_clone_struct_copy)
5702 (simd_clone_vector_of_formal_parm_types)
5703 (simd_clone_clauses_extract, simd_clone_compute_base_data_type)
5704 (simd_clone_mangle, simd_clone_create)
5705 (simd_clone_adjust_return_type, create_tmp_simd_array)
5706 (simd_clone_adjust_argument_types, simd_clone_init_simd_arrays)
5707 (struct modify_stmt_info, ipa_simd_modify_stmt_ops)
5708 (ipa_simd_modify_function_body, simd_clone_linear_addend)
5709 (simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone)
5710 (pass_data_omp_simd_clone, class pass_omp_simd_clone)
5711 (pass_omp_simd_clone::gate, make_pass_omp_simd_clone): Move into...
5712 * omp-simd-clone.c: ... this new file.
5713 (simd_clone_vector_of_formal_parm_types): Make it static.
5714 * Makefile.in (OBJS): Add omp-simd-clone.o.
5715
5716 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
5717
5718 PR target/70662
5719 * config/i386/sse.md: Use proper memory operand modifiers.
5720
5721
5722 2016-04-15 Richard Biener <rguenther@suse.de>
5723 Alan Modra <amodra@gmail.com>
5724
5725 PR tree-optimization/70130
5726 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Detect
5727 when alignment stays not the same and no not use the realign
5728 scheme then.
5729
5730 2016-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
5731
5732 PR target/70669
5733 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
5734 direct move handlers for KFmode. Change TFmode handlers test from
5735 FLOAT128_IEEE_P to FLOAT128_VECTOR_P.
5736
5737 2016-04-14 Jakub Jelinek <jakub@redhat.com>
5738
5739 PR c++/70594
5740 * ipa-utils.h (polymorphic_ctor_dtor_p): New prototype.
5741 * ipa-polymorphic-call.c (polymorphic_ctor_dtor_p): New function.
5742 (inlined_polymorphic_ctor_dtor_block_p): Use it.
5743 * tree-ssa-live.c (remove_unused_scope_block_p): When
5744 in_ctor_dtor_block, avoid discarding not just BLOCKs with
5745 BLOCK_ABSTRACT_ORIGIN being FUNCTION_DECL, but even when
5746 block_ultimate_origin is FUNCTION_DECL.
5747 (remove_unused_locals): If current_function_decl is
5748 polymorphic_ctor_dtor_p, pass initial true to
5749 remove_unused_scope_block_p' is_ctor_dtor_block.
5750
5751 2016-04-14 Martin Sebor <msebor@redhat.com>
5752
5753 PR c++/69517
5754 PR c++/70019
5755 PR c++/70588
5756 * doc/extend.texi (Variable Length): Revert.
5757
5758 2016-04-14 Marek Polacek <polacek@redhat.com>
5759 Jan Hubicka <hubicka@ucw.cz>
5760
5761 PR c++/70029
5762 * tree.c (verify_type): Disable the canonical type of main variant
5763 check.
5764
5765 2016-04-14 Jason Merrill <jason@redhat.com>
5766
5767 * cfgexpand.c, expr.c: Revert previous change.
5768
5769 2016-04-14 Cesar Philippidis <cesar@codesourcery.com>
5770
5771 PR middle-end/70643
5772 * omp-low.c (lower_oacc_reductions): Check for TREE_CONSTANT
5773 when building a mem ref for the incoming reduction variable.
5774
5775 2016-04-14 Richard Biener <rguenther@suse.de>
5776
5777 PR tree-optimization/70614
5778 * tree-scalar-evolution.c (analyze_evolution_in_loop): Terminate
5779 loop if the evolution dropped to chrec_dont_know.
5780 (interpret_condition_phi): Likewise.
5781
5782 2016-04-14 Richard Biener <rguenther@suse.de>
5783
5784 PR tree-optimization/70623
5785 * tree-ssa-pre.c (changed_blocks): Make global ...
5786 (compute_antic): ... local here. Move and fix worklist
5787 handling here. Do not clear EDGE_DFS_BACK or call mark_dfs_back_edges.
5788 (compute_antic_aux): Add dumping for MAX assumed succs. Remove
5789 worklist handling, dump when ANTIC_IN changed.
5790 (compute_partial_antic_aux): Remove worklist handling.
5791 (init_pre): Do not compute post dominators. Add a comment about
5792 the CFG order chosen.
5793 (fini_pre): Do not free post dominators.
5794
5795 2016-04-13 Martin Sebor <msebor@redhat.com>
5796
5797 PR c++/69517
5798 PR c++/70019
5799 PR c++/70588
5800 * doc/extend.texi (Variable Length): Document C++ specifics.
5801
5802 2016-04-13 Jakub Jelinek <jakub@redhat.com>
5803
5804 PR c++/70641
5805 * ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt
5806 on all recursive call stmts. Return TODO_cleanup_cfg if any dead
5807 eh edges have been purged.
5808
5809 PR c++/70594
5810 * tree-sra.c (create_access_replacement,
5811 get_replaced_param_substitute): Set DECL_NAMELESS on repl if it
5812 gets fancy name.
5813 * tree-pretty-print.c (dump_fancy_name): New function.
5814 (dump_decl_name, dump_generic_node): Use it.
5815
5816 2016-04-13 Jason Merrill <jason@redhat.com>
5817
5818 * cfgexpand.c (pass_expand::execute): Handle attribute "abi warning".
5819 * expr.c (expand_expr_real_1): Likewise.
5820
5821 2016-04-13 Ilya Enkovich <ilya.enkovich@intel.com>
5822
5823 * config/i386/i386.md (kunpckhi): Swap operands.
5824 (kunpcksi): Likewise.
5825 (kunpckdi): Likewise.
5826 * config/i386/sse.md (vec_pack_trunc_qi): Likewise.
5827 (vec_pack_trunc_<mode>): Likewise.
5828
5829 2016-04-13 Jakub Jelinek <jakub@redhat.com>
5830
5831 PR debug/70628
5832 * explow.c (convert_memory_address_addr_space_1): Formatting fix.
5833
5834 PR middle-end/70633
5835 * gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
5836 gimplification turns some element into non-constant.
5837
5838 PR debug/70628
5839 * rtl.h (convert_memory_address_addr_space_1): New prototype.
5840 * explow.c (convert_memory_address_addr_space_1): No longer static,
5841 add NO_EMIT argument and don't call convert_modes if true, pass
5842 it down recursively, remove break after return.
5843 (convert_memory_address_addr_space): Adjust caller.
5844 * simplify-rtx.c (simplify_unary_operation_1): Call
5845 convert_memory_address_addr_space_1 instead of convert_memory_address,
5846 if it returns NULL, don't simplify.
5847
5848 2016-04-12 Eric Botcazou <ebotcazou@adacore.com>
5849
5850 PR target/70630
5851 * config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.
5852
5853 2016-04-12 Jakub Jelinek <jakub@redhat.com>
5854
5855 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
5856 Bump the upper SIMDLEN limits, so that if the return type or
5857 characteristic type if the return type is void can be passed in
5858 all available SSE2/AVX/AVX2/AVX512-F registers, the SIMDLEN is
5859 allowed.
5860
5861 2016-04-12 Michael Meissner <meissner@linux.vnet.ibm.com>
5862
5863 PR target/70640
5864 * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2_internal):
5865 Do not use "=" constraint on an input constraint.
5866 (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
5867 (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
5868 (ieee_128bit_vsx_nabs<mode>2): Correct splitter so that it
5869 generates (neg (abs ...)) instead of (abs ...).
5870
5871 2016-04-12 Jakub Jelinek <jakub@redhat.com>
5872
5873 PR rtl-optimization/70596
5874 * lra-spills.c (spill_pseudos): Don't delete debug insns, instead
5875 just invalidate LRA data and reset them. Adjust dump wording.
5876
5877 2016-04-12 Martin Liska <mliska@suse.cz>
5878
5879 Revert
5880 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
5881
5882 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
5883 estimates here.
5884 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
5885 max_loop_iterations_int.
5886 (tree_unswitch_outer_loop): Likewise.
5887 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
5888 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
5889
5890 2016-04-12 Tom de Vries <tom@codesourcery.com>
5891
5892 PR tree-optimization/68756
5893 * graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr
5894 instead of new_name.
5895
5896 2016-04-12 Jakub Jelinek <jakub@redhat.com>
5897
5898 PR tree-optimization/70602
5899 * tree-sra.c (generate_subtree_copies): Don't write anything into
5900 constant pool decls.
5901
5902 * omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
5903 regardless whether there are depend clauses or not.
5904
5905 2016-04-11 Michael Meissner <meissner@linux.vnet.ibm.com>
5906
5907 PR target/70381
5908 * config/rs6000/rs6000.c (rs6000_opt_masks): Disable using the
5909 target attribute and pragma from changing the -mfloat128
5910 and -mfloat128-hardware options.
5911
5912 * doc/extend.texi (Additional Floating Types): Document PowerPC
5913 __float128 restrictions.
5914
5915 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
5916
5917 PR target/70133
5918 * config/aarch64/driver-aarch64.c
5919 (aarch64_get_extension_string_for_isa_flags): New.
5920 (arch_extension): Rename to...
5921 (aarch64_arch_extension): ...This.
5922 (ext_to_feat_string): Rename to...
5923 (aarch64_extensions): ...This.
5924 (aarch64_core_data): Keep track of architecture extension flags.
5925 (cpu_data): Rename to...
5926 (aarch64_cpu_data): ...This.
5927 (aarch64_arch_driver_info): Keep track of architecture extension
5928 flags.
5929 (get_arch_name_from_id): Rename to...
5930 (get_arch_from_id): ...This, change return type.
5931 (host_detect_local_cpu): Update and reformat for renames, handle
5932 extensions through common infrastructure.
5933
5934 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
5935
5936 PR target/70133
5937 * config/aarch64/aarch64-common.c (aarch64_option_extension): Keep
5938 track of a canonical flag name.
5939 (all_extensions): Likewise.
5940 (arch_to_arch_name): Also track extension flags enabled by the arch.
5941 (all_architectures): Likewise.
5942 (aarch64_parse_extension): Move to here.
5943 (aarch64_get_extension_string_for_isa_flags): Take a new argument,
5944 rework.
5945 (aarch64_rewrite_selected_cpu): Update for above change.
5946 * config/aarch64/aarch64-option-extensions.def: Rework the way flags
5947 are handled, such that the single explicit value enabled by an
5948 extension is kept seperate from the implicit values it also enables.
5949 * config/aarch64/aarch64-protos.h (aarch64_parse_opt_result): Move
5950 to here.
5951 (aarch64_parse_extension): New.
5952 * config/aarch64/aarch64.c (aarch64_parse_opt_result): Move from
5953 here to config/aarch64/aarch64-protos.h.
5954 (aarch64_parse_extension): Move from here to
5955 common/config/aarch64/aarch64-common.c.
5956 (aarch64_option_print): Update.
5957 (aarch64_declare_function_name): Likewise.
5958 (aarch64_start_file): Likewise.
5959 * config/aarch64/driver-aarch64.c (arch_extension): Keep track of
5960 the canonical flag for extensions.
5961 * config.gcc (aarch64*-*-*): Extend regex for capturing extension
5962 flags.
5963
5964 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
5965
5966 * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
5967 AARCH64_FL_CRC.
5968
5969 2016-04-09 Tom de Vries <tom@codesourcery.com>
5970
5971 PR tree-optimization/68953
5972 * graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from
5973 first to last subscript.
5974
5975 2016-04-09 Jakub Jelinek <jakub@redhat.com>
5976
5977 PR tree-optimization/70586
5978 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false
5979 for any calls.
5980
5981 2016-04-08 Cesar Philippidis <cesar@codesourcery.com>
5982
5983 PR lto/70289
5984 PR ipa/70348
5985 PR tree-optimization/70373
5986 PR middle-end/70533
5987 PR middle-end/70534
5988 PR middle-end/70535
5989 * gimplify.c (gimplify_adjust_omp_clauses): Add or adjust data
5990 clauses for acc parallel reductions as necessary. Error on those
5991 that are private.
5992 * omp-low.c (scan_sharing_clauses): Don't install variables which
5993 are used in acc parallel reductions.
5994 (lower_rec_input_clauses): Remove dead code.
5995 (lower_oacc_reductions): Add support for reference reductions.
5996 (lower_reduction_clauses): Remove dead code.
5997 (lower_omp_target): Don't remap variables appearing in acc parallel
5998 reductions.
5999 * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro.
6000
6001 2016-04-08 Jakub Jelinek <jakub@redhat.com>
6002
6003 PR middle-end/70593
6004 * tree-ssa-coalesce.c (build_ssa_conflict_graph): For stmt
6005 with multiple SSA_NAME defs, force the outputs other than first
6006 to be live before calling live_track_process_def on each output.
6007
6008 PR rtl-optimization/70574
6009 * fwprop.c (forward_propagate_and_simplify): Don't add
6010 REG_EQUAL note if DF_REF_REG (use) is a paradoxical subreg.
6011 (try_fwprop_subst): Don't add REG_EQUAL note if there are any
6012 paradoxical subregs within *loc.
6013
6014 2016-04-08 Thomas Schwinge <thomas@codesourcery.com>
6015
6016 * config/arc/arc.h (LINK_COMMAND_SPEC): Use gt to ignore
6017 -ftree-parallelize-loops={0,1}.
6018 * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
6019 * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
6020 * config/ia64/hpux.h (LIB_SPEC): Likewise.
6021 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
6022 * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
6023
6024 2016-04-08 Maxim Ostapenko <m.ostapenko@samsung.com>
6025
6026 PR sanitizer/70541
6027 * asan.c (instrument_derefs): If we get unknown location, extract it
6028 with EXPR_LOCATION.
6029 (maybe_instrument_call): Instrument gimple_call's arguments if needed.
6030
6031 2016-04-08 Tom de Vries <tom@codesourcery.com>
6032
6033 * omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc
6034 implicit firstprivate clause.
6035
6036 2016-04-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6037
6038 PR target/70566
6039 * config/arm/thumb2.md (tst + branch-> lsls + branch
6040 peephole below *orsi_not_shiftsi_si): Require that condition
6041 register is dead after the peephole.
6042 (second peephole after the above): Likewise.
6043
6044 2016-04-08 Alan Modra <amodra@gmail.com>
6045
6046 PR target/70117
6047 * builtins.c (fold_builtin_classify): For IBM extended precision,
6048 look at just the high-order double to test for NaN.
6049 (fold_builtin_interclass_mathfn): Similarly for Inf. For isnormal
6050 test just the high double for Inf but both doubles for subnormal
6051 limit.
6052
6053 2016-04-07 Jakub Jelinek <jakub@redhat.com>
6054
6055 * cgraph.h (struct cgraph_simd_clone): Add mask_mode field.
6056 * omp-low.c (simd_clone_init_simd_arrays, simd_clone_adjust): Handle
6057 node->simdclone->mask_mode != VOIDmode masks.
6058 (simd_clone_adjust_argument_types): Likewise. Move sc var definition
6059 earlier, use it instead of node->simdclone.
6060 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
6061 Set clonei->mask_mode.
6062
6063 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
6064
6065 PR c/70436
6066 * parser.c (cp_parser_iteration_statement): New parameter IF_P.
6067 Pass it through to cp_parser_already_scoped_statement.
6068 (cp_parser_already_scoped_statement): New parameter IF_P. Pass
6069 it through to cp_parser_statement.
6070 (cp_parser_statement): Pass IF_P through to
6071 cp_parser_iteration_statement.
6072 (cp_parser_pragma): Adjust call to
6073 cp_parser_iteration_statement.
6074
6075 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
6076
6077 PR c/70436
6078 * gimplify.c (gimplify_omp_ordered): Add explicit braces to
6079 resolve a future -Wparentheses warning.
6080 * omp-low.c (scan_sharing_clauses): Likewise.
6081 * tree-parloops.c (eliminate_local_variables): Likewise.
6082
6083 2016-04-06 Vladimir Makarov <vmakarov@redhat.com>
6084
6085 PR rtl-optimization/70398
6086 * lra-constraints.c (process_address_1): Check zero scale and code
6087 for reloading with zero scale.
6088
6089 2016-04-06 Uros Bizjak <ubizjak@gmail.com>
6090
6091 * config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
6092 (ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.
6093
6094 2016-04-06 Jakub Jelinek <jakub@redhat.com>
6095
6096 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
6097 Add support for AVX512F clones, include them by default for
6098 exported OpenMP declare simd functions. For AVX2 allow simdlen 32
6099 and use it if charasteric type is 8-bit, for AVX512F allow simdlen
6100 up to 128.
6101
6102 PR middle-end/70550
6103 * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define.
6104 * gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit
6105 firstprivate clauses.
6106 * omp-low.c (lower_send_clauses): Set TREE_NO_WARNING for
6107 OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT !by_ref vars in task contexts.
6108 (lower_omp_target): Set TREE_NO_WARNING for
6109 non-addressable possibly uninitialized vars which are copied into
6110 addressable temporaries or copied for GOMP_MAP_FIRSTPRIVATE_INT.
6111
6112 2016-04-05 John David Anglin <danglin@gcc.gnu.org>
6113
6114 * config/pa/predicates.md (integer_store_memory_operand): Accept
6115 REG+D operands with a large offset when reload_in_progress is true.
6116 (floating_point_store_memory_operand): Likewise.
6117
6118 2016-04-05 Jakub Jelinek <jakub@redhat.com>
6119
6120 PR c++/70336
6121 * match.pd (nested int casts): Limit to GIMPLE.
6122
6123 2016-04-05 Jan Hubicka <hubicka@ucw.cz>
6124
6125 PR ipa/66223
6126 * ipa-devirt.c (maybe_record_node): Fix comment; use
6127 SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.
6128
6129 2016-04-05 Jakub Jelinek <jakub@redhat.com>
6130
6131 PR rtl-optimization/70542
6132 * ree.c (add_removable_extension): For VECTOR_MODE_P punt
6133 if there are any uses other than insn or debug insns.
6134
6135 2016-04-05 Marc Glisse <marc.glisse@inria.fr>
6136 Jakub Jelinek <jakub@redhat.com>
6137
6138 PR tree-optimization/70509
6139 * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SELECT>:
6140 Shift HOST_WIDE_INT_1U instead of 1.
6141
6142 2016-04-05 Zdenek Sojka <zsojka@seznam.cz>
6143
6144 PR tree-optimization/70509
6145 * tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int instead
6146 of the vector base type for index.
6147
6148 2016-04-05 Uros Bizjak <ubizjak@gmail.com>
6149
6150 PR target/70510
6151 * config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.
6152
6153 2016-04-05 Richard Biener <rguenther@suse.de>
6154
6155 PR tree-optimization/70526
6156 * tree-sra.c (build_ref_for_offset): Use prev_base to
6157 extract the alias pointer type.
6158
6159 2016-04-05 Richard Biener <rguenther@suse.de>
6160
6161 * dse.c (struct store_info): Remove alias_set member.
6162 (struct read_info_type): Likewise.
6163 (clear_alias_group, clear_alias_mode_table, clear_alias_mode_holder,
6164 spill_deleted, clear_alias_set_lookup): Remove.
6165 (get_group_info): Remove dead base == NULL_RTX case.
6166 (dse_step0): Remove initialization of removed variables.
6167 (delete_dead_store_insn): Reomve alias set dumping.
6168 (free_read_records): Remove alias_set handling.
6169 (canon_address): Remove alias_set_out parameter.
6170 (record_store): Remove spill_alias_set, it's always zero.
6171 (check_mem_read_rtx): Likewise.
6172 (dse_step2): Rename from ...
6173 (dse_step2_nospill): ... this. Adjust.
6174 (scan_stores): Rename from ...
6175 (scan_stores_nospill): ... this.
6176 (scan_reads): Rename from ...
6177 (scan_reads_nospill): ... this.
6178 (scan_stores_spill, scan_reads_spill): Remove.
6179 (dse_step3_scan): Remove for_spills argument which is always false.
6180 (dse_step3): Likewise.
6181 (dse_step5): Rename from ...
6182 (dse_step5_nospill): ... this. Remove alias_set handling.
6183 (rest_of_handle_dse): Adjust.
6184
6185 2016-04-05 Jakub Jelinek <jakub@redhat.com>
6186
6187 PR target/70525
6188 * config/i386/sse.md (*andnot<mode>3): Simplify assertions.
6189 Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for
6190 V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting.
6191 (*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator.
6192
6193 2016-04-05 Richard Biener <rguenther@suse.de>
6194
6195 PR middle-end/70499
6196 * gimplify-me.c (gimple_regimplify_operands): Do not rewrite
6197 non-register type temporaries into SSA.
6198
6199 2016-04-04 Jan Hubicka <hubicka@ucw.cz>
6200
6201 PR ipa/66223
6202 * ipa-devirt.c (maybe_record_node): Do not optimize cxa_pure_virtual
6203 calls when sanitizing.
6204 (possible_polymorphic_call_target_p): Fix formatting.
6205
6206 2016-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6207 Jakub Jelinek <jakub@redhat.com>
6208
6209 PR middle-end/70457
6210 * tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p
6211 to ensure a call statement is compatible with a built-in's
6212 prototype.
6213 * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
6214 Likewise.
6215
6216 2016-04-04 Richard Biener <rguenther@suse.de>
6217
6218 PR rtl-optimization/70484
6219 * rtl.h (canon_output_dependence): Declare.
6220 * alias.c (canon_output_dependence): New function.
6221 * dse.c (record_store): Use canon_output_dependence rather
6222 than canon_true_dependence.
6223
6224 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
6225
6226 PR ipa/68881
6227 * cgraph.h (symtab_node::copy_visibility_from): New function.
6228 * symtab.c (symtab_node::copy_visibility_from): New function.
6229 * ipa-visibility.c (optimize_weakref): New function.
6230 (function_and_variable_visibility): Use it.
6231
6232 2016-04-04 Martin Liska <mliska@suse.cz>
6233
6234 PR hsa/70402
6235 * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Guard index
6236 value that is really in range handled by SBR instruction.
6237 * hsa-brig.c (emit_switch_insn): Do not emit unconditional jump.
6238 * hsa-dump.c (dump_hsa_insn_1): Do not dump default BB.
6239 * hsa.h (hsa_insn_sbr::m_default_bb): Remove field.
6240
6241 2016-04-03 Oleg Endo <olegendo@gcc.gnu.org>
6242
6243 PR target/70416
6244 PR target/67391
6245 * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
6246 set, but not for SP_REG operands.
6247
6248 2016-04-02 Martin Sebor <msebor@redhat.com>
6249
6250 PR c++/67376
6251 * fold-const.c (maybe_nonzero_address): New function.
6252 (fold_comparison): Call it. Fold equality and relational
6253 expressions involving null pointers.
6254 (tree_single_nonzero_warnv_p): Call maybe_nonzero_address.
6255
6256 2016-03-31 Evandro Menezes <e.menezes@samsung.com>
6257
6258 Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
6259 the "Y" constraint (scalar FP 0.0 immediate).
6260
6261 * config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
6262 Add the "const_double" to the list of operand constraints.
6263
6264 2016-04-01 Jakub Jelinek <jakub@redhat.com>
6265
6266 PR rtl-optimization/70467
6267 * config/i386/i386.md (*add<dwi>3_doubleword, *sub<dwi>3_doubleword):
6268 If low word of the last operand is 0, just emit addition/subtraction
6269 for the high word.
6270
6271 2016-04-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
6272
6273 PR target/70404
6274 * config/s390/s390.c (s390_expand_insv): Check for everything
6275 constant instead of just VOIDmode stuff.
6276
6277 2016-04-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6278
6279 PR target/70496
6280 * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB.
6281
6282 2016-04-01 Nathan Sidwell <nathan@acm.org>
6283
6284 * tree.def (TRY_CATCH_EXPR): Correct documentation.
6285
6286 2016-03-31 Vladimir Makarov <vmakarov@redhat.com>
6287
6288 PR rtl-optimization/70461
6289 * ira-color.c (allocno_copy_cost_saving): Use allocno class if it
6290 is necessary.
6291
6292 2016-03-31 Martin Liska <mliska@suse.cz>
6293
6294 PR hsa/70399
6295 * hsa-brig.c (hsa_op_immed::emit_to_buffer): Emit either
6296 a tree value or an immediate integer value to a buffer
6297 that is eventually copied to a BRIG section.
6298 (emit_immediate_operand): Call the function here.
6299 * hsa-dump.c (dump_hsa_immed): Remove checking assert.
6300 * hsa-gen.c (hsa_op_immed::hsa_op_immed): Remove initialization
6301 of class' fields that are removed.
6302 (hsa_op_immed::~hsa_op_immed): Remove deinitialization.
6303 * hsa.h (class hsa_op_immed): Remove m_brig_repr and
6304 m_brig_repr_size fields.
6305
6306 2016-03-31 Martin Liska <mliska@suse.cz>
6307
6308 PR hsa/70391
6309 * hsa-gen.c (hsa_function_representation::update_dominance): New
6310 function.
6311 (convert_addr_to_flat_segment): Likewise.
6312 (gen_hsa_memory_set): New alignment argument.
6313 (gen_hsa_ctor_assignment): Likewise.
6314 (gen_hsa_insns_for_single_assignment): Provide alignment
6315 to gen_hsa_ctor_assignment.
6316 (gen_hsa_insns_for_direct_call): Add new argument.
6317 (expand_lhs_of_string_op): New function.
6318 (expand_string_operation_builtin): Likewise.
6319 (expand_memory_copy): New function.
6320 (expand_memory_set): New function.
6321 (gen_hsa_insns_for_call): Use HOST_WIDE_INT.
6322 (convert_switch_statements): Change signature.
6323 (generate_hsa): Use a return value of the function.
6324 (pass_gen_hsail::execute): Do not call
6325 convert_switch_statements here.
6326 * hsa-regalloc.c (hsa_regalloc): Call update_dominance.
6327 * hsa.h (hsa_function_representation::m_modified_cfg): New flag.
6328 (hsa_function_representation::update_dominance): New function.
6329
6330 2016-03-31 Martin Liska <mliska@suse.cz>
6331
6332 PR hsa/70391
6333 * hsa-brig.c (emit_directive_variable): Emit alignment
6334 according to hsa_symbol::m_align.
6335 * hsa-dump.c (hsa_byte_alignment): Move the function to another file.
6336 (dump_hsa_symbol): Dump alignment of HSA symbols.
6337 * hsa-gen.c (get_symbol_for_decl): Set-up alignment of a symbol.
6338 (gen_hsa_addr_with_align): New function.
6339 (hsa_bitmemref_alignment): Use newly added function.
6340 (gen_hsa_insns_for_load): Likewise.
6341 (gen_hsa_insns_for_store): Likewise.
6342 (gen_hsa_memory_copy): New argument added.
6343 (gen_hsa_insns_for_single_assignment): Respect
6344 alignment for assignments processed via gen_hsa_memory_copy.
6345 (gen_hsa_insns_for_direct_call): Likewise.
6346 (gen_hsa_insns_for_return): Likewise.
6347 (gen_function_def_parameters): Set default alignment.
6348 * hsa.c (hsa_object_alignment): New function.
6349 (hsa_byte_alignment): Pasted function.
6350 * hsa.h (hsa_symbol::m_align): New field.
6351
6352 2016-03-31 Bin Cheng <bin.cheng@arm.com>
6353
6354 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
6355 scratch field for goto case.
6356
6357 2016-03-31 James Greenhalgh <james.greenhalgh@arm.com>
6358
6359 * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.
6360
6361 2016-03-31 Ilya Enkovich <enkovich.gnu@gmail.com>
6362
6363 PR target/70442
6364 * config/i386/i386.c (scalar_chain::convert_op): Fix description.
6365 (scalar_chain::convert_insn): Call convert_op for reg
6366 moves to handle undefined registers.
6367
6368 2016-03-31 Nathan Sidwell <nathan@acm.org>
6369
6370 PR c++/70393
6371 * varasm.c (output_constructor_regular_field): Flush bitfield earlier.
6372 Assert we don't want to move backwards.
6373
6374 2016-03-31 Kirill Yukhin <kirill.yukhin@intel.com>
6375
6376 PR target/70453
6377 * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
6378
6379 2016-03-31 Jakub Jelinek <jakub@redhat.com>
6380
6381 PR rtl-optimization/70460
6382 * ira.c (indirect_jump_optimize): Don't substitute LABEL_REF
6383 with operand from REG_LABEL_OPERAND, instead substitute
6384 SET_SRC or REG_EQUAL note content if it is a LABEL_REF.
6385 Don't do anything for REG_NON_LOCAL_GOTO jumps.
6386
6387 2016-03-31 Martin Liska <mliska@suse.cz>
6388
6389 * passes.c (execute_one_pass): Do not call
6390 todo_after for a discarded function.
6391
6392 2016-03-31 Bin Cheng <bin.cheng@arm.com>
6393
6394 * tree-ssa-loop-ivopts.c (struct comp_cost): New scrach field.
6395 (no_cost, infinite_cost): Initialize the new field.
6396 (get_computation_cost_at): Record setup cost.
6397 (determine_use_iv_cost_address): Skip cost computation for sub
6398 uses if we can estimate it without losing accuracy.
6399
6400 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
6401
6402 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
6403 estimates here.
6404 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
6405 max_loop_iterations_int.
6406 (tree_unswitch_outer_loop): Likewise.
6407 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
6408 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
6409
6410 2016-03-30 Richard Biener <rguenther@suse.de>
6411
6412 PR middle-end/70450
6413 * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage.
6414
6415 2016-03-30 Jakub Jelinek <jakub@redhat.com>
6416
6417 PR target/70421
6418 * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
6419 in gen_blendm expander.
6420
6421 2016-03-30 Nick Clifton <nickc@redhat.com>
6422
6423 PR target/62254
6424 * config/arm/arm.c (arm_reload_out_hi): Add code to handle the
6425 case where we are already provided with an SImode SUBREG.
6426
6427 2016-03-30 H.J. Lu <hongjiu.lu@intel.com>
6428
6429 PR target/70439
6430 * config/i386/i386.c (ix86_expand_epilogue): Properly check
6431 conflict between DRAP register and __builtin_eh_return.
6432
6433 2016-03-30 Michael Matz <matz@suse.de>
6434 Richard Biener <rguenther@suse.de>
6435
6436 PR ipa/12392
6437 * ipa-polymorphic-call.c (struct type_change_info): Change
6438 speculative to an unsigned allowing to limit the work we do.
6439 (csftc_abort_walking_p): New inline function..
6440 (check_stmt_for_type_change): Limit the number of may-defs
6441 skipped for speculative devirtualization to
6442 max-speculative-devirt-maydefs.
6443 * params.def (max-speculative-devirt-maydefs): New param.
6444 * doc/invoke.texi (--param max-speculative-devirt-maydefs): Document.
6445
6446 2016-03-30 Mike Stump <mrs@gcc.gnu.org>
6447
6448 PR target/63890
6449 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
6450 and TARGET_MACHO.
6451
6452 2016-03-30 Patrick Palka <ppalka@gcc.gnu.org>
6453
6454 PR tree-optimization/59124
6455 * tree-vrp.c (register_edge_assert_for_2): For NAME != CST1
6456 where NAME = A +- CST2 add the assertion A != (CST1 -+ CST2).
6457
6458 2016-03-29 Jeff Law <law@redhat.com>
6459
6460 * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment.
6461
6462 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
6463
6464 * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
6465 to HOST_WIDE_INT.
6466
6467 2016-03-29 Thomas Schwinge <thomas@codesourcery.com>
6468
6469 * config/gnu.h (CPP_SPEC, LIB_SPEC): Don't override.
6470 * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt1.o instead of
6471 gcrt0.o if linking dynamically.
6472
6473 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
6474
6475 PR ipa/70283
6476 * ipa-devirt.c (methods_equal_p): New function.
6477 (compare_virtual_tables): Use it.
6478 * cgraph.h (symbol_table::symbol_suffix_separator): Declare.
6479 * cgraphclones.c (clone_function_name_1): Use
6480 symbol_table::symbol_suffix_separator.
6481 * coverage.c (build_var): Likewise.
6482 * symtab.c (symbol_table::symbol_suffix_separator): New.
6483
6484 2016-03-29 Jakub Jelinek <jakub@redhat.com>
6485
6486 PR rtl-optimization/70429
6487 * combine.c (simplify_shift_const_1): For ASHIFTRT don't optimize
6488 (cst1 >> count) >> cst2 into (cst1 >> cst2) >> count if
6489 mode != result_mode.
6490
6491 PR c++/70353
6492 * tree-inline.c (remap_decls): Don't add_local_decl if cfun is null.
6493
6494 PR tree-optimization/70405
6495 * ssa-iterators.h (num_imm_uses): Add missing braces.
6496
6497 2016-03-29 Vladimir Makarov <vmakarov@redhat.com>
6498
6499 PR rtl-optimization/68695
6500 * ira-color.c (allocno_copy_cost_saving): New.
6501 (improve_allocation): Use it.
6502
6503 2016-03-29 Richard Henderson <rth@redhat.com>
6504
6505 PR middle-end/70355
6506 * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.
6507
6508 2016-03-29 Richard Biener <rguenther@suse.de>
6509
6510 PR middle-end/70424
6511 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
6512 use alignment returned by get_pointer_alignment_1 if it is
6513 bigger than BITS_PER_UNIT.
6514 * builtins.c (get_pointer_alignment_1): Do not return true
6515 for alignment extracted from SSA info.
6516
6517 2016-03-28 James Bowman <james.bowman@ftdichip.com>
6518
6519 * config/ft32/ft32.opt (mnodiv): New.
6520 * config/ft32/ft32.md (*divsi3, *modsi3): Qualify with TARGET_NODIV.
6521 * doc/invoke.texi (FT32 Options -mnodiv): New.
6522
6523 2016-03-28 Kirill Yukhin <kirill.yukhin@intel.com>
6524
6525 PR target/70406
6526 * config/i386/i386.md (define_split, andn): Fix modes.
6527
6528 2016-03-26 Richard Biener <rguenther@suse.de>
6529 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6530
6531 PR ipa/70366
6532 * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
6533 instead of
6534 TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
6535 as 2nd argument to cl_optimization_restore().
6536
6537 2016-03-25 Richard Henderson <rth@redhat.com>
6538
6539 PR target/70120
6540 * config/aarch64/aarch64.c (aarch64_asm_output_pool_epilogue): New.
6541 * config/aarch64/aarch64-protos.h: Declare it.
6542 * config/aarch64/aarch64.h (ASM_OUTPUT_POOL_EPILOGUE): New.
6543
6544 2016-03-25 Alan Modra <amodra@gmail.com>
6545
6546 PR target/70052
6547 * config/rs6000/constraints.md (j): Simplify.
6548 * config/rs6000/predicates.md (easy_fp_constant): Exclude
6549 decimal float 0.D.
6550 * config/rs6000/rs6000.md (zero_fp): New mode_attr.
6551 (mov<mode>_hardfloat, mov<mode>_hardfloat32, mov<mode>_hardfloat64,
6552 mov<mode>_64bit_dm, mov<mode>_32bit): Use zero_fp in place of j
6553 in all constraint alternatives.
6554 (movtd_64bit_nodm): Delete "j" constraint alternative.
6555
6556 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
6557
6558 * tree-ssa-propagate.c: Enhance docs for
6559 SSA_PROP_NOT_INTERESTING.
6560
6561 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
6562
6563 * doc/extend.texi: Fix typo in documentation to pure attribute.
6564
6565 2016-03-24 John David Anglin <danglin@gcc.gnu.org>
6566
6567 PR target/70319
6568 * config/pa/pa.md (bswapdi2): Use a scratch register.
6569
6570 2016-03-24 Richard Henderson <rth@redhat.com>
6571
6572 PR middle-end/69845
6573 * fold-const.c (extract_muldiv_1): Correct test for multiplication
6574 overflow.
6575
6576 2016-03-24 Uros Bizjak <ubizjak@gmail.com>
6577
6578 * config/i386/i386.md (*anddi3_doubleword): Generate AND insn
6579 using ix86_expand_binary_operator instead of gen_andsi3.
6580
6581 2016-03-24 Richard Biener <rguenther@suse.de>
6582
6583 PR tree-optimization/70396
6584 * tree-vect-stmts.c (vectorizable_comparison): Use
6585 get_vectype_for_scalar_type.
6586
6587 2016-03-24 Richard Biener <rguenther@suse.de>
6588
6589 PR middle-end/70370
6590 * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
6591 with register bases.
6592
6593 2016-03-24 Richard Biener <rguenther@suse.de>
6594
6595 PR tree-optimization/70372
6596 * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Use
6597 build_all_ones_cst to also handle vector types correctly.
6598
6599 2016-03-23 Michael Meissner <meissner@linux.vnet.ibm.com>
6600
6601 PR target/70381
6602 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
6603 -mfloat128 here.
6604
6605 2016-03-23 Marek Polacek <polacek@redhat.com>
6606
6607 PR c++/69884
6608 * doc/invoke.texi: Document -Wignored-attributes.
6609
6610 2016-03-23 Bin Cheng <bin.cheng@arm.com>
6611
6612 PR tree-optimization/69042
6613 * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
6614 parameter from 30 to 40.
6615
6616 2016-03-23 Bin Cheng <bin.cheng@arm.com>
6617
6618 PR tree-optimization/69042
6619 * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Add IV cand
6620 for use with constant offset stripped in base.
6621
6622 2016-03-23 Richard Biener <rguenther@suse.de>
6623
6624 PR middle-end/70251
6625 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust
6626 mode compatibility check.
6627 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
6628
6629 2016-03-23 Jeff Law <law@redhat.com>
6630
6631 PR tree-optimization/64058
6632 * tree-ssa-coalesce.c (struct coalesce_pair): Add new field
6633 CONFLICT_COUNT.
6634 (struct ssa_conflicts): Move up earlier in the file.
6635 (conflicts_, var_map_): New static variables.
6636 (initialize_conflict_count): New function to initialize the
6637 CONFLICT_COUNT field for each conflict pair.
6638 (compare_pairs): Lazily initialize the conflict count and use it
6639 as the first tie-breaker.
6640 (sort_coalesce_list): Add new arguments conflicts, map. Initialize
6641 and wipe conflicts_ and map_ around the call to qsort. Remove
6642 special case for 2 coalesce pairs.
6643 * bitmap.c (bitmap_count_unique_bits): New function.
6644 (bitmap_count_bits_in_word): New function, extracted from
6645 bitmap_count_bits.
6646 (bitmap_count_bits): Use bitmap_count_bits_in_word.
6647 * bitmap.h (bitmap_count_unique_bits): Declare it.
6648
6649 2016-03-23 Ilya Enkovich <enkovich.gnu@gmail.com>
6650
6651 PR target/69917
6652 * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
6653 transparent alias chain for decl assembler name.
6654 * config/sol2.c (solaris_assemble_visibility): Likewise.
6655
6656 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6657
6658 * config/arm/arm1020e.md (1020call_op): Reduce reservation
6659 duration.
6660 (v10_fdivs): Likewise.
6661 (v10_fdivd): Likewise.
6662
6663 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6664
6665 PR driver/70132
6666 * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
6667 to not call fclose twice on file.
6668
6669 2016-03-23 Jakub Jelinek <jakub@redhat.com>
6670
6671 PR tree-optimization/70354
6672 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
6673 oprnd0 is wider than oprnd1 and there is a cast from the wider
6674 type to oprnd1, mask it with the mask of the narrower type.
6675
6676 PR target/70321
6677 * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
6678 Optimize TARGET_STV splitters, if high or low word of last argument
6679 is 0 or -1.
6680
6681 2016-03-22 Jeff Law <law@redhat.com>
6682
6683 PR target/70232
6684 tree-ssa-threadbackward.c
6685 (fsm_find_control_statement_thread_paths): Correctly distinguish
6686 between old style jump threads vs FSM jump threads.
6687
6688 2016-03-22 Ilya Enkovich <enkovich.gnu@gmail.com>
6689
6690 PR target/70302
6691 * config/i386/i386.c (scalar_chain::convert_op): Support
6692 uninitialized register usage case.
6693
6694 2016-03-22 Richard Biener <rguenther@suse.de>
6695
6696 PR middle-end/70251
6697 * genmatch.c (gen_transform): Adjust last parameter to a three-state
6698 int...
6699 (capture::gen_transform): ... to change behavior when substituting
6700 a condition into cond or not-cond expr context.
6701 (dt_simplify::gen_1): Adjust.
6702 * gimple-match-head.c: Include gimplify.h for unshare_expr.
6703 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Revert
6704 last change and instead change to
6705 A + (B vcmp C ? 1 : 0) -> A - (B vcmp C ? -1 : 0).
6706 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
6707
6708 2016-03-22 Anthony Green <green@moxielogic.com>
6709
6710 * config/moxie/moxiebox.h (CC1_SPEC): Define. Fix endianness
6711 issue for moxiebox targets.
6712 (CC1PLUS_SPEC): Ditto.
6713
6714 2016-03-22 Richard Biener <rguenther@suse.de>
6715
6716 PR middle-end/70333
6717 * fold-const.c (extract_muldiv_1): Properly perform multiplication
6718 in the wide type.
6719
6720 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
6721
6722 * config/i386/i386.c (def_builtin): Remove duplicated functionality.
6723
6724 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
6725
6726 PR target/70325
6727 * config/i386/i386.c (def_builtin): Handle
6728 OPTION_MASK_ISA_AVX512VL to be and-ed with other
6729 bits.
6730 (const struct builtin_description bdesc_special_args[]):
6731 Remove duplicate ISA bits.
6732
6733 2016-03-22 Jakub Jelinek <jakub@redhat.com>
6734
6735 PR target/70329
6736 * config/i386/i386.c (ix86_expand_vecop_qihi): Don't bother computing
6737 d.perm[i] for i >= d.nelt. If not full_interleave, compute d.perm[i]
6738 in a way that works also for AVX512BW.
6739
6740 PR target/70300
6741 * config/i386/i386.md (cvtsd2ss splitter): Unpack in destination
6742 instead of source if operands[1] is xmm16 and above and
6743 !TARGET_AVX512VL. Use avx512f_vec_dupv16sf_1 instead of
6744 vec_interleave_lowv4sf if we need to unpack xmm16 and above.
6745
6746 PR c++/70295
6747 * gimplify.c (gimplify_modify_expr): Call gimple_set_no_warning
6748 on assign if (*from_p) is a comparison, set it to
6749 TREE_NO_WARNING (*from_p).
6750
6751 2016-03-21 Jakub Jelinek <jakub@redhat.com>
6752
6753 PR middle-end/70326
6754 * lra.c (restore_scratches): Ignore deleted insns.
6755
6756 2016-03-21 Marc Glisse <marc.glisse@inria.fr>
6757 Jakub Jelinek <jakub@redhat.com>
6758
6759 PR tree-optimization/70317
6760 * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
6761 to HONOR_NANS.
6762
6763 2016-03-21 Uros Bizjak <ubizjak@gmail.com>
6764
6765 PR target/70327
6766 * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
6767 of ix86_expand_move.
6768 (movoi): Ditto.
6769 (movti): Use general_operand for operand 1 predicate.
6770
6771 2016-03-21 Martin Liska <mliska@suse.cz>
6772
6773 * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
6774 insns.
6775 (dump_hsa_symbol): Dump BRIG offset of hsa_symbols.
6776
6777 2016-03-21 Martin Liska <mliska@suse.cz>
6778
6779 PR ipa/70306
6780 * ipa-icf.c (sem_function::parse): Skip static
6781 constructors and destructors.
6782
6783 2016-03-21 Jakub Jelinek <jakub@redhat.com>
6784
6785 PR target/70296
6786 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If IDENT is
6787 function-like macro, peek following token(s) if it is followed
6788 by CPP_OPEN_PAREN token with optional padding in between, and
6789 if not, don't treat it like a macro.
6790
6791 2016-03-21 Thomas Schwinge <thomas@codesourcery.com>
6792 Alexander Monakov <amonakov@ispras.ru>
6793
6794 * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
6795 for the stabs debug format.
6796
6797 2016-03-21 Richard Biener <rguenther@suse.de>
6798
6799 PR tree-optimization/70310
6800 * tree-vect-generic.c (expand_vector_condition): Fold the built
6801 condition.
6802
6803 2016-03-21 Kirill Yukhin <kirill.yukhin@intel.com>
6804
6805 PR target/70293
6806 * config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2):
6807 Block third alternative for AVX-512VL target,
6808
6809 2016-03-21 Martin Liska <mliska@suse.cz>
6810
6811 PR hsa/70234
6812 * hsa-brig.c (emit_function_directives): Mark unemitted
6813 global variables for emission.
6814 * hsa-gen.c (hsa_symbol::hsa_symbol): Initialize a new flag.
6815 (get_symbol_for_decl): Likewise.
6816 * hsa.h (struct hsa_symbol): New flag.
6817
6818 2016-03-21 Richard Biener <rguenther@suse.de>
6819
6820 PR tree-optimization/70288
6821 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Make sure
6822 we do not estimate unsimplified all-constant conditionals or
6823 switches as optimized away.
6824
6825 2016-03-21 Andrey Belevantsev <abel@ispras.ru>
6826
6827 PR rtl-optimization/69102
6828 * sched-deps.c (sched_analyze_insn): Do not set last_args_size field
6829 when we have a readonly dependency context.
6830
6831 2016-03-18 Jeff Law <law@redhat.com>
6832
6833 PR rtl-optimization/70263
6834 * ira.c (memref_used_between_p): Assert we found END in the insn chain.
6835 (update_equiv_regs): When trying to move a store to after the insn
6836 that sets the source of the store, make sure the store occurs after
6837 the insn that sets the source of the store. When successful note
6838 the REG_EQUIV note created in the dump file.
6839
6840 2016-03-16 David Wohlferd <dw@LimeGreenSocks.com>
6841 Bernd Schmidt <bschmidt@redhat.com>
6842
6843 * doc/extend.texi: Document more potential problems with basic asms.
6844
6845 2016-03-18 Bernd Schmidt <bschmidt@redhat.com>
6846
6847 PR rtl-optimization/70278
6848 * lra-constraints.c (split_reg): Handle the case where biggest_mode is
6849 VOIDmode.
6850
6851 2016-03-18 Jason Merrill <jason@redhat.com>
6852
6853 * calls.c (load_register_parameters): Fix zero size sibcall logic.
6854
6855 2016-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
6856
6857 * config/i386/sse.md: Use vpbroadcastq for broadcasting DF
6858 values to 128b regs.
6859
6860 2016-03-18 Ilya Enkovich <enkovich.gnu@gmail.com>
6861
6862 PR tree-optimization/70252
6863 * tree-vect-stmts.c (supportable_widening_operation): Check resulting
6864 boolean vector has a proper number of elements.
6865 (supportable_narrowing_operation): Likewise.
6866
6867 2016-03-18 Tom de Vries <tom@codesourcery.com>
6868
6869 PR ipa/70269
6870 * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.
6871
6872 2016-03-18 Jakub Jelinek <jakub@redhat.com>
6873
6874 * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
6875 instead of replace_rtx for DEBUG_INSNs.
6876
6877 2016-03-18 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
6878
6879 * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
6880 load type reservations.
6881
6882 2016-03-17 John David Anglin <danglin@gcc.gnu.org>
6883
6884 PR target/70188
6885 * config/pa/constraints.md: Revert 2015-02-13 change. Use
6886 define_constraint for "Q" and "T" constraints.
6887
6888 2016-03-17 Evandro Menezes <e.menezes@samsung.com>
6889
6890 Tweak the pipeline model for Exynos M1
6891
6892 * config/aarch64/aarch64.c (exynosm1_tunings): Enable weak prefetching
6893 model.
6894
6895 2016-03-17 David Malcolm <dmalcolm@redhat.com>
6896
6897 PR c/70264
6898 * diagnostic-show-locus.c (compatible_locations_p): Handle the case
6899 where one or both locations aren't within a line_map.
6900
6901 2016-03-17 H.J. Lu <hongjiu.lu@intel.com>
6902
6903 PR driver/70192
6904 * opts.c (finish_options): Don't set flag_pie to the default if
6905 -fpic, -fPIC, -fno-pic or -fno-PIC is used. Set flag_pic to 0
6906 if it is -1.
6907
6908 2016-03-17 Joern Rennecke <joern.rennecke@embecosm.com>
6909
6910 * config/i386/i386.md (*movv4qicc_insn+1..36): Pass
6911 true as ALL_REGS argument to replace_rtx.
6912
6913 2016-03-17 Richard Biener <rguenther@suse.de>
6914
6915 PR debug/70271
6916 * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
6917 last.
6918
6919 2016-03-17 Jakub Jelinek <jakub@redhat.com>
6920
6921 PR target/70245
6922 * rtl.h (replace_rtx): Add ALL_REGS argument.
6923 * rtlanal.c (replace_rtx): Likewise. If true, use REGNO
6924 equality and assert mode is the same, instead of just rtx pointer
6925 equality.
6926 * config/i386/i386.md (mov + arithmetics with load peephole): Pass
6927 true as ALL_REGS argument to replace_rtx.
6928
6929 2016-03-17 Ilya Enkovich <enkovich.gnu@gmail.com>
6930
6931 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply
6932 for boolean vector with vector mode only.
6933 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
6934
6935 2016-03-17 Nick Clifton <nickc@redhat.com>
6936
6937 PR target/70162
6938 * config/rx/rx.c (rx_print_integer): Print negative constants in
6939 decimal.
6940
6941 2016-03-17 Jakub Jelinek <jakub@redhat.com>
6942
6943 PR target/70261
6944 * rtlanal.c (replace_rtx): Revert 2016-03-16 change.
6945
6946 2016-03-16 Richard Henderson <rth@redhat.com>
6947 Richard Biener <rguenth@suse.de>
6948
6949 PR middle-end/70240
6950 PR middle-end/68215
6951 PR tree-opt/68714
6952 * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
6953 first operand as is_gimple_condexpr.
6954
6955 PR middle-end/70240
6956 PR middle-end/68215
6957 Revert r231575
6958 2015-12-11 Eric Botcazou <ebotcazou@adacore.com>
6959 * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter.
6960 Do not gimplify the result.
6961 (do_unop): Adjust call to tree_vec_extract.
6962 (do_binop): Likewise.
6963 (do_compare): Likewise.
6964 (do_plus_minus): Likewise.
6965 (do_negate): Likewise.
6966 (expand_vector_condition): Likewise.
6967 (do_cond): Likewise.
6968
6969 2016-03-16 Richard Henderson <rth@redhat.com>
6970
6971 PR target/70048
6972 * config/aarch64/aarch64.c (virt_or_elim_regno_p): New.
6973 (aarch64_classify_address): Use it.
6974 (aarch64_legitimize_address): Force all subexpressions of PLUS
6975 into registers. Simplify as (sfp+const)+reg or (reg+reg)+const.
6976
6977 2016-03-16 Jakub Jelinek <jakub@redhat.com>
6978 Richard Biener <rguenth@suse.de>
6979
6980 PR target/70245
6981 * rtlanal.c (replace_rtx): For REG, if from is a REG,
6982 return to even if only REGNO is equal, and assert
6983 mode is the same.
6984
6985 2016-03-11 Jeff Law <law@redhat.com>
6986
6987 PR rtl-optimization/70224
6988 * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
6989
6990 2016-03-16 Richard Henderson <rth@redhat.com>
6991
6992 PR middle-end/70199
6993 * function.h (struct function): Add has_forced_label_in_static.
6994 * gimplify.c (force_labels_r): Set it.
6995 * lto-streamer-in.c (input_struct_function_base): Read it.
6996 * lto-streamer-out.c (output_struct_function_base): Write it.
6997 * tree-inline.c (has_label_address_in_static_1): Remove.
6998 (copy_forbidden): Remove fndecl parameter; test
6999 has_forced_label_in_static.
7000 (inline_forbidden_p): Update call to copy_forbidden.
7001 (tree_versionable_function_p): Likewise.
7002 * ipa-chkp.c (chkp_instrumentable_p): Likewise.
7003 (chkp_versioning): Likewise.
7004 * tree-inline.h (copy_forbidden): Update decl.
7005
7006 2016-03-16 Marek Polacek <polacek@redhat.com>
7007
7008 PR c/70093
7009 * cgraphunit.c (cgraph_node::expand_thunk): Also build call to the
7010 function being thunked if the result type doesn't have fixed size.
7011 * gimplify.c (gimplify_modify_expr): Also set LHS if the result type
7012 doesn't have fixed size.
7013
7014 2016-03-16 Bin Cheng <bin.cheng@arm.com>
7015
7016 * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
7017 reporting malformed loop nest.
7018
7019 2016-03-16 Tom de Vries <tom@codesourcery.com>
7020
7021 PR lto/70187
7022 * ipa-devirt.c (possible_polymorphic_call_targets): Move
7023 nodes.length () == 1 test to before first nodes[0] access.
7024
7025 2016-03-16 Tom de Vries <tom@codesourcery.com>
7026
7027 PR tree-optimization/68715
7028 * graphite-scop-detection.c (scop_detection::merge_sese): Add missing
7029 single_pred_p test.
7030
7031 2016-03-16 Tom de Vries <tom@codesourcery.com>
7032
7033 PR tree-optimization/68809
7034 * graphite-scop-detection.c (same_close_phi_node): Test if result types
7035 are the same.
7036
7037 2016-03-16 Carlos O'Donell <carlos@redhat.com>
7038 Sandra Loosemore <sandra@codesourcery.com>
7039
7040 * doc/extend.texi (Common Function Attributes): Describe ifunc impact
7041 on leaf attribute. Mention ELF interposition problems.
7042
7043 2016-03-16 Alan Modra <amodra@gmail.com>
7044
7045 PR rtl-optimization/69195
7046 PR rtl-optimization/47992
7047 * ira.c (indirect_jump_optimize): Ignore artificial defs.
7048 Add comments.
7049
7050 2016-03-15 Eric Botcazou <ebotcazou@adacore.com>
7051
7052 PR bootstrap/69513
7053 * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.
7054
7055 2016-03-15 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
7056
7057 * config/avr/avr.md (rotl<mode>3): Set mode for operand 2.
7058
7059 2016-03-15 Jakub Jelinek <jakub@redhat.com>
7060
7061 PR rtl-optimization/70222
7062 * combine.c (simplify_shift_const_1): For A >> B >> C LSHIFTRT
7063 optimization if mode is different from result_mode, queue up masking
7064 of the result in outer_op. Formatting fix.
7065
7066 PR middle-end/70239
7067 * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
7068 of safe_grow.
7069
7070 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
7071
7072 PR rtl-optimization/69032
7073 * sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
7074 looping backwards over basic block insns.
7075
7076 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
7077
7078 PR target/66660
7079 * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
7080 to non-speculative when propagating trap bits.
7081
7082 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
7083
7084 PR rtl-optimization/63384
7085 * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
7086 DEBUG_INSN_P insns.
7087
7088 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
7089
7090 PR target/64411
7091 * sched-deps.c (get_implicit_reg_pending_clobbers): New function,
7092 factored out from ...
7093 (sched_analyze_insn): ... here.
7094 * sched-int.h (get_implicit_reg_pending_clobbers): Declare it.
7095 * sel-sched-ir.c (setup_id_implicit_regs): New function, use
7096 get_implicit_reg_pending_clobbers in it.
7097 (setup_id_reg_sets): Use setup_id_implicit_regs.
7098 (deps_init_id): Ditto.
7099
7100 2016-03-15 Tom de Vries <tom@codesourcery.com>
7101
7102 PR ipa/70161
7103 * cgraph.c (cgraph_node::get_body): Save, reset and restore
7104 dump_file_name.
7105 * passes.c (execute_one_ipa_transform_pass): Add missing argument to
7106 execute_function_dump.
7107 (execute_one_pass): Don't dump function if it will be dumped after ipa
7108 transform.
7109
7110 2016-03-15 Segher Boessenkool <segher@kernel.crashing.org>
7111
7112 * genrecog.c (match_pattern_2): If pred is NULL don't call
7113 safe_predicate_mode on it.
7114
7115 2016-03-14 Jakub Jelinek <jakub@redhat.com>
7116
7117 PR middle-end/70219
7118 * lra-constraints.c (delete_move_and_clobber): Change assertion
7119 to also allow dregno == 0.
7120
7121 2016-03-14 Richard Henderson <rth@redhat.com>
7122
7123 PR tree-opt/68714
7124 * tree-ssa-reassoc.c (ovce_extract_ops, optimize_vec_cond_expr): New.
7125 (can_reassociate_p): Allow ANY_INTEGRAL_TYPE_P.
7126 (reassociate_bb): Use optimize_vec_cond_expr; avoid
7127 optimize_range_tests, attempt_builtin_copysign and attempt_builtin_powi
7128 on vectors.
7129
7130 2016-03-14 Bernd Schmidt <bschmidt@redhat.com>
7131
7132 PR target/70083
7133 * lra-lives.c (process_bb_lives): Also update biggest mode for hard
7134 regs.
7135 (lra_create_live_ranges_1): initialize hard register biggest_mode to
7136 VOIDmode.
7137 * lra-constraints.c (split_reg): For hard regs, try to find the
7138 biggest single-register mode used in the function.
7139
7140 2016-03-14 Richard Biener <rguenther@suse.de>
7141
7142 PR tree-optimization/56365
7143 * tree-ssa-phiopt.c (minmax_replacement): Handle alternate
7144 constants to compare against.
7145
7146 2016-03-14 Segher Boessenkool <segher@kernel.crashing.org>
7147
7148 PR target/70098
7149 * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
7150 *ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output.
7151 (define_split for the GPR case): Use int_reg_operand instead of
7152 gpc_reg_operand for the output.
7153
7154 2016-03-14 Tom de Vries <tom@codesourcery.com>
7155
7156 PR tree-optimization/70045
7157 * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Unshare
7158 create_empty_if_region_on_edge argument.
7159
7160 2016-03-13 Eric Botcazou <ebotcazou@adacore.com>
7161
7162 * config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define.
7163 (STACK_CHECK_PROTECT): Likewise.
7164 * config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
7165 (STACK_CHECK_PROTECT): Likewise.
7166 * config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
7167 (STACK_CHECK_PROTECT): Likewise.
7168 * config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise.
7169 * config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
7170 (STACK_CHECK_PROTECT): Likewise.
7171
7172 2016-03-12 Andrey Belevantsev <abel@ispras.ru>
7173
7174 PR rtl-optimization/69307
7175 * sel-sched.c (choose_best_pseudo_reg): Properly check for hard
7176 registers in modes that span more than one register.
7177
7178 2016-03-12 Vladimir Makarov <vmakarov@redhat.com>
7179
7180 PR target/69614
7181 * lra-constraints.c (delete_move_and_clobber): New.
7182 (remove_inheritance_pseudos): Use it.
7183
7184 2016-03-12 Eric Botcazou <ebotcazou@adacore.com>
7185
7186 PR ada/70017
7187 * calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if
7188 the libcall is LCT_THROW.
7189 * explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call
7190 for the checking routine.
7191
7192 2016-03-11 Michael Meissner <meissner@linux.vnet.ibm.com>
7193
7194 PR target/70131
7195 * config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the
7196 optimization if we have direct move.
7197 (roundu32<mode>2_fprs): Likewise.
7198
7199 2016-03-11 Bernd Schmidt <bschmidt@redhat.com>
7200
7201 PR target/70123
7202 * lra-remat.c (operand_to_remat): Disallow hard regs in the value t
7203 be rematerialized.
7204 (reg_overlap_for_remat_p): Renamed from input_regno_present_p.
7205 Arguments swapped. All callers changed. Take reg_renumber into
7206 account, and Calculate and compare register ranges for hard regs.
7207
7208 2016-03-11 Jeff Law <law@redhat.com>
7209
7210 PR tree-optimization/70190
7211 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
7212 Handle cases where we can not extract the taken edge, even though we
7213 found a constant value.
7214
7215 PR tree-optimization/64058
7216 * tree-ssa-coalesce.c (struct coalesce_pair): Add new field INDEX.
7217 (num_coalesce_pairs): Move up earlier in file.
7218 (find_coalesce_pair): Initialize the INDEX field for each pair
7219 discovered.
7220 (compare_pairs): No longer sort on the elements in each pair.
7221 Instead break ties with the index of the coalesce pair.
7222
7223 2016-03-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7224
7225 PR target/70002
7226 * config/aarch64/aarch64-protos.h
7227 (aarch64_save_restore_target_globals): New prototype.
7228 * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
7229 Call the above when popping pragma.
7230 * config/aarch64/aarch64.c (aarch64_save_restore_target_globals):
7231 New function.
7232 (aarch64_set_current_function): Rewrite using the above.
7233
7234 2016-03-11 Jakub Jelinek <jakub@redhat.com>
7235
7236 PR tree-optimization/70177
7237 * gimple-expr.h (extract_ops_from_tree_1): Renamed to ...
7238 (extract_ops_from_tree): ... this. In the 2 argument
7239 overload remove _1 suffix.
7240 * gimple-expr.c (extract_ops_from_tree_1): Renamed to ...
7241 (extract_ops_from_tree): ... this.
7242 * gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree):
7243 Adjust callers.
7244 * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
7245 * tree-ssa-forwprop.c (defcodefor_name): Call 3 operand
7246 extract_ops_from_tree instead of 2 operand one.
7247
7248 2016-03-11 Alan Lawrence <alan.lawrence@arm.com>
7249
7250 PR tree-optimization/70013
7251 * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
7252 for constant-pool entries.
7253
7254 2016-03-11 Jakub Jelinek <jakub@redhat.com>
7255
7256 PR rtl-optimization/70174
7257 * expmed.c (store_bit_field_using_insv): Use gen_lowpart_if_possible
7258 followed by gen_lowpart on force_reg instead of just gen_lowpart.
7259
7260 PR tree-optimization/70169
7261 * tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and
7262 LABEL_DECL like VAR_DECL. Emit nothing instead of gcc_unreachable
7263 for unknown codes.
7264
7265 2016-03-11 Ilya Enkovich <enkovich.gnu@gmail.com>
7266 Jakub Jelinek <jakub@redhat.com>
7267
7268 PR target/70160
7269 * config/i386/i386.c (scalar_chain::convert_reg): Skip uses
7270 of uninitialized values.
7271
7272 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7273
7274 * config/s390/s390.md ("trunctddd2"): Turn former define_insn into
7275 define_expand.
7276 ("*trunctddd2"): New pattern definition.
7277 ("trunctdsd2"): Set prep_for_short_prec rounding mode for the
7278 TD->DD truncation.
7279
7280 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7281
7282 * config/s390/s390.md (BFP_RND_*, DFP_RND_*): Add new constant
7283 definitions for BFP and DFP rounding modes.
7284 ("fixuns_truncdddi2", "fixuns_trunctddi2")
7285 ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2")
7286 ("fix_trunc<DSF:mode><GPR:mode>2", "fix_trunc<mode>di2")
7287 ("fix_trunctf<mode>2"): Use the new constants instead of magic
7288 numbers.
7289
7290 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7291
7292 * config/s390/constraints.md: Adjust comment.
7293 ("Y"): Adjust comment. Rename s390_decompose_shift_count to
7294 s390_decompose_addrstyle_without_index.
7295 * config/s390/predicates.md (shift_count_or_setmem_operand):
7296 Rename to setmem_operand.
7297 * config/s390/s390-protos.h
7298 (s390_decompose_shift_count): Rename to
7299 s390_decompose_addrstyle_without_index.
7300 * config/s390/s390.c (s390_decompose_shift_count)
7301 (s390_mem_constraint, print_shift_count_operand)
7302 (print_operand_address, print_operand): Rename
7303 s390_decompose_shift_count to
7304 s390_decompose_addrstyle_without_index and rename
7305 print_shift_count_operand to print_addrstyle_operand troughout the
7306 file.
7307 * config/s390/s390.md ("setmem_long_<P:mode>", "*setmem_long")
7308 ("*setmem_long_and", "*setmem_long_31z", "*setmem_long_and_31z"):
7309 Rename shift_count_or_setmem_operand to setmem_operand.
7310 * config/s390/vx-builtins.md ("vec_insert<mode>")
7311 ("vec_promote<mode>"): Replace shift_count_or_setmem_operand with
7312 nonmemory_operand.
7313
7314 2016-03-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7315
7316 PR target/70168
7317 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
7318 Handle overlapping retval and newval.
7319
7320 2016-03-10 Nick Clifton <nickc@redhat.com>
7321
7322 PR target/7044
7323 * config/aarch64/aarch64.c
7324 (aarch64_override_options_after_change_1): When forcing
7325 flag_omit_frame_pointer to be true, use a special value that can
7326 be detected if this function is called again, thus preventing
7327 flag_omit_leaf_frame_pointer from being forced to be false.
7328
7329 2016-03-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7330
7331 * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
7332 Set x_flag_omit_leaf_frame_pointer when handling
7333 -momit-leaf-frame-pointer.
7334
7335 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
7336
7337 PR lto/69589
7338 * cgraph.c (cgraph_node::dump): Dump split_part and
7339 indirect_call_target.
7340 * cgraph.h (cgraph_node): Add indirect_call_target flag.
7341 * ipa.c (has_addr_references_p): Cleanup.
7342 (is_indirect_call_target_p): New.
7343 (walk_polymorphic_call_targets): Do not mark virtuals that may be
7344 called indirectly as local.
7345 (symbol_table::remove_unreachable_nodes): Compute indirect_call_target.
7346
7347 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
7348
7349 PR ipa/69630
7350 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
7351 on cxa_pure_virtual.
7352
7353 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
7354
7355 PR lto/69589
7356 * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
7357
7358 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
7359
7360 PR lto/69589
7361 * tree.c (need_assembler_name_p): Only record main variant type names.
7362
7363 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
7364
7365 PR target/70113.
7366 * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_843419_DEFAULT):
7367 Always define to 0 or 1.
7368 (TARGET_FIX_ERR_A53_843419): New macro.
7369 * config/aarch64/aarch64-elf-raw.h
7370 (TARGET_FIX_ERR_A53_843419_DEFAULT): Update for above changes.
7371 * config/aarch64/aarch64-linux.h: Likewise.
7372 * config/aarch64/aarch64.c
7373 (aarch64_override_options_after_change_1): Do not default
7374 aarch64_nopcrelative_literal_loads to true if Cortex-A53 erratum
7375 843419 is on.
7376 (aarch64_attributes): Handle fix-cortex-a53-843419.
7377 (aarch64_can_inline_p): Likewise.
7378 * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.
7379
7380 2016-03-10 Alan Lawrence <alan.lawrence@arm.com>
7381 Jakub Jelinek <jakub@redhat.com>
7382
7383 * common.opt (funconstrained-commons, flag_unconstrained_commons): New.
7384 * tree.c (array_at_struct_end_p): Do not limit to size of decl for
7385 DECL_COMMONS if flag_unconstrained_commons is set.
7386 * tree-dfa.c (get_ref_base_and_extent): Likewise.
7387 * doc/invoke.texi (Optimize Options): Add -funconstrained-commons.
7388 (funconstrained-commons): Document.
7389
7390 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
7391
7392 * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
7393 aarch64-fusion-pairs.def and aarch64-tuning-flags.def
7394
7395 2016-03-10 Ilya Enkovich <enkovich.gnu@gmail.com>
7396
7397 * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
7398 has a proper number of elements.
7399
7400 2016-03-10 Alan Modra <amodra@gmail.com>
7401
7402 PR rtl-optimization/69195
7403 PR rtl-optimization/47992
7404 * ira.c (recorded_label_ref): Delete.
7405 (update_equiv_regs): Return void.
7406 (indirect_jump_optimize): New function.
7407 (ira): Call indirect_jump_optimize and delete_trivially_dead_insns
7408 before regstat_compute_ri. Don't rebuild_jump_labels here.
7409 Delete update_regstat.
7410
7411 2016-03-10 Richard Biener <rguenther@suse.de>
7412
7413 PR tree-optimization/70128
7414 * tree-ssa-structalias.c (set_uids_in_ptset): Set
7415 vars_contains_nonlocal for any FUNCTION_DECL or LABEL_DECL.
7416
7417 2016-03-09 Jakub Jelinek <jakub@redhat.com>
7418
7419 PR tree-optimization/70152
7420 * tree-sra.c (replace_removed_params_ssa_names): Copy over
7421 SSA_NAME_OCCURS_IN_ABNORMAL_PHI from old_name to new_name.
7422
7423 PR target/70086
7424 * config/i386/i386.md (truncdfsf2 splitter): Use gen_vec_concatv2df
7425 instead of gen_sse2_loadlpd.
7426 * config/i386/sse.md (*vec_concatv2df): Rename to...
7427 (vec_concatv2df): ... this.
7428
7429 PR tree-optimization/70127
7430 * fold-const.c (operand_equal_p): Revert the 2015-10-28 change.
7431
7432 2016-03-09 David Malcolm <dmalcolm@redhat.com>
7433
7434 PR c/68473
7435 PR c++/70105
7436 * diagnostic-show-locus.c (compatible_locations_p): New function.
7437 (layout::layout): Sanitize ranges using compatible_locations_p.
7438
7439 2016-03-09 David Malcolm <dmalcolm@redhat.com>
7440
7441 PR c/68473
7442 PR c++/70105
7443 * diagnostic-show-locus.c (layout_range::layout_range): Replace
7444 location_range param with three const expanded_locations * and a
7445 bool.
7446 (layout::layout): Replace call to
7447 rich_location::lazily_expand_location with get_expanded_location.
7448 Extract the range and perform location expansion here, passing
7449 the results to the layout_range ctor.
7450 * diagnostic.c (source_range::debug): Delete.
7451 * diagnostic.h (diagnostic_expand_location): Reimplement in terms
7452 of rich_location::get_expanded_location.
7453 * gcc-rich-location.c (get_range_for_expr): Delete.
7454 (gcc_rich_location::add_expr): Reimplement to avoid the
7455 rich_location::add_range overload that took a location_range,
7456 passing a location_t instead.
7457
7458 2016-03-09 Richard Biener <rguenther@suse.de>
7459 Jakub Jelinek <jakub@redhat.com>
7460
7461 PR tree-optimization/70138
7462 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
7463 Also skip vect_double_reduction_def.
7464
7465 2016-03-09 Jakub Jelinek <jakub@redhat.com>
7466
7467 PR target/70049
7468 * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
7469 if the operand is "m".
7470
7471 2016-03-09 Nathan Sidwell <nathan@acm.org>
7472
7473 * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.
7474
7475 2016-03-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
7476
7477 * config/i386/i386.c (processor_target_table): Fix cost table
7478 intialization order for znver1.
7479
7480 2016-03-08 Jakub Jelinek <jakub@redhat.com>
7481
7482 * ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling
7483 - becuase -> because.
7484 * ipa-reference.c (ignore_module_statics): Likewise.
7485 * cgraph.c (cgraph_node::get_body): Likewise.
7486 * ipa-inline.c (early_inliner): Likewise.
7487 * ipa-devirt.c (types_same_for_odr): Likewise.
7488 * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
7489 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Likewise.
7490
7491 2016-03-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7492
7493 * tree-ssa-math-opts.c: Fix typo in comment.
7494
7495 2016-03-08 Jakub Jelinek <jakub@redhat.com>
7496
7497 PR target/70110
7498 * config/i386/i386.c (scalar_chain::make_vector_copies,
7499 scalar_chain::convert_reg): Call end_sequence in between
7500 get_insns and emit_conversion_insns rather than after both
7501 calls.
7502
7503 2016-03-07 Uros Bizjak <ubizjak@gmail.com>
7504
7505 PR target/70064
7506 * config/i386/i386.h (machine_function): Add
7507 pc_thunk_call_expanded flag.
7508 (ix86_pc_thunk_call_expanded): New define.
7509 * config/i386/i386.md (set_got, set_got_labelled): New expanders.
7510 (*set_got): Rename insn pattern from set_got.
7511 (*set_got_labelled): Rename inst pattern from set_got_labelled.
7512 * config/i386/i386.c (ix86_compute_frame_layout): Use
7513 ix86_pc_thunk_call_expanded to prevent red-zone.
7514
7515 2016-03-07 Martin Jambor <mjambor@suse.cz>
7516
7517 * hsa.h (hsa_get_ctor_statements): Declare.
7518 (hsa_get_dtor_statements): Likewise.
7519 (hsa_get_kernel_dispatch_type): Likewise.
7520 * hsa.c (hsa_get_ctor_statements): New function.
7521 (hsa_get_dtor_statements): Likewise.
7522 (hsa_get_kernel_dispatch_type): Likewise.
7523 * hsa-brig.c (hsa_cdtor_statements): Removed.
7524 (hsa_output_libgomp_mapping): Use hsa_get_ctor_statements and
7525 hsa_get_dtor_statements.
7526 * hsa-gen.c (hsa_kernel_dispatch_type): Removed.
7527 (get_hsa_kernel_dispatch_offset): Use hsa_get_kernel_dispatch_type.
7528
7529 2016-03-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
7530
7531 * config/arm/arm-cores.def (cortex-r8): New.
7532 * config/arm/arm-tables.opt (cortex-r8): Regenerate.
7533 * config/arm/arm-tune.md: Likewise.
7534 * doc/invoke.texi: Add cortex-r8 to list of cpu values.
7535
7536 2016-03-07 Martin Sebor <msebor@redhat.com>
7537
7538 PR rtl-optimization/19705
7539 * doc/invoke.texi (Options That Control Optimization): Clarify
7540 -fno-branch-count-reg.
7541
7542 2016-02-26 Richard Biener <rguenther@suse.de>
7543 Jeff Law <law@redhat.com>
7544
7545 PR tree-optimization/69740
7546 * cfghooks.c (remove_edge): Request loop fixups if we delete
7547 an edge that might turn an irreducible loop into a natural
7548 loop.
7549 * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
7550 Move after definition of loops_state_clear.
7551
7552 2016-03-07 Bin Cheng <bin.cheng@arm.com>
7553
7554 PR rtl-optimization/69052
7555 * rtlanal.c (commutative_operand_precedence): Set higher precedence
7556 to CONST_WIDE_INT.
7557
7558 2016-03-07 Tom de Vries <tom@codesourcery.com>
7559
7560 PR tree-optimization/70116
7561 * tree-ssa-tail-merge.c (merge_stmts_p): New function, handling
7562 is_tm_ending stmts and ubsan/asan internal functions.
7563 (find_duplicate): Use it. Don't test is_tm_ending here.
7564
7565 2016-03-07 Richard Biener <rguenther@suse.de>
7566
7567 PR tree-optimization/70115
7568 * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
7569 (propagate_constants_for_unrolling): Use replace_uses_by.
7570
7571 2016-03-07 Nathan Sidwell <nathan@codesourcery.com>
7572
7573 PR middle-end/69916
7574 * omp-low.c (struct oacc_loop): Add ifns.
7575 (new_oacc_loop_raw): Initialize it.
7576 (finish_oacc_loop): Clear mask & flags if no ifns.
7577 (oacc_loop_discover_walk): Count IFN_GOACC_LOOP calls.
7578 (oacc_loop_xform_loop): Add ifns arg & adjust.
7579 (oacc_loop_process): Adjust oacc_loop_xform_loop call.
7580
7581 2016-03-07 Richard Henderson <rth@redhat.com>
7582
7583 PR rtl-opt/70061
7584 * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
7585 (insert_value_copy_on_edge): Likewise.
7586
7587 2016-03-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7588
7589 * config/arm/arm_neon.h: Show error if using with soft-float ABI.
7590
7591 2016-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7592
7593 PR target/62281
7594 * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
7595
7596 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
7597
7598 * config/i386/i386.c (znver1_cost): Fix Multiply cost.
7599
7600 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
7601
7602 Fix sseimul type attribute.
7603 * config/i386/znver1.md
7604 (znver1_sseimul, znver1_sseimul_avx256, znver1_sseimul_load,
7605 znver1_sseimul_avx256_load) : Fix the type attribute.
7606 (znver1_sseimul_di, znver1_sseimul_load_di): Fix type attribute,
7607 pipe usage and latency.
7608
7609 2016-03-05 Jakub Jelinek <jakub@redhat.com>
7610
7611 PR c++/70084
7612 * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
7613 of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
7614 to the right type.
7615
7616 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
7617
7618 PR c/69973
7619 * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
7620
7621 PR rtl-optimization/69941
7622 * postreload.c (reload_combine_recognize_pattern): Ensure all uses of
7623 the reg share its mode.
7624
7625 2016-03-04 Jeff Law <law@redhat.com>
7626
7627 PR tree-optimization/69196
7628 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
7629 If the both SSA_NAMEs are anonymous, then consider them unassociated
7630 and include the PHI in the statement count.
7631
7632 2016-03-05 Tom de Vries <tom@codesourcery.com>
7633
7634 * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
7635 construct in oacc routine. Check for oacc region in oacc routine.
7636
7637 2016-03-04 Jakub Jelinek <jakub@redhat.com>
7638
7639 PR target/70062
7640 * config/i386/i386.c (decide_alg): Add RECUR argument. Revert
7641 2016-02-22 changes, instead don't recurse if RECUR is already true.
7642 Don't change *dynamic_check if RECUR. Adjust recursive caller
7643 to pass true to the new argument.
7644 (ix86_expand_set_or_movmem): Adjust decide_alg caller.
7645
7646 PR target/70059
7647 * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
7648 <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
7649 fixes.
7650 (vec_set_hi_<mode><mask_name>): Likewise. Swap VEC_CONCAT operands.
7651
7652 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
7653
7654 PR rtl-optimization/57676
7655 * lra-assigns.c (lra_assign): Guard test for maximum iterations
7656 with flag_checking.
7657
7658 2016-03-04 Ilya Enkovich <enkovich.gnu@gmail.com>
7659
7660 * tree-vect-patterns.c (search_type_for_mask): Handle
7661 comparison of booleans.
7662
7663 2016-03-04 Jakub Jelinek <jakub@redhat.com>
7664
7665 * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
7666 Fix @xref usage.
7667
7668 PR debug/69947
7669 * dwarf2out.c (prune_unused_types_walk_loc_descr): Handle
7670 all other ops that have dw_val_class_die_ref operands,
7671 and DW_OP_GNU_entry_value.
7672
7673 2016-03-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7674
7675 PR rtl-optimization/69904
7676 * config/arm/arm.c (arm_cannot_copy_insn_p):
7677 Return true for load-exclusive instructions.
7678
7679 2016-03-03 Jakub Jelinek <jakub@redhat.com>
7680
7681 PR target/70021
7682 * tree-vect-stmts.c (vect_mark_relevant): Remove USED_IN_PATTERN
7683 argument, if STMT_VINFO_IN_PATTERN_P (stmt_info), always mark
7684 the pattern no matter if it is used just by non-pattern, pattern
7685 or mix thereof.
7686 (process_use, vect_mark_stmts_to_be_vectorized): Adjust callers.
7687 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
7688 oprnd1 def_stmt is in pattern, don't look through it.
7689
7690 2016-03-03 Marek Polacek <polacek@redhat.com>
7691
7692 PR middle-end/70050
7693 * match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
7694
7695 2016-03-03 Martin Liska <mliska@suse.cz>
7696
7697 PR tree-optimization/70043
7698 * tree-vect-loop.c (optimize_mask_stores): Move iterator to
7699 previous statement if we see a debug statement.
7700
7701 2016-03-03 Richard Biener <rguenther@suse.de>
7702
7703 PR tree-optimization/55936
7704 * tree-vrp.c (compare_name_with_value): Add use_equiv_p
7705 parameter and guard unsafe equivalence use.
7706 (vrp_evaluate_conditional_warnv_with_ops): Always use
7707 safe equivalences but not via the quadratic compare_names
7708 helper.
7709
7710 2016-03-03 Michael Collison <michael.collison@linaro.org>
7711
7712 PR target/70014
7713 * config/arm/arm.md (*subsi3_carryin_const): Change predicate
7714 for operand 1 to s_register_operand. Change predicate for operand
7715 2 to arm_not_immediate_operand.
7716
7717 2016-03-02 H.J. Lu <hongjiu.lu@intel.com>
7718
7719 * doc/tm.texi: Regenerated.
7720
7721 2016-03-02 Richard Henderson <rth@redhat.com>
7722
7723 PR rtl-opt/67145
7724 * simplify-rtx.c (simplify_plus_minus): Allow reassoc without
7725 simplification when all args are positive non-fixed registers.
7726
7727 2016-03-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7728
7729 * target.def (lra_p): Specify that new ports should use LRA.
7730
7731 2016-03-02 Jakub Jelinek <jakub@redhat.com>
7732
7733 PR libgomp/69555
7734 * gimplify.c (gimplify_decl_expr): For decls with REFERENCE_TYPE, also
7735 gimplify_type_sizes the type they refer to.
7736 (omp_notice_variable): Handle reference vars to VLAs.
7737 * omp-low.c (lower_omp_target): Emit setup of OMP_CLAUSE_PRIVATE
7738 reference to VLA decls in the second pass instead of first pass.
7739
7740 2016-03-02 Tom de Vries <tom@codesourcery.com>
7741
7742 PR tree-optimization/68659
7743 * graphite-isl-ast-to-gimple.c (collect_all_ssa_names): Handle
7744 new_expr == NULL_TREE.
7745 (get_new_name): Handle ADDR_EXPR.
7746
7747 2016-03-02 Bin Cheng <bin.cheng@arm.com>
7748
7749 PR rtl-optimization/69052
7750 * loop-invariant.c (canonicalize_address): New function.
7751 (inv_can_prop_to_addr_use): Check validity of address expression
7752 which is canonicalized by above function.
7753
7754 2016-03-02 Alan Modra <amodra@gmail.com>
7755
7756 PR ipa/69990
7757 * ipa-icf.c (sem_variable::merge): Do not merge an alias with
7758 larger alignment.
7759
7760 2016-03-02 Jakub Jelinek <jakub@redhat.com>
7761
7762 PR target/70028
7763 * config/i386/i386.md (kmovw): Move m constraint to 2nd alternative.
7764 (*movhi_internal): Put mask moves from and to memory separately
7765 from moves from/to GPRs.
7766
7767 2016-03-02 Richard Biener <rguenther@suse.de>
7768
7769 * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
7770 GENERIC expressions in GIMPLE.
7771
7772 2016-03-02 Richard Biener <rguenther@suse.de>
7773
7774 * config/i386/i386.c (type_natural_mode): Fix typo.
7775
7776 2016-03-02 Nick Clifton <nickc@redhat.com>
7777
7778 * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.
7779
7780 2016-03-02 Richard Biener <rguenther@suse.de>
7781 Uros Bizjak <ubizjak@gmail.com>
7782
7783 PR target/67278
7784 * config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
7785
7786 2016-03-02 Richard Biener <rguenther@suse.de>
7787
7788 PR middle-end/67278
7789 * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
7790
7791 2016-03-02 Marek Polacek <polacek@redhat.com>
7792
7793 PR c/67854
7794 * gimplify.c (gimplify_va_arg_expr): Use expanded location for the
7795 "is promoted to" warning.
7796
7797 2016-03-01 DJ Delorie <dj@redhat.com>
7798
7799 * config.gcc: Deprecate mep-*.
7800
7801 2016-03-01 Vladimir Makarov <vmakarov@redhat.com>
7802
7803 PR middle-end/70025
7804 * lra-constraints.c (regno_val_use_in): New.
7805 (match_reload): Use it instead of regno_use_in.
7806
7807 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
7808
7809 PR rtl-optimization/70007
7810 * gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
7811 references present in REG_EQUAL notes attached to non-SET patterns.
7812
7813 2016-03-01 Jeff Law <law@redhat.com>
7814
7815 PR tree-optimization/69196
7816 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
7817 Appropriately clamp the number of statements to copy when the
7818 thread path does not traverse a loop backedge.
7819
7820 PR tree-optimization/69196
7821 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
7822 Do count some PHIs in the thread path against the insn count. Decrease
7823 final statement count by one as the control statement in the last
7824 block will get removed. Remove special cased code for handling PHIs
7825 in the last block.
7826
7827 2016-03-01 Uros Bizjak <ubizjak@gmail.com>
7828
7829 PR target/70027
7830 * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
7831 asm dialect alternatives to explicit GOTPCREL calls.
7832
7833 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
7834
7835 PR ada/70017
7836 * ira.c (do_reload): Issue warning for generic stack checking here...
7837 * reload1.c (reload): ...instead of here and streamline it.
7838
7839 2016-03-01 Nick Clifton <nickc@redhat.com>
7840
7841 * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
7842
7843 2016-03-01 Richard Biener <rguenther@suse.de>
7844
7845 PR tree-optimization/69983
7846 * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
7847 types and fall back to operand_equal_p.
7848
7849 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7850
7851 Revert
7852 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7853
7854 * config/s390/constraints.md ("jm8"): New constraint.
7855 * config/s390/predicates.md ("const_int_8bitset_operand"): New
7856 predicate.
7857 * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
7858 into ...
7859 ("*setmem_long<setmem_and>"): New pattern.
7860 ("*setmem_long_31z", "*setmem_long_and_31z"): Merge
7861 into ...
7862 ("*setmem_long_31z<setmem_and>"): New pattern.
7863 * config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
7864 New substitution rules with the required attributes.
7865
7866
7867 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7868
7869 Revert
7870 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7871
7872 * gensupport.c (process_substs_on_one_elem): Split loop to
7873 complete mark_operands_used_in_match_dup on all expressions in the
7874 vector first.
7875 (adjust_operands_numbers): Inline into process_substs_on_one_elem
7876 and remove function.
7877
7878 2016-03-01 Richard Biener <rguenther@suse.de>
7879
7880 PR middle-end/70022
7881 * fold-const.c (fold_indirect_ref_1): Fix range checking for
7882 vector BIT_FIELD_REF extract.
7883
7884 2016-03-01 Richard Biener <rguenther@suse.de>
7885
7886 PR tree-optimization/69994
7887 * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
7888
7889 2016-03-01 Ilya Enkovich <enkovich.gnu@gmail.com>
7890
7891 PR tree-optimization/69956
7892 * tree-vect-stmts.c (supportable_widening_operation): Support
7893 multi-step conversion of boolean vectors.
7894 (supportable_narrowing_operation): Likewise.
7895
7896 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7897
7898 * config/s390/s390.c (s390_decompose_address): Don't accept SImode
7899 anymore.
7900
7901 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7902
7903 * config/s390/subst.md (DSI_VI): New mode iterator.
7904 ("addr_style_op_subst"): Use DSI_VI instead of DSI.
7905 * config/s390/vector.md ("vec_set<mode>"): Move expander before
7906 the insn definition.
7907 ("*vec_set<mode>"): Change predicate and add alternative to
7908 support only either register or const_int operands as element
7909 selector.
7910 ("*vec_set<mode>_plus"): New pattern to support reg + const_int
7911 operands.
7912 ("vec_extract<mode>"): New expander.
7913 ("*vec_extract<mode>"): New insn definition supporting reg and
7914 const_int element selectors.
7915 ("*vec_extract<mode>_plus"): New insn definition supporting
7916 reg+const_int element selectors.
7917 ("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
7918 following expander+insn definition.
7919 ("<vec_shifts_name><mode>3"): New expander.
7920 ("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.
7921
7922 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7923
7924 * config/s390/s390.md ("*tabort_1"): Change predicate to
7925 nonmemory_operand. Add a second alternative to cover
7926 register as well as const int operands.
7927 ("*tabort_1_plus"): New pattern definition.
7928
7929 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7930
7931 * config/s390/s390.md ("*ashrdi3_cc_31")
7932 ("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
7933 ("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
7934 Merge insn definitions into ...
7935 ("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
7936 New pattern definition.
7937 ("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
7938 ("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
7939 ("*ashr<mode>3_and"): Merge insn definitions into ...
7940 ("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
7941 New pattern definition.
7942 * config/s390/subst.md ("addr_style_op_cc_subst")
7943 ("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
7944 substitutions patterns plus attributes.
7945 Add ashiftrt to SUBST iterator.
7946
7947 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7948
7949 * config/s390/s390.md ("<shift><mode>3"): Change predicate of
7950 op2 to nonmemory_operand.
7951 ("*<shift>di3_31", "*<shift>di3_31_and"):
7952 Merge into single pattern definition ...
7953 ("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
7954 ("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
7955 pattern definition ...
7956 ("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
7957 * config/s390/subst.md: Add ashift and lshiftrt to SUBST
7958 iterator.
7959
7960 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7961
7962 * config/s390/predicates.md (const_int_6bitset_operand): New
7963 predicate.
7964 * config/s390/s390.md: Include subst.md.
7965 ("rotl<mode>3"): New expander.
7966 ("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
7967 ...
7968 ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
7969 * config/s390/subst.md: New file.
7970
7971 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7972
7973 * config/s390/s390.md ("op_type", "atype", "length" attributes):
7974 Remove RRR type. It doesn't really exist.
7975 ("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
7976 attributes.
7977 ("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
7978 ("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
7979 ("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
7980 ("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
7981 ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
7982 ("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
7983 `enabled' attribute.
7984
7985 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7986
7987 * gensupport.c (process_substs_on_one_elem): Split loop to
7988 complete mark_operands_used_in_match_dup on all expressions in the
7989 vector first.
7990 (adjust_operands_numbers): Inline into process_substs_on_one_elem
7991 and remove function.
7992
7993 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
7994
7995 PR target/69706
7996 * config/sparc/sparc.c (NWORDS_UP): Rename to...
7997 (CEIL_NWORDS): ...this. Use CEIL macro.
7998 (compute_fp_layout): Adjust to above renaming.
7999 (function_arg_union_value): Likewise.
8000 (sparc_arg_partial_bytes): Likewise.
8001 (sparc_function_arg_advance): Likewise.
8002
8003 2016-02-29 Jeff Law <law@redhat.com>
8004
8005 PR tree-optimization/70005
8006 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
8007 where an object with a boolean range is compared against a value
8008 outside [0..1].
8009
8010 PR tree-optimization/69999
8011 * gimple-ssa-split-paths.c (split_paths): When duplicating a block
8012 with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule
8013 loop cleanups.
8014
8015 2016-02-29 Richard Biener <rguenther@suse.de>
8016
8017 PR tree-optimization/69994
8018 * tree-ssa-reassoc.c (gimple_nop_conversion_p): New function.
8019 (get_unary_op): Look through nop conversions.
8020 (ops_equal_values_p): New function, look for equality diregarding
8021 nop conversions.
8022 (eliminate_plus_minus_pair): Use ops_equal_values_p
8023 (repropagate_negates): Do not use get_unary_op here.
8024
8025 2016-02-29 Martin Liska <mliska@suse.cz>
8026
8027 * system.h: Poison ENABLE_CHECKING macro.
8028
8029 2016-02-29 Martin Liska <mliska@suse.cz>
8030
8031 * hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS
8032 is presented in dump flags.
8033 * hsa-regalloc.c (linear_scan_regalloc): Likewise.
8034 (hsa_regalloc): Likewise.
8035
8036 2016-02-19 Richard Biener <rguenther@suse.de>
8037
8038 PR tree-optimization/69980
8039 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
8040 permutation of those we need to keep.
8041
8042 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
8043
8044 PR target/69706
8045 * config/sparc/sparc.c (ROUND_ADVANCE): Rename to...
8046 (NWORDS_UP): ...this
8047 (init_cumulative_args): Minor tweaks.
8048 (sparc_promote_function_mode): Likewise.
8049 (scan_record_type): Delete.
8050 (traverse_record_type): New function template.
8051 (classify_data_t): New structure type.
8052 (classify_registers): New inline function.
8053 (function_arg_slotno): In 64-bit mode, bail out early if FP slots are
8054 exhausted. Instantiate traverse_record_type on classify_registers and
8055 deal with the case of a structure passed in slot #15 with no FP field
8056 in the first word.
8057 (assign_data_t): New structure type.
8058 (compute_int_layout): New static function.
8059 (compute_fp_layout): Likewise.
8060 (count_registers): New inline function.
8061 (assign_int_registers): New static function.
8062 (assign_fp_registers): Likewise.
8063 (assign_registers): New inline function.
8064 (function_arg_record_value_1): Delete.
8065 (function_arg_record_value_2): Likewise.
8066 (function_arg_record_value_3): Likewise.
8067 (function_arg_record_value): Adjust to above changes. Instantiate
8068 traverse_record_type on count_registers to first count the number of
8069 registers to be used and then on assign_registers to assign them.
8070 (function_arg_union_value): Adjust to above renaming.
8071 (sparc_function_arg_1); Minor tweaks. Remove commented out code.
8072 (sparc_arg_partial_bytes): Adjust to above renaming. Deal with the
8073 case of a structure passed in slot #15
8074 (sparc_function_arg_advance): Likewise.
8075 (function_arg_padding): Minor tweak.
8076
8077 2016-02-29 Richard Biener <rguenther@suse.de>
8078
8079 PR tree-optimization/69720
8080 * tree-vect-loop.c (get_initial_def_for_reduction): Avoid
8081 the adjustment_def path for possibly vectorized defs.
8082 (vect_create_epilog_for_reduction): Handle vectorized initial
8083 defs properly.
8084
8085 2016-02-28 Eric Botcazou <ebotcazou@adacore.com>
8086
8087 * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
8088
8089 2016-02-27 Jeff Law <law@redhat.com>
8090
8091 Revert
8092 2016-02-26 Richard Biener <rguenther@suse.de>
8093 Jeff Law <law@redhat.com>
8094
8095 PR tree-optimization/69740
8096 * cfghooks.c (remove_edge): Request loop fixups if we delete
8097 an edge that might turn an irreducible loop into a natural
8098 loop.
8099
8100 2016-02-27 Jakub Jelinek <jakub@redhat.com>
8101
8102 PR rtl-optimization/69896
8103 * tree-vect-generic.c (get_compute_type): Avoid single element
8104 vector types.
8105
8106 2016-02-26 Evandro Menezes <e.menezes@samsung.com>
8107
8108 Rename the AArch64 tuning option and related functions to enable the
8109 Newton series for the reciprocal square root to reflect its
8110 approximative characteristic.
8111
8112 * config/aarch64/aarch64-protos.h (aarch64_emit_swrsqrt): Rename
8113 function to "aarch64_emit_approx_rsqrt".
8114 * config/aarch64/aarch64-tuning-flags.def: Rename tuning flag to
8115 AARCH64_EXTRA_TUNE_APPROX_RSQRT.
8116 * config/aarch64/aarch64.c (exynosm1_tunigs): Use new flag name.
8117 (xgene1_tunings): Likewise.
8118 (use_rsqrt_p): Likewise.
8119 (aarch64_emit_swrsqrt): Use new function name.
8120 * config/aarch64/aarch64-simd.md (aarch64_rsqrts_*): Likewise.
8121 * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): Reword the
8122 text explaining this option.
8123 * doc/invoke.texi (-mlow-precision-recip-sqrt): Likewise.
8124
8125 2016-02-26 Jakub Jelinek <jakub@redhat.com>
8126
8127 PR target/69969
8128 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
8129 complain about -mallow-movmisalign without -mvsx if
8130 TARGET_ALLOW_MOVMISALIGN was not set explicitly.
8131
8132 2016-02-26 Joel Sherrill <joel@rtems.org>
8133
8134 * config.gcc: Add x86_64-*-rtems*.
8135 * config/i386/rtems-64.h: New file.
8136
8137 2016-02-26 Joel Sherrill <joel@rtems.org>
8138
8139 * config.gcc: Add aarch64-*-rtems*.
8140 * config/aarch64/rtems.h: New file.
8141
8142 2016-02-26 Segher Boessenkool <segher@kernel.crashing.org>
8143
8144 PR target/69946
8145 * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
8146 shift amount using %h. Add comment.
8147
8148 2016-02-26 Richard Biener <rguenther@suse.de>
8149 Jeff Law <law@redhat.com>
8150
8151 PR tree-optimization/69740
8152 * cfghooks.c (remove_edge): Request loop fixups if we delete
8153 an edge that might turn an irreducible loop into a natural
8154 loop.
8155
8156 2016-02-26 Martin Jambor <mjambor@suse.cz>
8157
8158 PR middle-end/69920
8159 * tree-sra.c (sra_modify_assign): Do not remove loads of
8160 uninitialized aggregates to SSA_NAMEs.
8161
8162 2016-02-26 Richard Henderson <rth@redhat.com>
8163
8164 PR target/69709
8165 * config/s390/s390.md (risbg and risbgn splitters): Allocate new
8166 pseudo in case the target rtx matches the source of the left
8167 shift.
8168
8169 2016-02-26 Martin Jambor <mjambor@suse.cz>
8170
8171 PR hsa/69568
8172 * hsa.h (hsa_type_packed_p): Declare.
8173 * hsa.c (hsa_type_packed_p): New function.
8174 * hsa-gen.c (mem_type_for_type): Use unsigned type for packed
8175 loads.
8176 (gen_hsa_insns_for_store): Use hsa_type_packed_p.
8177 * hsa-brig.c (emit_basic_insn): Likewise.
8178
8179 2016-02-26 Martin Jambor <mjambor@suse.cz>
8180
8181 pr hsa/69674
8182 * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
8183 pointers.
8184 (gen_hsa_addr): Allow integer constants in TMR_INDEX2.
8185
8186 2016-02-26 Martin Jambor <mjambor@suse.cz>
8187
8188 * hsa.h (is_a_helper): New overload for hsa_op_immed for
8189 hsa_op_with_type operands.
8190 (hsa_unsigned_type_for_type): Declare.
8191 * hsa.c (hsa_unsigned_type_for_type): New function.
8192 * hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type.
8193 (gen_hsa_insns_for_operation_assignment): Satisfy constrains of
8194 the finalizer. Do not emit extra move.
8195
8196 2016-02-26 Martin Jambor <mjambor@suse.cz>
8197
8198 * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
8199 atomic operations in private segment.
8200
8201 2016-02-26 Martin Jambor <mjambor@suse.cz>
8202
8203 * omp-low.c (grid_find_ungridifiable_statement): Store problematic
8204 statements to wi->info. Also disallow omp simd constructs.
8205 (grid_target_follows_gridifiable_pattern): Use wi.info to dump reason
8206 for not gridifying. Dump special string for omp_for.
8207
8208 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8209
8210 PR target/69245
8211 * config/aarch64/aarch64.c (aarch64_set_current_function):
8212 Save/restore target globals when switching to
8213 target_option_default_node.
8214
8215 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8216
8217 PR target/69613
8218 * config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
8219 Return 0 if !SHIFT_COUNT_TRUNCATED.
8220
8221 2016-02-26 Jakub Jelinek <jakub@redhat.com>
8222 Eric Botcazou <ebotcazou@adacore.com>
8223
8224 PR rtl-optimization/69891
8225 * dse.c (scan_insn): If we can't figure out memset arguments
8226 or they are non-constant, call clear_rhs_from_active_local_stores.
8227
8228 2016-02-26 Martin Liska <mliska@suse.cz>
8229
8230 * doc/extend.texi: Mention clog10, clog10f an clog10l
8231 in Builtins section.
8232
8233 2016-02-26 Martin Liska <mliska@suse.cz>
8234
8235 * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
8236 CHECKING_P.
8237 (resolve_args_picking_1): Likewise.
8238 * dwarf2out.h (struct GTY): Likewise.
8239
8240 2016-02-26 Martin Liska <mliska@suse.cz>
8241
8242 * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
8243 with flag_checking.
8244 * hsa-regalloc.c (linear_scan_regalloc): Likewise.
8245
8246 2016-02-26 Markus Trippelsdorf <markus@trippelsdorf.de>
8247 Martin Liska <mliska@suse.cz>
8248
8249 * doc/install.texi: Mention --enable-valgrind-annotations.
8250
8251 2016-02-26 Richard Biener <rguenther@suse.de>
8252
8253 PR tree-optimization/69551
8254 * tree-ssa-structalias.c (get_constraint_for_ssa_var): When
8255 looking through aliases adjust DECL_PT_UID to refer to the
8256 ultimate alias target.
8257
8258 2016-02-25 Martin Liska <mliska@suse.cz>
8259
8260 PR middle-end/69919
8261 * alloc-pool.c (after_memory_report): New variable.
8262 * alloc-pool.h (base_pool_allocator ::release): Do not use
8263 the infrastructure if after_memory_report.
8264 * toplev.c (toplev::main): Mark after memory report.
8265
8266 2016-02-25 Richard Biener <rguenther@suse.de>
8267
8268 PR tree-optimization/48795
8269 * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
8270
8271 2016-02-25 Ilya Verbin <ilya.verbin@intel.com>
8272
8273 PR driver/68463
8274 * config/gnu-user.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o if
8275 offloading is enabled and -fopenacc or -fopenmp is specified.
8276 (CRTOFFLOADEND): Likewise.
8277 (GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
8278 (GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
8279 * lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
8280 (offload_objects_file_name): New static var.
8281 (tool_cleanup): Remove offload_objects_file_name file.
8282 (find_offloadbeginend): Replace with ...
8283 (find_crtoffloadtable): ... this.
8284 (run_gcc): Remove offload_argc and offload_argv.
8285 Get offload_objects_file_name from -foffload-objects=... option.
8286 Read names of object files with offload from this file, pass them to
8287 compile_images_for_offload_targets. Don't call find_offloadbeginend and
8288 don't pass offloadbegin and offloadend to the linker. Don't pass
8289 offload non-LTO files to the linker, because now they're not claimed.
8290
8291 2016-02-25 Jan Hubicka <hubicka@ucw.cz>
8292
8293 PR ipa/69630
8294 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
8295 on builtin_unreachable.
8296
8297 2016-02-25 Jakub Jelinek <jakub@redhat.com>
8298
8299 PR rtl-optimization/69896
8300 * regcprop.c: Include cfgrtl.h.
8301 (copyprop_hardreg_forward_1): If noop_p insn uses narrower
8302 than remembered mode, either delete it (if noop_move_p), or
8303 treat like copy_p but not noop_p instruction.
8304
8305 2016-02-24 Jakub Jelinek <jakub@redhat.com>
8306
8307 PR debug/69705
8308 * dwarf2out.c (gen_variable_die): Work around buggy LTO
8309 - allow NULL decl for Fortran DW_TAG_common_block variables.
8310
8311 2016-02-24 Jason Merrill <jason@redhat.com>
8312
8313 * common.opt (flifetime-dse): Add -flifetime-dse=1.
8314
8315 2016-02-24 Richard Biener <rguenther@suse.de>
8316 Jakub Jelinek <jakub@redhat.com>
8317
8318 PR middle-end/69760
8319 * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
8320 conditionally executed ops to well-defined overflow behavior.
8321
8322 2016-02-24 Jakub Jelinek <jakub@redhat.com>
8323
8324 PR middle-end/69915
8325 * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
8326 elements.
8327
8328 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8329
8330 PR rtl-optimization/69886
8331 * gcse.c (can_assign_to_reg_without_clobbers_p): Accept mode
8332 argument. Use it when checking validity of set instructions.
8333 (want_to_gcse_p): Pass mode to can_assign_to_reg_without_clobbers_p.
8334 (compute_ld_motion_mems): Update can_assign_to_reg_without_clobbers_p
8335 callsite.
8336 * rtl.h (can_assign_to_reg_without_clobbers_p): Update prototype.
8337 * store-motion.c (find_moveable_store): Update
8338 can_assign_to_reg_without_clobbers_p callsite.
8339
8340 2016-02-24 Richard Biener <rguenther@suse.de>
8341
8342 PR middle-end/68963
8343 * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
8344 bogus check.
8345 (record_nonwrapping_iv): Do not fall back to the low/high bound
8346 for non-constant IV bases if the stmt is not always executed.
8347
8348 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8349
8350 * config/arm/arm-cores.def (cortex-a32): New entry.
8351 * config/arm/arm-tables.opt: Regenerate.
8352 * config/arm/arm-tune.md: Regenerate.
8353 * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a32.
8354 * config/arm/t-aprofile: Handle mcpu=cortex-a32.
8355 * doc/invoke.texi (ARM Options): Document cortex-a32 as value
8356 for -mcpu and -mtune.
8357
8358 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8359
8360 PR target/69875
8361 * config/arm/arm.h (TARGET_HAVE_LPAE): Define.
8362 * config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value.
8363 * config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern.
8364 (atomic_loaddi_1): Delete.
8365 (atomic_loaddi): Rewrite expander using the above changes.
8366
8367 2016-02-24 Jakub Jelinek <jakub@redhat.com>
8368
8369 PR c/69918
8370 * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
8371 2 to 3.
8372
8373 2016-02-24 Jakub Jelinek <jakub@redhat.com>
8374 Richard Biener <rguenth@suse.de>
8375
8376 PR middle-end/69909
8377 * expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid
8378 set_mem_attributes if tem is SSA_NAME which got expanded
8379 as a MEM.
8380
8381 2016-02-24 Richard Biener <rguenther@suse.de>
8382
8383 PR tree-optimization/69907
8384 * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
8385 end of permutations for BB vectorization.
8386
8387 2016-02-24 Christian Bruel <christian.bruel@st.com>
8388
8389 * config/arm/arm-c.c (arm_option_override): Initialize
8390 target_option_current_node.
8391 * config/arm/arm.c (arm_pragma_target_parse): Replace
8392 build_target_option_node call by target_option_current_node.
8393 Set target_option_current_node.
8394 Fix comments.
8395
8396 2016-02-23 David Edelsohn <dje.gcc@gmail.com>
8397
8398 PR target/69810
8399 * config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
8400 define_insn_and_split to define_insn.
8401 (zero_extendqi<mode>2_dot2): Same.
8402 (extendqi<mode>2_dot): Same.
8403 (extendqi<mode>2_dot2): Same.
8404
8405 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
8406
8407 * config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores
8408 and add bypass for AES{D,E} and AESMC pairs.
8409 * config/aarch64/aarch64.c (exynosm1_tunings): Enable fusion of AES{D,E}
8410 and AESMC pairs.
8411
8412 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
8413
8414 * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
8415 series for reciprocal square root in Exynos M1.
8416
8417 2016-02-23 Martin Sebor <msebor@redhat.com>
8418
8419 PR c/69759
8420 * doc/extend.texi (Other Builtins): Document __builtin_alloca and
8421 __builtin_alloca_with_align.
8422
8423 2016-02-23 Richard Henderson <rth@redhat.com>
8424
8425 * config/i386/i386-c.c (ix86_target_macros): Remove __SEG_TLS.
8426 (ix86_register_pragmas): Remove __seg_tls.
8427 * config/i386/i386-protos.h (ADDR_SPACE_SEG_TLS): Remove.
8428 * config/i386/i386.c (ix86_print_operand_address_as): Don't handle it.
8429 (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): Remove.
8430 (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): Remove.
8431 (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): Remove.
8432 * doc/extend.texi (__seg_tls): Remove item.
8433
8434 2016-02-23 Richard Biener <rguenther@suse.de>
8435
8436 * alloc-pool.h (struct allocation_object): Make id member
8437 conditional on CHECKING_P again.
8438 (get_instance): Adjust.
8439 (base_pool_allocator): Likewise.
8440
8441 2016-02-23 Thomas Schwinge <thomas@codesourcery.com>
8442
8443 * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
8444 (parallelize_loops): In OpenACC kernels mode, set n_threads to
8445 zero.
8446 (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
8447 flag_openacc.
8448 * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
8449
8450 2016-02-23 Richard Biener <rguenther@suse.de>
8451
8452 * mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
8453 * bitmap.h (struct bitmap_usage): Likewise.
8454 (bitmap_move): Declare.
8455 * bitmap.c (register_overhead): Take size_t argument.
8456 (bitmap_move): New function.
8457 * df-problems.c (df_rd_transfer_function): Use bitmap_move
8458 to properly account overhead.
8459 * tree.c (free_node): Use tree_size.
8460
8461 2016-02-23 Jakub Jelinek <jakub@redhat.com>
8462
8463 PR c++/69902
8464 * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
8465 when inverting comparison.
8466
8467 PR c/69900
8468 * common.opt (Wunreachable-code): Add Warning flag.
8469
8470 2016-02-23 Mark Wielaard <mjw@redhat.com>
8471 Jakub Jelinek <jakub@redhat.com>
8472
8473 PR c/69911
8474 * cgraphunit.c (check_global_declaration): Check main_input_filename
8475 and DECL_SOURCE_FILE are not NULL.
8476
8477 2016-02-23 Martin Jambor <mjambor@suse.cz>
8478
8479 PR tree-optimization/69666
8480 * tree-sra.c (sra_modify_assign): Do not attempt to create
8481 default_def replacements for unscalarizable regions.
8482
8483 2016-02-20 Mark Wielaard <mjw@redhat.com>
8484
8485 PR c/28901
8486 * cgraphunit.c (check_global_declaration): Check level of
8487 warn_unused_const_variable and main_input_filename.
8488 * doc/invoke.texi (Warning Options): Add -Wunused-const-variable=.
8489 (-Wunused-variable): For C implies -Wunused-const-variable=1.
8490 (-Wunused-const-variable): Explain levels 1 and 2.
8491
8492 2016-02-22 Jakub Jelinek <jakub@redhat.com>
8493
8494 PR target/69888
8495 * config/i386/i386.c (decide_alg): Ensure we don't recurse with
8496 identical arguments. Formatting and spelling fixes.
8497
8498 PR target/69885
8499 * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
8500 be specified.
8501
8502 PR target/69894
8503 PR target/69895
8504 * config/m68k/t-opts (OPTIONS_H_EXTRA): Add m68k-microarchs.def
8505 and m68k-devices.def.
8506 * config/c6x/t-c6x (OPTIONS_H_EXTRA): Add c6x-isas.def.
8507 * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add aarch64-arches.def.
8508
8509 2016-02-22 Cesar Philippidis <cesar@codesourcery.com>
8510
8511 * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
8512 and HImode registers.
8513
8514 2016-02-22 Richard Biener <rguenther@suse.de>
8515
8516 PR tree-optimization/69882
8517 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Properly
8518 preserve permutations present because of gaps.
8519 (vect_supported_load_permutation_p): Always continue checking
8520 permutations after vect_attempt_slp_rearrange_stmts.
8521
8522 2016-02-22 Bin Cheng <bin.cheng@arm.com>
8523
8524 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
8525 min_profitable_estimate, rather than min_profitable_iters.
8526
8527 2016-02-22 Jakub Jelinek <jakub@redhat.com>
8528
8529 PR target/69885
8530 * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
8531 SImode for last match_operand.
8532
8533 2016-02-22 Martin Liska <mliska@suse.cz>
8534
8535 * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
8536 return bitsize - 1 as the return value.
8537
8538 2016-02-22 Oleg Endo <olegendo@gcc.gnu.org>
8539
8540 PR target/69806
8541 PR target/54089
8542 * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
8543 Handle negative shift counts.
8544 * config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
8545 force_reg on the shift constant.
8546 (lshrsi3): Likewise. Expand into lshrsi3_n* instead of lshrsi3_d.
8547 (lshrsi3_d): Handle negative shift counts.
8548
8549 2016-02-22 Richard Biener <rguenther@suse.de>
8550 Tom de Vries <tom@codesourcery.com>
8551
8552 * graph.c: Include dumpfile.h.
8553 (print_graph_cfg): Split into three overloads.
8554 * gdbhooks.py (class DotFn): Add and instantiate, adding command dot-fn.
8555
8556 2016-02-22 Tom de Vries <tom@codesourcery.com>
8557
8558 * gdbhooks.py (class DumpFn): Add and instantiate, adding command
8559 dump-fn.
8560
8561 2016-02-22 Richard Biener <rguenther@suse.de>
8562
8563 PR ipa/37448
8564 * ipa-inline-transform.c (inline_call): When not updating
8565 overall summaries adjust self size by the growth estimate.
8566 * ipa-inline.c (inline_to_all_callers_1): Add to the callers
8567 hash-set, do not update overall summaries here. Renamed from ...
8568 (inline_to_all_callers): ... this which is now wrapping the
8569 above and performing delayed overall summary update.
8570 (early_inline_small_functions): Delay updating of the overall
8571 summary.
8572
8573 2016-02-21 Markus Trippelsdorf <markus@trippelsdorf.de>
8574
8575 * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
8576 variable.
8577
8578 2016-02-19 Jakub Jelinek <jakub@redhat.com>
8579
8580 PR driver/69805
8581 * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use
8582 :%* in %:gt() argument.
8583 (greater_than_spec_func): Adjust for expecting only numbers,
8584 if there are more than two numbers, compare the last two.
8585
8586 2016-02-19 Jonathan Wakely <jwakely@redhat.com>
8587
8588 * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
8589 -Wnarrowing with -std.
8590
8591 2016-02-19 Jakub Jelinek <jakub@redhat.com>
8592
8593 PR c++/69851
8594 * expr.c (store_field): Don't use bit-field path if exp is
8595 COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is
8596 different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize
8597 and the assignment can be performed by bitwise copy. Formatting
8598 fix.
8599
8600 PR middle-end/69838
8601 * lra.c (lra_process_new_insns): If non-call exceptions are enabled,
8602 call copy_reg_eh_region_note_forward on before and/or after sequences
8603 and remove note from insn if it no longer can throw.
8604
8605 PR target/69820
8606 * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
8607 if TARGET_AVX512BW.
8608
8609 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8610
8611 * config/s390/vector.md: Add missing commutative operand markers
8612 to the patterns which qualify for one.
8613 * config/s390/vx-builtins.md: Likewise.
8614
8615 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8616
8617 * config/s390/vector.md (VI, VI_QHS): Add single element vector
8618 types to mode iterators.
8619 (vec_double): ... and mode attribute.
8620 * config/s390/vx-builtins.md (non_vec_int): Likewise.
8621
8622 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8623
8624 * config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
8625 Change the predicate of op2 from nonimmediate to general and let
8626 reload fix it if necessary.
8627
8628 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8629
8630 * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
8631
8632 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8633
8634 * config/s390/s390.c (s390_expand_vcond): Use the compare operand
8635 mode.
8636
8637 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8638
8639 * config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
8640 * config/s390/s390.c (s390_expand_vec_movstr): New function.
8641 * config/s390/s390.md ("movstr<P:mode>"): Call
8642 s390_expand_vec_movstr.
8643
8644 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8645
8646 * config/s390/s390.md: Add missing output modifier for operand 1
8647 to print it as address properly.
8648
8649 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8650
8651 * config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
8652 * config/s390/2964.md: New file.
8653 * config/s390/s390.c (s390_get_sched_attrmask): Use the right set
8654 of insn grouping attributes depending on the CPU level.
8655 (s390_get_unit_mask): New function.
8656 (s390_sched_score): Remove the OOO from the scheduling macros.
8657 Add loop to calculate a score for the instruction mix.
8658 (s390_sched_reorder): Likewise plus improve debug output.
8659 (s390_sched_variable_issue): Rename macros as above. Calculate
8660 the unit distances after actually scheduling an insn. Improve
8661 debug output.
8662 (s390_sched_init): Clear last_scheduled_unit_distance array.
8663 * config/s390/s390.md: Include 2964.md.
8664
8665 2016-02-18 Jakub Jelinek <jakub@redhat.com>
8666
8667 PR target/69671
8668 * config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
8669 *avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
8670 *avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
8671 *avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
8672 *avx512f_<code>v8div16qi2_mask_1): New insns.
8673
8674 2016-02-18 Michael Meissner <meissner@linux.vnet.ibm.com>
8675
8676 PR target/68404
8677 * config/rs6000/predicates.md (fusion_gpr_addis): Revert
8678 2016-02-09 change.
8679
8680 * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
8681 earlyclobber from target. Use wF constraint for fused memory
8682 address.
8683 (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
8684
8685 2016-02-18 Jakub Jelinek <jakub@redhat.com>
8686 Martin Liska <mliska@suse.cz>
8687
8688 PR sanitizer/69863
8689 * cfgexpand.c (asan_sanitize_stack_p): New function.
8690 (partition_stack_vars): Use the function.
8691 (expand_stack_vars): Likewise.
8692 (defer_stack_allocation): Likewise.
8693 (expand_used_vars): Likewise.
8694
8695 2016-02-18 Richard Biener <rguenther@suse.de>
8696
8697 PR middle-end/69553
8698 * fold-const.c (operand_equal_p): Properly compare offsets for
8699 IMAGPART_EXPR and ARRAY_REF.
8700
8701 2016-02-18 Nick Clifton <nickc@redhat.com>
8702
8703 PR target/62254
8704 PR target/69610
8705 * config/arm/arm.c (arm_option_override_internal): Disable
8706 interworking if the target does not support thumb instructions.
8707 (arm_reload_in_hi): Handle the case where a register to register
8708 move needs reloading because there is no simple pattern to handle
8709 it.
8710 (arm_reload_out_hi): Likewise.
8711
8712 2016-02-18 Richard Biener <rguenther@suse.de>
8713
8714 PR middle-end/69854
8715 * match.pd: Don't use fold_binary or fold_unary for folding
8716 constants.
8717
8718 2016-02-17 Jakub Jelinek <jakub@redhat.com>
8719
8720 PR c++/69850
8721 * gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
8722 on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
8723 * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
8724 warn on gimple_no_warning_p statements.
8725
8726 2016-02-17 Jonathan Wakely <jwakely@redhat.com>
8727
8728 * doc/extend.texi (C++ Attributes): Correct description of
8729 warn_unused type attribute.
8730
8731 2016-02-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8732
8733 * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
8734 correct instruction.
8735
8736 2016-02-17 Richard Biener <rguenther@suse.de>
8737
8738 PR rtl-optimization/69609
8739 * bb-reorder.c (struct bbro_basic_block_data): Add priority member.
8740 (find_traces_1_round): When ending a trace update cached priority
8741 of successors.
8742 (bb_to_key): Use cached priority when available.
8743 (copy_bb): Initialize cached priority.
8744 (reorder_basic_blocks_software_trace_cache): Likewise.
8745
8746 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8747
8748 PR target/69161
8749 * config/aarch64/predicates.md (aarch64_comparison_operator_mode):
8750 New predicate.
8751 (aarch64_comparison_operator): Break overly long line into two.
8752 (aarch64_comparison_operation): Likewise.
8753 * config/aarch64/aarch64.md (cstorecc4): Use
8754 aarch64_comparison_operator_mode instead of
8755 aarch64_comparison_operator.
8756 (cstore<mode>4): Likewise.
8757 (aarch64_cstore<mode>): Likewise.
8758 (*cstoresi_insn_uxtw): Likewise.
8759 (cstore<mode>_neg): Likewise.
8760 (*cstoresi_neg_uxtw): Likewise.
8761
8762 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8763
8764 PR target/69161
8765 * config/arm/predicates.md (arm_comparison_operator_mode):
8766 New predicate.
8767 * config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode
8768 instead of arm_comparison_operator.
8769 (*mov_negscc): Likewise.
8770 (*mov_notscc): Likewise.
8771 * config/arm/thumb2.md (*thumb2_mov_scc): Likewise.
8772 (*thumb2_mov_negscc): Likewise.
8773 (*thumb2_mov_negscc_strict_it): Likewise.
8774 (*thumb2_mov_notscc): Likewise.
8775 (*thumb2_mov_notscc_strict_it): Likewise.
8776
8777 2016-02-17 Wilco Dijkstra <wdijkstr@arm.com>
8778
8779 * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
8780 Add missing return.
8781
8782 2016-02-17 Eric Botcazou <ebotcazou@adacore.com>
8783
8784 * config/visium/visium.c (machine_libfunc_index): New enum.
8785 (machine_libfuncs): New structure.
8786 (visium_libfuncs): New static variable.
8787 (TARGET_INIT_LIBFUNCS): Define to...
8788 (visium_init_libfuncs): ...this. New function.
8789 (expand_block_move_4): Use the appropriate libfunc.
8790 (expand_block_move_2): Likewise.
8791 (expand_block_move_1): Likewise.
8792 (expand_block_set_4): Likewise.
8793 (expand_block_set_2): Likewise.
8794 (expand_block_set_1): Likewise.
8795 (visium_trampoline_init): Likewise.
8796
8797 2016-02-17 Nick Clifton <nickc@redhat.com>
8798
8799 * config/msp430/msp430.c (msp430_mcu_data): Sync with data from
8800 TI's devices.csv file as of March 2016.
8801
8802 2016-02-16 Kelvin Nilsen <kelvin@gcc.gnu.org>
8803
8804 PR Target/48344
8805 * opts-global.c (handle_common_deferred_options): Introduce and
8806 initialize two global variables to remember command-line options
8807 specifying a stack-limiting register.
8808 * opts.h: Add extern declarations of the two new global variables.
8809 * emit-rtl.c (init_emit_once): Initialize the stack_limit_rtx
8810 variable based on the values of the two new global variables.
8811
8812 2016-02-16 Jakub Jelinek <jakub@redhat.com>
8813
8814 PR c/69835
8815 * common.opt (Wnonnull-compare): New warning.
8816 * doc/invoke.texi (-Wnonnull): Remove text about comparison
8817 of arguments against NULL.
8818 (-Wnonnull-compare): Document.
8819 * Makefile.in (OBJS): Add gimple-ssa-nonnull-compare.o.
8820 * tree-pass.h (make_pass_warn_nonnull_compare): Declare.
8821 * passes.def (pass_warn_nonnull_compare): Add.
8822 * gimple-ssa-nonnull-compare.c: New file.
8823
8824 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
8825
8826 * config/aarch64/aarch64.c (cortexa57_tunings): Remove
8827 AARCH64_EXTRA_TUNE_RECIP_SQRT.
8828
8829 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
8830
8831 * config/aarch64/aarch64.c (use_rsqrt_p): Always use software
8832 reciprocal sqrt for -mlow-precision-recip-sqrt.
8833
8834 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
8835 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8836
8837 * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
8838 always use lane loads to construct non-constant vectors.
8839
8840 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
8841
8842 * config/aarch64/aarch64.md
8843 (arch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Fix register
8844 constraints for operand 3.
8845 (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
8846
8847 2016-02-16 Jakub Jelinek <jakub@redhat.com>
8848 Richard Biener <rguenther@suse.de>
8849
8850 PR tree-optimization/69820
8851 * tree-vect-patterns.c (type_conversion_p): Return false if
8852 *orig_type is unsigned single precision or boolean.
8853 (vect_recog_dot_prod_pattern, vect_recog_widen_mult_pattern):
8854 Formatting fix.
8855
8856 2016-02-16 Jakub Jelinek <jakub@redhat.com>
8857
8858 PR rtl-optimization/69764
8859 PR rtl-optimization/69771
8860 * optabs.c (expand_binop): Ensure for shift optabs invalid CONST_INT
8861 op1 is valid for GET_MODE_INNER (mode) and force it into a reg.
8862
8863 2016-02-16 Richard Biener <rguenther@suse.de>
8864
8865 PR tree-optimization/69776
8866 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
8867 sets from caller.
8868 (indirect_refs_may_alias_p): Likewise.
8869 (refs_may_alias_p_1): Pass alias sets as from ao_ref.
8870 * tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set
8871 according to tbaa_p.
8872 * tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag.
8873 (optimize_stmt): For redundant store discovery do not allow tbaa.
8874
8875 2016-02-16 Bernd Schmidt <bschmidt@redhat.com>
8876
8877 PR tree-optimization/69714
8878 * tree-ssa-math-opts.c (find_bswap_or_nop): Revert previous change.
8879 Return NULL if we have irrelevant high bytes on BIG_ENDIAN.
8880
8881 2016-02-16 Claudiu Zissulescu <claziss@synopsys.com>
8882
8883 * config/arc/arc-modes.def (CC_FPU, CC_FPU_UNEQ): New modes.
8884 * config/arc/arc-opts.h (FPU_SP, FPU_SF, FPU_SC, FPU_SD, FPU_DP)
8885 (FPU_DF, FPU_DC, FPU_DD, FXP_DP): Define.
8886 * config/arc/arc.c (arc_init): Check FPU options.
8887 (get_arc_condition_code): Handle new CC_FPU* modes.
8888 (arc_select_cc_mode): Likewise.
8889 (arc_conditional_register_usage): Allow 64 bit datum into even-odd
8890 register pair only. Allow access for ARCv2 accumulator.
8891 (gen_compare_reg): Whenever we have FPU support use FPU compare
8892 instructions.
8893 (arc_reorg): Don't generate brcc insns when FPU compare
8894 instructions are involved.
8895 * config/arc/arc.h (TARGET_DPFP): Add TARGET_FP_DPAX condition.
8896 (TARGET_OPTFPE): Add condition when ARC EM can use optimized
8897 floating point emulation.
8898 (ACC_REG_FIRST, ACC_REG_LAST, ACCL_REGNO, ACCH_REGNO): Define.
8899 (REVERSE_CONDITION): Add new CC_FPU* modes.
8900 (TARGET_FP_SP_BASE): Define.
8901 (TARGET_FP_DP_BASE): Likewise.
8902 (TARGET_FP_SP_FUSED): Likewise.
8903 (TARGET_FP_DP_FUSED): Likewise.
8904 (TARGET_FP_SP_CONV): Likewise.
8905 (TARGET_FP_DP_CONV): Likewise.
8906 (TARGET_FP_SP_SQRT): Likewise.
8907 (TARGET_FP_DP_SQRT): Likewise.
8908 (TARGET_FP_DP_AX): Likewise.
8909 * config/arc/arc.md (ARCV2_ACC): New constant.
8910 (type): New fpu type attribute.
8911 (SDF): Conditional iterator.
8912 (cstore<mode>, cbranch<mode>): Change expand condition.
8913 (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3): New expands,
8914 handles FPU/FPX cases as well.
8915 * config/arc/arc.opt (mfpu): New option.
8916 * config/arc/fpx.md (addsf3_fpx, subsf3_fpx, mulsf3_fpx):
8917 Renamed.
8918 (adddf3, muldf3, subdf3): Removed.
8919 * config/arc/predicates.md (proper_comparison_operator): Recognize
8920 CC_FPU* modes.
8921 * config/arc/fpu.md: New file.
8922 * doc/invoke.texi (ARC Options): Document mfpu option.
8923
8924 2016-02-16 Richard Biener <rguenther@suse.de>
8925
8926 PR rtl-optimization/69291
8927 * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
8928 noce_operand_ok check.
8929
8930 2016-02-16 Tom de Vries <tom@codesourcery.com>
8931
8932 PR lto/67709
8933 * omp-low.c (simd_clone_create): Remove call to
8934 symtab->call_cgraph_insertion_hooks.
8935
8936 2016-02-16 Jakub Jelinek <jakub@redhat.com>
8937
8938 PR tree-optimization/69802
8939 * tree-ssa-reassoc.c (update_range_test): If op is
8940 SSA_NAME_IS_DEFAULT_DEF, give up unless tem is a positive
8941 op == 1 test of precision 1 integral op, otherwise handle
8942 that case as op itself. Fix up formatting.
8943 (optimize_range_tests_to_bit_test, optimize_range_tests): Fix
8944 up formatting.
8945
8946 2016-02-16 Richard Biener <rguenther@suse.de>
8947
8948 PR tree-optimization/69586
8949 * tree-vrp.c (register_edge_assert_for_2): Handle all integral
8950 types for conversion sources.
8951
8952 2016-02-16 Richard Biener <rguenther@suse.de>
8953
8954 PR middle-end/69801
8955 * fold-const.c (operand_equal_p): For COND_EXPR zero operand
8956 mask OEP_ADDRESS_OF.
8957
8958 2016-02-16 Alan Modra <amodra@gmail.com>
8959
8960 PR target/68973
8961 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter.
8962 (p8_mtvsrd_df, p8_mtvsrd_sf): New.
8963 (p8_mtvsrd_1, p8_mtvsrd_2): Delete.
8964 (p8_mtvsrwz): New.
8965 (p8_mtvsrwz_1, p8_mtvsrwz_2): Delete.
8966 (p8_xxpermdi_<mode>): Take two DF inputs rather than one TF.
8967 (p8_fmrgow_<mode>): Likewise.
8968 (reload_vsx_from_gpr<mode>): Make clobber IF. Adjust for above
8969 changes.
8970 (reload_fpr_from_gpr<mode>): Similarly. Use "d" for op0 constraint.
8971 (reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting
8972 to use movdi_internal64. Remove op0_di.
8973 * config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode.
8974
8975 2016-02-15 Evandro Menezes <e.menezes@samsung.com>
8976
8977 Add support for the FCCMP insn types
8978
8979 * config/aarch64/aarch64.md (fccmp): Change insn type.
8980 (fccmpe): Likewise.
8981 * config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types.
8982 * config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise.
8983 * config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise.
8984 * config/arm/xgene1.md (xgene1_fcmp): Likewise.
8985 * config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation.
8986 * config/arm/types.md (fccmps): Add new insn type.
8987 (fccmpd): Likewise.
8988
8989 2016-02-15 Bernd Edlinger <bernd.edlinger@hotmail.de>
8990
8991 * alias.c (get_alias_set): Fix a typo in comment.
8992
8993 2016-02-15 Richard Biener <rguenther@suse.de>
8994
8995 PR tree-optimization/69595
8996 * match.pd: Complete range test simplification to true.
8997
8998 2016-02-15 Bernd Schmidt <bschmidt@redhat.com>
8999
9000 PR rtl-optimization/69648
9001 * lra-constraints.c (update_ebb_live_info): Don't remove sets of
9002 pic_offset_table_rtx.
9003
9004 PR rtl-optimization/69752
9005 * ira.c (update_equiv_regs): When looking for more than a single SET,
9006 also take other side effects into account.
9007
9008 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
9009
9010 * config/s390/s390.c (s390_function_profiler): Add a new sequence
9011 for z900+ CPUs in 31-bit mode.
9012
9013 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
9014
9015 * common/config/s390/s390-common.c (s390_supports_split_stack):
9016 New function.
9017 (TARGET_SUPPORTS_SPLIT_STACK): New macro.
9018 * config/s390/s390-protos.h: Add s390_expand_split_stack_prologue.
9019 * config/s390/s390.c (struct machine_function): New field
9020 split_stack_varargs_pointer.
9021 (s390_register_info): Mark r12 as clobbered if it'll be used as temp
9022 in s390_emit_prologue.
9023 (s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack
9024 vararg pointer.
9025 (morestack_ref): New global.
9026 (SPLIT_STACK_AVAILABLE): New macro.
9027 (s390_expand_split_stack_prologue): New function.
9028 (s390_live_on_entry): New function.
9029 (s390_va_start): Use split-stack vararg pointer if appropriate.
9030 (s390_asm_file_end): Emit the split-stack note sections.
9031 (TARGET_EXTRA_LIVE_ON_ENTRY): New macro.
9032 * config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec.
9033 (UNSPECV_SPLIT_STACK_CALL): New unspec.
9034 (UNSPECV_SPLIT_STACK_DATA): New unspec.
9035 (split_stack_prologue): New expand.
9036 (split_stack_space_check): New expand.
9037 (split_stack_data): New insn.
9038 (split_stack_call): New expand.
9039 (split_stack_call_*): New insn.
9040 (split_stack_cond_call): New expand.
9041 (split_stack_cond_call_*): New insn.
9042
9043 2016-02-15 Richard Biener <rguenther@suse.de>
9044
9045 PR tree-optimization/69783
9046 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
9047 Add trivially correct cases.
9048
9049 2016-02-15 Tom de Vries <tom@codesourcery.com>
9050
9051 PR lto/69655
9052 * lto-cgraph.c (input_offload_tables): Add and handle bool parameter
9053 do_force_output.
9054 * lto-streamer.h (input_offload_tables): Add and handle bool parameter.
9055
9056 2016-02-15 Richard Biener <rguenther@suse.de>
9057
9058 PR tree-optimization/69776
9059 * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
9060 * tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to
9061 indicate whether we can use TBAA to disambiguate against stores.
9062 Use alias-set zero if not.
9063 (visit_reference_op_store): Do not use TBAA when looking up
9064 redundant stores.
9065 * tree-ssa-pre.c (compute_avail): Use TBAA here.
9066 (eliminate_dom_walker::before_dom_children): But not when looking
9067 up redundant stores.
9068
9069 2016-02-14 John David Anglin <danglin@gcc.gnu.org>
9070
9071 * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.
9072
9073 2016-02-14 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
9074
9075 * config/i386/znver1.md
9076 (znver1_pop, znver1_pop_mem,
9077 znver1_load_imov_double_store,
9078 znver1_load_imov_direct_store,
9079 znver1_load_imov_direct_load,
9080 znver1_load_imov_double_load): Add new.
9081 (znver1_insn, znver1_insn_load): Add icmov type.
9082 (znver1_sseavx_fma,
9083 znver1_sseavx_fma_load,
9084 znver1_avx256_fma,
9085 znver1_avx256_fma_load): Fix pipe usage.
9086
9087 2016-02-14 Alan Modra <amodra@gmail.com>
9088
9089 PR target/68973
9090 * reloads.c (find_reloads_address_1): For pre/post-inc/dec
9091 with an invalid hard reg, reload just the reg not the entire
9092 pre/post-inc/dec address expression.
9093
9094 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
9095
9096 PR target/67260
9097 * config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with
9098 fixed R1_REG scratch reg.
9099 (sibcall_value_pcrel_fdpic): Likewise.
9100
9101 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
9102
9103 PR target/67636
9104 PR target/64345
9105 * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.
9106
9107 2016-02-12 Walter Lee <walt@tilera.com>
9108
9109 * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
9110 * config/tilegx/t-tilegx: Likewise.
9111
9112 2016-02-12 David Malcolm <dmalcolm@redhat.com>
9113
9114 PR other/69554
9115 * diagnostic-show-locus.c (struct line_span): New struct.
9116 (layout::get_first_line): Delete.
9117 (layout::get_last_line): Delete.
9118 (layout::get_num_line_spans): New member function.
9119 (layout::get_line_span): Likewise.
9120 (layout::print_heading_for_line_span_index_p): Likewise.
9121 (layout::get_expanded_location): Likewise.
9122 (layout::calculate_line_spans): Likewise.
9123 (layout::m_first_line): Delete.
9124 (layout::m_last_line): Delete.
9125 (layout::m_line_spans): New field.
9126 (layout::layout): Update comment. Replace m_first_line and
9127 m_last_line with m_line_spans, replacing their initialization
9128 with a call to calculate_line_spans.
9129 (diagnostic_show_locus): When printing source lines and
9130 annotations, rather than looping over a single span
9131 of lines, instead loop over each line_span within
9132 the layout, with an inner loop over the lines within them.
9133 Call the context's start_span callback when changing line spans.
9134 * diagnostic.c (diagnostic_initialize): Initialize start_span.
9135 (diagnostic_build_prefix): Break out the building of the location
9136 part of the string into...
9137 (diagnostic_get_location_text): ...this new function, rewriting
9138 it from nested ternary expressions to a sequence of "if"
9139 statements.
9140 (default_diagnostic_start_span_fn): New function.
9141 * diagnostic.h (diagnostic_start_span_fn): New typedef.
9142 (diagnostic_context::start_span): New field.
9143 (default_diagnostic_start_span_fn): New prototype.
9144
9145 2016-02-12 David Malcolm <dmalcolm@redhat.com>
9146
9147 PR driver/69779
9148 * gcc.c (driver::finalize): Fix cleanup of "specs".
9149
9150 2016-02-12 David Malcolm <dmalcolm@redhat.com>
9151
9152 PR driver/69265
9153 PR driver/69453
9154 * gcc.c (driver::driver): Initialize m_option_suggestions.
9155 (driver::~driver): Clean up m_option_suggestions.
9156 (suggest_option): Convert to...
9157 (driver::suggest_option): ...this, and split out into
9158 driver::build_option_suggestions and find_closest_string.
9159 (driver::build_option_suggestions): New function, from
9160 first half of suggest_option. Special-case
9161 OPT_fsanitize_ and OPT_fsanitize_recover_, making use of
9162 the sanitizer_opts array. For options of enum types, add the
9163 various enum values to the candidate strings.
9164 (driver::handle_unrecognized_options): Remove "const".
9165 * gcc.h (driver::handle_unrecognized_options): Likewise.
9166 (driver::build_option_suggestions): New decl.
9167 (driver::suggest_option): New decl.
9168 (driver::m_option_suggestions): New field.
9169 * opts-common.c (add_misspelling_candidates): New function.
9170 * opts.c (sanitizer_opts): Remove decl of struct sanitizer_opts_s
9171 and make non-static.
9172 * opts.h (sanitizer_opts): New array decl.
9173 (add_misspelling_candidates): New function decl.
9174 * spellcheck.c (find_closest_string): New function.
9175 * spellcheck.h (find_closest_string): New function decl.
9176
9177 2016-02-12 Jakub Jelinek <jakub@redhat.com>
9178
9179 PR rtl-optimization/69764
9180 PR rtl-optimization/69771
9181 * optabs.c (expand_binop_directly): For shift_optab_p, force
9182 convert_modes with VOIDmode if xop1 has VOIDmode.
9183
9184 2016-02-12 Ilya Enkovich <enkovich.gnu@gmail.com>
9185
9186 PR target/69729
9187 * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
9188 to correctly determine instrumentation thunks.
9189
9190 2016-02-12 Jakub Jelinek <jakub@redhat.com>
9191
9192 PR ipa/69241
9193 * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
9194 type by reference, force lhs on the call.
9195
9196 PR ipa/68672
9197 * ipa-split.c (split_function): Don't compute/use main_part_return_p.
9198 Compute retval and retbnd early in all cases if split_part_return_p
9199 and return_bb is not EXIT. Remove all clobber stmts and reset
9200 all debug stmts that refer to SSA_NAMEs defined in split part,
9201 except if it is retval, in that case replace the old retval with the
9202 lhs of the call to the split part.
9203
9204 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
9205
9206 revert:
9207 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
9208
9209 PR middle-end/66726
9210 * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
9211 whose result is used in PHI.
9212 (maybe_optimize_range_tests): Likewise.
9213 (final_range_test_p): Likweise.
9214
9215 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
9216
9217 PR middle-end/66726
9218 * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
9219 whose result is used in PHI.
9220 (maybe_optimize_range_tests): Likewise.
9221 (final_range_test_p): Likweise.
9222
9223 2016-02-12 Jakub Jelinek <jakub@redhat.com>
9224
9225 * cgraph.c: Spelling fixes - behaviour -> behavior and
9226 neighbour -> neighbor.
9227 * target.def: Likewise.
9228 * sel-sched.c: Likewise.
9229 * config/mips/mips.c: Likewise.
9230 * config/arc/arc.md: Likewise.
9231 * config/arm/cortex-a57.md: Likewise.
9232 * config/arm/arm.c: Likewise.
9233 * config/arm/neon.md: Likewise.
9234 * config/arm/arm-c.c: Likewise.
9235 * config/vms/vms-c.c: Likewise.
9236 * config/s390/s390.c: Likewise.
9237 * config/i386/znver1.md: Likewise.
9238 * config/i386/i386.c: Likewise.
9239 * config/ia64/hpux-unix2003.h: Likewise.
9240 * config/msp430/msp430.md: Likewise.
9241 * config/rx/rx.c: Likewise.
9242 * config/rx/rx.md: Likewise.
9243 * config/aarch64/aarch64-simd.md: Likewise.
9244 * config/aarch64/aarch64.c: Likewise.
9245 * config/nvptx/nvptx.c: Likewise.
9246 * config/bfin/bfin.c: Likewise.
9247 * config/cris/cris.opt: Likewise.
9248 * config/rs6000/rs6000.c: Likewise.
9249 * target.h: Likewise.
9250 * spellcheck.c: Likewise.
9251 * ira-build.c: Likewise.
9252 * tree-inline.c: Likewise.
9253 * builtins.c: Likewise.
9254 * lra-constraints.c: Likewise.
9255 * explow.c: Likewise.
9256 * hwint.h: Likewise.
9257 * targhooks.c: Likewise.
9258 * tree-vect-data-refs.c: Likewise.
9259 * expr.c: Likewise.
9260 * doc/tm.texi: Likewise.
9261 * doc/extend.texi: Likewise.
9262 * doc/install.texi: Likewise.
9263 * doc/md.texi: Likewise.
9264 * tree-ssa-tail-merge.c: Likewise.
9265 * sched-int.h: Likewise.
9266 * match.pd: Likewise.
9267 * sched-ebb.c: Likewise.
9268 * target.def (omit_struct_return_reg): Likewise.
9269 * gimple-ssa-isolate-paths.c: Likewise.
9270 (find_implicit_erroneous_behaviour): Renamed to...
9271 (find_implicit_erroneous_behavior): ... this.
9272 (find_explicit_erroneous_behaviour): Renamed to...
9273 (find_explicit_erroneous_behavior): ... this.
9274 (gimple_ssa_isolate_erroneous_paths): Adjust caller.
9275
9276 2016-02-11 Segher Boessenkool <segher@kernel.crashing.org>
9277
9278 PR rtl-optimization/64682
9279 PR rtl-optimization/69567
9280 PR rtl-optimization/69737
9281 * combine.c (distribute_notes) <REG_DEAD>: If the register is set
9282 in I2 as well, just lose it.
9283
9284 2016-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9285
9286 * config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
9287 New variable.
9288 (aarch64_last_printed_tune_string): Likewise.
9289 (aarch64_declare_function_name): Only output .arch assembler
9290 directive if it will be different from the previously output
9291 directive. Same for .tune comment but only if -dA is set.
9292 (aarch64_start_file): New function.
9293 (TARGET_ASM_FILE_START): Define.
9294
9295 2016-02-11 David Malcolm <dmalcolm@redhat.com>
9296
9297 PR plugins/69758
9298 * Makefile.in (PLUGIN_HEADERS): Add params.list.
9299
9300 2016-02-11 Jakub Jelinek <jakub@redhat.com>
9301
9302 PR target/65313
9303 * tree-vect-slp.c (vect_schedule_slp_instance): Avoid
9304 -Wmaybe-uninitialized warning.
9305
9306 2016-02-11 Oleg Endo <olegendo@gcc.gnu.org>
9307
9308 PR target/69713
9309 * config/sh/sh.md (casesi_worker_0): Add T_REG use.
9310
9311 2016-02-11 Richard Biener <rguenther@suse.de>
9312
9313 PR rtl-optimization/69291
9314 * ifcvt.c (noce_try_store_flag_constants): Do not allow
9315 subexpressions affected by changing the result.
9316
9317 2016-02-10 Vladimir Makarov <vmakarov@redhat.com>
9318
9319 PR target/69148
9320 * lra-constraints.c (curr_insn_transform): Find in/out operands
9321 for secondary memory moves. Update dups.
9322
9323 2016-02-10 Yuri Rumyantsev <ysrumyan@gmail.com>
9324
9325 PR tree-optimization/69652
9326 * tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1
9327 to nested loop, did source re-formatting, skip debug statements,
9328 add check on statement with volatile operand, remove dead scalar
9329 statements.
9330
9331 2016-02-10 Jakub Jelinek <jakub@redhat.com>
9332 Patrick Palka <ppalka@gcc.gnu.org>
9333
9334 PR ipa/69241
9335 PR c++/69649
9336 * gimplify.c (gimplify_modify_expr): Set lhs even for noreturn
9337 calls if the return type is TREE_ADDRESSABLE.
9338 * cgraphunit.c (cgraph_node::expand_thunk): Likewise.
9339 * ipa-split.c (split_function): Fix doubled "we" in comment.
9340 Use void return type for the split part even if
9341 !split_point->split_part_set_retval.
9342
9343 2016-02-10 Bin Cheng <bin.cheng@arm.com>
9344
9345 PR tree-optimization/68021
9346 * tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if
9347 when computing the value of biv cand by itself.
9348
9349 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
9350
9351 * config/aarch64/aarch64.c (cortexa53_tunings): Enable AES fusion.
9352 (cortexa57_tunings): Likewise.
9353 (cortexa72_tunings): Likewise.
9354 (arch_macro_fusion_pair_p): Add support for AES fusion.
9355 * config/aarch64/aarch64-fusion-pairs.def: Add AES_AESMC entry.
9356 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
9357 Allow virtual registers before reload so early scheduling works.
9358 * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Use
9359 correct latency and pipeline.
9360 (cortex_a57_crypto_complex): Likewise.
9361 (cortex_a57_crypto_xor): Likewise.
9362 (define_bypass): Add AES bypass.
9363
9364 2016-02-10 Richard Biener <rguenther@suse.de>
9365
9366 PR tree-optimization/69726
9367 * passes.def: Add DCE pass before late uninit.
9368 * match.pd: Add A ? B : (!A ? C : X) -> A ? B : C patterns to
9369 really fixup if-conversions job.
9370
9371 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
9372
9373 * config/arm/arm.c (arm_cortex_a53_tune): Enable AES fusion.
9374 (arm_cortex_a57_tune): Likewise.
9375 (aarch_macro_fusion_pair_p): Add support for AES fusion.
9376 * config/arm/arm-protos.h (fuse_ops): Add FUSE_AES_AESMC.
9377
9378 2016-02-10 Eric Botcazou <ebotcazou@adacore.com>
9379
9380 * timevar.def (TV_PHASE_DBGINFO): Delete.
9381 (TV_PHASE_CHECK_DBGINFO): Likewise.
9382 * varpool.c (varpool_node::assemble_decl): Do not change timevar.
9383
9384 2016-02-10 Richard Biener <rguenther@suse.de>
9385
9386 PR tree-optimization/69719
9387 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
9388 Adjust previous fix by ensuring that dr_a1 is left of dr_a2.
9389
9390 2016-02-09 Andrew Pinski <apinski@cavium.com>
9391
9392 PR tree-opt/69282
9393 * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
9394 get_vcond_mask_icode returns false.
9395
9396 2016-02-09 Michael Meissner <meissner@linux.vnet.ibm.com>
9397
9398 PR target/68404
9399 * config/rs6000/predicates.md (fusion_gpr_addis): Prevent fusing
9400 an ADDIS that adds a pointer to a large constant that sets the
9401 upper16 bits with a load operation.
9402
9403 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
9404
9405 PR target/68532
9406 * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
9407 order.
9408 * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
9409 endian.
9410 (vzipq_s16): Likewise.
9411 (vzipq_s32): Likewise.
9412 (vzipq_f32): Likewise.
9413 (vzipq_u8): Likewise.
9414 (vzipq_u16): Likewise.
9415 (vzipq_u32): Likewise.
9416 (vzipq_p8): Likewise.
9417 (vzipq_p16): Likewise.
9418
9419 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
9420
9421 PR target/68532
9422 * config/arm/arm.c (neon_endian_lane_map): New function.
9423 (neon_vector_pair_endian_lane_map): New function.
9424 (arm_evpc_neon_vuzp): Allow for big endian lane order.
9425 * config/arm/arm_neon.h (vuzpq_s8): Adjust shuffle patterns for big
9426 endian.
9427 (vuzpq_s16): Likewise.
9428 (vuzpq_s32): Likewise.
9429 (vuzpq_f32): Likewise.
9430 (vuzpq_u8): Likewise.
9431 (vuzpq_u16): Likewise.
9432 (vuzpq_u32): Likewise.
9433 (vuzpq_p8): Likewise.
9434 (vuzpq_p16): Likewise.
9435
9436 2016-02-11 Alexandre Oliva <aoliva@redhat.com>
9437
9438 PR target/69634
9439 * regstat.c (regstat_bb_compute_calls_crossed): Disregard
9440 debug insns.
9441
9442 2016-02-09 Uros Bizjak <ubizjak@gmail.com>
9443
9444 * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
9445 truncate const_int operand 1 to QImode.
9446
9447 2016-02-09 Eric Botcazou <ebotcazou@adacore.com>
9448
9449 * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
9450 corresponding to an abnormal edge.
9451
9452 2016-02-09 Tom de Vries <tom@codesourcery.com>
9453
9454 PR tree-optimization/69599
9455 * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
9456 function.
9457 (find_func_aliases_for_builtin_call, find_func_clobbers)
9458 (ipa_pta_execute): Handle case that foo and foo._0 are not in same lto
9459 partition.
9460
9461 2016-02-09 Richard Biener <rguenther@suse.de>
9462
9463 PR tree-optimization/69715
9464 * tree-ssa.c (execute_update_addresses_taken): Mark non-decl
9465 LHS on calls as non-rewritable.
9466
9467 2016-02-09 Tom de Vries <tom@codesourcery.com>
9468
9469 PR lto/69707
9470 * lto-wrapper.c (append_diag_options): New function.
9471 (compile_offload_image): Call append_diag_options.
9472
9473 2016-02-08 Sandra Loosemore <sandra@codesourcery.com>
9474
9475 PR other/69722
9476 * doc/extend.texi (Flag Output Operands): Correct sectioning.
9477 Minor copy-edit to fix verb tenses.
9478
9479 2016-02-08 Jakub Jelinek <jakub@redhat.com>
9480
9481 PR tree-optimization/69209
9482 * ipa-split.c (split_function): If split part is not
9483 returning retval, retval has gimple type but is not
9484 gimple value, force it into a SSA_NAME first.
9485
9486 2016-02-08 Nicklas Bo Jensen <nbjensen@gmail.com>
9487
9488 * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
9489 outdated section.
9490
9491 2016-02-08 Jason Merrill <jason@redhat.com>
9492
9493 PR c++/69631
9494 * convert.c (convert_to_integer_1): Check dofold on truncation
9495 distribution.
9496 (convert_to_pointer_maybe_fold, convert_to_real_maybe_fold)
9497 (convert_to_integer_maybe_fold, convert_to_complex_maybe_fold):
9498 Rename from *_nofold.
9499 * convert.h (convert_to_pointer_nofold, convert_to_integer_nofold)
9500 (convert_to_real_nofold, convert_to_complex_nofold): New inlines.
9501
9502 2016-02-08 Bernd Schmidt <bschmidt@redhat.com>
9503
9504 PR target/60410
9505 * tree.c (build_common_tree_nodes): Remove short_double argument.
9506 All callers changed.
9507 * tree.h (build_common_tree_nodes): Adjust declaration.
9508 * doc/invoke.texi (-fshort-double): Remove documentation.
9509 * config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
9510 MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
9511 * lto-wrapper.c (merge_and_complain, append_compiler_options)
9512 (append_linker_options): Don't handle OPT_fshort_double.
9513
9514 PR rtl-optimization/68730
9515 * lra-remat.c (insn_to_cand_activation): New static variable.
9516 (lra_remat): Allocate and free it.
9517 (create_cand): New arg activation. Initialize a field in
9518 insn_to_cand_activation if it is nonnull.
9519 (create_cands): Pass the activation insn to create_cand when making
9520 a candidate involving an output reload. Reorganize code a little.
9521 (do_remat): Keep track of active status of candidates in a separate
9522 bitmap.
9523
9524 2016-02-08 Richard Biener <rguenther@suse.de>
9525
9526 PR tree-optimization/69719
9527 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
9528 Properly use absolute of the difference of the two offsets to
9529 compare or adjust the segment length.
9530
9531 2016-02-08 Richard Biener <rguenther@suse.de>
9532 Jeff Law <law@redhat.com>
9533
9534 PR target/68273
9535 * tree-ssanames.c (make_ssa_name_fn): Always use unqualified
9536 types for anonymous SSA names.
9537
9538 2016-02-08 Richard Biener <rguenther@suse.de>
9539
9540 PR rtl-optimization/69274
9541 * ira.c (ira_setup_alts): Do not change recog_data.operand order.
9542
9543 2016-02-08 Jeff Law <law@redhat.com>
9544
9545 PR tree-optimization/65917
9546 * tree-ssa-dom.c (record_temporary_equivalences): Record both
9547 equivalences from if (x == y) style conditionals.
9548 (loop_depth_of_name): Remove.
9549 (record_equality): Remove loop depth check.
9550 * tree-ssa-scopedtables.h (const_and_copies): Refine comments.
9551 (const_and_copies::record_const_or_copy_raw): New member function.
9552 * tree-ssa-scopedtables.c
9553 (const_and_copies::record_const_or_copy_raw): New, factored out of
9554 (const_and_copies::record_const_or_copy): Call new member function.
9555
9556 2016-02-05 Jeff Law <law@redhat.com>
9557
9558 PR tree-optimization/68541
9559 * gimple-ssa-split-paths.c: Include tree-cfg.h and params.h.
9560 (count_stmts_in_block): New function.
9561 (poor_ifcvt_candidate_code): Likewise.
9562 (is_feasible_trace): Add some heuristics to determine when path
9563 splitting is profitable.
9564 (find_block_to_duplicate_for_splitting_paths): Make sure the graph
9565 is a diamond with a single exit.
9566
9567 2016-02-05 Martin Sebor <msebor@redhat.com>
9568
9569 PR c++/69662
9570 * doc/invoke.texi: Update -Wplacement-new to take an optional
9571 argument.
9572
9573 2016-02-06 Richard Henderson <rth@redhat.com>
9574
9575 PR c/69643
9576 * tree.c (tree_nop_conversion_p): Do not strip casts into or
9577 out of non-standard address spaces.
9578
9579 2016-02-05 Jakub Jelinek <jakub@redhat.com>
9580
9581 PR rtl-optimization/69691
9582 * lra-eliminations.c (move_plus_up): Don't add the addend twice.
9583
9584 2016-02-05 Pat Haugen <pthaugen@us.ibm.com>
9585
9586 * config/rs6000/crypto.md (crypto_vpermxor_<mode>): Correct insn type.
9587 * config/rs6000/rs6000.md (mov<mode>_hardfloat): Likewise.
9588 (*ieee128_mfvsrd_64bit): Likewise.
9589 (*ieee128_mfvsrd_32bit): Likewise.
9590
9591 2016-02-05 Ilya Enkovich <enkovich.gnu@gmail.com>
9592
9593 PR target/69369
9594 Revert r232560:
9595 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
9596
9597 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
9598 instrumented_version.
9599
9600 2016-01-05 Jeremy Bennett <jeremy.bennett@embecosm.com>
9601
9602 * doc/invoke.texi (Optimize Options): In table of --param options
9603 rename second occurrence of tracer-min-branch-ratio to
9604 tracer-min-branch-probability, rename
9605 tracer-min-branch-ratio-feedback to
9606 tracer-min-branch-probability-feedback and clarify description,
9607 rename sched-spec-state-edge-prob-cutoff to
9608 sched-state-edge-prob-cutoff, rename selsched-max-insns-to-rename
9609 to selsched-insns-to-rename, rename lto-minpartition to
9610 lto-min-partition, delete reorder-blocks-duplicate and
9611 reorder-blocks-duplicate-feedback.
9612
9613 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9614
9615 * config/s390/s390.c (s390_register_info_set_ranges): Remove
9616 superfluous loops.
9617
9618 2016-02-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
9619
9620 * doc/extend.texi: S/390: Correct some typos.
9621
9622 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9623
9624 * config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
9625
9626 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9627
9628 PR target/69625
9629 * config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines.
9630 (s390_register_info_gprtofpr): Use new macros above.
9631 (s390_register_info_stdarg_fpr): Adjust max_fpr to better match
9632 its name.
9633 (s390_register_info_stdarg_gpr): Adjust max_gpr to better match
9634 its name. Adjust restore and save gpr ranges.
9635 (s390_register_info_set_ranges): New function.
9636 (s390_register_info): Use new macros above. Call
9637 s390_register_info_set_ranges.
9638 (s390_optimize_register_info): Likewise.
9639 (s390_hard_regno_rename_ok): Use new macros.
9640 (s390_hard_regno_scratch_ok): Likewise.
9641 (s390_emit_epilogue): Likewise.
9642 (s390_can_use_return_insn): Likewise.
9643 (s390_optimize_prologue): Likewise.
9644 * config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants.
9645
9646 2016-02-05 Jakub Jelinek <jakub@redhat.com>
9647
9648 PR bootstrap/69677
9649 * config/i386/i386.c (convert_scalars_to_vector): Readd stack
9650 alignment fixes.
9651 (ix86_option_override_internal): Disable TARGET_STV even for
9652 -m{incoming,preferred}-stack-boundary=3.
9653
9654 2016-02-03 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9655
9656 * config.gcc: Mark deprecated rtems targets as obsolete.
9657
9658 2016-02-04 Segher Boessenkool <segher@kernel.crashing.org>
9659
9660 PR rtl-optimization/64682
9661 PR rtl-optimization/69567
9662 * combine.c (distribute_notes) <REG_DEAD>: Place the death note
9663 before I2 only if the register is both used and set in I2.
9664
9665 2016-02-04 DJ Delorie <dj@redhat.com>
9666
9667 * config/msp430/msp430.c (msp430_start_function): Add function type.
9668
9669 2016-02-04 Jakub Jelinek <jakub@redhat.com>
9670
9671 PR fortran/69368
9672 * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
9673
9674 2016-02-04 Uros Bizjak <ubizjak@gmail.com>
9675
9676 PR rtl-optimization/69577
9677 Revert:
9678 2015-10-29 Richard Henderson <rth@redhat.com>
9679
9680 PR target/68124
9681 PR rtl-opt/67609
9682 * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
9683 sse check to the exact conditions of PR 67609.
9684
9685 2016-02-04 Michael Meissner <meissner@linux.vnet.ibm.com>
9686
9687 PR target/69667
9688 * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Use 'd' constraint
9689 instead of 'ws', and 'wh' instead of 'wm' since TFmode/IFmode are
9690 not allowed into the traditional Altivec registers.
9691 (movtd_64bit_nodm): Likewise.
9692 (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
9693
9694 2016-02-04 David Malcolm <dmalcolm@redhat.com>
9695
9696 * config/aarch64/cortex-a57-fma-steering.c
9697 (aarch64_register_fma_steering): Remove "static" from arguments
9698 to register_pass.
9699
9700 2016-02-04 Wilco Dijkstra <wdijkstr@arm.com>
9701
9702 PR target/69619
9703 * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
9704 twice when complex.
9705
9706 2016-02-04 Mike Frysinger <vapier@gentoo.org>
9707
9708 * doc/invoke.texi: Delete -mno-fma4.
9709
9710 2016-02-04 Richard Sandiford <richard.sandiford@arm.com>
9711
9712 PR rtl-optimization/69577
9713 * reginfo.c (record_subregs_of_mode): Add a partial_def parameter.
9714 (find_subregs_of_mode): Update accordingly. Iterate over partial
9715 definitions.
9716
9717 2016-02-04 Alan Lawrence <alan.lawrence@arm.com>
9718
9719 * config/arm/arm-protos.h (neon_reinterpret): Remove.
9720 * config/arm/arm.c (neon_reinterpret): Remove.
9721 * config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi,
9722 vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi,
9723 vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di,
9724 vreinterpretti): Remove.
9725 * config/arm/neon.md (neon_vreinterpretv8qi<mode>,
9726 neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
9727 neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>,
9728 neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>,
9729 neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>,
9730 neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove.
9731 * config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32,
9732 vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64,
9733 vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32,
9734 vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32,
9735 vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64,
9736 vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8,
9737 vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8,
9738 vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8,
9739 vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64,
9740 vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16,
9741 vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16,
9742 vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16,
9743 vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64,
9744 vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32,
9745 vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32,
9746 vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32,
9747 vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8,
9748 vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8,
9749 vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8,
9750 vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64,
9751 vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16,
9752 vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16,
9753 vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16,
9754 vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64,
9755 vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32,
9756 vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32,
9757 vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32,
9758 vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64,
9759 vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8,
9760 vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8,
9761 vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64,
9762 vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8,
9763 vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16,
9764 vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16,
9765 vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64,
9766 vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16,
9767 vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32,
9768 vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32,
9769 vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64,
9770 vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32,
9771 vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8,
9772 vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64,
9773 vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8,
9774 vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8,
9775 vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32,
9776 vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64,
9777 vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16,
9778 vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16,
9779 vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32,
9780 vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64,
9781 vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16,
9782 vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16,
9783 vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16,
9784 vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64,
9785 vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16,
9786 vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16,
9787 vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16,
9788 vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64,
9789 vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16,
9790 vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16,
9791 vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16,
9792 vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64,
9793 vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16,
9794 vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16,
9795 vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16,
9796 vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128,
9797 vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16,
9798 vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16,
9799 vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16,
9800 vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128,
9801 vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16,
9802 vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16,
9803 vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16,
9804 vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128,
9805 vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16,
9806 vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16,
9807 vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16,
9808 vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128,
9809 vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8,
9810 vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16,
9811 vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16,
9812 vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64,
9813 vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64,
9814 vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8,
9815 vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8,
9816 vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64,
9817 vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64,
9818 vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32,
9819 vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8,
9820 vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64,
9821 vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64,
9822 vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32,
9823 vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8,
9824 vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64,
9825 vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64,
9826 vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32,
9827 vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts.
9828
9829 2016-02-04 Martin Liska <mliska@suse.cz>
9830
9831 PR sanitizer/69276
9832 * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
9833 that are gimple_store_p.
9834 (maybe_instrument_call): Likewise.
9835
9836 2016-02-04 Bin Cheng <bin.cheng@arm.com>
9837
9838 * config/aarch64/aarch64.c (aarch64_legitimize_address): Force
9839 register scaling out of memory reference and comment why.
9840
9841 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9842
9843 PR target/65932
9844 PR target/67714
9845 * cse.c (cse_insn): Pass NULL to fold_rtx when initially
9846 folding the source of a SET.
9847
9848 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9849
9850 PR target/65932
9851 PR target/67714
9852 * config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
9853 the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.
9854
9855 2016-02-04 Jim Wilson <jim.wilson@linaro.org>
9856
9857 PR target/65932
9858 PR target/67714
9859 * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
9860 HImode.
9861
9862 2016-02-04 Christian Bruel <christian.bruel@st.com>
9863
9864 * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
9865 * config/arm/arm.c (arm_set_current_function): Likewise.
9866
9867 2016-02-04 Jakub Jelinek <jakub@redhat.com>
9868 Ilya Enkovich <enkovich.gnu@gmail.com>
9869 H.J. Lu <hongjiu.lu@intel.com>
9870
9871 PR target/69454
9872 * config/i386/i386.c (convert_scalars_to_vector): Remove
9873 stack alignment fixes.
9874 (ix86_option_override_internal): Disable TARGET_STV if stack
9875 might not be aligned enough.
9876 (ix86_minimum_alignment): Assert that TARGET_STV is false.
9877
9878 2016-02-04 Victoria Stepanyan <victoria.stepanyan@amd.com>
9879
9880 * config/i386/x86-tune.def: Disable default prefetching
9881 for -march=znver1.
9882
9883 2016-02-03 Michael Meissner <meissner@linux.vnet.ibm.com>
9884 Vladimir Makarov <vmakarov@redhat.com>
9885
9886 PR target/69461
9887 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
9888 in validating fused toc addresses.
9889
9890 2016-02-03 Jakub Jelinek <jakub@redhat.com>
9891
9892 PR c/69627
9893 * diagnostic-show-locus.c (layout::get_state_at_point): Don't read
9894 range->m_caret fields if range->m_show_caret_p is false.
9895
9896 PR target/69644
9897 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
9898 Force oldval into register if it does not satisfy reg_or_short_operand
9899 predicate. Fix up formatting.
9900
9901 2016-02-03 Vladimir Makarov <vmakarov@redhat.com>
9902 Alexandre Oliva <aoliva@redhat.com>
9903
9904 PR target/69461
9905 * lra-constraints.c (simplify_operand_subreg): Check additionally
9906 address validity after potential reloading.
9907 (process_address_1): Check insns validity. In case of failure do
9908 nothing.
9909
9910 2016-02-03 Kirill Yukhin <kirill.yukhin@intel.com>
9911
9912 PR target/69118
9913 * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
9914 Fix target.
9915
9916 2016-02-02 Jakub Jelinek <jakub@redhat.com>
9917
9918 * wide-int.cc (canonize_uhwi): New function.
9919 (wi::divmod_internal): Use it.
9920
9921 2016-02-02 James Norris <jnorris@codesourcery.com
9922
9923 * gimplify.c (omp_notice_variable): Add usage check.
9924
9925 2016-02-02 Alexander Monakov <amonakov@ispras.ru>
9926
9927 * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
9928 like LE, GE, LT, GT when emitting relational operator.
9929
9930 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
9931
9932 * ira-costs.c (find_costs_and_classes): Add extra argument.
9933 * target.def (ira_change_pseudo_allocno_class): Add parameter.
9934 * targhooks.h (ira_change_pseudo_allocno_class): Likewise.
9935 * targhooks.c (ira_change_pseudo_allocno_class): Likewise.
9936 * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
9937 Add best_class parameter, and return it if not ALL_REGS.
9938 * config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
9939 Add parameter.
9940 * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
9941 Update target hook.
9942
9943 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
9944
9945 * config/aarch64/aarch64.c
9946 (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
9947 (aarch64_ira_change_pseudo_allocno_class): New function.
9948
9949 2016-02-02 Uros Bizjak <ubizjak@gmail.com>
9950
9951 PR target/67032
9952 * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
9953
9954 2016-02-02 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
9955
9956 * config/avr/avr.c (avr_option_override): Set
9957 PARAM_ALLOW_STORE_DATA_RACES to 1.
9958
9959 2016-02-02 Richard Biener <rguenther@suse.de>
9960
9961 PR tree-optimization/69595
9962 * match.pd: Add range test simplifications to true/false.
9963
9964 2016-02-02 Thomas Schwinge <thomas@codesourcery.com>
9965
9966 * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
9967 * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
9968 instead.
9969
9970 2016-02-02 Richard Biener <rguenther@suse.de>
9971
9972 PR tree-optimization/69606
9973 * tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
9974 info on the result before moving a stmt.
9975
9976 2016-02-02 Yuri Rumyantsev <ysrumyan@gmail.com>
9977
9978 PR middle-end/68542
9979 * config/i386/i386.c (ix86_expand_branch): Add support for conditional
9980 branch with vector comparison.
9981 * config/i386/sse.md (VI48_AVX): New mode iterator.
9982 (define_expand "cbranch<mode>4): Add support for conditional branch
9983 with vector comparison.
9984 * tree-vect-loop.c (optimize_mask_stores): New function.
9985 * tree-vect-stmts.c (vectorizable_mask_load_store): Initialize
9986 has_mask_store field of vect_info.
9987 * tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for
9988 vectorized loops having masked stores after vec_info destroy.
9989 * tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and
9990 correspondent macros.
9991 (optimize_mask_stores): Add prototype.
9992
9993 2016-02-02 Alan Modra <amodra@gmail.com>
9994
9995 PR target/69548
9996 * config/rs6000/predicates.md (quad_int_reg_operand): Don't
9997 allow subregs.
9998
9999 2016-02-02 Alan Modra <amodra@gmail.com>
10000
10001 PR target/68662
10002 * config/rs6000/rs6000.c (need_toc_init): New var, set it
10003 whenever toc_label_name used.
10004 (rs6000_file_start): Don't set up toc section here,
10005 (rs6000_output_function_epilogue): do so here instead,
10006 (rs6000_xcoff_file_start): and here.
10007 * config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init.
10008 (load_toc_aix_di): Likewise.
10009
10010 2016-02-01 Jakub Jelinek <jakub@redhat.com>
10011
10012 PR rtl-optimization/69592
10013 * rtlanal.c (nonzero_bits_binary_arith_p): New inline function.
10014 (cached_nonzero_bits): Use it instead of ARITHMETIC_P.
10015 (num_sign_bit_copies_binary_arith_p): New inline function.
10016 (cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P.
10017
10018 2016-02-01 Jeff Law <law@redhat.com>
10019
10020 PR tree-optimization/69580
10021 * params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param.
10022 * tree-ssa-threadbackward.c
10023 (fsm_find_control_statement_thread_paths): Do not try to walk
10024 through large PHI nodes.
10025
10026 2016-02-01 Jakub Jelinek <jakub@redhat.com>
10027
10028 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
10029 when count is incremented above limit, don't analyze further
10030 insns afterwards.
10031
10032 * omp-low.c (oacc_parse_default_dims): Avoid
10033 -Wsign-compare warning, make sure value fits into int
10034 rather than just unsigned int.
10035
10036 2016-02-01 Bin Cheng <bin.cheng@arm.com>
10037
10038 PR tree-optimization/67921
10039 * fold-const.c (split_tree): New parameters. Convert pointer
10040 type variable part to proper type before negating.
10041 (fold_binary_loc): Pass new arguments to split_tree.
10042
10043 2016-02-01 Nathan Sidwell <nathan@codesourcery.com>
10044
10045 * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New.
10046 (nvptx_goacc_validate_dims): Extend to handle global defaults.
10047 * target.def (OACC_VALIDATE_DIMS): Extend documentation.
10048 * doc/tm.texti: Rebuilt.
10049 * doc/invoke.texi (fopenacc-dim): Document.
10050 * lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case.
10051 (append_compiler_options): Likewise.
10052 * omp-low.c (oacc_default_dims, oacc_min_dims): New.
10053 (oacc_parse_default_dims): New.
10054 (oacc_validate_dims): Add USED arg. Select non-unity default when
10055 possible.
10056 (oacc_loop_fixed_partitions): Return mask of used partitions.
10057 (oacc_loop_auto_partitions): Emit dump info.
10058 (oacc_loop_partition): Return mask of used partitions.
10059 (execute_oacc_device_lower): Parse default dimension arg. Adjust
10060 loop partitioning and validation calls.
10061
10062 2016-02-01 Richard Biener <rguenther@suse.de>
10063
10064 PR middle-end/69556
10065 * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
10066
10067 2016-02-01 Richard Biener <rguenther@suse.de>
10068
10069 PR tree-optimization/69574
10070 * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
10071 of asserting return chrec_dont_know.
10072
10073 2016-02-01 Martin Liska <mliska@suse.cz>
10074
10075 * mem-stats-traits.h: Add copyright header.
10076 * mem-stats.h: Likewise.
10077
10078 2016-02-01 Richard Biener <rguenther@suse.de>
10079
10080 PR tree-optimization/69579
10081 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
10082 Do not propagate through abnormal PHI results.
10083
10084 2016-02-01 Eric Botcazou <ebotcazou@adacore.com>
10085
10086 * postreload.c (reload_cse_simplify): Remove dead code.
10087
10088 2016-02-01 Jakub Jelinek <jakub@redhat.com>
10089
10090 PR rtl-optimization/69570
10091 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only
10092 if there is more than one set, not if there is a single set.
10093
10094 2016-02-01 Richard Henderson <rth@redhat.com>
10095
10096 PR rtl-opt/69535
10097 * combine.c (make_compound_operation): When looking through a
10098 subreg, make sure to re-extend to the width of the outer mode.
10099
10100 2016-01-30 Jakub Jelinek <jakub@redhat.com>
10101
10102 PR tree-optimization/69546
10103 * wide-int.cc (wi::divmod_internal): For unsigned division
10104 where both operands fit into uhwi, if o1 is 1 and o0 has
10105 msb set, if divident_prec is larger than bits per hwi,
10106 clear another quotient word and return 2 instead of 1.
10107 Similarly for remainder with msb in HWI set, if dividend_prec
10108 is larger than bits per hwi.
10109
10110 2016-01-29 Martin Jambor <mjambor@suse.cz>
10111
10112 * hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK.
10113 Use short lowercase names.
10114 (get_memory_order): Mask with MEMMODEL_BASE_MASK. Support
10115 MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with
10116 acq_rel one. Protect warning agains segfaults if
10117 get_memory_order_name returns NULL.
10118 (gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST
10119 with release semantics. Do not warn if get_memory_order already did.
10120 (gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire
10121 semantics. Fix check for relaxed or acquire semantics. Do not warn
10122 if get_memory_order already did.
10123
10124 2016-01-29 Sebastian Pop <s.pop@samsung.com>
10125
10126 * doc/install.texi: Document that isl-0.16 is supported.
10127
10128 2016-01-29 Vladimir Makarov <vmakarov@redhat.com>
10129
10130 PR target/69299
10131 * config/i386/constraints.md (Bm): Describe as special memory
10132 constraint.
10133 * doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it.
10134 * genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
10135 * genpreds.c (struct constraint_data): Add is_special_memory.
10136 (have_special_memory_constraints, special_memory_start): New
10137 static vars.
10138 (special_memory_end): Ditto.
10139 (add_constraint): Add new arg is_special_memory. Add code to
10140 process its true value. Update have_special_memory_constraints.
10141 (process_define_constraint): Pass the new arg.
10142 (process_define_register_constraint): Ditto.
10143 (choose_enum_order): Process special memory.
10144 (write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and
10145 function insn_extra_special_memory_constraint.
10146 (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
10147 * gensupport.c (process_rtx): Process
10148 DEFINE_SPECIAL_MEMORY_CONSTRAINT.
10149 * ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY.
10150 * ira-lives.c (single_reg_class): Use
10151 insn_extra_special_memory_constraint.
10152 * ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY.
10153 * lra-constraints.c (process_alt_operands): Ditto.
10154 (curr_insn_transform): Use insn_extra_special_memory_constraint.
10155 * recog.c (asm_operand_ok, preprocess_constraints): Process
10156 CT_SPECIAL_MEMORY.
10157 * reload.c (find_reloads): Ditto.
10158 * rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New.
10159 * stmt.c (parse_input_constraint): Use
10160 insn_extra_special_memory_constraint.
10161
10162 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
10163
10164 PR target/69530
10165 * lra-splill.c (lra_final_code_change): Revert r229087 by
10166 removing all sub-registers.
10167
10168 2016-01-29 Steve Ellcey <sellcey@imgtec.com>
10169
10170 PR target/65604
10171 * config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
10172
10173 2016-01-29 Jakub Jelinek <jakub@redhat.com>
10174
10175 PR target/69551
10176 * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
10177 SSE1, copy target into the temporary reg first before recursing
10178 on it.
10179
10180 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
10181
10182 * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
10183 with vm.
10184
10185 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
10186
10187 * ginclude/stdarg.h: Test __cplusplus instead of
10188 __GXX_EXPERIMENTAL_CXX0X__.
10189
10190 2016-01-29 Richard Biener <rguenther@suse.de>
10191
10192 PR tree-optimization/69547
10193 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
10194 Do not mark clobbers necessary.
10195 (mark_all_reaching_defs_necessary_1): Likewise.
10196
10197 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
10198
10199 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
10200 declaration name with %qs and print it in both error messages.
10201 Also fix indentation.
10202
10203 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
10204
10205 PR other/69006
10206 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
10207 trailing blank line from error message.
10208
10209 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
10210
10211 PR c++/69462
10212 * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
10213 for C++-11.
10214
10215 2016-01-29 Richard Biener <rguenther@suse.de>
10216
10217 PR middle-end/69537
10218 * match.pd: Allow all integral types when simplifying a
10219 widening or sign-changing conversion.
10220
10221 2016-01-28 Sebastian Pop <s.pop@samsung.com>
10222
10223 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
10224 back to setting codegen_error to fail codegen.
10225
10226 2016-01-28 Uros Bizjak <ubizjak@gmail.com>
10227
10228 PR target/69459
10229 * config/i386/constraints.md (C): Only accept constant zero operand.
10230 (BC): New constraint.
10231 * config/i386/sse.md (*mov<mode>_internal): Use BC constraint
10232 instead of C constraint.
10233 * doc/md.texi (Machine Constraints): Update description
10234 of C constraint.
10235
10236 2016-01-28 Steve Ellcey <sellcey@imgtec.com>
10237
10238 PR target/68400
10239 * config/mips/mips.c (and_operands_ok): Add MIPS16 check.
10240
10241 2016-01-28 Jakub Jelinek <jakub@redhat.com>
10242
10243 PR middle-end/69542
10244 * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
10245 non-debug insns.
10246
10247 2016-01-28 Pat Haugen <pthaugen@us.ibm.com>
10248
10249 * config/rs6000/rs6000.c (output_cbranch): Don't statically predict
10250 branches if using guessed profile.
10251
10252 2016-01-28 H.J. Lu <hongjiu.lu@intel.com>
10253
10254 * graphite-optimize-isl.c (optimize_isl): Fix dump.
10255
10256 2016-01-28 Richard Henderson <rth@redhat.com>
10257
10258 PR target/69305
10259 * config/aarch64/aarch64-modes.def (CC_Cmode): New
10260 * config/aarch64/aarch64-protos.h: Update.
10261 * config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
10262 (aarch64_select_cc_mode): Add check for use of CC_Cmode.
10263 (aarch64_get_condition_code_1): Handle CC_Cmode.
10264 * config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
10265 (*add<mode>3_compareC_cconly_imm): New.
10266 (*add<mode>3_compareC_cconly): New.
10267 (*add<mode>3_compareC_imm): New.
10268 (add<mode>3_compareC): New.
10269 (add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
10270 to be first. Use aarch64_carry_operation.
10271 (*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
10272 (*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
10273 (*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
10274 (subti3): Use subdi3_compare1.
10275 (*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
10276 (sub<mode>3_compare1): New.
10277 (*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
10278 (*sub<mode>3_carryin): Use aarch64_borrow_operation.
10279 (*subsi3_carryin_uxtw): Likewise.
10280 (*ngc<mode>, *ngcsi_uxtw): Likewise.
10281 (*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
10282 * config/aarch64/iterators.md (DWI): New.
10283 * config/aarch64/predicates.md (aarch64_carry_operation): New.
10284 (aarch64_borrow_operation): New.
10285
10286 2016-01-28 Abderrazek Zaafrani <a.zaafrani@samsung.com>
10287
10288 * graphite-optimize-isl.c (optimize_isl): Print a different debug
10289 message when isl does not return a valid schedule.
10290
10291 2016-01-28 Sebastian Pop <s.pop@samsung.com>
10292
10293 * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
10294 Remove comments from class declarations: they are already in the code
10295 close by the defs.
10296
10297 2016-01-28 Sebastian Pop <s.pop@samsung.com>
10298
10299 * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
10300 codegen_error_p.
10301 (ternary_op_to_tree): Same.
10302 (unary_op_to_tree): Same.
10303 (nary_op_to_tree): Same.
10304 (gcc_expression_from_isl_expr_op): Same.
10305 (gcc_expression_from_isl_expression): Same.
10306 (graphite_create_new_loop): Same.
10307 (graphite_create_new_loop_guard): Same.
10308 (build_iv_mapping): Same.
10309 (graphite_create_new_guard): Same.
10310 (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same.
10311 (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same.
10312
10313 2016-01-28 Sebastian Pop <s.pop@samsung.com>
10314
10315 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
10316 instead of setting codegen_error to fail codegen.
10317
10318 2016-01-28 Jason Merrill <jason@redhat.com>
10319
10320 * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
10321
10322 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
10323
10324 * config/aarch64/aarch64.c (aarch64_if_then_else_costs):
10325 Remove CONST_INT_P check in CCMP cost calculation.
10326
10327 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
10328
10329 * config/aarch64/aarch64.c (generic_vector_cost):
10330 Set vec_permute_cost.
10331 (cortexa57_vector_cost): Likewise.
10332 (exynosm1_vector_cost): Likewise.
10333 (xgene1_vector_cost): Likewise.
10334 (aarch64_builtin_vectorization_cost): Use vec_permute_cost.
10335 * config/aarch64/aarch64-protos.h (cpu_vector_cost):
10336 Add vec_permute_cost entry.
10337
10338 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
10339
10340 * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
10341 immediate as %1.
10342 (add<mode>3_compare0): Likewise.
10343 (addsi3_compare0_uxtw): Likewise.
10344 (add<mode>3nr_compare0): Likewise.
10345 (compare_neg<mode>): Likewise.
10346 (<optab><mode>3): Likewise.
10347
10348 2016-01-28 Ilya Enkovich <enkovich.gnu@gmail.com>
10349
10350 * tree-vect-stmts.c (vectorizable_comparison): Add
10351 NULL check for vectype.
10352
10353 2016-01-28 Richard Biener <rguenther@suse.de>
10354
10355 PR tree-optimization/69466
10356 * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
10357 Account for PHIs we couldn't duplicate.
10358
10359 2016-01-28 Martin Liska <mliska@suse.cz>
10360
10361 PR pch/68758
10362 * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
10363 instead of ENABLE_VALGRIND_CHECKING.
10364
10365 2016-01-27 Richard Henderson <rth@redhat.com>
10366
10367 PR rtl-opt/69447
10368 * lra-remat.c (subreg_regs): New.
10369 (dump_candidates_and_remat_bb_data): Dump it.
10370 (operand_to_remat): Reject if operand in subreg_regs.
10371 (set_bb_regs): Collect subreg_regs.
10372 (lra_remat): Init and free subreg_regs. Compute
10373 calculate_local_reg_remat_bb_data before create_cands.
10374
10375 2016-01-27 H.J. Lu <hongjiu.lu@intel.com>
10376
10377 PR target/68986
10378 * config/i386/i386.c (ix86_update_stack_boundary): Don't
10379 change stack_alignment_needed for __tls_get_addr call.
10380
10381 2016-01-27 Segher Boessenkool <segher@kernel.crashing.org>
10382
10383 * config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
10384
10385 2016-01-27 Jeff Law <law@redhat.com>
10386
10387 PR tree-optimization/68398
10388 PR tree-optimization/69196
10389 * params.def (PARAM_FSM_SCALE_PATH_STMTS): New parameter.
10390 (PARAM_FSM_SCALE_PATH_BLOCKS): Likewise.
10391 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
10392 Only count PHIs in the last block in the path. The others will
10393 const/copy propagate away. Add heuristic to allow more irreducible
10394 subloops to be created when it is likely profitable to do so.
10395
10396 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
10397 Fix typo in comment. Use gsi_after_labels and remove the GIMPLE_LABEL
10398 check from within the loop. Use gsi_next_nondebug rather than gsi_next.
10399
10400 2016-01-27 Jakub Jelinek <jakub@redhat.com>
10401
10402 PR lto/69254
10403 * sanitizer.def: Add BEGIN_SANITIZER_BUILTINS and
10404 END_SANITIZER_BUILTINS markers using DEF_BUILTIN_STUB.
10405 * asan.c (DEF_BUILTIN_STUB): Temporarily define.
10406 * tree-streamer-in.c: Include asan.h.
10407 (streamer_get_builtin_tree): For builtins in sanitizer
10408 range call initialize_sanitizer_builtins and retry.
10409
10410 2016-01-27 Ian Lance Taylor <iant@google.com>
10411
10412 * common.opt (fkeep-gc-roots-live): New undocumented option.
10413 * tree-ssa-loop-ivopts.c (add_candidate_1): If
10414 -fkeep-gc-roots-live, skip pointers.
10415 (add_iv_candidate_for_biv): Handle add_candidate_1 returning
10416 NULL.
10417
10418 2016-01-27 Uros Bizjak <ubizjak@gmail.com>
10419
10420 PR target/69512
10421 * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
10422 (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.
10423
10424 2016-01-27 Thomas Klausner <wiz@NetBSD.org>
10425
10426 PR target/68380
10427 * configure.ac: NetBSD provides SSP in its C library.
10428 * configure: Updated.
10429
10430 2016-01-27 Richard Biener <rguenther@suse.de>
10431
10432 PR tree-optimization/69166
10433 * tree-vect-loop.c (vect_is_simple_reduction): Always check
10434 reduction code for commutativity / associativity.
10435
10436 2016-01-27 Martin Jambor <mjambor@suse.cz>
10437
10438 PR tree-optimization/69355
10439 * tree-sra.c (analyze_access_subtree): Correct hole detection when
10440 total_scalarization fails.
10441
10442 2016-01-27 David Edelsohn <dje.gcc@gmail.com>
10443
10444 * config/rs6000/driver-rs6000.c (detect_processor_aix): Add
10445 power9.
10446
10447 2016-01-27 Christian Bruel <christian.bruel@st.com>
10448
10449 PR target/69245
10450 * config/arm/arm-c.c (arm_pragma_target_parse): Add comments.
10451 Move arm_reset_previous_fndecl and set_target_option_current_node in
10452 the conditional part. Call save_restore_target_globals.
10453 * config/arm/arm.c (arm_set_current_function):
10454 Refactor to better support #pragma target and attribute mix.
10455 Call save_restore_target_globals.
10456 * config/arm/arm-protos.h (save_restore_target_globals): New function.
10457
10458 2016-01-27 Martin Liska <mliska@suse.cz>
10459
10460 * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
10461 reference for an HSA kernel and its host function.
10462
10463 2016-01-27 Jakub Jelinek <jakub@redhat.com>
10464
10465 PR tree-optimization/69399
10466 * wide-int.h (wi::lrshift): For larger precisions, only
10467 use fast path if shift is known to be < HOST_BITS_PER_WIDE_INT.
10468
10469 2016-01-27 Claudiu Zissulescu <claziss@synopsys.com>
10470
10471 * config/arc/predicates.md (proper_comparison_operator): Reject
10472 constant-constant comparison.
10473
10474 2016-01-26 Tom de Vries <tom@codesourcery.com>
10475
10476 PR tree-optimization/69110
10477 * tree-data-ref.c (initialize_data_dependence_relation): Handle
10478 DR_NUM_DIMENSIONS == 0.
10479
10480 2016-01-26 Abderrazek Zaafrani <a.zaafrani@samsung.com>
10481 Sebastian Pop <s.pop@samsung.com>
10482
10483 * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Handle
10484 isl_ast_op_cond and isl_ast_op_select.
10485 (gcc_expression_from_isl_expr_op): Same.
10486
10487 2016-01-26 Jason Merrill <jason@redhat.com>
10488
10489 PR c++/68782
10490 * tree.c (recompute_constructor_flags): Split out from
10491 build_constructor.
10492 (verify_constructor_flags): New.
10493 * tree.h: Declare them.
10494
10495 2016-01-26 Iain Buclaw <ibuclaw@gdcproject.org>
10496
10497 PR rtl-optimization/69217
10498 * var-tracking.c (tracked_record_parameter_p): Don't segfault if there
10499 are no TYPE_FIELDS set for the record type.
10500
10501 2016-01-26 Jakub Jelinek <jakub@redhat.com>
10502
10503 PR target/68662
10504 * config/rs6000/rs6000.c (rs6000_option_override_internal): Initialize
10505 toc_label_name unconditionally.
10506 (rs6000_emit_load_toc_table): Call ggc_strdup on toc_label_name for
10507 SYMBOL_REF string. Use toc_label_name instead of constructing
10508 LCTOC1.
10509 (rs6000_elf_declare_function_name): Use toc_label_name instead of
10510 constructing LCTOC1.
10511
10512 2016-01-26 Martin Sebor <msebor@redhat.com>
10513
10514 PR other/69477
10515 * doc/extend.texi (Common Type Attributes): Move text that talks about
10516 attribute packed from attribute aligned to the section discussing
10517 the former attribute for clarity.
10518
10519 2016-01-26 Richard Henderson <rth@redhat.com>
10520
10521 PR middle-end/60908
10522 * trans-mem.c (tm_region_init): Mark entry block as visited.
10523
10524 2016-01-26 David Malcolm <dmalcolm@redhat.com>
10525
10526 PR other/69006
10527 * diagnostic-show-locus.c (layout::print_source_line): Replace
10528 call to pp_newline with call to layout::print_newline.
10529 (layout::print_annotation_line): Likewise.
10530 (layout::move_to_column): Likewise.
10531 (layout::print_any_fixits): After printing any fixits, print a
10532 trailing newline, if necessary.
10533 (layout::print_newline): New method, resetting any colorization
10534 before a newline.
10535 (diagnostic_show_locus): Move the pp_newline to before the
10536 early bailout. Remove dummy block enclosing the layout instance.
10537 * diagnostic.c (default_diagnostic_finalizer): Replace invocation
10538 of pp_newline_and_flush with pp_flush.
10539 (diagnostic_append_note): Delete use of pp_newline.
10540 (diagnostic_append_note_at_rich_loc): Delete.
10541 * diagnostic.h (diagnostic_append_note_at_rich_loc): Delete.
10542 * pretty-print.h (output_buffer_append_r): Reset buff->line_length
10543 when newline characters are added to the buffer.
10544
10545 2016-01-26 Michael Matz <matz@suse.de>
10546
10547 * configure.ac (ac_cv_std_swap_in_utility): New test.
10548 * system.h (<algorithm>): Check HAVE_SWAP_IN_UTILITY as well.
10549 * configure: Regenerate.
10550 * config.in: Regenerate.
10551
10552 2016-01-26 Claudiu Zissulescu <claziss@synopsys.com>
10553
10554 * config/arc/arc.md (cstoresi4): Force operand into register.
10555 (arcset<code>): Fix predicate.
10556 (arcsetltu): Likewise.
10557 (arcsetgeu): Likewise.
10558 (arcsethi): Likewise.
10559 (arcsetls): Likewise.
10560
10561 2016-01-26 Jakub Jelinek <jakub@redhat.com>
10562
10563 PR tree-optimization/69483
10564 * gimple-fold.c (canonicalize_constructor_val): Return NULL
10565 if base has error_mark_node type.
10566
10567 2016-01-26 Christophe Lyon <christophe.lyon@linaro.org>
10568
10569 PR target/68620
10570 * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
10571 * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
10572 New helper macros.
10573 (vget_lane_f16): Handle big-endian.
10574 (vgetq_lane_f16): Likewise.
10575 (vset_lane_f16): Likewise.
10576 (vsetq_lane_f16): Likewise.
10577 * config/arm/iterators.md (VQXMOV): Add V8HF.
10578 (VDQ): Add V4HF and V8HF.
10579 (V_reg): Handle V4HF and V8HF.
10580 (Is_float_mode): Likewise.
10581 * config/arm/neon.md (movv4hf, movv8hf, neon_vdup_nv4hf,
10582 neon_vdup_nv8hf): New patterns.
10583 (vec_set<mode>_internal, vec_extract<mode>, neon_vld1_dup<mode>):
10584 Use VD_LANE iterator.
10585 (neon_vld1_dup<mode>): Use VQ2 iterator.
10586
10587 2016-01-26 Nathan Sidwell <nathan@acm.org>
10588
10589 * omp-low.h (oacc_fn_attrib_kernels_p): Declare.
10590 (set_oacc_fn_attrib): Add IS_KERNEL arg.
10591 * omp-low.c (set_oacc_fn_attrib): Add IS_KERNEL arg.
10592 (oacc_fn_attrib_kernels_p, oacc_fn_attrib_level): New.
10593 (expand_omp_target): Pass is_kernel to set_oacc_fn_attrib.
10594 (oacc_validate_dims): Add LEVEL arg, don't return level.
10595 (new_oacc_loop_routine): Use oacc_fn_attrib_level, not
10596 oacc_validate_dims.
10597 (execute_oacc_device_lower): Adjust, add more dump output.
10598 * tree-ssa-loop.c (gate_oacc_kernels): Use
10599 oacc_fn_attrib_kernels_p.
10600 * tree-parloops.c (create_parallel_loop): Adjust
10601 set_oacc_fn_attrib call.
10602
10603 2016-01-26 Jakub Jelinek <jakub@redhat.com>
10604
10605 PR lto/69254
10606 * lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
10607 (append_compiler_options): Handle -fcilkplus.
10608 (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.
10609
10610 2016-01-26 Nick Clifton <nickc@redhat.com>
10611
10612 PR target/66655
10613 * config/i386/winnt.c (i386_pe_binds_local_p): If a function has
10614 been marked as DECL_ONE_ONLY but we do not the means to make it
10615 so, then do not allow it to bind locally.
10616
10617 2016-01-26 Jakub Jelinek <jakub@redhat.com>
10618
10619 PR lto/69254
10620 * opts.h (parse_sanitizer_options): New prototype.
10621 * opts.c (sanitizer_opts): New array.
10622 (parse_sanitizer_options): New function.
10623 (common_handle_option): Use parse_sanitizer_options.
10624
10625 2016-01-26 H.J. Lu <hongjiu.lu@intel.com>
10626
10627 PR target/68986
10628 * config/i386/i386.c (ix86_compute_frame_layout): Move stack
10629 alignment adjustment to ...
10630 (ix86_update_stack_boundary): Here. Don't over-align stack for
10631 __tls_get_addr.
10632 (ix86_finalize_stack_realign_flags): Use stack_alignment_needed
10633 if __tls_get_addr is called.
10634
10635 2016-01-26 Christian Bruel <christian.bruel@st.com>
10636
10637 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.
10638
10639 2016-01-26 Eric Botcazou <ebotcazou@adacore.com>
10640
10641 * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.
10642
10643 2016-01-26 Richard Biener <rguenther@suse.de>
10644
10645 PR middle-end/69467
10646 * match.pd: Guard X * CST CMP 0 pattern with single_use.
10647
10648 2016-01-26 Richard Biener <rguenther@suse.de>
10649
10650 PR tree-optimization/69452
10651 * tree-ssa-loop-im.c (move_computations_dom_walker): Remove.
10652 (move_computations_dom_walker::before_dom_children): Rename
10653 to ...
10654 (move_computations_worker): This.
10655 (move_computations): Perform an RPO rather than a DOM walk.
10656
10657 2016-01-26 Jakub Jelinek <jakub@redhat.com>
10658
10659 PR target/69442
10660 * combine.c (combine_instructions): For REG_EQUAL note with
10661 SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST
10662 to the underlying register.
10663 * doc/rtl.texi (REG_EQUAL): Document the behavior of
10664 REG_EQUAL/REG_EQUIV notes if SET_DEST is ZERO_EXTRACT.
10665
10666 2016-01-26 Roger Ferrer Ibáñez <rofirrim@gmail.com>
10667
10668 PR target/67896
10669 * config/aarch64/aarch64-builtins.c
10670 (aarch64_init_simd_builtin_types): Do not set structural
10671 equality to __Poly{8,16,64,128}_t types.
10672
10673 2016-01-26 Richard Sandiford <richard.sandiford@arm.com>
10674
10675 PR tree-optimization/69400
10676 * wide-int.cc (wi_pack): Take the precision as argument and
10677 perform canonicalization here rather than in the callers.
10678 Use the main loop to handle all full-width HWIs. Add a
10679 zero HWI if in_len isn't a full result.
10680 (wi::divmod_internal): Update accordingly.
10681 (wi::mul_internal): Likewise. Simplify.
10682
10683 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
10684 Sebastian Pop <s.pop@samsung.com>
10685
10686 * graphite-poly.c (apply_poly_transforms): Simplify.
10687 (print_isl_set): Use more readable format: ISL_YAML_STYLE_BLOCK.
10688 (print_isl_map): Same.
10689 (print_isl_union_map): Same.
10690 (print_isl_schedule): New.
10691 (debug_isl_schedule): New.
10692 * graphite-dependences.c (scop_get_reads): Do not call
10693 isl_union_map_add_map that is undocumented isl functionality.
10694 (scop_get_must_writes): Same.
10695 (scop_get_may_writes): Same.
10696 (scop_get_original_schedule): Remove.
10697 (scop_get_dependences): Do not call isl_union_map_compute_flow that
10698 is deprecated in isl 0.15. Instead, use isl_union_access_* interface.
10699 (compute_deps): Remove.
10700 * graphite-isl-ast-to-gimple.c (print_schedule_ast): New.
10701 (debug_schedule_ast): New.
10702 (translate_isl_ast_to_gimple::scop_to_isl_ast): Call
10703 set_separate_option.
10704 (graphite_regenerate_ast_isl): Add dump.
10705 (translate_isl_ast_to_gimple::scop_to_isl_ast): Generate code
10706 from scop->transformed_schedule.
10707 (graphite_regenerate_ast_isl): Add more dump.
10708 * graphite-optimize-isl.c (optimize_isl): Set
10709 scop->transformed_schedule. Check whether schedules are equal.
10710 (apply_poly_transforms): Move here.
10711 * graphite-poly.c (apply_poly_transforms): ... from here.
10712 (free_poly_bb): Static.
10713 (free_scop): Static.
10714 (pbb_number_of_iterations_at_time): Remove.
10715 (print_isl_ast): New.
10716 (debug_isl_ast): New.
10717 (debug_scop_pbb): New.
10718 * graphite-scop-detection.c (print_edge): Move.
10719 (print_sese): Move.
10720 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
10721 (build_scop_scattering): Remove.
10722 (create_pw_aff_from_tree): Assert instead of bailing out.
10723 (add_condition_to_pbb): Remove unused code, do not fail.
10724 (add_conditions_to_domain): Same.
10725 (add_conditions_to_constraints): Remove.
10726 (build_scop_context): New.
10727 (add_iter_domain_dimension): New.
10728 (build_iteration_domains): Initialize pbb->iterators.
10729 Call add_conditions_to_domain.
10730 (nested_in): New.
10731 (loop_at): New.
10732 (index_outermost_in_loop): New.
10733 (index_pbb_in_loop): New.
10734 (outermost_pbb_in): New.
10735 (add_in_sequence): New.
10736 (add_outer_projection): New.
10737 (outer_projection_mupa): New.
10738 (add_loop_schedule): New.
10739 (build_schedule_pbb): New.
10740 (build_schedule_loop): New.
10741 (embed_in_surrounding_loops): New.
10742 (build_schedule_loop_nest): New.
10743 (build_original_schedule): New.
10744 (build_poly_scop): Call build_original_schedule.
10745 * graphite.h: Declare print_isl_schedule and debug_isl_schedule.
10746 (free_poly_dr): Remove.
10747 (struct poly_bb): Add iterators. Remove schedule, transformed, saved.
10748 (free_poly_bb): Remove.
10749 (debug_loop_vec): Remove.
10750 (print_isl_ast): Declare.
10751 (debug_isl_ast): Declare.
10752 (scop_do_interchange): Remove.
10753 (scop_do_strip_mine): Remove.
10754 (scop_do_block): Remove.
10755 (flatten_all_loops): Remove.
10756 (optimize_isl): Remove.
10757 (pbb_number_of_iterations_at_time): Remove.
10758 (debug_scop_pbb): Declare.
10759 (print_schedule_ast): Declare.
10760 (debug_schedule_ast): Declare.
10761 (struct scop): Remove schedule. Add original_schedule,
10762 transformed_schedule.
10763 (free_gimple_poly_bb): Remove.
10764 (print_generated_program): Remove.
10765 (debug_generated_program): Remove.
10766 (unify_scattering_dimensions): Remove.
10767 * sese.c (print_edge): ... here.
10768 (print_sese): ... here.
10769 (debug_edge): ... here.
10770 (debug_sese): ... here.
10771 * sese.h (print_edge): Declare.
10772 (print_sese): Declare.
10773 (dump_edge): Declare.
10774 (dump_sese): Declare.
10775
10776 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
10777 Sebastian Pop <s.pop@samsung.com>
10778
10779 * Makefile.in: Set ISLVER in site.exp.
10780
10781 2016-01-25 Jakub Jelinek <jakub@redhat.com>
10782
10783 * omp-low.c (lower_omp_target) <case USE_DEVICE_PTR>: Set
10784 DECL_VALUE_EXPR of new_var even for the non-array case. Look
10785 through DECL_VALUE_EXPR for expansion.
10786
10787 2016-01-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
10788
10789 * config/mips/mips.c (mips_compute_frame_info): Skip re-computing
10790 the frame info after reload completed.
10791
10792 2016-01-25 Jeff Law <law@redhat.com>
10793
10794 PR tree-optimization/69196
10795 PR tree-optimization/68398
10796 * tree-ssa-threadupdate.h (enum bb_dom_status): Moved here from
10797 tree-ssa-threadupdate.c.
10798 (determine_bb_domination_status): Prototype
10799 * tree-ssa-threadupdate.c (enum bb_dom_status): Remove
10800 (determine_bb_domination_status): No longer static.
10801 (valid_jump_thread_path): Remove code to detect characteristics
10802 of the jump thread path not associated with correctness.
10803 * tree-ssa-threadbackward.c (fsm_find_control_statment_thread_paths):
10804 Correct test for thread path length. Count PHIs for real operands as
10805 statements that need to be copied. Do not count ASSERT_EXPRs.
10806 Look at all the blocks in the thread path. Compute and selectively
10807 filter thread paths based on threading through the latch, threading
10808 a multiway branch or crossing a multiway branch.
10809
10810 2016-01-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10811
10812 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): Add
10813 decl with __attribute__ ((unused)) annotation.
10814
10815 2016-01-25 Ilya Enkovich <enkovich.gnu@gmail.com>
10816
10817 PR target/69421
10818 * tree-vect-stmts.c (vectorizable_condition): Check vectype
10819 of operands is compatible with a statement vectype.
10820
10821 2016-01-25 Eric Botcazou <ebotcazou@adacore.com>
10822
10823 * doc/extend.texi (scalar_storage_order type attribute): Fix typo and
10824 improve wording for mixed storage order support.
10825
10826 2016-01-25 Bilyan Borisov <bilyan.borisov@arm.com>
10827
10828 * config/aarch64/arm_neon.h (vcvt_s64_f64): New intrinsic.
10829 (vcvt_u64_f64): Likewise.
10830 (vcvta_s64_f64): Likewise.
10831 (vcvta_u64_f64): Likewise.
10832 (vcvtm_s64_f64): Likewise.
10833 (vcvtm_u64_f64): Likewise.
10834 (vcvtn_s64_f64): Likewise.
10835 (vcvtn_u64_f64): Likewise.
10836 (vcvtp_s64_f64): Likewise.
10837 (vcvtp_u64_f64): Likewise.
10838
10839 2016-01-25 Claudiu Zissulescu <claziss@synopsys.com>
10840
10841 * config/arc/arc.c (TARGET_DWARF_REGISTER_SPAN): Define.
10842 (arc_init): Check validity mll64 option.
10843 (arc_save_restore): Use double load/store instruction.
10844 (arc_expand_movmem): Likewise.
10845 (arc_split_move): Don't split if we have double load/store
10846 instructions. Returns a boolean.
10847 (arc_process_double_reg_moves): Change function to return boolean
10848 instead of a sequence of instructions.
10849 (arc_dwarf_register_span): New function.
10850 * config/arc/arc-protos.h (arc_split_move): Change prototype.
10851 * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __ARC_LL64__.
10852 * config/arc/arc.md (*movdi_insn): Emit ldd/std instructions.
10853 (*movdf_insn): Likewise.
10854 * config/arc/arc.opt (mll64): New option.
10855 * config/arc/predicates.md (even_register_operand): New predicate.
10856 * doc/invoke.texi (ARC Options): Add mll64 documentation.
10857
10858 2016-01-25 Richard Biener <rguenther@suse.de>
10859
10860 PR lto/69393
10861 * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
10862 * tree-streamer-out.c (pack_ts_base_value_fields): Stream
10863 DECL_NAMELESS.
10864 * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
10865
10866 2016-01-25 Richard Biener <rguenther@suse.de>
10867
10868 PR tree-optimization/69376
10869 * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
10870 flag.
10871 (VN_INFO_ANTI_RANGE_P): New inline.
10872 (VN_INFO_RANGE_TYPE): Likewise.
10873 * tree-ssa-sccvn.c (set_ssa_val_to): Also record and copy
10874 SSA_NAME_ANTI_RANGE_P.
10875 (free_scc_vn): Restore SSA_NAME_ANTI_RANGE_P.
10876 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
10877 Properly query VN_INFO_RANGE_TYPE.
10878
10879 2016-01-25 Nick Clifton <nickc@redhat.com>
10880
10881 PR target/66655
10882 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.
10883
10884 2016-01-23 Tom de Vries <tom@codesourcery.com>
10885
10886 PR tree-optimization/69426
10887 * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
10888 removed clobber.
10889
10890 2016-01-23 Jakub Jelinek <jakub@redhat.com>
10891
10892 * tree-ssanames.c (release_free_names_and_compact_live_names): Replace
10893 "the the" with "the" in the comments.
10894 * ipa-devirt.c (build_type_inheritance_graph,
10895 update_type_inheritance_graph): Likewise.
10896 * tree.c (build_function_type_list_1): Likewise.
10897 * cfgloopmanip.c (scale_loop_profile): Likewise.
10898 * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Likewise.
10899 * gimple-ssa-split-paths.c
10900 (find_block_to_duplicate_for_splitting_paths): Likewise.
10901 * tree-sra.c (init_subtree_with_zero, clobber_subtree): Likewise.
10902 * expr.c (convert_move): Likewise.
10903 * var-tracking.c (vt_stack_adjustments): Likewise.
10904 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
10905 * tree-vrp.c (test_for_singularity): Likewise.
10906
10907 * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
10908 directly instead of building a temporary tree.
10909
10910 PR bootstrap/69434
10911 * genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
10912 remove <algorithm> include.
10913
10914 2016-01-22 Jakub Jelinek <jakub@redhat.com>
10915
10916 PR target/69432
10917 * config/i386/i386.c: Include dojump.h.
10918 (expand_small_movmem_or_setmem,
10919 expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Spelling
10920 fixes.
10921 (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
10922 if dynamic_check != -1.
10923
10924 2016-01-21 Jeff Law <law@redhat.com>
10925
10926 PR middle-end/69347
10927 * tree-ssa-dom.c (back_propagate_equivalences): Factored out of
10928 record_temporary_equivalences. Rewritten to avoid unnecessary calls
10929 into dominated_by_p.
10930 (cprop_into_successor_phis): Avoid unnecessary tests.
10931
10932 2016-01-22 Richard Henderson <rth@redhat.com>
10933
10934 PR target/69416
10935 * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
10936 (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
10937
10938 2016-01-22 Michael Matz <matz@suse.de>
10939
10940 * system.h (string, algorithm): Include only conditionally.
10941 (new): Include always under C++.
10942 * bb-reorder.c (toplevel): Define INCLUDE_ALGORITHM.
10943 * final.c (toplevel): Ditto.
10944 * ipa-chkp.c (toplevel): Define INCLUDE_STRING.
10945 * genconditions.c (write_header): Make gencondmd.c define
10946 INCLUDE_STRING.
10947 * mem-stats.h (mem_usage::print_dash_line): Don't use std::string.
10948
10949 * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
10950 * common/config/aarch64/aarch64-common.c (toplevel): Ditto.
10951
10952 2016-01-22 Christian Bruel <christian.bruel@st.com>
10953
10954 PR target/68674
10955 * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.
10956
10957 2016-01-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10958
10959 PR target/69403
10960 * config/arm/thumb2.md (*thumb2_ior_scc_strict_it): Convert to
10961 define_insn_and_split. Ensure operands[1] and operands[0] do not
10962 get assigned the same register.
10963
10964 2016-01-22 Kugan Vivekanandarajah <kuganv@linaro.org>
10965
10966 * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.
10967
10968 2016-01-22 Christian Bruel <christian.bruel@st.com>
10969
10970 * config/arm/arm-c.c (arm_pragma_target_parse):
10971 Remove warn_builtin_macro_redefined overwrite.
10972
10973 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
10974
10975 * ipa-inline.c (can_inline_edge_p): Back out overzealous check on
10976 flag_non_call_exceptions compatibility.
10977
10978 2016-01-22 Jakub Jelinek <jakub@redhat.com>
10979
10980 PR debug/66668
10981 * dwarf2out.c (add_child_die_after): New function.
10982 (dwarf_qual_info_t): New type.
10983 (dwarf_qual_info): New variable.
10984 (qualified_die_p): New function.
10985 (modified_type_die): For -fdebug-types-section, ensure
10986 canonical order of qualifiers. Put qualified DIEs adjacent
10987 to the corresponding non-qualified type DIE and search there
10988 for existing qualified DIEs.
10989
10990 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
10991
10992 * doc/extend.texi (scalar_storage_order type attribute): Document
10993 restriction on type punning and aliasing, and remove future tense.
10994
10995 2016-01-21 Roman Zhuykov <zhroma@ispras.ru>
10996
10997 PR target/69252
10998 * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
10999 first stage.
11000
11001 2016-01-21 Jeff Law <law@redhat.com>
11002
11003 PR middle-end/69347
11004 * tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid
11005 useless call to record_temporary_equivalences.
11006 * tree-ssa-threadbackward.c (find_jump_threads_backwards): Just
11007 allocate 10 slots in the bb_path vector and let it grow as needed.
11008 (fsm_find_control_statement_thread_paths): Similarly for the next_path
11009 vector.
11010
11011 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
11012
11013 * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
11014 Detangle.
11015 * configure: Regenerate.
11016
11017 2016-01-21 Pat Haugen <pthaugen@us.ibm.com>
11018
11019 * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
11020 * config/rs6000/driver-rs6000.c (struct asm_names): Likewise.
11021
11022 2016-01-21 Bernd Schmidt <bschmidt@redhat.com>
11023
11024 PR middle-end/66178
11025 * expr.c (expand_expr_real_2) [PLUS_EXPR, MINUS_EXPR]: Don't
11026 drop EXPAND_INITIALIZER.
11027 * rtl.h (contains_symbolic_reference_p): Declare.
11028 * rtlanal.c (contains_symbolic_reference_p): New function.
11029 * simplify-rtx.c (simplify_binary_operation_1): Don't turn
11030 a subtraction into a NOT if symbolic constants are involved.
11031
11032 2016-01-21 Anton Blanchard <anton@samba.org>
11033 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11034
11035 PR target/63354
11036 * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
11037 #define.
11038 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
11039 function.
11040
11041 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
11042
11043 * config/microblaze/microblaze.c
11044 (get_branch_target): New.
11045 (insert_wic_for_ilb_runout): New.
11046 (insert_wic): New.
11047 (microblaze_machine_dependent_reorg): New.
11048 (TARGET_MACHINE_DEPENDENT_REORG): Define macro.
11049 * config/microblaze/microblaze.md
11050 (UNSPEC_IPREFETCH): Define.
11051 (iprefetch): New pattern
11052 * config/microblaze/microblaze.opt
11053 (mxl-prefetch): New flag.
11054
11055 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
11056
11057 * config/microblaze/microblaze.h
11058 (FIXED_REGISTERS): Update in macro.
11059 (CALL_USED_REGISTERS): Update in macro.
11060
11061 2016-01-21 Yuri Rumyantsev <ysrumyan@gmail.com>
11062
11063 PR rtl-optimization/68920
11064 * ifcvt.c (cond_move_process_if_block): Limit number of conditional
11065 moves.
11066
11067 2016-01-21 Vladimir Makarov <vmakarov@redhat.com>
11068
11069 PR rtl-optimization/68990
11070 * lra-coalesce.c (lra_coalesce): Invalidate value for the result
11071 pseudo instead of inheritance ones.
11072
11073 2016-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
11074 Nick Clifton <nickc@redhat.com>
11075
11076 PR target/69129
11077 PR target/69012
11078 * config/mips/mips.c (mips_compute_frame_info): Initialise
11079 args_size and hard_frame_pointer_offset fields of the frame
11080 structure before calling mips_global_pointer.
11081
11082 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
11083
11084 * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
11085 label reference.
11086 * configure: Regenerate.
11087
11088 2016-01-21 Richard Biener <rguenther@suse.de>
11089
11090 * graphite-optimize-isl.c (get_schedule_map): Fix typo.
11091
11092 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
11093
11094 * config/s390/s390.c (s390_asm_declare_function_size): Add code
11095 to actually emit the .size directive.
11096
11097 2016-01-21 Stefan Sørensen <stefan.sorensen@spectralink.com>
11098 Jakub Jelinek <jakub@redhat.com>
11099
11100 PR target/69187
11101 PR target/65624
11102 * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
11103 args array size by one to avoid buffer overflow.
11104
11105 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
11106
11107 * config/s390/s390.md (pool_section_start): Use switch_to_section
11108 to select proper read-only data section instead of hardcoding
11109 .rodata.
11110 (pool_section_end): Use switch_to_section to match the above.
11111
11112 2016-01-21 Richard Biener <rguenther@suse.de>
11113
11114 PR tree-optimization/69378
11115 * tree-ssa-sccvn.c (dominated_by_p_w_unex): New function.
11116 (set_ssa_val_to): Use it for dominance checks taking into
11117 account not executable edges.
11118
11119 2016-01-21 Jakub Jelinek <jakub@redhat.com>
11120
11121 PR c++/69355
11122 * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
11123 for bitsize instead of GET_MODE_PRECISION (mode).
11124
11125 2016-01-20 Martin Sebor <msebor@redhat.com>
11126
11127 PR c/52291
11128 * extend.texi (__sync Builtins): Clarify the semantics of
11129 __sync_fetch_and_OP built-ins on pointers.
11130 (__atomic Builtins): Same.
11131
11132 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11133 Sebastian Pop <s.pop@samsung.com>
11134
11135 * graphite-isl-ast-to-gimple.c (enum phi_node_kind): New.
11136 (class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool.
11137 (is_valid_rename): Same.
11138 (translate_isl_ast_to_gimple::get_rename): Same.
11139 (translate_isl_ast_to_gimple::rename_all_uses): Same.
11140 (translate_isl_ast_to_gimple::rename_uses): Same.
11141 (get_new_name): Check for close_phi nodes.
11142 (copy_loop_phi_args): Use phi_node_kind.
11143 (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
11144 (translate_isl_ast_to_gimple::copy_cond_phi_args): Same.
11145
11146 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11147 Sebastian Pop <s.pop@samsung.com>
11148
11149 Revert commit r229783.
11150 * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
11151 Remove use of parameter_rename_map.
11152 (copy_def): Remove.
11153 (copy_internal_parameters): Remove.
11154 (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
11155 * sese.c (new_sese_info): Do not initialize parameter_rename_map.
11156 (free_sese_info): Do not free parameter_rename_map.
11157 (set_rename): Do not use parameter_rename_map.
11158 (rename_uses): Update call to set_rename.
11159 (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
11160 * sese.h (parameter_rename_map_t): Remove.
11161 (struct sese_info_t): Remove field parameter_rename_map.
11162
11163 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11164 Sebastian Pop <s.pop@samsung.com>
11165
11166 * graphite-isl-ast-to-gimple.c: Fix comment.
11167 * graphite-scop-detection.c (defined_in_loop_p): New.
11168 (canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
11169 names defined in loop.
11170
11171 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11172 Sebastian Pop <s.pop@samsung.com>
11173
11174 * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
11175 Discard unstructured if-then-else regions.
11176
11177 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11178 Sebastian Pop <s.pop@samsung.com>
11179
11180 * graphite-sese-to-poly.c (set_scop_parameter_dim): Remove.
11181 (cleanup_loop_iter_dom): Remove.
11182 (build_loop_iteration_domains): Remove.
11183 (build_scop_context): Remove.
11184 (build_scop_iteration_domain): Remove.
11185 (add_loop_constraints): New.
11186 (build_iteration_domains): New.
11187 (build_poly_scop): Call build_iteration_domains.
11188
11189 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11190 Sebastian Pop <s.pop@samsung.com>
11191
11192 * graphite-scop-detection.c
11193 (scop_detection::harmful_loop_in_region): Free dom and loops.
11194 (scop_detection::loop_body_is_valid_scop): Free bbs.
11195
11196 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11197 Sebastian Pop <s.pop@samsung.com>
11198
11199 * graphite-scop-detection.c (record_loop_in_sese): New.
11200 (gather_bbs::before_dom_children): Call record_loop_in_sese.
11201 (build_scops): Remove call to build_sese_loop_nests.
11202 * sese.c (sese_record_loop): Remove.
11203 (build_sese_loop_nests): Remove.
11204 (new_sese_info): Remove region->loops.
11205 (free_sese_info): Same.
11206 * sese.h (sese_contains_loop): Same.
11207 (build_sese_loop_nests): Remove.
11208 (sese_contains_loop): Remove.
11209
11210 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11211 Sebastian Pop <s.pop@samsung.com>
11212
11213 * graphite-scop-detection.c (loop_is_valid_scop): Renamed
11214 loop_is_valid_in_scop.
11215 (scop_detection::harmful_stmt_in_region): Renamed
11216 harmful_loop_in_region.
11217 Call loop_is_valid_in_scop.
11218
11219 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11220 Sebastian Pop <s.pop@samsung.com>
11221
11222 * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
11223 isl_ast_node_mark.
11224
11225 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11226 Sebastian Pop <s.pop@samsung.com>
11227
11228 * graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION.
11229 * graphite.h (struct poly_bb): Remove field is_reduction.
11230 (PBB_IS_REDUCTION): Remove.
11231
11232 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11233 Sebastian Pop <s.pop@samsung.com>
11234
11235 * graphite-dependences.c (constrain_domain): Add call to isl_*_coalesce.
11236 (add_pdr_constraints): Same.
11237 (scop_get_reads): Same.
11238 (scop_get_must_writes): Same.
11239 (scop_get_may_writes): Same.
11240 (scop_get_original_schedule): Same.
11241 (extend_schedule): Same.
11242 (apply_schedule_on_deps): Same.
11243 (carries_deps): Same.
11244 (compute_deps): Same.
11245 (scop_get_dependences): Same.
11246 * graphite-isl-ast-to-gimple.c
11247 (translate_isl_ast_to_gimple::generate_isl_schedule): Same.
11248 * graphite-optimize-isl.c (get_schedule_for_band): Same.
11249 (get_schedule_for_band_list): Same.
11250 (get_schedule_map): Same.
11251 (apply_schedule_map_to_scop): Same.
11252 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
11253 (build_loop_iteration_domains): Same.
11254 (add_condition_to_pbb): Same.
11255 (add_param_constraints): Same.
11256 (pdr_add_memory_accesses): Same.
11257 (pdr_add_data_dimensions): Same.
11258
11259 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
11260
11261 * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
11262 requirements.
11263
11264 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
11265
11266 * common.opt (feliminate-dwarf2-dups): Replace references to
11267 "DWARF 2" with just "DWARF".
11268 * config/ia64/ia64.opt (mdwarf2-asm): Likewise.
11269 * doc/extend.texi: Likewise.
11270 * doc/cpp.texi: Likewise.
11271 * doc/invoke.texi: Likewise.
11272 (Option Summary): Add -gdwarf to list of Debugging Options.
11273 (Debugging Options): Document -gdwarf.
11274 * doc/contrib.texi: Spell "DWARF" like that.
11275
11276 2016-01-21 Jakub Jelinek <jakub@redhat.com>
11277
11278 * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
11279 warning. Fix up formatting.
11280
11281 PR middle-end/67653
11282 * gimplify.c (gimplify_asm_expr): Warn if it is too late to
11283 attempt to mark memory input operand addressable and
11284 call prepare_gimple_addressable in that case. Don't adjust
11285 input_location for diagnostics, use error_at instead.
11286
11287 2016-01-20 Peter Bergner <bergner@vnet.ibm.com>
11288
11289 * config/rs6000/ppc-auxv.h: New file.
11290 * config/rs6000/rs6000-builtin.def (cpu_init): Add new builtin.
11291 (cpu_is): Likewise.
11292 (cpu_supports): Likewise.
11293 * config/rs6000/rs6000.c: include "ppc-auxv.h".
11294 (cpu_is_info): New variable.
11295 (cpu_supports_info): Likewise.
11296 (tcb_verification_symbol): Likewise.
11297 (cpu_builtin_p): Likewise.
11298 (cpu_expand_builtin): New function.
11299 (rs6000_expand_ternop_builtin): Add support for CPU builtin functions.
11300 (rs6000_init_builtins): Likewise.
11301 (rs6000_elf_file_end): Emit HWCAP in TCB verification symbol.
11302 * config/rs6000/rs6000.h (TLS_REGNUM): New define.
11303 * configure.ac (gcc_cv_libc_provides_hwcap_in_tcb): New test.
11304 * configure: Regenerate.
11305 * config.in: Likewise.
11306 * doc/extend.texi (PowerPC Built-in Functions): Document
11307 __builtin_cpu_init, __builtin_cpu_is and __builtin_cpu_supports.
11308
11309 2016-01-20 David Edelsohn <dje.gcc@gmail.com>
11310
11311 PR target/68609
11312 * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
11313 domain check.
11314 * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
11315 for V4SFmode.
11316
11317 2016-01-20 Richard Henderson <rth@redhat.com>
11318
11319 PR bootstrap/69343
11320 PR bootstrap/69339
11321 PR tree-opt/68964
11322 Revert:
11323 * tree.c (tm_define_builtin): New.
11324 (find_tm_vector_type): New.
11325 (build_tm_vector_builtins): New.
11326 (build_common_builtin_nodes): Call it.
11327
11328 2016-01-20 Christophe Lyon <christophe.lyon@linaro.org>
11329
11330 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
11331 (arm_fp_ok): Likewise.
11332 (arm_fp): Likewise.
11333 (arm_crypto): Likewise.
11334
11335 2016-01-20 Ilya Enkovich <enkovich.gnu@gmail.com>
11336 Richard Biener <rguenther@suse.de>
11337
11338 PR tree-optimization/69328
11339 * tree-vect-stmts.c (vect_is_simple_cond): Check compared
11340 vectors have same number of elements.
11341 (vectorizable_condition): Fix masked version recognition.
11342
11343 2016-01-20 Richard Biener <rguenther@suse.de>
11344
11345 PR tree-optimization/69345
11346 * tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function.
11347 (VN_INFO_PTR_INFO): Likewise.
11348 * tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to
11349 info when it is equal between non-dominating SSA names.
11350 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
11351 Make sure to look at original SSA infos.
11352
11353 2016-01-20 Jeff Law <law@redhat.com>
11354
11355 PR target/25114
11356 * config/m68k/predicates.md (pow2_m1_operand): New predicate
11357 extracted from ...
11358 (reg_or_pow2_m1_operand): Call pow2_m1_operand.
11359 (pc_or_label_operand): New predicate.
11360 * config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU
11361 tests for small integers that are 2^n - 1.
11362
11363 2016-01-20 Jonathan Wakely <jwakely@redhat.com>
11364
11365 * doc/invoke.texi (Options Summary): Add '.' after @xref.
11366
11367 2016-01-19 Jeff Law <law@redhat.com>
11368
11369 PR middle-end/69347
11370 * tree-ssa-threadbackwards.c
11371 (fsm_find_control_statement_thread_paths): Do not try to lookup
11372 FSM paths for SSA_NAMEs appearing in abnormal PHIs.
11373
11374 2016-01-20 Kugan Vivekanandarajah <kuganv@linaro.org>
11375
11376 * doc/lto.texi: Remove text that says only Gold has linker plugin
11377 support.
11378
11379 2016-01-19 Eric Botcazou <ebotcazou@adacore.com>
11380
11381 * dwarf2out.c (need_endianity_attribute_p): New inline predicate.
11382 (base_type_die): Add REVERSE parameter and attach DW_AT_endianity to
11383 the DIE accordingly.
11384 (modified_type_die): Add REVERSE parameter and pass it recursively,
11385 as well as to base_type_die. Adjust presence check accordingly.
11386 (base_type_for_mode): Adjust call to modified_type_die.
11387 (add_type_attribute): Add REVERSE parameter and pass it to
11388 modified_type_die.
11389 (generic_parameter_die): Adjust call to add_type_attribute.
11390 (add_scalar_info): Likewise.
11391 (add_subscript_info): Likewise.
11392 (gen_array_type_die): Likewise.
11393 (gen_descr_array_type_die): Likewise.
11394 (gen_entry_point_die): Likewise.
11395 (gen_enumeration_type_die): Likewise.
11396 (gen_formal_parameter_die): Likewise.
11397 (gen_subprogram_die): Likewise.
11398 (gen_variable_die ): Likewise.
11399 (gen_const_die): Likewise.
11400 (gen_field_die): Likewise.
11401 (gen_pointer_type_die): Likewise.
11402 (gen_reference_type_die): Likewise.
11403 (gen_ptr_to_mbr_type_die): Likewise.
11404 (gen_inheritance_die): Likewise.
11405 (gen_subroutine_type_die): Likewise.
11406 (gen_typedef_die): Likewise.
11407 (force_type_die): Adjust call to modified_type_die.
11408
11409 2016-01-19 Sandra Loosemore <sandra@codesourcery.com>
11410
11411 * doc/standards.texi: Copy-editing for grammar, markup, and sentence
11412 flow throughout the file. Fix broken link to Objective-C 2.0
11413 documentation.
11414 * doc/invoke.texi: More copy-editing; fix numerous typos and spelling
11415 errors.
11416
11417 2016-01-19 Wilco Dijkstra <wdijkstr@arm.com>
11418
11419 * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.
11420
11421 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
11422
11423 PR ipa/66223
11424 * ipa-devirt.c (is_cxa_pure_virtual_p): New function.
11425 (maybe_record_node): Record cxa_pure_virtual as the only possible
11426 target if there are not ohter candidates.
11427 (possible_polymorphic_call_target_p): Accept cxa_pure_virtual.
11428
11429 2016-01-19 Richard Biener <rguenther@suse.de>
11430
11431 * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
11432 (get_memory_order): Likewise.
11433
11434 2016-01-19 Kirill Yukhin <kirill.yukhin@intel.com>
11435
11436 * tree-vect-stmts.c (vectorizable_store): Check
11437 rhs vectype.
11438
11439 2016-01-19 David Malcolm <dmalcolm@redhat.com>
11440
11441 PR jit/68446
11442 * gcc.c (driver::decode_argv): Add call to
11443 init_opts_obstack before init_options_struct.
11444 * opts.c (init_opts_obstack): Remove idempotency.
11445 (init_options_struct): Replace call to init_opts_obstack
11446 with a gcc_assert to verify that it has already been called.
11447 * toplev.c (toplev::main): Add call to init_opts_obstack before
11448 calls to init_options_struct.
11449 (toplev::finalize): Move cleanup of opts_obstack next to
11450 cleanup of save_decoded_options, clearing the latter, and
11451 save_decoded_options_count.
11452
11453 2016-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11454
11455 PR target/69135
11456 * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
11457 attribute to unconditional. Remove %? from output template.
11458
11459 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
11460 Jiong Wang <jiong.wang@arm.com>
11461
11462 * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
11463 generated from different expand order.
11464
11465 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
11466
11467 * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
11468 Add support for CCMP costing.
11469
11470 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
11471
11472 * ccmp.c (ccmp_candidate_p): Remove integer-only restriction.
11473 * config/aarch64/aarch64.md (fccmp<mode>): New pattern.
11474 (fccmpe<mode>): Likewise.
11475 (fcmp): Rename to fcmp and globalize pattern.
11476 (fcmpe): Likewise.
11477 * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
11478 (aarch64_gen_ccmp_next): Add FP support.
11479
11480 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
11481
11482 * target.def (gen_ccmp_first): Update documentation.
11483 (gen_ccmp_next): Likewise.
11484 * doc/tm.texi (gen_ccmp_first): Update documentation.
11485 (gen_ccmp_next): Likewise.
11486 * ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of
11487 expand_ccmp_expr_1. Improve comments.
11488 * config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp.
11489 (ccmp_ior<mode>): Remove pattern.
11490 (cmp<mode>): Remove expand.
11491 (cmp): Globalize pattern.
11492 (cstorecc4): Use cc_register.
11493 (mov<mode>cc): Remove ccmp_cc_register check.
11494 * config/aarch64/aarch64.c (aarch64_get_condition_code_1):
11495 Simplify after removal of CC_DNE/* modes.
11496 (aarch64_ccmp_mode_to_code): Remove.
11497 (aarch64_print_operand): Remove 'K' case. Merge 'm' and 'M' cases.
11498 In 'k' case use integer as condition.
11499 (aarch64_nzcv_codes): Remove inverted cases.
11500 (aarch64_code_to_ccmode): Remove.
11501 (aarch64_gen_ccmp_first): Use cmp pattern directly. Return the correct
11502 comparison with CC register to be used in folowing CCMP/branch/CSEL.
11503 (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP
11504 pattern. Return the comparison with CC register. Invert conditions
11505 when bitcode is OR.
11506 * config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes.
11507 * config/aarch64/predicates.md (ccmp_cc_register): Remove.
11508
11509 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
11510
11511 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
11512 instrumented_version.
11513
11514 2016-01-19 Richard Biener <rguenther@suse.de>
11515
11516 PR tree-optimization/69336
11517 * tree-ssa-scopedtables.c (avail_expr_hash): Handle all
11518 handled components with get_ref_base_and_extent.
11519 (equal_mem_array_ref_p): Adjust.
11520
11521 2016-01-19 Jakub Jelinek <jakub@redhat.com>
11522
11523 PR debug/65779
11524 * shrink-wrap.c: Include valtrack.h.
11525 (move_insn_for_shrink_wrap): Add DEBUG argument. If
11526 MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs
11527 in between insn and where it will be moved to. Call
11528 dead_debug_insert_temp.
11529 (prepare_shrink_wrap): Adjust caller. Call dead_debug_local_init
11530 first and dead_debug_local_finish at the end.
11531 For uses and defs bitmap, handle all regs in between REGNO and
11532 END_REGNO, not just the first one.
11533
11534 2016-01-19 Richard Biener <rguenther@suse.de>
11535
11536 PR tree-optimization/69352
11537 * tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1.
11538 (equal_mem_array_ref_p): Constrain size and max size properly.
11539 Compare the reverse flag.
11540
11541 2016-01-19 Bernd Schmidt <bschmidt@redhat.com>
11542
11543 * ira.c (ira): Update regstat data if we deleted insns.
11544
11545 2016-01-19 Jakub Jelinek <jakub@redhat.com>
11546
11547 PR rtl-optimization/68955
11548 PR rtl-optimization/64557
11549 * dse.c (record_store, check_mem_read_rtx): Don't call get_addr
11550 here. Fix up formatting.
11551 * alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.
11552
11553 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
11554
11555 PR lto/69133
11556 * cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple
11557 assume that the node has body.
11558 * cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p
11559 check.
11560
11561 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
11562
11563 * lto-streamer-out.c (lto_output): Do not stream instrumentation
11564 thunks.
11565
11566 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
11567
11568 * symtab.c (symtab_node::asm_name): Do not call printable name directly.
11569 (symtab_node::name): Report name as unnamed if DECL_NAME is not set.
11570
11571 2016-01-19 Martin Jambor <mjambor@suse.cz>
11572 Martin Liska <mliska@suse.cz>
11573 Michael Matz <matz@suse.de>
11574
11575 * Makefile.in (OBJS): Add new source files.
11576 (GTFILES): Add hsa.c.
11577 * common.opt (disable_hsa): New variable.
11578 (-Whsa): New warning.
11579 * config.in (ENABLE_HSA): New.
11580 * configure.ac: Treat hsa differently from other accelerators.
11581 (OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
11582 $enable_offloading.
11583 (ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
11584 * doc/install.texi (Configuration): Document --with-hsa-runtime,
11585 --with-hsa-runtime-include, --with-hsa-runtime-lib and
11586 --with-hsa-kmt-lib.
11587 * doc/invoke.texi (-Whsa): Document.
11588 (hsa-gen-debug-stores): Likewise.
11589 * lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
11590 to invoke offload compiler for hsa acclerator.
11591 * opts.c (common_handle_option): Determine whether HSA offloading
11592 should be performed.
11593 * params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
11594 * builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
11595 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
11596 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
11597 * gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
11598 * gimple-pretty-print.c (dump_gimple_omp_for): Also handle
11599 GF_OMP_FOR_KIND_GRID_LOOP.
11600 (dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
11601 (pp_gimple_stmt_1): Likewise.
11602 * gimple-walk.c (walk_gimple_stmt): Likewise.
11603 * gimple.c (gimple_build_omp_grid_body): New function.
11604 (gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
11605 * gimple.def (GIMPLE_OMP_GRID_BODY): New.
11606 * gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
11607 GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
11608 GF_OMP_TEAMS_GRID_PHONY.
11609 (gimple_statement_omp_single_layout): Updated comments.
11610 (gimple_build_omp_grid_body): New function.
11611 (gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
11612 (gimple_omp_for_grid_phony): New function.
11613 (gimple_omp_for_set_grid_phony): Likewise.
11614 (gimple_omp_parallel_grid_phony): Likewise.
11615 (gimple_omp_parallel_set_grid_phony): Likewise.
11616 (gimple_omp_teams_grid_phony): Likewise.
11617 (gimple_omp_teams_set_grid_phony): Likewise.
11618 (gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
11619 * omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
11620 (BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
11621 (BUILT_IN_GOMP_TARGET): Updated type.
11622 * omp-low.c: Include symbol-summary.h, hsa.h and params.h.
11623 (adjust_for_condition): New function.
11624 (get_omp_for_step_from_incr): Likewise.
11625 (extract_omp_for_data): Moved parts to adjust_for_condition and
11626 get_omp_for_step_from_incr.
11627 (build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
11628 (fixup_child_record_type): Bail out if receiver_decl is NULL.
11629 (scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
11630 (scan_omp_parallel): Do not create child functions for phony
11631 constructs.
11632 (check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
11633 (scan_omp_1_op): Checking assert we are not remapping to
11634 ERROR_MARK. Also also handle GIMPLE_OMP_GRID_BODY.
11635 (parallel_needs_hsa_kernel_p): New function.
11636 (expand_parallel_call): Register apprpriate parallel child
11637 functions as HSA kernels.
11638 (grid_launch_attributes_trees): New type.
11639 (grid_attr_trees): New variable.
11640 (grid_create_kernel_launch_attr_types): New function.
11641 (grid_insert_store_range_dim): Likewise.
11642 (grid_get_kernel_launch_attributes): Likewise.
11643 (get_target_argument_identifier_1): Likewise.
11644 (get_target_argument_identifier): Likewise.
11645 (get_target_argument_value): Likewise.
11646 (push_target_argument_according_to_value): Likewise.
11647 (get_target_arguments): Likewise.
11648 (expand_omp_target): Call get_target_arguments instead of looking
11649 up for teams and thread limit.
11650 (grid_expand_omp_for_loop): New function.
11651 (grid_arg_decl_map): New type.
11652 (grid_remap_kernel_arg_accesses): New function.
11653 (grid_expand_target_kernel_body): New function.
11654 (expand_omp): Call it.
11655 (lower_omp_for): Do not emit phony constructs.
11656 (lower_omp_taskreg): Do not emit phony constructs but create for them
11657 a temporary variable receiver_decl.
11658 (lower_omp_taskreg): Do not emit phony constructs.
11659 (lower_omp_teams): Likewise.
11660 (lower_omp_grid_body): New function.
11661 (lower_omp_1): Call it.
11662 (grid_reg_assignment_to_local_var_p): New function.
11663 (grid_seq_only_contains_local_assignments): Likewise.
11664 (grid_find_single_omp_among_assignments_1): Likewise.
11665 (grid_find_single_omp_among_assignments): Likewise.
11666 (grid_find_ungridifiable_statement): Likewise.
11667 (grid_target_follows_gridifiable_pattern): Likewise.
11668 (grid_remap_prebody_decls): Likewise.
11669 (grid_copy_leading_local_assignments): Likewise.
11670 (grid_process_kernel_body_copy): Likewise.
11671 (grid_attempt_target_gridification): Likewise.
11672 (grid_gridify_all_targets_stmt): Likewise.
11673 (grid_gridify_all_targets): Likewise.
11674 (execute_lower_omp): Call grid_gridify_all_targets.
11675 (make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
11676 * tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
11677 (tree_omp_clause): Added union field dimension.
11678 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
11679 * tree.c (omp_clause_num_ops): Added number of arguments of
11680 OMP_CLAUSE__GRIDDIM_.
11681 (omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
11682 (walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
11683 * tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
11684 (OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
11685 (OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
11686 (OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
11687 * passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
11688 * tree-pass.h (make_pass_gen_hsail): Declare.
11689 (make_pass_ipa_hsa): Likewise.
11690 * ipa-hsa.c: New file.
11691 * lto-section-in.c (lto_section_name): Add hsa section name.
11692 * lto-streamer.h (lto_section_type): Add hsa section.
11693 * timevar.def (TV_IPA_HSA): New.
11694 * hsa-brig-format.h: New file.
11695 * hsa-brig.c: New file.
11696 * hsa-dump.c: Likewise.
11697 * hsa-gen.c: Likewise.
11698 * hsa.c: Likewise.
11699 * hsa.h: Likewise.
11700 * toplev.c (compile_file): Call hsa_output_brig.
11701 * hsa-regalloc.c: New file.
11702
11703 2016-01-18 Jeff Law <law@redhat.com>
11704
11705 PR tree-optimization/69320
11706 * tree-ssa-dom.c (record_edge_info): For comparisons against a boolean
11707 ranged object, do nothing if the RHS constant is not [0..1].
11708 (optimize_stmt): Comparing a boolean ranged object against a
11709 constant outside [0..1] results in a compile-time constant.
11710
11711 * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
11712 test.
11713
11714 2016-01-18 Sandra Loosemore <sandra@codesourcery.com>
11715
11716 * doc/invoke.texi (Invoking GCC): Add new section to menu.
11717 (Option Summary): Update to reflect new section and moved options.
11718 (C++ Dialect Options): Move -fstats to new section.
11719 (Debugging Options): Move all dump, statistics, and other GCC
11720 developer options to new section. Rewrite section introduction
11721 and re-order remaining options to put the more basic ones first.
11722 (Optimization Options): Move -fira-verbose and -flto-report* to
11723 new section.
11724 (Developer Options): New section incorporating moved options.
11725 * doc/cppopts.texi (-dM): Update cross-reference.
11726
11727 2016-01-18 Richard Henderson <rth@redhat.com>
11728
11729 PR target/69176
11730 * config/aarch64/aarch64.md (add<GPI>3): Move long immediate
11731 operands to pseudo only if CSE is expected. Split long immediate
11732 operands only after reload, and for the stack pointer.
11733 (*add<GPI>3_pluslong): Remove.
11734 (*addsi3_aarch64, *adddi3_aarch64): Merge into...
11735 (*add<GPI>3_aarch64): ... here. Add r/rk/Upl alternative.
11736 (*addsi3_aarch64_uxtw): Add r/rk/Upl alternative.
11737 (*add<GPI>3 peepholes): New.
11738 (*add<GPI>3 splitters): New.
11739 * config/aarch64/constraints.md (Upl): New.
11740 * config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New.
11741
11742 2016-01-18 Richard Biener <rguenther@suse.de>
11743
11744 PR tree-optimization/69297
11745 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
11746 stmt at most once.
11747 (vect_bb_vectorization_profitable_p): Clear visited flag again.
11748
11749 2016-01-18 Yuri Rumyantsev <ysrumyan@gmail.com>
11750
11751 PR middle-end/68542
11752 * fold-const.c (fold_binary_op_with_conditional_arg): Bail out for case
11753 of mixind vector and scalar types.
11754 (fold_relational_const): Add handling of vector
11755 comparison with boolean result.
11756 * tree-cfg.c (verify_gimple_comparison): Add argument CODE, allow
11757 comparison of vector operands with boolean result for EQ/NE only.
11758 (verify_gimple_assign_binary): Adjust call for verify_gimple_comparison.
11759 (verify_gimple_cond): Likewise.
11760 * tree-vrp.c (extract_code_and_val_from_cond_with_ops): Modify check on
11761 valid type of VAL.
11762
11763 2016-01-18 Joseph Myers <joseph@codesourcery.com>
11764
11765 * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
11766 !TARGET_OCTEON.
11767
11768 2016-01-18 Richard Biener <rguenther@suse.de>
11769
11770 PR middle-end/69308
11771 * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.
11772
11773 2016-01-18 Tom de Vries <tom@codesourcery.com>
11774
11775 * passes.def: Add pass_parallelize_loops to pass_oacc_kernels.
11776
11777 2016-01-18 Tom de Vries <tom@codesourcery.com>
11778
11779 * omp-low.c (set_oacc_fn_attrib): Make extern.
11780 * omp-low.h (set_oacc_fn_attrib): Declare.
11781 * tree-parloops.c (struct reduction_info): Add reduc_addr field.
11782 (create_call_for_reduction_1): Handle case that reduc_addr is non-NULL.
11783 (create_parallel_loop, gen_parallel_loop, try_create_reduction_list):
11784 Add and handle function parameter oacc_kernels_p.
11785 (find_reduc_addr, get_omp_data_i_param): New function.
11786 (ref_conflicts_with_region, oacc_entry_exit_ok_1)
11787 (oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function.
11788 (parallelize_loops): Add and handle function parameter oacc_kernels_p.
11789 Calculate dominance info. Skip loops that are not in a kernels region
11790 in oacc_kernels_p mode. Skip inner loops of parallelized loops.
11791 (pass_parallelize_loops::execute): Call parallelize_loops with
11792 oacc_kernels_p argument.
11793 (pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param):
11794 New member function.
11795 (pass_parallelize_loops::bool oacc_kernels_p): New member var.
11796 * passes.def: Add argument to pass_parallelize_loops instantation.
11797
11798 2016-01-18 Tom de Vries <tom@codesourcery.com>
11799
11800 * tree-parloops.c (pass_parallelize_loops::execute): Allow
11801 pass_parallelize_loops to be run outside the loop pipeline.
11802
11803 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
11804
11805 * tree-scalar-evolution.c (follow_copies_to_constant): New.
11806 (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
11807
11808 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
11809
11810 PR target/63679
11811 * tree-ssa-scopedtables.c (avail_expr_hash): Hash MEM_REF and ARRAY_REF
11812 using get_ref_base_and_extent.
11813 (equal_mem_array_ref_p): New.
11814 (hashable_expr_equal_p): Add call to previous.
11815
11816 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
11817
11818 PR target/63679
11819 * tree-sra.c (disqualified_constants, constant_decl_p): New.
11820 (sra_initialize): Allocate disqualified_constants.
11821 (sra_deinitialize): Free disqualified_constants.
11822 (disqualify_candidate): Update disqualified_constants when appropriate.
11823 (create_access): Scan for constant-pool entries as we go along.
11824 (scalarizable_type_p): Add check against type_contains_placeholder_p.
11825 (maybe_add_sra_candidate): Allow constant-pool entries.
11826 (load_assign_lhs_subreplacements): Bind debug for constant pool vars.
11827 (initialize_constant_pool_replacements): New.
11828 (sra_modify_assign): Avoid mangling assignments created by previous,
11829 and don't generate writes into constant pool.
11830 (sra_modify_function_body): Call initialize_constant_pool_replacements.
11831
11832 2016-01-18 Ilya Enkovich <enkovich.gnu@gmail.com>
11833
11834 * config/i386/i386.c (scalar_to_vector_candidate_p): Support
11835 andnot instruction.
11836 (scalar_chain::convert_op): Likewise.
11837 * config/i386/i386.md (*andndi3_doubleword): New.
11838
11839 2016-01-18 Richard Biener <rguenther@suse.de>
11840
11841 PR tree-optimization/69170
11842 * tree-vect-slp.c (vect_build_slp_tree): Verify we are not
11843 building a vector from scalar results of a pattern stmt.
11844
11845 2016-01-18 Jakub Jelinek <jakub@redhat.com>
11846
11847 * haifa-sched.c (autopref_multipass_init): Work around
11848 -Wmaybe-uninitialized warning.
11849
11850 2016-01-18 Thomas Preud'homme <thomas.preudhomme@arm.com>
11851
11852 * config/arm/arm.c (thumb1_reorg): Check that the comparison is
11853 against the constant 0.
11854
11855 2016-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11856
11857 PR tree-optimization/68799
11858 * gimple-ssa-strength-reduction.c (create_phi_basis): Directly
11859 look up phi candidates in the statement-candidate map.
11860 (phi_add_costs): Likewise.
11861 (record_phi_increments): Likewise.
11862 (phi_incr_cost): Likewise.
11863 (ncd_with_phi): Likewise.
11864 (all_phi_incrs_profitable): Likewise.
11865
11866 2016-01-17 Jakub Jelinek <jakub@redhat.com>
11867
11868 * omp-low.c (mark_loops_in_oacc_kernels_region): Work around
11869 -Wmaybe-uninitialized warning.
11870
11871 2016-01-16 Sandra Loosemore <sandra@codesourcery.com>
11872
11873 * doc/invoke.texi (Invoking GCC): Add new section to menu.
11874 (Option Summary): Update to reflect new section and moved options.
11875 (C++ Dialect Options): Move -fvtable-verify and related options.
11876 (Debugging Options): Move Sanitizer, Pointer Bounds Checker,
11877 and profiling-related options.
11878 (Optimization Options): Move profile generation options and
11879 -fstack-protector and related options.
11880 (Instrumentation Options): New section incorporating moved options.
11881 (Code Generation Options): Move -finstrument-functions and
11882 related options, -fstack-check, -fstack-limit*, and -fbounds-check.
11883
11884 2016-01-16 Tom de Vries <tom@codesourcery.com>
11885
11886 * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.
11887
11888 2016-01-16 Tom de Vries <tom@codesourcery.com>
11889
11890 * omp-low.c (expand_omp_atomic_fetch_op): Release defs of update stmt.
11891
11892 2016-01-16 Richard Sandiford <richard.sandiford@arm.com>
11893
11894 * hash-table.h (hash_table::empty): Turn into an inline wrapper
11895 that checks whether the table is already empty. Rename the
11896 original implementation to...
11897 (hash_table::empty_slot): ...this new private function.
11898
11899 2016-01-15 David Malcolm <dmalcolm@redhat.com>
11900
11901 PR diagnostic/68899
11902 * diagnostic-show-locus.c (layout::print_source_line): Move x
11903 offset of line until after call to
11904 get_line_width_without_trailing_whitespace.
11905
11906 2016-01-15 Jeff Law <law@redhat.com>
11907
11908 PR tree-optimization/69270
11909 * tree-ssanames.c (ssa_name_has_boolean_range): Moved here from
11910 tree-ssa-dom.c. Improve test for [0..1] ranve from VRP.
11911 * tree-ssa-dom.c (ssa_name_has_boolean_range): Remove.
11912 * tree-ssanames.h (ssa_name_has_boolean_range): Prototype.
11913 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
11914 ssa_name_has_boolean_range and constant_boolean_node.
11915
11916 2016-01-15 Vladimir Makarov <vmakarov@redhat.com>
11917
11918 PR rtl-optimization/69030
11919 * lra-spills.c (remove_pseudos): Check nrefs and make the function
11920 returning bool.
11921 (spill_pseudos): Delete debug insn for dead pseudo.
11922 (lra_spill): Initiate spill_hard_reg and slots memory separately.
11923
11924 2016-01-15 Jiong Wang <jiong.wang@arm.com>
11925
11926 * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
11927 New.
11928 (TYPES_UNOPUS): Likewise.
11929 * config/aarch64/aarch64-simd-builtins.def (lbtruncuv2sf): Correct
11930 builtin type, from UNOP to UNOPUS.
11931 (lbtruncuv4sf): Likewise.
11932 (lbtruncuv2df): Likewise.
11933 (lrounduv2sf): Likewise.
11934 (lrounduv4sf): Likewise.
11935 (lrounduv2df): Likewise.
11936 (lroundusf): Likewise.
11937 (lroundusf): Likewise.
11938 (lceiluv2sf): Likewise.
11939 (lceiluv4sf): Likewise.
11940 (lceiluv2df): Likewise.
11941 (lceilusf): Likewise.
11942 (lceiludf): Likewise.
11943 (lflooruv2sf): Likewise.
11944 (lflooruv4sf): Likewise.
11945 (lflooruv2df): Likewise.
11946 (lfloorusf): Likewise.
11947 (lfloorudf): Likewise.
11948 (lfrintnuv2sf): Likewise.
11949 (lfrintnuv4sf): Likewise.
11950 (lfrintnuv2df): Likewise.
11951 (lfrintnusf): Likewise.
11952 (lfrintnudf): Likewise.
11953 * config/aarch64/arm_neon.h (vcvt_u32_f32): Remove unncessary type
11954 conversion.
11955 (vcvtq_u32_f32): Likewise.
11956 (vcvtq_u64_f64): Likewise.
11957 (vcvta_u32_f32): Likewise.
11958 (vcvtaq_u32_f32): Likewise.
11959 (vcvtaq_u64_f64): Likewise.
11960 (vcvtm_u32_f32): Likewise.
11961 (vcvtmq_u32_f32): Likewise.
11962 (vcvtmq_u64_f64): Likewise.
11963 (vcvtn_u32_f32): Likwise.
11964 (vcvtnq_u32_f32): Likewise.
11965 (vcvtnq_u64_f64): Likewise.
11966 (vcvtp_u32_f32): Likewise.
11967 (vcvtpq_u32_f32): Likewise.
11968 (vcvtpq_u64_f64): Likewise.
11969 (vcvtmd_u64_f64): Likewise.
11970 (vcvtms_u32_f32): Likewise.
11971 (vcvtad_u64_f64): Likewise.
11972 (vcvtas_u32_f32): Likewise.
11973 (vcvtnd_u64_f64): Likewise.
11974 (vcvtns_u32_f32): Likewise.
11975 (vcvtpd_u64_f64): Likewise.
11976 (vcvtps_u32_f32): Likewise.
11977
11978 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11979
11980 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
11981 CSEL of zero_extended registers.
11982
11983 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11984
11985 * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
11986 Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
11987
11988 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11989
11990 * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
11991 false when argument string is not found in the attributes table
11992 at all.
11993
11994 2016-01-15 David Edelsohn <dje.gcc@gmail.com>
11995
11996 PR target/68609
11997 * config/rs6000/rs6000.c (rs6000_emit_msub): Delete.
11998 (rs6000_emit_swsqrt): Convert to Goldschmidt's Algorithm
11999 * config/rs6000/rs6000.md (sqrt<mode>2): Limit swsqrt to high
12000 precision estimate.
12001
12002 2016-01-15 Richard Biener <rguenther@suse.de>
12003
12004 PR tree-optimization/66856
12005 * tree-vect-loop.c (vect_transform_loop): Free SLP instances here.
12006 * tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count.
12007 (vect_create_new_slp_node): Increment stmt reference count.
12008 (vect_get_and_check_slp_defs): Make sure stmts are nor already in
12009 an SLP tree before swapping operands.
12010 (vect_build_slp_tree): Likewise.
12011 (destroy_bb_vec_info): Free stmt info after SLP instances.
12012 * tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count.
12013 * tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field.
12014 (STMT_VINFO_NUM_SLP_USES): New macro.
12015
12016 2016-01-15 Richard Biener <rguenther@suse.de>
12017
12018 PR debug/69137
12019 * dwarf2out.c (add_linkage_name_raw): New function split out from ...
12020 (add_linkage_name): ... here.
12021 (gen_typedef_die): Use add_linkage_name_raw instead of
12022 add_linkage_attr to delay DECL_ASSEMBLER_NAME computation
12023 if necessary.
12024
12025 2016-01-15 Cesar Philippidis <cesar@codesourcery.com>
12026
12027 * gimplify.c (oacc_default_clause): Decode reference and pointer
12028 types for both kernels and parallel regions.
12029
12030 2016-01-15 Richard Sandiford <richard.sandiford@arm.com>
12031
12032 PR middle-end/69246
12033 * calls.c (emit_call_1): Force n_popped to zero for sibcalls.
12034
12035 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
12036
12037 * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
12038 (convert_scalars_to_vector): Likewise.
12039
12040 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
12041
12042 * doc/extend.texi (Type Traits): Fix grammar.
12043
12044 2016-01-15 Martin Jambor <mjambor@suse.cz>
12045
12046 * tree-inline.c (remap_decl): Use existing dclarations if
12047 remapping a type and prevent_decl_creation_for_types.
12048 (replace_locals_stmt): Do an initial remapping of non-VLA typed
12049 decls first. Do real remapping with
12050 prevent_decl_creation_for_types set.
12051 * tree-inline.h (copy_body_data): New field
12052 prevent_decl_creation_for_types, moved remap_var_for_cilk to avoid
12053 padding.
12054
12055 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
12056
12057 * config/s390/s390.opt (mmvcle): More verbose help text.
12058
12059 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
12060
12061 * config/s390/s390.opt: Add period to -mzvector option text.
12062
12063 2016-01-15 Richard Biener <rguenther@suse.de>
12064
12065 PR tree-optimization/68961
12066 * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
12067 of invariants in stores again.
12068
12069 2016-01-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
12070
12071 * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.
12072
12073 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
12074
12075 * config/i386/i386.c (ix86_expand_branch): Don't split
12076 DI mode xor instruction to SI mode.
12077
12078 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
12079
12080 PR ipa/68148
12081 * ipa-icf.c (sem_function::merge): Virtual functions may become
12082 reachable even if they address is not taken and there are no
12083 idrect calls.
12084
12085 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
12086
12087 * lto-streamer-out.c (subtract_estimated_size): New function.
12088 (get_symbol_initial_value): Use it.
12089
12090 2016-01-15 Christian Bruel <christian.bruel@st.com>
12091
12092 PR target/65837
12093 * config/arm/arm-builtins.c (ARM_BUILTIN_CRYPTO_BASE): New enum tag.
12094 (arm_init_neon_builtins_internal): Rename arm_init_neon_builtins,
12095 (arm_init_crypto_builtins_internal): Rename arm_init_crypto_builtins.
12096 use add_builtin_function_ext_scope instead of add_builtin_function.
12097 (neon_set_p, neon_crypto_set_p): Remove.
12098 (arm_init_builtins): Always call arm_init_neon_builtins and
12099 arm_init_crypto_builtins.
12100 (arm_expand_builtin): Check that builtins are allowed for the arch.
12101 * config/arm/arm-protos.h (arm_init_neon_builtins): Remove prototype.
12102 * config/arm/arm.c (arm_valid_target_attribute_tree): Remove
12103 arm_init_neon_builtins call.
12104
12105 2016-01-15 Richard Biener <rguenther@suse.de>
12106
12107 PR tree-optimization/69117
12108 * tree-ssa-sccvn.h (struct vn_ssa_aux): Add info member.
12109 * tree-ssa-sccvn.c (set_ssa_val_to): Save and adjust SSA name info
12110 of the leader conservatively.
12111 (free_scc_vn): Restore original SSA name infos.
12112
12113 2016-01-14 Jeff Law <law@redhat.com>
12114
12115 PR tree-optimization/69270
12116 * tree-ssa-dom.c (ssa_name_has_boolean_range): If the type has a
12117 single bit of precision, verify it's also unsigned.
12118 (record_edge_info): Use constant_boolean_node rather than fold_convert
12119 to convert boolean_true/boolean_false to the right type.
12120
12121 2016-01-14 Richard Henderson <rth@redhat.com>
12122
12123 PR rtl-opt/69014
12124 * loop-doloop.c (record_reg_sets): New.
12125 (doloop_optimize): Reject the transform if the sequence
12126 clobbers registers live at the end of the loop block.
12127 (doloop_optimize_loops): Enable df_live if needed.
12128
12129 2016-01-14 Michael Meissner <meissner@linux.vnet.ibm.com>
12130
12131 * config/rs6000/rs6000-builtin.def: Revert 2016-01-13 change.
12132 * config/rs6000/rs6000.c: Likewise.
12133 * config/rs6000/rs6000.h: Likewise.
12134 * config/rs6000/rs6000.md: Likewise.
12135 * doc/extend.texi: Likewsie.
12136
12137 2016-01-14 Jeff Law <law@redhat.com>
12138
12139 * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
12140 typo.
12141
12142 2016-01-14 Richard Henderson <rth@redhat.com>
12143
12144 PR c/69272
12145 PR tree-opt/68964
12146 * trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size.
12147 * tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p
12148 instead of builtin_decl_declared_p to test for declaration.
12149
12150 2016-01-14 Nicklas Bo Jensen <nbjensen@gmail.com>
12151
12152 * doc/loop.texi (Loop Analysis and Representation): Document
12153 loop_depth function.
12154
12155 2016-01-14 Tom de Vries <tom@codesourcery.com>
12156
12157 PR tree-optimization/68773
12158 * omp-low.c (expand_omp_target): Don't set force_output.
12159 * varpool.c (varpool_node::get_create): Same.
12160 * lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and
12161 offload_funcs with force_output.
12162
12163 2016-01-14 Jakub Jelinek <jakub@redhat.com>
12164
12165 PR debug/69244
12166 * lra-eliminations.c (move_plus_up): Don't change anything if either
12167 the outer or inner subreg mode is not MODE_INT.
12168 * dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is
12169 integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards.
12170
12171 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
12172
12173 * doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m},
12174 reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m},
12175 reduc_uplus_@var{m}): Remove.
12176 * expr.c (expand_expr_real_2): Remove expansion path for
12177 reduc_[us](min|max|plus) optabs.
12178 * optabs-tree.c (scalar_reduc_to_vector): Remove.
12179 * optabs-tree.h (scalar_reduc_to_vector): Remove.
12180 * optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab,
12181 reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove.
12182 * tree-vect-loop.c (vectorizable_reduction): Remove test for
12183 reduc_[us](min|max|plus) optabs.
12184
12185 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
12186
12187 * config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove.
12188 (reduc_plus_scal_v2sf): New.
12189 (reduc_smax_v2sf): Rename to...
12190 (reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract.
12191 (reduc_smin_v2sf): Rename to...
12192 (reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract.
12193
12194 2016-01-14 Jan Hubicka <hubicka@ucw.cz>
12195
12196 * alias.c (compare_base_symbol_refs): New function.
12197 (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
12198 it.
12199
12200 2016-01-14 Jakub Jelinek <jakub@redhat.com>
12201
12202 PR middle-end/68146
12203 PR tree-optimization/69155
12204 * tree-complex.c: Include cfganal.h.
12205 (phis_to_revisit): New variable.
12206 (extract_component): Add phiarg_p argument. Assert that returned
12207 SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true.
12208 (update_phi_components): Partly rewrite to use loop over real/imag
12209 components instead of code duplication. If extract_component returns
12210 SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or
12211 create_tmp_reg into the PHI node instead, and mention the phi triplet
12212 in phis_to_revisit.
12213 (tree_lower_complex): Walk bbs in rpo order. Adjust phis recorded
12214 in phis_to_revisit at the end.
12215
12216 2016-01-14 Richard Biener <rguenther@suse.de>
12217
12218 PR tree-optimization/68060
12219 * tree-vect-loop.c (vect_is_simple_reduction): Check the
12220 outer loop reduction is only used in the inner loop before
12221 detecting a double reduction.
12222
12223 2016-01-14 Jakub Jelinek <jakub@redhat.com>
12224
12225 PR target/68269
12226 * combine.c (expand_field_assignment): Punt if compute_mode is
12227 unsupported scalar mode.
12228
12229 2016-01-14 Richard Biener <rguenther@suse.de>
12230
12231 PR tree-optimization/66856
12232 * tree-vect-slp.c (vect_build_slp_tree): Refactor to build
12233 SLP node only if it built successfully.
12234 (vect_analyze_slp_instance): Adjust.
12235
12236 2016-01-14 Jeff Law <law@redhat.com>
12237
12238 PR tree-optimization/69270
12239 * tree-ssa-dom.c (ssa_name_has_boolean_range): New function.
12240 (record_edge_info): Use it. Convert boolean_{true,false}_node
12241 to the type of op0.
12242
12243 2016-01-13 Jan Hubicka <hubicka@ucw.cz>
12244
12245 PR ipa/66487
12246 * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
12247 use block_ultimate_origin
12248 (noncall-stmt_may_be_vtbl_ptr_store): Likewise.
12249
12250 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
12251
12252 * doc/invoke.texi (Submodel Options): Rename section to
12253 "Machine-Dependent Options" to better reflect its content.
12254 Rewrite introductory text to remove archaic CPU names.
12255 Update references.
12256
12257 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
12258
12259 * doc/invoke.texi (Code Gen Options): Move section up in file,
12260 before target-specific options. Update menu and option summary
12261 to reflect the new section ordering.
12262
12263 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
12264
12265 * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
12266 (C++ Dialect Options): Add cross-reference to -std option.
12267 * doc/standards.texi (C++ Language): Document C++14 support.
12268
12269 2016-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
12270
12271 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
12272 for pack/unpack functions for __ibm128.
12273 (PACK_IF): Likewise.
12274 (UNPACK_IF): Likewise.
12275
12276 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
12277 support for __ibm128 pack/unpack functions.
12278 (rs6000_invalid_builtin): Likewise.
12279 (rs6000_init_builtins): Likewise.
12280 (rs6000_opt_masks): Likewise.
12281
12282 * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
12283 (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
12284 functions
12285 (RS6000_BTM_COMMON): Likewise.
12286
12287 * config/rs6000/rs6000.md (f128_vsx): New mode attribute.
12288 (unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
12289 disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
12290 128-bit floating point. Add support for the double values to be
12291 in Altivec registers for TF/IF packing and unpacking, but restrict
12292 TD packing sub-fields to be FPR registers. Don't allow overlapped
12293 register support for packing. Allow pack inputs to be memory
12294 locations. Don't build generator functions for unpack<mode>_dm
12295 and unpack<mode>_nodm.
12296 (unpack<mode>_dm): Likewise.
12297 (unpack<mode>_nodm): Likewise.
12298 (pack<mode>): Likewise.
12299
12300 * config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
12301 built-in functions to pack/unpack explicit __ibm128 values.
12302 (__builtin_unpack_ibm128): Likewise.
12303
12304 * doc/extend.texi (PowerPC Built-in Functions): Document
12305 __builtin_pack_ibm128 and __builtin_unpack_ibm128.
12306
12307 2016-01-13 Bernd Schmidt <bschmidt@redhat.com>
12308
12309 PR c/66208
12310 * c-common.c (check_function_nonnull): Remove unnecessary declaration.
12311 Add new arg loc and pass it down as context.
12312 (check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
12313 to the location to use for the warning.
12314 (check_function_arguments): New arg loc. All callers changed. Pass
12315 it to check_function_nonnull.
12316 * c-common.h (check_function_arguments): Adjust declaration.
12317
12318 2016-01-13 Jakub Jelinek <jakub@redhat.com>
12319
12320 PR tree-optimization/69156
12321 * gimple.c (validate_type): Removed.
12322 (gimple_builtin_call_types_compatible_p): Use
12323 useless_type_conversion_p instead of validate_type.
12324 * value-prof.c (gimple_stringop_fixed_value): Fold
12325 icall_size to correct type.
12326
12327 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
12328
12329 * doc/extend.texi (__atomic Builtins): Clarify compare_exchange
12330 effects.
12331
12332 2016-01-13 Richard Henderson <rth@redhat.com>
12333
12334 PR tree-opt/68964
12335 * target.def (builtin_tm_load, builtin_tm_store): Remove.
12336 * config/i386/i386.c (ix86_builtin_tm_load): Remove.
12337 (ix86_builtin_tm_store): Remove.
12338 (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
12339 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
12340 * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
12341 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
12342 * doc/tm.texi: Rebuild.
12343
12344 * gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New.
12345 (BUILT_IN_TM_MEMCPY_RTWN): New.
12346 * trans-mem.c (tm_log_emit_stmt): Rearrange code for better
12347 fallback from vector to integer helpers.
12348 (build_tm_load): Handle vector types directly, instead of
12349 via target hook.
12350 (build_tm_store): Likewise.
12351 (expand_assign_tm): Prepare for register types not handled by
12352 the above. Copy them to memory and use memcpy.
12353 * tree.c (tm_define_builtin): New.
12354 (find_tm_vector_type): New.
12355 (build_tm_vector_builtins): New.
12356 (build_common_builtin_nodes): Call it.
12357
12358 2016-01-13 Uros Bizjak <ubizjak@gmail.com>
12359
12360 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
12361 TARGET_SSE_MATH without TARGET_SSE2. Rewrite.
12362
12363 2016-01-13 Tom de Vries <tom@codesourcery.com>
12364
12365 PR tree-optimization/69169
12366 * tree-ssa-structalias.c (create_variable_info_for_1): Add and handle
12367 handled_struct_type param.
12368 (create_variable_info_for, intra_create_variable_infos): Call
12369 create_variable_info_for_1 with extra arg.
12370
12371 2016-01-13 Yvan Roux <yvan.roux@linaro.org>
12372
12373 * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
12374 and "armv8.1-a+crc" entries.
12375
12376 2016-01-13 Alexander Fomin <alexander.fomin@intel.com>
12377
12378 PR target/69228
12379 * config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
12380 Change first operand predicate from register_or_constm1_operand
12381 to register_operand.
12382 (define_expand "avx512pf_gatherpf<mode>df"): Likewise.
12383 (define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
12384 (define_expand "avx512pf_scatterpf<mode>df"): Likewise.
12385 (define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
12386 (define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
12387 (define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
12388 (define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
12389 * config/i386/i386.c (ix86_expand_builtin): Remove first operand
12390 comparison with constm1_rtx from vec_prefetch_gen part.
12391
12392 2016-01-13 Richard Biener <rguenther@suse.de>
12393
12394 PR tree-optimization/69013
12395 * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
12396 Exchange assert for a test.
12397
12398 2016-01-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
12399
12400 PR target/69247
12401 * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.
12402
12403 2016-01-13 Richard Biener <rguenther@suse.de>
12404
12405 PR tree-optimization/69242
12406 * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
12407 assert with a check.
12408
12409 2016-01-13 Richard Biener <rguenther@suse.de>
12410
12411 PR tree-optimization/69186
12412 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
12413 Properly guard vect_update_misalignment_for_peel call.
12414
12415 2016-01-12 Jeff Law <law@redhat.com>
12416
12417 PR tree-optimization/pr67755
12418 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
12419 "need_profile_correction".
12420 (thread_block_1): Initialize new field to false by default. If we
12421 have multiple thread paths through a common joiner to different
12422 final targets, then set new field to true.
12423 (compute_path_counts): Only do count adjustment when it's really
12424 needed.
12425
12426 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
12427
12428 * doc/invoke.texi (Spec Files): Move section down in file, past
12429 all command-line option descriptions.
12430
12431 2016-01-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12432
12433 PR middle-end/54809
12434 * doc/gty.texi: Remove documentation of mark_hook.
12435 * gengtype.c (struct write_types_data): Remove code to support
12436 mark_hook attribute.
12437 (walk_type): Likewise.
12438 (write_func_for_structure): Likewise.
12439
12440 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
12441
12442 * doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to
12443 Directory Options, and -specs= to Overall Options.
12444 (Overall Options): Adjust similarly. Reorder to group related
12445 options together. Make -specs= cross-reference the spec file details.
12446 (Directory Options): Adjust similarly.
12447
12448 2016-01-12 Jeff Law <law@redhat.com>
12449
12450 * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
12451
12452 2016-01-12 Olivier Hainque <hainque@adacore.com>
12453
12454 * gcc.c (spec_undefvar_allowed): New global.
12455 (process_command): Set to true when running for --version or --help,
12456 alone or together.
12457 (getenv_spec_function): When the variable is not defined, use the
12458 variable name as the variable value if we're allowed not to issue
12459 a fatal error.
12460
12461 2016-01-12 Bin Cheng <bin.cheng@arm.com>
12462
12463 PR tree-optimization/68911
12464 * tree-vrp.c (adjust_range_with_scev): Check overflow in range
12465 information computed for expression "init + nit * step".
12466
12467 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
12468
12469 * doc/invoke.texi (Invoking GCC): Copy-edit. Incorporate information
12470 about name of GCC executable. Remove deleted node from menu.
12471 (Directory Options) <-B>: Remove cross-reference to deleted node.
12472 (Target Options): Delete section.
12473
12474 2016-01-12 Christian Bruel <christian.bruel@st.com>
12475
12476 PR target/69180
12477 * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
12478 for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.
12479
12480 2016-01-12 Jakub Jelinek <jakub@redhat.com>
12481
12482 PR target/69198
12483 * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
12484 aligned_mem is properly set for AVX512-VL floating point masked
12485 stores.
12486
12487 PR target/69175
12488 * ifcvt.c (cond_exec_process_if_block): When removing the last
12489 insn from then_bb, remove also any possible barriers that follow it.
12490
12491 2016-01-12 H.J. Lu <hongjiu.lu@intel.com>
12492
12493 PR target/68456
12494 PR target/69226
12495 * config/i386/iamcu.h (SIZE_TYPE): New macro.
12496 (PTRDIFF_TYPE): Likewise.
12497 (WCHAR_TYPE): Likewise.
12498 (WCHAR_TYPE_SIZE): Likewise.
12499 (STDINT_LONG32): Likewise.
12500
12501 2016-01-12 Richard Biener <rguenther@suse.de>
12502
12503 PR tree-optimization/69053
12504 * tree-vect-loop.c (get_initial_def_for_reduction): Properly
12505 convert initial value for cond reductions.
12506
12507 2016-01-12 Richard Biener <rguenther@suse.de>
12508
12509 PR tree-optimization/69007
12510 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
12511 widen_sum after dot_prod and sad.
12512
12513 2016-01-12 Richard Biener <rguenther@suse.de>
12514
12515 PR tree-optimization/69168
12516 * tree-vect-loop.c (vect_analyze_loop_2): Reset both main and
12517 pattern stmt SLP type.
12518 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may
12519 end up unused so cope with that case.
12520
12521 2016-01-12 Richard Biener <rguenther@suse.de>
12522
12523 PR tree-optimization/69157
12524 * tree-vect-stmts.c (vectorizable_mask_load_store): Check
12525 stmts def type only during analyze phase.
12526 (vectorizable_call): Likewise.
12527 (vectorizable_simd_clone_call): Likewise.
12528 (vectorizable_conversion): Likewise.
12529 (vectorizable_assignment): Likewise.
12530 (vectorizable_shift): Likewise.
12531 (vectorizable_operation): Likewise.
12532 (vectorizable_store): Likewise.
12533 (vectorizable_load): Likewise.
12534
12535 2016-01-12 Richard Biener <rguenther@suse.de>
12536
12537 PR tree-optimization/69174
12538 * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
12539 space.
12540 (vectorizable_load): Properly compute the number of loads needed
12541 for permuted strided SLP loads and do not spuriously assign
12542 to SLP_TREE_VEC_STMTS.
12543
12544 2016-01-12 Andris Pavenis <andris.pavenis@iki.fi>
12545
12546 * config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2
12547 (TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive
12548 (MD_EXEC_PREFIX): Remove.
12549 (MD_STARTFILE_PREFIX) Removee.
12550 (FILE_NAME_ABSOLUTE_P): Remove.
12551 (CPP_SPEC): Do not read macros from sys/version.h.
12552 (LINK_COMMAND_SPEC): Remove.
12553 (LOCAL_INCLUDE_DIR): Remove.
12554 (TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section
12555 (TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix.
12556 (POST_LINK_SPEC): Define to invoke stubify after linker
12557 (LIBSTDCXX): Remove define
12558 (DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map.
12559 (DEFAULT_PCC_STRUCT_RETURN): Define to 1.
12560 (SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210.
12561 (SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message.
12562 (SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info.
12563 (IX86_MAYBE_NO_LIBGCC_TFMODE): Remove.
12564 (i386_djgpp_asm_named_section): Add propotype of new procedure
12565
12566 * config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define.
12567 (MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h).
12568 (STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX
12569 in config/i386/djgpp.h).
12570 (STANDARD_STARTFILE_PREFIX_2): Define identical to
12571 STANDARD_STARTFILE_PREFIX_1.
12572 (LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h).
12573 (GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal
12574 installation errors.
12575 (MAX_OFILE_ALIGNMENT): Define to 128.
12576 (HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h.
12577
12578 * config/i386/djgpp.c: New file. Add implementation of
12579 i386_djgpp_asm_named_section.
12580
12581 * config/i386/djgpp.opt: Remove obsolete option -mbnu210.
12582
12583 * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
12584 Add rule for building djgpp.o.
12585
12586 2016-01-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12587
12588 * config/rs6000/rs6000.c (v2df_reduction_p): New function.
12589 (rtx_is_swappable_p): Reductions are swappable.
12590 (insn_is_swappable_p): V2DF reductions are swappable.
12591
12592 2016-01-11 John David Anglin <danglin@gcc.gnu.org>
12593
12594 * config/pa/pa.c (pa_emit_move_sequence): Handle floating point
12595 reloads for other unsupported memory operands.
12596
12597 2016-01-12 Kugan Vivekanandarajah <kuganv@linaro.org>
12598 Jim Wilson <jim.wilson@linaro.org>
12599
12600 PR target/69194
12601 * config/arm/arm-builtins.c (arm_expand_neon_args): Call
12602 copy_to_mode_reg instead of force_reg.
12603
12604 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
12605
12606 PR target/69225
12607 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
12608 TARGET_80387 is true.
12609
12610 2016-01-11 Jakub Jelinek <jakub@redhat.com>
12611
12612 PR target/69071
12613 * lra-eliminations.c (move_plus_up): Only move plus up
12614 if subreg of the constant can be simplified into constant
12615 and use the simplified subreg of the constant instead of
12616 the original constant.
12617
12618 * fold-const.c (fold_convertible_p): Don't return true
12619 for conversion of VECTOR_TYPE to same sized integral type.
12620 (fold_convert_loc): Fix up formatting. Fold conversion of
12621 VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR
12622 instead of NOP_EXPR.
12623
12624 PR tree-optimization/69214
12625 * tree-vrp.c (simplify_cond_using_ranges): Don't propagate
12626 innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
12627 Formatting fix.
12628
12629 PR tree-optimization/69207
12630 * tree-vect-slp.c (vect_get_constant_vectors): For
12631 VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
12632 fold_convertible_p to vector_type's element type, and always
12633 use VCE for non-VECTOR_BOOLEAN_TYPE_P.
12634
12635 2016-01-11 Richard Biener <rguenther@suse.de>
12636
12637 PR tree-optimization/69173
12638 * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only
12639 fixup the cycle if all stmts are in a pattern.
12640
12641 2016-01-11 Uros Bizjak <ubizjak@gmail.com>
12642
12643 PR middle-end/68999
12644 * alias.c (base_alias_check): Move check for addresses with
12645 alignment ANDs before the call for compare_base_decls.
12646 (memrefs_conflict_p): Return -1 for different decls
12647 that went through alignment adjustments.
12648
12649 2016-01-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12650
12651 PR rtl-optimization/68796
12652 * config/aarch64/aarch64.md (*and<mode>_compare0): New pattern.
12653 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle HImode
12654 and QImode comparisons against zero with CC_NZmode.
12655 * config/aarch64/iterators.md (short_mask): New mode_attr.
12656
12657 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
12658
12659 * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
12660 (<avx512>_store<mode>_mask): Likewise.
12661
12662 2016-01-11 Bernd Schmidt <bschmidt@redhat.com>
12663 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12664
12665 PR rtl-optimization/68841
12666 * ifcvt.c (struct noce_if_info): Add orig_x field.
12667 (bbs_ok_for_cmove_arith): Add to_rename parameter.
12668 Don't record conflicts on to_rename if it's present.
12669 Allow memory destinations in sets.
12670 (noce_try_cmove_arith): Call bbs_ok_for_cmove_arith even on simple
12671 blocks, passing orig_x to the checks.
12672 (noce_process_if_block): Set if_info->orig_x appropriately.
12673
12674 2016-01-11 Tom de Vries <tom@codesourcery.com>
12675
12676 PR tree-optimization/69069
12677 * tree-parloops.c (create_parallel_loop): Add missing phi args.
12678
12679 2016-01-11 Yuri Rumyantsev <ysrumyan@gmail.com>
12680
12681 PR rtl-optimization/68920
12682 * config/i386/i386.c (ix86_option_override_internal): Restrict number
12683 of conditional moves for RTL if-conversion to 1 for
12684 TARGET_ONE_IF_CONV_INSN.
12685 * config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros.
12686 * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros.
12687 * params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new
12688 parameter to restirct number of conditional moves for
12689 RTL if-conversion.
12690 * doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
12691 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
12692 conditionl moves.
12693
12694 2016-01-11 Alexandre Oliva <aoliva@redhat.com>
12695
12696 PR bootstrap/69123
12697 * var-tracking.c (drop_overlapping_mem_locs): Operate on all
12698 onepart vars. Fix typo in comment. Fix reversed condition in
12699 unshare test.
12700 (dataflow_set_remove_mem_locs): Operate on all onepart vars.
12701
12702 PR bootstrap/69123
12703 * var-tracking.c (dump_onepart_variable_differences): New.
12704 (dataflow_set_different): If a detailed dump is requested,
12705 delay early returns and dump differences between onepart
12706 variables present before and after, and added variables.
12707
12708 2016-01-11 Ilya Enkovich <enkovich.gnu@gmail.com>
12709
12710 PR target/69010
12711 * expr.c (expand_expr_real_1): For boolean vector constants
12712 with a scalar mode use const_scalar_mask_from_tree.
12713 (const_scalar_mask_from_tree): New.
12714 * optabs.c (expand_vec_cond_mask_expr): Use mask mode
12715 assigned to a mask type to handle constants.
12716
12717 2016-01-11 Martin Jambor <mjambor@suse.cz>
12718
12719 PR ipa/69044
12720 * ipa-cp.c (estimate_local_effects): Do not clone for removal of
12721 useless parameters if we cannot change function signature.
12722
12723 2016-01-11 Martin Jambor <mjambor@suse.cz>
12724
12725 PR ipa/66616
12726 * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
12727 flag.
12728
12729 2016-01-11 Tom de Vries <tom@codesourcery.com>
12730
12731 PR tree-optimization/69109
12732 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
12733 latch with phi.
12734
12735 2016-01-11 Tom de Vries <tom@codesourcery.com>
12736
12737 PR tree-optimization/69108
12738 * tree-parloops.c (gather_scalar_reductions): Handle case that outer phi
12739 res is not used in a phi.
12740
12741 2016-01-11 Yury Gribov <y.gribov@samsung.com>
12742
12743 PR 67425
12744 * common.opt (frandom-seed): Fix parameter name.
12745 * doc/invoke.texi (frandom-seed): Ditto and describe parameter.
12746
12747 2016-01-11 Tom de Vries <tom@codesourcery.com>
12748
12749 PR tree-optimization/69058
12750 * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
12751 not supported.
12752
12753 2016-01-11 Andrew Burgess <andrew.burgess@embecosm.com>
12754
12755 * config/arc/arc.opt (mdiv-rem): Add period to the end.
12756 (mcode-density): Likewise.
12757
12758 2016-01-10 Tom de Vries <tom@codesourcery.com>
12759
12760 PR tree-optimization/69062
12761 * tree-parloops.c (loop_has_phi_with_address_arg): New function.
12762 (parallelize_loops): Don't paralelize loop that has phi with address
12763 arg.
12764
12765 2016-01-10 Tom de Vries <tom@codesourcery.com>
12766
12767 PR tree-optimization/69039
12768 * tree-parloops.c (try_create_reduction_list): Only allow single exit
12769 phi for reduction.
12770
12771 2016-01-09 John David Anglin <danglin@gcc.gnu.org>
12772
12773 PR middle-end/68743
12774 * match.pd: Require target has function_c99_misc before doing
12775 truncl(extend(x)) and trunc(extend(x)) -> extend(truncf(x)), etc.
12776
12777 2016-01-09 Gerald Pfeifer <gerald@pfeifer.com>
12778
12779 * configure.ac (isl_options_set_schedule_serialize_sccs): Also
12780 use GMPINC.
12781 * configure: Regenerate.
12782
12783 2016-01-09 Jakub Jelinek <jakub@redhat.com>
12784
12785 PR middle-end/50865
12786 PR tree-optimization/69097
12787 * fold-const.h (expr_not_equal_to): New prototype.
12788 * fold-const.c: Include stringpool.h and tree-ssanames.h.
12789 (expr_not_equal_to): New function.
12790 * match.pd (X % -Y is the same as X % Y): Don't optimize
12791 unless X is known not to be equal to minimum or Y is known
12792 not to be equal to -1.
12793 * tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument.
12794 fold TRUNC_MOD_EXPR if the second argument is not a power of two.
12795 (simplify_stmt_using_ranges): Adjust caller.
12796 (vrp_finalize): Call set_value_range on SSA_NAMEs before calling
12797 substitute_and_fold.
12798
12799 2016-01-09 Jan Hubicka <hubicka@ucw.cz>
12800
12801 * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
12802 w/o DECL_NAME.
12803
12804 2016-01-08 Jakub Jelinek <jakub@redhat.com>
12805
12806 PR tree-optimization/69167
12807 * gimple-fold.c (replace_stmt_with_simplification): Also punt if
12808 new SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs appear in operands of
12809 ops[0] comparison.
12810 * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
12811
12812 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
12813 Richard Biener <rguenther@suse.de>
12814
12815 PR tree-optimization/68707
12816 * tree-vect-slp.c (vect_analyze_slp_instance): Cancel permuted SLP
12817 instances that can be handled via vect_load_lanes.
12818
12819 2016-01-08 Uros Bizjak <ubizjak@gmail.com>
12820
12821 * symtab.c (symtab_node::equal_address_to): Return -1 instead of 2
12822 if we can't determine address equivalence.
12823 * alias.c (compare_base_decl): Update for changed return value of
12824 symtab_node::equal_address_to.
12825
12826 2016-01-08 Jason Merrill <jason@redhat.com>
12827
12828 PR c++/68983
12829 PR c++/67557
12830 * function.c (assign_temp): Guard against TREE_ADDRESSABLE types here.
12831 * expr.c (store_field): Not here.
12832 * tree-cfgcleanup.c (fixup_noreturn_call): Don't clear LHS of a
12833 call with TREE_ADDRESSABLE type.
12834 * tree-cfg.c (verify_gimple_call): Adjust.
12835
12836 2016-01-08 Olivier Hainque <hainque@adacore.com>
12837
12838 * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
12839 libc_internal.
12840
12841 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
12842
12843 * gcc.target/rs6000/paired.md (reduc_smax_v2sf): Rename to...
12844 (reduc_smax_scal_v2sf): ...here, make result SFmode, extract element.
12845 (reduc_smin_v2sf): Rename to...
12846 (reduc_smin_scal_v2sf): ...here, make result SFmode, extract element.
12847 (reduc_splus_v2sf): Rename to...
12848 (reduc_plus_scal_v2sf): ...here, make result SFmode, extract element.
12849
12850 2016-01-08 Jakub Jelinek <jakub@redhat.com>
12851
12852 PR tree-optimization/69162
12853 * gimplify.c (gimplify_va_arg_expr): Encode original type of
12854 valist argument in another argument.
12855 (gimplify_modify_expr): Adjust for the above change. Cleanup.
12856 * tree-stdarg.c (expand_ifn_va_arg_1): Use new 3rd argument
12857 to determine the va_list type, build a MEM_REF instead of
12858 build_fold_indirect_ref.
12859
12860 PR tree-optimization/69172
12861 * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
12862 gimple_build.
12863
12864 2016-01-08 Thomas Preud'homme <thomas.preudhomme@arm.com>
12865
12866 PR tree-optimization/67781
12867 * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
12868 and cmpnop in two steps: first the ones not accessed in original
12869 gimple expression in a endian independent way and then the ones not
12870 accessed in the final result in an endian-specific way.
12871
12872 2016-01-08 Jakub Jelinek <jakub@redhat.com>
12873
12874 PR tree-optimization/69083
12875 * tree-vect-slp.c (vect_get_constant_vectors): For
12876 VECTOR_BOOLEAN_TYPE_P assert op is fold_convertible_p to vector_type's
12877 element type. If op is fold_convertible_p to vector_type's element
12878 type, use NOP_EXPR instead of VCE.
12879
12880 2016-01-08 Segher Boessenkool <segher@kernel.crashing.org>
12881
12882 PR rtl-optimization/67778
12883 PR rtl-optimization/68634
12884 PR rtl-optimization/68909
12885 * shrink-wrap.c (try_shrink_wrapping): Add comment. Don't pop
12886 block from the stack until done with it. Remove a superfluous
12887 bitmap set. Remove a superfluous bitmap test.
12888
12889 2016-01-07 Martin Sebor <msebor@redhat.com>
12890
12891 PR c/68966
12892 * doc/extend.texi (__atomic Builtins, __sync Builtins): Document
12893 constraint on the type of arguments.
12894
12895 2016-01-07 Andreas Tobler <andreast@gcc.gnu.org>
12896
12897 * config/arm/freebsd.h: Rename SUBTARGET_OVERRIDE_OPTIONS to
12898 SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. Adjust to check
12899 unaligned_access on the gcc_options set.
12900 * config/arm/arm.c (arm_option_override_internal): Use
12901 SUBTARGET_OVERRIDE_INTERNAL_OPTIONS.
12902
12903 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
12904
12905 PR target/69140
12906 * config/i386/i386.c (ix86_frame_pointer_required): Enable
12907 frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
12908
12909 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
12910
12911 Revert
12912 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
12913
12914 PR target/69140
12915 * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
12916 depending on frame_pointer_needed before remaining integer and SSE
12917 registers are saved.
12918
12919 2016-01-07 Sandra Loosemore <sandra@codesourcery.com>
12920
12921 PR 1078
12922 * doc/extend.texi (Nvidia PDX Function Attributes): New section.
12923
12924 2016-01-07 H.J. Lu <hongjiu.lu@intel.com>
12925
12926 PR target/69171
12927 * config/i386/sse.md (<sse>_sqrt<mode>2<mask_name><round_name>):
12928 Use the "xBm" constraint.
12929 (float<sseintvecmodelower><mode>2<mask_name><round_name):
12930 Likewise.
12931 (sse_cvtsi2ss<round_name>): Use round_nimm_scalar_predicate.
12932 (sse_cvtsi2ssq<round_name>): Likewise.
12933 (sse_cvtss2si<round_name>): Likewise.
12934 (sse_cvtss2siq<round_name>): Likewise.
12935 (sse2_cvtsi2sdq<round_name>): Likewise.
12936 (sse2_cvtsd2si<round_name>): Likewise.
12937 (sse2_cvtsd2siq<round_name>): Likewise.
12938 * config/i386/subst.md (round_nimm_scalar_predicate): New
12939 predicate.
12940
12941 2015-12-15 Bernd Schmidt <bschmidt@redhat.com>
12942
12943 PR middle-end/67639
12944 * varasm.c (make_decl_rtl): Mark invalid register vars as
12945 DECL_EXTERNAL.
12946
12947 PR rtl-optimization/66206
12948 * bt-load.c (find_btr_use): Change first arg to be a pointer to an rtx.
12949 All callers changed.
12950
12951 2016-01-07 Jakub Jelinek <jakub@redhat.com>
12952
12953 PR tree-optimization/69141
12954 * tree-ssa-pre.c: Include langhooks.h.
12955 (eliminate_dom_walker::before_dom_children): Use
12956 lang_hooks.decl_printable_name instead of
12957 cgraph_node::get ()->name ().
12958
12959 PR middle-end/68960
12960 * gimple-expr.c (copy_var_decl): If var has DECL_USER_ALIGN set, copy
12961 it and DECL_ALIGN too.
12962
12963 2016-01-06 Robert Suchanek <robert.suchanek@imgtec.com>
12964
12965 * config/mips/mips-ftypes.def: Sort to lexicographical order.
12966
12967 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
12968
12969 PR target/69140
12970 * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
12971 depending on frame_pointer_needed before remaining integer and SSE
12972 registers are saved.
12973
12974 2015-01-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12975
12976 * config/rs6000/vsx.md (*p9_vecload_<mode>): Replace VSX_M
12977 mode iterator with VSX_M2.
12978 (*p9_vecstore_<mode>): Likewise.
12979 (*vsx_le_permute_<mode>): Restrict to !TARGET_P9_VECTOR.
12980 (*vsx_le_perm_load_<mode> for VSX_LE_128): Likewise.
12981 (*vsx_le_perm_store_<mode> for VSX_LE_128): Likewise.
12982 (define_split for VSX_LE128 stores): Likewise.
12983 (define_peephole2 for TImode LE swaps): Likewise.
12984 (define_split for VSX_LE128 post-reload stores): Likewise.
12985
12986 2016-01-06 Marek Polacek <polacek@redhat.com>
12987
12988 PR sanitizer/69099
12989 * convert.c (convert_to_integer_1): Adjust call to
12990 ubsan_instrument_float_cast. Use NULL_TREE instead of NULL.
12991 * ubsan.c (ubsan_instrument_float_cast): Drop the ARG parameter. Use
12992 EXPR instead of ARG.
12993 * ubsan.h (ubsan_instrument_float_cast): Adjust declaration.
12994
12995 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
12996
12997 PR 1078
12998 * doc/extend.texi (RL78 Variable Attributes): New section.
12999
13000 2016-01-05 Marek Polacek <polacek@redhat.com>
13001
13002 PR c/69104
13003 * builtins.c (get_memmodel): Use expansion point location rather than
13004 the input location. Call warning_at rather than warning.
13005 (expand_builtin_atomic_compare_exchange): Likewise.
13006 (expand_builtin_atomic_load): Likewise.
13007 (expand_builtin_atomic_store): Likewise.
13008 (expand_builtin_atomic_clear): Likewise.
13009
13010 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
13011
13012 PR target/68991
13013 * config/i386/i386.c (ix86_expand_vector_logical_operator):
13014 Replace nonimmediate_operand with vector_operand.
13015 * config/i386/predicates.md (vector_operand): New predicate.
13016 (general_vector_operand): Replace nonimmediate_operand with
13017 vector_operand.
13018 * config/i386/sse.md: Replace nonimmediate_operand with
13019 vector_operand and m constraint with Bm constraint on SSE
13020 patterns with 16-byte memory operand.
13021 * config/i386/subst.md (round_nimm_predicate): Replace
13022 nonimmediate_operand with vector_operand.
13023 (round_saeonly_nimm_predicate): Likewise.
13024 (round_saeonly_nimm_scalar_predicate): New.
13025
13026 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
13027
13028 PR target/68991
13029 * config/i386/constraints.md (Bm): New constraint.
13030 * config/i386/predicates.md (vector_memory_operand): New
13031 predicate.
13032 * config/i386/sse.md: Replace xm with xBm in plusminus and
13033 any_logic patterns.
13034
13035 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
13036
13037 PR 1078
13038 * doc/extend.texi (V850 Function Attributes): New section.
13039 (V850 Variable Attributes): New section.
13040
13041 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
13042
13043 PR 1078
13044 * doc/extend.texi (MicroBlaze Function Attributes): Document
13045 interrupt_handler and fast_interrupt attributes.
13046
13047 2016-01-05 Sergei Trofimovich <siarheit@google.com>
13048
13049 PR other/60465
13050 * config/ia64/ia64.c (ia64_expand_load_address): Use gprel64
13051 for local symbolic operands.
13052 * config/ia64/predicates.md (local_symbolic_operand64): New
13053 predicate.
13054
13055 2016-01-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13056
13057 PR rtl-optimization/68651
13058 * combine.c (combine_simplify_rtx): Canonicalize x + x into
13059 x << 1.
13060
13061 2016-01-05 Nathan Sidwell <nathan@acm.org>
13062
13063 * alias.c (compare_base_decls): Use symtab_node::get.
13064
13065 2016-01-05 Nick Clifton <nickc@redhat.com>
13066
13067 PR target/68770
13068 * ira-costs.c (copy_cost): Initialise the t_icode field of the
13069 secondary_reload_info structure.
13070
13071 PR target/66655
13072 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
13073 decls if weak support is available.
13074
13075 2016-01-04 Martin Sebor <msebor@redhat.com>
13076
13077 * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.
13078
13079 2016-01-04 Michael Meissner <meissner@linux.vnet.ibm.com>
13080
13081 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
13082 OPTION_MASK_P9_DFORM.
13083
13084 * config/rs6000/constraints.md (wo constraint): New constraint for
13085 ISA 3.0 (power9).
13086
13087 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
13088 for wo constraint.
13089 (rs6000_init_hard_regno_mode_ok): Likewise.
13090
13091 * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
13092 wo constraint.
13093
13094 * config/rs6000/altivec.md (altivec_vperm_<mode>): Clean up vperm
13095 expanders not to have constraints. Add support for ISA 3.0 xxperm
13096 instruction. Add support for fusing xxlor with xxperm.
13097 (altivec_vperm_<mode>_internal): Likewise.
13098 (altivec_vperm_v8hiv16qi): Likewise.
13099 (altivec_vperm_<mode>v16q): Likewise.
13100 (altivec_vperm_<mode>_uns): Likewise.
13101 (vperm_v8hiv4si): Likewise.
13102 (vperm_v16qiv8hi): Likewise.
13103
13104 * doc/md.texi (RS/6000 constraints): Document wo constraint.
13105
13106 2016-01-04 Jakub Jelinek <jakub@redhat.com>
13107
13108 Update copyright years.
13109
13110 * gcc.c (process_command): Update copyright notice dates.
13111 * gcov-dump.c (print_version): Ditto.
13112 * gcov.c (print_version): Ditto.
13113 * gcov-tool.c (print_version): Ditto.
13114 * gengtype.c (create_file): Ditto.
13115 * doc/cpp.texi: Bump @copying's copyright year.
13116 * doc/cppinternals.texi: Ditto.
13117 * doc/gcc.texi: Ditto.
13118 * doc/gccint.texi: Ditto.
13119 * doc/gcov.texi: Ditto.
13120 * doc/install.texi: Ditto.
13121 * doc/invoke.texi: Ditto.
13122
13123 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
13124
13125 * config/arm/arm.c (aapcs_vfp_allocate_return_reg): Treat all integer
13126 modes larger than TImode as TImode if NEON is not enabled.
13127
13128 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
13129
13130 PR target/69100
13131 * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
13132 mode for %f0-%f31 only if TARGET_FPU.
13133
13134 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
13135
13136 PR target/69072
13137 * config/sparc/sparc.c (scan_record_type): Take into account subfields
13138 to compute the PACKED_P predicate.
13139 (function_arg_record_value): Minor tweaks.
13140
13141 2016-01-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
13142
13143 * doc/install.texi (--with-multilib-list): Describe the meaning of the
13144 option for arm*-*-* targets.
13145
13146 2016-01-03 Sandra Loosemore <sandra@codesourcery.com>
13147
13148 * doc/extend.texi (Common Function Attributes): Move docs for
13149 MSP430-specific attributes to....
13150 (MSP430 Function Attributes): ...here. Delete the redundant
13151 entries and copy-edit the remaining text.
13152 (MSP430 Variable Attributes): Use uniform format for index
13153 entries and add a cross-reference to the corresponding function
13154 attribute docs.
13155
13156 2016-01-03 Vladimír Čunát <vcunat@gmail.com>
13157
13158 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix
13159 -finite-math typo.
13160 (x86 Options): Likewise.
13161
13162 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
13163
13164 PR 1078
13165
13166 * extend.texi (Common Function Attributes) <no_stack_limit>: New.
13167 * invoke.texi (Code Gen Options) <-fno-stack-limit>: Add pointer
13168 to corresponding attribute.
13169
13170 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
13171
13172 * doc/extend.texi (Common Function Attributes) <noplt>: Move
13173 to correct alphabetization of table. Copy-edit and correct
13174 markup.
13175 <stack_protect>: Likewise.
13176 <target_clones>: Likewise.
13177 <simd>: Likewise.
13178 * doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>:
13179 Correct punctuation.
13180 (Code Gen Options) <-fno-plt>: Copy-edit.
13181
13182 2016-01-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
13183
13184 PR target/68917
13185 * config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of
13186 SI values. Explicitly convert SI to DI and vice-versa.
13187
13188 2016-01-01 Jakub Jelinek <jakub@redhat.com>
13189
13190 PR tree-optimization/69070
13191 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Only test
13192 REAL_VALUE_ISSIGNALING_NAN on arg0 if arg0 is a REAL_CST.
13193
13194 PR sanitizer/69055
13195 * ubsan.c (ubsan_instrument_float_cast): Call
13196 initialize_sanitizer_builtins.
13197
13198 PR target/69015
13199 * ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).
13200 \f
13201 Copyright (C) 2016 Free Software Foundation, Inc.
13202
13203 Copying and distribution of this file, with or without modification,
13204 are permitted in any medium without royalty provided the copyright
13205 notice and this notice are preserved.