c589250be68ced74f89d7c72e11b7ed93d3c986f
[gcc.git] / gcc / ChangeLog
1 2016-06-10 Richard Biener <rguenther@suse.de>
2
3 PR middle-end/71477
4 * cfgloop.c (alloc_loop): Initialize nb_iterations_likely_upper_bound.
5
6 2016-06-09 Eric Botcazou <ebotcazou@adacore.com>
7
8 * df-problems.c (df_note_bb_compute): Guard use of DF_INSN_INFO_GET.
9
10 2016-06-09 Vladimir Makarov <vmakarov@redhat.com>
11 Jiong Wang <jiong.wang@arm.com>
12
13 PR rtl-optimization/70751
14 * lra-constraints.c (process_alt_operands): Recognize Non-pseudo spilled
15 into memory.
16
17 2016-06-09 Jonathan Yong <10walls@gmail.com>
18
19 Revert:
20 2015-09-21 Jonathan Yong <10walls@gmail.com>
21 * config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search
22 sysroot/usr/lib/32api for additional win32 libraries,
23 fixes failing Cygwin bootstrapping.
24
25 2016-06-09 Marcin Baczyński <marbacz@gmail.com>
26
27 * diagnostic.h (diagnostic_line_cutoff, diagnostic_flush_buffer):
28 delete.
29
30 2016-06-09 David Malcolm <dmalcolm@redhat.com>
31
32 PR bootstrap/71471
33 * pretty-print.c (pp_indent): Specify that %p is printed in a
34 host-dependent manner.
35 (test_pp_format): Remove the test for %p.
36
37 2016-06-09 Maciej W. Rozycki <macro@imgtec.com>
38
39 * config/mips/mips.c (mips_output_jump): Fix formatting.
40
41 2016-06-09 Richard Biener <rguenther@suse.de>
42
43 PR tree-optimization/71462
44 * tree-ssa-loop-manip.c (find_uses_to_rename): Guard against
45 removed blocks.
46
47 2016-06-09 Martin Liska <mliska@suse.cz>
48
49 * predict.c (dump_prediction): Add new argument.
50 (enum predictor_reason): New enum.
51 (struct predictor_hash): New struct.
52 (predictor_hash::hash): New function.
53 (predictor_hash::equal): Likewise.
54 (not_removed_prediction_p): New function.
55 (prune_predictions_for_bb): Likewise.
56 (combine_predictions_for_bb): Prune predictions.
57
58 2016-06-09 Martin Liska <mliska@suse.cz>
59
60 * predict.c (filter_predictions): New function.
61 (remove_predictions_associated_with_edge): Use the filter
62 function.
63 (equal_edge_p): New function.
64
65 2016-06-09 Stefan Bruens <stefan.bruens@rwth-aachen.de>
66
67 * doc/invoke.texi (ARM Options): Use lexicographical ordering.
68 Correct usage of @samp vs @option, add @samp where appropriate.
69 Add -march={armv6k,armv6z,arm6zk}, remove -march=ep9312.
70 Add armv6s-m and document it, as it is no official ARM name.
71
72 2016-06-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
73
74 * ifcvt.c (struct noce_if_info): Add transform_name field.
75 (noce_try_move): Set if_info->transform_name to the function name.
76 (noce_try_ifelse_collapse): Likewise.
77 (noce_try_store_flag): Likewise.
78 (noce_try_inverse_constants): Likewise.
79 (noce_try_store_flag_constants): Likewise.
80 (noce_try_addcc): Likewise.
81 (noce_try_store_flag_mask): Likewise.
82 (noce_try_cmove): Likewise.
83 (noce_try_cmove_arith): Likewise.
84 (noce_try_minmax): Likewise.
85 (noce_try_abs): Likewise.
86 (noce_try_sign_mask): Likewise.
87 (noce_try_bitop): Likewise.
88 (noce_convert_multiple_sets): Likewise.
89 (noce_process_if_block): Print if_info->transform_name to
90 dump_file if transformation succeeded.
91
92 2016-06-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
93
94 * config/arm/cortex-a57.md (cortex_a57_alu):
95 Handle csel type.
96
97 2016-06-08 Martin Sebor <msebor@redhat.com>
98 Jakub Jelinek <jakub@redhat.com>
99
100 PR c++/70507
101 PR c/68120
102 * builtins.def (BUILT_IN_ADD_OVERFLOW_P, BUILT_IN_SUB_OVERFLOW_P,
103 BUILT_IN_MUL_OVERFLOW_P): New builtins.
104 * builtins.c: Include gimple-fold.h.
105 (fold_builtin_arith_overflow): Handle
106 BUILT_IN_{ADD,SUB,MUL}_OVERFLOW_P.
107 (fold_builtin_3): Likewise.
108 * doc/extend.texi (Integer Overflow Builtins): Document
109 __builtin_{add,sub,mul}_overflow_p.
110
111 2016-06-08 Jose E. Marchesi <jose.marchesi@oracle.com>
112
113 * config/sparc/driver-sparc.c (cpu_names): Fix the entry for the
114 SPARC-M7 and add an entry for SPARC-S7 cpus (Sonoma).
115
116 2016-06-08 Alan Lawrence <alan.lawrence@arm.com>
117
118 * config/aarch64/aarch64.c (aarch64_function_arg_alignment):
119 Rewrite, looking one level down for records and arrays.
120
121 2016-06-08 David Malcolm <dmalcolm@redhat.com>
122
123 * pretty-print.c: Include "selftest.h".
124 (pp_format): Fix comment.
125 (identifier_to_locale): Likewise.
126 (selftest::test_basic_printing): New function.
127 (selftest::assert_pp_format): New function.
128 (selftest::test_pp_format): New function.
129 (selftest::pretty_print_c_tests): New function.
130 * selftest-run-tests.c (selftest::run_tests): Call
131 selftest::pretty_print_c_tests.
132 * selftest.h (pretty_print_c_tests): New declaration.
133
134 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
135
136 * invoke.texi (max-loop-headers-insns): Document.
137 * params.def (PARAM_MAX_LOOP_HEADER_INSNS): New.
138 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Update comment.
139 (ch_base::copy_headers): Use PARAM_MAX_LOOP_HEADER_INSNS.
140
141 2016-06-08 Richard Biener <rguenther@suse.de>
142
143 * tree-vect-stmts.c (vectorizable_load): Remove restrictions
144 on strided SLP loads and fall back to scalar loads in case
145 we can't chunk them.
146
147 2016-06-08 Richard Biener <rguenther@suse.de>
148
149 PR tree-optimization/71452
150 * tree-ssa.c (non_rewritable_lvalue_p): Make sure that the
151 type used for the SSA rewrite has enough precision to cover
152 the dynamic type of the location.
153
154 2016-06-08 Jakub Jelinek <jakub@redhat.com>
155 Richard Biener <rguenther@suse.de>
156
157 PR c++/71448
158 * fold-const.c (fold_comparison): Handle CONSTANT_CLASS_P (base0)
159 the same as DECL_P (base0) for indirect_base0. Use equality_code
160 in one further place.
161
162 2016-06-08 Richard Sandiford <richard.sandiford@arm.com>
163
164 * expmed.c (store_bit_field_1): Do not restrict a multiword op0
165 to one word if the field is known to overlap other words.
166 (extract_bit_field_1): Likewise.
167 (store_split_bit_field): Remove compensating code.
168 (extract_split_bit_field): Likewise.
169
170 2016-06-08 Bernd Schmidt <bschmidt@redhat.com>
171
172 PR debug/71432
173 PR ada/71413
174 * tree-ssa-strlen.c (handle_builtin_memcmp): Ignore debug insns.
175
176 2016-06-08 Jiong Wang <jiong.wang@arm.com>
177
178 * config/aarch64/aarch64-builtins.def (faddp): New builtins for modes in
179 VDQF.
180 * config/aarch64/aarch64-simd.md (aarch64_faddp<mode>): New.
181 (arch64_addpv4sf): Delete.
182 (reduc_plus_scal_v4sf): Use "gen_aarch64_faddpv4sf" instead of
183 "gen_aarch64_addpv4sf".
184 * config/aarch64/arm_neon.h (vpadd_f32): Remove inline assembly. Use
185 builtin.
186 (vpadds_f32): Likewise.
187 (vpaddq_f32): Likewise.
188 (vpaddq_f64): Likewise.
189
190 2016-06-08 Jiong Wang <jiong.wang@arm.com>
191
192 * config/aarch64/aarch64-builtins.def (fabd): New builtins for modes
193 VALLF.
194 * config/aarch64/aarch64-simd.md (fabd<mode>_3): Extend modes from VDQF
195 to VALLF. Rename to "fabd<mode>3".
196 "*fabd_scalar<mode>3): Delete.
197 * config/aarch64/arm_neon.h (vabds_f32): Remove inline assembly.
198 Use builtin.
199 (vabdd_f64): Likewise.
200 (vabd_f32): Likewise.
201 (vabd_f64): Likewise.
202 (vabdq_f32): Likewise.
203 (vabdq_f64): Likewise.
204
205 2016-06-08 Jiong Wang <jiong.wang@arm.com>
206
207 * config/aarch64/aarch64-builtins.def (rsqrts): New builtins for modes
208 VALLF.
209 * config/aarch64/aarch64-simd.md (aarch64_rsqrts_<mode>3): Rename to
210 "aarch64_rsqrts<mode>".
211 * config/aarch64/aarch64.c (get_rsqrts_type): Update gen* name.
212 * config/aarch64/arm_neon.h (vrsqrtss_f32): Remove inline assembly. Use
213 builtin.
214 (vrsqrtsd_f64): Likewise.
215 (vrsqrts_f32): Likewise.
216 (vrsqrts_f64): Likewise.
217 (vrsqrtsq_f32): Likewise.
218 (vrsqrtsq_f64): Likewise.
219
220 2016-06-08 Jiong Wang <jiong.wang@arm.com>
221
222 * config/aarch64/aarch64-builtins.def (rsqrte): New builtins for modes
223 VALLF.
224 * config/aarch64/aarch64-simd.md (aarch64_rsqrte_<mode>2): Rename to
225 "aarch64_rsqrte<mode>".
226 * config/aarch64/aarch64.c (get_rsqrte_type): Update gen* name.
227 * config/aarch64/arm_neon.h (vrsqrts_f32): Remove inline assembly. Use
228 builtin.
229 (vrsqrted_f64): Likewise.
230 (vrsqrte_f32): Likewise.
231 (vrsqrte_f64): Likewise.
232 (vrsqrteq_f32): Likewise.
233 (vrsqrteq_f64): Likewise.
234
235 2016-06-08 Jiong Wang <jiong.wang@arm.com>
236
237 * config/aarch64/aarch64-builtins.def (scvtf): Register vector modes.
238 (ucvtf): Likewise.
239 (fcvtzs): Likewise.
240 (fcvtzu): Likewise.
241 * config/aarch64/aarch64-simd.md
242 (<FCVT_F2FIXED:fcvt_fixed_insn><VDQF:mode>3): New.
243 (<FCVT_FIXED2F:fcvt_fixed_insn><VDQ_SDI:mode>3): Likewise.
244 * config/aarch64/arm_neon.h (vcvt_n_f32_s32): Remove inline assembly.
245 Use builtin.
246 (vcvt_n_f32_u32): Likewise.
247 (vcvt_n_s32_f32): Likewise.
248 (vcvt_n_u32_f32): Likewise.
249 (vcvtq_n_f32_s32): Likewise.
250 (vcvtq_n_f32_u32): Likewise.
251 (vcvtq_n_f64_s64): Likewise.
252 (vcvtq_n_f64_u64): Likewise.
253 (vcvtq_n_s32_f32): Likewise.
254 (vcvtq_n_s64_f64): Likewise.
255 (vcvtq_n_u32_f32): Likewise.
256 (vcvtq_n_u64_f64): Likewise.
257 * config/aarch64/iterators.md (VDQ_SDI): New mode iterator.
258 (VSDQ_SDI): Likewise.
259 (fcvt_target): Support V4DI, V4SI and V2SI.
260 (FCVT_TARGET): Likewise.
261
262 2016-06-08 Jiong Wang <jiong.wang@arm.com>
263
264 * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New
265 (TYPES_BINOP_SUS): Likewise.
266 (aarch64_simd_builtin_data): Update include file name.
267 (aarch64_builtins): Likewise.
268 * config/aarch64/aarch64-simd-builtins.def (scvtf): New entries
269 for conversion between scalar float-point and fixed-point.
270 (ucvtf): Likewise.
271 (fcvtzs): Likewise.
272 (fcvtzu): Likewise.
273 * config/aarch64/aarch64.md
274 (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3: New
275 pattern for conversion between scalar float to fixed-pointer.
276 (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>: Likewise.
277 (UNSPEC_FCVTZS): New UNSPEC enumeration.
278 (UNSPEC_FCVTZU): Likewise.
279 (UNSPEC_SCVTF): Likewise.
280 (UNSPEC_UCVTF): Likewise.
281 * config/aarch64/arm_neon.h (vcvtd_n_f64_s64): Remove inline assembly.
282 Use builtin.
283 (vcvtd_n_f64_u64): Likewise.
284 (vcvtd_n_s64_f64): Likewise.
285 (vcvtd_n_u64_f64): Likewise.
286 (vcvtd_n_f32_s32): Likewise.
287 (vcvts_n_f32_u32): Likewise.
288 (vcvtd_n_s32_f32): Likewise.
289 (vcvts_n_u32_f32): Likewise.
290 * config/aarch64/iterators.md (fcvt_target): Support integer to float
291 mapping.
292 (FCVT_TARGET): Likewise.
293 (FCVT_FIXED2F): New iterator.
294 (FCVT_F2FIXED): Likewise.
295 (fcvt_fixed_insn): New define_int_attr.
296
297 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
298
299 * predict.c (pass_strip_predict_hints::execute): Cleanup CFG if
300 some statements was removed.
301
302 2016-06-08 Alan Hayward <alan.hayward@arm.com>
303
304 * tree-vect-data-refs.c (vect_analyze_data_refs): Remove debug newline.
305 * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): likewise.
306 (vect_can_advance_ivs_p): likewise.
307 (vect_update_ivs_after_vectorizer): likewise.
308 * tree-vect-loop.c (vect_determine_vectorization_factor): likewise.
309 (vect_analyze_scalar_cycles_1): likewise.
310 (vect_analyze_loop_operations): likewise.
311 (report_vect_op): likewise.
312 (vect_is_slp_reduction): likewise.
313 (vect_is_simple_reduction): likewise.
314 (get_initial_def_for_induction): likewise.
315 (vect_transform_loop): likewise.
316 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): likewise.
317 (vect_recog_sad_pattern): likewise.
318 (vect_recog_widen_sum_pattern): likewise.
319 (vect_recog_widening_pattern): likewise.
320 (vect_recog_divmod_pattern): likewise.
321 * tree-vect-slp.c (vect-build-slp_tree_1): likewise.
322 (vect_analyze_slp_instance): likewise.
323 (vect_transform_slp_perm_load): likewise.
324 (vect_schedule_slp_instance): likewise.
325
326 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
327
328 * predict.c (predict_iv_comparison): Mention that heuristics is broken.
329 (return_prediction): PRED_CONST_RETURN predict return as not taken.
330 * predict.def (PRED_CONTINUE): Change hitrate 50->67
331 (PRED_LOOP_BRANCH): Document predictor as broken.
332 (PRED_LOOP_EXIT): Change hitrate 91->92.
333 (PRED_LOOP_EXTRA_EXIT): Change hitrate 91->83.
334 (PRED_POINTER, PRED_TREE_POINTER): Change hitrate 85->70.
335 (PRED_OPCODE_POSITIVE): Change hitrate 79->64.
336 (PRED_OPCODE_NONEQUAL): Change hitrate 91->66.
337 (PRED_TREE_OPCODE_POSITIVE): Change hitrate 73->64
338 (PRED_TREE_OPCODE_NONEQUAL): Chnage hitrate 72->66
339 (PRED_CALL): Chane hitrate 71->67.
340 (PRED_TREE_EARLY_RETURN): Document issues, change hitrate 61->54.
341 (PRED_GOTO): Document as unused right now.
342 (PRED_CONST_RETURN): Change hitrate 67->69
343 (PRED_NEGATIVE_RETURN): Change hitrate 96->98
344 (PRED_NULL_RETURN): Change hitrate 91->90.
345 (PRED_LOOP_IV_COMPARE_GUESS): Change hitrate to 98.
346 (PRED_FORTRAN_FAIL_ALLOC): Change hitrate to 62; document issues.
347 (PRED_FORTRAN_SIZE_ZERO): Change hitrate to 99.
348
349 2016-06-07 Bill Seurer <seurer@linux.vnet.ibm.com>
350
351 * config/rs6000/altivec.h: Add __builtin_vec_mul.
352 * config/rs6000/rs6000-builtin.def (vec_mul): Change vec_mul to a
353 special case Altivec builtin.
354 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
355 VSX_BUILTIN_VEC_MUL (replaced with special case code).
356 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
357 code for ALTIVEC_BUILTIN_VEC_MUL.
358 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
359 for __builtin_vec_mul.
360
361 2016-06-07 Peter Bergner <bergner@vnet.ibm.com>
362
363 * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mhtm and
364 -mno-htm.
365
366 2016-06-07 David Malcolm <dmalcolm@redhat.com>
367
368 * spellcheck.c (selftest::test_find_closest_string): New function.
369 (spellcheck_c_tests): Call the above.
370
371 2016-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
372
373 * simplify-rtx.c (simplify_cond_clz_ctz): Delete 'mode' local
374 variable.
375
376 2016-06-07 Jakub Jelinek <jakub@redhat.com>
377
378 * config/i386/sse.md (avx_vec_concat<mode>): Add v=v,vm and
379 Yv=Yv,C alternatives.
380
381 2016-06-07 Richard Biener <rguenther@suse.de>
382
383 PR c/61564
384 * common.opt (ffast-math): Make Optimization.
385
386 2016-06-07 Simon Dardis <simon.dardis@imgtec.com>
387 Prachi Godbole <prachi.godbole@imgtec.com>
388
389 * config/mips/p5600.md (p5600_fpu_fadd): Remove checking for
390 `fabs' and `fneg' type attributes.
391 (p5600_fpu_fabs): Add `fmove' to the comment.
392
393 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
394
395 * gimple.c: Include builtins.h
396 (gimple_inexpensive_call_p): New function.
397 * gimple.h (gimple_inexpensive_call_p): Declare.
398 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use it.
399 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise;
400 fix formatting.
401
402 2016-06-07 Paolo Carlini <paolo.carlini@oracle.com>
403
404 * diagnostic.c (diagnostic_impl, diagnostic_n_impl): New.
405 (inform, inform_at_rich_loc, inform_n, warning, warning_at,
406 warning_at_rich_loc, warning_n, pedwarn, permerror,
407 permerror_at_rich_loc, error, error_n, error_at, error_at_rich_loc,
408 sorry, fatal_error, internal_error, internal_error_no_backtrace):
409 Use the above.
410
411 2016-06-07 Richard Biener <rguenther@suse.de>
412
413 PR tree-optimization/71428
414 * tree-ssa-math-opts.c (perform_symbolic_merge): Properly distinguish
415 BIT_FIELD_REF op vs. load.
416
417 2016-06-07 Richard Biener <rguenther@suse.de>
418
419 PR middle-end/71423
420 * match.pd ((X | ~Y) -> Y <= X): Properly invert the comparison
421 for signed ops.
422
423 2016-06-06 John David Anglin <danglin@gcc.gnu.org>
424
425 * config/pa/pa.md (call): Generate indirect long calls to non-local
426 functions on TARGET_64BIT.
427 (call_value): Likewise.
428
429 2016-06-06 John David Anglin <danglin@gcc.gnu.org>
430
431 * config/pa/pa.md (call_val_reg_64bit): Remove "reg: DI " clobber from
432 pattern and subsequent splitters.
433 (call_val_reg_64bit_post_reload): Likewise.
434
435 2016-06-07 Kugan Vivekanandarajah <kuganv@linaro.org>
436
437 PR middle-end/71408
438 * tree-ssa-reassoc.c (zero_one_operation): Fix NEGATE_EXPR operand for
439 propagate_op_to_single_use.
440
441 2016-06-07 Kugan Vivekanandarajah <kuganv@linaro.org>
442
443 PR middle-end/71281
444 * tree-ssa-reassoc.c (reassociate_bb): Set uid for negate stmt.
445
446 2016-06-07 Uros Bizjak <ubizjak@gmail.com>
447
448 * config/i386/i386.h (enum ix86_enitity): Add X86_DIRFLAG.
449 (enum x86_dirflag_state): New enum.
450 (NUM_MODES_FOR_MODE_SWITCHING): Add X86_DIRFLAG_ANY.
451 (machine_function): Remove needs_cld.
452 (ix86_current_function_needs_cld): Remove.
453 * config/i386/i386.c (ix86_set_func_type): Set
454 ix86_optimize_mode_switching[X86_DIRFLAG] to 1.
455 (ix86_expand_prologue): Do not emit CLD here.
456 (ix86_dirflag_mode_needed): New function.
457 (ix86_dirflag_mode_entry): Ditto.
458 (ix86_mode_needed): Handle X86_DIRFLAG entity.
459 (ix86_mode_after): Ditto.
460 (ix86_mode_entry): Ditto.
461 (ix86_mode_exit): Ditto.
462 (ix86_emit_mode_set): Ditto.
463 * config/i386/i386.md (strmov_singleop): Set
464 ix86_optimize_mode_switching[X86_DIRFLAG] to 1 for TARGET_CLD.
465 Do not set ix86_current_function_needs_cld.
466 (rep_mov): Ditto.
467 (strset_singleop): Ditto.
468 (rep_stos): Ditto.
469 (cmpstrnqi_nz_1): Ditto.
470 (cmpstrnqi_1): Ditto.
471 (strlenqi_1): Ditto.
472
473 2016-06-06 Jakub Jelinek <jakub@redhat.com>
474
475 PR tree-optimization/71259
476 * tree-vect-slp.c (vect_get_constant_vectors): For
477 VECTOR_BOOLEAN_TYPE_P, return all ones constant instead of
478 one for constant op, and use COND_EXPR for non-constant.
479
480 2016-06-06 David Malcolm <dmalcolm@redhat.com>
481
482 * Makefile.in (OBJS): Add function-tests.o,
483 hash-map-tests.o, hash-set-tests.o, rtl-tests.o,
484 selftest-run-tests.o.
485 (OBJS-libcommon): Add selftest.o.
486 (OBJS-libcommon-target): Add selftest.o.
487 (all.internal): Add "selftest".
488 (all.cross): Likewise.
489 (selftest): New phony target.
490 (s-selftest): New target.
491 (selftest-gdb): New phony target.
492 (COLLECT2_OBJS): Add selftest.o.
493 * bitmap.c: Include "selftest.h".
494 (selftest::test_gc_alloc): New function.
495 (selftest::test_set_range): New function.
496 (selftest::test_clear_bit_in_middle): New function.
497 (selftest::test_copying): New function.
498 (selftest::test_bitmap_single_bit_set_p): New function.
499 (selftest::bitmap_c_tests): New function.
500 * common.opt (fself-test): New.
501 * diagnostic-show-locus.c: Include "selftest.h".
502 (make_range): New function.
503 (test_range_contains_point_for_single_point): New function.
504 (test_range_contains_point_for_single_line): New function.
505 (test_range_contains_point_for_multiple_lines): New function.
506 (assert_eq): New function.
507 (test_get_line_width_without_trailing_whitespace): New function.
508 (selftest::diagnostic_show_locus_c_tests): New function.
509 * et-forest.c: Include "selftest.h".
510 (selftest::test_single_node): New function.
511 (selftest::test_simple_tree): New function.
512 (selftest::test_disconnected_nodes): New function.
513 (selftest::et_forest_c_tests): New function.
514 * fold-const.c: Include "selftest.h".
515 (selftest::assert_binop_folds_to_const): New function.
516 (selftest::assert_binop_folds_to_nonlvalue): New function.
517 (selftest::test_arithmetic_folding): New function.
518 (selftest::fold_const_c_tests): New function.
519 * function-tests.c: New file.
520 * gimple.c: Include "selftest.h".
521 Include "gimple-pretty-print.h".
522 (selftest::verify_gimple_pp): New function.
523 (selftest::test_assign_single): New function.
524 (selftest::test_assign_binop): New function.
525 (selftest::test_nop_stmt): New function.
526 (selftest::test_return_stmt): New function.
527 (selftest::test_return_without_value): New function.
528 (selftest::gimple_c_tests): New function.
529 * hash-map-tests.c: New file.
530 * hash-set-tests.c: New file.
531 * input.c: Include "selftest.h".
532 (selftest::assert_loceq): New function.
533 (selftest::test_accessing_ordinary_linemaps): New function.
534 (selftest::test_unknown_location): New function.
535 (selftest::test_builtins): New function.
536 (selftest::test_reading_source_line): New function.
537 (selftest::input_c_tests): New function.
538 * rtl-tests.c: New file.
539 * selftest-run-tests.c: New file.
540 * selftest.c: New file.
541 * selftest.h: New file.
542 * spellcheck.c: Include "selftest.h".
543 (selftest::levenshtein_distance_unit_test_oneway): New function,
544 adapted from testsuite/gcc.dg/plugin/levenshtein_plugin.c.
545 (selftest::levenshtein_distance_unit_test): Likewise.
546 (selftest::spellcheck_c_tests): Likewise.
547 * toplev.c: Include selftest.h.
548 (toplev::run_self_tests): New.
549 (toplev::main): Handle -fself-test.
550 * toplev.h (toplev::run_self_tests): New.
551 * tree.c: Include "selftest.h".
552 (selftest::test_integer_constants): New function.
553 (selftest::test_identifiers): New function.
554 (selftest::test_labels): New function.
555 (selftest::tree_c_tests): New function.
556 * tree-cfg.c: Include "selftest.h".
557 (selftest::push_fndecl): New function.
558 (selftest::test_linear_chain): New function.
559 (selftest::test_diamond): New function.
560 (selftest::test_fully_connected): New function.
561 (selftest::tree_cfg_c_tests): New function.
562 * vec.c: Include "selftest.h".
563 (selftest::safe_push_range): New function.
564 (selftest::test_quick_push): New function.
565 (selftest::test_safe_push): New function.
566 (selftest::test_truncate): New function.
567 (selftest::test_safe_grow_cleared): New function.
568 (selftest::test_pop): New function.
569 (selftest::test_safe_insert): New function.
570 (selftest::test_ordered_remove): New function.
571 (selftest::test_unordered_remove): New function.
572 (selftest::test_block_remove): New function.
573 (selftest::reverse_cmp): New function.
574 (selftest::test_qsort): New function.
575 (selftest::vec_c_tests): New function.c.
576 * wide-int.cc: Include selftest.h and wide-int-print.h.
577 (selftest::from_int <wide_int>): New function.
578 (selftest::from_int <offset_int>): New function.
579 (selftest::from_int <widest_int>): New function.
580 (selftest::assert_deceq): New function.
581 (selftest::assert_hexeq): New function.
582 (selftest::test_printing <VALUE_TYPE>): New function template.
583 (selftest::test_ops <VALUE_TYPE>): New function template.
584 (selftest::test_comparisons <VALUE_TYPE>): New function template.
585 (selftest::run_all_wide_int_tests <VALUE_TYPE>): New function
586 template.
587 (selftest::wide_int_cc_tests): New function.
588
589 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
590
591 PR middle-end/37780
592 * ifcvt.c (noce_try_ifelse_collapse): New function.
593 Declare prototype.
594 (noce_process_if_block): Call noce_try_ifelse_collapse.
595 * simplify-rtx.c (simplify_cond_clz_ctz): New function.
596 (simplify_ternary_operation): Use the above to simplify
597 conditional CLZ/CTZ expressions.
598
599 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
600
601 PR middle-end/37780
602 * config/aarch64/aarch64.md (ctz<mode>2): Convert to
603 define_insn_and_split.
604
605 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
606
607 PR middle-end/37780
608 * config/arm/arm.md (ctzsi2): Convert to define_insn_and_split.
609
610 2016-06-06 Bernd Edlinger <bernd.edlinger@hotmail.de>
611
612 PR c/24414
613 * cfgexpand.c (expand_asm_loc): Remove handling for ADDR_EXPR.
614 Implicitly clobber memory for basic asm with non-empty assembler
615 string. Use targetm.md_asm_adjust also here.
616 * compare-elim.c (arithmetic_flags_clobber_p): Use asm_noperands here.
617 * final.c (final_scan_insn): Handle basic asm in PARALLEL block.
618 * gimple.c (gimple_asm_clobbers_memory_p): Handle basic asm with
619 non-empty assembler string.
620 * ira.c (compute_regs_asm_clobbered): Use asm_noperands here.
621 * recog.c (asm_noperands): Handle basic asm in PARALLEL block.
622 (decode_asm_operands): Handle basic asm in PARALLEL block.
623 (extract_insn): Handle basic asm in PARALLEL block.
624 * doc/extend.texi: Mention new behavior of basic asm.
625 * config/ia64/ia64 (rtx_needs_barrier): Handle ASM_INPUT here.
626 * config/pa/pa.c (branch_to_delay_slot_p, branch_needs_nop_p,
627 branch_needs_nop_p): Use asm_noperands.
628
629 2016-06-06 Jose E. Marchesi <jose.marchesi@oracle.com>
630
631 * config/sparc/sparc.md (cpu): Add niagara7 cpu type.
632 Include the M7 SPARC DFA scheduler.
633 New attribute v3pipe.
634 Annotate insns with v3pipe where appropriate.
635 Define cpu_feature vis4.
636 Add lzd instruction type and set it on clzdi_sp64 and clzsi_sp64.
637 Add (V8QI "8") to vbits.
638 Add insns {add,sub}v8qi3
639 Add insns ss{add,sub}v8qi3
640 Add insns us{add,sub}{v8qi,v4hi}3
641 Add insns {min,max}{v8qi,v4hi,v2si}3
642 Add insns {minu,maxu}{v8qi,v4hi,v2si}3
643 Add insns fpcmp{le,gt,ule,ug,ule,ugt}{8,16,32}_vis.
644 * config/sparc/niagara4.md: Add a comment explaining the
645 discrepancy between the documented latenty numbers and the
646 implemented ones.
647 * config/sparc/niagara7.md: New file.
648 * configure.ac (HAVE_AS_SPARC5_VIS4): Define if the assembler
649 supports SPARC5 and VIS 4.0 instructions.
650 * configure: Regenerate.
651 * config.in: Likewise.
652 * config.gcc: niagara7 is a supported cpu in sparc*-*-* targets.
653 * config/sparc/sol2.h (ASM_CPU32_DEFAUILT_SPEC): Set for
654 TARGET_CPU_niagara7.
655 (ASM_CPU64_DEFAULT_SPEC): Likewise.
656 (CPP_CPU_SPEC): Handle niagara7.
657 (ASM_CPU_SPEC): Likewise.
658 * config/sparc/sparc-opts.h (processor_type): Add
659 PROCESSOR_NIAGARA7.
660 (mvis4): New option.
661 * config/sparc/sparc.h (TARGET_CPU_niagara7): Define.
662 (AS_NIAGARA7_FLAG): Define.
663 (ASM_CPU64_DEFAULT_SPEC): Set for niagara7.
664 (CPP_CPU64_DEFAULT_SPEC): Likewise.
665 (CPP_CPU_SPEC): Handle niagara7.
666 (ASM_CPU_SPEC): Likewise.
667 * config/sparc/sparc.c (niagara7_costs): Define.
668 (sparc_option_override): Handle niagara7 and adjust cache-related
669 parameters with better values for niagara cpus. Also support VIS4.
670 (sparc32_initialize_trampoline): Likewise.
671 (sparc_use_sched_lookahead): Likewise.
672 (sparc_issue_rate): Likewise.
673 (sparc_register_move_cost): Likewise.
674 (dump_target_flag_bits): Support VIS4.
675 (sparc_vis_init_builtins): Likewise.
676 (sparc_builtins): Likewise.
677 * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__ for
678 VIS4 4.0.
679 * config/sparc/driver-sparc.c (cpu_names): Add SPARC-M7 and
680 UltraSparc M7.
681 * config/sparc/sparc.opt (sparc_processor_type): New value
682 niagara7.
683 * config/sparc/visintrin.h (__attribute__): Prototypes for the
684 VIS4 builtins.
685 * doc/invoke.texi (SPARC Options): Document -mcpu=niagara7 and
686 -mvis4.
687 * doc/extend.texi (SPARC VIS Built-in Functions): Document the
688 VIS4 builtins.
689
690 2016-06-06 Jonathan Wakely <jwakely@redhat.com>
691
692 * doc/sourcebuild.texi (Directives): Remove extra closing braces.
693
694 2016-06-06 Richard Biener <rguenther@suse.de>
695
696 PR tree-optimization/71398
697 * tree-ssa-loop-ivcanon.c (unloop_loops): First unloop, then
698 remove edges.
699
700 2016-06-05 James Bowman <james.bowman@ftdichip.com>
701
702 * config/ft32/ft32.c (ft32_setup_incoming_varargs,
703 ft32_expand_prolog, ft32_expand_epilogue):
704 Handle pretend_args.
705 * config/ft32/ft32.h: Remove OUTGOING_REG_PARM_STACK_SPACE.
706 * config/ft32/ft32.md: Add pretend_returner.
707
708 2016-06-06 Uros Bizjak <ubizjak@gmail.com>
709
710 PR target/71389
711 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
712 Copy op1 RTX to avoid invalid sharing.
713 (ix86_expand_vector_move_misalign): Ditto.
714
715 2016-06-05 John David Anglin <danglin@gcc.gnu.org>
716
717 * expr.c (move_by_pieces_d::generate): Mark mode parameter with
718 ATTRIBUTE_UNUSED.
719
720 2016-06-05 Jan Hubicka <hubicka@ucw.cz>
721
722 * predict.c (predicted_by_loop_heuristics_p): New function.
723 (predict_iv_comparison): Use it.
724 (predict_loops): Walk from innermost loops; do not predict edges
725 leaving multiple loops multiple times; implement
726 PRED_LOOP_ITERATIONS_MAX heuristics.
727 * predict.def (PRED_LOOP_ITERATIONS_MAX): New predictor.
728
729 2016-06-05 Jan Hubicka <hubicka@ucw.cz>
730
731 * cfg.c (check_bb_profile): Do not report mismatched profiles when
732 only edges out of BB are EH edges.
733
734 2016-06-04 Martin Sebor <msebor@redhat.com>
735 Marcin Baczyński <marbacz@gmail.com>
736
737 PR c/48116
738 * doc/invoke.texi (-Wreturn-type): Mention not warning on return with
739 a void expression in a void function.
740
741 2016-06-03 Jan Hubicka <hubicka@ucw.cz>
742
743 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Do not check
744 aux; dump reasons of decisions.
745 (should_duplicate_loop_header_p): Likewise.
746 (do_while_loop_p): Likewise.
747 (ch_base::copy_headers): Dump asi num insns duplicated.
748
749 2016-06-04 Jakub Jelinek <jakub@redhat.com>
750
751 PR tree-optimization/71405
752 * tree-ssa.c (execute_update_addresses_taken): For clobber with
753 incompatible type, build a new clobber with the right type instead
754 of building a VIEW_CONVERT_EXPR around it.
755
756 2016-06-04 Oleg Endo <olegendo@gcc.gnu.org>
757
758 PR tree-optimization/52171
759 * config/sh/sh.c (sh_use_by_pieces_infrastructure_p): Use
760 by_pieces_ninsns instead of move_by_pieces_ninsns.
761
762 2016-06-04 Oleg Endo <olegendo@gcc.gnu.org>
763
764 * config/sh/sh.c (sh_print_operand_address): Don't use hardcoded 'r0'
765 for reg+reg addressing mode.
766
767 2016-06-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
768
769 * rs6000-c.c (c/c-tree.h): Add #include.
770 (altivec_resolve_overloaded_builtin): Handle ARRAY_TYPE arguments
771 in C++ when found in the base position of vec_ld or vec_st.
772
773 2016-06-03 Jan Hubicka <hubicka@ucw.cz>
774
775 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Avoid
776 use of profile unless profile status is PROFILE_READ.
777 * profile.c (compute_branch_probabilities): Set profile status
778 only after reporting predictor hitrates.
779
780 2016-06-03 Joseph Myers <joseph@codesourcery.com>
781
782 PR target/71276
783 PR target/71277
784 * common.opt (ffp-int-builtin-inexact): New option.
785 * doc/invoke.texi (-fno-fp-int-builtin-inexact): Document.
786 * doc/md.texi (floor@var{m}2, btrunc@var{m}2, round@var{m}2)
787 (ceil@var{m}2): Document dependence on this option.
788 * ipa-inline-transform.c (inline_call): Handle
789 flag_fp_int_builtin_inexact.
790 * ipa-inline.c (can_inline_edge_p): Likewise.
791 * config/i386/i386.md (rintxf2): Do not test
792 flag_unsafe_math_optimizations.
793 (rint<mode>2_frndint): New define_insn.
794 (rint<mode>2): Do not test flag_unsafe_math_optimizations for 387
795 or !flag_trapping_math for SSE. Just use gen_rint<mode>2_frndint
796 for 387 instead of extending and truncating.
797 (frndintxf2_<rounding>): Test flag_fp_int_builtin_inexact ||
798 !flag_trapping_math instead of flag_unsafe_math_optimizations.
799 Change to frndint<mode>2_<rounding>.
800 (frndintxf2_<rounding>_i387): Likewise. Change to
801 frndint<mode>2_<rounding>_i387.
802 (<rounding_insn>xf2): Likewise.
803 (<rounding_insn><mode>2): Test flag_fp_int_builtin_inexact ||
804 !flag_trapping_math instead of flag_unsafe_math_optimizations for
805 x87. Test TARGET_ROUND || !flag_trapping_math ||
806 flag_fp_int_builtin_inexact instead of !flag_trapping_math for
807 SSE. Use ROUND_NO_EXC in constant operand of
808 gen_sse4_1_round<mode>2. Just use gen_frndint<mode>2_<rounding>
809 for 387 instead of extending and truncating.
810
811 2016-06-03 H.J. Lu <hongjiu.lu@intel.com>
812 Julia Koval <julia.koval@intel.com>
813
814 PR target/66960
815 PR target/67630
816 PR target/67634
817 PR target/67841
818 PR target/68037
819 PR target/68618
820 PR target/68661
821 PR target/69575
822 PR target/69596
823 PR target/69734
824 * config/i386/i386-protos.h (ix86_epilogue_uses): New prototype.
825 * config/i386/i386.c (ix86_conditional_register_usage): Preserve
826 all registers, except for function return registers if there are
827 no caller-saved registers.
828 (ix86_set_func_type): New function.
829 (ix86_set_current_function): Call ix86_set_func_type to set
830 no_caller_saved_registers and func_type. Call reinit_regs if
831 caller-saved registers are changed. Don't allow MPX, SSE, MMX
832 nor x87 instructions in interrupt handler nor function with
833 no_caller_saved_registers attribute.
834 (ix86_function_ok_for_sibcall): Return false if there are no
835 caller-saved registers.
836 (type_natural_mode): Don't warn ABI change for MMX in interrupt
837 handler.
838 (ix86_function_arg_advance): Skip for callee in interrupt handler.
839 (ix86_function_arg): Return special arguments in interrupt handler.
840 (ix86_promote_function_mode): Promote pointer to word_mode only
841 for normal functions.
842 (ix86_can_use_return_insn_p): Don't use `ret' instruction in
843 interrupt handler.
844 (ix86_epilogue_uses): New function.
845 (ix86_hard_regno_scratch_ok): Likewise.
846 (ix86_save_reg): Preserve all registers in interrupt handler
847 after reload. Preserve all registers, except for function return
848 registers, if there are no caller-saved registers after reload.
849 (find_drap_reg): Always use callee-saved register if there are
850 no caller-saved registers.
851 (ix86_minimum_incoming_stack_boundary): Return MIN_STACK_BOUNDARY
852 for interrupt handler.
853 (ix86_expand_prologue): Don't allow DRAP in interrupt handler.
854 Emit cld instruction if stringops are used in interrupt handler
855 or interrupt handler isn't a leaf function.
856 (ix86_expand_epilogue): Generate interrupt return for interrupt
857 handler and pop the 'ERROR_CODE' off the stack before interrupt
858 return in exception handler.
859 (ix86_expand_call): Disallow calling interrupt handler directly.
860 If there are no caller-saved registers, mark all registers that
861 are clobbered by the call which returns as clobbered.
862 (ix86_handle_no_caller_saved_registers_attribute): New function.
863 (ix86_handle_interrupt_attribute): Likewise.
864 (ix86_attribute_table): Add interrupt and no_caller_saved_registers
865 attributes.
866 (TARGET_HARD_REGNO_SCRATCH_OK): Likewise.
867 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use argument
868 accumulation in interrupt function if stack may be realigned to
869 avoid DRAP.
870 (EPILOGUE_USES): New.
871 (function_type): New enum.
872 (machine_function): Add func_type and no_caller_saved_registers.
873 * config/i386/i386.md (UNSPEC_INTERRUPT_RETURN): New.
874 (interrupt_return): New pattern.
875 * doc/extend.texi: Document x86 interrupt and
876 no_caller_saved_registers attributes.
877
878 2016-06-03 Bernd Schmidt <bschmidt@redhat.com>
879
880 PR tree-optimization/52171
881 * builtins.c (expand_cmpstrn_or_cmpmem): Delete, moved elsewhere.
882 (expand_builtin_memcmp): New arg RESULT_EQ. All callers changed.
883 Look for constant strings. Move some code to emit_block_cmp_hints
884 and use it.
885 * builtins.def (BUILT_IN_MEMCMP_EQ): New.
886 * defaults.h (COMPARE_MAX_PIECES): New macro.
887 * expr.c (move_by_pieces_d, store_by_pieces_d): Remove old structs.
888 (move_by_pieces_1, store_by_pieces_1, store_by_pieces_2): Remvoe.
889 (clear_by_pieces_1): Don't declare. Move definition before use.
890 (can_do_by_pieces): New static function.
891 (can_move_by_pieces): Use it. Return bool.
892 (by_pieces_ninsns): Renamed from move_by_pieces_ninsns. New arg
893 OP. All callers changed. Handle COMPARE_BY_PIECES.
894 (class pieces_addr); New.
895 (pieces_addr::pieces_addr, pieces_addr::decide_autoinc,
896 pieces_addr::adjust, pieces_addr::increment_address,
897 pieces_addr::maybe_predec, pieces_addr::maybe_postinc): New member
898 functions for it.
899 (class op_by_pieces_d): New.
900 (op_by_pieces_d::op_by_pieces_d, op_by_pieces_d::run): New member
901 functions for it.
902 (class move_by_pieces_d, class compare_by_pieces_d,
903 class store_by_pieces_d): New subclasses of op_by_pieces_d.
904 (move_by_pieces_d::prepare_mode, move_by_pieces_d::generate,
905 move_by_pieces_d::finish_endp, store_by_pieces_d::prepare_mode,
906 store_by_pieces_d::generate, store_by_pieces_d::finish_endp,
907 compare_by_pieces_d::generate, compare_by_pieces_d::prepare_mode,
908 compare_by_pieces_d::finish_mode): New member functions.
909 (compare_by_pieces, emit_block_cmp_via_cmpmem): New static
910 functions.
911 (expand_cmpstrn_or_cmpmem): Moved here from builtins.c.
912 (emit_block_cmp_hints): New function.
913 (move_by_pieces, store_by_pieces, clear_by_pieces): Rewrite to just
914 use the newly defined classes.
915 * expr.h (by_pieces_constfn): New typedef.
916 (can_store_by_pieces, store_by_pieces): Use it in arg declarations.
917 (emit_block_cmp_hints, expand_cmpstrn_or_cmpmem): Declare.
918 (move_by_pieces_ninsns): Don't declare.
919 (can_move_by_pieces): Change return value to bool.
920 * target.def (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Update docs.
921 (compare_by_pieces_branch_ratio): New hook.
922 * target.h (enum by_pieces_operation): Add COMPARE_BY_PIECES.
923 (by_pieces_ninsns): Declare.
924 * targethooks.c (default_use_by_pieces_infrastructure_p): Handle
925 COMPARE_BY_PIECES.
926 (default_compare_by_pieces_branch_ratio): New function.
927 * targhooks.h (default_compare_by_pieces_branch_ratio): Declare.
928 * doc/tm.texi.in (STORE_MAX_PIECES, COMPARE_MAX_PIECES): Document.
929 * doc/tm.texi: Regenerate.
930 * tree-ssa-strlen.c: Include "builtins.h".
931 (handle_builtin_memcmp): New static function.
932 (strlen_optimize_stmt): Call it for BUILT_IN_MEMCMP.
933 * tree.c (build_common_builtin_nodes): Create __builtin_memcmp_eq.
934
935 2016-06-03 Alan Hayward <alan.hayward@arm.com>
936
937 * tree-vect-stmts.c (vect_stmt_relevant_p): Do not vectorize non live
938 relevant stmts which are simple and invariant.
939 * tree-vect-loop.c (vectorizable_live_operation): Check relevance
940 instead of simple and invariant
941
942 2016-06-03 Alan Hayward <alan.hayward@arm.com>
943
944 * tree-vect-loop.c (vect_analyze_loop_operations): Allow live stmts.
945 (vectorizable_reduction): Check for new relevant state.
946 (vectorizable_live_operation): vectorize live stmts using
947 BIT_FIELD_REF. Remove special case for gimple assigns stmts.
948 * tree-vect-stmts.c (is_simple_and_all_uses_invariant): New function.
949 (vect_stmt_relevant_p): Check for stmts which are only used live.
950 (process_use): Use of a stmt does not inherit it's live value.
951 (vect_mark_stmts_to_be_vectorized): Simplify relevance inheritance.
952 (vect_analyze_stmt): Check for new relevant state.
953 * tree-vectorizer.h (vect_relevant): New entry for a stmt which is used
954 outside the loop, but not inside it.
955
956 2016-06-03 Alan Hayward <alan.hayward@arm.com>
957
958 * tree-vectorizer.h (vect_get_vec_def_for_operand_1): New.
959 * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): New.
960 (vect_get_vec_def_for_operand): Split out code.
961
962 2016-06-03 Segher Boessenkool <segher@kernel.crashing.org>
963
964 * config/rs6000/rs6000.md (define_peepholes for two mfcr's): Delete.
965
966 2016-06-03 Alan Hayward <alan.hayward@arm.com>
967
968 * tree-vect-stmts.c (vectorizable_call) Remove GOMP_SIMD_LANE code.
969
970 2016-06-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
971
972 * config/arm/thumb1.md (*thumb1_mulsi3): Fix typos in comment.
973
974 2016-06-03 Jakub Jelinek <jakub@redhat.com>
975
976 PR middle-end/71387
977 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): If redirecting
978 to noreturn e->callee->decl that has void return type and void
979 arguments, adjust gimple_call_fntype and remove lhs even if it had
980 previously addressable type.
981
982 2016-06-02 Jeff Law <law@redhat.com>
983
984 PR tree-optimization/71328
985 * tree-ssa-threadupdate.c (duplicate_thread_path): Fix off-by-one
986 error when checking for a jump back onto the copied path.
987
988 2016-06-02 David Malcolm <dmalcolm@redhat.com>
989
990 * config/microblaze/microblaze.c (get_branch_target): Add return
991 NULL_RTX for the non-CALL_P case.
992 (insert_wic_for_ilb_runout): Remove unused local "wic_addr1".
993 (insert_wic): Remove unused local "j".
994
995 2016-06-02 Martin Liska <mliska@suse.cz>
996
997 * predict.def: Fix typo in PRED_FORTRAN_FAIL_IO display name.
998
999 2016-06-02 H.J. Lu <hongjiu.lu@intel.com>
1000 Julia Koval <julia.koval@intel.com>
1001
1002 * function.c (assign_parm_setup_stack): Force source into a
1003 register if needed.
1004 * target.def (function_incoming_arg): Update documentation to
1005 allow arbitrary address computation based on hard register.
1006 * doc/tm.texi: Regenerated.
1007
1008 2016-06-02 Martin Liska <mliska@suse.cz>
1009
1010 * predict.c (combine_predictions_for_bb): Fix first match in
1011 cases where a first predictor contains more than one occurence
1012 in list of predictors. Take the best value in such case.
1013
1014 2016-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1015
1016 PR rtl-optimization/71295
1017 * rtlanal.c (subreg_get_info): If taking a subreg at the requested
1018 offset would go over the size of the inner mode reject it.
1019
1020 2016-06-02 Jakub Jelinek <jakub@redhat.com>
1021
1022 * config/i386/sse.md (*vec_concatv4si): Use v=v,v instead of
1023 x=x,x and v=v,m instead of x=x,m.
1024
1025 * config/i386/sse.md (*vec_concatv2si_sse4_1): Add avx512dq v=Yv,rm
1026 alternative. Change x=x,x alternative to v=Yv,Yv and x=rm,C
1027 alternative to v=rm,C.
1028
1029 * config/i386/sse.md (*vec_concatv2di): Add x86_avx512dq v=Yv,rm
1030 alternative. Change x=xm,C alternative to v=vm,C, x=x,x alternative
1031 to v=Yv,Yv and x=x,m to v=v,m. Use maybe_evex prefix attribute
1032 instead of vex for the last two above mentioned alternatives.
1033
1034 2016-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1035
1036 PR target/70830
1037 * config/arm/arm.c (arm_output_multireg_pop): Guard "pop" on update.
1038
1039 2016-06-02 Segher Boessenkool <segher@kernel.crashing.org>
1040
1041 * config/rs6000/dfp.md (trunctddd2): Correct the "length" attribute.
1042
1043 2016-06-01 David Malcolm <dmalcolm@redhat.com>
1044
1045 * config/rl78/rl78.c (rl78_expand_prologue): Convert local
1046 from int to unsigned.
1047
1048 2016-05-31 Michael Meissner <meissner@linux.vnet.ibm.com>
1049
1050 * config/rs6000/vsx.md (vsx_splat_<mode>, V2DI/V2DF): Simplify
1051 alternatives, eliminating preferred register class. Add support
1052 for the MTVSRDD instruction in ISA 3.0.
1053 (vsx_splat_v4si_internal): Use splat_input_operand instead of
1054 reg_or_indexed_operand.
1055 (vsx_splat_v4sf_internal): Likewise.
1056
1057 2016-05-31 Michael Meissner <meissner@linux.vnet.ibm.com>
1058
1059 PR target/71186
1060 * config/rs6000/vsx.md (xxspltib_<mode>_nosplit): Add alternatives
1061 for loading up all 0's or all 1's.
1062
1063 2016-06-01 Thomas Preud'homme <thomas.preudhomme@arm.com>
1064
1065 * doc/sourcebuild.texi (arm_acq_rel): Document new effective target.
1066
1067 2016-06-01 Eduard Sanou <dhole@openmailbox.org>
1068
1069 * doc/cppenv.texi: Note that the `%s` in `date` is a non-standard
1070 extension.
1071 * gcc.c (driver_handle_option): Call set_source_date_epoch_envvar.
1072 * gcc.c (set_source_date_epoch_envvar): New function, sets
1073 the SOURCE_DATE_EPOCH environment variable to the current time.
1074
1075 2016-06-01 Eric Botcazou <ebotcazou@adacore.com>
1076
1077 * tree-vect-loop.c (vect_determine_vectorization_factor): Also compute
1078 the factor for live Phi nodes.
1079
1080 2016-06-01 Jan Hubicka <hubicka@ucw.cz>
1081
1082 * loop-dolop.c (doloop_optimize): Us likely max iteration bound.
1083 * tree-parloops.c (parallelize_loops): likewise.
1084 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop,
1085 tree_unswitch_outer_loop): likewise.
1086
1087 2016-06-01 Jakub Jelinek <jakub@redhat.com>
1088
1089 PR middle-end/71371
1090 * gimplify.c (gimplify_omp_for): Temporarily clear gimplify_omp_ctxp
1091 around creation of the temporary.
1092
1093 2016-06-01 Richard Biener <rguenther@suse.de>
1094
1095 PR tree-optimization/71366
1096 * tree-ssa-loop-ivcanon.c (edges_to_remove): New global.
1097 (unloop_loops): Move removing edges here ...
1098 (try_unroll_loop_completely): ... from here.
1099 (try_peel_loop): ... and here.
1100 (tree_unroll_loops_completely_1): Track parent loops via
1101 bitmap of header BBs.
1102 (tree_unroll_loops_completely): Adjust for that.
1103
1104 2016-06-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
1105
1106 * config/rs6000/altivec.h (vec_slv): New macro.
1107 (vec_srv): New macro.
1108 * config/rs6000/altivec.md (UNSPEC_VSLV): New value.
1109 (UNSPEC_VSRV): New value.
1110 (vslv): New insn.
1111 (vsrv): New insn.
1112 * config/rs6000/rs6000-builtin.def (vslv): New builtin definition.
1113 (vsrv): New builtin definition.
1114 * config/rs6000/rs6000-c.c (P9V_BUILTIN_VSLV): Macro expansion to
1115 define argument types for new builtin.
1116 (P9V_BUILTIN_VSRV): Macro expansion to define argument types for
1117 new builtin.
1118 * doc/extend.texi: Document the new vec_vslv and vec_srv built-in
1119 functions.
1120
1121 2016-06-01 Uros Bizjak <ubizjak@gmail.com>
1122 Jocelyn Mayer <l_indien@magic.fr>
1123
1124 PR target/67310
1125 * config/i386/driver-i386.c (host_detect_local_cpu): Correctly
1126 detect processor family for signature_CENTAUR_ebx.
1127 <case PROCESSOR_I486>: Pass c3, winchip2 or winchip-c6 for
1128 signature_CENTAUR_ebx.
1129 <case PROCESSOR _PENTIUMPRO>: Pass c3-2 for signature_CENTAUR_ebx.
1130 <default>: Pass x86-64 for has_longmode.
1131
1132 2016-06-01 Nathan Sidwell <nathan@acm.org>
1133
1134 * config/nvptx/nvptx.c (nvptx_assemble_undefined_decl): Reject
1135 undefined weak.
1136
1137 2016-06-01 Richard Biener <rguenther@suse.de>
1138
1139 PR tree-optimization/71261
1140 * tree-vect-patterns.c (check_bool_pattern): Gather a hash-set
1141 of stmts successfully put in the bool pattern. Remove
1142 single-use restriction.
1143 (adjust_bool_pattern_cast): Add cast at the use site via the
1144 pattern def sequence.
1145 (adjust_bool_pattern): Remove recursion, maintain a hash-map
1146 of patterned defs. Use the pattern def seqence instead of
1147 multiple independent patterns.
1148 (sort_after_uid): New qsort compare function.
1149 (adjust_bool_stmts): New function to process stmts in the bool
1150 pattern in IL order.
1151 (vect_recog_bool_pattern): Adjust.
1152 * tree-if-conv.c (ifcvt_split_def_stmt): Remove.
1153 (ifcvt_walk_pattern_tree): Likewise.
1154 (stmt_is_root_of_bool_pattern): Likewise.
1155 (ifcvt_repair_bool_pattern): Likewise.
1156 (tree_if_conversion): Do not call ifcvt_repair_bool_pattern.
1157
1158 2016-06-01 Jan Hubicka <hubicka@ucw.cz>
1159
1160 * loop-unroll.c (decide_unroll_constant_iterations,
1161 decide_unroll_runtime_iterations, decide_unroll_stupid): Use
1162 likely upper bounds.
1163 * loop-iv.c (find_simple_exit): Dump likely upper bounds.
1164
1165 2016-06-01 Thomas Schwinge <thomas@codesourcery.com>
1166
1167 * tree-core.h (enum omp_clause_code): Remove
1168 OMP_CLAUSE_DEVICE_RESIDENT. Adjust all users.
1169
1170 2016-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1171
1172 * config/arm/sync.md (arm_store_exclusive<mode>):
1173 Use 'H' output modifier on operands[2] rather than creating a new
1174 entry in out-of-bounds memory of the operands array.
1175 (arm_store_release_exclusivedi): Likewise.
1176
1177 2016-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1178
1179 * config/arm/arm.c (arm_fusion_enabled_p): New function.
1180 * config/arm/arm-protos.h (arm_fusion_enabled_p): Declare prototype.
1181 * config/arm/crypto.md (crypto_<crypto_pattern>, CRYPTO_UNARY):
1182 Add "=w,0" alternative. Enable it when AES/AESMC fusion is enabled.
1183
1184 2016-06-01 Eric Botcazou <ebotcazou@adacore.com>
1185
1186 * tree-vect-loop.c (vect_determine_vectorization_factor): Also take
1187 into account live statements for mask producers.
1188
1189 2016-06-01 Richard Biener <rguenther@suse.de>
1190
1191 PR tree-optimization/71311
1192 * match.pd (@0 < @1 && @0 < @2 -> @0 < min(@1,@2)): Add :c and
1193 restrict to non-INTEGER_CST @0.
1194
1195 2016-06-01 Richard Biener <rguenther@suse.de>
1196
1197 * match.pd ((A & B) - (A & ~B) -> B - (A ^ B)): Add missing :c.
1198 (relational patterns): Use :c to avoid pattern duplications.
1199
1200 2016-06-01 Richard Biener <rguenther@suse.de>
1201
1202 * genmatch.c (comparison_code_p): New predicate.
1203 (swap_tree_comparison): New function.
1204 (commutate): Add for_vec parameter to append new for entries.
1205 Support commutating relational operators by swapping it alongside
1206 operands.
1207 (lower_commutative): Adjust.
1208 (dt_simplify::gen): Do not pass artificial operators to gen
1209 functions.
1210 (decision_tree::gen): Do not add artificial operators as parameters.
1211 (parser::parse_expr): Verify operator commutativity when :c is
1212 applied. Allow :C to override this.
1213 * match.pd: Adjust patterns to use :C instead of :c where required.
1214
1215 2016-06-01 Patrick Palka <ppalka@gcc.gnu.org>
1216
1217 PR tree-optimization/71077
1218 * tree-ssa-threadedge.c (simplify_control_stmt_condition_1): In
1219 the combining step, use boolean_false_node and boolean_true_node
1220 as the designated false/true return values.
1221
1222 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
1223
1224 * predict.def (PRED_LOOP_EXTRA_EXIT): Define.
1225 * predict.c (predict_iv_comparison): Also check PRED_LOOP_EXTRA_EXIT.
1226 (predict_extra_loop_exits): Use PRED_LOOP_EXTRA_EXIT instead of
1227 PRED_LOOP_EXIT.
1228
1229 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
1230
1231 * doc/invoke.texi (-frename-registers): Drop -fpeel-loops from list
1232 of flags impliying the register renaming.
1233 * toplev.c (process_options): Do not imply flag_rename_registers with
1234 loop peeling.
1235
1236 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
1237
1238 * config/sh/sh.h (ASM_OUTPUT_SYMBOL_REF): Remove macro and use the
1239 default implementation.
1240
1241 2016-05-31 Nathan Sidwell <nathan@acm.org>
1242
1243 * dwarf2out.c (cur_line_info_table): Add GTY marker.
1244
1245 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
1246
1247 * config/sh/constraints.md (b): Remove constraint.
1248 * config/sh/predicates.md (arith_reg_operand): Remove
1249 TARGET_REGISTER_P.
1250 * config/sh/sh-modes.def (PDI): Remove.
1251 * config/sh/sh.c (sh_target_reg_class,
1252 sh_optimize_target_register_callee_saved): Remove functions.
1253 (sh_option_override): Don't set MASK_SAVE_ALL_TARGET_REGS.
1254 (sh_expand_epilogue): Update comment.
1255 (sh_hard_regno_mode_ok, sh_register_move_cost, calc_live_regs,
1256 sh_secondary_reload): Remove TARGET_REGS related code.
1257 * config/sh/sh.h (FIRST_TARGET_REG, LAST_TARGET_REG,
1258 TARGET_REGISTER_P): Remove macros.
1259 (SH_DBX_REGISTER_NUMBER, REG_ALLOC_ORDER): Remove target regs.
1260 * config/sh/sh.md (PR_MEDIA_REG, T_MEDIA_REG, FR23_REG, TR0_REG,
1261 TR1_REG, TR2_REG): Remove constants.
1262 * config/sh/sh.opt (SAVE_ALL_TARGET_REGS): Remove.
1263
1264 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
1265
1266 * config/sh/sh.md (adddi3, subdi3, negdi2, abs<mode>2): Remove
1267 define_expand patterns.
1268 (adddi3_compact): Rename to adddi3.
1269 (subdi3_compact): Rename to subdi3.
1270 (*negdi2): Rename to negdi2.
1271 (*abs<mode>2): Rename to abs<mode>2.
1272
1273 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
1274
1275 * config/rx/rx.md (FETCHOP_NO_MINUS): New code iterator.
1276 (atomic_<fetchop_name>_fetchsi): Extract minus operator into ...
1277 (atomic_sub_fetchsi): ... this new pattern.
1278 (mvtc): Add CC_REG clobber.
1279
1280 2016-05-31 Marek Polacek <polacek@redhat.com>
1281
1282 * gimplify.c (gimplify_switch_expr): Also handle GIMPLE_TRY.
1283
1284 2016-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1285
1286 * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Use
1287 aarch64_fusion_enabled_p to check for fusion capabilities.
1288
1289 2016-05-31 Richard Biener <rguenther@suse.de>
1290
1291 PR tree-optimization/71352
1292 * tree-ssa-reassoc.c (zero_one_operation): Handle op equal to
1293 minus one and a negate.
1294
1295 2016-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1296
1297 * config/aarch64/aarch64.c (aarch64_simd_attr_length_move): Delete.
1298 * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
1299 Delete prototype.
1300 * config/aarch64/iterators.md (insn_count): Add descriptive comment.
1301 * config/aarch64/aarch64-simd.md (*aarch64_mov<mode>, VSTRUCT modes):
1302 Remove use of aarch64_simd_attr_length_move, set length attribute
1303 directly.
1304 (*aarch64_be_movoi): Likewise.
1305 (*aarch64_be_movci): Likewise.
1306 (*aarch64_be_movxi): Likewise.
1307
1308 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
1309
1310 * loop-init.c (gate): Do not enale RTL loop unroller with -fpeel-loops.
1311 It no longer does that.
1312 * toplev.c (process_options): Do not enable flag_web with -fpeel-loops.
1313
1314 2016-05-31 Wladimir J. van der Laan <laanwj@gmail.com>
1315
1316 * config/aarch64/arm_neon.h (vdupb_laneq_s8): Remove spurious
1317 attribute __unused__.
1318
1319 2016-05-31 Thomas Preud'homme <thomas.preudhomme@arm.com>
1320
1321 * config/arm/arm-protos.h (arm_arch_thumb1): Declare.
1322 * config/arm/arm.c (arm_arch_thumb1): Define.
1323 (arm_option_override): Initialize arm_arch_thumb1.
1324 * config/arm/arm.h (arm_arch_thumb1): Declare.
1325 (TARGET_ARM_ARCH_ISA_THUMB): Use arm_arch_thumb to determine if target
1326 support Thumb-1 ISA.
1327
1328 2016-05-31 Kirill Yukhin <kirill.yukhin@intel.com>
1329
1330 PR target/71346
1331 * config/i386/sse.md (define_insn_and_split "*vec_extractv4sf_0"): Use
1332 `Yv' for scalar operand.
1333
1334 2016-05-31 Tom de Vries <tom@codesourcery.com>
1335
1336 PR tree-optimization/69068
1337 * graphite-isl-ast-to-gimple.c (copy_bb_and_scalar_dependences): Handle
1338 phis with more than two args.
1339
1340 2016-05-30 Andreas Tobler <andreast@gcc.gnu.org>
1341
1342 * config.gcc: Move hard float support for arm*hf*-*-freebsd* into
1343 armv6*-*-freebsd* for FreeBSD 11. Eliminate the arm*hf*-*-freebsd*
1344 target.
1345
1346 2016-05-30 Jose E. Marchesi <jose.marchesi@oracle.com>
1347
1348 * config.gcc (sparc*-*-*): Support cpu_32, cpu_64, tune_32 and
1349 tune_64.
1350 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
1351 support on SPARC.
1352 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Add entries for
1353 cpu_32, cpu_64, tune_32 and tune_64.
1354 * config/sparc/sol2.h (OPTION_DEFAULT_SPECS): Likewise.
1355
1356 2016-05-30 Uros Bizjak <ubizjak@gmail.com>
1357
1358 * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
1359
1360 2016-05-30 Andi Kleen <ak@linux.intel.com>
1361
1362 * auto-profile.c (read_profile): Replace asserts with errors
1363 when file does not exist.
1364 * gcov-io.c (gcov_read_words): Dito.
1365
1366 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
1367
1368 * tree-cfg.c (print_loop): Print likely upper bounds.
1369
1370 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
1371
1372 * doc/invoke.texi (-fpeel-loops,-O3): Update documentation.
1373 * opts.c (default_options): Enable peel loops at -O3.
1374 * tree-ssa-loop-ivcanon.c (peeled_loops): New static var.
1375 (try_peel_loop): Do not re-peel already peeled loops;
1376 use likely upper bounds; fix profile updating.
1377 (pass_complete_unroll::execute): Initialize peeled_loops.
1378
1379 2016-05-30 Martin Liska <mliska@suse.cz>
1380
1381 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Scale
1382 computed costs by frequency of BB they belong to.
1383 (get_scaled_computation_cost_at): New function.
1384
1385 2016-05-30 Alexander Monakov <amonakov@ispras.ru>
1386 Marc Glisse <marc.glisse@inria.fr>
1387
1388 PR tree-optimization/71289
1389 * match.pd (-1 / B < A, A > -1 / B): New transformations.
1390
1391 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
1392
1393 * tree-vect-loop.c (vect_transform_loop): Update likely bounds.
1394
1395 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
1396
1397 * tree-ssa-loop-ivcanon.c (try_peel_loop): Correctly set wont_exit
1398 for peeled copies; avoid underflow when updating estimates; correctly
1399 scale loop profile.
1400
1401 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
1402
1403 * tree-ssa-reassoc.ci (swap_ops_for_binary_stmt): Fix typo from commit
1404 r236875. Corrected oe3 to oe2 as obvious.
1405
1406 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
1407
1408 PR middle-end/71269
1409 PR middle-end/71252
1410 * tree-ssa-reassoc.c (insert_stmt_before_use): Use find_insert_point so
1411 that inserted stmt will not dominate stmts that defines its operand.
1412 (rewrite_expr_tree): Add stmt_to_insert before adding the use stmt.
1413 (rewrite_expr_tree_parallel): Likewise.
1414
1415 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
1416
1417 PR middle-end/71252
1418 * tree-ssa-reassoc.c (swap_ops_for_binary_stmt): Fix swap such that
1419 all fields including stmt_to_insert are swapped.
1420
1421 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
1422
1423 * predict.h (force_edge_cold): Declare.
1424 * predict.c (force_edge_cold): New function.
1425 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Fix profile
1426 updating.
1427 (canonicalize_loop_induction_variables): Fix formating.
1428
1429 2016-05-30 Eric Botcazou <ebotcazou@adacore.com>
1430
1431 * config/visium/visium.c (visium_split_double_add): Minor tweaks.
1432 (visium_expand_copysign): Use gen_int_mode directly.
1433 (visium_compute_frame_size): Minor tweaks.
1434
1435 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
1436
1437 * tree-vect-loop.c (vect_analyze_loop_2): Use
1438 likely_max_stmt_executions_int.
1439
1440 2016-05-30 Tom de Vries <tom@codesourcery.com>
1441
1442 PR tree-optimization/69067
1443 * graphite-isl-ast-to-gimple.c (get_def_bb_for_const): Remove assert.
1444
1445 2016-05-29 Uros Bizjak <ubizjak@gmail.com>
1446
1447 PR target/71245
1448 * config/i386/sync.md (define_peephole2 atomic_storedi_fpu):
1449 New peepholes to remove unneeded fild/fistp pairs.
1450 (define_peephole2 atomic_loaddi_fpu): Ditto.
1451
1452 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
1453
1454 * predict.c (maybe_hot_frequency_p): Avoid division.
1455
1456 2016-05-28 Gerald Pfeifer <gerald@pfeifer.com>
1457
1458 * doc/install.texi: Use https for shop.fsf.org.
1459
1460 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
1461
1462 * tree-ssa-loop-ivopts.c (estimated_stmt_executions_int): Use
1463 likely_max_stmt_executions_int.
1464
1465 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
1466
1467 * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
1468 likely_max_stmt_executions_int.
1469
1470 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
1471
1472 * profile.c (compute_branch_probabilities): Do not report hitrates
1473 here.
1474 (branch_prob): Report hitrates here.
1475 * predict.c (gimple_predict_edge): Do not assert profile status;
1476 fix formatting issues.
1477
1478 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
1479
1480 * predict.c (edge_predicted_by_p): New function.
1481 (predict_paths_for_bb): Do not put multiple predictions of the same type
1482 on one edge.
1483
1484 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
1485
1486 * tree-ssa-loop-niter.c (number_of_iterations_exit): Revert accidental
1487 commit.
1488
1489 2016-05-28 Alan Modra <amodra@gmail.com>
1490
1491 * dominance.c (verify_dominators): Don't segfault on NULL imm_bb.
1492
1493 2016-05-28 Alan Modra <amodra@gmail.com>
1494
1495 PR rtl-optimization/71275
1496 * ira.c (ira): Free dominance info.
1497
1498 2016-05-27 Gerald Pfeifer <gerald@pfeifer.com>
1499
1500 * doc/sourcebuild.texi: New address for upstream Go repository.
1501
1502 2016-05-27 Thomas Preud'homme <thomas.preudhomme@arm.com>
1503
1504 * config/arm/arm.h (TARGET_ARM_V6M): Remove.
1505 (TARGET_ARM_V7M): Likewise.
1506
1507 2016-05-26 Jeff Law <law@redhat.com>
1508
1509 * tree-ssa-threadedge.c: Remove include of tree-ssa-threadbackward.h.
1510 (thread_across_edge): Remove calls to find_jump_threads_backwards.
1511 * passes.def: Add jump threading passes before DOM/VRP.
1512 * tree-ssa-threadbackward.c (find_jump_threads_backwards): Change
1513 argument to a basic block from an edge. Remove tests which are
1514 handled elsewhere.
1515 (pass_data_thread_jumps, class pass_thread_jumps): New.
1516 (pass_thread_jumps::gate, pass_thread_jumps::execute): New.
1517 (make_pass_thread_jumps): Likewise.
1518 * tree-pass.h (make_pass_thread_jumps): Declare.
1519
1520 2016-05-27 Eric Botcazou <ebotcazou@adacore.com>
1521
1522 * config/visium/visium-protos.h (split_double_move): Rename into...
1523 (visium_split_double_move): ...this.
1524 (visium_split_double_add): Declare.
1525 * config/visium/visium.c (split_double_move): Rename into...
1526 (visium_split_double_move): ...this.
1527 (visium_split_double_add): New function.
1528 (visium_expand_copysign): Renumber operands for consistency.
1529 * config/visium/visium.md (DImode move splitter): Adjust to renaming.
1530 (DFmode move splitter): Likewise.
1531 (*addi3_insn): Split by means of visium_split_double_add.
1532 (*adddi3_insn_flags): Delete.
1533 (*plus_plus_sltu<subst_arith>): New insn.
1534 (*subdi3_insn): Split by means of visium_split_double_add.
1535 (subdi3_insn_flags): Delete.
1536 (*minus_minus_sltu<subst_arith>): New insn.
1537 (*negdi2_insn): Split by means of visium_split_double_add.
1538 (*negdi2_insn_flags): Delete.
1539
1540 2016-05-27 Ulrich Weigand <uweigand@de.ibm.com>
1541
1542 * configure.ac: Treat a --with-headers option without argument
1543 the same as the default (i.e. consult sys-include directory).
1544 * configure: Regenerate.
1545
1546 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1547
1548 * config/aarch64/aarch64.c (aarch64_fusion_enabled_p): New function.
1549 * config/aarch64/aarch64-protos.h (aarch64_fusion_enabled_p): Declare
1550 prototype.
1551 * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aesmc_op>v16qi):
1552 Add "=w,0" alternative. Enable it when AES/AESMC fusion is enabled.
1553
1554 2016-05-27 Jiong Wang <jiong.wang@arm.com>
1555
1556 PR target/63596
1557 * config/aarch64/aarch64.c (aarch64_expand_builtin_va_start): Honor
1558 tree-stdarg analysis results.
1559 (aarch64_setup_incoming_varargs): Likewise.
1560
1561 2016-05-27 Jiong Wang <jiong.wang@arm.com>
1562
1563 * config/aarch64/aarch64.c (aarch64_build_builtin_va_list): Initialize
1564 va_list_gpr_counter_field and va_list_fpr_counter_field.
1565
1566 2016-05-27 Wilco Dijkstra <wdijkstr@arm.com>
1567
1568 PR67609
1569 * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Remove.
1570 * config/aarch64/aarch64.c
1571 (aarch64_cannot_change_mode_class): Remove function.
1572 * config/aarch64/aarch64-protos.h
1573 (aarch64_cannot_change_mode_class): Remove.
1574
1575 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
1576
1577 * cfgloop.c (record_niter_bound): Record likely upper bounds.
1578 (likely_max_stmt_executions_int, get_likely_max_loop_iterations,
1579 get_likely_max_loop_iterations_int): New.
1580 * cfgloop.h (struct loop): Add nb_iterations_likely_upper_bound,
1581 any_likely_upper_bound.
1582 (get_likely_max_loop_iterations_int, get_likely_max_loop_iterations):
1583 Declare.
1584 * cfgloopmanip.c (copy_loop_info): Copy likely upper bounds.
1585 * loop-unroll.c (unroll_loop_constant_iterations): Update likely
1586 upper bound.
1587 (unroll_loop_constant_iterations): Likewise.
1588 (unroll_loop_runtime_iterations): Likewise.
1589 * lto-streamer-in.c (input_cfg): Stream likely upper bounds.
1590 * lto-streamer-out.c (output_cfg): Likewise.
1591 * tree-ssa-loop-ivcanon.c (try_peel_loop): Update likely upper
1592 bounds.
1593 (canonicalize_loop_induction_variables): Dump likely upper bounds.
1594 * tree-ssa-loop-niter.c (record_estimate): Record likely upper bounds.
1595 (likely_max_loop_iterations): New.
1596 (likely_max_loop_iterations_int): New.
1597 (likely_max_stmt_executions): New.
1598 * tree-ssa-loop-niter.h (likely_max_loop_iterations,
1599 likely_max_loop_iterations_int, likely_max_stmt_executions_int,
1600 likely_max_stmt_executions): Declare.
1601
1602 2016-05-27 Marek Polacek <polacek@redhat.com>
1603
1604 PR middle-end/71308
1605 * gimple-fold.c (gimple_fold_call): Check that LHS is not null.
1606
1607 2016-05-27 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1608
1609 * config/s390/s390.md (2x risbg splitters): Use
1610 reg_overlap_mentioned_p instead of rtx_equal_p.
1611
1612 2016-05-27 Dominik Vogt <vogt@linux.vnet.ibm.com>
1613
1614 * combine.c (make_compound_operation): Take known zero bits into
1615 account when checking for possible zero_extend.
1616
1617 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1618
1619 * config/aarch64/aarch64.md (ashl<mode>3, SHORT modes):
1620 Use const_int_operand for operand 2 predicate. Simplify expand code
1621 as a result.
1622
1623 2016-05-27 Ilya Enkovich <ilya.enkovich@intel.com>
1624
1625 PR middle-end/71279
1626 * fold-const.c (fold_ternary_loc): Don't fold VEC_COND_EXPR
1627 into comparison.
1628
1629 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1630
1631 * config/aarch64/aarch64-modes.def (CC_ZESWP, CC_SESWP): Delete.
1632 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Remove condition
1633 that returns CC_SESWPmode and CC_ZESWPmode.
1634 (aarch64_get_condition_code_1): Remove handling of CC_SESWPmode
1635 and CC_SESWPmode.
1636 (aarch64_rtx_costs): Likewise.
1637
1638 2016-05-26 Michael Meissner <meissner@linux.vnet.ibm.com>
1639
1640 * config/rs6000/rs6000.c (rs6000_emit_p9_fp_minmax): New function
1641 for ISA 3.0 min/max support.
1642 (rs6000_emit_p9_fp_cmove): New function for ISA 3.0 floating point
1643 conditional move support.
1644 (rs6000_emit_cmove): Call rs6000_emit_p9_fp_minmax and
1645 rs6000_emit_p9_fp_cmove if the ISA 3.0 instructions are
1646 available.
1647 * config/rs6000/rs6000.md (SFDF2): New iterator to allow doing
1648 conditional moves where the comparison type is different from move
1649 type.
1650 (fp_minmax): New code iterator for smin/smax.
1651 (minmax): New code attributes for min/max.
1652 (SMINMAX): Likewise.
1653 (smax<mode>3): Combine min, max insns into one insn using the
1654 fp_minmax code iterator. Add support for ISA 3.0 min/max
1655 instructions that don't need -ffast-math.
1656 (s<minmax><mode>3): Likewise.
1657 (smax<mode>3_vsx): Likewise.
1658 (smin<mode>3): Likewise.
1659 (s<minmax><mode>3_vsx): Likewise.
1660 (smin<mode>3_vsx): Likewise.
1661 (pre-VSX min/max splitters): Likewise.
1662 (s<minmax><mode>3_fpr): Likewise.
1663 (movsfcc): Rewrite floating point conditional moves to combine
1664 SFmode/DFmode into a single insn.
1665 (mov<mode>cc): Likewise.
1666 (movdfcc): Likewise.
1667 (fselsfsf4): Combine FSEL cases into a single insn, using SFDF and
1668 SFDF2 iterators to handle all combinations.
1669 (fseldfsf4): Likewise.
1670 (fsel<SFDF:mode><SFDF2:mode>4): Likewise.
1671 (fseldfdf4): Likewise.
1672 (fselsfdf4): Likewise.
1673 (mov<SFDF:mode><SFDF2:mode>cc_p9): Add support for the ISA 3.0
1674 comparison instructions that set a 0/-1 mask, and use it for
1675 floating point conditional move via XXSEL.
1676 (fpmask<mode>): Likewise.
1677 (xxsel<mode>): Likewise.
1678 * config/rs6000/predicates.md (min_max_operator): Delete, no
1679 longer used.
1680 (fpmask_comparison_operaton): New insn for ISA 3.0 comparison
1681 instructions that generate a 0/-1 mask for use with XXSEL.
1682 * config/rs6000/rs6000.h (TARGET_MINMAX_SF): New helper macros to
1683 say whether floating point min/max is available, either through
1684 FSEL, ISA 2.06 min/max, and ISA 3.0 min/max instrucitons.
1685 (TARGET_MINMAX_DF): Likewise.
1686
1687 2016-05-27 Alan Modra <amodra@gmail.com>
1688
1689 PR rtl-optimization/71275
1690 * ira.c (ira): Call loop_optimizer_init to set up bb_loop_depth
1691 for update_equiv_regs and combine_and_move_insns.
1692
1693 2016-05-26 Uros Bizjak <ubizjak@gmail.com>
1694
1695 * config/i386/i386.md (*movqi_internal) <attr "isa">: Use
1696 if_then_else or cond RTXes to calculate attribute value.
1697 * config/i386/mmx.md (*vec_extractv2sf_1) <attr "prefix_rep">: Ditto.
1698 <attr "length_immediate>: Ditto.
1699 (*vec_extractv2sf_1) <attr "length_immediate">: Ditto.
1700 * config/i386/sse.md (sse_loadlps) <attr "length_immediate">: Ditto.
1701 (*vec_concatv2sf_sse4_1) <attr "isa">: Ditto.
1702 <attr "type">: Ditto.
1703 <attr "prefix_data16">: Ditto.
1704 <attr "prefix_extra">: Ditto.
1705 <attr "length_immediate">: Ditto.
1706 <attr "prefix">: Ditto.
1707 (vec_set<mode>_0) <attr "isa">: Ditto.
1708 <attr "prefix_extra">: Ditto.
1709 <attr "length_immediate">: Ditto.
1710 <attr "prefix">: Ditto.
1711 (*vec_interleave_highv2df) <attr "prefix_data16">: Ditto.
1712 (*vec_interleave_lowv2df) <attr "prefix_data16">: Ditto.
1713 (sse2_storelpd) <attr "prefix_data16">: Ditto.
1714 (sse2_loadhpd) <attr "prefix_data16">: Ditto.
1715 (sse2_loadlpd) <attr "prefix_data16">: Ditto.
1716 <attr "length_immediate">: Ditto.
1717 <attr "prefix">: Ditto.
1718 (sse2_movsd) <attr "length_immediate">: Ditto.
1719 <attr "prefix">: Ditto.
1720 (vec_concatv2df) <attr "isa">: Ditto.
1721 <attr "prefix">: Ditto.
1722 (*vec_extractv4si) <attr "prefix_extra">: Ditto.
1723 (*vec_extractv2di_1) <attr "isa">: Ditto.
1724 <attr "type">: Ditto.
1725 <attr "length_immediate">: Ditto.
1726 <attr "prefix_rex">: Ditto.
1727 <attr "prefix_extra">: Ditto.
1728 (*vec_concatv2si_sse4_1) <attr "type">: Ditto.
1729 <attr "prefix_extra">: Ditto.
1730 <attr "length_immediate">: Ditto.
1731 (vec_concatv2di) <attr "isa">: Ditto.
1732 <attr "prefix_extra">: Ditto.
1733 <attr "length_immediate">: Ditto.
1734 <attr "prefix">: Ditto.
1735
1736 2016-05-26 Martin Liska <mliska@suse.cz>
1737
1738 * tree-ssa-loop-ivopts.c (comp_cost::infinite_cost_p): New
1739 function.
1740 (operator+): Likewise.
1741 (operator-): Likewise.
1742 (comp_cost::operator+=): Likewise.
1743 (comp_cost::operator-=): Likewise.
1744 (comp_cost::operator/=): Likewise.
1745 (comp_cost::operator*=): Likewise.
1746 (operator<): Likewise.
1747 (operator==): Likewise.
1748 (operator<=): Likewise.
1749 (new_cost): Remove.
1750 (infinite_cost_p): Likewise.
1751 (add_costs): Likewise.
1752 (sub_costs): Likewise.
1753 (compare_costs): Likewise.
1754 (set_group_iv_cost): Use the newly introduced functions.
1755 (get_address_cost): Likewise.
1756 (get_shiftadd_cost): Likewise.
1757 (force_expr_to_var_cost): Likewise.
1758 (split_address_cost): Likewise.
1759 (ptr_difference_cost): Likewise.
1760 (difference_cost): Likewise.
1761 (get_computation_cost_at): Likewise.
1762 (determine_group_iv_cost_generic): Likewise.
1763 (determine_group_iv_cost_address): Likewise.
1764 (determine_group_iv_cost_cond): Likewise.
1765 (autoinc_possible_for_pair): Likewise.
1766 (determine_group_iv_costs): Likewise.
1767 (cheaper_cost_pair): Likewise.
1768 (iv_ca_recount_cost): Likewise.
1769 (iv_ca_set_no_cp): Likewise.
1770 (iv_ca_set_cp): Likewise.
1771 (iv_ca_cost): Likewise.
1772 (iv_ca_new): Likewise.
1773 (iv_ca_dump): Likewise.
1774 (iv_ca_narrow): Likewise.
1775 (iv_ca_prune): Likewise.
1776 (iv_ca_replace): Likewise.
1777 (try_add_cand_for): Likewise.
1778 (try_improve_iv_set): Likewise.
1779 (find_optimal_iv_set): Likewise.
1780
1781 2016-05-26 Richard Sandiford <richard.sandiford@arm.com>
1782
1783 * tree-ssa-loop-ivopts.c (loop_body_includes_call): Don't assume
1784 that internal functions will clobber all caller-saved registers.
1785
1786 2016-05-26 Wilco Dijkstra <wdijkstr@arm.com>
1787
1788 * config/aarch64/aarch64.c (aarch64_case_values_threshold):
1789 Return a better case_values_threshold when optimizing.
1790
1791 2016-05-26 Wilco Dijkstra <wdijkstr@arm.com>
1792
1793 * config/aarch64/aarch64-simd.md (aarch64_combinez):
1794 Add ? to integer variant.
1795 (aarch64_combinez_be): Likewise.
1796
1797 2016-05-26 Jakub Jelinek <jakub@redhat.com>
1798
1799 * config/i386/sse.md (*vcvtps2ph_store<mask_name>): Use v constraint
1800 instead of x constraint.
1801 (vcvtps2ph256<mask_name>): Likewise.
1802
1803 * config/i386/sse.md (*ssse3_palignr<mode>_perm): Add avx512bw
1804 alternative. Formatting fix.
1805
1806 * config/i386/sse.md
1807 (<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Rename
1808 to ...
1809 (avx512vl_shuf_<shuffletype>32x4_1<mask_name>): ... this.
1810 (*avx_vperm_broadcast_v4sf): Use v constraint instead of x. Use
1811 maybe_evex prefix instead of vex.
1812 (*avx_vperm_broadcast_<mode>): Use v constraint instead of x. Handle
1813 EXT_REX_SSE_REG_P (op0) case in the splitter.
1814
1815 2016-05-25 Jeff Law <law@redhat.com>
1816
1817 PR tree-optimization/71272
1818 * tree-ssa-threadbackward.c (convert_and_register_jump_thread_path):
1819 Update comments. Add test for empty path.
1820
1821 2016-05-25 Bill Seurer <seurer@linux.vnet.ibm.com>
1822
1823 * config/rs6000/altivec.h (vec_cmpne): Add #define for vec_cmpne.
1824 * config/rs6000/rs6000-builtin.def (vec_cmpne): Add vec_cmpne as a
1825 special case builtin.
1826 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
1827 code for ALTIVEC_BUILTIN_VEC_CMPNE.
1828 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
1829 for __builtin_vec_cmpne.
1830
1831 2016-05-25 Eric Botcazou <ebotcazou@adacore.com>
1832
1833 * tree-ssa-phiopt.c (factor_out_conditional_conversion): Remove
1834 redundant test and bail out if the type of the new operand is not
1835 a GIMPLE register type after stripping a VIEW_CONVERT_EXPR.
1836
1837 2016-05-25 Uros Bizjak <ubizjak@gmail.com>
1838
1839 * config/i386/i386.opt (ix86_target_flags_explicit): Remove.
1840 (x_ix86_target_flags_explicit): Remove.
1841 * config/i386/i386.c (ix86_function_specific_save): Do not copy
1842 x_ix86_target_flags_explicit.
1843 (ix86_function_specific_restore): Ditto.
1844
1845 2016-05-25 Uros Bizjak <ubizjak@gmail.com>
1846 H.J. Lu <hongjiu.lu@intel.com>
1847
1848 PR target/70738
1849 * common/config/i386/i386-common.c
1850 (OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): New.
1851 (ix86_handle_option) <case OPT_mgeneral_regs_only>: Disable
1852 MPX, MMX, SSE and x87 instructions for -mgeneral-regs-only.
1853 * config/i386/i386.opt (ix86_target_flags): Add new Variable.
1854 (-mgeneral-regs-only): Add new option.
1855 * config/i386/i386.c (ix86_option_override_internal): Don't enable
1856 x87 instructions if only general registers are allowed.
1857 (ix86_target_string): Add ix86_flags argument. Handle additional
1858 flags options through ix86_flags argument. Update all callers.
1859 * doc/invoke.texi: Document -mgeneral-regs-only.
1860
1861 2016-05-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1862
1863 PR rtl-optimization/66940
1864 * ifcvt.c (noce_get_alt_condition): Check that incrementing or
1865 decrementing desired_val will not overflow before performing these
1866 operations.
1867
1868 2016-05-25 Ilya Verbin <ilya.verbin@intel.com>
1869
1870 * config/i386/i386-builtin-types.def: Add V16SI_FTYPE_V16SF,
1871 V8DF_FTYPE_V8DF_ROUND, V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND.
1872 * config/i386/i386.c (enum ix86_builtins): Add
1873 IX86_BUILTIN_CVTPS2DQ512_MASK, IX86_BUILTIN_FLOORPS512,
1874 IX86_BUILTIN_FLOORPD512, IX86_BUILTIN_CEILPS512, IX86_BUILTIN_CEILPD512,
1875 IX86_BUILTIN_TRUNCPS512, IX86_BUILTIN_TRUNCPD512,
1876 IX86_BUILTIN_CVTPS2DQ512, IX86_BUILTIN_VEC_PACK_SFIX512,
1877 IX86_BUILTIN_FLOORPS_SFIX512, IX86_BUILTIN_CEILPS_SFIX512,
1878 IX86_BUILTIN_ROUNDPS_AZ_SFIX512.
1879 (builtin_description bdesc_args): Add __builtin_ia32_floorps512,
1880 __builtin_ia32_ceilps512, __builtin_ia32_truncps512,
1881 __builtin_ia32_floorpd512, __builtin_ia32_ceilpd512,
1882 __builtin_ia32_truncpd512, __builtin_ia32_cvtps2dq512,
1883 __builtin_ia32_vec_pack_sfix512, __builtin_ia32_roundps_az_sfix512,
1884 __builtin_ia32_floorps_sfix512, __builtin_ia32_ceilps_sfix512.
1885 Change IX86_BUILTIN_CVTPS2DQ512 to IX86_BUILTIN_CVTPS2DQ512_MASK for
1886 __builtin_ia32_cvtps2dq512_mask.
1887 (ix86_expand_args_builtin): Handle V8DF_FTYPE_V8DF_ROUND,
1888 V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF.
1889 (ix86_builtin_vectorized_function): Handle builtins mentioned above.
1890 * config/i386/sse.md
1891 (<mask_codefor>avx512f_fix_notruncv16sfv16si<mask_name><round_name>):
1892 Rename to ...
1893 (avx512f_fix_notruncv16sfv16si<mask_name><round_name>): ... this.
1894 (<mask_codefor>avx512f_cvtpd2dq512<mask_name><round_name>): Rename
1895 to ...
1896 (avx512f_cvtpd2dq512<mask_name><round_name>): ... this.
1897 (avx512f_vec_pack_sfix_v8df): New define_expand.
1898 (avx512f_roundpd512): Rename to ...
1899 (avx512f_round<castmode>512): ... this. Change iterator.
1900 (avx512f_roundps512_sfix): New define_expand.
1901 (round<mode>2_sfix): Change iterator.
1902
1903 2016-05-25 Nick Clifton <nickc@redhat.com>
1904
1905 * config/msp430/msp430.c (msp430_attr): Produce an error if a
1906 static interrupt handler is detected.
1907 * config/msp430/msp430.h (LIB_SPEC): Do not use msp430.ld as the
1908 default linker script.
1909 * config/msp430/msp430.md (movpsihi2_lo): New pattern for loading
1910 the low part of a symbolic pointer.
1911
1912 2016-05-25 Richard Biener <rguenther@suse.de>
1913
1914 PR tree-optimization/71261
1915 * tree-if-conv.c (ifcvt_split_def_stmt): Walk uses on the
1916 interesting stmt instead of immediate uses when looking
1917 for the use operand to replace.
1918
1919 2016-05-25 Martin Liska <mliska@suse.cz>
1920
1921 * ipa-inline.c (edge_badness): Use 'w/' instead of 'w'.
1922
1923 2016-05-25 Richard Biener <rguenther@suse.de>
1924
1925 PR tree-optimization/71264
1926 * tree-vect-stmts.c (vect_init_vector): Properly deal with
1927 vector type val.
1928
1929 2016-05-25 Martin Liska <mliska@suse.cz>
1930
1931 PR tree-optimization/71239
1932 * tree.c (array_at_struct_end_p): Do not call operand_equal_p
1933 if DECL_SIZE is NULL.
1934
1935 2016-05-25 Richard Biener <rguenther@suse.de>
1936
1937 * timevar.def (TV_TREE_LOOP_IFCVT): Add.
1938 * tree-if-conv.c (pass_data_if_conversion): Use it.
1939
1940 2016-05-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
1941
1942 * cgraph.c (cgraph_node::get_availability): Fix typo in comment.
1943 * symtab.c (symtab_node::binds_to_current_def_p): Likewise.
1944 * varpool.c (varpool_node::get_availability): Likewise.
1945
1946 2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
1947
1948 * config/rs6000/altivec.md (VNEG iterator): New iterator for
1949 VNEGW/VNEGD instructions.
1950 (p9_neg<mode>2): New insns for ISA 3.0 VNEGW/VNEGD.
1951 (neg<mode>2): Add expander for V2DImode added in ISA 2.07, and
1952 support for ISA 3.0 VNEGW/VNEGD instructions.
1953
1954 2016-05-24 Cesar Philippidis <cesar@codesourcery.com>
1955
1956 * gimplify.c (omp_notice_variable): Use zero-length arrays for data
1957 pointers inside OACC_DATA regions.
1958 (gimplify_scan_omp_clauses): Prune firstprivate clause associated
1959 with OACC_DATA, OACC_ENTER_DATA and OACC_EXIT data regions.
1960 (gimplify_adjust_omp_clauses): Fix typo in comment.
1961
1962 2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
1963
1964 * config/rs6000/altivec.md (VParity): New mode iterator for vector
1965 parity built-in functions.
1966 (p9v_ctz<mode>2): Add support for ISA 3.0 vector count trailing
1967 zeros.
1968 (p9v_parity<mode>2): Likewise.
1969 * config/rs6000/vector.md (VEC_IP): New mode iterator for vector
1970 parity.
1971 (ctz<mode>2): ISA 3.0 expander for vector count trailing zeros.
1972 (parity<mode>2): ISA 3.0 expander for vector parity.
1973 * config/rs6000/rs6000-builtin.def (BU_P9_MISC_1): New macros for
1974 power9 built-ins.
1975 (BU_P9_64BIT_MISC_0): Likewise.
1976 (BU_P9_MISC_0): Likewise.
1977 (BU_P9V_AV_1): Likewise.
1978 (BU_P9V_AV_2): Likewise.
1979 (BU_P9V_AV_3): Likewise.
1980 (BU_P9V_AV_P): Likewise.
1981 (BU_P9V_VSX_1): Likewise.
1982 (BU_P9V_OVERLOAD_1): Likewise.
1983 (BU_P9V_OVERLOAD_2): Likewise.
1984 (BU_P9V_OVERLOAD_3): Likewise.
1985 (VCTZB): Add vector count trailing zeros support.
1986 (VCTZH): Likewise.
1987 (VCTZW): Likewise.
1988 (VCTZD): Likewise.
1989 (VPRTYBD): Add vector parity support.
1990 (VPRTYBQ): Likewise.
1991 (VPRTYBW): Likewise.
1992 (VCTZ): Add overloaded vector count trailing zeros support.
1993 (VPRTYB): Add overloaded vector parity support.
1994 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
1995 overloaded vector count trailing zeros and parity instructions.
1996 * config/rs6000/rs6000.md (wd mode attribute): Add V1TI and TI for
1997 vector parity support.
1998 * config/rs6000/altivec.h (vec_vctz): Add ISA 3.0 vector count
1999 trailing zeros support.
2000 (vec_cntlz): Likewise.
2001 (vec_vctzb): Likewise.
2002 (vec_vctzd): Likewise.
2003 (vec_vctzh): Likewise.
2004 (vec_vctzw): Likewise.
2005 (vec_vprtyb): Add ISA 3.0 vector parity support.
2006 (vec_vprtybd): Likewise.
2007 (vec_vprtybw): Likewise.
2008 (vec_vprtybq): Likewise.
2009 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
2010 the ISA 3.0 vector count trailing zeros and vector parity built-in
2011 functions.
2012
2013 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
2014
2015 * tree-ssa-reassoc.c (sort_by_operand_rank): Skip checking gimple_bb
2016 when there is stmt_to_insert.
2017
2018 2016-05-24 Martin Sebor <msebor@redhat.com>
2019
2020 PR c++/71147
2021 * tree.h (complete_or_array_type_p): New inline function.
2022
2023 2016-05-24 Jakub Jelinek <jakub@redhat.com>
2024
2025 * config/i386/i386.h (TARGET_AVOID_4BYTE_PREFIXES): Define.
2026 * config/i386/constraints.md (Yr): Test TARGET_AVOID_4BYTE_PREFIXES
2027 rather than X86_TUNE_AVOID_4BYTE_PREFIXES.
2028
2029 * config/i386/sse.md (<sse4_1>_round<ssemodesuffix><avxsizesuffix>):
2030 Limit 1st alternative to noavx isa, split 2nd alternative into one
2031 noavx and one avx alternative, use *x and Bm in the former and
2032 x and m in the latter.
2033
2034 * config/i386/sse.md (vec_set<mode>_0): Use sse4_noavx isa instead
2035 of sse4 for the first alternative, drop %v from the template
2036 and d operand modifier. Split second alternative into one sse4_noavx
2037 and one avx alternative, use *x instead of *v in the former and v
2038 instead of *v in the latter.
2039 (*sse4_1_extractps): Use noavx isa instead of * for the first
2040 alternative, drop %v from the template. Split second alternative into
2041 one noavx and one avx alternative, use *x instead of *v in the
2042 former and v instead of *v in the latter.
2043 (<vi8_sse4_1_avx2_avx512>_movntdqa): Guard the first 2 alternatives
2044 with noavx and the last one with avx.
2045 (sse4_1_phminposuw): Guard first alternative with noavx isa,
2046 split the second one into one noavx and one avx alternative,
2047 use *x and Bm in the former and x and m in the latter one.
2048 (<sse4_1>_ptest<mode>): Use noavx instead of * for the first two
2049 alternatives.
2050
2051 * config/i386/sse.md (sse4_1_<code>v8qiv8hi2<mask_name>): Limit
2052 first two alternatives to noavx, use *x instead of *v in the second
2053 one, add avx alternative without *.
2054 (sse4_1_<code>v4qiv4si2<mask_name>, sse4_1_<code>v4hiv4si2<mask_name>,
2055 sse4_1_<code>v2qiv2di2<mask_name>, sse4_1_<code>v2hiv2di2<mask_name>,
2056 sse4_1_<code>v2siv2di2<mask_name>): Likewise.
2057
2058 2016-05-24 Jeff Law <law@redhat.com>
2059
2060 * tree-ssa-threadbackwards.c (convert_and_register_jump_thread_path):
2061 New function, extracted from...
2062 (fsm_find_control_statement_thread_paths): Here. Use the new function.
2063 Allow simple copies and constant initializations in the SSA chain.
2064
2065 2016-05-24 Marek Polacek <polacek@redhat.com>
2066
2067 PR c/71249
2068 * gimplify.c (gimplify_switch_expr): Look into the innermost lexical
2069 scope.
2070
2071 2016-05-24 Jakub Jelinek <jakub@redhat.com>
2072
2073 PR c++/71257
2074 * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
2075 SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
2076 SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP. Add
2077 SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP and
2078 SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP cases explicitly.
2079
2080 2016-05-24 Richard Biener <rguenther@suse.de>
2081
2082 PR tree-optimization/71240
2083 * tree-ssa-math-opts.c (init_symbolic_number): Verify the source
2084 has integral type.
2085
2086 2016-05-24 Richard Biener <rguenther@suse.de>
2087
2088 PR tree-optimization/71230
2089 * tree-ssa-reassoc.c (zero_one_operation): Handle negate special ops.
2090
2091 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
2092
2093 * tree-vectorizer.h (vectorizable_comparison): Delete.
2094 * tree-vect-loop.c (vectorizable_reduction): Remove redundant
2095 PURE_SLP_STMT check.
2096 * tree-vect-stmts.c (vectorizable_call): Likewise.
2097 (vectorizable_simd_clone_call): Likewise.
2098 (vectorizable_conversion): Likewise.
2099 (vectorizable_assignment): Likewise.
2100 (vectorizable_shift): Likewise.
2101 (vectorizable_operation): Likewise.
2102 (vectorizable_load): Likewise.
2103 (vectorizable_condition): Likewise.
2104 (vectorizable_store): Likewise. Assert that we don't have
2105 hybrid SLP.
2106 (vectorizable_comparison): Make static. Remove redundant
2107 PURE_SLP_STMT check.
2108 (vect_transform_stmt): Assert that we always have an slp_node
2109 if PURE_SLP_STMT.
2110
2111 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2112
2113 * config/arm/neon.md (ashldi3_neon): Replace comparison of INTVAL of
2114 operands[2] against 1 with comparison against CONST1_RTX.
2115 (<shift>di3_neon): Likewise.
2116 * config/arm/predicates.md (const0_operand): Replace with comparison
2117 against CONST0_RTX.
2118
2119 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2120
2121 * config/arm/arm.md (ashldi3): Replace comparison of INTVAL of
2122 operands[2] against 1 with comparison against CONST1_RTX.
2123 (ashrdi3): Likewise.
2124 (lshrdi3): Likewise.
2125 (ashlsi3): Replace cast of INTVAL to unsigned HOST_WIDE_INT with
2126 UINTVAL.
2127 (ashrsi3): Likewise.
2128 (lshrsi3): Likewise.
2129 (rotrsi3): Likewise.
2130 (define_split above *compareqi_eq0): Likewise.
2131 (define_split above "prologue"): Likewise.
2132 * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
2133 * config/arm/predicates.md (shift_operator): Likewise.
2134 (shift_nomul_operator): Likewise.
2135 (sat_shift_operator): Likewise.
2136 (thumb1_cmp_operand): Likewise.
2137 (const_neon_scalar_shift_amount_operand): Replace manual range
2138 check with IN_RANGE.
2139 * config/arm/thumb1.md (define_peephole2 above *thumb_subdi3):
2140 Replace cast of INTVAL to unsigned HOST_WIDE_INT with UINTVAL.
2141
2142 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2143
2144 * config/arm/arm.md (andsi3): Replace cast of 1 to HOST_WIDE_INT
2145 with HOST_WIDE_INT_1.
2146 (insv): Likewise.
2147 * config/arm/arm.c (optimal_immediate_sequence): Replace cast of
2148 1 to unsigned HOST_WIDE_INT with HOST_WIDE_INT_1U.
2149 (arm_canonicalize_comparison): Likewise.
2150 (thumb1_rtx_costs): Replace cast of 1 to HOST_WIDE_INT with
2151 HOST_WIDE_INT_1.
2152 (thumb1_size_rtx_costs): Likewise.
2153 (vfp_const_double_index): Replace cast of 1 to unsigned
2154 HOST_WIDE_INT with HOST_WIDE_INT_1U.
2155 (get_jump_table_size): Replace cast of 1 to HOST_WIDE_INT with
2156 HOST_WIDE_INT_1.
2157 (arm_asan_shadow_offset): Replace cast of 1 to unsigned
2158 HOST_WIDE_INT with HOST_WIDE_INT_1U.
2159 * config/arm/neon.md (vec_set<mode>): Replace cast of 1 to
2160 HOST_WIDE_INT with HOST_WIDE_INT_1.
2161
2162 2016-05-24 Marek Polacek <polacek@redhat.com>
2163
2164 * tree-cfg.h (should_remove_lhs_p): New predicate.
2165 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
2166 * gimplify.c (gimplify_modify_expr): Likewise.
2167 * tree-cfg.c (verify_gimple_call): Likewise.
2168 * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
2169 * gimple-fold.c: Include "tree-cfg.h".
2170 (gimple_fold_call): Use should_remove_lhs_p.
2171
2172 2016-05-24 Richard Biener <rguenther@suse.de>
2173
2174 PR tree-optimization/71253
2175 * cfganal.h (control_dependences): Make robust against edge
2176 and BB removal.
2177 (control_dependences::control_dependences): Remove edge_list argument.
2178 (control_dependences::get_edge): Remove.
2179 (control_dependences::get_edge_src): Add.
2180 (control_dependences::get_edge_dest): Likewise.
2181 (control_dependences::m_el): Make a vector of edge src/dest index.
2182 * cfganal.c (control_dependences::find_control_dependence): Adjust.
2183 (control_dependences::control_dependences): Likewise.
2184 (control_dependences::~control_dependence): Likewise.
2185 (control_dependences::get_edge): Remove.
2186 (control_dependences::get_edge_src): Add.
2187 (control_dependences::get_edge_dest): Likewise.
2188 * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Use
2189 get_edge_src.
2190 (perform_tree_ssa_dce): Adjust.
2191 * tree-loop-distribution.c (create_edge_for_control_dependence): Use
2192 get_edge_src.
2193 (pass_loop_distribution::execute): Adjust. Do loop destroying
2194 conditional on changed.
2195
2196 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2197
2198 PR target/69857
2199 * config/arm/arm.c (gen_operands_ldrd_strd): Remove bogus early
2200 return. Reindent transformation comment and mention the ARM state
2201 behavior.
2202
2203 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
2204
2205 PR middle-end/71252
2206 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Add stmt_to_insert
2207 after build_and_add_sum creates new use stmt.
2208
2209 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
2210
2211 * tree-vect-stmts.c (vectorizable_load): Reorder checks so that
2212 load_lanes/grouped_load classification comes first. Don't check
2213 whether the vectorization factor is a multiple of the group size
2214 for load_lanes.
2215
2216 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
2217
2218 * tree-vect-data-refs.c (vect_analyze_group_access_1): Set
2219 GROUP_GAP for single-element interleaving.
2220 * tree-vect-stmts.c (vectorizable_load): Remove force_peeling
2221 variable.
2222
2223 2016-05-24 Richard Biener <rguenther@suse.de>
2224
2225 PR middle-end/70434
2226 PR c/69504
2227 * tree-ssa.c (non_rewritable_mem_ref_base): Make sure to mark
2228 bases which are accessed with non-invariant indices.
2229 * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Re-write
2230 constant index ARRAY_REFs of vectors into BIT_FIELD_REFs.
2231
2232 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
2233
2234 PR middle-end/71170
2235 * tree-ssa-reassoc.c (struct operand_entry): Add field stmt_to_insert.
2236 (add_to_ops_vec): Add stmt_to_insert.
2237 (add_repeat_to_ops_vec): Init stmt_to_insert.
2238 (insert_stmt_before_use): New.
2239 (transform_add_to_multiply): Remove mult_stmt insertion and add it
2240 to ops vector.
2241 (get_ops): Init stmt_to_insert.
2242 (maybe_optimize_range_tests): Likewise.
2243 (rewrite_expr_tree): Insert stmt_to_insert before use stmt.
2244 (rewrite_expr_tree_parallel): Likewise.
2245 (reassociate_bb): Likewise.
2246
2247 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
2248
2249 PR target/71201
2250 * config/rs6000/altivec.md (altivec_vperm_<mode>_internal): Drop
2251 ISA 3.0 xxperm fusion alternative.
2252 (altivec_vperm_v8hiv16qi): Likewise.
2253 (altivec_vperm_<mode>_uns_internal): Likewise.
2254 (vperm_v8hiv4si): Likewise.
2255 (vperm_v16qiv8hi): Likewise.
2256
2257 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
2258 Kelvin Nilsen <kelvin@gcc.gnu.org>
2259
2260 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate
2261 vpermr/xxpermr on ISA 3.0.
2262 (altivec_expand_vec_perm_le): Likewise.
2263 * config/rs6000/altivec.md (UNSPEC_VPERMR): New unspec.
2264 (altivec_vpermr_<mode>_internal): Add VPERMR/XXPERMR support for
2265 ISA 3.0.
2266
2267 2016-05-23 Uros Bizjak <ubizjak@gmail.com>
2268
2269 * config/i386/i386.h (IS_STACK_MODE): Enable for
2270 TARGET_MIX_SSE_I387. Rewrite using X87_FLOAT_MODE_P and
2271 SSE_FLOAT_MODE_P macros.
2272 * config/i386/i386.c (ix86_preferred_reload_class): Use
2273 IS_STACK_MODE, INTEGER_CLASS_P, FLOAT_CLASS_P and Q_CLASS_P macros.
2274 Cleanup regclass processing for CONST_DOUBLE_P.
2275 (ix86_preferred_output_reload_class): Use IS_STACK_MODE macro.
2276 (ix86_rtx_costs): Remove redundant TARGET_80387 check
2277 with IS_STACK_MODE macro.
2278 * config/i386/i386.md: Replace SSE_FLOAT_MODE_P (DFmode)
2279 with TARGET_SSE2.
2280 (*movdf_internal): Use IS_STACK_MODE macro.
2281 (*movsf_internal): Ditto.
2282
2283 2016-05-23 Marc Glisse <marc.glisse@inria.fr>
2284
2285 * match.pd (a * (1 << b), ~x & ~y, ~X ^ ~Y, (X ^ Y) ^ Y, ~ (-A),
2286 ~ (A - 1), ~(~X >> Y), ~(~X >>r Y)): Relax constraints.
2287
2288 2016-05-23 Jeff Law <law@redhat.com>
2289
2290 * tree-ssa-threadbackward.c (profitable_jump_thread_path): New function
2291 extracted from ...
2292 (fsm_find_control_statement_thread_paths): Call it.
2293
2294 2016-05-23 Martin Jambor <mjambor@suse.cz>
2295
2296 PR ipa/71234
2297 * ipa-cp.c (ipa_get_indirect_edge_target_1): Only check value of
2298 from_global_constant if t is not NULL.
2299
2300 2016-05-23 Marek Polacek <polacek@redhat.com>
2301
2302 PR c/49859
2303 * common.opt (Wswitch-unreachable): New option.
2304 * doc/invoke.texi: Document -Wswitch-unreachable.
2305 * gimplify.c (gimplify_switch_expr): Implement the -Wswitch-unreachable
2306 warning.
2307
2308 2016-05-23 Bin Cheng <bin.cheng@arm.com>
2309
2310 * tree-ssa-address.c (copy_ref_info): Check NULL TMR_STEP when
2311 TMR_INDEX is non-NULL.
2312
2313 2016-05-23 Richard Biener <rguenther@suse.de>
2314
2315 PR tree-optimization/71230
2316 * tree-ssa-reassoc.c (acceptable_pow_call): Move initial condition...
2317 (try_special_add_to_ops): ... here. Always test for single-use.
2318
2319 2016-05-23 Martin Jambor <mjambor@suse.cz>
2320
2321 * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Create an empty
2322 default block if a PHI node in the original one would be resized.
2323
2324 2016-05-23 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
2325
2326 PR tree-optimization/58135
2327 * tree-vect-slp.c: When group size is not multiple
2328 of vector size, allow splitting of store group at
2329 vector boundary.
2330
2331 2016-05-23 Christophe Lyon <christophe.lyon@linaro.org>
2332
2333 * config/arm/arm_neon.h (vtst_p16, vtstq_p16): New.
2334
2335 2016-05-22 Jakub Jelinek <jakub@redhat.com>
2336
2337 * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
2338 vec_set_hi_<mode><mask_name>): Add && <mask_avx512dq_condition>
2339 condition. For !TARGET_AVX512DQ, emit 32x4 instruction instead
2340 of 64x2.
2341
2342 * config/i386/sse.md (vec_set_lo_v16hi, vec_set_hi_v16hi,
2343 vec_set_lo_v32qi, vec_set_hi_v32qi): Add alternative with
2344 v constraint instead of x and vinserti32x4 insn.
2345
2346 * config/i386/sse.md (i128vldq): New mode iterator.
2347 (avx2_vbroadcasti128_<mode>, avx_vbroadcastf128_<mode>): Add
2348 avx512dq and avx512vl alternatives.
2349
2350 * config/i386/sse.md (avx2_vec_dupv4df): Use v instead of x
2351 constraint, use maybe_evex prefix instead of vex.
2352 (vec_dupv4sf): Use v constraint instead of x for output
2353 operand except for noavx alternative, use Yv constraint
2354 instead of x for input. Use maybe_evex prefix instead of vex.
2355 (*vec_dupv4si): Likewise.
2356 (*vec_dupv2di): Likewise.
2357
2358 2016-05-22 Kugan Vivekanandarajah <kuganv@linaro.org>
2359
2360 PR middle-end/40921
2361 * tree-ssa-reassoc.c (try_special_add_to_ops): New.
2362 (linearize_expr_tree): Call try_special_add_to_ops.
2363 (reassociate_bb): Convert MULT_EXPR by (-1) to NEGATE_EXPR.
2364
2365 2016-05-21 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
2366
2367 * config/avr/avr.c (avr_expand_prologue): Add INCOMING_FRAME_SP_OFFSET
2368 to computed stack_usage.
2369
2370 2016-05-21 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
2371
2372 PR target/71103
2373 * config/avr/avr.md (define_expand "mov<mode>"): If the source
2374 operand is subreg (symbol_ref) then move the symbol ref to register.
2375
2376 2016-05-21 Jan Hubicka <hubicka@ucw.cz>
2377
2378 * tree.c (array_at_struct_end_p): Look through MEM_REF.
2379
2380 2016-05-21 Kugan Vivekanandarajah <kuganv@linaro.org>
2381
2382 PR middle-end/71179
2383 * tree-ssa-reassoc.c (transform_add_to_multiply): Disallow float
2384 VECTOR type.
2385
2386 2016-05-20 Eric Botcazou <ebotcazou@adacore.com>
2387
2388 * tree-vrp.c (compare_values_warnv): Simplify handling of symbolic
2389 ranges by calling get_single_symbol and tidy up. Look more closely
2390 into NAME + CST1 vs CST2 comparisons if type overflow is undefined.
2391
2392 2016-05-20 Jeff Law <law@redhat.com>
2393
2394 * bitmap.c (bitmap_find_bit): Remove useless test.
2395
2396 2016-05-20 Segher Boessenkool <segher@kernel.crashing.org>
2397
2398 * function.c (thread_prologue_and_epilogue_insns): Commit the
2399 insertion of the epilogue.
2400
2401 2016-05-20 Martin Jambor <mjambor@suse.cz>
2402
2403 PR tree-optimization/70884
2404 * tree-sra.c (initialize_constant_pool_replacements): Do not check
2405 should_scalarize_away_bitmap and cannot_scalarize_away_bitmap bits.
2406 (sort_and_splice_var_accesses): Do not consider multiple scalar reads
2407 of constant pool data as a reason for scalarization.
2408
2409 2016-05-20 Eric Botcazou <ebotcazou@adacore.com>
2410
2411 * config/arm/arm.c (arm_expand_prologue): Set the stack usage to 0
2412 for naked functions.
2413 (thumb1_expand_prologue): Likewise.
2414
2415 2016-05-20 Nathan Sidwell <nathan@acm.org>
2416
2417 * config/nvptx/nptx.c (nvptx_option_override): Only set
2418 flag_toplevel_reorder, if not explicitly specified. Set
2419 flag_no_common, unless explicitly specified.
2420
2421 2016-05-20 David Malcolm <dmalcolm@redhat.com>
2422
2423 * calls.c (can_implement_as_sibling_call_p): Mark param
2424 reg_parm_stack_space with ATTRIBUTE_UNUSED.
2425
2426 2016-05-20 Uros Bizjak <ubizjak@gmail.com>
2427
2428 * config/i386/i386.c (ix86_rtx_costs) <case CONST_DOUBLE>:
2429 Use IS_STACK_MODE when calculating cost of standard 80387 constants.
2430 Fallthru to CONST_VECTOR case to calculate cost of standard SSE
2431 constants.
2432 <case CONST_WIDE_INT>: Calculate cost of (MEM (SYMBOL_REF)).
2433 (ix86_legitimate_constant_p): Use CASE_CONST_SCALAR_INT
2434 and CASE_CONST_ANY.
2435
2436 2016-05-20 Cesar Philippidis <cesar@codesourcery.com>
2437
2438 * config/nvptx/nvptx.md (sincossf3): New pattern.
2439
2440 2016-05-20 David Malcolm <dmalcolm@redhat.com>
2441
2442 * calls.c (maybe_complain_about_tail_call): New function.
2443 (initialize_argument_information): Call
2444 maybe_complain_about_tail_call when clearing *may_tailcall.
2445 (can_implement_as_sibling_call_p): Call
2446 maybe_complain_about_tail_call when returning false.
2447 (expand_call): Read CALL_EXPR_MUST_TAIL_CALL and, if set,
2448 ensure try_tail_call is set. Call maybe_complain_about_tail_call
2449 if tail-call optimization fails.
2450 * cfgexpand.c (expand_call_stmt): Initialize
2451 CALL_EXPR_MUST_TAIL_CALL from gimple_call_must_tail_p.
2452 * gimple-pretty-print.c (dump_gimple_call): Dump
2453 gimple_call_must_tail_p.
2454 * gimple.c (gimple_build_call_from_tree): Call
2455 gimple_call_set_must_tail with the value of
2456 CALL_EXPR_MUST_TAIL_CALL.
2457 * gimple.h (enum gf_mask): Add GF_CALL_MUST_TAIL_CALL.
2458 (gimple_call_set_must_tail): New function.
2459 (gimple_call_must_tail_p): New function.
2460 * print-tree.c (print_node): Update printing of TREE_STATIC
2461 to reflect its use for CALL_EXPR_MUST_TAIL_CALL.
2462 * tree-core.h (struct tree_base): Add MUST_TAIL_CALL to the
2463 trailing comment listing applicable flags.
2464 * tree.h (CALL_EXPR_MUST_TAIL_CALL): New macro.
2465
2466 2016-05-20 David Malcolm <dmalcolm@redhat.com>
2467
2468 * calls.c (expand_call): Move "Rest of purposes for tail call
2469 optimizations to fail" to...
2470 (can_implement_as_sibling_call_p): ...this new function, and
2471 split into multiple "if" statements.
2472
2473 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
2474
2475 * cfgloop.h (expected_loop_iterations_unbounded,
2476 expected_loop_iterations): Unconstify.
2477 * cfgloopanal.c (expected_loop_iterations_unbounded): Sanity check the
2478 profile with known upper bound; return 3 when profile is absent.
2479 (expected_loop_iterations): Update.
2480
2481 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
2482
2483 * loop-doloop.c (doloop_optimize): Use get_estimated_loop_iterations_int
2484 and get_max_loop_iterations_int.
2485
2486 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
2487
2488 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can not produce
2489 realistic upper bounds here.
2490
2491 2016-05-20 Jakub Jelinek <jakub@redhat.com>
2492
2493 PR c++/71210
2494 * gimple-fold.c (gimple_fold_call): Do not remove lhs of noreturn
2495 calls if the LHS is variable length or has addressable type.
2496 If targets[0]->decl is a noreturn call with void return type and
2497 zero arguments, adjust fntype and remove lhs in that case.
2498
2499 2016-05-20 Marc Glisse <marc.glisse@inria.fr>
2500
2501 PR tree-optimization/71079
2502 PR tree-optimization/71206
2503 * match.pd ((X ^ Y) ^ (X ^ Z)): Convert the arguments.
2504
2505 2016-05-20 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2506
2507 * tree-vectorizer.c (get_vec_alignment_for_decl): New static function.
2508 (get_vec_alignment_for_array_decl): Likewise.
2509 (get_vec_alignment_for_record_decl): Likewise.
2510 (increase_alignment::execute): Move code to find alignment to
2511 get_vec_alignment_for_array_decl and call get_vec_alignment_for_decl.
2512 (type_align_map): New hash_map.
2513
2514 2016-05-20 Richard Guenther <rguenther@suse.de>
2515
2516 PR tree-optimization/29756
2517 * tree.def (BIT_INSERT_EXPR): New tcc_expression tree code.
2518 * expr.c (expand_expr_real_2): Handle BIT_INSERT_EXPR.
2519 * fold-const.c (operand_equal_p): Likewise.
2520 (fold_ternary_loc): Add constant folding of BIT_INSERT_EXPR.
2521 * gimplify.c (gimplify_expr): Handle BIT_INSERT_EXPR.
2522 * tree-inline.c (estimate_operator_cost): Likewise.
2523 * tree-pretty-print.c (dump_generic_node): Likewise.
2524 * tree-ssa-operands.c (get_expr_operands): Likewise.
2525 * cfgexpand.c (expand_debug_expr): Likewise.
2526 * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
2527 * gimple.c (get_gimple_rhs_num_ops): Handle BIT_INSERT_EXPR.
2528 * tree-cfg.c (verify_gimple_assign_ternary): Verify BIT_INSERT_EXPR.
2529 * tree-ssa.c (non_rewritable_lvalue_p): We can rewrite
2530 vector inserts using BIT_FIELD_REF or MEM_REF on the lhs.
2531 (execute_update_addresses_taken): Do it.
2532
2533 2016-05-20 Richard Biener <rguenther@suse.de>
2534
2535 PR tree-optimization/71185
2536 * tree-ssa-loop-prefetch.c (gather_memory_references): Drop
2537 register operations.
2538
2539 2016-05-20 Richard Biener <rguenther@suse.de>
2540
2541 * tree-if-conv.c (add_bb_predicate_gimplified_stmts): Use
2542 gimple_seq_add_seq_without_update.
2543 (release_bb_predicate): Assert we have no operands to free.
2544 (if_convertible_loop_p_1): Calculate post dominators later.
2545 Do not free BB predicates here.
2546 (combine_blocks): Do not recompute BB predicates.
2547 (version_loop_for_if_conversion): Save BB predicates around
2548 loop versioning.
2549
2550 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org>
2551
2552 * function.c (make_epilogue_seq): Remove epilogue_end parameter.
2553 (thread_prologue_and_epilogue_insns): Remove bb_flags. Restructure
2554 code. Ignore sibcalls on EDGE_IGNORE edges.
2555 * shrink-wrap.c (handle_simple_exit): New function. Set EDGE_IGNORE
2556 on edges for sibcalls that run without prologue. The rest of the
2557 function is combined from...
2558 (fix_fake_fallthrough_edge): ... this, and ...
2559 (try_shrink_wrapping): ... a part of this. Remove the bb_with
2560 function argument, make it a local variable.
2561
2562 2016-05-19 Sandra Loosemore <sandra@codesourcery.com>
2563
2564 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Allow
2565 --disable-sjlj-exceptions for TARGET_BI_ARCH to select DWARF-2 EH
2566 for 32-bit mode and SEH for 64-bit.
2567 * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): Handle
2568 TARGET_64BIT_DEFAULT.
2569
2570 2016-05-19 Ryan Burn <contact@rnburn.com>
2571
2572 * Makefile.in (GTFILES): Add cilk.h and cilk-common.c.
2573 * gengtype.c (open_base_files): Add cilk.h to ifiles.
2574
2575 2016-05-19 Uros Bizjak <ubizjak@gmail.com>
2576
2577 * sched-deps.c (sched_analyze_2) <case TRAP_IF>: Also
2578 force pending loads from memory.
2579
2580 2016-05-19 Kelvin Nilsen <kelvin@gcc.gnu.org>
2581
2582 * config/rs6000/altivec.md (UNSPEC_DARN): New unspec constant.
2583 (UNSPEC_DARN_32): New unspec constant.
2584 (UNSPEC_DARN_RAW): New unspec constant.
2585 (darn_32): New instruction.
2586 (darn_raw): New instruction.
2587 (darn): New instruction.
2588 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_0): Add
2589 support and documentation for this macro.
2590 (BU_P9_MISC_1): New macro definition.
2591 (BU_P9_64BIT_MISC_0): New macro definition.
2592 (BU_P9_MISC_0): New macro definition.
2593 (darn_32): New builtin definition.
2594 (darn_raw): New builtin definition.
2595 (darn): New builtin definition.
2596 * config/rs6000/rs6000.c: Add #define RS6000_BUILTIN_0 and #undef
2597 RS6000_BUILTIN_0 directives to surround each occurrence of
2598 #include "rs6000-builtin.def".
2599 (rs6000_builtin_mask_calculate): Add in the RS6000_BTM_MODULO and
2600 RS6000_BTM_64BIT flags to the returned mask, depending on
2601 configuration.
2602 (def_builtin): Correct an error in the assignments made to the
2603 debugging variable attr_string.
2604 (rs6000_expand_builtin): Add support for no-operand built-in
2605 functions.
2606 (builtin_function_type): Remove fatal_error assertion that is no
2607 longer valid.
2608 (rs6000_common_init_builtins): Add support for no-operand built-in
2609 functions.
2610 * config/rs6000/rs6000.h (RS6000_BTM_MODULO): New macro
2611 definition.
2612 (RS6000_BTM_PURE): Enhance comment to clarify intent of this flag
2613 definition.
2614 (RS6000_BTM_64BIT): New macro definition.
2615 * doc/extend.texi: Document __builtin_darn (void),
2616 __builtin_darn_raw (void), and __builtin_darn_32 (void) built-in
2617 functions.
2618
2619 2016-05-19 Jan Hubicka <hubicka@ucw.cz>
2620
2621 * tree-vect-loop.c (vect_analyze_loop_2): Use also
2622 max_loop_iterations_int.
2623
2624 2016-05-19 Marek Polacek <polacek@redhat.com>
2625
2626 PR tree-optimization/71031
2627 * tree-vrp.c (extract_range_from_binary_expr_1): Turn assert into a
2628 condition and adjust the code a bit.
2629
2630 2016-05-19 Martin Liska <mliska@suse.cz>
2631
2632 * tree-vect-stmts.c (vectorizable_simd_clone_call): Utilize
2633 auto_vec instead of vec.
2634
2635 2016-05-19 Martin Liska <mliska@suse.cz>
2636
2637 * tree-parloops.c (oacc_entry_exit_ok): Release a vector.
2638
2639 2016-05-19 Martin Liska <mliska@suse.cz>
2640
2641 * tree-if-conv.c (ifcvt_repair_bool_pattern): Utilize auto_vecs.
2642
2643 2016-05-19 Martin Liska <mliska@suse.cz>
2644
2645 * ipa-pure-const.c (set_function_state): Remove an existing
2646 funct_state.
2647 (remove_node_data): Do not free it as it's released
2648 in set_function_state.
2649
2650 2016-05-19 Martin Liska <mliska@suse.cz>
2651
2652 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Release
2653 bitmap.
2654
2655 2016-05-19 Martin Liska <mliska@suse.cz>
2656
2657 * omp-simd-clone.c (simd_clone_adjust): Release vector.
2658
2659 2016-05-19 Martin Liska <mliska@suse.cz>
2660
2661 * tree-ssa-reassoc.c (eliminate_duplicate_pair): Truncate
2662 an auto_vec instead of re-creating it.
2663
2664 2016-05-19 Martin Liska <mliska@suse.cz>
2665
2666 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Use
2667 auto_vec instead of vec.
2668
2669 2016-05-19 Martin Liska <mliska@suse.cz>
2670
2671 * lto-section-in.c (lto_get_section_data): Call
2672 lto_check_version with additional argument.
2673 * lto-streamer.c (lto_check_version): Add new argument.
2674 * lto-streamer.h (lto_check_version): Likewise.
2675
2676 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2677
2678 * config/arm/arm.c (arm_new_rtx_costs, SIGN_EXTEND case):
2679 Don't add cost of inner memory when handling sign-extended loads.
2680
2681 2016-05-19 Ilya Enkovich <ilya.enkovich@intel.com>
2682
2683 PR rtl-optimization/71148
2684 * cse.c (cse_main): Free dominance info.
2685 (rest_of_handle_cse): Don't free dominance info.
2686 (rest_of_handle_cse2): Likewise.
2687 (rest_of_handle_cse_after_global_opts): Likewise.
2688
2689 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2690
2691 PR target/71056
2692 * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Return
2693 NULL_TREE early if NEON is not available. Remove now redundant check
2694 in ARM_CHECK_BUILTIN_MODE.
2695
2696 2016-05-19 Maxim Ostapenko <m.ostapenko@samsung.com>
2697
2698 PR sanitizer/64354
2699 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add new
2700 builtin __SANITIZE_THREAD__ macros for fsanitize=thread switch.
2701 * doc/cpp.texi: Document new macros.
2702
2703 2016-05-19 Bin Cheng <bin.cheng@arm.com>
2704
2705 PR tree-optimization/69848
2706 * tree-vect-loop.c (vectorizable_reduction): Don't factor
2707 comparison expr out of VEC_COND_EXPR for COND_REDUCTION.
2708
2709 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org>
2710
2711 * function.c (thread_prologue_and_epilogue_insn): Move the
2712 "goto epilogue_done" one block later.
2713
2714 2016-05-19 Richard Biener <rguenther@suse.de>
2715
2716 PR tree-optimization/70729
2717 * passes.def: Move LIM pass before PRE. Remove no longer
2718 required copyprop and move first DCE out of the loop pipeline.
2719
2720 2016-05-18 David Malcolm <dmalcolm@redhat.com>
2721
2722 PR driver/69265
2723 * Makefile.in (GCC_OBJS): Move spellcheck.o to...
2724 (OBJS-libcommon-target): ...here.
2725 * opts-common.c: Include spellcheck.h.
2726 (cmdline_handle_error): Build a vec of valid options and use it
2727 to suggest provide hints for misspelled arguments.
2728
2729 2016-05-18 Jakub Jelinek <jakub@redhat.com>
2730
2731 PR c++/71100
2732 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Don't drop
2733 lhs if it has TREE_ADDRESSABLE type.
2734
2735 2016-05-18 Uros Bizjak <ubizjak@gmail.com>
2736
2737 PR target/71145
2738 * config/alpha/alpha.md (trap): Add (use (reg:DI 29)).
2739 (*exception_receiver_1): Return "#" for TARGET_EXPLICIT_RELOCS.
2740
2741 2016-05-18 Martin Jambor <mjambor@suse.cz>
2742
2743 PR ipa/69708
2744 * ipa-cp.c (ipa_get_jf_pass_through_result): Allow non-ip constant
2745 input for NOP_EXPR pass-through functions.
2746 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Allow
2747 aggregate global constant VAR_DECLs in constant jump functions.
2748
2749 2016-05-18 Martin Jambor <mjambor@suse.cz>
2750
2751 PR ipa/69708
2752 * ipa-prop.c (parm_preserved_before_stmt_p): Return true for loads
2753 from TREE_READONLY parameters.
2754
2755 2016-05-18 Martin Jambor <mjambor@suse.cz>
2756
2757 PR ipa/69708
2758 * cgraph.h (cgraph_indirect_call_info): New field
2759 guaranteed_unmodified.
2760 * ipa-cp.c (ipa_get_indirect_edge_target_1): Also pass parameter value
2761 to ipa_find_agg_cst_for_param, check guaranteed_unmodified when
2762 appropriate.
2763 * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Also
2764 pass the parameter value to ipa_find_agg_cst_for_param.
2765 * ipa-prop.c (ipa_load_from_parm_agg): New parameter
2766 guaranteed_unmodified, store AA results there instead of bailing out
2767 if present.
2768 (ipa_note_param_call): Also initialize guaranteed_unmodified flag.
2769 (ipa_analyze_indirect_call_uses): Also set guaranteed_unmodified flag.
2770 (find_constructor_constant_at_offset): New function.
2771 (ipa_find_agg_cst_from_init): Likewise.
2772 (ipa_find_agg_cst_for_param): Also seearch for aggregate values in
2773 static initializers of contants, report back through a new paameter
2774 from_global_constant if that was the case.
2775 (try_make_edge_direct_simple_call): Also pass parameter value to
2776 ipa_find_agg_cst_for_param, check guaranteed_unmodified when
2777 appropriate.
2778 (ipa_write_indirect_edge_info): Stream new flag guaranteed_unmodified.
2779 (ipa_read_indirect_edge_info): Likewise.
2780 * ipa-prop.h (ipa_find_agg_cst_for_param): Update declaration.
2781 (ipa_load_from_parm_agg): Likewise.
2782
2783 2016-05-18 Jiong Wang <jiong.wang@arm.com>
2784
2785 PR rtl-optimization/71150
2786 * lra-constraint (process_addr_reg): Guard "in_class_p" with REG_P
2787 check.
2788
2789 2016-05-18 Michael Meissner <meissner@linux.vnet.ibm.com>
2790
2791 PR target/70915
2792 * config/rs6000/constraints.md (wE constraint): New constraint
2793 for a vector constant that can be loaded with XXSPLTIB.
2794 (wM constraint): New constraint for a vector constant of a 1's.
2795 (wS constraint): New constraint for a vector constant that can be
2796 loaded with XXSPLTIB and a vector sign extend instruction.
2797 * config/rs6000/predicates.md (xxspltib_constant_split): New
2798 predicates for wE/wS constraints.
2799 (xxspltib_constant_nosplit): Likewise.
2800 (easy_vector_constant): Add support for constants that can be
2801 loaded via XXSPLTIB.
2802 (all_ones_constant): New predicate for vector constant with all
2803 1's set.
2804 (splat_input_operand): Add support for ISA 3.0 word splat operations.
2805 * config/rs6000/rs6000.c (xxspltib_constant_p): New function to
2806 return if a constant can be loaded with the ISA 3.0 XXSPLTIB
2807 instruction and possibly with a sign extension.
2808 (output_vec_const_move): Add support for XXSPLTIB. If we are
2809 loading up 0/-1 into Altivec registers, prefer using VSPLTISW
2810 instead of XXLXOR/XXLORC.
2811 (rs6000_expand_vector_init): Add support for ISA 3.0 word splat
2812 operations.
2813 (rs6000_legitimize_reload_address): Likewise.
2814 (rs6000_output_move_128bit): Use output_vec_const_move to emit
2815 constants.
2816 * config/rs6000/vsx.md (VSX_M): Add TImode (if -mvsx-timode) and
2817 combine VSX_M and VSX_M2 into one iterator.
2818 (VSX_M2): Likewise.
2819 (VSINT_84): New iterators for loading constants with XXSPLTIB.
2820 (VSINT_842): Likewise.
2821 (UNSPEC_VSX_SIGN_EXTEND): New UNSPEC.
2822 (xxspltib_v16qi): New insns to load up constants with the ISA 3.0
2823 XXSPLTIB instruction.
2824 (xxspltib_<mode>_nosplit): Likewise.
2825 (xxspltib_<mode>_split): New insn to load up constants with
2826 XXSPLTIB and a sign extend instruction.
2827 (vsx_mov<mode>): Replace single move that handled all vector types
2828 with separate 32-bit and 64-bit moves. Combine the movti_<bit>
2829 moves (when -mvsx-timode is in effect) into the main vector
2830 moves. Eliminate separate moves for <VSr> <VSa>, where the
2831 preferred register class (<VSr>) is listed first, and the
2832 secondary register class (<VSa>) is listed second with a '?' to
2833 discourage use. Prefer loading 0/-1 in any VSX register for ISA
2834 3.0, and Altivec registers for ISA 2.06/2.07 (PR target/70915) so
2835 that if the register was involved in a slow operation, the
2836 clear/set operation does not wait for the slow operation to
2837 finish. Adjust the length attributes for 32-bit mode. Use
2838 rs6000_output_move_128bit and drop the use of the string
2839 instructions for 32-bit movti when -mvsx-timode is in effect. Use
2840 spacing so that the alternatives and attributes don't generate
2841 long lines, and put things in columns, so that it is easier to
2842 match up the operands and attributes with the insn alternatives.
2843 (vsx_mov<mode>_64bit): Likewise.
2844 (vsx_mov<mode>_32bit): Likewise.
2845 (vsx_movti_64bit): Fold movti into normal vector moves.
2846 (vsx_movti_32bit): Likewise.
2847 (vsx_splat_<mode>, V4SI/V4SF modes): Add support for ISA 3.0 word
2848 splat instructions.
2849 (vsx_splat_v4si_internal): Likewise.
2850 (vsx_splat_v4sf_internal): Likewise.
2851 (vector fusion peepholes): Use VSX_M instead of VSX_M2.
2852 (vsx_sign_extend_qi_<mode>): New ISA 3.0 instructions to sign
2853 extend vector elements.
2854 (vsx_sign_extend_hi_<mode>): Likewise.
2855 (vsx_sign_extend_si_v2di): Likewise.
2856 * config/rs6000/rs6000-protos.h (xxspltib_constant_p): Add
2857 declaration.
2858 * doc/md.texi (PowerPC constraints): Document the wE, wM, and wS
2859 constraints. Add trailing period to wL documentation.
2860
2861 2016-05-18 Richard Sandiford <richard.sandiford@arm.com>
2862
2863 PR middle-end/71020
2864 * tree-dfa.h (replace_abnormal_ssa_names): Declare.
2865 * tree-dfa.c (replace_abnormal_ssa_names): New function.
2866 * tree-call-cdce.c: Include tree-dfa.h.
2867 (can_guard_call_p): New function, extracted from...
2868 (can_use_internal_fn): ...here.
2869 (shrink_wrap_one_built_in_call_with_conds): Remove failure path
2870 and return void.
2871 (shrink_wrap_one_built_in_call): Likewise.
2872 (use_internal_fn): Likewise.
2873 (shrink_wrap_conditional_dead_built_in_calls): Update accordingly
2874 and return void. Call replace_abnormal_ssa_names.
2875 (pass_call_cdce::execute): Check can_guard_call_p during the
2876 initial walk. Assume shrink_wrap_conditional_dead_built_in_calls
2877 will always change something.
2878
2879 2016-05-18 Martin Jambor <mjambor@suse.cz>
2880
2881 PR ipa/70646
2882 * ipa-prop.c (determine_locally_known_aggregate_parts): Bail out early
2883 if parameter PARAM_IPA_MAX_AGG_ITEMS is zero.
2884
2885 2016-05-18 Martin Jambor <mjambor@suse.cz>
2886
2887 PR ipa/70646
2888 * ipa-inline.h (condition): New field size.
2889 * ipa-inline-analysis.c (add_condition): New parameter SIZE, use it
2890 for comaprison and store it into the new condition.
2891 (evaluate_conditions_for_known_args): Use condition size to check
2892 access sizes for all but CHANGED conditions.
2893 (unmodified_parm_1): New parameter size_p, store access size into it.
2894 (unmodified_parm): Likewise.
2895 (unmodified_parm_or_parm_agg_item): Likewise.
2896 (eliminated_by_inlining_prob): Pass NULL to unmodified_parm as size_p.
2897 (set_cond_stmt_execution_predicate): Extract access sizes and store
2898 them to conditions.
2899 (set_switch_stmt_execution_predicate): Likewise.
2900 (will_be_nonconstant_expr_predicate): Likewise.
2901 (will_be_nonconstant_predicate): Likewise.
2902 (inline_read_section): Stream condition size.
2903 (inline_write_summary): Likewise.
2904
2905 2016-05-18 Richard Biener <rguenther@suse.de>
2906
2907 * tree-ssa-loop-im.c (determine_max_movement): Properly add
2908 condition cost to PHI cost instead of total_cost.
2909
2910 2016-05-18 Martin Liska <mliska@suse.cz>
2911
2912 PR fortran/70856
2913 * ipa-icf.c (sem_variable::merge): Set DECL_PT_UID for
2914 merged variables.
2915
2916 2016-05-18 Richard Biener <rguenther@suse.de>
2917
2918 * lto-streamer.h (LTO_major_version): Bump to 6.
2919
2920 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org>
2921
2922 * function.c (make_split_prologue_seq, make_prologue_seq,
2923 make_epilogue_seq): New functions, factored out from...
2924 (thread_prologue_and_epilogue_insns): Here.
2925
2926 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org>
2927
2928 * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
2929 cleanup_cfg with CLEANUP_EXPENSIVE after shrink-wrapping instead
2930 of before. Add a comment.
2931
2932 2016-05-18 Bin Cheng <bin.cheng@arm.com>
2933
2934 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check invariant
2935 expression pointer, not pointer to the pointer.
2936
2937 2016-05-18 Jakub Jelinek <jakub@redhat.com>
2938
2939 * config/i386/sse.md (pbroadcast_evex_isa): New mode attr.
2940 (avx2_pbroadcast<mode>): Add another alternative with v instead
2941 of x constraints in it, using <pbroadcast_evex_isa> isa.
2942 (avx2_pbroadcast<mode>_1): Similarly, add two such alternatives.
2943
2944 * config/i386/sse.md (<ssse3_avx2>_palignr<mode>): Use
2945 constraint x instead of v in second alternative, add avx512bw
2946 alternative.
2947
2948 * config/i386/sse.md (<ssse3_avx2>_pshufb<mode>3<mask_name>): Use
2949 constraint x instead of v in second alternative, add avx512bw
2950 alternative.
2951
2952 * config/i386/sse.md (*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>): Use
2953 constraint x instead of v in second alternative, add avx512bw
2954 alternative.
2955
2956 * config/i386/sse.md (avx2_pmaddubsw256, ssse3_pmaddubsw128): Add
2957 avx512bw alternative.
2958
2959 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
2960
2961 * config/i386/sse.md (define_insn "*andnot<mode>3"): Extend static
2962 array to 128 chars.
2963 (define_insn "*andnottf3"): Ditto.
2964 (define_insn "*<code><mode>3"/any_logic): Ditto.
2965 (define_insn "*<code>tf3"/any_logic): Ditto.
2966 (define_insn "sse2_storehpd"): Use Yv constraint for scalar
2967 operand to block AVX-512VL insn variant emit when it is not enabled.
2968
2969 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
2970
2971 * config/i386/sse.md (define_insn "*vec_concatv2sf_sse4_1"): Use 'Yv'
2972 constraint fot SF mode.
2973
2974 2016-05-18 Petr Murzin <petr.murzin@intel.com>
2975 Kirill Yukhin <kirill.yukhin@intel.com>
2976
2977 * config/i386/sse.md (define_insn "srcp14<mode>"): Use proper operand
2978 modifiers.
2979 (define_insn "rsqrt14<mode>"): Ditto.
2980 (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
2981 (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
2982 (define_insn "avx512f_<code>v8div16qi2_mask_store"): Ditto.
2983 (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
2984 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"):
2985 Ditto.
2986 (define_insn "*avx512f_gatherdi<mode>"): Ditto.
2987 (define_insn "*avx512f_scatterdi<mode>"): Ditto.
2988 * config/i386/i386.c (ix86_print_operand): Expand check for size
2989 override codes for Intel syntax.
2990
2991 2016-05-18 Richard Biener <rguenther@suse.de>
2992
2993 PR tree-optimization/71168
2994 * tree-loop-distribution.c (distribute_loop): Move *destroy_p
2995 initialization earlier.
2996
2997 2016-05-18 James Greenhalgh <james.greenhalgh@arm.com>
2998
2999 * config/aarch64/aarch64-simd.md
3000 (aarch64_reduc_plus_internal<mode>): Rename to...
3001 (reduc_plus_scal): ...This, and remove previous implementation.
3002
3003 2016-05-18 Richard Biener <rguenther@suse.de>
3004
3005 * passes.def: Put late dse and cd_dce in canonical order.
3006
3007 2016-05-17 Jan Hubicka <hubicka@ucw.cz>
3008
3009 * ipa-inline-transform.c (preserve_function_body_p): Look for
3010 first non-thunk clone.
3011 (save_function_body): Save into first non-thunk.
3012 * lto-cgraph.c (lto_output_edge): When streaming thunk do not look
3013 up call stmt id.
3014 (lto_output_node): Inline thunks don't need body in every
3015 partition.
3016 * lto-streamer-in.c: Do not fixup thunk clones.
3017 * cgraphclones.c (cgraph_node::create_edge_including_clone): Skip
3018 thunks.
3019 * tree-inline.c (copy_bb): Be prepared for target node to be new after
3020 folding suceeds.
3021
3022 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org>
3023
3024 PR middle-end/63586
3025 * tree-ssa-reassoc.c (transform_add_to_multiply): New.
3026 (reassociate_bb): Call transform_add_to_multiply.
3027
3028 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org>
3029
3030 * config/aarch64/aarch64.c (all_extensions): Removed unused
3031 static variable.
3032
3033 2016-05-17 Nathan Sidwell <nathan@acm.org>
3034
3035 * config/nvptx/nvptx.c (nvptx_function_arg_boundary): New.
3036 (TARGET_FUNCTION_ARG_BOUNDARY): Override.
3037
3038 2016-05-17 Mikhail Maltsev <maltsevm@gmail.com>
3039
3040 PR tree-optimization/54579
3041 PR middle-end/55299
3042 * match.pd (~(~X >> Y), ~(~X >>r Y), ~(~X <<r Y)): New patterns.
3043
3044 2016-05-17 Marek Polacek <polacek@redhat.com>
3045
3046 PR ipa/71146
3047 * tree-inline.c (expand_call_inline): Call
3048 maybe_remove_unused_call_args.
3049
3050 2016-05-17 Jim Wilson <jim.wilson@linaro.org>
3051
3052 * doc/cpp.texi (__GNUC__): Major version changes are no longer rare.
3053 * doc/invoke.texi (-mnan=2008): Change signalling to signaling.
3054 * doc/md.texi (fmin@var{m}3): Likewise.
3055
3056 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
3057
3058 * match.pd (X & C): New transformation.
3059
3060 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
3061
3062 * match.pd (~X & Y): New transformation.
3063
3064 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
3065
3066 * tree-vrp.c (simplify_truth_ops_using_ranges): Set range
3067 information for new SSA_NAME.
3068 (simplify_conversion_using_ranges): Get range through get_range_info
3069 instead of get_value_range.
3070
3071 2016-05-17 Jiong Wang <jiong.wang@arm.com>
3072
3073 * config/aarch64/arm_neon.h (vmvn_s8): Reimplement using C operator.
3074 Remove inline assembly.
3075 (vmvn_s16): Likewise.
3076 (vmvn_s32): Likewise.
3077 (vmvn_u8): Likewise.
3078 (vmvn_u16): Likewise.
3079 (vmvn_u32): Likewise.
3080 (vmvnq_s8): Likewise.
3081 (vmvnq_s16): Likewise.
3082 (vmvnq_s32): Likewise.
3083 (vmvnq_u8): Likewise.
3084 (vmvnq_u16): Likewise.
3085 (vmvnq_u32): Likewise.
3086 (vmvn_p8): Likewise.
3087 (vmvnq_p16): Likewise.
3088
3089 2016-05-17 Jiong Wang <jiong.wang@arm.com>
3090
3091 * config/aarch64/aarch64-simd.md (vmul_n_f32): Remove inline assembly.
3092 Use builtin.
3093 (vmul_n_s16): Likewise.
3094 (vmul_n_s32): Likewise.
3095 (vmul_n_u16): Likewise.
3096 (vmul_n_u32): Likewise.
3097 (vmulq_n_f32): Likewise.
3098 (vmulq_n_f64): Likewise.
3099 (vmulq_n_s16): Likewise.
3100 (vmulq_n_s32): Likewise.
3101 (vmulq_n_u16): Likewise.
3102 (vmulq_n_u32): Likewise.
3103
3104 2016-05-17 Jiong Wang <jiong.wang@arm.com>
3105
3106 * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_to_128df): Extend
3107 to all supported modes. Rename to "*aarch64_mul3_elt_from_dup".
3108
3109 2016-05-17 Jiong Wang <jiong.wang@arm.com>
3110
3111 * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_to_128df): Rename
3112 to *aarch64_fma4_elt_from_dup<mode>.
3113 (*aarch64_fnma4_elt_to_128df): Rename to
3114 *aarch64_fnma4_elt_from_dup<mode>.
3115 * config/aarch64/arm_neon.h (vfma_n_f64): New.
3116 (vfms_n_f32): Likewise.
3117 (vfms_n_f64): Likewise.
3118 (vfmsq_n_f32): Likewise.
3119 (vfmsq_n_f64): Likewise.
3120
3121 2016-05-17 Gerald Pfeifer <gerald@pfeifer.com>
3122
3123 * wide-int.h: Change fixed_wide_int_storage from class to struct.
3124
3125 2016-05-17 Richard Biener <rguenther@suse.de>
3126
3127 PR tree-optimization/71132
3128 * tree-loop-distribution.c (create_rdg_cd_edges): Pass in loop.
3129 Only add control dependences for blocks in the loop.
3130 (build_rdg): Adjust.
3131 (generate_code_for_partition): Return whether loop should
3132 be destroyed and delay that.
3133 (distribute_loop): Likewise.
3134 (pass_loop_distribution::execute): Record loops to be destroyed
3135 and perform delayed destroying of loops.
3136
3137 2016-05-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3138
3139 PR target/70809
3140 * config/aarch64/aarch64-simd.md (aarch64_vmls<mode>): Delete.
3141
3142 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
3143
3144 * config/aarch64/aarch64-elf.h (ASM_OUTPUT_DEF): Delete.
3145
3146 2016-05-17 Ilya Enkovich <ilya.enkovich@intel.com>
3147
3148 PR target/71114
3149 * config/i386/i386.c (dimode_scalar_chain::convert_op): Fix
3150 insertion point for instructions generated by validize_mem.
3151
3152 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
3153
3154 * config/aarch64/aarch64.c (SHIFT_COUNT_TRUNCATED): Wrap definition
3155 in brackets.
3156
3157 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
3158
3159 * config/aarch64/aarch64.c
3160 (aarch64_output_simd_mov_immediate): Make "buf_size" a variable
3161 rather than a macro.
3162
3163 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
3164
3165 * doc/invoke.texi (AArch64 Options): Various updates.
3166
3167 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
3168
3169 * ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig
3170 into instrumentation thunks.
3171 * cif-code.def (CIF_CHKP): New.
3172
3173 2016-05-16 Uros Bizjak <ubizjak@gmail.com>
3174
3175 * config/i386/xopintrin.h: Correct "unsinged" typo in the comments.
3176
3177 2016-05-16 Martin Jambor <mjambor@suse.cz>
3178
3179 * hsa-gen.c (fillup_for_decl): Increase alignment to natural one.
3180 (get_symbol_for_decl): Sorry if a global symbol in under-aligned.
3181
3182 2016-05-16 Marek Polacek <polacek@redhat.com>
3183
3184 * gimple.c (maybe_remove_unused_call_args): Fix typos in the
3185 commentary.
3186
3187 2016-05-16 Martin Jambor <mjambor@suse.cz>
3188
3189 PR hsa/70857
3190 * omp-low.c (grid_expand_target_grid_body): Copy RESULT_DECL of
3191 the outlined kernel function.
3192
3193 2016-05-16 Robert Suchanek <robert.suchanek@imgtec.com>
3194
3195 * config/mips/mips.h (ISA_HAS_LSA): Enable for -mmsa.
3196 (ISA_HAS_DLSA): Ditto.
3197
3198 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com>
3199
3200 * config/mips/m5100.md (m51_int_load): Update the latency to 2.
3201
3202 2016-05-16 Nathan Sidwell <nathan@acm.org>
3203
3204 * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): Revert.
3205 (nvptx_name_replacement): Restore. Add comment.
3206 (write_fn_proto, write_fn_proto_from_insn,
3207 nvptx_output_call_insn): Restore
3208 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Delete.
3209
3210 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
3211
3212 * config/aarch64/aarch64.md
3213 (add<mode>3_compareC_cconly_imm): Remove use of %w.
3214 (add<mode>3_compareC_imm): Likewise.
3215 (<optab>si3_uxtw): Split into register and immediate variants.
3216 (andsi3_compare0_uxtw): Likewise.
3217 (and<mode>3_compare0): Likewise.
3218 (and<mode>3nr_compare0): Likewise.
3219 (stack_protect_test_<mode>): Don't use %x for memory operands.
3220
3221 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com>
3222
3223 * config/mips/mips-cpus.def (p5600): Add multi-line brackets.
3224
3225 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
3226
3227 * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
3228 Split integer shifts into shift_reg and bfm.
3229 (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
3230 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
3231 (ror<mode>3_insn): Likewise.
3232 (<optab>si3_insn_uxtw): Likewise.
3233 (<optab><mode>3_insn): Change to rotate_imm.
3234 (extr<mode>5_insn_alt): Likewise.
3235 (extrsi5_insn_uxtw): Likewise.
3236 (extrsi5_insn_uxtw_alt): Likewise.
3237
3238 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
3239
3240 * doc/tm.texi: Regenerate.
3241 * doc/tm.texi.in (TARGET_INVALID_PARAMETER_TYPE): Remove.
3242 (TARGET_INVALID_RETURN_TYPE): Remove.
3243 * system.h: Poison TARGET_INVALID_PARAMETER_TYPE and
3244 TARGET_INVALID_RETURN_TYPE.
3245 * target.def (invalid_parameter_type): Remove.
3246 (invalid_return_type): Remove.
3247
3248 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
3249
3250 * ipa-inline-analysis.c (compute_inline_parameters): Be more reailistic
3251 on estimating thunk bodies; do not set inline_failed to CIF_THUNK for
3252 calls from thunk.
3253 * ipa-inline-transform.c (inline_call): When inlining into thunk produce
3254 gimple body.
3255 (preserve_function_body_p): No need to preserve function body
3256 * cif-codes.def (CIF_THUNK): Remove.
3257 * cgraphclones.c (duplicate_thunk_for_node): Thunks calls are inlinable.
3258
3259 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
3260
3261 * tree-inline.c (expand_call_inline): recurse after inlining thunk.
3262
3263 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
3264
3265 * tree.c (free_lang_data_in_decl): Also set target/optimization flags
3266 for thunks.
3267
3268 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
3269
3270 * ipa-inline.c (report_inline_failed_reason): Look into thunks, too
3271 (inline_small_functions): Do not look for function symbol when
3272 resetting caches.
3273
3274 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
3275
3276 * lto-cgraph.c (compute_ltrans_boundary, output_symtab): Fix handling
3277 of inline thunks
3278
3279 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
3280 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3281 Jiong Wang <jiong.wang@arm.com>
3282
3283 * config/arm/arm-c.c (arm_cpu_builtins): Use def_or_undef_macro
3284 for __ARM_FP16_FORMAT_IEEE and __ARM_FP16_FORMAT_ALTERNATIVE.
3285 Define __ARM_FP16_ARGS when appropriate.
3286 * config/arm/arm.c (arm_invalid_parameter_type): Remove
3287 declaration.
3288 (arm_invalid_return_type): Likewise.
3289 (TARGET_INVALID_PARAMETER_TYPE): Remove.
3290 (TARGET_INVALID_RETURN_TYPE): Remove.
3291 (aapcs_vfp_sub_candidate): Allow HFmode.
3292 (aapcs_vfp_allocate): Add comment. Support HFmode.
3293 (aapcs_vfp_allocate_return_reg): Likewise.
3294 (struct aapcs_cp_arg_layout): Slightly reword comments for
3295 is_return_candidate and allocate_return_reg.
3296 (output_mov_vfp): Update assert.
3297 (arm_hard_regno_mode_ok): Remove comment, update HF-mode
3298 condition.
3299 (arm_invalid_parameter_type): Remove.
3300 (amr_invalid_return_type): Remove.
3301 * config/arm/arm.h (TARGET_NEON_FP16): Fix definition.
3302 * config/arm/arm.md (*arm32_movhf): Disable for TARGET_VFP.
3303 * config/arm/vfp.md (*movhf_vfp): Enable for TARGET_VFP.
3304
3305 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
3306
3307 * config/aarch64/aarch64.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
3308 * config/aarch64/arch64-protos.h
3309 (aarch64_legitimize_reload_address): Remove.
3310 * config/aarch64/aarch64.c (aarch64_legitimize_reload_address):
3311 Remove.
3312
3313 2016-05-16 Eric Botcazou <ebotcazou@adacore.com>
3314
3315 * configure.ac: Add ACX_NONCANONICAL_HOST.
3316 * configure: Regenerate.
3317 * Makefile.in: Set host_noncanonical.
3318
3319 2016-05-14 Uros Bizjak <ubizjak@gmail.com>
3320
3321 PR target/71097
3322 * config/i386/i386.md (*movtf_internal): Before register allocation,
3323 do not allow FP constants for CM_MEDIUM memory model, allow only
3324 standard FP constants for CM_LARGE and CM_LARGE_PIC models.
3325 (*movxf_internal): Ditto.
3326 (*movdf_internal): Ditto.
3327 (*movsf_internal): Ditto.
3328
3329 2016-05-13 Segher Boessenkool <segher@kernel.crashing.org>
3330
3331 PR rtl-optimization/67483
3332 * combine.c (make_compound_operation): Don't call extract_left_shift
3333 with negative shift amounts.
3334
3335 2016-05-13 Jakub Jelinek <jakub@redhat.com>
3336
3337 PR bootstrap/71071
3338 * fold-const.c (fold_checksum_tree): Allow modification
3339 of TYPE_ALIAS_SET during folding.
3340
3341 * config/i386/i386.c (ix86_compute_frame_layout, ix86_expand_prologue,
3342 ix86_expand_split_stack_prologue): Use HOST_WIDE_INT_C macro.
3343 (ix86_split_to_parts): Likewise. Fix up formatting.
3344
3345 2016-05-13 H.J. Lu <hongjiu.lu@intel.com>
3346
3347 * tree-ssa-loop-ivopts.c (create_new_ivs): Cast to
3348 unsigned HOST_WIDE_INT with HOST_WIDE_INT_PRINT_UNSIGNED in
3349 printf format.
3350
3351 2016-05-13 Nathan Sidwell <nathan@acm.org>
3352
3353 * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): New.
3354 (nvptx_name_replacement): Delete.
3355 (write_fn_proto, write_fn_proto_from_insn,
3356 nvptx_output_call_insn): Remove nvptx_name_replacement call.
3357 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Override.
3358 * langhooks.c (add_builtin_funcction_common): Call
3359 targetm.mangle_decl_assembler_name.
3360
3361 * config/nvptx/nvptx.c (write_fn_proto): Handle
3362 BUILT_IN_ATOMIC_COMPARE_EXCHANGE_n oddity.
3363
3364 2016-05-13 Martin Liska <mliska@suse.cz>
3365
3366 * tree-ssa-loop-ivopts.c (create_new_ivs): Use HOST_WIDE_INT_PRINT_DEC
3367 and PRIu64 in printf format.
3368
3369 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3370
3371 * tree-ssa-loop-ivanon.c (try_unroll_loop_completely): Typo fix in
3372 comment.
3373
3374 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3375
3376 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
3377 Change --param max-completely-peeled-times to
3378 --param max-completely-peel-times in dump file printing.
3379
3380 2016-05-13 Richard Biener <rguenther@suse.de>
3381
3382 PR tree-optimization/42587
3383 * tree-ssa-math-opts.c (perform_symbolic_merge): Handle BIT_FIELD_REF.
3384 (find_bswap_or_nop_1): Likewise.
3385 (bswap_replace): Likewise.
3386
3387 2016-05-13 Martin Liska <mliska@suse.cz>
3388
3389 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
3390 Initialize a variable with default value.
3391
3392 2016-05-13 Martin Liska <mliska@suse.cz>
3393
3394 * doc/invoke.texi: Enhance explanation of error recovery
3395 of sanitizers.
3396
3397 2016-05-13 Martin Liska <mliska@suse.cz>
3398
3399 * tree-ssa-loop-ivopts.c (avg_loop_niter): Fix coding style.
3400 (struct cost_pair): Change inv_expr_id (int) to inv_expr
3401 (iv_inv_expr_ent *).
3402 (struct iv_inv_expr_ent): Comment struct fields.
3403 (sort_iv_inv_expr_ent): New function.
3404 (struct ivopts_data): Rename inv_expr_id to max_inv_expr_id.
3405 (struct iv_ca): Replace used_inv_expr and num_used_inv_expr with
3406 a hash_map between iv_inv_expr_ent and number of usages.
3407 (niter_for_exit): Fix coding style.
3408 (tree_ssa_iv_optimize_init): Use renamed variable.
3409 (determine_base_object): Fix coding style.
3410 (alloc_iv): Likewise.
3411 (find_interesting_uses_outside): Likewise.
3412 (add_candidate_1): Likewise.
3413 (add_standard_iv_candidates): Likewise.
3414 (set_group_iv_cost): Replace inv_expr_id with inv_expr.
3415 (prepare_decl_rtl): Fix coding style.
3416 (get_address_cost): Likewise.
3417 (get_shiftadd_cost): Likewise.
3418 (force_expr_to_var_cost): Likewise.
3419 (compare_aff_trees): Likewise.
3420 (get_expr_id): Restructure the function.
3421 (get_loop_invariant_expr_id): Renamed to
3422 get_loop_invariant_expr.
3423 (get_computation_cost_at): Replace usage of inv_expr_id with
3424 inv_expr.
3425 (get_computation_cost): Likewise.
3426 (determine_group_iv_cost_generic): Likewise.
3427 (determine_group_iv_cost_address): Likewise.
3428 (iv_period): Fix coding style.
3429 (iv_elimination_compare_lt): Likewise.
3430 (may_eliminate_iv): Likewise.
3431 (determine_group_iv_cost_cond): Replace usage of inv_expr_id with
3432 inv_expr.
3433 (determine_group_iv_costs): Dump invariant expressions.
3434 (iv_ca_recount_cost): Use the newly added hash_map.
3435 (iv_ca_set_remove_invariants): Fix coding style.
3436 (iv_ca_set_add_invariants): Fix coding style.
3437 (iv_ca_set_no_cp): Utilize the newly added hash_map for used
3438 invariants.
3439 (iv_ca_set_cp): Likewise.
3440 (iv_ca_new): Initialize the newly added hash_map and remove
3441 initialization of fields.
3442 (iv_ca_free): Delete the hash_map.
3443 (iv_ca_dump): Dump invariant expressions.
3444 (iv_ca_extend): Fix coding style.
3445 (try_add_cand_for): Likewise.
3446 (create_new_ivs): Dump information about # of avg iterations and
3447 # of used invariant expressions.
3448 (rewrite_use_compare): Fix coding style.
3449 (free_loop_data): Set default value for max_inv_expr_id.
3450
3451 2016-05-13 Ilya Enkovich <ilya.enkovich@intel.com>
3452
3453 * cse.c (rest_of_handle_cse): Use cleanup_cfg
3454 returned value cse_cfg_altered computation.
3455 (rest_of_handle_cse2): Likewise.
3456 (rest_of_handle_cse_after_global_opts): Likewise.
3457
3458 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3459
3460 PR target/53440
3461 * config/arm/arm.c (arm32_output_mi_thunk): New.
3462 (arm_output_mi_thunk): Rename to arm_thumb1_mi_thunk. Rework
3463 to split Thumb1 vs TARGET_32BIT functionality.
3464 (arm_thumb1_mi_thunk): New.
3465
3466 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3467
3468 * config/aarch64/aarch64.c (TARGET_OMIT_STRUCT_RETURN_REG): Set
3469 to true.
3470
3471 2016-05-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3472
3473 PR target/71080
3474 * config/i386/i386.c (ix86_in_large_data_p): Guard against NULL exp.
3475
3476 2016-05-13 Eric Botcazou <ebotcazou@adacore.com>
3477
3478 * builtins.c (expand_builtin_memcmp): Do not emit the call here.
3479 (expand_builtin_trap): Emit a regular call.
3480 (set_builtin_user_assembler_name): Remove obsolete cases.
3481 * dse.c (scan_insn): Adjust.
3482 * except.c: Include calls.h.
3483 (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is defined,
3484 emit a regular call to setjmp.
3485 * expr.c (emit_block_move_hints): Call emit_block_copy_via_libcall.
3486 (block_move_libcall_safe_for_call_parm): Use memcpy builtin.
3487 (emit_block_move_via_libcall): Delete.
3488 (block_move_fn): Delete.
3489 (init_block_move_fn): Likewise.
3490 (emit_block_move_libcall_fn): Likewise.
3491 (emit_block_op_via_libcall): New function.
3492 (set_storage_via_libcall): Tidy up and use memset builtin.
3493 (block_clear_fn): Delete.
3494 (init_block_clear_fn): Likewise.
3495 (clear_storage_libcall_fn): Likewise.
3496 (expand_assignment): Call emit_block_move_via_libcall.
3497 Do not include gt-expr.h.
3498 * expr.h (emit_block_op_via_libcall): Declare.
3499 (emit_block_copy_via_libcall): New inline function.
3500 (emit_block_move_via_libcall): Likewise.
3501 (emit_block_comp_via_libcall): Likewise.
3502 (block_clear_fn): Delete.
3503 (init_block_move_fn): Likewise.
3504 (init_block_clear_fn): Likewise.
3505 (emit_block_move_via_libcall): Likewise.
3506 (set_storage_via_libcall): Add default parameter value.
3507 * libfuncs.h (enum libfunc_index): Remove obsolete values.
3508 (abort_libfunc): Delete.
3509 (memcpy_libfunc): Likewise.
3510 (memmove_libfunc): Likewise.
3511 (memcmp_libfunc): Likewise.
3512 (memset_libfunc): Likewise.
3513 (setbits_libfunc): Likewise.
3514 (setjmp_libfunc): Likewise.
3515 (longjmp_libfunc): Likewise.
3516 (profile_function_entry_libfunc): Likewise.
3517 (profile_function_exit_libfunc): Likewise.
3518 (gcov_flush_libfunc): Likewise.
3519 * optabs-libfuncs.c (build_libfunc_function): Set DECL_ARTIFICIAL
3520 and DECL_VISIBILITY on the declaration.
3521 (init_optabs): Do not initialize obsolete libfuncs.
3522 * optabs.c (prepare_cmp_insn): Call emit_block_comp_via_libcall.
3523 * tree-core.h (ECF_RET1): Define.
3524 (ECF_TM_PURE): Adjust.
3525 (ECF_TM_BUILTIN): Likewise.
3526 * tree.c (set_call_expr_flags): Deal with ECF_RET1.
3527 (build_common_builtin_nodes): Initialize abort builtin.
3528 Add ECF_RET1 on memcpy, memmove and memset builtins.
3529 Pass final flags for alloca and alloca_with_align builtins.
3530 * config/alpha/alpha.c (alpha_init_libfuncs): Do not initialize
3531 obsolete builtins.
3532 * config/ia64/ia64.c (ia64_vms_init_libfuncs): Likewise.
3533 * config/i386/i386.c (ix86_expand_set_or_movmem): Adjust call to
3534 set_storage_via_libcall and call emit_block_copy_via_libcall.
3535
3536 2016-05-12 Uros Bizjak <ubizjak@gmail.com>
3537
3538 * config/i386/i386.md (*call_got_x32): Change operand 0 to
3539 DImode before it is passed to ix86_output_call_operand.
3540 (*call_value_got_x32): Ditto for operand 1.
3541
3542 2016-05-12 Jiong Wang <jiong.wang@arm.com>
3543
3544 PR rtl-optimization/70904
3545 * lra-constraint.c (process_addr_reg): Relax the restriction on subreg
3546 reload for wide mode.
3547
3548 2016-05-12 Marek Polacek <polacek@redhat.com>
3549
3550 PR c/70756
3551 * langhooks-def.h (lhd_incomplete_type_error): Adjust declaration.
3552 * langhooks.c (lhd_incomplete_type_error): Add location parameter.
3553 * langhooks.h (incomplete_type_error): Likewise.
3554 * tree.c (size_in_bytes_loc): Renamed from size_in_bytes. Add location
3555 parameter, pass it down to incomplete_type_error.
3556 * tree.h (size_in_bytes): New inline overload.
3557 (size_in_bytes_loc): Renamed from size_in_bytes.
3558
3559 2016-05-12 Richard Biener <rguenther@suse.de>
3560
3561 PR tree-optimization/71059
3562 * tree-ssa-pre.c (phi_translate_1): Fully fold translated
3563 nary before looking up or entering the expression into the VN
3564 hashes.
3565 * tree-ssa-sccvn.c (vn_nary_build_or_lookup): Fix comment typo.
3566 Make sure to re-use NARYs without result as inserted by
3567 phi-translation.
3568
3569 2016-05-12 Richard Biener <rguenther@suse.de>
3570
3571 PR tree-optimization/71062
3572 * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
3573 field.
3574 * tree-ssa-structalias.c (set_uids_in_ptset): Set
3575 vars_contains_restrict if the var is a restrict tag.
3576 * tree-ssa-alias.c (ptrs_compare_unequal): If vars_contains_restrict
3577 do not disambiguate pointers against it.
3578 (dump_points_to_solution): Re-structure and adjust for new
3579 vars_contains_restrict flag.
3580 * gimple-pretty-print.c (pp_points_to_solution): Likewise.
3581
3582 2016-05-12 Martin Liska <mliska@suse.cz>
3583
3584 * doc/invoke.texi: Explain connection between
3585 -fsanitize-recover=address and ASAN_OPTIONS="halt_on_error=1".
3586
3587 2016-05-12 Ilya Enkovich <ilya.enkovich@intel.com>
3588
3589 PR tree-optimization/71006
3590 * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
3591 consider COND_EXPR as a mask producer.
3592
3593 2016-05-12 Marek Polacek <polacek@redhat.com>
3594
3595 PR driver/71063
3596 * opts.c (common_handle_option): Detect missing argument for --help^.
3597
3598 2016-05-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3599
3600 PR target/70830
3601 * config/arm/arm.c (arm_output_multireg_pop): Avoid POP instruction
3602 when popping the PC and within an interrupt handler routine.
3603 Add missing tab to output of "ldmfd".
3604 (output_return_instruction): Output LDMFD with SP update rather
3605 than POP when returning from interrupt handler.
3606
3607 2016-05-12 Jakub Jelinek <jakub@redhat.com>
3608
3609 * config/i386/i386.md (isa): Add x64_avx512dq, enable if
3610 TARGET_64BIT && TARGET_AVX512DQ.
3611 * config/i386/sse.md (*vec_extract<mode>): Add avx512bw alternatives.
3612 (*vec_extract<PEXTR_MODE12:mode>_zext): Add avx512bw alternative.
3613 (*vec_extract<ssevecmodelower>_0, *vec_extractv4si_0_zext,
3614 *vec_extractv2di_0_sse): Use v constraint instead of x constraint.
3615 (*vec_extractv4si): Add avx512dq and avx512bw alternatives.
3616 (*vec_extractv4si_zext): Add avx512dq alternative.
3617 (*vec_extractv2di_1): Add x64_avx512dq and avx512bw alternatives,
3618 use v instead of x constraint in other alternatives where possible.
3619
3620 * config/i386/sse.md (sse2_loadld): Use v instead of x
3621 constraint in alternatives 0,1,4.
3622
3623 * config/i386/sse.md (pinsr_evex_isa): New mode attr.
3624 (<sse2p4_1>_pinsr<ssemodesuffix>): Add 2 alternatives with
3625 v constraints instead of x and <pinsr_evex_isa> isa attribute.
3626
3627 PR target/71019
3628 * config/i386/sse.md (<sse2_avx2>_packssdw<mask_name>,
3629 <sse4_1_avx2>_packusdw<mask_name>): Make sure EVEX encoded insn
3630 is not emitted unless TARGET_AVX512BW.
3631 (<sse2_avx2>_packuswb<mask_name>, <sse2_avx2>_packsswb<mask_name>):
3632 Likewise. For TARGET_AVX512BW, use "=v" constraint instead of "=x"
3633 for the result operand.
3634
3635 * config/i386/sse.md (*vec_setv4sf_sse4_1, sse4_1_insertps): Use v
3636 constraint instead of x in avx alternatives. Use maybe_evex instead
3637 of vex prefix.
3638
3639 * config/i386/constraints.md (Yv): New constraint.
3640 * config/i386/i386.h (VALID_AVX512VL_128_REG_MODE): Allow
3641 TFmode and V1TImode in xmm16+ registers for TARGET_AVX512VL.
3642 * config/i386/i386.md (avx512fvecmode): New mode attr.
3643 (*pushtf): Use v constraint instead of x.
3644 (*movtf_internal): Likewise. For TARGET_AVX512VL and
3645 xmm16+ registers, use vmovdqu64 or vmovdqa64 instructions.
3646 (*absneg<mode>2): Use Yv constraint instead of x constraint.
3647 (*absnegtf2_sse): Likewise.
3648 (copysign<mode>3_const, copysign<mode>3_var): Likewise.
3649 * config/i386/sse.md (*andnot<mode>3): Add avx512vl and
3650 avx512f alternatives.
3651 (*andnottf3, *<code><mode>3, *<code>tf3): Likewise.
3652
3653 2016-05-12 Richard Biener <rguenther@suse.de>
3654
3655 PR tree-optimization/71060
3656 * tree-data-ref.c (initialize_data_dependence_relation): Do not
3657 require exact match of DR_BASE_OBJECT but only matching address and
3658 type.
3659
3660 2016-05-12 Richard Biener <rguenther@suse.de>
3661
3662 PR tree-optimization/70986
3663 * cfganal.c: Include cfgloop.h.
3664 (dfs_find_deadend): Prefer to take edges exiting loops.
3665
3666 2016-05-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3667
3668 * gcc.target/powerpc/pr70963.c: Require at least power8 at both
3669 compile and run time.
3670
3671 2016-05-11 Mikhail Maltsev <maltsevm@gmail.com>
3672
3673 PR c/43651
3674 * doc/invoke.texi (Wduplicate-decl-specifier): Document new option.
3675
3676 2016-05-11 Uros Bizjak <ubizjak@gmail.com>
3677
3678 * config/i386/i386.c (legitimize_pic_address): Use
3679 copy_to_suggested_reg instead of gen_movsi.
3680
3681 2016-05-11 Michael Meissner <meissner@linux.vnet.ibm.com>
3682
3683 * config/rs6000/predicates.md (quad_memory_operand): Move most of
3684 the code into quad_address_p and call it to share code with
3685 vsx_quad_dform_memory_operand.
3686 (vsx_quad_dform_memory_operand): New predicate for ISA 3.0 vector
3687 d-form support.
3688 * config/rs6000/rs6000.opt (-mlra): Switch to being an option mask
3689 bit instead of being a separate word. Split -mpower9-dform into
3690 two switches, -mpower9-dform-scalar and -mpower9-dform-vector.
3691 * config/rs6000/rs6000.c (RELOAD_REG_QUAD_OFFSET): New addr_mask
3692 for the register class supporting 128-bit quad word memory offsets.
3693 (mode_supports_vsx_dform_quad): Helper function to return if the
3694 register class uses quad word memory offsets.
3695 (rs6000_debug_addr_mask): Add support for quad word memory offsets.
3696 (rs6000_debug_reg_global): Always print if we are using LRA or not.
3697 (rs6000_setup_reg_addr_masks): If ISA 3.0 vector d-form
3698 instructions are enabled, set up the appropriate addr_masks for
3699 128-bit types.
3700 (rs6000_init_hard_regno_mode_ok): wb constraint is now based on
3701 -mpower9-dform-scalar, instead of -mpower9-dform.
3702 (rs6000_option_override_internal): Split -mpower9-dform into two
3703 switches, -mpower9-dform-scalar and -mpower9-dform-vector. The
3704 -mpower9-dform switch sets or clears both. If we are not using
3705 the LRA register allocator, do not enable -mpower9-dform-vector by
3706 default. If we are using LRA, enable -mpower9-dform-vector and
3707 -mvsx-timode if it is appropriate. Issue a warning if either
3708 -mpower9-dform-vector or -mvsx-timode are explicitly used without
3709 enabling LRA.
3710 (quad_address_offset_p): New helper function to return if the
3711 offset is legal for quad word memory instructions.
3712 (quad_address_p): New function to determin if GPR or vector
3713 register quad word memory addresses are legal.
3714 (mem_operand_gpr): Validate quad word address offsets.
3715 (reg_offset_addressing_ok_p): Add support for ISA 3.0 vector
3716 d-form (register + offset) instructions.
3717 (offsettable_ok_by_alignment): Likewise.
3718 (rs6000_legitimate_offset_address_p): Likewise.
3719 (legitimate_lo_sum_address_p): Likewise.
3720 (rs6000_legitimize_address): Likewise.
3721 (rs6000_legitimize_reload_address): Add more debug statements for
3722 -mdebug=addr.
3723 (rs6000_legitimate_address_p): Add support for ISA 3.0 vector
3724 d-form instructions.
3725 (rs6000_secondary_reload_memory): Add support for ISA 3.0 vector
3726 d-form instructions. Distinguish different cases in debug
3727 output. (rs6000_secondary_reload_inner): Add support for ISA 3.0 vector
3728 d-form instructions.
3729 (rs6000_preferred_reload_class): Likewise.
3730 (rs6000_output_move_128bit): Add support for ISA 3.0 d-form
3731 instructions. If ISA 3.0 is available, generate lxvx/stxvx instead
3732 of the ISA 2.06 indexed memory instructions.
3733 (rs6000_emit_prologue): If we have ISA 3.0 d-form instructions,
3734 use them to save/restore the saved vector registers instead of
3735 using Altivec instructions.
3736 (rs6000_emit_epilogue): Likewise.
3737 (rs6000_lra_p): Use TARGET_LRA instead of the old option word.
3738 (rs6000_opt_masks): Split -mpower9-dform into
3739 -mpower9-dform-scalar and -mpower9-dform-vector.
3740 (rs6000_print_options_internal): Print -mno-<switch> if <switch>
3741 was not selected.
3742 * config/rs6000/vsx.md (p9_vecload_<mode>): Delete hack to emit
3743 ISA 3.0 vector indexed memory instructions, and fold the code into
3744 the normal mov<mode> patterns.
3745 (p9_vecstore_<mode>): Likewise.
3746 (vsx_mov<mode>): Add support for ISA 3.0 vector d-form
3747 instructions.
3748 (vsx_movti_64bit): Likewise.
3749 (vsx_movti_32bit): Likewise.
3750 * config/rs6000/constraints.md (wO constraint): New constraint for
3751 ISA 3.0 vector d-form support.
3752 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Use
3753 -mpower9-dform-scalar instead of -mpower9-dform. Add note not to
3754 include -mpower9-dform-vector until we switch over to LRA.
3755 (POWERPC_MASKS): Add -mlra. Split -mpower9-dform into two.
3756 switches, -mpower9-dform-scalar and -mpower9-dform-vector.
3757 * config/rs6000/rs6000-protos.h (quad_address_p): Add declaration.
3758 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
3759 for -mpower9-dform and -mlra.
3760 * doc/md.texi (wO constraint): Document wO constraint.
3761
3762 2016-05-11 Alexander Monakov <amonakov@ispras.ru>
3763
3764 * genattr.c (main): Change 'rtx' to 'rtx_insn *' in prototypes of
3765 'insn_latency', 'maximal_insn_latency', 'min_insn_conflict_delay'.
3766 * genautomata.c (output_internal_insn_code_evaluation): Simplify.
3767 Move handling of non-insn arguments inline into the sole user:
3768 (output_trans_func): ...here.
3769 (output_min_insn_conflict_delay_func): Change 'rtx' to 'rtx_insn *'
3770 in emitted function prototype.
3771 (output_internal_insn_latency_func): Ditto. Simplify.
3772 (output_internal_maximal_insn_latency_func): Ditto. Delete
3773 always-unused argument.
3774 (output_insn_latency_func): Ditto.
3775 (output_maximal_insn_latency_func): Ditto.
3776
3777 2016-05-11 Richard Biener <rguenther@suse.de>
3778
3779 PR tree-optimization/71055
3780 * tree-ssa-sccvn.c (vn_reference_lookup_3): When native-interpreting
3781 sth with precision not equal to access size verify we don't chop
3782 off bits.
3783
3784 2016-05-11 Richard Biener <rguenther@suse.de>
3785
3786 PR debug/71057
3787 * dwarf2out.c (retry_incomplete_types): Set early_dwarf.
3788 (dwarf2out_finish): Move retry_incomplete_types call ...
3789 (dwarf2out_early_finish): ... here.
3790
3791 2016-05-11 Richard Biener <rguenther@suse.de>
3792
3793 PR middle-end/71002
3794 * alias.c (reference_alias_ptr_type): Preserve alias-set zero
3795 if the langhook insists on it.
3796 * fold-const.c (make_bit_field_ref): Add arg for the original
3797 reference and preserve its alias-set.
3798 (decode_field_reference): Take exp by reference and adjust it
3799 to the original memory reference.
3800 (optimize_bit_field_compare): Adjust callers.
3801 (fold_truth_andor_1): Likewise.
3802 * gimplify.c (gimplify_expr): Adjust in-SSA form test.
3803
3804 2016-05-11 Ilya Enkovich <ilya.enkovich@intel.com>
3805
3806 PR middle-end/70807
3807 * cfgrtl.h (delete_insn_and_edges): Now return bool.
3808 * cfgrtl.c (delete_insn_and_edges): Likewise.
3809 * config/i386/i386.c (convert_scalars_to_vector): Remove
3810 redundant code.
3811 * cse.c (cse_insn): Compute cse_cfg_altered.
3812 (delete_trivially_dead_insns): Likewise.
3813 (cse_cc_succs): Likewise.
3814 (rest_of_handle_cse): Free dominance info if required.
3815 (rest_of_handle_cse2): Likewise.
3816 (rest_of_handle_cse_after_global_opts): Likewise.
3817
3818 2016-05-11 Alan Modra <amodra@gmail.com>
3819
3820 * config/rs6000/rs6000.c (is_complex_IBM_long_double,
3821 abi_v4_pass_in_fpr): New functions.
3822 (rs6000_function_arg_boundary): Exclude complex IBM long double
3823 from 64-bit alignment when ABI_V4.
3824 (rs6000_function_arg, rs6000_function_arg_advance_1,
3825 rs6000_gimplify_va_arg): Use abi_v4_pass_in_fpr.
3826
3827 2016-05-10 Segher Boessenkool <segher@kernel.crashing.org>
3828
3829 PR rtl-optimization/71028
3830 * cfgcleanup.c (try_optimize_cfg): Do not flip a conditional
3831 jump with just a return in the fallthrough block if the branch
3832 block contains just a return as well.
3833
3834 2016-05-10 Marc Glisse <marc.glisse@inria.fr>
3835
3836 * fold-const.c (fold_binary_loc) [(X ^ Y) & Y]: Remove and merge with...
3837 * match.pd ((X & Y) ^ Y): ... this.
3838 ((X & Y) & Y, (X | Y) | Y, (X ^ Y) ^ Y, (X & Y) & (X & Z), (X | Y)
3839 | (X | Z), (X ^ Y) ^ (X ^ Z)): New transformations.
3840
3841 2016-05-10 David Malcolm <dmalcolm@redhat.com>
3842
3843 * read-md.c (require_char_ws): New function.
3844 (read_string): Simplify using require_char_ws.
3845 (handle_constants): Likewise.
3846 (handle_enum): Likewise.
3847 (handle_file): Likewise.
3848 * read-md.h (require_char_ws): New declaration.
3849 * read-rtl.c (read_conditions): Simplify using require_char_ws.
3850 (read_mapping): Likewise.
3851 (read_rtx_code): Likewise.
3852 (read_nested_rtx): Likewise.
3853
3854 2016-05-10 James Norris <jnorris@codesourcery.com>
3855
3856 * config/rs6000/sysv4.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o
3857 if offloading is enabled and -fopenacc or -fopenmp is specified.
3858 (CRTOFFLOADEND): Likewise.
3859 (STARTFILE_LINUX_SPEC): Add CRTOFFLOADBEGIN.
3860 (ENDFILE_LINUX_SPEC): Add CRTOFFLOADEND.
3861
3862 2016-05-10 Uros Bizjak <ubizjak@gmail.com>
3863
3864 * config/i386/i386.c (legitimize_pic_address): Merge 64-bit and 32-bit
3865 gotoff_operand code paths. Use copy_to_suggested_regs and
3866 expand_simple_binop where appropriate. Cleanup.
3867
3868 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
3869
3870 PR target/70799
3871 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Allow
3872 integer constants.
3873 (dimode_scalar_chain::vector_const_cost): New.
3874 (dimode_scalar_chain::compute_convert_gain): Handle constants.
3875 (dimode_scalar_chain::convert_op): Likewise.
3876 (dimode_scalar_chain::convert_insn): Likewise.
3877
3878 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com>
3879
3880 * dwarf2out.c (resolve_args_picking_1): Consider DW_OP_neg as an
3881 unary operation, not a binary one.
3882
3883 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
3884
3885 PR middle-end/70877
3886 * tree-chkp.c (chkp_add_bounds_to_call_stmt): Handle
3887 calls with type casted fndecl.
3888
3889 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
3890
3891 PR tree-optimization/70786
3892 * tree-chkp.c (chkp_find_bounds_1): Support WITH_SIZE_EXPR.
3893 * calls.c (initialize_argument_information): Bind bounds
3894 with corresponding args passed by reference.
3895
3896 2016-05-10 Jakub Jelinek <jakub@redhat.com>
3897
3898 PR target/70927
3899 * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>),
3900 *<code><mode>3<mask_name>): For !TARGET_AVX512DQ and EVEX encoding,
3901 use vp*[dq] instead of v*p[sd] instructions and adjust mode attribute
3902 accordingly.
3903
3904 2016-05-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3905
3906 PR target/70963
3907 * config/rs6000/vsx.md (vsx_xvcvdpsxds_scale): Generate correct
3908 code for a zero scale factor.
3909 (vsx_xvcvdpuxds_scale): Likewise.
3910
3911 2016-05-10 David Malcolm <dmalcolm@redhat.com>
3912
3913 * diagnostic-show-locus.c (layout::layout): Call show_ruler
3914 if show_ruler_p was set on the context.
3915 (layout::show_ruler): New method.
3916 * diagnostic.h (struct diagnostic_context): Add field
3917 "show_ruler_p".
3918
3919 2016-05-10 Richard Biener <rguenther@suse.de>
3920
3921 PR tree-optimization/71039
3922 * tree-ssa-phiprop.c: Include tree-ssa-loop.h.
3923 (chk_uses): New function.
3924 (propagate_with_phi): Verify we can safely replicate the lhs of an
3925 aggregate assignment on all incoming edges.
3926
3927 2016-05-10 Oleg Endo <olegendo@gcc.gnu.org>
3928
3929 * config/rx/rx-protos.h (is_interrupt_func, is_fast_interrupt_func):
3930 Forward declare.
3931 (rx_atomic_sequence): New class.
3932 * config/rx/rx.c (rx_print_operand): Use symbolic names for PSW bits.
3933 (is_interrupt_func, is_fast_interrupt_func): Make non-static and
3934 non-inline.
3935 (rx_atomic_sequence::rx_atomic_sequence,
3936 rx_atomic_sequence::~rx_atomic_sequence): New functions.
3937 * config/rx/rx.md (CTRLREG_PSW, CTRLREG_USP, CTRLREG_FPSW, CTRLREG_CPEN,
3938 CTRLREG_BPSW, CTRLREG_BPC, CTRLREG_ISP, CTRLREG_FINTV,
3939 CTRLREG_INTB): New constants.
3940 (FETCHOP): New code iterator.
3941 (fethcop_name, fetchop_name2): New iterator code attributes.
3942 (QIHI): New mode iterator.
3943 (atomic_exchange<mode>, atomic_exchangesi, xchg_mem<mode>,
3944 atomic_fetch_<fetchop_name>si, atomic_fetch_nandsi,
3945 atomic_<fetchop_name>_fetchsi, atomic_nand_fetchsi): New patterns.
3946
3947 2016-05-10 Martin Liska <mliska@suse.cz>
3948
3949 * tree-inline.c (remap_dependence_clique): Do not remap
3950 debugging statements.
3951
3952 2016-05-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3953
3954 * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly")
3955 ("*fixuns_truncdfdi2_z13")
3956 ("*fixuns_trunc<FP:mode><GPR:mode>2_z196")
3957 ("*fix_truncdfdi2_bfp_z13", "*floatunsdidf2_z13")
3958 ("*extendsfdf2_z13"): Replace TARGET_Z13 with TARGET_VX.
3959
3960 2016-05-10 Richard Biener <rguenther@suse.de>
3961
3962 PR tree-optimization/70497
3963 PR tree-optimization/28367
3964 * tree-ssa-sccvn.c (vn_nary_build_or_lookup): New function
3965 split out from ...
3966 (visit_reference_op_load): ... here.
3967 (vn_reference_lookup_3): Use it to handle subreg-like accesses
3968 with simplified BIT_FIELD_REFs.
3969 * tree-ssa-pre.c (eliminate_insert): Handle inserting BIT_FIELD_REFs.
3970 * tree-complex.c (extract_component): Handle BIT_FIELD_REFs
3971 correctly.
3972
3973 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com>
3974
3975 * dwarf2out.c (add_abstract_origin_attribute): Adjust
3976 documentation comment. For BLOCK nodes, add a
3977 DW_AT_abstract_origin attribute that points to the DIE generated
3978 for the origin BLOCK.
3979 (gen_lexical_block_die): Call add_abstract_origin_attribute for
3980 blocks from inlined functions.
3981
3982 2016-05-10 Alan Modra <amodra@gmail.com>
3983
3984 PR target/70947
3985 * config/rs6000/rs6000.c (rs6000_expand_split_stack_prologue): Stop
3986 regrename modifying insns saving lr before __morestack call.
3987 * config/rs6000/rs6000.md (split_stack_return): Similarly for
3988 insns restoring lr after __morestack call.
3989
3990 2016-05-09 Jakub Jelinek <jakub@redhat.com>
3991
3992 * config/i386/i386.md (set_got, set_got_labelled, lwp_llwpcb,
3993 lwp_lwpval<mode>3, lwp_lwpins<mode>3): Remove constraints from
3994 expanders.
3995 * config/i386/sse.md (vec_interleave_high<mode>,
3996 vec_interleave_low<mode>, <avx512>_vpermi2var<mode>3_maskz,
3997 <avx512>_vpermt2var<mode>3_maskz): Likewise.
3998
3999 2016-05-04 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
4000
4001 * config/rs6000/rs6000.c (rs6000_reassociation_width): Add
4002 function for TARGET_SCHED_REASSOCIATION_WIDTH to enable
4003 parallel reassociation for power8 and forward.
4004
4005 2016-05-09 Uros Bizjak <ubizjak@gmail.com>
4006
4007 * config/i386/i386.md (absneg splitters with general regs): Use
4008 general_reg_operand predicate.
4009 (btsq peephole2): Use x86_64_immediate_operand to check if new
4010 value is suitable for immediate operand. Generate emitted insn
4011 using RTL expressions.
4012 (btcq peephole2): Ditto.
4013 (btrq peephole2): Ditto. Generate correct immediate operand
4014 for AND masking.
4015
4016 2016-05-09 Richard Sandiford <richard.sandiford@arm.com>
4017
4018 * cfgexpand.c (expand_debug_expr): Fix address offset for negative
4019 bitpos.
4020
4021 2016-05-09 Richard Sandiford <richard.sandiford@arm.com>
4022
4023 * tree-affine.c (wide_int_constant_multiple_p): Add missing
4024 pointer dereference.
4025
4026 2016-05-09 Richard Biener <rguenther@suse.de>
4027
4028 PR tree-optimization/70985
4029 * match.pd (BIT_FIELD_REF -> (type)): Disable on GIMPLE when
4030 op0 isn't a gimple register.
4031
4032 2016-05-09 Prachi Godbole <prachi.godbole@imgtec.com>
4033
4034 * config/mips/i6400.md (i6400_fpu_intadd, i6400_fpu_logic)
4035 (i6400_fpu_div, i6400_fpu_cmp, i6400_fpu_float, i6400_fpu_store)
4036 (i6400_fpu_long_pipe, i6400_fpu_logic_l, i6400_fpu_float_l)
4037 (i6400_fpu_mult): New cpu units.
4038 (i6400_msa_add_d, i6400_msa_int_add, i6400_msa_short_logic3)
4039 (i6400_msa_short_logic2, i6400_msa_short_logic, i6400_msa_move)
4040 (i6400_msa_cmp, i6400_msa_short_float2, i6400_msa_div_d)
4041 (i6400_msa_div_w, i6400_msa_div_h, i6400_msa_div_b)
4042 (i6400_msa_copy, i6400_msa_branch, i6400_fpu_msa_store)
4043 (i6400_fpu_msa_load, i6400_fpu_msa_move, i6400_msa_long_logic1)
4044 (i6400_msa_long_logic2, i6400_msa_mult, i6400_msa_long_float2)
4045 (i6400_msa_long_float4, i6400_msa_long_float5)
4046 (i6400_msa_long_float8, i6400_msa_fdiv_df)
4047 (i6400_msa_fdiv_sf): New reservations.
4048 * config/mips/p5600.md (p5600_fpu_intadd, p5600_fpu_cmp)
4049 (p5600_fpu_float, p5600_fpu_logic_a, p5600_fpu_logic_b)
4050 (p5600_fpu_div, p5600_fpu_logic, p5600_fpu_float_a)
4051 (p5600_fpu_float_b, p5600_fpu_float_c, p5600_fpu_float_d)
4052 (p5600_fpu_mult, p5600_fpu_fdiv, p5600_fpu_load): New cpu units.
4053 (msa_short_int_add, msa_short_logic, msa_short_logic_move_v)
4054 (msa_short_cmp, msa_short_float2, msa_short_logic3)
4055 (msa_short_store4, msa_long_load, msa_short_store)
4056 (msa_long_logic, msa_long_float2, msa_long_float4)
4057 (msa_long_float5, msa_long_float8, msa_long_mult)
4058 (msa_long_fdiv, msa_long_div): New reservations.
4059
4060 2016-05-09 Robert Suchanek <robert.suchanek@imgtec.com>
4061 Sameera Deshpande <sameera.deshpande@imgtec.com>
4062 Matthew Fortune <matthew.fortune@imgtec.com>
4063 Graham Stott <graham.stott@imgtec.com>
4064 Chao-ying Fu <chao-ying.fu@imgtec.com>
4065
4066 * config.gcc: Add MSA header file for mips*-*-* target.
4067 * config/mips/constraints.md (YI, YC, YZ, Unv5, Uuv5, Usv5, Uuv6)
4068 (Ubv8i, Urv8): New constraints.
4069 * config/mips/mips-ftypes.def: Add function types for MSA
4070 builtins.
4071 * config/mips/mips-modes.def (V16QI, V8HI, V4SI, V2DI, V4SF)
4072 (V2DF, V32QI, V16HI, V8SI, V4DI, V8SF, V4DF): New modes.
4073 * config/mips/mips-msa.md: New file.
4074 * config/mips/mips-protos.h
4075 (mips_split_128bit_const_insns): New prototype.
4076 (mips_msa_idiv_insns): Likewise.
4077 (mips_split_128bit_move): Likewise.
4078 (mips_split_128bit_move_p): Likewise.
4079 (mips_split_msa_copy_d): Likewise.
4080 (mips_split_msa_insert_d): Likewise.
4081 (mips_split_msa_fill_d): Likewise.
4082 (mips_expand_msa_branch): Likewise.
4083 (mips_const_vector_same_val_p): Likewise.
4084 (mips_const_vector_same_bytes_p): Likewise.
4085 (mips_const_vector_same_int_p): Likewise.
4086 (mips_const_vector_shuffle_set_p): Likewise.
4087 (mips_const_vector_bitimm_set_p): Likewise.
4088 (mips_const_vector_bitimm_clr_p): Likewise.
4089 (mips_msa_vec_parallel_const_half): Likewise.
4090 (mips_msa_output_division): Likewise.
4091 (mips_ldst_scaled_shift): Likewise.
4092 (mips_expand_vec_cond_expr): Likewise.
4093 * config/mips/mips.c (enum mips_builtin_type): Add
4094 MIPS_BUILTIN_MSA_TEST_BRANCH.
4095 (mips_gen_const_int_vector_shuffle): New prototype.
4096 (mips_const_vector_bitimm_set_p): New function.
4097 (mips_const_vector_bitimm_clr_p): Likewise.
4098 (mips_const_vector_same_val_p): Likewise.
4099 (mips_const_vector_same_bytes_p): Likewise.
4100 (mips_const_vector_same_int_p): Likewise.
4101 (mips_const_vector_shuffle_set_p): Likewise.
4102 (mips_symbol_insns): Forbid loading symbols via immediate for
4103 MSA.
4104 (mips_valid_offset_p): Limit offset to 10-bit for MSA loads and
4105 stores.
4106 (mips_valid_lo_sum_p): Forbid loadings symbols via %lo(base) for
4107 MSA.
4108 (mips_lx_address_p): Add support load indexed address for MSA.
4109 (mips_address_insns): Add calculation of instructions needed for
4110 stores and loads for MSA.
4111 (mips_const_insns): Move CONST_DOUBLE below CONST_VECTOR. Handle
4112 CONST_VECTOR for MSA and let it fall through.
4113 (mips_ldst_scaled_shift): New function.
4114 (mips_subword_at_byte): Likewise.
4115 (mips_msa_idiv_insns): Likewise.
4116 (mips_legitimize_move): Validate MSA moves.
4117 (mips_rtx_costs): Add UNGE, UNGT, UNLE, UNLT cases. Add
4118 calculation of costs for MSA division.
4119 (mips_split_move_p): Check if MSA moves need splitting.
4120 (mips_split_move): Split MSA moves if necessary.
4121 (mips_split_128bit_move_p): New function.
4122 (mips_split_128bit_move): Likewise.
4123 (mips_split_msa_copy_d): Likewise.
4124 (mips_split_msa_insert_d): Likewise.
4125 (mips_split_msa_fill_d): Likewise.
4126 (mips_output_move): Handle MSA moves.
4127 (mips_expand_msa_branch): New function.
4128 (mips_print_operand): Add 'E', 'B', 'w', 'v' and 'V' modifiers.
4129 Reinstate 'y' modifier.
4130 (mips_file_start): Add MSA .gnu_attribute.
4131 (mips_hard_regno_mode_ok_p): Allow TImode and 128-bit vectors in
4132 FPRs.
4133 (mips_hard_regno_nregs): Always return 1 for MSA supported mode.
4134 (mips_class_max_nregs): Add register size for MSA supported mode.
4135 (mips_cannot_change_mode_class): Allow conversion between MSA
4136 vector modes and TImode.
4137 (mips_mode_ok_for_mov_fmt_p): Allow MSA to use move.v
4138 instruction.
4139 (mips_secondary_reload_class): Force MSA loads/stores via memory.
4140 (mips_preferred_simd_mode): Add preffered modes for MSA.
4141 (mips_vector_mode_supported_p): Add MSA supported modes.
4142 (mips_autovectorize_vector_sizes): New function.
4143 (mips_msa_output_division): Likewise.
4144 (MSA_BUILTIN, MIPS_BUILTIN_DIRECT_NO_TARGET)
4145 (MSA_NO_TARGET_BUILTIN, MSA_BUILTIN_TEST_BRANCH): New macros.
4146 (CODE_FOR_msa_adds_s_b, CODE_FOR_msa_adds_s_h)
4147 (CODE_FOR_msa_adds_s_w, CODE_FOR_msa_adds_s_d)
4148 (CODE_FOR_msa_adds_u_b, CODE_FOR_msa_adds_u_h)
4149 (CODE_FOR_msa_adds_u_w, CODE_FOR_msa_adds_u_du
4150 (CODE_FOR_msa_addv_b, CODE_FOR_msa_addv_h, CODE_FOR_msa_addv_w)
4151 (CODE_FOR_msa_addv_d, CODE_FOR_msa_and_v, CODE_FOR_msa_bmnz_v)
4152 (CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bmz_v, CODE_FOR_msa_bmzi_b)
4153 (CODE_FOR_msa_bnz_v, CODE_FOR_msa_bz_v, CODE_FOR_msa_bsel_v)
4154 (CODE_FOR_msa_bseli_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w)
4155 (CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b)
4156 (CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w)
4157 (CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clti_u_b)
4158 (CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w)
4159 (CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_s_b)
4160 (CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w)
4161 (CODE_FOR_msa_clei_s_d, CODE_FOR_msa_clei_u_b)
4162 (CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w)
4163 (CODE_FOR_msa_clei_u_d, CODE_FOR_msa_div_s_b)
4164 (CODE_FOR_msa_div_s_h, CODE_FOR_msa_div_s_w)
4165 (CODE_FOR_msa_div_s_d, CODE_FOR_msa_div_u_b)
4166 (CODE_FOR_msa_div_u_h, CODE_FOR_msa_div_u_w)
4167 (CODE_FOR_msa_div_u_d, CODE_FOR_msa_fadd_w, CODE_FOR_msa_fadd_d)
4168 (CODE_FOR_msa_fexdo_w, CODE_FOR_msa_ftrunc_s_w)
4169 (CODE_FOR_msa_ftrunc_s_d, CODE_FOR_msa_ftrunc_u_w)
4170 (CODE_FOR_msa_ftrunc_u_d, CODE_FOR_msa_ffint_s_w)
4171 (CODE_FOR_msa_ffint_s_d, CODE_FOR_msa_ffint_u_w)
4172 (CODE_FOR_msa_ffint_u_d, CODE_FOR_msa_fsub_w)
4173 (CODE_FOR_msa_fsub_d, CODE_FOR_msa_fmsub_d, CODE_FOR_msa_fmadd_w)
4174 (CODE_FOR_msa_fmadd_d, CODE_FOR_msa_fmsub_w, CODE_FOR_msa_fmul_w)
4175 (CODE_FOR_msa_fmul_d, CODE_FOR_msa_fdiv_w, CODE_FOR_msa_fdiv_d)
4176 (CODE_FOR_msa_fmax_w, CODE_FOR_msa_fmax_d, CODE_FOR_msa_fmax_a_w)
4177 (CODE_FOR_msa_fmax_a_d, CODE_FOR_msa_fmin_w, CODE_FOR_msa_fmin_d)
4178 (CODE_FOR_msa_fmin_a_w, CODE_FOR_msa_fmin_a_d)
4179 (CODE_FOR_msa_fsqrt_w, CODE_FOR_msa_fsqrt_d)
4180 (CODE_FOR_msa_max_s_b, CODE_FOR_msa_max_s_h)
4181 (CODE_FOR_msa_max_s_w, CODE_FOR_msa_max_s_d)
4182 (CODE_FOR_msa_max_u_b, CODE_FOR_msa_max_u_h)
4183 (CODE_FOR_msa_max_u_w, CODE_FOR_msa_max_u_d)
4184 (CODE_FOR_msa_min_s_b, CODE_FOR_msa_min_s_h)
4185 (CODE_FOR_msa_min_s_w, CODE_FOR_msa_min_s_d)
4186 (CODE_FOR_msa_min_u_b, CODE_FOR_msa_min_u_h)
4187 (CODE_FOR_msa_min_u_w, CODE_FOR_msa_min_u_d)
4188 (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
4189 (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
4190 (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
4191 (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
4192 (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
4193 (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
4194 (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
4195 (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
4196 (CODE_FOR_msa_mulv_b, CODE_FOR_msa_mulv_h, CODE_FOR_msa_mulv_w)
4197 (CODE_FOR_msa_mulv_d, CODE_FOR_msa_nlzc_b, CODE_FOR_msa_nlzc_h)
4198 (CODE_FOR_msa_nlzc_w, CODE_FOR_msa_nlzc_d, CODE_FOR_msa_nor_v)
4199 (CODE_FOR_msa_or_v, CODE_FOR_msa_ori_b, CODE_FOR_msa_nori_b)
4200 (CODE_FOR_msa_pcnt_b, CODE_FOR_msa_pcnt_h, CODE_FOR_msa_pcnt_w)
4201 (CODE_FOR_msa_pcnt_d, CODE_FOR_msa_xor_v, CODE_FOR_msa_xori_b)
4202 (CODE_FOR_msa_sll_b, CODE_FOR_msa_sll_h, CODE_FOR_msa_sll_w)
4203 (CODE_FOR_msa_sll_d, CODE_FOR_msa_slli_b, CODE_FOR_msa_slli_h)
4204 (CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d, CODE_FOR_msa_sra_b)
4205 (CODE_FOR_msa_sra_h, CODE_FOR_msa_sra_w, CODE_FOR_msa_sra_d)
4206 (CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w)
4207 (CODE_FOR_msa_srai_d, CODE_FOR_msa_srl_b, CODE_FOR_msa_srl_h)
4208 (CODE_FOR_msa_srl_w, CODE_FOR_msa_srl_d, CODE_FOR_msa_srli_b)
4209 (CODE_FOR_msa_srli_h, CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d)
4210 (CODE_FOR_msa_subv_b, CODE_FOR_msa_subv_h, CODE_FOR_msa_subv_w)
4211 (CODE_FOR_msa_subv_d, CODE_FOR_msa_subvi_b, CODE_FOR_msa_subvi_h)
4212 (CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d, CODE_FOR_msa_move_v)
4213 (CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h, CODE_FOR_msa_vshf_w)
4214 (CODE_FOR_msa_vshf_d, CODE_FOR_msa_ilvod_d, CODE_FOR_msa_ilvev_d)
4215 (CODE_FOR_msa_pckod_d, CODE_FOR_msa_pckdev_d, CODE_FOR_msa_ldi_b)
4216 (CODE_FOR_msa_ldi_hi, CODE_FOR_msa_ldi_w)
4217 (CODE_FOR_msa_ldi_d): New code_aliasing macros.
4218 (mips_builtins): Add MSA sll_b, sll_h, sll_w, sll_d, slli_b,
4219 slli_h, slli_w, slli_d, sra_b, sra_h, sra_w, sra_d, srai_b,
4220 srai_h, srai_w, srai_d, srar_b, srar_h, srar_w, srar_d, srari_b,
4221 srari_h, srari_w, srari_d, srl_b, srl_h, srl_w, srl_d, srli_b,
4222 srli_h, srli_w, srli_d, srlr_b, srlr_h, srlr_w, srlr_d, srlri_b,
4223 srlri_h, srlri_w, srlri_d, bclr_b, bclr_h, bclr_w, bclr_d,
4224 bclri_b, bclri_h, bclri_w, bclri_d, bset_b, bset_h, bset_w,
4225 bset_d, bseti_b, bseti_h, bseti_w, bseti_d, bneg_b, bneg_h,
4226 bneg_w, bneg_d, bnegi_b, bnegi_h, bnegi_w, bnegi_d, binsl_b,
4227 binsl_h, binsl_w, binsl_d, binsli_b, binsli_h, binsli_w,
4228 binsli_d, binsr_b, binsr_h, binsr_w, binsr_d, binsri_b, binsri_h,
4229 binsri_w, binsri_d, addv_b, addv_h, addv_w, addv_d, addvi_b,
4230 addvi_h, addvi_w, addvi_d, subv_b, subv_h, subv_w, subv_d,
4231 subvi_b, subvi_h, subvi_w, subvi_d, max_s_b, max_s_h, max_s_w,
4232 max_s_d, maxi_s_b, maxi_s_h, maxi_s_w, maxi_s_d, max_u_b,
4233 max_u_h, max_u_w, max_u_d, maxi_u_b, maxi_u_h, maxi_u_w,
4234 maxi_u_d, min_s_b, min_s_h, min_s_w, min_s_d, mini_s_b, mini_s_h,
4235 mini_s_w, mini_s_d, min_u_b, min_u_h, min_u_w, min_u_d, mini_u_b,
4236 mini_u_h, mini_u_w, mini_u_d, max_a_b, max_a_h, max_a_w, max_a_d,
4237 min_a_b, min_a_h, min_a_w, min_a_d, ceq_b, ceq_h, ceq_w, ceq_d,
4238 ceqi_b, ceqi_h, ceqi_w, ceqi_d, clt_s_b, clt_s_h, clt_s_w,
4239 clt_s_d, clti_s_b, clti_s_h, clti_s_w, clti_s_d, clt_u_b,
4240 clt_u_h, clt_u_w, clt_u_d, clti_u_b, clti_u_h, clti_u_w,
4241 clti_u_d, cle_s_b, cle_s_h, cle_s_w, cle_s_d, clei_s_b, clei_s_h,
4242 clei_s_w, clei_s_d, cle_u_b, cle_u_h, cle_u_w, cle_u_d, clei_u_b,
4243 clei_u_h, clei_u_w, clei_u_d, ld_b, ld_h, ld_w, ld_d, st_b, st_h,
4244 st_w, st_d, sat_s_b, sat_s_h, sat_s_w, sat_s_d, sat_u_b, sat_u_h,
4245 sat_u_w, sat_u_d, add_a_b, add_a_h, add_a_w, add_a_d, adds_a_b,
4246 adds_a_h, adds_a_w, adds_a_d, adds_s_b, adds_s_h, adds_s_w,
4247 adds_s_d, adds_u_b, adds_u_h, adds_u_w, adds_u_d, ave_s_b,
4248 ave_s_h, ave_s_w, ave_s_d, ave_u_b, ave_u_h, ave_u_w, ave_u_d,
4249 aver_s_b, aver_s_h, aver_s_w, aver_s_d, aver_u_b, aver_u_h,
4250 aver_u_w, aver_u_d, subs_s_b, subs_s_h, subs_s_w, subs_s_d,
4251 subs_u_b, subs_u_h, subs_u_w, subs_u_d, subsuu_s_b, subsuu_s_h,
4252 subsuu_s_w, subsuu_s_d, subsus_u_b, subsus_u_h, subsus_u_w,
4253 subsus_u_d, asub_s_b, asub_s_h, asub_s_w, asub_s_d, asub_u_b,
4254 asub_u_h, asub_u_w, asub_u_d, mulv_b, mulv_h, mulv_w, mulv_d,
4255 maddv_b, maddv_h, maddv_w, maddv_d, msubv_b, msubv_h, msubv_w,
4256 msubv_d, div_s_b, div_s_h, div_s_w, div_s_d, div_u_b, div_u_h,
4257 div_u_w, div_u_d, hadd_s_h, hadd_s_w, hadd_s_d, hadd_u_h,
4258 hadd_u_w, hadd_u_d, hsub_s_h, hsub_s_w, hsub_s_d, hsub_u_h,
4259 hsub_u_w, hsub_u_d, mod_s_b, mod_s_h, mod_s_w, mod_s_d, mod_u_b,
4260 mod_u_h, mod_u_w, mod_u_d, dotp_s_h, dotp_s_w, dotp_s_d,
4261 dotp_u_h, dotp_u_w, dotp_u_d, dpadd_s_h, dpadd_s_w, dpadd_s_d,
4262 dpadd_u_h, dpadd_u_w, dpadd_u_d, dpsub_s_h, dpsub_s_w, dpsub_s_d,
4263 dpsub_u_h, dpsub_u_w, dpsub_u_d, sld_b, sld_h, sld_w, sld_d,
4264 sldi_b, sldi_h, sldi_w, sldi_d, splat_b, splat_h, splat_w,
4265 splat_d, splati_b, splati_h, splati_w, splati_d, pckev_b,
4266 pckev_h, pckev_w, pckev_d, pckod_b, pckod_h, pckod_w, pckod_d,
4267 ilvl_b, ilvl_h, ilvl_w, ilvl_d, ilvr_b, ilvr_h, ilvr_w, ilvr_d,
4268 ilvev_b, ilvev_h, ilvev_w, ilvev_d, ilvod_b, ilvod_h, ilvod_w,
4269 ilvod_d, vshf_b, vshf_h, vshf_w, vshf_d, and_v, andi_b, or_v,
4270 ori_b, nor_v, nori_b, xor_v, xori_b, bmnz_v, bmnzi_b, bmz_v,
4271 bmzi_b, bsel_v, bseli_b, shf_b, shf_h, shf_w, bnz_v, bz_v,
4272 fill_b, fill_h, fill_w, fill_d, pcnt_b, pcnt_h, pcnt_w,
4273 pcnt_d, nloc_b, nloc_h, nloc_w, nloc_d, nlzc_b, nlzc_h, nlzc_w,
4274 nlzc_d, copy_s_b, copy_s_h, copy_s_w, copy_s_d, copy_u_b,
4275 copy_u_h, copy_u_w, copy_u_d, insert_b, insert_h, insert_w,
4276 insert_d, insve_b, insve_h, insve_w, insve_d, bnz_b, bnz_h,
4277 bnz_w, bnz_d, bz_b, bz_h, bz_w, bz_d, ldi_b, ldi_h, ldi_w, ldi_d,
4278 fcaf_w, fcaf_d, fcor_w, fcor_d, fcun_w, fcun_d, fcune_w, fcune_d,
4279 fcueq_w, fcueq_d, fceq_w, fceq_d, fcne_w, fcne_d, fclt_w, fclt_d,
4280 fcult_w, fcult_d, fcle_w, fcle_d, fcule_w, fcule_d, fsaf_w,
4281 fsaf_d, fsor_w, fsor_d, fsun_w, fsun_d, fsune_w, fsune_d,
4282 fsueq_w, fsueq_d, fseq_w, fseq_d, fsne_w, fsne_d, fslt_w,
4283 fslt_d, fsult_w, fsult_d, fsle_w, fsle_d, fsule_w, fsule_d,
4284 fadd_w, fadd_d, fsub_w, fsub_d, fmul_w, fmul_d, fdiv_w, fdiv_d,
4285 fmadd_w, fmadd_d, fmsub_w, fmsub_d, fexp2_w, fexp2_d, fexdo_h,
4286 fexdo_w, ftq_h, ftq_w, fmin_w, fmin_d, fmin_a_w, fmin_a_d,
4287 fmax_w, fmax_d, fmax_a_w, fmax_a_d, mul_q_h, mul_q_w, mulr_q_h,
4288 mulr_q_w, madd_q_h, madd_q_w, maddr_q_h, maddr_q_w, msub_q_h,
4289 msub_q_w, msubr_q_h, msubr_q_w, fclass_w, fclass_d, fsqrt_w,
4290 fsqrt_d, frcp_w, frcp_d, frint_w, frint_d, frsqrt_w, frsqrt_d,
4291 flog2_w, flog2_d, fexupl_w, fexupl_d, fexupr_w, fexupr_d, ffql_w,
4292 ffql_d, ffqr_w, ffqr_d, ftint_s_w, ftint_s_d, ftint_u_w,
4293 ftint_u_d, ftrunc_s_w, ftrunc_s_d, ftrunc_u_w, ftrunc_u_d,
4294 ffint_s_w, ffint_s_d, ffint_u_w, ffint_u_d, ctcmsa, cfcmsa,
4295 move_v builtins.
4296 (mips_get_builtin_decl_index): New array.
4297 (MIPS_ATYPE_QI, MIPS_ATYPE_HI, MIPS_ATYPE_V2DI, MIPS_ATYPE_V4SI)
4298 (MIPS_ATYPE_V8HI, MIPS_ATYPE_V16QI, MIPS_ATYPE_V2DF)
4299 (MIPS_ATYPE_V4SF, MIPS_ATYPE_UV2DI, MIPS_ATYPE_UV4SI)
4300 (MIPS_ATYPE_UV8HI, MIPS_ATYPE_UV16QI): New.
4301 (mips_init_builtins): Initialize mips_get_builtin_decl_index
4302 array.
4303 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
4304 hook.
4305 (mips_expand_builtin_insn): Prepare operands for
4306 CODE_FOR_msa_addvi_b, CODE_FOR_msa_addvi_h, CODE_FOR_msa_addvi_w,
4307 CODE_FOR_msa_addvi_d, CODE_FOR_msa_clti_u_b,
4308 CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w,
4309 CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_u_b,
4310 CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w,
4311 CODE_FOR_msa_clei_u_d, CODE_FOR_msa_maxi_u_b,
4312 CODE_FOR_msa_maxi_u_h, CODE_FOR_msa_maxi_u_w,
4313 CODE_FOR_msa_maxi_u_d, CODE_FOR_msa_mini_u_b,
4314 CODE_FOR_msa_mini_u_h, CODE_FOR_msa_mini_u_w,
4315 CODE_FOR_msa_mini_u_d, CODE_FOR_msa_subvi_b,
4316 CODE_FOR_msa_subvi_h, CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d,
4317 CODE_FOR_msa_ceqi_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w,
4318 CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b,
4319 CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w,
4320 CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clei_s_b,
4321 CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w,
4322 CODE_FOR_msa_clei_s_d, CODE_FOR_msa_maxi_s_b,
4323 CODE_FOR_msa_maxi_s_h, CODE_FOR_msa_maxi_s_w,
4324 CODE_FOR_msa_maxi_s_d, CODE_FOR_msa_mini_s_b,
4325 CODE_FOR_msa_mini_s_h, CODE_FOR_msa_mini_s_w,
4326 CODE_FOR_msa_mini_s_d, CODE_FOR_msa_andi_b, CODE_FOR_msa_ori_b,
4327 CODE_FOR_msa_nori_b, CODE_FOR_msa_xori_b, CODE_FOR_msa_bmzi_b,
4328 CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bseli_b, CODE_FOR_msa_fill_b,
4329 CODE_FOR_msa_fill_h, CODE_FOR_msa_fill_w, CODE_FOR_msa_fill_d,
4330 CODE_FOR_msa_ilvl_b, CODE_FOR_msa_ilvl_h, CODE_FOR_msa_ilvl_w,
4331 CODE_FOR_msa_ilvl_d, CODE_FOR_msa_ilvr_b, CODE_FOR_msa_ilvr_h,
4332 CODE_FOR_msa_ilvr_w, CODE_FOR_msa_ilvr_d, CODE_FOR_msa_ilvev_b,
4333 CODE_FOR_msa_ilvev_h, CODE_FOR_msa_ilvev_w, CODE_FOR_msa_ilvod_b,
4334 CODE_FOR_msa_ilvod_h, CODE_FOR_msa_ilvod_w, CODE_FOR_msa_pckev_b,
4335 CODE_FOR_msa_pckev_h, CODE_FOR_msa_pckev_w, CODE_FOR_msa_pckod_b,
4336 CODE_FOR_msa_pckod_h, CODE_FOR_msa_pckod_w, CODE_FOR_msa_slli_b,
4337 CODE_FOR_msa_slli_h, CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d,
4338 CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w,
4339 CODE_FOR_msa_srai_d, CODE_FOR_msa_srli_b, CODE_FOR_msa_srli_h,
4340 CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d, CODE_FOR_msa_insert_b,
4341 CODE_FOR_msa_insert_h, CODE_FOR_msa_insert_w,
4342 CODE_FOR_msa_insert_d, CODE_FOR_msa_insve_b,
4343 CODE_FOR_msa_insve_h, CODE_FOR_msa_insve_w, CODE_FOR_msa_insve_d,
4344 CODE_FOR_msa_shf_b, CODE_FOR_msa_shf_h, CODE_FOR_msa_shf_w,
4345 CODE_FOR_msa_shf_w_f, CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h,
4346 CODE_FOR_msa_vshf_w, CODE_FOR_msa_vshf_d.
4347 (mips_expand_builtin): Add case for MIPS_BULTIN_MSA_TEST_BRANCH.
4348 (mips_set_compression_mode): Disallow MSA with MIPS16 code.
4349 (mips_option_override): -mmsa requires -mfp64 and -mhard-float.
4350 These are set implicitly and an error is reported if overridden.
4351 (mips_expand_builtin_msa_test_branch): New function.
4352 (mips_expand_msa_shuffle): Likewise.
4353 (MAX_VECT_LEN): Increase maximum length of a vector to 16 bytes.
4354 (TARGET_SCHED_REASSOCIATION_WIDTH): Define target hook.
4355 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Likewise.
4356 (mips_expand_vec_unpack): Add support for MSA.
4357 (mips_expand_vector_init): Likewise.
4358 (mips_expand_vi_constant): Use CONST0_RTX (element_mode)
4359 instead of const0_rtx.
4360 (mips_msa_vec_parallel_const_half): New function.
4361 (mips_gen_const_int_vector): Likewise.
4362 (mips_gen_const_int_vector_shuffle): Likewise.
4363 (mips_expand_msa_cmp): Likewise.
4364 (mips_expand_vec_cond_expr): Likewise.
4365 * config/mips/mips.h
4366 (TARGET_CPU_CPP_BUILTINS): Add __mips_msa and __mips_msa_width.
4367 (OPTION_DEFAULT_SPECS): Ignore --with-fp-32 if -mmsa is
4368 specified.
4369 (ASM_SPEC): Pass mmsa and mno-msa to the assembler.
4370 (ISA_HAS_MSA): New macro.
4371 (UNITS_PER_MSA_REG): Likewise.
4372 (BITS_PER_MSA_REG): Likewise.
4373 (BIGGEST_ALIGNMENT): Redefine using ISA_HAS_MSA.
4374 (MSA_REG_FIRST): New macro.
4375 (MSA_REG_LAST): Likewise.
4376 (MSA_REG_NUM): Likewise.
4377 (MSA_REG_P): Likewise.
4378 (MSA_REG_RTX_P): Likewise.
4379 (MSA_SUPPORTED_MODE_P): Likewise.
4380 (HARD_REGNO_CALL_PART_CLOBBERED): Redefine using TARGET_MSA.
4381 (ADDITIONAL_REGISTER_NAMES): Add named registers $w0-$w31.
4382 * config/mips/mips.md: Include mips-msa.md.
4383 (alu_type): Add simd_add.
4384 (mode): Add V2DI, V4SI, V8HI, V16QI, V2DF, V4SF.
4385 (type): Add simd_div, simd_fclass, simd_flog2, simd_fadd,
4386 simd_fcvt, simd_fmul, simd_fmadd, simd_fdiv, simd_bitins,
4387 simd_bitmov, simd_insert, simd_sld, simd_mul, simd_fcmp,
4388 simd_fexp2, simd_int_arith, simd_bit, simd_shift, simd_splat,
4389 simd_fill, simd_permute, simd_shf, simd_sat, simd_pcnt,
4390 simd_copy, simd_branch, simd_cmsa, simd_fminmax, simd_logic,
4391 simd_move, simd_load, simd_store. Choose "multi" for moves
4392 for "qword_mode".
4393 (qword_mode): New attribute.
4394 (insn_count): Add instruction count for quad moves.
4395 Increase the count for MIPS SIMD division.
4396 (UNITMODE): Add UNITMODEs for vector types.
4397 (addsub): New code iterator.
4398 * config/mips/mips.opt (mmsa): New option.
4399 * config/mips/msa.h: New file.
4400 * config/mips/mti-elf.h: Don't infer -mfpxx if -mmsa is
4401 specified.
4402 * config/mips/mti-linux.h: Likewise.
4403 * config/mips/predicates.md
4404 (const_msa_branch_operand): New constraint.
4405 (const_uimm3_operand): Likewise.
4406 (const_uimm4_operand): Likewise.
4407 (const_uimm5_operand): Likewise.
4408 (const_uimm8_operand): Likewise.
4409 (const_imm5_operand): Likewise.
4410 (aq10b_operand): Likewise.
4411 (aq10h_operand): Likewise.
4412 (aq10w_operand): Likewise.
4413 (aq10d_operand): Likewise.
4414 (const_m1_operand): Likewise.
4415 (reg_or_m1_operand): Likewise.
4416 (const_exp_2_operand): Likewise.
4417 (const_exp_4_operand): Likewise.
4418 (const_exp_8_operand): Likewise.
4419 (const_exp_16_operand): Likewise.
4420 (const_vector_same_val_operand): Likewise.
4421 (const_vector_same_simm5_operand): Likewise.
4422 (const_vector_same_uimm5_operand): Likewise.
4423 (const_vector_same_uimm6_operand): Likewise.
4424 (const_vector_same_uimm8_operand): Likewise.
4425 (par_const_vector_shf_set_operand): Likewise.
4426 (reg_or_vector_same_val_operand): Likewise.
4427 (reg_or_vector_same_simm5_operand): Likewise.
4428 (reg_or_vector_same_uimm6_operand): Likewise.
4429 * doc/extend.texi (MIPS SIMD Architecture Functions): New
4430 section.
4431 * doc/invoke.texi (-mmsa): Document new option.
4432
4433 2016-05-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4434
4435 * configure.ac (enable_vtable_verify): Handle --enable-vtable-verify.
4436 * configure: Regenerate.
4437 * config.in: Regenerate.
4438 * gcc.c (VTABLE_VERIFICATION_SPEC) [!ENABLE_VTABLE_VERIFY]: Error
4439 on -fvtable-verify.
4440 * config/sol2.h [!ENABLE_VTABLE_VERIFY] (STARTFILE_VTV_SPEC): Define.
4441 (ENDFILE_VTV_SPEC): Define.
4442
4443 2016-05-09 Kaushik Phatak <kaushik.phatak@kpit.com>
4444
4445 * config/rl78/rl78.c (rl78_expand_prologue): Save the MDUC related
4446 registers in all interrupt handlers if necessary.
4447 (rl78_option_override): Add warning.
4448 (MUST_SAVE_MDUC_REGISTERS): New macro.
4449 (rl78_expand_epilogue): Restore the MDUC registers if necessary.
4450 * config/rl78/rl78.c (check_mduc_usage): New function.
4451 (mduc_regs): New structure to hold MDUC register data.
4452 * config/rl78/rl78.md (is_g13_muldiv_insn): New attribute.
4453 (mulsi3_g13): Add is_g13_muldiv_insn attribute.
4454 (udivmodsi4_g13): Add is_g13_muldiv_insn attribute.
4455 (mulhi3_g13): Add is_g13_muldiv_insn attribute.
4456 * config/rl78/rl78.opt (msave-mduc-in-interrupts): New option.
4457 * doc/invoke.texi (RL78 Options): Add -msave-mduc-in-interrupts.
4458
4459 2016-05-09 Bin Cheng <bin.cheng@arm.com>
4460
4461 * tree-if-conv.c (tree-ssa-loop.h): Include header file.
4462 (tree-ssa-loop-niter.h): Ditto.
4463 (idx_within_array_bound, ref_within_array_bound): New functions.
4464 (ifcvt_memrefs_wont_trap): Check if array ref is within bound.
4465 Factor out check on writable base object to ...
4466 (base_object_writable): ... here.
4467
4468 2016-05-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4469
4470 * config/arm/arm.md (probe_stack): Add modes to set source
4471 and destination.
4472
4473 2016-05-09 Bernd Schmidt <bschmidt@redhat.com>
4474
4475 * regrename.c (base_reg_class_for_rename): New static function.
4476 (scan_rtx_address, scan_rtx): Use it instead of base_reg_class.
4477
4478 2016-05-08 Jan Hubicka <hubicka@ucw.cz>
4479
4480 * cgraph.c (thunk_adjust): Export.
4481 * cgraphclones.c (cgraph_node::create_clone): Clone thunk info.
4482 * cgraphunit.c (thunk_adjust): Export.
4483 (cgraph_node::assemble_thunks_and_aliases): Do not assemble inlined
4484 thunks.
4485 * ipa-inline-analyssi.c (compute_inline_parameters): Thunks are
4486 inlinable.
4487 * tree-inline.c (expand_call_inline): Expand thunks inline.
4488
4489 2016-05-08 Uros Bizjak <ubizjak@gmail.com>
4490
4491 PR target/70998
4492 * config/i386/sse.md (*sse2_vd_cvtsd2ss): New insn pattern.
4493 (*sse2_vd_cvtss2sd): Ditto.
4494 * config/i386/i386.md
4495 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf splitter):
4496 Generate *sse2_vd_cvtsd2ss pattern.
4497 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df splitter):
4498 Generate *sse2_vd_cvtss2sd pattern.
4499
4500 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
4501
4502 * config/sh/sh.h (GET_SH_ARG_CLASS): Convert macro into ...
4503 * config/sh/sh.c (get_sh_arg_class): ... this new function. Update its
4504 users.
4505
4506 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
4507
4508 * config/sh/sh-protos.h (sh_media_register_for_return): Remove.
4509 * config/sh/sh.c: Define and declare variables on first use throughout
4510 the file.
4511 (current_function_interrupt): Change to bool type.
4512 (frame_insn): Rename to emit_frame_insn and update users.
4513 (push_regs): Use bool for 'interrupt_handler' argument.
4514 (save_schedule_s): Remove.
4515 (TARGET_ASM_UNALIGNED_DI_OP, TARGET_ASM_ALIGNED_DI_OP): Remove.
4516 (sh_option_override): Don't nullify targetm.asm_out.aligned_op.di and
4517 targetm.asm_out.unaligned_op.di.
4518 (gen_far_branch): Remove redundant forward declaration.
4519 (sh_media_register_for_return, MAX_SAVED_REGS, save_entry_s, save_entry,
4520 MAX_TEMPS, save_schedule_ssave_schedule): Remove.
4521 (sh_set_return_address, sh_function_ok_for_sibcall,
4522 scavenge_reg): Update comments.
4523 (sh_builtin_saveregs): Use TRAGET_FPU_ANY condition.
4524 (sh2a_get_function_vector_number, sh2a_function_vector_p): Use for loop.
4525 (sh_attr_renesas_p): Remove unnecessary parentheses.
4526 (branch_dest): Simplify.
4527 * config/sh/sh.h (sh_args): Remove byref, byref_regs, stack_regs fields.
4528 Change force_mem, prototype_p, outgoing, renesas_abi fields to bool.
4529 (CUMULATIVE_ARGS): Change macro to typedef.
4530 (current_function_interrupt): Change to bool type.
4531 (sh_arg_class, sh_args, CUMULATIVE_ARGS, current_function_interrupt):
4532 Surround with __cplusplus ifdef.
4533 (sh_compare_op0, sh_compare_op1): Remove.
4534 (EPILOGUE_USES): Use TARGET_FPU_ANY condition.
4535
4536 2016-05-07 Jim Wilson <jim.wilson@linaro.org>
4537
4538 * config/arm/arm.md: (arch): Add neon.
4539 (arch_enabled): Return yes for arch neon when TARGET_NEON.
4540 * config/arm/vfp.md (movdf_vfp): Add w/G as alternative 3. Add
4541 neon_move as type for alt 3. Add arch attr enabling alt 3 for neon.
4542 Emit vmov.i64 for alt 3. Renumber alternatives 3 to 8. Adjust
4543 attributes for alt renumbering. Mark alt 3 as non-predicable.
4544 (thumb2_movdf_vfp): Likewise.
4545
4546 2016-05-07 Uros Bizjak <ubizjak@gmail.com>
4547
4548 * config/i386/i386.md (*addqi_1): Add preferred_for_speed attribute
4549 to disparage alternatives 3 and 4 for TARGET_PARTIAL_REG_STALL targets.
4550 (*andqi_1): Add preferred_for_speed attribute to disparage
4551 alternative 2 for TARGET_PARTIAL_REG_STALL targets.
4552 (*<code>qi_1): Ditto.
4553 (*one_cmplqi2_1): Add preferred_for_speed attribute to disparage
4554 alternative 1 for TARGET_PARTIAL_REG_STALL targets.
4555 (*ashlqi3_1): Ditto.
4556 (*swap<mode>): Merge from *swap<mode>_1 and *swap<mode>_2 patterns.
4557 Add preferred_for_size attribute to disparage alternative 0 and
4558 preferred_for_speed attribute to disparage alternative 1 for
4559 TARGET_PARTIAL_REG_STALL targets.
4560
4561 2016-05-07 Tom de Vries <tom@codesourcery.com>
4562
4563 PR tree-optimization/70956
4564 * graphite-scop-detection.c (build_cross_bb_scalars_def): Handle NULL
4565 def.
4566
4567 2016-05-07 Oleg Endo <olegendo@gcc.gnu.org>
4568
4569 * config/sh/sh-protos.h (sh_cbranch_distance): Declare new function.
4570 * config/sh/sh.c (sh_cbranch_distance): Implement it.
4571 * config/sh/sh.md (branch_zero): Remove define_attr.
4572 (define_delay): Disable delay slot if branch distance is one insn.
4573
4574 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
4575
4576 * config/i386/i386.md (LEAMODE): New mode attribute.
4577 (plus to LEA splitter): Rewrite splitter using LEAMODE mode attribute.
4578 (ashift to LEA splitter): Rewrte splitter using SWI mode iterator
4579 and LEAMODE mode attribute. Use VOIDmode const_0_to_3_operand as
4580 operand 2 predicate.
4581 (*lea<mode>_general_2): Use VOIDmode for const248_operand.
4582 (*lea<mode>_general_3): Ditto.
4583 (*lea<mode>_general_4): Use VOIDmode for const_0_to_3_operand.
4584
4585 2016-05-06 Jakub Jelinek <jakub@redhat.com>
4586
4587 * genmddump.c (main): Convert argv from char ** to const char **.
4588
4589 2016-05-06 David Malcolm <dmalcolm@redhat.com>
4590
4591 * coretypes.h (OVERRIDE): New macro.
4592 (FINAL): New macro.
4593
4594 2016-05-06 Eric Botcazou <ebotcazou@adacore.com>
4595
4596 * tree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case,
4597 allow coalescing if the types are compatible.
4598
4599 2016-05-06 David Malcolm <dmalcolm@redhat.com>
4600
4601 * pass_manager.h (pass_manager::register_pass_name): New method.
4602 (pass_manager::get_pass_by_name): New method.
4603 (pass_manager::create_pass_tab): New method.
4604 (pass_manager::m_name_to_pass_map): New field.
4605 * passes.c (name_to_pass_map): Delete global in favor of field
4606 "m_name_to_pass_map" of pass_manager.
4607 (register_pass_name): Rename from a function to...
4608 (pass_manager::register_pass_name): ...this method, updating
4609 for renaming of global "name_to_pass_map" to field
4610 "m_name_to_pass_map".
4611 (create_pass_tab): Rename from a function to...
4612 (pass_manager::create_pass_tab): ...this method, updating
4613 for renaming of global "name_to_pass_map" to field.
4614 (get_pass_by_name): Rename from a function to...
4615 (pass_manager::get_pass_by_name): ...this method.
4616 (enable_disable_pass): Convert use of get_pass_by_name to
4617 a method call, locating the pass_manager singleton.
4618
4619 2016-05-06 David Malcolm <dmalcolm@redhat.com>
4620
4621 * genattr-common.c (main): Convert argv from char ** to const char **.
4622 * genattr.c (main): Likewise.
4623 * genattrtab.c (main): Likewise.
4624 * genautomata.c (initiate_automaton_gen): Likewise.
4625 (main): Likewise.
4626 * gencodes.c (main): Likewise.
4627 * genconditions.c (main): Likewise.
4628 * genconfig.c (main): Likewise.
4629 * genconstants.c (main): Likewise.
4630 * genemit.c (main): Likewise.
4631 * genenums.c (main): Likewise.
4632 * genextract.c (main): Likewise.
4633 * genflags.c (main): Likewise.
4634 * genmddeps.c (main): Likewise.
4635 * genopinit.c (main): Likewise.
4636 * genoutput.c (main): Likewise.
4637 * genpeep.c (main): Likewise.
4638 * genpreds.c (main): Likewise.
4639 * genrecog.c (main): Likewise.
4640 * gensupport.c (init_rtx_reader_args_cb): Likewise.
4641 (init_rtx_reader_args): Likewise.
4642 * gensupport.h (init_rtx_reader_args_cb): Likewise.
4643 (init_rtx_reader_args): Likewise.
4644 * gentarget-def.c (main): Likewise.
4645 * read-md.c (read_md_files): Likewise.
4646 * read-md.h (read_md_files): Likewise.
4647
4648 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
4649
4650 * config/i386/i386.md (int cmove peephole2s): Use general_reg_operand
4651 instead of register_and_not_any_fp_reg_operand as operand 0 predicate.
4652 * config/i386/predicates.md (register_and_not_any_fp_reg_operand):
4653 Remove unused predicate.
4654 (register_and_not_fp_reg_operand): Ditto.
4655
4656 2016-05-06 Martin Liska <mliska@suse.cz>
4657
4658 * tree-if-conv.c (ifcvt_split_critical_edges): Use auto_vec
4659 instead of vec as the vector is local to the function.
4660
4661 2016-05-06 Jakub Jelinek <jakub@redhat.com>
4662
4663 * config/i386/sse.md (*<code>v8hi3, *<code>v16qi3): Add
4664 avx512bw alternative.
4665
4666 * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>): Move
4667 before the ashr<mode>3 pattern.
4668
4669 * config/i386/sse.md (*avx2_pmaddwd, *sse2_pmaddwd): Use
4670 v instead of x in vex or maybe_vex alternatives, use
4671 maybe_evex instead of vex in prefix.
4672
4673 * config/i386/sse.md (*vec_extractv4sf_0, *sse4_1_extractps,
4674 *vec_extractv4sf_mem, vec_extract_lo_v16hi, vec_extract_hi_v16hi,
4675 vec_extract_lo_v32qi, vec_extract_hi_v32qi): Use v instead of x
4676 in vex or maybe_vex alternatives, use maybe_evex instead of vex
4677 in prefix.
4678
4679 * config/i386/sse.md (*vec_concatv2sf_sse4_1, *vec_concatv4sf): Use
4680 v instead of x in vex or maybe_vex alternatives, use
4681 maybe_evex instead of vex in prefix.
4682
4683 * config/i386/sse.md (sse_shufps_<mode>, sse_storehps, sse_loadhps,
4684 sse_storelps, sse_movss, avx2_vec_dup<mode>, avx2_vec_dupv8sf_1,
4685 sse2_shufpd_<mode>, sse2_storehpd, sse2_storelpd, sse2_loadhpd,
4686 sse2_loadlpd, sse2_movsd): Use v instead of x in vex or maybe_vex
4687 alternatives, use maybe_evex instead of vex in prefix.
4688
4689 * config/i386/sse.md (vec_interleave_lowv4sf,
4690 *vec_interleave_highv2df, *vec_interleave_lowv2df): Use
4691 v instead of x in vex or maybe_vex alternatives, use
4692 maybe_evex instead of vex in prefix.
4693
4694 * config/i386/sse.md (sse_movhlps, sse_movlhps): Use
4695 v instead of x in vex or maybe_vex alternatives, use
4696 maybe_evex instead of vex in prefix.
4697
4698 * config/i386/sse.md (*avx_cvtpd2dq256_2, *avx_cvtps2pd256_2): Use
4699 v constraint instead of x.
4700
4701 2016-05-06 Nathan Sidwell <nathan@codesourcery.com>
4702
4703 * gimple.c (gimple_call_same_target_p): Unique functions are eq.
4704 * tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
4705 equality first.
4706
4707 2016-05-06 Richard Biener <rguenther@suse.de>
4708
4709 PR tree-optimization/70948
4710 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
4711 Properly clobber all fields of va_list for __builtin_va_start.
4712
4713 2016-05-06 Yuri Rumyantsev <ysrumyan@gmail.com>
4714
4715 PR debug/70935
4716 * tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
4717 loop latch destination.
4718
4719 2016-05-06 Martin Liska <mliska@suse.cz>
4720
4721 * tree-ssa-uninit.c: Apply manual changes
4722 to the GNU coding style.
4723 (prune_uninit_phi_opnds): Rename from
4724 prune_uninit_phi_opnds_in_unrealizable_paths.
4725
4726 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
4727
4728 * config/sh/sh.opt (madjust-unroll, minvalid-symbols, msoft-atomic,
4729 mspace): Remove deprecated options.
4730 * doc/invoke.texi (SH options): Remove -mspace.
4731
4732 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
4733
4734 * config/sh/sh.md (ic_invalidate_line_sh4a): Fix insn length.
4735
4736 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
4737
4738 * config/sh/sh.md (*cmpeqsi_t): Remove combine insn pattern and similar
4739 corresponding combine split pattern.
4740
4741 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
4742
4743 PR target/58219
4744 * config/sh/predicates.md (long_displacement_mem_operand): New.
4745 * config/sh/sh.md (movsi_i): Allow for SH2A, disallow for any FPU.
4746 Add movi20, movi20s alternatives. Adjust length attribute for
4747 alternatives.
4748 (movsi_ie): Allow for any FPU. Adjust length attribute for
4749 alternatives.
4750 (movsi_i_lowpart): Add movi20, movi20s alternatives. Adjust length
4751 attribute for alternatives.
4752 (*mov<mode>): Use long_displacement_mem_operand for length attribute.
4753 (*movdi_i, movdf_k, movdf_i4, movsf_i, movsf_ie, movsf_ie_ra): Adjust
4754 length attribute for alternatives.
4755
4756 2016-05-06 Richard Biener <rguenther@suse.de>
4757
4758 PR tree-optimization/70960
4759 * tree-if-conv.c (ifcvt_walk_pattern_tree): Handle non-SSA ops.
4760
4761 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
4762
4763 PR target/52933
4764 * config/sh/sh.md (*cmp_div0s_7, *cmp_div0s_8): Add div0s variants.
4765 * config/sh/sh.c (sh_rtx_costs): Add another div0s case.
4766
4767 2016-05-06 Marek Polacek <polacek@redhat.com>
4768
4769 PR sanitizer/70875
4770 * ubsan.c (get_ubsan_type_info_for_type): Remove assert.
4771
4772 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
4773
4774 PR target/54089
4775 * config/sh/sh.md (*rotcr): Add another variant.
4776
4777 2016-05-06 Richard Biener <rguenther@suse.de>
4778
4779 PR middle-end/70931
4780 * dwarf2out.c (native_encode_initializer): Skip zero-sized fields.
4781
4782 2016-05-06 Richard Biener <rguenther@suse.de>
4783
4784 PR middle-end/70941
4785 * fold-const.c (split_tree): Always convert to the original type
4786 before negating.
4787
4788 2016-05-06 Richard Biener <rguenther@suse.de>
4789
4790 * fwprop.c (fwprop): Remove duplicate cleanup_cfg call.
4791 (fwprop_addr): Likewise.
4792
4793 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
4794
4795 PR target/70873
4796 * config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p):
4797 New prototype.
4798 * config/i386/i386.c (ix86_standard_x87sse_constant_load_p): New.
4799 * config/i386/i386.md (push mem splitter): Use find_constant_src in
4800 the splitter condition.
4801 (FP load splitter): Use ix86_standard_x87sse_constant_load_p in
4802 the splitter condition.
4803 (FP float_extend load splitter): Ditto.
4804
4805 2016-05-05 Uros Bizjak <ubizjak@gmail.com>
4806
4807 * config/i386/i386.md (peehole2 patterns): Change true_regnum
4808 to REGNO in all peephole2 patterns.
4809 (post-reload splitters): Change true_regnum to REGNO in
4810 post-reload splitters.
4811 (zero_extend splitters): Use general_reg_operand and
4812 nonimmediate_gr_operand predicates.
4813
4814 2016-05-05 Jakub Jelinek <jakub@redhat.com>
4815
4816 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use
4817 v constraint instead of x.
4818
4819 2016-05-05 Alan Modra <amodra@gmail.com>
4820
4821 PR target/68662
4822 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
4823 set OPTION_MASK_RELOCATABLE when flag_pic == 2. Set
4824 TARGET_NO_FP_IN_TOC for -mrelocatable.
4825 (MINIMAL_TOC_SECTION_ASM_OP): Remove redundant
4826 TARGET_RELOCATABLE test.
4827 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
4828 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
4829 * config/rs6000/linux64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
4830 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
4831 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
4832 * config/rs6000/freebsd64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
4833 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
4834 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
4835 * config/rs6000/predicates.md (easy_fp_constant): Likewise.
4836 * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
4837 Likewise.
4838 (rs6000_assemble_integer): Update TARGET_RELOCATABLE test.
4839 (rs6000_stack_info): Likewise.
4840 (rs6000_elf_asm_out_constructor): Likewise.
4841 (rs6000_elf_asm_out_destructor): Likewise.
4842 (rs6000_elf_declare_function_name): Likewise.
4843 * config/rs6000/rs6000.md (load_toc_aix_di): Likewise.
4844 * config/rs6000/rs6000.h (MASK_RELOCATABLE, MASK_MINIMAL_TOC):
4845 Don't define.
4846
4847 2016-05-05 Alan Modra <amodra@gmail.com>
4848
4849 * config/rs6000/rs6000.c (rs6000_frame_related): Rewrite.
4850
4851 2016-05-05 Alan Modra <amodra@gmail.com>
4852
4853 * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
4854 out-of-line gpr restore for one or two regs if that would add
4855 a save of lr.
4856
4857 2016-05-04 Uros Bizjak <ubizjak@gmail.com>
4858
4859 PR target/70873
4860 * config/i386/i386.md
4861 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df peephole2):
4862 Change to post-epilogue_completed late splitter. Use sse_reg_operand
4863 as operand 0 predicate.
4864 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf peephole2):
4865 Ditto.
4866 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2):
4867 Ditto. Emit the pattern using RTX.
4868
4869 (TARGET_USE_VECTOR_FP_CONVERTS float_extend sf->df splitter):
4870 Use sse_reg_opreand as operand 0 predicate. Do not use true_regnum in
4871 the post-reload splitter. Use lowpart_subreg instead of gen_rtx_REG.
4872 (TARGET_USE_VECTOR_FP_CONVERTS float_truncate df->sf splitter):
4873 Ditto.
4874 (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use
4875 sse_reg_operand as operand 0 predicate.
4876
4877 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_extend sf->df peephole2):
4878 Use sse_reg_opreand as operand 0 predicate. Use lowpart_subreg
4879 instead of gen_rtx_REG.
4880 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_truncate sf->df peephole2):
4881 Ditto.
4882
4883 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
4884
4885 * function.c (emit_use_return_register_into_block): Delete.
4886 (gen_return_pattern): Delete.
4887 (emit_return_into_block): Delete.
4888 (active_insn_between): Delete.
4889 (convert_jumps_to_returns): Delete.
4890 (emit_return_for_exit): Delete.
4891 (thread_prologue_and_epilogue_insns): Delete all code dealing with
4892 simple_return for shrink-wrapped blocks.
4893 * shrink-wrap.c (try_shrink_wrapping): Insert simple_return at the
4894 end of blocks that need one.
4895 (get_unconverted_simple_return): Delete.
4896 (convert_to_simple_return): Delete.
4897 * shrink-wrap.c (get_unconverted_simple_return): Delete declaration.
4898 (convert_to_simple_return): Ditto.
4899
4900 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
4901
4902 * cfgcleanup.c (bb_is_just_return): New function.
4903 (try_optimize_cfg): Simplify jumps to return, branches to return,
4904 and branches around return.
4905
4906 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
4907
4908 * cfgcleanup.c (try_simplify_condjump): Don't try to simplify a
4909 branch to a return.
4910
4911 2016-05-04 Jakub Jelinek <jakub@redhat.com>
4912
4913 PR c++/70906
4914 PR c++/70933
4915 * tree-core.h (enum operand_equal_flag): Add OEP_HASH_CHECK.
4916 * tree.c (inchash::add_expr): If !IS_EXPR_CODE_CLASS (tclass),
4917 assert flags & OEP_HASH_CHECK, instead of asserting it
4918 never happens. Handle TARGET_EXPR.
4919 * fold-const.c (operand_equal_p): For hash verification,
4920 or in OEP_HASH_CHECK into flags.
4921
4922 2016-05-04 Eric Botcazou <ebotcazou@adacore.com>
4923
4924 * tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
4925 comment.
4926 (compute_samebase_partition_bases): Fix typo.
4927
4928 2016-05-04 Jakub Jelinek <jakub@redhat.com>
4929
4930 * config/i386/sse.md (vec_interleave_highv8sf,
4931 vec_interleave_lowv8sf, vec_interleave_highv4df,
4932 vec_interleave_lowv4df): Remove constraints from expanders.
4933
4934 * config/i386/sse.md (sse2_movq128): Use v constraint instead of x.
4935
4936 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
4937
4938 * tree-inline.c (expand_call_inline): Fix path dealing with
4939 making lhs of call statement undefined.
4940
4941 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
4942
4943 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
4944 Check availability on NODE, too.
4945 * cgraph.h (symtab_node::call_for_symbol_and_aliases): Likewise.
4946 (cgraph_node::call_for_symbol_and_aliases): Likewise.
4947 (varpool_node::call_for_symbol_and_aliase): Likewise.
4948 * ipa-pure-const.c (add_new_function): Analyze all bodies.
4949 (propagate_pure_const): Propagate across interposable functions, too.
4950 (skip_function_for_local_pure_const): Do not skip interposable bodies
4951 with aliases.
4952 (pass_local_pure_const::execute): Update.
4953
4954 2016-05-04 Marek Polacek <polacek@redhat.com>
4955
4956 * doc/invoke.texi: Document -Wdangling-else.
4957
4958 2016-05-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
4959
4960 * config.gcc: Error out when conflicting multilib is detected. Do not
4961 loop over multilibs since no combination is legal.
4962
4963 2016-05-04 Alan Modra <amodra@gmail.com>
4964
4965 * config/rs6000/rs6000.h (PIC_OFFSET_TABLE_REGNUM): Correct.
4966 * config/rs6000/sysv4.h (TARGET_TOC): Simplify.
4967 * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
4968 Align .toc.
4969
4970 2016-05-04 Matthew Fortune <matthew.fortune@imgtec.com>
4971
4972 * config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
4973 Clean up p5600 comments.
4974
4975 2016-05-04 Richard Biener <rguenther@suse.de>
4976
4977 * match.pd: Add BIT_FIELD_REF canonicalizations and vector
4978 constructor simplifications.
4979 * fold-const.c (fold_ternary_loc): Remove duplicate functionality here.
4980
4981 2016-05-04 Oleg Endo <olegendo@gcc.gnu.org>
4982
4983 * config/sh/predicates (post_inc_mem, pre_dec_mem): New predicates.
4984 * config/sh/sh-protos.h (sh_find_set_of_reg): Return null result if
4985 result.set_rtx is null instead of aborting.
4986 * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT):
4987 Always enable.
4988 (USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT): Enable for SH2A.
4989 * config/sh/sh.md (*extend<mode>si2_predec, *mov<mode>_load_predec,
4990 *mov<mode>_store_postinc): New patterns.
4991
4992 2016-05-04 Marc Glisse <marc.glisse@inria.fr>
4993
4994 * match.pd ((A | B) & (A | C)): Generalize to BIT_XOR_EXPR. Mark
4995 as commutative. Check both conversions are NOP.
4996 ((A & B) OP (C & B)): Remove.
4997
4998 2016-05-04 Alan Modra <amodra@gmail.com>
4999
5000 * combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.
5001
5002 2016-05-04 Alan Modra <amodra@gmail.com>
5003
5004 PR target/70866
5005 * config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
5006 when cr2,3,4 are all fixed regs.
5007
5008 2016-05-04 Bernd Schmidt <bschmidt@redhat.com>
5009
5010 PR rtl-optimization/57193
5011 * opts.c (default_options_table): Revert OPT_frename_registers change.
5012 * doc/invoke.texi (-frename-registers, -O2): Likewise.
5013
5014 2016-05-03 Martin Sebor <msebor@redhat.com>
5015
5016 PR c++/66561
5017 * builtins.c (fold_builtin_FILE): New function.
5018 (fold_builtin_FUNCTION, fold_builtin_LINE): New functions.
5019 (fold_builtin_0): Call them.
5020 * gimplify.c (gimplify_call_expr): Remove the handling of
5021 BUILT_IN_FILE, BUILT_IN_FUNCTION, and BUILT_IN_LINE.
5022
5023 PR c++/66561
5024 * doc/extend.texi (Other Builtins): Update __builtin_FILE,
5025 __builtin_FUNCTION, and __builtin_LINE to reflect they yield
5026 constants.
5027
5028 PR c++/66639
5029 * doc/extend.texi (Function Names as Strings): Update __func__,
5030 __FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
5031 constants.
5032
5033 2016-05-03 Jakub Jelinek <jakub@redhat.com>
5034 Richard Biener <rguenther@suse.de>
5035
5036 PR tree-optimization/70916
5037 * tree-if-conv.c: Include cfganal.h.
5038 (pass_if_conversion::execute): Call connect_infinite_loops_to_exit
5039 and remove_fake_exit_edges around the optimization pass.
5040
5041 2016-05-03 Jan Hubicka <hubicka@ucw.cz>
5042
5043 * cgraph.c (symbol_table::create_edge): Set inline_failed.
5044 (cgraph_edge::make_direct): Likewise.
5045 (cgraph_edge::dump_edge_flags): Dump call_stmt_cannot_inline_p.
5046 * cgraphclones.c (duplicate_thunk_for_node): Set inline_failed.
5047 * cif-code.def (CIF_LTO_MISMATCHED_DECLARATIONS): New code
5048 (CIF_THUNK): New code.
5049 * ipa-inline-analysis.c (initialize_inline_failed): Preserve
5050 CIF_FINAL_ERROR codes; do not deal with call_stmt_cannot_inline_p.
5051 (compute_inline_parameters): Set inline_failed for thunks.
5052 (inline_analyze_function): Cleanup.
5053 * ipa-inline.c (can_inline_edge_p): Do not deal with
5054 call_stmt_cannot_inline_p.
5055 (can_early_inline_edge_p): Likewise.
5056 (early_inliner): Initialize inline_failed.
5057 * lto-cgraph.c (lto_output_edge): Sanity check inline_failed.
5058
5059 2016-05-03 Uros Bizjak <ubizjak@gmail.com>
5060
5061 * config/i386/predicates.md (x87nonimm_ssenomem_operand): Rename
5062 from nonimm_ssenomem_operand.
5063 (nonimm_ssenomem_operand): New predicate.
5064 * config/i386/i386.md (extendsfdf2): Use nonimm_ssenomem_operand
5065 as operand 0 predicate.
5066 (*extendsfdf2): Merge from *extendsfdf2_mixed and *extendsfdf2_i387.
5067 Disable unsupported alternatives using "enabled" attribute.
5068 Use register_ssemem_operand as operand 0 predicate.
5069 (*fop_<mode>_1): Use x87nonimm_ssenomem_operand as operand 1 predicate.
5070
5071 2016-05-03 Marek Polacek <polacek@redhat.com>
5072
5073 PR c/70859
5074 * input.c (expansion_point_location): New function.
5075 * input.h (expansion_point_location): Declare.
5076
5077 2016-05-03 Pierre-Marie de Rodat <derodat@adacore.com>
5078
5079 * dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
5080 occurence with frame_offset_ ones.
5081
5082 2016-05-03 Alan Modra <amodra@gmail.com>
5083
5084 PR rtl-optimization/70890
5085 * ira.c (combine_and_move_insns): When moving def_insn, remove
5086 equivs on use_insn.
5087
5088 2016-05-03 Dominik Vogt <vogt@linux.vnet.ibm.com>
5089
5090 * config/s390/s390.md ("*r<noxa>sbg_<mode>_sll")
5091 ("*r<noxa>sbg_<mode>_srl"): New define_insns.
5092 ("*r<noxa>sbg_<mode>_srl_bitmask"): Rename by adding "_bitmask".
5093 ("*r<noxa>sbg_<mode>_sll_bitmask"): Likewise.
5094
5095 2016-05-03 Alan Modra <amodra@gmail.com>
5096
5097 * config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
5098 for SAVE_MULTIPLE/STORE_MULTIPLE.
5099
5100 2016-05-03 Jakub Jelinek <jakub@redhat.com>
5101
5102 * config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
5103 *truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead of x.
5104
5105 2016-05-03 Richard Biener <rguenther@suse.de>
5106
5107 * gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
5108 default true.
5109 (gimplify_arg): Likewise.
5110 * gimplify.c (gimplify_expr): Add overload with allow_ssa parameter,
5111 re-writing the result to a decl if required.
5112 (internal_get_tmp_var): Add allow_ssa parameter
5113 and override into_ssa with it.
5114 (get_formal_tmp_var): Adjust.
5115 (get_initialized_tmp_var): Add allow_ssa parameter.
5116 (gimplify_arg): Add allow_ssa parameter and avoid generating
5117 SSA names for the result false.
5118 (gimplify_call_expr): If the call may return twice do not
5119 gimplify parameters into SSA.
5120 (prepare_gimple_addressable): Do not allow an SSA name as temporary.
5121 (gimplify_modify_expr): Adjust assert. For noreturn calls
5122 with a SSA name LHS adjust its def.
5123 (gimplify_save_expr): Do not allow an SSA name as save-expr result.
5124 (gimplify_one_sizepos): Do not allow an SSA name as a sizepos.
5125 (gimplify_body): Init GIMPLE SSA data structures and gimplify into-SSA.
5126 (gimplify_scan_omp_clauses): Make sure OMP_CLAUSE_SIZE is not
5127 an SSA name. Likewise for OMP_CLAUSE_REDUCTION operands.
5128 (gimplify_omp_for): Likewise for OMP_CLAUSE_DECL. Likewise
5129 for OMP_FOR_COND, OMP_FOR_INCR and OMP_CLAUSE_LINEAR_STEP.
5130 (optimize_target_teams): Do not allow SSA names for clause operands.
5131 (gimplify_expr): Likewise for where we mark the result addressable.
5132 * passes.def (pass_init_datastructures): Remove.
5133 * tree-into-ssa.c (mark_def_sites): Ignore existing SSA names.
5134 (rewrite_stmt): Likewise.
5135 * tree-inline.c (initialize_cfun): Properly transfer SSA state.
5136 (replace_locals_op): Replace SSA names.
5137 (copy_gimple_seq_and_replace_locals): Init src_cfun.
5138 * gimple-low.c (lower_builtin_setjmp): Deal with SSA.
5139 * cgraph.c (release_function_body): Free CFG annotations only
5140 when we have a CFG. Simplify.
5141 * gimple-fold.c (gimplify_and_update_call_from_tree): Use
5142 force_gimple_operand instead of get_initialized_tmp_var.
5143 * tree-pass.h (make_pass_init_datastructures): Remove.
5144 * tree-ssa.c (execute_init_datastructures): Remove.
5145 (pass_data_init_datastructures): Likewise.
5146 (class pass_init_datastructures): Likewise.
5147 (make_pass_init_datastructures): Likewise.
5148 * omp-low.c (create_omp_child_function): Init SSA data structures.
5149 (grid_expand_target_grid_body): Likewise.
5150 * tree-cfg.c (move_block_to_fn): Double-check the DEF is an SSA
5151 name before adding it to names_to_release.
5152 (remove_bb): Always release SSA defs.
5153 * tree-ssa-ccp.c (get_default_value): Check SSA_NAME_VAR
5154 before dereferencing it.
5155 * cgraphunit.c (init_lowered_empty_function): Always
5156 int SSA data structures.
5157 * tree-ssanames.c (release_defs): Remove assert that we are in
5158 SSA form.
5159 * trans-mem.c (diagnose_tm_1): Handle SSA name function.
5160
5161 2016-05-03 Jakub Jelinek <jakub@redhat.com>
5162 Uros Bizjak <ubizjak@gmail.com>
5163
5164 PR rtl-optimization/70467
5165 * config/i386/predicates.md (x86_64_hilo_int_operand,
5166 x86_64_hilo_general_operand): New predicates.
5167 * config/i386/constraints.md (Wd): New constraint.
5168 * config/i386/i386.md (mode attr di): Use Wd instead of e.
5169 (general_hilo_operand): New mode attr.
5170 (add<mode>3, sub<mode>3): Use <general_hilo_operand>
5171 instead of <general_operand>.
5172 (*add<dwi>3_doubleword, *sub<dwi>3_doubleword): Use
5173 x86_64_hilo_general_operand instead of <general_operand>.
5174
5175 2016-05-03 Jakub Jelinek <jakub@redhat.com>
5176
5177 PR tree-optimization/70916
5178 * tree-if-conv.c (constant_or_ssa_name): Removed.
5179 (fold_build_cond_expr): Use is_gimple_val instead of
5180 constant_or_ssa_name.
5181
5182 PR tree-optimization/70916
5183 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
5184 if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.
5185
5186 PR target/49244
5187 * tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h.
5188 (optimize_atomic_bit_test_and): New function.
5189 (pass_fold_builtins::execute): Use it.
5190 * optabs.def (atomic_bit_test_and_set_optab,
5191 atomic_bit_test_and_complement_optab,
5192 atomic_bit_test_and_reset_optab): New optabs.
5193 * internal-fn.def (ATOMIC_BIT_TEST_AND_SET,
5194 ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_BIT_TEST_AND_RESET): New ifns.
5195 * builtins.h (expand_ifn_atomic_bit_test_and): New prototype.
5196 * builtins.c (expand_ifn_atomic_bit_test_and): New function.
5197 * internal-fn.c (expand_ATOMIC_BIT_TEST_AND_SET,
5198 expand_ATOMIC_BIT_TEST_AND_COMPLEMENT,
5199 expand_ATOMIC_BIT_TEST_AND_RESET): New functions.
5200 * doc/md.texi (atomic_bit_test_and_set@var{mode},
5201 atomic_bit_test_and_complement@var{mode},
5202 atomic_bit_test_and_reset@var{mode}): Document.
5203 * config/i386/sync.md (atomic_bit_test_and_set<mode>,
5204 atomic_bit_test_and_complement<mode>,
5205 atomic_bit_test_and_reset<mode>): New expanders.
5206 (atomic_bit_test_and_set<mode>_1,
5207 atomic_bit_test_and_complement<mode>_1,
5208 atomic_bit_test_and_reset<mode>_1): New insns.
5209
5210 2016-05-03 Richard Sandiford <richard.sandiford@arm.com>
5211
5212 PR rtl-optimization/70687
5213 * combine.c (change_zero_ext): Check for scalar modes. Use wide_int
5214 instead of unsigned HOST_WIDE_INT.
5215
5216 2016-05-03 Bernd Schmidt <bschmidt@redhat.com>
5217
5218 PR rtl-optimization/44281
5219 * hard-reg-set.h (struct target_hard_regs): New field
5220 x_fixed_nonglobal_reg_set.
5221 (fixed_nonglobal_reg_set): New macro.
5222 * reginfo.c (init_reg_sets_1): Initialize it.
5223 * ira.c (setup_alloc_regs): Use fixed_nonglobal_reg_set instead
5224 of fixed_reg_set.
5225 * df-scan.c (df_insn_refs_collect): Asms may reference global regs.
5226
5227 2016-05-03 Bin Cheng <bin.cheng@arm.com>
5228
5229 PR tree-optimization/56541
5230 * doc/invoke.texi (@item max-tree-if-conversion-phi-args): New item.
5231 * params.def (PARAM_MAX_TREE_IF_CONVERSION_PHI_ARGS): new param.
5232 * tree-if-conv.c (MAX_PHI_ARG_NUM): new macro.
5233 (any_complicated_phi): new static variable.
5234 (aggressive_if_conv): delete.
5235 (if_convertible_phi_p): support phis with more than two arguments.
5236 (if_convertible_bb_p): remvoe check on aggressive_if_conv and
5237 critical pred edges.
5238 (ifcvt_split_critical_edges): support phis with more than two
5239 arguments by checking new parameter. only split critical edges
5240 if needed.
5241 (tree_if_conversion): handle simd pragma marked loop using new
5242 local variable aggressive_if_conv. check any_complicated_phi.
5243
5244 2016-05-03 Bin Cheng <bin.cheng@arm.com>
5245
5246 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
5247 before using it.
5248
5249 2016-05-03 Bin Cheng <bin.cheng@arm.com>
5250
5251 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
5252 cbase.
5253
5254 2016-05-03 Oleg Endo <olegendo@gcc.gnu.org>
5255
5256 * config/sh/sh.md (udivsi3, divsi3, mulsi3): Simplify.
5257 (mulhisi3, umulhisi3, (smulsi3_highpart, umulsi3_highpart): Convert to
5258 define_insn_and_split.
5259 (mulsi3_i): New define_insn_and_split.
5260 (mulsi3_call): Convert to define_insn.
5261 (mulsidi3, mulsidi3_compact, umulsidi3, umulsidi3_compact):
5262 Remove constraints.
5263
5264 2016-05-02 Michael Meissner <meissner@linux.vnet.ibm.com>
5265
5266 * machmode.h (mode_complex): Add support to give the complex mode
5267 for a given mode.
5268 (GET_MODE_COMPLEX_MODE): Likewise.
5269 * stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
5270 stored by build_complex_type and gfc_build_complex_type instead of
5271 trying to figure out the appropriate mode based on the size. Raise
5272 an assertion error, if the type was not set.
5273 * genmodes.c (struct mode_data): Add field for the complex type of
5274 the given type.
5275 (blank_mode): Likewise.
5276 (make_complex_modes): Remember the complex mode created in the
5277 base type.
5278 (emit_mode_complex): Write out the mode_complex array to map a
5279 type mode to the complex version.
5280 (emit_insn_modes_c): Likewise.
5281 * tree.c (build_complex_type): Set the complex type to use before
5282 calling layout_type.
5283 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
5284 support for __float128 complex datatypes.
5285 (rs6000_hard_regno_mode_ok): Likewise.
5286 (rs6000_setup_reg_addr_masks): Likewise.
5287 (rs6000_complex_function_value): Likewise.
5288 * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
5289 __float128 and __ibm128 complex.
5290 (FLOAT128_IBM_P): Likewise.
5291 (ALTIVEC_ARG_MAX_RETURN): Likewise.
5292 * doc/extend.texi (Additional Floating Types): Document that
5293 -mfloat128 must be used to enable __float128. Document complex
5294 __float128 and __ibm128 support.
5295
5296 2016-05-02 Jakub Jelinek <jakub@redhat.com>
5297
5298 PR target/49244
5299 * gimple.c (gimple_builtin_call_types_compatible_p): Allow
5300 char/short arguments promoted to int because of promote_prototypes.
5301
5302 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
5303
5304 * config/i386/predicates.md (register_ssemem_operand): New predicate.
5305 * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Merge from
5306 *cmpi<FPCMP:unord><MODEF:mode>_mixed and
5307 *cmpi<FPCMP:unord><X87MODEF:mode>_i387. Disable unsupported
5308 alternatives using "enabled" attribute. Use register_ssemem_operand
5309 as operand 1 predicate.
5310 (*cmpi<unord>xf_i387): Split XFmode pattern from
5311 *cmpi<FPCMP:unord><X87MODEF:mode>_i387.
5312 (*absneg<mode>2): Merge from *absneg<mode>2_mixed and
5313 *absneg<mode>2_i387. Disable unsupported alternatives using
5314 "enabled" attribute.
5315 (*absnegxf2_i387): Split XFmode pattern from *absneg<mode>2_i387.
5316
5317 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
5318
5319 * omp-low.c (lower_oacc_head_tail): Assert there is at least one
5320 marker.
5321 (oacc_loop_process): Check mask for loop termination.
5322
5323 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
5324
5325 * cif-code.def (CIF_THUNK): Add.
5326 * ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
5327 accidental change.
5328
5329 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
5330
5331 * ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
5332 (dump_inline_summary): Dump it.
5333 (fp_expression_p): New predicate.
5334 (estimate_function_body_sizes): Use it.
5335 (inline_merge_summary): Merge fp_expressions.
5336 (inline_read_section): Read fp_expressions.
5337 (inline_write_summary): Write fp_expressions.
5338 * ipa-inline.c (can_inline_edge_p): Permit inlining across fp math
5339 codegen boundary if either caller or callee is !fp_expressions.
5340 * ipa-inline.h (inline_summary): Add fp_expressions.
5341 * ipa-inline-transform.c (inline_call): When inlining !fp_expressions
5342 to fp_expressions be sure the fp generation flags are updated.
5343
5344 2016-05-02 Jakub Jelinek <jakub@redhat.com>
5345
5346 PR rtl-optimization/70467
5347 * cse.c (cse_insn): Handle no-op MEM moves after folding.
5348
5349 PR rtl-optimization/70467
5350 * ipa-pure-const.c (check_call): Handle internal calls even in
5351 ipa mode like in local mode.
5352
5353 2016-05-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
5354
5355 * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.
5356
5357 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
5358
5359 * match.pd (X u< X, X u> X): New transformations.
5360
5361 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
5362
5363 * flag-types.h (enum warn_strict_overflow_code): Move ...
5364 * coretypes.h: ... here.
5365 * fold-const.h (fold_overflow_warning): Declare.
5366 * fold-const.c (fold_overflow_warning): Make non-static.
5367 (fold_comparison): Move the transformation of X +- C1 CMP C2
5368 into X CMP C2 -+ C1 ...
5369 * match.pd: ... here.
5370 * gimple-fold.c (fold_stmt_1): Protect with
5371 fold_defer_overflow_warnings.
5372
5373 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
5374
5375 * omp-low.c (struct oacc_loop): Add 'inner' field.
5376 (new_oacc_loop_raw): Initialize it to zero.
5377 (oacc_loop_fixed_partitions): Initialize it.
5378 (oacc_loop_auto_partitions): Partition outermost loop to outermost
5379 available partitioning.
5380
5381 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
5382
5383 * config/arc/arc.md (mulsidi3): Change operand 0 predicate to
5384 register_operand.
5385 (umulsidi3): Likewise.
5386 (indirect_jump): Fix jump instruction assembly patterns.
5387
5388 2016-05-02 Thomas Schwinge <thomas@codesourcery.com>
5389
5390 PR target/70860
5391 * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
5392 (nvptx_function_value): Assert non-NULL cfun.
5393
5394 2016-05-02 Eric Botcazou <ebotcazou@adacore.com>
5395
5396 PR rtl-optimization/70886
5397 * sched-deps.c (estimate_dep_weak): Canonicalize cselib values.
5398
5399 * cselib.h (rtx_equal_for_cselib_1): Declare.
5400 (rtx_equal_for_cselib_p: New inline function.
5401 * cselib.c (rtx_equal_for_cselib_p): Delete.
5402 (rtx_equal_for_cselib_1): Make public.
5403
5404 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
5405
5406 * config/i386/predicates.md (nonimm_ssenomem_operand): New predicate.
5407 (register_mixssei387nonimm_operand): Remove predicate.
5408 * config/i386/i386.md (*fop_<mode>_comm): Merge from
5409 *fop_<mode>_comm_mixed and *fop_<mode>_comm_i387. Disable unsupported
5410 alternatives using "enabled" attribute. Also check X87_ENABLE_ARITH
5411 for TARGET_MIX_SSE_I387 alternatives.
5412 (*fop_<mode>_1): Merge from *fop_<mode>_1_mixed and *fop_<mode>_1_i387.
5413 Disable unsupported alternatives using "enabled" attribute. Use
5414 nonimm_ssenomem_operand as operand 1 predicate. Also check
5415 X87_ENABLE_ARITH for TARGET_MIX_SSE_I387 alternatives.
5416
5417 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
5418
5419 * tree.c (cst_and_fits_in_hwi): Simplify.
5420
5421 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
5422
5423 * tree.h (wi::to_wide): New function.
5424 * expr.c (expand_expr_real_1): Use wi::to_wide.
5425 * fold-const.c (int_const_binop_1): Likewise.
5426 (extract_muldiv_1): Likewise.
5427
5428 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
5429
5430 * wide-int.h: Update offset_int and widest_int documentation.
5431 (WI_SIGNED_SHIFT_RESULT): New macro.
5432 (wi::binary_shift): Define signed_shift_result_type for
5433 shifts on offset_int- and widest_int-like types.
5434 (generic_wide_int): Support <<= and >>= if << and >> are supported.
5435 * tree.h (int_bit_position): Use shift operators instead of wi::
5436 shifts.
5437 * alias.c (adjust_offset_for_component_ref): Likewise.
5438 * expr.c (get_inner_reference): Likewise.
5439 * fold-const.c (fold_comparison): Likewise.
5440 * gimple-fold.c (fold_nonarray_ctor_reference): Likewise.
5441 * gimple-ssa-strength-reduction.c (restructure_reference): Likewise.
5442 * tree-dfa.c (get_ref_base_and_extent): Likewise.
5443 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
5444 (stmt_kills_ref_p): Likewise.
5445 * tree-ssa-ccp.c (bit_value_binop_1): Likewise.
5446 * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
5447 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
5448 (ao_ref_init_from_vn_reference): Likewise.
5449
5450 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
5451
5452 * wide-int.h: Update offset_int and widest_int documentation.
5453 (WI_SIGNED_BINARY_PREDICATE_RESULT): New macro.
5454 (wi::binary_traits): Allow ordered comparisons between offset_int and
5455 offset_int, between widest_int and widest_int, and between either
5456 of these types and basic C types.
5457 (operator <, <=, >, >=): Define for the same combinations.
5458 * tree.h (tree_int_cst_lt): Use comparison operators instead
5459 of wi:: comparisons.
5460 (tree_int_cst_le): Likewise.
5461 * gimple-fold.c (fold_array_ctor_reference): Likewise.
5462 (fold_nonarray_ctor_reference): Likewise.
5463 * gimple-ssa-strength-reduction.c (record_increment): Likewise.
5464 * tree-affine.c (aff_comb_cannot_overlap_p): Likewise.
5465 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Likewise.
5466 * tree-sra.c (completely_scalarize): Likewise.
5467 * tree-ssa-alias.c (stmt_kills_ref_p): Likewise.
5468 * tree-ssa-reassoc.c (extract_bit_test_mask): Likewise.
5469 * tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
5470 (check_for_binary_op_overflow): Likewise.
5471 (search_for_addr_array): Likewise.
5472 * ubsan.c (ubsan_expand_objsize_ifn): Likewise.
5473
5474 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
5475
5476 * config/arc/arc.c (arc_preferred_simd_mode): Remove enum keyword.
5477 (arc_save_restore): Likewise.
5478 (arc_dwarf_register_span): Likewise.
5479 (arc_output_pic_addr_const): Initialize suffix variable.
5480
5481 2016-05-02 Martin Liska <mliska@suse.cz>
5482
5483 * symbol-summary.h (function_summary::function_summary):
5484 Remove checking assert for all cgraph nodes.
5485 (function_summary::get): Check summary_uid.
5486 (symtab_insertion): Check summary_uid.
5487
5488 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
5489
5490 * config/arc/arc-protos.h (compact_memory_operand_p): Declare.
5491 * config/arc/arc.c (arc_output_commutative_cond_exec): Consider
5492 bmaskn instruction.
5493 (arc_dwarf_register_span): Remove enum keyword.
5494 (compact_memory_operand_p): New function.
5495 * config/arc/arc.h (reg_class): Add code density register classes.
5496 (REG_CLASS_NAMES): Likewise.
5497 (REG_CLASS_CONTENTS): Likewise.
5498 * config/arc/arc.md (*movqi_insn): Add code density instructions.
5499 (*movhi_insn, *movsi_insn, *movsf_insn): Likewise.
5500 (*extendhisi2_i, andsi3_i, cmpsi_cc_insn_mixed): Likewise.
5501 (*cmpsi_cc_c_insn, *movsi_ne): Likewise.
5502 * config/arc/constraints.md (C2p, Uts, Cm1, Cm3, Ucd): New
5503 constraints.
5504 (h, Rcd, Rsd, Rzd): New register constraints.
5505 (T): Use compact_memory_operand_p function.
5506 * config/arc/predicates.md (compact_load_memory_operand): Remove.
5507
5508 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
5509
5510 * config/sh/sh.md (*negnegt, *movtt): Remove.
5511
5512 2016-05-02 Marek Polacek <polacek@redhat.com>
5513 Tom de Vries <tom@codesourcery.com>
5514
5515 PR tree-optimization/70700
5516 * tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids
5517 bigger than FIRST_REF_NODE.
5518
5519 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
5520
5521 PR target/52898
5522 * config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4,
5523 TARGET_CMPEQDI_T.
5524 (prepare_cbranch_operands): Don't use scratch register. Assume that
5525 function is used when pseudos can be created.
5526 (expand_cbranchdi4): Likewise. Remove unused TARGET_CMPEQDI_T paths.
5527 * config/sh/sh.md (cbranchsi4): Allow only when pseudos can be created.
5528 (cbranchdi4, cbranchdi4_i): Simplify to single cbranchdi4
5529 define_expand. Allow it only when pseudos can be created.
5530 * config/sh/sh.opt (mcbranchdi, mcmpeqdi): Delete.
5531
5532 2016-05-01 Uros Bizjak <ubizjak@gmail.com>
5533
5534 * config/i386/constraints.md (BC): Only allow -1 operands.
5535 * config/i386/sse.md (mov<mode>_internal): Add (v,C) alternative.
5536 Add "enabled" attribute. Update XI mode attribute calculation.
5537 * config/i386/i386.md (*movxi_internal_avx512f): Add (v,C) alternative.
5538 (*movoi_internal_avx): Update XI mode attribute calculation.
5539 (*movti_internal): Ditto.
5540
5541 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
5542
5543 * config/sh/sh.md (push, pop, ic_invalidate_line, cstoresi4, cstoredi4,
5544 cstoresf4, cstoredf4, fix_truncsfsi2): Remove constraints.
5545
5546 2016-05-01 Eric Botcazou <ebotcazou@adacore.com>
5547
5548 * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Do not use switch
5549 statement on instruction code. Remove trailing spaces.
5550 (altivec_expand_stv_builtin): Likewise.
5551
5552 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
5553
5554 * config/sh/sh.h (TARGET_SH4): Remove and use default implementation.
5555 (TARGET_FPU_DOUBLE): Simplify.
5556 (BASE_ARG_REG, DOUBLE_TYPE_SIZE, OPTIMIZE_MODE_SWITCHING): Replace
5557 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions with 'TARGET_FPU_DOUBLE'.
5558 * config/sh/sh.c: Replace 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions
5559 with 'TARGET_FPU_DOUBLE'.
5560 * config/sh/sh.md: Likewise.
5561
5562 2016-05-01 Yoshinori Sato <ysato@users.sourceforge.jp>
5563
5564 * config/sh/linux.h (SH_DIV_STRATEGY_DEFAULT,
5565 SH_DIV_STR_FOR_SIZE): Remove.
5566 * config/sh/netbsd-elf.h (SH_DIV_STRATEGY_DEFAULT,
5567 SH_DIV_STR_FOR_SIZE): Remove.
5568
5569 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
5570
5571 * config/sh/predicates.md (any_register_operand, zero_extend_operand,
5572 logical_reg_operand): Delete.
5573 (arith_operand, arith_reg_dest, arith_or_int_operand, cmpsi_operand,
5574 arith_reg_or_0_operand, arith_reg_or_0_or_1_operand, logical_operand,
5575 logical_and_operand, movsrc_no_disp_mem_operand): Rewrite using
5576 match_operand and match_test.
5577 (sh_const_vec, sh_1el_vec): Remove redundant checks. Declare local
5578 variables on their first use. Return bool values.
5579 * config/sh/sh.h (LOAD_EXTEND_OP): Update comment.
5580 * config/sh/sh.md (andsi3, iorsi3): Use arith_reg_dest for result and
5581 arith_reg_operand for input operand. Remove empty constraints.
5582 (xorsi3): Delete.
5583 (*xorsi3_compact): Rename to xorsi3.
5584 (zero_extend<mode>si2): Use arith_reg_operand for input operand.
5585 (*zero_extend<mode>si2_disp_mem): Update comment.
5586 (mov_nop): Delete.
5587
5588 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
5589
5590 * config/sh/t-sh: Remove SH5 support.
5591 * config.gcc: Likewise.
5592 * configure: Likewise.
5593
5594 2016-04-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5595
5596 * config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus.
5597
5598 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
5599
5600 * config/sh/sh.c (register_sh_passes, sh_option_override,
5601 sh_print_operand, prepare_move_operands,
5602 sh_can_follow_jump): Remove TARGET_SH1 checks.
5603 * config/sh/sh.h (TARGET_VARARGS_PRETEND_ARGS, VALID_REGISTER_P,
5604 PROMOTE_MODE): Likewise.
5605 * config/sh/sh.md (adddi3, addsi3, subdi3, subsi3, andsi3,
5606 movdi): Likewise.
5607
5608 2016-04-30 Alan Modra <amodra@gmail.com>
5609
5610 * config/rs6000/rs6000.c (rs6000_savres_strategy): Force inline
5611 restoring when fixed_reg_p, but allow out-of-line or stmw save.
5612 Check for user regs later to avoid unnecessary looping over regs.
5613 Merge user reg check with non-saved reg check. Don't force
5614 inline VR restore when static chain used.
5615 (rs6000_frame_related): Omit eh_frame info for user regs when
5616 saving.
5617 (fixed_regs_p): Delete.
5618
5619 2016-04-30 Alan Modra <amodra@gmail.com>
5620
5621 * config/rs6000/rs6000.c (SAVRES_MULTIPLE): Replace with..
5622 (SAVE_STRATEGY, REST_STRATEGY): ..this. Renumber and sort enum.
5623 Update all uses.
5624
5625 2016-04-30 Alan Modra <amodra@gmail.com>
5626
5627 PR target/69645
5628 * config/rs6000/rs6000.c (fixed_reg_p): New function.
5629 (fixed_regs_p): Rename from global_regs_p. Call fixed_reg_p.
5630 Update all uses.
5631
5632 2016-04-30 Alan Modra <amodra@gmail.com>
5633
5634 * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
5635 Remove redundant PIC_OFFSET_TABLE_REGNUM test. Replace with
5636 flag_pic test for Darwin.
5637
5638 2016-04-30 Alan Modra <amodra@gmail.com>
5639
5640 * regs.h (struct reg_info_t): Delete freq_calls_crossed and
5641 throw_calls_crossed.
5642 (REG_FREQ_CALLS_CROSSED): Delete.
5643 (REG_N_THROWING_CALLS_CROSSED): Delete.
5644 * regstat.c (regstat_bb_compute_ri): Don't calculate
5645 REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED.
5646 (dump_reg_info): Don't print call cross frequency.
5647 * ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED
5648 and REG_N_THROWING_CALLS_CROSSED.
5649
5650 2016-04-30 Alan Modra <amodra@gmail.com>
5651
5652 * regs.h (struct reg_info_t): Delete live_length.
5653 (REG_LIVE_LENGTH): Delete macro.
5654 * regstat.c (regstat_bb_compute_ri): Delete artificial_uses,
5655 local_live, local_processed and local_live_last_luid params.
5656 Replace bb_index param with bb. Don't set REG_LIVE_LENGTH.
5657 Formatting fixes.
5658 (regstat_compute_ri): Adjust for above. Don't set
5659 REG_LIVE_LENGTH.
5660 (dump_reg_info): Don't print live length.
5661 * ira.c (update_equiv_regs): Replace test of REG_LIVE_LENGTH
5662 with test of setjmp_crosses. Don't set REG_LIVE_LENGTH.
5663 Localize loop_depth var.
5664
5665 2016-04-30 Alan Modra <amodra@gmail.com>
5666
5667 * ira.c (enum valid_equiv): New.
5668 (validate_equiv_mem): Return enum.
5669 (update_equiv_mem): Create replacement in more cases.
5670 (add_store_equivs): Update validate_equiv_mem call.
5671
5672 2016-04-30 Alan Modra <amodra@gmail.com>
5673
5674 * ira.c (combine_and_move_insns): Rather than scanning insns,
5675 use DF infrastucture to find use and def insns.
5676
5677 2016-04-30 Alan Modra <amodra@gmail.com>
5678
5679 ira.c (combine_and_move_insns): Move invariant conditions..
5680 (ira.c): ..to here. Call combine_and_move_insns before
5681 add_store_equivs. Call grow_reg_equivs later. Allocate
5682 req_equiv later using max_reg_num() rather than global max_regno.
5683 (contains_replace_regs): Delete.
5684 (add_store_equivs): Remove contains_replace_regs test.
5685
5686 2016-04-30 Alan Modra <amodra@gmail.com>
5687
5688 * ira.c (struct equiv_mem_data): New.
5689 (equiv_mem, equiv_mem_modified): Delete static vars.
5690 (validate_equiv_mem_from_store): Use "data" param to communicate..
5691 (validate_equiv_mem): ..from here.
5692
5693 2016-04-30 Alan Modra <amodra@gmail.com>
5694
5695 * ira.c (add_store_equivs, combine_and_move_insns): New functions,
5696 split out from..
5697 (update_reg_equivs): ..here. Move allocation and freeing of
5698 reg_equiv, and calls to grow_reg_equivs, init_alias_analysis,
5699 end_alias_analysis to..
5700 (ira): ..here.
5701
5702 2016-04-30 Alan Modra <amodra@gmail.com>
5703
5704 * ira.c (pdx_subregs): Delete.
5705 (struct equivalence): Add pdx_subregs field.
5706 (set_paradoxical_subreg): Remove pdx_subregs param. Update
5707 pdx_subregs access.
5708 (update_equiv_regs): Don't create or free pdx_subregs. Update
5709 pdx_subregs access.
5710
5711 2016-04-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5712
5713 * config/rs6000/altivec.h: Change definitions of vec_xl and
5714 vec_xst.
5715 * config/rs6000/rs6000-builtin.def (LD_ELEMREV_V2DF): New.
5716 (LD_ELEMREV_V2DI): New.
5717 (LD_ELEMREV_V4SF): New.
5718 (LD_ELEMREV_V4SI): New.
5719 (LD_ELEMREV_V8HI): New.
5720 (LD_ELEMREV_V16QI): New.
5721 (ST_ELEMREV_V2DF): New.
5722 (ST_ELEMREV_V2DI): New.
5723 (ST_ELEMREV_V4SF): New.
5724 (ST_ELEMREV_V4SI): New.
5725 (ST_ELEMREV_V8HI): New.
5726 (ST_ELEMREV_V16QI): New.
5727 (XL): New.
5728 (XST): New.
5729 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
5730 descriptions for VSX_BUILTIN_VEC_XL and VSX_BUILTIN_VEC_XST.
5731 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Map from
5732 TARGET_P9_VECTOR to RS6000_BTM_P9_VECTOR.
5733 (altivec_expand_builtin): Add handling for
5734 VSX_BUILTIN_ST_ELEMREV_<MODE> and VSX_BUILTIN_LD_ELEMREV_<MODE>.
5735 (rs6000_invalid_builtin): Add error-checking for
5736 RS6000_BTM_P9_VECTOR.
5737 (altivec_init_builtins): Define builtins used to implement vec_xl
5738 and vec_xst.
5739 (rs6000_builtin_mask_names): Define power9-vector.
5740 * config/rs6000/rs6000.h (MASK_P9_VECTOR): Define.
5741 (RS6000_BTM_P9_VECTOR): Define.
5742 (RS6000_BTM_COMMON): Include RS6000_BTM_P9_VECTOR.
5743 * config/rs6000/vsx.md (vsx_ld_elemrev_v2di): New define_insn.
5744 (vsx_ld_elemrev_v2df): Likewise.
5745 (vsx_ld_elemrev_v4sf): Likewise.
5746 (vsx_ld_elemrev_v4si): Likewise.
5747 (vsx_ld_elemrev_v8hi): Likewise.
5748 (vsx_ld_elemrev_v16qi): Likewise.
5749 (vsx_st_elemrev_v2df): Likewise.
5750 (vsx_st_elemrev_v2di): Likewise.
5751 (vsx_st_elemrev_v4sf): Likewise.
5752 (vsx_st_elemrev_v4si): Likewise.
5753 (vsx_st_elemrev_v8hi): Likewise.
5754 (vsx_st_elemrev_v16qi): Likewise.
5755 * doc/extend.texi: Add prototypes for vec_xl and vec_xst. Correct
5756 grammar.
5757
5758 2016-04-29 Patrick Palka <ppalka@gcc.gnu.org>
5759
5760 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Split
5761 out into ...
5762 (simplify_control_stmt_condition_1): ... here. Recurse into
5763 BIT_AND_EXPRs and BIT_IOR_EXPRs.
5764
5765 2016-04-29 David Edelsohn <dje.gcc@gmail.com>
5766
5767 PR target/69810
5768 * config/rs6000/rs6000.md (EXTQI): Don't allow extension to HImode.
5769 (zero_extendqi<mode>2_dot): Revert earlier conversion from
5770 define_insn_and_split to define_insn.
5771 (zero_extendqi<mode>2_dot2): Same.
5772 (extendqi<mode>2_dot): Same.
5773 (extendqi<mode>2_dot2): Same.
5774
5775 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
5776
5777 * config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK.
5778 (probe_stack): New expander.
5779 (probe_stack_<mode>): New insn pattern.
5780
5781 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
5782
5783 * config/i386/i386.md
5784 (operations with memory inputs setting flags peephole2):
5785 Remove uneeded REG_P checks. Cleanup pattern generation.
5786
5787 2016-04-29 Ilya Enkovich <ilya.enkovich@intel.com>
5788
5789 * tree-vect-loop.c (vect_transform_loop): Fix
5790 nb_iterations_upper_bound computation for vectorized loop.
5791
5792 2016-04-29 Marek Polacek <polacek@redhat.com>
5793 Jakub Jelinek <jakub@redhat.com>
5794
5795 PR sanitizer/70342
5796 * fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
5797 TARGET_EXPR_SLOT as a base.
5798
5799 2016-04-29 Andrew Burgess <andrew.burgess@embecosm.com>
5800
5801 * config/arc/arc.md (*loadqi_update): Replace use of 'rI' constraint
5802 with 'rCm2' constraints to limit possible immediate size.
5803 (*load_zeroextendqisi_update): Likewise.
5804 (*load_signextendqisi_update): Likewise.
5805 (*loadhi_update): Likewise.
5806 (*load_zeroextendhisi_update): Likewise.
5807 (*load_signextendhisi_update): Likewise.
5808 (*loadsi_update): Likewise.
5809 (*loadsf_update): Likewise.
5810
5811 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
5812
5813 * config/i386/predicates.md (constm1_operand): Fix comparison.
5814
5815 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
5816
5817 * testsuite/gcc.target/arc/ieee_eq.c: New test.
5818
5819 2016-04-29 Oleg Endo <olegendo@gcc.gnu.org>
5820
5821 * common/config/sh/sh-common.c (sh_option_optimization_table): Remove
5822 remaining SH5 related settings.
5823 * config/sh/sh-protos.h (shmedia_cleanup_truncate,
5824 shmedia_prepare_call_address): Delete.
5825 * config/sh/sh.c (sh_print_operand, output_stack_adjust,
5826 DWARF_CIE_DATA_ALIGNMENT, LOCAL_ALIGNMENT): Update comments.
5827 * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC,
5828 UNSUPPORTED_SH2A): Remove m5 checks.
5829 (sh_divide_strategy_e): Remove SH5 division strategies.
5830 (TARGET_PTRMEMFUNC_VBIT_LOCATION): Remove and use default.
5831 * config/sh/sh.md (divsf3): Reinstate define_expand pattern.
5832
5833 2016-04-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
5834
5835 * config/s390/s390.c (s390_rtx_costs): Update documentation.
5836
5837 2016-04-29 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5838
5839 * config/s390/2964.md ("z13_unit_fxu", "z13_0"): Remove lder.
5840 * config/s390/s390.md ("movsi_larl", "*movsi_esa", "mov<mode>"):
5841 Change lder to ldr.
5842 * config/s390/vector.md ("mov<mode>"): Likewise.
5843
5844 2016-04-29 Ulrich Weigand <uweigand@de.ibm.com>
5845
5846 * config/s390/constraints.md ("U", "W"): Invoke
5847 s390_mem_constraint with "ZR" and "ZT".
5848 * config/s390/s390.c (s390_check_qrst_address): Reject invalid
5849 addresses when using LRA. Accept also short displacements for S
5850 and T constraints. Do not check for long displacement target for
5851 S and T constraints.
5852 (s390_mem_constraint): Remove handling of U and W constraints.
5853 * config/s390/s390.md (various patterns): Remove the short
5854 displacement constraints (Q and R) if a long displacement
5855 constraint is present. Add longdisp as required CPU capability.
5856 * config/s390/vector.md: Likewise.
5857 * config/s390/vx-builtins.md: Likewise.
5858
5859 2016-04-29 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
5860
5861 PR target/60040
5862 * reload1.c (reload): Call finish_spills before
5863 restarting reload loop. Skip select_reload_regs
5864 if update_eliminables_and_spill returns true.
5865
5866 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
5867
5868 * config/arc/arc.h (UNSIGNED_INT12, UNSIGNED_INT16): Define.
5869 * config/arc/arc.md (umulhisi3): Use arc_short_operand predicate.
5870 (umulhisi3_imm): Update predicates and constraint letters.
5871 (umulhisi3_reg): Declare instruction as commutative.
5872 * config/arc/constraints.md (J12, J16): New constraints.
5873 * config/arc/predicates.md (short_unsigned_const_operand): New
5874 predicate.
5875 (arc_short_operand): Likewise.
5876 * testsuite/gcc.target/arc/umulsihi3_z.c: New file.
5877
5878 2016-04-29 Richard Biener <rguenther@suse.de>
5879
5880 PR tree-optimization/13962
5881 PR tree-optimization/65686
5882 * tree-ssa-alias.h (ptrs_compare_unequal): Declare.
5883 * tree-ssa-alias.c (ptrs_compare_unequal): New function
5884 using PTA to compare pointers.
5885 * match.pd: Add pattern for pointer equality compare simplification
5886 using ptrs_compare_unequal.
5887
5888 2016-04-29 Richard Biener <rguenther@suse.de>
5889
5890 * stor-layout.c (layout_type): Do not build a pointer-to-element
5891 type for arrays.
5892
5893 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
5894
5895 * config/i386/i386.md (Load+RegOp to Mov+MemOp peephole2):
5896 Use SWI mode iterator. Use general_reg_operand predicate.
5897 (Load+RegOp to Mov+MemOp peephole2 with vector regs): Split
5898 peephole to MMX and SSE part. Use mmx_reg_operand and sse_reg_operand
5899 predicates.
5900
5901 2016-04-29 Jakub Jelinek <jakub@redhat.com>
5902
5903 PR middle-end/70843
5904 * fold-const.c (operand_equal_p): Don't verify hash value equality
5905 if arg0 == arg1.
5906 * tree.c (inchash::add_expr): Handle STATEMENT_LIST. Ignore BLOCK
5907 and OMP_CLAUSE.
5908
5909 2016-04-28 Jakub Jelinek <jakub@redhat.com>
5910
5911 PR target/70858
5912 * config/i386/i386.c (bdesc_special_args): Add | OPTION_MASK_ISA_64BIT
5913 to __builtin_ia32_lwpval64 and __builtin_ia32_lwpins64.
5914 (bdesc_args): Add | OPTION_MASK_ISA_64BIT to __builtin_ia32_bextr_u64,
5915 __builtin_ia32_bextri_u64, __builtin_ia32_bzhi_di,
5916 __builtin_ia32_pdep_di and __builtin_ia32_pext_di.
5917
5918 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
5919
5920 * config/rs6000/rs6000.c (compute_save_world_info): Rename info_ptr
5921 to info. Don't initialize separate fields to 0. Clean up
5922 formatting a bit.
5923
5924 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
5925
5926 * config/i386/i386.md (peephole2s for operations with memory inputs):
5927 Use SWI mode iterator.
5928 (peephole2s for operations with memory outputs): Ditto.
5929 Do not check for stack checking probe.
5930
5931 (probe_stack): Remove expander.
5932
5933 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
5934 Andrew Burgess <andrew.burgess@embecosm.com>
5935
5936 * config/arc/arc.c (arc_print_operand): Print integer 'H' / 'L'
5937 operands as 32-bits.
5938
5939 2016-04-28 Jason Merrill <jason@redhat.com>
5940
5941 * gdbinit.in: Skip line-map.h.
5942
5943 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
5944 Andrew Burgess <andrew.burgess@embecosm.com>
5945
5946 * config/arc/arc.c (arc_conditional_register_usage): Take
5947 TARGET_RRQ_CLASS into account.
5948 (arc_print_operand): Support printing 'p' and 's' operands.
5949 * config/arc/arc.h (TARGET_NPS_BITOPS_DEFAULT): Provide default
5950 as 0.
5951 (TARGET_RRQ_CLASS): Define.
5952 (IS_POWEROF2_OR_0_P): Define.
5953 * config/arc/arc.md (*movsi_insn): Add w/Clo, w/Chi, and w/Cbi
5954 alternatives.
5955 (*tst_movb): New define_insn.
5956 (*tst): Avoid recognition if it could prevent '*tst_movb'
5957 combination; replace c/CnL with c/Chs alternative.
5958 (*tst_bitfield_tst): New define_insn.
5959 (*tst_bitfield_asr): New define_insn.
5960 (*tst_bitfield): New define_insn.
5961 (andsi3_i): Add Rrq variant.
5962 (extzv): New define_expand.
5963 (insv): New define_expand.
5964 (*insv_i): New define_insn.
5965 (*movb): New define_insn.
5966 (*movb_signed): New define_insn.
5967 (*movb_high): New define_insn.
5968 (*movb_high_signed): New define_insn.
5969 (*movb_high_signed + 1): New define_split pattern.
5970 (*mrgb): New define_insn.
5971 (*mrgb + 1): New define_peephole2 pattern.
5972 (*mrgb + 2): New define_peephole2 pattern.
5973 * config/arc/arc.opt (mbitops): New option for nps400, uses
5974 TARGET_NPS_BITOPS_DEFAULT.
5975 * config/arc/constraints.md (q): Make register class conditional.
5976 (Rrq): New register constraint.
5977 (Chs): New constraint.
5978 (Clo): New constraint.
5979 (Chi): New constraint.
5980 (Cbf): New constraint.
5981 (Cbn): New constraint.
5982 (C18): New constraint.
5983 (Cbi): New constraint.
5984
5985 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
5986
5987 * cfganal.c (bitmap_intersection_of_succs): Delete assert checking
5988 dst->popcount.
5989 (bitmap_intersection_of_preds): Ditto.
5990 (bitmap_union_of_succs): Ditto.
5991 (bitmap_union_of_preds): Ditto.
5992 * sbitmap.c (do_popcount): Delete.
5993 (BITMAP_DEBUGGING): Delete.
5994 (sbitmap_verify_popcount): Delete.
5995 (sbitmap_alloc): Don't initialize the popcount field.
5996 (sbitmap_alloc_with_popcount): Delete.
5997 (sbitmap_resize): Don't resize the popcount array.
5998 (sbitmap_vector_alloc): Don't initialize the popcount field.
5999 (bitmap_copy): Don't copy the popcount array.
6000 (bitmap_clear): Don't clear the popcount array.
6001 (bitmap_clear): Delete the popcount array handling.
6002 (bitmap_ior_and_compl): Delete the popcount assert.
6003 (bitmap_not): Ditto.
6004 (bitmap_and_compl): Ditto.
6005 (bitmap_and): Delete the popcount array handling.
6006 (bitmap_xor): Ditto.
6007 (bitmap_ior): Ditto.
6008 (bitmap_or_and): Delete the popcount assert.
6009 (bitmap_and_or): Ditto.
6010 (popcount_table): Delete.
6011 (sbitmap_elt_popcount): Delete.
6012 * sbitmap.h (simple_bitmap_def): Delete the popcount field.
6013 (bitmap_set_bit): Delete the popcount assert.
6014 (bitmap_clear_bit): Ditto.
6015 (sbitmap_free): Don't free the popcount array.
6016 (sbitmap_alloc_with_popcount): Delete declaration.
6017 (sbitmap_popcount): Ditto.
6018
6019 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
6020 Andrew Burgess <andrew.burgess@embecosm.com>
6021
6022 * config/arc/arc.h (SYMBOL_FLAG_CMEM): Define.
6023 (TARGET_NPS_CMEM_DEFAULT): Provide default definition.
6024 * config/arc/arc.c (arc_address_cost): Return 0 for cmem_address.
6025 (arc_encode_section_info): Set SYMBOL_FLAG_CMEM where indicated.
6026 * config/arc/arc.opt (mcmem): New option.
6027 * config/arc/arc.md (*extendqihi2_i): Add r/Uex alternative,
6028 supply length for r/m alternative.
6029 (*extendqisi2_ac): Likewise.
6030 (*extendhisi2_i): Add r/Uex alternative, supply length for r/m and
6031 r/Uex alternative.
6032 (movqi_insn): Add r/Ucm and Ucm/?Rac alternatives.
6033 (movhi_insn): Likewise.
6034 (movsi_insn): Add r/Ucm,Ucm/w alternatives.
6035 (*zero_extendqihi2_i): Add r/Ucm alternative.
6036 (*zero_extendqisi2_ac): Likewise.
6037 (*zero_extendhisi2_i): Likewise.
6038 * config/arc/constraints.md (Uex): New memory constraint.
6039 (Ucm): New define_constraint.
6040 * config/arc/predicates.md (long_immediate_loadstore_operand):
6041 Return 0 for MEM with cmem_address address.
6042 (cmem_address_0): New predicates.
6043 (cmem_address_1): Likewise.
6044 (cmem_address_2): Likewise.
6045 (cmem_address): Likewise.
6046
6047 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
6048
6049 * config/rs6000/rs6000.c (machine_function): Rename
6050 insn_chain_scanned_p to spe_insn_chain_scanned_p.
6051 (rs6000_stack_info): Adjust.
6052
6053 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
6054 Andrew Burgess <andrew.burgess@embecosm.com>
6055
6056 * config/arc/constraints.md (Usd): Convert to define_constraint.
6057 (Us<): Likewise.
6058 (Us>): Likewise.
6059
6060 2016-04-28 Jakub Jelinek <jakub@redhat.com>
6061
6062 PR target/70821
6063 * config/i386/sync.md (define_peephole2 *atomic_fetch_add_cmp<mode>):
6064 Add new peephole2 where the first insn is *mov<mode>_or instead of
6065 *mov<mode>_internal.
6066
6067 2016-04-28 Segher Boesssenkool <segher@kernel.crashing.org>
6068
6069 * tracer.c (bb_seen): Make static.
6070
6071 2016-04-28 Andrew Burgess <andrew.burgess@embecosm.com>
6072
6073 * common/config/arc/arc-common.c (arc_handle_option): Add NPS400
6074 support, setup defaults.
6075 * config/arc/arc-opts.h (enum processor_type): Add NPS400.
6076 * config/arc/arc.c (arc_init): Add NPS400 support.
6077 * config/arc/arc.h (CPP_SPEC): Add NPS400 defines.
6078 (TARGET_ARC700): NPS400 is also an ARC700.
6079 * config/arc/arc.opt: Add NPS400 options to -mcpu=.
6080
6081 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
6082
6083 PR target/70668
6084 * config/nds32/nds32.md (casesi): Don't access the operands array
6085 out of bounds.
6086
6087 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
6088
6089 * config/i386/i386.md (zeroing peephole2): Use general_reg_operand.
6090 (or $-1,reg peephole2): Ditto.
6091 (strict_low_part zeroing peephole2): Use SWI12 mode iterator.
6092
6093 2016-04-28 Markus Trippelsdorf <markus@trippelsdorf.de>
6094
6095 * doc/extend.texi (Common Function Attributes) [optimize]:
6096 Discourage use of the optimize attribute.
6097
6098 2016-04-28 Bill Seurer <seurer@linux.vnet.ibm.com>
6099
6100 * config/rs6000/rs6000-builtin.def (vec_adde): Change vec_adde to a
6101 special case builtin.
6102 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
6103 ALTIVEC_BUILTIN_VEC_ADDE.
6104 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
6105 support for ALTIVEC_BUILTIN_VEC_ADDE.
6106 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
6107 for __builtin_vec_adde.
6108
6109 2016-04-28 Jakub Jelinek <jakub@redhat.com>
6110
6111 * config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
6112 * config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise.
6113
6114 2016-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6115
6116 PR testsuite/70595
6117 * doc/sourcebuild.texi (Effective-Target Keywords, Other
6118 attributes): Document cilkplus_runtime.
6119
6120 2016-04-28 Martin Jambor <mjambor@suse.cz>
6121
6122 * tree-cfg.c (verify_expr): Verify that local declarations belong to
6123 this function. Call verify_expr on MEM_REFs and bases of other
6124 handled_components.
6125
6126 2016-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6127
6128 * internal-fn.c (expand_arith_overflow): Convert preprocessor check
6129 for WORD_REGISTER_OPERATIONS to runtime check.
6130
6131 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
6132
6133 * config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.
6134
6135 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
6136
6137 * config/arc/arc.c (arc_process_double_reg_moves): Fix for
6138 big-endian compilation.
6139 * config/arc/arc.md (addf3): Likewise.
6140 (subdf3): Likewise.
6141 (muldf3): Likewise.
6142
6143 2016-04-28 Richard Biener <rguenther@suse.de>
6144
6145 PR tree-optimization/70840
6146 * match.pd: powi(-x, y) and powi(|x|,y) -> powi(x,y) if y is even;
6147 Fix pow(copysign(x, y), z) -> pow(x, z) and add powi variant;
6148 Mark x * pow(x,c) -> pow(x,c+1) commutative.
6149 Add powi(x,y) * powi(z,y) -> powi(x*z,y).
6150
6151 2015-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6152
6153 * config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
6154 and explain why in a comment.
6155
6156 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
6157
6158 * config/arc/arc.md (cpu_facility): Add fpx variant.
6159 (subdf3): Prohibit use reverse sub when assist operations option
6160 is enabled.
6161 * config/arc/fpx.md (subdf3_insn, *dsubh_peep2_insn): Allow drsub
6162 instructions only when FPX is enabled.
6163 * testsuite/gcc.target/arc/trsub.c: New test.
6164
6165 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
6166
6167 * config/i386/i386.md (*fop_<mode>_1_mixed): Do not check for
6168 mult_operator when calculating "type" attribute.
6169 (*fop_<mode>_1_i387): Ditto.
6170 (*fop_xf_1_i387): Ditto.
6171 (x87 stack loads peephole2): Add "reg = op (mem, reg)" peephole2.
6172 Use std::swap to swap operands. Use RTL expressions to generate
6173 converted pattern.
6174
6175 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
6176 Joern Rennecke <joern.rennecke@embecosm.com>
6177
6178 * config/arc/arc-protos.h (arc_legitimize_pic_address): Remove
6179 declaration.
6180 (emit_pic_move): Remove.
6181 (arc_eh_uses, insn_is_tls_gd_dispatch): Declare.
6182 * config/arc/arc.c (emit_pic_move): Removed.
6183 (TARGET_HAVE_TLS): Define.
6184 (arc_conditional_register_usage): Test for arc_tp_regno.
6185 (arc_print_operand, arc_print_operand_address): Handle TLS
6186 unspecs.
6187 (arc_needs_pcl_p): New function.
6188 (arc_legitimate_pc_offset_p): Use arc_needs_pcl_p.
6189 (arc_legitimate_pic_addr_p): Handle TLS unspecs.
6190 (arc_raw_symbolic_reference_mentioned_p): Likewise.
6191 (arc_get_tp, arc_emit_call_tls_get_addr): New function.
6192 (arc_legitimize_tls_address): Likewise.
6193 (DTPOFF_ZERO_SYM): Define.
6194 (arc_legitimize_pic_address): Make it static, handle TLS cases.
6195 (arc_output_pic_addr_const): Print TLS unspecs.
6196 (prepare_pic_move): New function, replaces emit_pic_move.
6197 (arc_legitimate_constant_p): Handle TLS unspecs.
6198 (arc_legitimate_address_p): Likewise.
6199 (arc_rewrite_small_data_p): Use assert for TLS constants.
6200 (prepare_move_operands): Use prepare_pic_move.
6201 (arc_legitimize_address): Legitimize tls addresses.
6202 (arc_epilogue_uses): Check for arc_tp_regno.
6203 (arc_eh_uses, insn_is_tls_gd_dispatch): New function.
6204 * config/arc/arc.h [DEFAULT_LIBC != LIBC_UCLIBC] (EXTRA_SPECS):
6205 Define.
6206 [DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC):
6207 Likewise.
6208 [DEFAULT_LIBC != LIBC_UCLIBC] (STARTFILE_SPEC): Add
6209 %(arc_tls_extra_start_spec).
6210 (TARGET_CPU_CPP_BUILTINS): Define __ARC_TLS_REGNO__.
6211 (REGNO_OK_FOR_BASE_P): Check for arc_tp_regno.
6212 (EH_USES): Define.
6213 (INSN_REFERENCES_ARE_DELAYED): Use insn_is_tls_gd_dispatch.
6214 * config/arc/arc.md (UNSPEC_TLS_GD, UNSPEC_TLS_LD, UNSPEC_TLS_IE)
6215 (UNSPEC_TLS_OFF): Add.
6216 (R10_REG): Define.
6217 (tls_load_tp_soft, tls_gd_load, tls_gd_get_addr, tls_gd_dispatch)
6218 (get_thread_pointersi): New patterns.
6219 * config/arc/arc.opt (mtp-regno): New option.
6220 * config/arc/predicates.md (move_src_operand): Handle TLS symbols.
6221 (move_dest_operand): Likewise.
6222 * configure: Regenerate.
6223 * configure.ac: Add arc*-*-* case to test for tls.
6224 * doc/invoke.texi (ARC options): Document mtp-regno.
6225
6226 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
6227
6228 * config/arc/arc.c (arc_vector_mode_supported_p): Add support for
6229 the new ARC HS SIMD instructions.
6230 (arc_preferred_simd_mode): New function.
6231 (arc_autovectorize_vector_sizes): Likewise.
6232 (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
6233 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
6234 (arc_init_reg_tables): Accept new ARC HS SIMD modes.
6235 (arc_init_builtins): Add new SIMD builtin types.
6236 (arc_split_move): Handle 64 bit vector moves.
6237 * config/arc/arc.h (TARGET_PLUS_DMPY, TARGET_PLUS_MACD)
6238 (TARGET_PLUS_QMACW): Define.
6239 * config/arc/builtins.def (QMACH, QMACHU, QMPYH, QMPYHU, DMACH)
6240 (DMACHU, DMPYH, DMPYHU, DMACWH, DMACWHU, VMAC2H, VMAC2HU, VMPY2H)
6241 (VMPY2HU, VADDSUB2H, VSUBADD2H, VADDSUB, VSUBADD, VADDSUB4H)
6242 (VSUBADD4H): New builtins.
6243 * config/arc/simdext.md: Add new ARC HS SIMD instructions.
6244 * testsuite/gcc.target/arc/builtin_simdarc.c: New file.
6245
6246 2016-04-28 Eduard Sanou <dhole@openmailbox.org>
6247 Matthias Klose <doko@debian.org>
6248
6249 * doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable.
6250
6251 2016-04-28 Richard Biener <rguenther@suse.de>
6252
6253 PR middle-end/70777
6254 * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
6255 canonicalization.
6256
6257 2016-04-28 Oleg Endo <olegendo@gcc.gnu.org>
6258
6259 * common/config/sh/sh-common.c: Remove SH5 support.
6260 * config/sh/constraints.md: Likewise.
6261 * config/sh/config/sh/elf.h: Likewise.
6262 * config/sh/linux.h: Likewise.
6263 * config/sh/netbsd-elf.h: Likewise.
6264 * config/sh/predicates.md: Likewise.
6265 * config/sh/sh-c.c: Likewise.
6266 * config/sh/sh-protos.h: Likewise.
6267 * config/sh/sh.c: Likewise.
6268 * config/sh/sh.h: Likewise.
6269 * config/sh/sh.md: Likewise.
6270 * config/sh/sh.opt: Likewise.
6271 * config/sh/sync.md: Likewise.
6272 * config/sh/sh64.h: Delete.
6273 * config/sh/shmedia.h: Likewise.
6274 * config/sh/shmedia.md: Likewise.
6275 * config/sh/sshmedia.h: Likewise.
6276 * config/sh/t-netbsd-sh5-64: Likewise.
6277 * config/sh/t-sh64: Likewise.
6278 * config/sh/ushmedia.h: Likewise.
6279
6280 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
6281
6282 * config/i386/i386.md (sign_extend to memory peephole2s): Use
6283 general_reg_operand instead of register_operand predicate.
6284
6285 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6286
6287 * params.def (MIN_PARTITION_SIZE): Set default value to 10000.
6288
6289 2016-04-27 Marc Glisse <marc.glisse@inria.fr>
6290
6291 * match.pd (A - B > A, A + B < A): New transformations.
6292
6293 2016-04-27 Patrick Palka <ppalka@gcc.gnu.org>
6294
6295 * genattrtab.c (write_test_expr): New parameter EMIT_PARENS
6296 which defaults to true. Emit an outer pair of parentheses only if
6297 EMIT_PARENS. When continuing a chain of && or || (or & or |),
6298 don't emit parentheses for the right-hand operand.
6299
6300 2016-04-27 Jeff Law <law@redhat.com>
6301
6302 * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.
6303
6304 2016-04-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6305
6306 * config/rs6000/altivec.md (altivec_lvx_<mode>): Remove.
6307 (altivec_lvx_<mode>_internal): Document.
6308 (altivec_lvx_<mode>_2op): New define_insn.
6309 (altivec_lvx_<mode>_1op): Likewise.
6310 (altivec_lvx_<mode>_2op_si): Likewise.
6311 (altivec_lvx_<mode>_1op_si): Likewise.
6312 (altivec_stvx_<mode>): Remove.
6313 (altivec_stvx_<mode>_internal): Document.
6314 (altivec_stvx_<mode>_2op): New define_insn.
6315 (altivec_stvx_<mode>_1op): Likewise.
6316 (altivec_stvx_<mode>_2op_si): Likewise.
6317 (altivec_stvx_<mode>_1op_si): Likewise.
6318 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
6319 Expand vec_ld and vec_st during parsing.
6320 * config/rs6000/rs6000.c (altivec_expand_lvx_be): Commentary
6321 changes.
6322 (altivec_expand_stvx_be): Likewise.
6323 (altivec_expand_lv_builtin): Expand lvx built-ins to expose the
6324 address-masking behavior in RTL.
6325 (altivec_expand_stv_builtin): Expand stvx built-ins to expose the
6326 address-masking behavior in RTL.
6327 (altivec_expand_builtin): Change builtin code arguments for calls
6328 to altivec_expand_stv_builtin and altivec_expand_lv_builtin.
6329 (insn_is_swappable_p): Avoid incorrect swap optimization in the
6330 presence of lvx/stvx patterns.
6331 (alignment_with_canonical_addr): New function.
6332 (alignment_mask): Likewise.
6333 (find_alignment_op): Likewise.
6334 (recombine_lvx_pattern): Likewise.
6335 (recombine_stvx_pattern): Likewise.
6336 (recombine_lvx_stvx_patterns): Likewise.
6337 (rs6000_analyze_swaps): Perform a pre-pass to recognize lvx and
6338 stvx patterns from expand.
6339 * config/rs6000/vector.md (vector_altivec_load_<mode>): Use new
6340 expansions.
6341 (vector_altivec_store_<mode>): Likewise.
6342
6343 2016-04-26 Evandro Menezes <e.menezes@samsung.com>
6344
6345 * config/aarch64/aarch64.md
6346 (*movhf_aarch64): Add "movi %0, #0" to zero up register and
6347 remove the "fp" attributes.
6348 (*movsf_aarch64): Add "movi %0, #0" to zero up register and
6349 add the "simd" attributes.
6350 (*movdf_aarch64): Likewise.
6351 (*movtf_aarch64): Remove the "fp" attributes.
6352 * testsuite/gcc.target/aarch64/fmovf-zero-reg.c: Update accordingly.
6353 * testsuite/gcc.target/aarch64/fmovd-zero-reg.c: Likewise.
6354
6355 2016-04-27 David Malcolm <dmalcolm@redhat.com>
6356
6357 * emit-rtl.c (maybe_set_first_label_num): Strengthen param from
6358 rtx to rtx_code_label *.
6359 * rtl.h (maybe_set_first_label_num): Likewise.
6360
6361 2016-04-27 David Malcolm <dmalcolm@redhat.com>
6362
6363 * df-core.c (df_add_problem): Make the problem param be const.
6364 (df_remove_problem): Make local "problem" be const.
6365 * df-problems.c (problem_RD): Make const.
6366 (problem_LR): Likewise.
6367 (problem_LIVE): Likewise.
6368 (problem_MIR): Likewise.
6369 (problem_CHAIN): Likewise.
6370 (problem_WORD_LR): Likewise.
6371 (problem_NOTE): Likewise.
6372 (problem_MD): Likewise.
6373 * df-scan.c (problem_SCAN): Likewise.
6374 * df.h (struct df_problem): Make field "dependent_problem" be
6375 const.
6376 (struct dataflow): Likewise for field "problem".
6377 (df_add_problem): Make param const.
6378
6379 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
6380
6381 * config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when
6382 inter-unit moves to/from vector registers are enabled. Do not disable
6383 for TARGET_MMX.
6384
6385 2016-04-27 David Malcolm <dmalcolm@redhat.com>
6386
6387 * df.h (DF_SCAN, DF_LR, DF_LIVE, DF_RD, DF_CHAIN, DF_WORD_LR,
6388 DF_NOTE, DF_MD, DF_MIR, DF_LAST_PROBLEM_PLUS1): Convert from
6389 #define to...
6390 (enum df_problem_id): ...this new enum.
6391 (struct df_problem): Convert field "id" from "int" to
6392 enum df_problem_id.
6393
6394 2016-04-27 David Malcolm <dmalcolm@redhat.com>
6395
6396 * rtl.def: Update comment for "things in the instruction chain" to
6397 reflect the removal of the leading "i" field for INSN_UID in
6398 r210360. Fix bogus apostrophe.
6399
6400 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
6401
6402 * config/i386/i386.md
6403 (lea arith with mem operand + setcc peephole2): Set operator mode.
6404
6405 2016-04-27 H.J. Lu <hongjiu.lu@intel.com>
6406
6407 PR target/70155
6408 * config/i386/i386.c (scalar_to_vector_candidate_p): Renamed to ...
6409 (dimode_scalar_to_vector_candidate_p): This.
6410 (timode_scalar_to_vector_candidate_p): New function.
6411 (scalar_to_vector_candidate_p): Likewise.
6412 (timode_check_non_convertible_regs): Likewise.
6413 (timode_remove_non_convertible_regs): Likewise.
6414 (remove_non_convertible_regs): Likewise.
6415 (remove_non_convertible_regs): Renamed to ...
6416 (dimode_remove_non_convertible_regs): This.
6417 (scalar_chain::~scalar_chain): Make it virtual.
6418 (scalar_chain::compute_convert_gain): Make it pure virtual.
6419 (scalar_chain::mark_dual_mode_def): Likewise.
6420 (scalar_chain::convert_insn): Likewise.
6421 (scalar_chain::convert_registers): Likewise.
6422 (scalar_chain::add_to_queue): Make it protected.
6423 (scalar_chain::emit_conversion_insns): Likewise.
6424 (scalar_chain::replace_with_subreg): Likewise.
6425 (scalar_chain::replace_with_subreg_in_insn): Likewise.
6426 (scalar_chain::convert_op): Likewise.
6427 (scalar_chain::convert_reg): Likewise.
6428 (scalar_chain::make_vector_copies): Likewise.
6429 (scalar_chain::convert_registers): New pure virtual function.
6430 (class dimode_scalar_chain): New class.
6431 (class timode_scalar_chain): Likewise.
6432 (scalar_chain::mark_dual_mode_def): Renamed to ...
6433 (dimode_scalar_chain::mark_dual_mode_def): This.
6434 (timode_scalar_chain::mark_dual_mode_def): New function.
6435 (timode_scalar_chain::convert_insn): Likewise.
6436 (dimode_scalar_chain::convert_registers): Likewise.
6437 (scalar_chain::compute_convert_gain): Renamed to ...
6438 (dimode_scalar_chain::compute_convert_gain): This.
6439 (scalar_chain::replace_with_subreg): Renamed to ...
6440 (dimode_scalar_chain::replace_with_subreg): This.
6441 (scalar_chain::replace_with_subreg_in_insn): Renamed to ...
6442 (dimode_scalar_chain::replace_with_subreg_in_insn): This.
6443 (scalar_chain::make_vector_copies): Renamed to ...
6444 (dimode_scalar_chain::make_vector_copies): This.
6445 (scalar_chain::convert_reg): Renamed to ...
6446 (dimode_scalar_chain::convert_reg ): This.
6447 (scalar_chain::convert_op): Renamed to ...
6448 (dimode_scalar_chain::convert_op): This.
6449 (scalar_chain::convert_insn): Renamed to ...
6450 (dimode_scalar_chain::convert_insn): This.
6451 (scalar_chain::convert): Call convert_registers.
6452 (convert_scalars_to_vector): Change to scalar_chain pointer to
6453 use timode_scalar_chain in 64-bit mode and dimode_scalar_chain
6454 in 32-bit mode. Delete scalar_chain pointer. Call
6455 free_dominance_info in 64-bit mode.
6456 (pass_stv::gate): Remove TARGET_64BIT check.
6457 (ix86_option_override): Put the 64-bit STV pass before the CSE
6458 pass.
6459
6460 2016-04-27 Pierre-Marie de Rodat <derodat@adacore.com>
6461
6462 * dwarf2out.h (struct dw_loc_descr_node): Remove the
6463 dw_loc_frame_offset field.
6464 * dwarf2out.c (new_loc_descr): Likewise.
6465 (resolve_args_picking_1): Turn the VISITED hash set into a
6466 FRAME_OFFSET hash map. Use it to associate a frame offset to
6467 visited nodes. Remove uses of the CHECKING_P macro.
6468 (resolve_args_picking): Update call to resolve_args_picking_1.
6469
6470 2016-04-27 Martin Liska <mliska@suse.cz>
6471
6472 * tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
6473 (free_loop_data): Release vuses of groups.
6474
6475 2016-04-27 Bin Cheng <bin.cheng@arm.com>
6476
6477 * tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use
6478 instead of redundant use_id and boolean have_use_for.
6479 (struct iv_use): Change sub_id into group_id. Remove field next.
6480 Move fields: related_cands, n_map_members, cost_map and selected
6481 to ...
6482 (struct iv_group): ... here. New structure.
6483 (struct iv_common_cand): Use structure declaration directly.
6484 (struct ivopts_data, iv_ca, iv_ca_delta): Rename fields.
6485 (MAX_CONSIDERED_USES): Rename macro to ...
6486 (MAX_CONSIDERED_GROUPS): ... here.
6487 (n_iv_uses, iv_use, n_iv_cands, iv_cand): Delete.
6488 (dump_iv, dump_use, dump_cand): Refactor format of dump information.
6489 (dump_uses): Rename to ...
6490 (dump_groups): ... here. Update all uses.
6491 (tree_ssa_iv_optimize_init, alloc_iv): Update all uses.
6492 (find_induction_variables): Refactor format of dump information.
6493 (record_sub_use): Delete.
6494 (record_use): Update all uses.
6495 (record_group): New function.
6496 (record_group_use, find_interesting_uses_op): Call above functions.
6497 Update all uses.
6498 (find_interesting_uses_cond): Ditto.
6499 (group_compare_offset): New function.
6500 (split_all_small_groups): Rename to ...
6501 (split_small_address_groups_p): ... here. Update all uses.
6502 (split_address_groups): Update all uses.
6503 (find_interesting_uses): Refactor format of dump information.
6504 (add_candidate_1): Update all uses. Remove redundant check on iv,
6505 base and step.
6506 (add_candidate, record_common_cand): Remove redundant assert.
6507 (add_iv_candidate_for_biv): Update use.
6508 (add_iv_candidate_derived_from_uses): Update all uses.
6509 (add_iv_candidate_for_groups, record_important_candidates): Ditto.
6510 (alloc_use_cost_map): Ditto.
6511 (set_use_iv_cost, get_use_iv_cost): Rename to ...
6512 (set_group_iv_cost, get_group_iv_cost): ... here. Update all uses.
6513 (determine_use_iv_cost_generic): Ditto.
6514 (determine_group_iv_cost_generic): Ditto.
6515 (determine_use_iv_cost_address): Ditto.
6516 (determine_group_iv_cost_address): Ditto.
6517 (determine_use_iv_cost_condition): Ditto.
6518 (determine_group_iv_cost_cond): Ditto.
6519 (determine_use_iv_cost): Ditto.
6520 (determine_group_iv_cost): Ditto.
6521 (set_autoinc_for_original_candidates): Update all uses.
6522 (find_iv_candidates): Update all uses. Refactor dump information.
6523 (determine_use_iv_costs): Ditto.
6524 (determine_iv_costs): Ditto.
6525 (iv_ca_cand_for_use): Rename to ...
6526 (iv_ca_cand_for_group): ... here. Update all uses.
6527 (iv_ca_add_use, iv_ca_add_group): Ditto.
6528 (iv_ca_set_cp, iv_ca_cost, iv_ca_delta_add): Update all uses.
6529 (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_delta_free): Ditto.
6530 (iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow): Ditto.
6531 (iv_ca_prune, cheaper_cost_with_cand, iv_ca_replace): Ditto.
6532 (try_add_cand_for, try_improve_iv_set, find_optimal_iv_set): Ditto.
6533 (create_new_iv, adjust_iv_update_pos): Ditto.
6534 (rewrite_use_address): Delete.
6535 (rewrite_use_address_1): Rename to ...
6536 (rewrite_use_address): ... here.
6537 (rewrite_use_compare): Update all uses.
6538 (rewrite_use): Delete.
6539 (rewrite_uses): Rename to ...
6540 (rewrite_groups): ... here. Update all uses.
6541 (remove_unused_ivs, free_loop_data): Update all uses.
6542 (tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize_loop): Ditto.
6543
6544 2016-04-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6545
6546 * rtlanal.c (nonzero_bits1): Convert preprocessor check
6547 for WORD_REGISTER_OPERATIONS to runtime check.
6548
6549 2016-04-27 Richard Biener <rguenther@suse.de>
6550
6551 PR ipa/70760
6552 * tree-ssa-structalias.c (find_func_aliases_for_call): Use
6553 aggregate_value_p to determine if a function result is
6554 returned by reference.
6555 (ipa_pta_execute): Functions having their address taken are
6556 not automatically nonlocal.
6557
6558 2016-04-27 Jakub Jelinek <jakub@redhat.com>
6559
6560 PR sanitizer/70683
6561 * tree-core.h (enum operand_equal_flag): Add OEP_NO_HASH_CHECK.
6562 * fold-const.c (operand_equal_p): If flag_checking and
6563 OEP_NO_HASH_CHECK is not set in flag, recurse with OEP_NO_HASH_CHECK
6564 and if it returns non-zero, assert iterative_hash_expr on both
6565 args is the same.
6566
6567 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
6568
6569 * doc/invoke.texi (-frename-registers): Also enabled at -Os.
6570
6571 2016-04-27 Nick Clifton <nickc@redhat.com>
6572
6573 PR middle-end/49889
6574 * varasm.c (merge_weak): Generate an error if an attempt is made
6575 to convert a non-weak static function into a weak, public function.
6576
6577 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6578
6579 * params.def (MAX_PARTITION_SIZE): New param.
6580 * doc/invoke.texi: Document lto-max-partition.
6581
6582 2016-04-27 Richard Biener <rguenther@suse.de>
6583
6584 PR ipa/70785
6585 * tree-ssa-structalias.c (refered_from_nonlocal_fn): New
6586 function cummulating used_from_other_partition, externally_visible
6587 and force_output from aliases.
6588 (refered_from_nonlocal_var): Likewise.
6589 (ipa_pta_execute): Use call_for_symbol_and_aliases to cummulate
6590 node flags properly.
6591
6592 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
6593
6594 * doc/invoke.texi (Warning Options): Add -Wmemset-elt-size.
6595 (-Wmemset-elt-size): New item.
6596
6597 2016-04-27 Eric Botcazou <ebotcazou@adacore.com>
6598
6599 PR ada/70759
6600 * stor-layout.h (internal_reference_types): Delete.
6601 * stor-layout.c (reference_types_internal): Likewise.
6602 (internal_reference_types): Likewise.
6603 (layout_type) <REFERENCE_TYPE>: Adjust.
6604
6605 2016-04-27 Jakub Jelinek <jakub@redhat.com>
6606
6607 PR sanitizer/70683
6608 * tree.h (inchash::add_expr): Add FLAGS argument.
6609 * tree.c (inchash::add_expr): Likewise. If not OEP_ADDRESS_OF,
6610 use STRIP_NOPS first. For INTEGER_CST assert not OEP_ADDRESS_OF.
6611 For REAL_CST and !HONOR_SIGNED_ZEROS (t) hash +/- 0 the same.
6612 Formatting fix. Adjust recursive calls. For tcc_comparison,
6613 if swap_tree_comparison (code) is smaller than code, hash that
6614 and arguments in the other order. Hash CONVERT_EXPR the same
6615 as NOP_EXPR. For OEP_ADDRESS_OF hash MEM_REF with 0 offset
6616 of ADDR_EXPR of decl as the decl itself. Add or remove
6617 OEP_ADDRESS_OF from recursive flags as needed. For
6618 FMA_EXPR, WIDEN_MULT_{PLUS,MINUS}_EXPR hash the first two
6619 operands commutatively and only the third one normally.
6620 For internal CALL_EXPR hash in CALL_EXPR_IFN.
6621
6622 2016-04-27 Sebastian Huber <sebastian.huber@embedded-brains.de>
6623
6624 * config/rtems.h (LIB_SPEC): Add -latomic.
6625
6626 2016-04-27 Joel Sherrill <joel@rtems.org>
6627
6628 * config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
6629 xilink.ld and flags not relevant to RTEMS.
6630
6631 2016-04-26 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
6632
6633 * toplev.c (backend_init_target): Avoid calling init_reload when using
6634 LRA.
6635
6636 2016-04-26 Jakub Jelinek <jakub@redhat.com>
6637
6638 * reorg.c (try_merge_delay_insns): Declare i and j inside the
6639 for loops rather than one for the whole function.
6640
6641 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
6642
6643 * match.pd (X + CST CMP X): New transformation.
6644
6645 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
6646
6647 * genmatch.c (write_predicate): Add ATTRIBUTE_UNUSED.
6648 * fold-const.c (fold_binary_loc): Remove 2 transformations
6649 superseded by match.pd.
6650 * match.pd (x+x -> x*2): Generalize to integers.
6651
6652 2016-04-26 Bernd Schmidt <bschmidt@redhat.com>
6653
6654 * config/i386/i386.md (operation on memory peephole): Duplicate an
6655 existing peephole and adapt it to match lea rather than an operation
6656 that clobbers CC.
6657
6658 PR rtl-optimization/57193
6659 * opts.c (default_options_table): Add OPT_frename_registers at -O2
6660 and above.
6661 * doc/invoke.texi (-frename-registers, -O2): Update documentation.
6662
6663 2016-04-26 Bin Cheng <bin.cheng@arm.com>
6664
6665 * tree-if-conv.c (any_pred_load_store): New static variable.
6666 (if_convertible_gimple_assign_stmt_p): Remove parameter. Use
6667 any_pred_load_store instead of and_mask_load_store.
6668 (if_convertible_stmt_p, if_convertible_loop_p_1): Ditto.
6669 (if_convertible_loop_p, insert_gimplified_predicates): Ditto.
6670 (combine_blocks, tree_if_conversion): Ditto.
6671
6672 2016-04-26 Bin Cheng <bin.cheng@arm.com>
6673
6674 PR tree-optimization/70771
6675 PR tree-optimization/70775
6676 * tree-if-conv.c (if_convertible_phi_p): Remove check on special
6677 virtual PHI nodes. Delete parameter.
6678 (if_convertible_loop_p_1): Delete argument to above function.
6679 (predicate_all_scalar_phis): Delete code handling single-argument
6680 PHIs.
6681 (tree_if_conversion): Mark and update virtual SSA.
6682
6683 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6684
6685 PR target/61821
6686 * config/i386/i386.c (LARGECOMM_SECTION_ASM_OP): Define default.
6687 (x86_elf_aligned_common): Rename to ...
6688 (x86_elf_aligned_decl_common): ... this.
6689 Add decl arg. Switch to .lbss for largecomm object. Use
6690 LARGECOMM_SECTION_ASM_OP.
6691 * config/i386/i386-protos.h (x86_elf_aligned_common): Reflect
6692 renaming.
6693 * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_COMMON): Rename to ...
6694 (ASM_OUTPUT_ALIGNED_DECL_COMMON): ... this.
6695 Pass new decl arg.
6696 * config/i386/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
6697 [!USE_GAS] (LARGECOMM_SECTION_ASM_OP): Define.
6698
6699 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6700
6701 PR target/59407
6702 * config/i386/i386.c (SECTION_LARGE): Define.
6703 (x86_64_elf_select_section): Set it for large data/bss sections.
6704 Only clear SECTION_WRITE for .lrodata.
6705 (x86_64_elf_section_type_flags): Set SECTION_LARGE for large
6706 data/bss sections.
6707 * config/i386/sol2.h (MACH_DEP_SECTION_ASM_FLAG): Define.
6708 * varasm.c (default_elf_asm_named_section): Grow flagchars.
6709 [MACH_DEP_SECTION_ASM_FLAG] Emit MACH_DEP_SECTION_ASM_FLAG for
6710 SECTION_MACH_DEP.
6711 * doc/tm.texi.in (Sections, MACH_DEP_SECTION_ASM_FLAG): Describe.
6712 * doc/tm.texi: Regenerate.
6713
6714 2016-04-26 Jakub Jelinek <jakub@redhat.com>
6715
6716 PR bootstrap/70704
6717 * configure.ac (--enable-checking): Document extra flag, for
6718 non-release builds default to --enable-checking=yes,extra.
6719 If misc checking and extra checking, define CHECKING_P to 2 instead
6720 of 1.
6721 * common.opt (fchecking=): Add.
6722 * doc/invoke.texi (-fchecking=): Document.
6723 * doc/install.texi: Document --enable-checking changes.
6724 * configure: Regenerated.
6725 * config.in: Regenerated.
6726
6727 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
6728
6729 * config/i386/i386.md (*movxi_internal_avx512f): Use insn type
6730 attribute instead of which_alternative.
6731 * config/i386/sse.md (*mov<mode>_internal): Ditto.
6732 Use EXT_REX_SSE_REG_P where appropriate.
6733
6734 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
6735
6736 * config/i386/predicates.md (const0_operand): Do not match
6737 const_wide_int code.
6738 (const1_operand): Ditto.
6739
6740 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
6741
6742 * config/i386/i386.md (*movoi_internal_avx): Set mode attribute to XI
6743 for SSE constm1 operands and TARGET_AVX512VL.
6744 (*movti_internal): Ditto.
6745 (*mov<mode>_or): Use constm1_operand predicate.
6746 * config/i386/sse.md (*mov<mode>_internal): Set mode attribute to XI
6747 for SSE vector_all_ones operands and TARGET_AVX512VL.
6748 * config/i386/predicates.md (constm1_operand): New predicate.
6749 * config/i386/i386.c (standard_sse_constant_opcode): Simplify
6750 emission of constant -1 load.
6751
6752 2016-04-25 Jason Merrill <jason@redhat.com>
6753
6754 * gdbinit.in: Skip is-a.h.
6755
6756 * attribs.c (register_scoped_attributes): Fix logic.
6757 * attribs.h: Declare register_scoped_attributes.
6758
6759 2016-04-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6760
6761 * config/rs6000/rs6000-builtin.def: Correct pasto error for
6762 stxvd2x and stxvw4x built-in functions.
6763
6764 2016-04-25 DJ Delorie <dj@redhat.com>
6765
6766 * config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
6767 (ashrhi3): Likewise.
6768 (lshrhi3): Likewise.
6769
6770 2016-04-25 Richard Biener <rguenther@suse.de>
6771
6772 PR tree-optimization/70780
6773 * tree-ssa-pre.c (compute_antic_aux): Also return true if the block
6774 wasn't visited yet.
6775 (compute_antic): Mark blocks with abnormal preds as visited as
6776 they have a final empty antic-in solution already.
6777
6778 2016-04-25 Michael Collison <michael.collison@linaro.org>
6779
6780 * ChangeLog(2016-04-25): Fix ChangeLog formatting.
6781
6782 2016-04-25 Michael Collison <michael.collison@linaro.org>
6783
6784 * config/arm/neon.md (widen_<us>sum<mode>): New patterns where
6785 mode is VQI to improve mixed mode vectorization.
6786 * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3): New
6787 define_insn to match low half of signed vaddw.
6788 * config/arm/neon.md (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): New
6789 define_insn to match high half of signed vaddw.
6790 * config/arm/neon.md (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): New
6791 define_insn to match low half of unsigned vaddw.
6792 * config/arm/neon.md (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): New
6793 define_insn to match high half of unsigned vaddw.
6794 * config/arm/arm.c (arm_simd_vect_par_cnst_half): New function.
6795 (arm_simd_check_vect_par_cnst_half_p): Likewise.
6796 * config/arm/arm-protos.h (arm_simd_vect_par_cnst_half): Prototype
6797 for new function.
6798 (arm_simd_check_vect_par_cnst_half_p): Likewise.
6799 * config/arm/predicates.md (vect_par_constant_high): Support
6800 big endian and simplify by calling
6801 arm_simd_check_vect_par_cnst_half
6802 (vect_par_constant_low): Likewise.
6803
6804 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
6805
6806 * config/i386/i386.md (*lea<mode>_general_4): Use const_0_to_3_operand
6807 predicate for operand 2.
6808
6809 2016-04-24 Uros Bizjak <ubizjak@gmail.com>
6810 H.J. Lu <hongjiu.lu@intel.com>
6811
6812 * config/i386/i386-protos.h (standard_sse_constant_p): Add
6813 machine_mode argument.
6814 * config/i386/i386.c (standard_sse_constant_p): Return 2 for
6815 constm1_rtx operands. For VOIDmode constants, get mode from
6816 pred_mode. Check mode size if the mode is supported by ABI.
6817 (standard_sse_constant_opcode): Do not use standard_constant_p.
6818 Strictly check ABI support for all-ones operands.
6819 (ix86_legitimate_constant_p): Handle TImode, OImode and XImode
6820 immediates. Update calls to standard_sse_constant_p.
6821 (ix86_expand_vector_move): Update calls to standard_sse_constant_p.
6822 (ix86_rtx_costs): Ditto.
6823 * config/i386/i386.md (*movxi_internal_avx512f): Use
6824 nonimmediate_or_sse_const_operand instead of vector_move_operand.
6825 Use (v,BC) alternative instead of (v,C). Use register_operand
6826 checks instead of MEM_P.
6827 (*movoi_internal_avx): Use nonimmediate_or_sse_const_operand instead
6828 of vector_move_operand. Add (v,BC) alternative and corresponding avx2
6829 isa attribute. Use register_operand checks instead of MEM_P.
6830 (*movti_internal): Use nonimmediate_or_sse_const_operand for
6831 TARGET_SSE. Improve TARGET_SSE insn constraint. Add (v,BC)
6832 alternative and corresponding sse2 isa attribute.
6833 (*movtf_internal, *movdf_internal, *movsf_interal): Update calls
6834 to standard_sse_constant_p.
6835 (FP constant splitters): Ditto.
6836 * config/i386/constraints.md (BC): Do not use standard_sse_constant_p.
6837 (C): Ditto.
6838 * config/i386/predicates.md (constm1_operand): Remove.
6839 (nonimmediate_or_sse_const_operand): Rewrite using RTX.
6840 * config/i386/sse.md (*<avx512>_cvtmask2<ssemodesuffix><mode>): Use
6841 vector_all_ones_operand instead of constm1_operand.
6842
6843 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6844
6845 * print-rtl.c (print_rtx_insn_vec): New function.
6846 * print-rtl.h: New prototype.
6847 * store-motion.c (struct st_expr): Make avail_stores a vector.
6848 (st_expr_entry): Adjust.
6849 (free_st_expr_entry): Likewise.
6850 (print_store_motion_mems): Likewise.
6851 (find_moveable_store): Likewise.
6852 (compute_store_table): Likewise.
6853 (delete_store): Likewise.
6854 (build_store_vectors): Likewise.
6855
6856 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6857
6858 * reorg.c (try_merge_delay_insns): Make merged_insns a vector.
6859
6860 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6861
6862 * vec.h (vec_safe_contains): New function.
6863 (vec::contains): Likewise.
6864 (vec::begin): Likewise.
6865 (vec::end): Likewise.
6866
6867 2016-04-23 Jakub Jelinek <jakub@redhat.com>
6868
6869 PR sanitizer/70712
6870 * cfgexpand.c (expand_stack_vars): Fix typo.
6871
6872 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
6873
6874 * system.h (list, map, set, vector): Include conditionally.
6875 * auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define.
6876 * graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define.
6877 * ipa-icf.c (INCLUDE_LIST): Define.
6878 * config/aarch64/cortex-a57-fma-steering.c (INCLUDE_LIST): Define.
6879 * config/sh/sh.c (INCLUDE_VECTOR): Define.
6880 * config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define.
6881 (INCLUDE_LIST, INCLUDE_VECTOR): Define.
6882 * cp/logic.cc (INCLUDE_LIST): Define.
6883 * fortran/trans-common.c (INCLUDE_MAP): Define.
6884
6885 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
6886
6887 * auto-profile.c: Remove <string.h> include.
6888 * ipa-icf-gimple.c: Remove <list> include.
6889 * diagnostic.c: Remove <new> include.
6890 * genmatch.c: Likewise.
6891 * pretty-print.c: Likewise.
6892 * toplev.c: Likewise
6893 * c/c-objc-common.c: Likewise.
6894 * cp/error.c: Likewise.
6895 * fortran/error.c: Likewise.
6896
6897 2016-04-22 Richard Biener <rguenther@suse.de>
6898
6899 * lto-streamer-in.c (input_ssa_names): Do not allocate
6900 GIMPLE_NOP for all SSA names.
6901 * lto-streamer-out.c (output_ssa_names): Do not output
6902 SSA names that should have been released.
6903
6904 2016-04-22 Richard Biener <rguenther@suse.de>
6905
6906 PR tree-optimization/70740
6907 * tree-ssa-phiprop.c (propagate_with_phi): Handle inserted
6908 VDEF.
6909
6910 2016-04-21 H.J. Lu <hongjiu.lu@intel.com>
6911
6912 PR target/70750
6913 * config/i386/predicates.md (call_insn_operand): Replace
6914 sibcall_memory_operand with memory_operand.
6915
6916 2016-04-21 Patrick Palka <ppalka@gcc.gnu.org>
6917
6918 * tree-vrp.c (register_edge_assert_for_2): Remove redundant
6919 has_single_use() tests.
6920 (register_edge_assert_for_1): Likewise.
6921 (find_assert_locations_1): Check the liveness bitmap instead of
6922 checking has_single_use().
6923
6924 2016-04-21 Kirill Yukhin <kirill.yukhin@intel.com>
6925
6926 PR target/70728
6927 * config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
6928 Extract AVX-512BW constraint from AVX.
6929
6930 2016-04-21 Richard Biener <rguenther@suse.de>
6931
6932 PR tree-optimization/70725
6933 * tree-if-conv.c (if_convertible_phi_p): Adjust guard
6934 for phi_convertible_by_degenerating_args.
6935 (predicate_all_scalar_phis): Handle single-argument PHIs.
6936
6937 2016-04-21 Richard Biener <rguenther@suse.de>
6938
6939 PR middle-end/70747
6940 * fold-const.c (fold_comparison): Return properly typed
6941 constant boolean.
6942
6943 2016-04-21 Bin Cheng <bin.cheng@arm.com>
6944
6945 PR tree-optimization/70715
6946 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
6947 after expanding BASE using expand_simple_operations.
6948
6949 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
6950
6951 * match.pd (min(-x, -y), max(-x, -y), min(~x, ~y), max(~x, ~y)):
6952 New transformations.
6953
6954 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
6955
6956 * match.pd (min(int_max, x), max(int_min, x)): New transformations.
6957
6958 2016-04-20 Jan Hubicka <jh@suse.cz>
6959
6960 * ipa-inline.c (can_inline_edge_p): Pass caller info to
6961 ultiimate_alias_target.
6962 (update_callee_keys): Likewise.
6963 (lookup_recursive_calls): Likewise.
6964 (speculation_useful_p): Likewise.
6965
6966 2016-04-20 Jan Hubicka <jh@suse.cz>
6967
6968 PR ipa/70018
6969 * cgraph.c (cgraph_set_nothrow_flag_1): Rename to ...
6970 (set_nothrow_flag_1): ... this; handle interposition correctly;
6971 recurse on aliases and thunks.
6972 (cgraph_node::set_nothrow_flag): New.
6973 * ipa-pure-const.c (ignore_edge_for_nothrow): Ignore calls to
6974 functions compiled with non-call exceptions that binds to current
6975 def.
6976 (propagate_nothrow): Be safe WRT interposition.
6977 * cgraph.h (set_nothrow_flag): Update prototype.
6978
6979 2016-04-18 Jan Hubicka <jh@suse.cz>
6980
6981 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
6982 max_loop_iterations_int.
6983 (tree_unswitch_outer_loop): Likewise.
6984
6985 2016-04-20 Bin Cheng <bin.cheng@arm.com>
6986
6987 PR tree-optimization/69489
6988 * tree-if-conv.c (phi_convertible_by_degenerating_args): New.
6989 (if_convertible_phi_p): Call phi_convertible_by_degenerating_args.
6990 Revise dump message.
6991 (if_convertible_bb_p): Remove check on edge count of basic block's
6992 predecessors.
6993
6994 2016-04-20 Bin Cheng <bin.cheng@arm.com>
6995
6996 PR tree-optimization/56625
6997 PR tree-optimization/69489
6998 * tree-data-ref.h (DR_INNERMOST): New macro.
6999 * tree-if-conv.c (innermost_loop_behavior_hash): New class for
7000 hashing struct innermost_loop_behavior.
7001 (ref_DR_map): Remove.
7002 (innermost_DR_map): New map.
7003 (baseref_DR_map): Revise comment.
7004 (hash_memrefs_baserefs_and_store_DRs_read_written_info): Store DR
7005 to innermost_DR_map accroding to its innermost loop behavior.
7006 (ifcvt_memrefs_wont_trap): Get DR from innermost_DR_map according
7007 to its innermost loop behavior.
7008 (if_convertible_loop_p_1): Remove intialization for ref_DR_map.
7009 Add initialization for innermost_DR_map. Record memory reference
7010 in DR_BASE_ADDRESS if the reference is compound one or it doesn't
7011 have innermost loop behavior.
7012 (if_convertible_loop_p): Remove release for ref_DR_map. Release
7013 innermost_DR_map.
7014
7015 2016-04-20 Uros Bizjak <ubizjak@gmail.com>
7016
7017 * config/i386/i386.md (*lea<mode>_general_1): Rename from
7018 *lea_general_1. Use explicit SWI12 mode interator.
7019 (*lea<mode>_general_2): Rename from *lea_general_2.
7020 Use explicit SWI12 mode interator.
7021 (*lea<mode>_general_3): Rename from *lea_general_3.
7022 Use explicit SWI12 mode interator.
7023 (*lea<SWI12:mode>_general_4): Split from *lea_general_4.
7024 Use explicit SWI12 mode interator.
7025 (*lea<SWI48:mode>_general_4): Split from *lea_general_4.
7026 Use explicit SWI48 mode interator.
7027
7028 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
7029
7030 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
7031 Short-cut unaligned load and store cases. Handle all integer
7032 vector modes.
7033 (ix86_expand_vector_move_misalign): Short-cut unaligned load
7034 and store cases. Call ix86_avx256_split_vector_move_misalign
7035 directly without checking mode class.
7036
7037 2016-04-20 Andrew Pinski <apinski@cavium.com>
7038 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7039
7040 PR target/64971
7041 * config/aarch64/aarch64.md (sibcall): Force call
7042 address to be DImode for ILP32.
7043 (sibcall_value): Likewise.
7044
7045 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
7046
7047 * doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.
7048
7049 2016-04-20 Richard Biener <rguenther@suse.de>
7050
7051 * gimple-match.h (maybe_build_generic_op): Adjust prototype.
7052 * gimple-match-head.c (maybe_build_generic_op): Pass all ops
7053 by reference, clear op1 and op2 when GENERICizing BIT_FIELD_REF.
7054 (maybe_push_res_to_seq): Adjust.
7055 * gimple-fold.c (maybe_build_generic_op): Likewise.
7056
7057 2016-04-20 Marek Polacek <polacek@redhat.com>
7058
7059 * tree-if-conv.c (is_false_predicate): For NULL_TREE return false
7060 rather than true.
7061
7062 2016-04-20 Ilya Enkovich <ilya.enkovich@intel.com>
7063
7064 * config/i386/sse.md (vec_unpacks_lo_hi): Always
7065 use kmovw to support AVX512F target.
7066
7067 2016-04-20 Bin Cheng <bin.cheng@arm.com>
7068
7069 * tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
7070
7071 2016-04-20 Marek Polacek <polacek@redhat.com>
7072
7073 PR tree-optimization/70725
7074 * tree-if-conv.c (is_false_predicate): New function.
7075 (predicate_mem_writes): Use it.
7076
7077 2016-04-20 Richard Biener <rguenther@suse.de>
7078
7079 PR tree-optimization/70726
7080 * tree-vect-stmts.c (vectorizable_shift): Do not use scalar
7081 shift amounts from a pattern stmt operand.
7082
7083 2016-04-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7084
7085 PR target/70674
7086 * config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new
7087 stack_restore_from_fpr pattern when restoring r15.
7088 (s390_optimize_prologue): Strip away the memory barrier in the
7089 parallel when trying to get rid of restore insns.
7090 * config/s390/s390.md ("stack_restore_from_fpr"): New insn
7091 definition for loading the stack pointer from an FPR. Compared to
7092 the normal move insn this pattern includes a full memory barrier.
7093
7094 2016-04-19 Jakub Jelinek <jakub@redhat.com>
7095
7096 PR middle-end/70680
7097 * gimplify.c (gimplify_omp_for): Call omp_notice_variable for
7098 implicitly linear or lastprivate iterator on the outer context.
7099
7100 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
7101
7102 * config/i386/i386.c (ix86_legitimate_combined_insn): Remove
7103 alignment check.
7104 * config/i386/i386.md (ssememalign): Removed.
7105 * config/i386/sse.md: Remove ssememalign attribute from patterns.
7106
7107 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
7108
7109 PR target/69201
7110 * config/i386/avx512bwintrin.h (_mm512_mask_loadu_epi16): Pass
7111 const short * to __builtin_ia32_loaddquhi512_mask.
7112 (_mm512_maskz_loadu_epi16): Likewise.
7113 (_mm512_mask_storeu_epi16): Pass short * to
7114 __builtin_ia32_storedquhi512_mask.
7115 (_mm512_mask_loadu_epi8): Pass const char * to
7116 __builtin_ia32_loaddquqi512_mask.
7117 (_mm512_maskz_loadu_epi8): Likewise.
7118 (_mm512_mask_storeu_epi8): Pass char * to
7119 __builtin_ia32_storedquqi512_mask.
7120 * config/i386/avx512fintrin.h (_mm512_loadu_pd): Pass
7121 const double * to __builtin_ia32_loadupd512_mask.
7122 (_mm512_mask_loadu_pd): Likewise.
7123 (_mm512_maskz_loadu_pd): Likewise.
7124 (_mm512_storeu_pd): Pass double * to
7125 __builtin_ia32_storeupd512_mask.
7126 (_mm512_mask_storeu_pd): Likewise.
7127 (_mm512_loadu_ps): Pass const float * to
7128 __builtin_ia32_loadups512_mask.
7129 (_mm512_mask_loadu_ps): Likewise.
7130 (_mm512_maskz_loadu_ps): Likewise.
7131 (_mm512_storeu_ps): Pass float * to
7132 __builtin_ia32_storeups512_mask.
7133 (_mm512_mask_storeu_ps): Likewise.
7134 (_mm512_mask_loadu_epi64): Pass const long long * to
7135 __builtin_ia32_loaddqudi512_mask.
7136 (_mm512_maskz_loadu_epi64): Likewise.
7137 (_mm512_mask_storeu_epi64): Pass long long *
7138 to __builtin_ia32_storedqudi512_mask.
7139 (_mm512_loadu_si512): Pass const int * to
7140 __builtin_ia32_loaddqusi512_mask.
7141 (_mm512_mask_loadu_epi32): Likewise.
7142 (_mm512_maskz_loadu_epi32): Likewise.
7143 (_mm512_storeu_si512): Pass int * to
7144 __builtin_ia32_storedqusi512_mask.
7145 (_mm512_mask_storeu_epi32): Likewise.
7146 * config/i386/avx512vlbwintrin.h (_mm256_mask_storeu_epi8): Pass
7147 char * to __builtin_ia32_storedquqi256_mask.
7148 (_mm_mask_storeu_epi8): Likewise.
7149 (_mm256_mask_loadu_epi16): Pass const short * to
7150 __builtin_ia32_loaddquhi256_mask.
7151 (_mm256_maskz_loadu_epi16): Likewise.
7152 (_mm_mask_loadu_epi16): Pass const short * to
7153 __builtin_ia32_loaddquhi128_mask.
7154 (_mm_maskz_loadu_epi16): Likewise.
7155 (_mm256_mask_loadu_epi8): Pass const char * to
7156 __builtin_ia32_loaddquqi256_mask.
7157 (_mm256_maskz_loadu_epi8): Likewise.
7158 (_mm_mask_loadu_epi8): Pass const char * to
7159 __builtin_ia32_loaddquqi128_mask.
7160 (_mm_maskz_loadu_epi8): Likewise.
7161 (_mm256_mask_storeu_epi16): Pass short * to.
7162 __builtin_ia32_storedquhi256_mask.
7163 (_mm_mask_storeu_epi16): Pass short * to.
7164 __builtin_ia32_storedquhi128_mask.
7165 * config/i386/avx512vlintrin.h (_mm256_mask_loadu_pd): Pass
7166 const double * to __builtin_ia32_loadupd256_mask.
7167 (_mm256_maskz_loadu_pd): Likewise.
7168 (_mm_mask_loadu_pd): Pass onst double * to
7169 __builtin_ia32_loadupd128_mask.
7170 (_mm_maskz_loadu_pd): Likewise.
7171 (_mm256_mask_storeu_pd): Pass double * to
7172 __builtin_ia32_storeupd256_mask.
7173 (_mm_mask_storeu_pd): Pass double * to
7174 __builtin_ia32_storeupd128_mask.
7175 (_mm256_mask_loadu_ps): Pass const float * to
7176 __builtin_ia32_loadups256_mask.
7177 (_mm256_maskz_loadu_ps): Likewise.
7178 (_mm_mask_loadu_ps): Pass const float * to
7179 __builtin_ia32_loadups128_mask.
7180 (_mm_maskz_loadu_ps): Likewise.
7181 (_mm256_mask_storeu_ps): Pass float * to
7182 __builtin_ia32_storeups256_mask.
7183 (_mm_mask_storeu_ps): ass float * to
7184 __builtin_ia32_storeups128_mask.
7185 (_mm256_mask_loadu_epi64): Pass const long long * to
7186 __builtin_ia32_loaddqudi256_mask.
7187 (_mm256_maskz_loadu_epi64): Likewise.
7188 (_mm_mask_loadu_epi64): Pass const long long * to
7189 __builtin_ia32_loaddqudi128_mask.
7190 (_mm_maskz_loadu_epi64): Likewise.
7191 (_mm256_mask_storeu_epi64): Pass long long * to
7192 __builtin_ia32_storedqudi256_mask.
7193 (_mm_mask_storeu_epi64): Pass long long * to
7194 __builtin_ia32_storedqudi128_mask.
7195 (_mm256_mask_loadu_epi32): Pass const int * to
7196 __builtin_ia32_loaddqusi256_mask.
7197 (_mm256_maskz_loadu_epi32): Likewise.
7198 (_mm_mask_loadu_epi32): Pass const int * to
7199 __builtin_ia32_loaddqusi128_mask.
7200 (_mm_maskz_loadu_epi32): Likewise.
7201 (_mm256_mask_storeu_epi32): Pass int * to
7202 __builtin_ia32_storedqusi256_mask.
7203 (_mm_mask_storeu_epi32): Pass int * to
7204 __builtin_ia32_storedqusi128_mask.
7205 * config/i386/i386-builtin-types.def (PCSHORT): New.
7206 (PINT64): Likewise.
7207 (V64QI_FTYPE_PCCHAR_V64QI_UDI): Likewise.
7208 (V32HI_FTYPE_PCSHORT_V32HI_USI): Likewise.
7209 (V32QI_FTYPE_PCCHAR_V32QI_USI): Likewise.
7210 (V16SF_FTYPE_PCFLOAT_V16SF_UHI): Likewise.
7211 (V8DF_FTYPE_PCDOUBLE_V8DF_UQI): Likewise.
7212 (V16SI_FTYPE_PCINT_V16SI_UHI): Likewise.
7213 (V16HI_FTYPE_PCSHORT_V16HI_UHI): Likewise.
7214 (V16QI_FTYPE_PCCHAR_V16QI_UHI): Likewise.
7215 (V8SF_FTYPE_PCFLOAT_V8SF_UQI): Likewise.
7216 (V8DI_FTYPE_PCINT64_V8DI_UQI): Likewise.
7217 (V8SI_FTYPE_PCINT_V8SI_UQI): Likewise.
7218 (V8HI_FTYPE_PCSHORT_V8HI_UQI): Likewise.
7219 (V4DF_FTYPE_PCDOUBLE_V4DF_UQI): Likewise.
7220 (V4SF_FTYPE_PCFLOAT_V4SF_UQI): Likewise.
7221 (V4DI_FTYPE_PCINT64_V4DI_UQI): Likewise.
7222 (V4SI_FTYPE_PCINT_V4SI_UQI): Likewise.
7223 (V2DF_FTYPE_PCDOUBLE_V2DF_UQI): Likewise.
7224 (V2DI_FTYPE_PCINT64_V2DI_UQI): Likewise.
7225 (VOID_FTYPE_PDOUBLE_V8DF_UQI): Likewise.
7226 (VOID_FTYPE_PDOUBLE_V4DF_UQI): Likewise.
7227 (VOID_FTYPE_PDOUBLE_V2DF_UQI): Likewise.
7228 (VOID_FTYPE_PFLOAT_V16SF_UHI): Likewise.
7229 (VOID_FTYPE_PFLOAT_V8SF_UQI): Likewise.
7230 (VOID_FTYPE_PFLOAT_V4SF_UQI): Likewise.
7231 (VOID_FTYPE_PINT64_V8DI_UQI): Likewise.
7232 (VOID_FTYPE_PINT64_V4DI_UQI): Likewise.
7233 (VOID_FTYPE_PINT64_V2DI_UQI): Likewise.
7234 (VOID_FTYPE_PINT_V16SI_UHI): Likewise.
7235 (VOID_FTYPE_PINT_V8SI_UHI): Likewise.
7236 (VOID_FTYPE_PINT_V4SI_UHI): Likewise.
7237 (VOID_FTYPE_PSHORT_V32HI_USI): Likewise.
7238 (VOID_FTYPE_PSHORT_V16HI_UHI): Likewise.
7239 (VOID_FTYPE_PSHORT_V8HI_UQI): Likewise.
7240 (VOID_FTYPE_PCHAR_V64QI_UDI): Likewise.
7241 (VOID_FTYPE_PCHAR_V32QI_USI): Likewise.
7242 (VOID_FTYPE_PCHAR_V16QI_UHI): Likewise.
7243 (V64QI_FTYPE_PCV64QI_V64QI_UDI): Removed.
7244 (V32HI_FTYPE_PCV32HI_V32HI_USI): Likewise.
7245 (V32QI_FTYPE_PCV32QI_V32QI_USI): Likewise.
7246 (V16HI_FTYPE_PCV16HI_V16HI_UHI): Likewise.
7247 (V16QI_FTYPE_PCV16QI_V16QI_UHI): Likewise.
7248 (V8HI_FTYPE_PCV8HI_V8HI_UQI): Likewise.
7249 (VOID_FTYPE_PV32HI_V32HI_USI): Likewise.
7250 (VOID_FTYPE_PV16HI_V16HI_UHI): Likewise.
7251 (VOID_FTYPE_PV8HI_V8HI_UQI): Likewise.
7252 (VOID_FTYPE_PV64QI_V64QI_UDI): Likewise.
7253 (VOID_FTYPE_PV32QI_V32QI_USI): Likewise.
7254 (VOID_FTYPE_PV16QI_V16QI_UHI): Likewise.
7255 * config/i386/i386.c (ix86_emit_save_reg_using_mov): Don't
7256 use UNSPEC_STOREU.
7257 (ix86_emit_restore_sse_regs_using_mov): Don't use UNSPEC_LOADU.
7258 (ix86_avx256_split_vector_move_misalign): Don't use unaligned
7259 load nor store.
7260 (ix86_expand_vector_move_misalign): Likewise.
7261 (bdesc_special_args): Use CODE_FOR_movvNXY_internal and pointer
7262 to scalar function prototype for unaligned load/store builtins.
7263 (ix86_expand_special_args_builtin): Updated.
7264 * config/i386/sse.md (UNSPEC_LOADU): Removed.
7265 (UNSPEC_STOREU): Likewise.
7266 (VI_ULOADSTORE_BW_AVX512VL): Likewise.
7267 (VI_ULOADSTORE_F_AVX512VL): Likewise.
7268 (ssescalarsize): Handle V4TI, V2TI and V1TI.
7269 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
7270 (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
7271 (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Likewise.
7272 (<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask): Likewise.
7273 (<sse2_avx_avx512f>_loaddqu<mode><mask_name>): Likewise.
7274 (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"): Likewise.
7275 (sse2_avx_avx512f>_storedqu<mode>): Likewise.
7276 (<avx512>_storedqu<mode>_mask): Likewise.
7277 (*sse4_2_pcmpestr_unaligned): Likewise.
7278 (*sse4_2_pcmpistr_unaligned): Likewise.
7279 (*mov<mode>_internal): Renamed to ...
7280 (mov<mode>_internal): This. Remove check of AVX and IAMCU on
7281 misaligned operand. Replace vmovdqu64 with vmovdqu<ssescalarsize>.
7282 (movsd/movhpd to movupd peephole): Don't use UNSPEC_LOADU.
7283 (movlpd/movhpd to movupd peephole): Don't use UNSPEC_STOREU.
7284
7285 2016-04-19 Richard Biener <rguenther@suse.de>
7286
7287 PR tree-optimization/70171
7288 * tree-ssa-phiprop.c: Include stor-layout.h.
7289 (phiprop_insert_phi): Handle the aggregate copy case.
7290 (propagate_with_phi): Likewise.
7291
7292 2016-04-19 Uros Bizjak <ubizjak@gmail.com>
7293
7294 * config/i386/i386.c (ix86_decompose_address): Use lowpart_subreg
7295 instead of simplify_gen_subreg (... , 0).
7296 (ix86_delegitimize_address): Ditto.
7297 (ix86_split_divmod): Ditto.
7298 (ix86_split_copysign_const): Ditto.
7299 (ix86_split_copysign_var): Ditto.
7300 (ix86_expand_args_builtin): Ditto.
7301 (ix86_expand_round_builtin): Ditto.
7302 (ix86_expand_special_args_builtin): Ditto.
7303 * config/i386/i386.md (TARGET_USE_VECTOR_FP_CONVERTS splitters): Ditto.
7304 (TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters and peephole2s): Ditto.
7305 (udivmodqi4): Ditto.
7306 (absneg splitters): Ditto.
7307 (*jcc_bt<mode>_1): Ditto.
7308
7309 2016-04-19 Richard Biener <rguenther@suse.de>
7310
7311 PR tree-optimization/70724
7312 * tree-ssa-sccvn.c (scc_vn_restore_ssa_info): Split SSA info
7313 restoring out from ...
7314 (free_scc_vn): ... here.
7315 * tree-ssa-sccvn.h (scc_vn_restore_ssa_info): Declare.
7316 * tres-ssa-pre.c (pass_pre::execute): Restore SSA info before
7317 tail merging.
7318 (pass_fre::execute): Restore SSA info.
7319
7320 2016-04-19 Richard Biener <rguenther@suse.de>
7321
7322 * gimple-walk.h (struct walk_stmt_info): Add stmt member.
7323 * gimple-walk.c (walk_gimple_op): Initialize it.
7324 (walk_gimple_asm): Set wi->is_lhs before each callback invocation.
7325 * tree-inline.c (remap_gimple_op_r): Set SSA_NAME_DEF_STMT when
7326 remapping SSA names of defs.
7327 (copy_bb): Remove walk over all SSA defs and SSA_NAME_DEF_STMT
7328 adjustment.
7329
7330 2016-04-18 Vladimir Makarov <vmakarov@redhat.com>
7331
7332 PR middle-end/70689
7333 * lra-constraints.c (equiv_substition_p): New.
7334 (process_alt_operands): Use it.
7335 (swap_operands): Swap it.
7336 (curr_insn_transform): Update it.
7337
7338 2016-04-18 Michael Matz <matz@suse.de>
7339
7340 * tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount.
7341 (SET_TYPE_ALIGN, SET_DECL_ALIGN): New.
7342 * tree-core.h (tree_type_common.align): Use bit-field.
7343 (tree_type_common.spare): New.
7344 (tree_decl_common.off_align): Make smaller.
7345 (tree_decl_common.align): Use bit-field.
7346
7347 * expr.c (expand_expr_addr_expr_1): Use SET_TYPE_ALIGN.
7348 * omp-low.c (install_var_field): Use SET_DECL_ALIGN.
7349 (scan_sharing_clauses): Ditto.
7350 (finish_taskreg_scan): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
7351 (omp_finish_file): Ditto.
7352 * stor-layout.c (do_type_align): Use SET_DECL_ALIGN.
7353 (layout_decl): Ditto.
7354 (relayout_decl): Ditto.
7355 (finalize_record_size): Use SET_TYPE_ALIGN.
7356 (finalize_type_size): Ditto.
7357 (finish_builtin_struct): Ditto.
7358 (layout_type): Ditto.
7359 (initialize_sizetypes): Ditto.
7360 * targhooks.c (std_gimplify_va_arg_expr): Use SET_TYPE_ALIGN.
7361 * tree-nested.c (insert_field_into_struct): Use SET_TYPE_ALIGN.
7362 (lookup_field_for_decl): Use SET_DECL_ALIGN.
7363 (get_chain_field): Ditto.
7364 (get_trampoline_type): Ditto.
7365 (get_nl_goto_field): Ditto.
7366 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
7367 SET_DECL_ALIGN.
7368 (unpack_ts_type_common_value_fields): Use SET_TYPE_ALIGN.
7369 * gimple-expr.c (copy_var_decl): Use SET_DECL_ALIGN.
7370 * tree.c (make_node_stat): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
7371 (build_qualified_type): Use SET_TYPE_ALIGN.
7372 (build_aligned_type, build_range_type_1): Ditto.
7373 (build_atomic_base): Ditto.
7374 (build_common_tree_nodes): Ditto.
7375 * cfgexpand.c (align_local_variable): Use SET_DECL_ALIGN.
7376 (expand_one_stack_var_at): Ditto.
7377 * coverage.c (build_var): Use SET_DECL_ALIGN.
7378 * except.c (init_eh): Ditto.
7379 * function.c (assign_parm_setup_block): Ditto.
7380 * symtab.c (increase_alignment_1): Ditto.
7381 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Ditto.
7382 * tree-vect-stmts.c (ensure_base_align): Ditto.
7383 * varasm.c (align_variable): Ditto.
7384 (assemble_variable): Ditto.
7385 (build_constant_desc): Ditto.
7386 (output_constant_def_contents): Ditto.
7387
7388 * config/arm/arm.c (arm_relayout_function): Use SET_DECL_ALIGN.
7389 * config/avr/avr.c (avr_adjust_type_node): Use SET_TYPE_ALIGN.
7390 * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Ditto.
7391 * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Ditto.
7392 * config/spu/spu.c (spu_build_builtin_va_list): Use SET_DECL_ALIGN.
7393
7394 2016-04-18 H.J. Lu <hongjiu.lu@intel.com>
7395
7396 PR target/70708
7397 * config/i386/sse.md (sse2_loadlpd): Accept load from "xm" and
7398 replace %vmovsd with "%vmovq".
7399 (vec_concatv2df): Likewise.
7400
7401 2016-04-18 Uros Bizjak <ubizjak@gmail.com>
7402
7403 * config/i386/mmx.md (*vec_extractv2sf_0): Use gen_lowpart.
7404 (*vec_extractv2si_0): Ditto.
7405 * config/i386/sse.md (*vec_extractv4sf_0): Ditto.
7406 (zero_extended_scalar_load_operand splitters): Ditto.
7407 (vec_extract splitters): Ditto.
7408 (*vec_extractv4si_0_zext): Ditto.
7409 (avx_<castmode><avxsizesuffix>_<castmode>): Use gen_lowpart
7410 and lowpart_subreg.
7411 (avx512f_<castmode><avxsizesuffix>_<castmode>): Ditto.
7412 (avx512f_<castmode><avxsizesuffix>_256<castmode>): Ditto.
7413 (*sse4_1_extractps): Use lowpart_subreg.
7414 * config/i386/i386.md (x87 floatsplitter): Use gen_lowpart.
7415
7416 2016-04-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7417
7418 * doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
7419 gld requirements.
7420 (Specific, *-*-solaris2*): Update Solaris 11 bundled gcc versions.
7421 Mention Solaris 11 packaging changes.
7422 Update gas and gld requirements.
7423 Remove reference to pre-Solaris 10 bug.
7424 (Specific, sparc-sun-solaris2*): Remove reference to pre-Solaris 10
7425 systems and bugs.
7426 (Specific, sparc64-*-solaris2*): Remove reference to bootstrap
7427 with cc.
7428
7429 2016-04-17 Jan Hubicka <jh@suse.cz>
7430
7431 * tree-ssa-loop-ivopts.c (avg_loop_niter): Use also
7432 max_loop_iterations_int.
7433
7434 2016-04-18 Richard Biener <rguenther@suse.de>
7435
7436 PR tree-optimization/43434
7437 * tree-ssa-structalias.c (struct vls_data): New.
7438 (visit_loadstore): Handle all pointer-based accesses.
7439 (compute_dependence_clique): Compute a bitmap of restrict tags
7440 assigned bases and pass it to visit_loadstore.
7441
7442 2016-04-18 Matthew Wahab <matthew.wahab@arm.com>
7443
7444 PR target/70711
7445 * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc,
7446 armv8.1-a and armv8.1-a+crc.
7447
7448 2016-04-18 Richard Biener <rguenther@suse.de>
7449
7450 PR tree-optimization/70701
7451 * tree-ssa-sccvn.c (vn_reference_lookup_3): Resolve fully constant
7452 references after translating through a memcpy.
7453
7454 2016-04-18 Richard Biener <rguenther@suse.de>
7455
7456 * tree-ssa-pre.c (postorder, postorder_num): Make locals ...
7457 (compute_antic): ... here. For partial antic use regular
7458 postorder and scrap iteration.
7459 (compute_partial_antic_aux): Remove unused return value.
7460 (init_pre): Do not allocate postorder.
7461 (fini_pre): Do not free postorder.
7462
7463 2016-04-18 Richard Biener <rguenther@suse.de>
7464
7465 PR middle-end/37870
7466 * expmed.c (extract_bit_field_1): Remove broken case
7467 using a wider MODE_INT mode.
7468
7469 2016-04-18 Segher Boessenkool <segher@kernel.crashing.org>
7470
7471 * has-brig.c (lendian16): Don't try to use __builtin_bswap16
7472 unless compiling with at least GCC-4.8.
7473
7474 2016-04-17 Jan Hubicka <jh@suse.cz>
7475
7476 PR bootstrap/70706
7477 * graphite.c (graphite_finalize): Update call to
7478 tree_estimate_probability.
7479 * predict.h (tree_estimate_probability): Update prototype.
7480
7481 2016-04-17 Jan Hubicka <jh@suse.cz>
7482
7483 * predict.c (combine_predictions_for_bb): Add dry_run parmaeter.
7484 (tree_estimate_probability): Likewise.
7485 (pass_profile::execute): Update.
7486 (report_predictor_hitrates): New function.
7487 * profile.c (compute_branch_probabilities): Use it.
7488 * predict.h (report_predictor_hitrates): Declare.
7489
7490 2016-04-17 Jan Hubicka <jh@suse.cz>
7491
7492 PR ipa/70018
7493 * cgraph.h (cgraph_node::set_const_flag,
7494 cgraph_node::set_pure_flag): Update prototype to return bool;
7495 update comment.
7496 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Thunks
7497 of interposable symbol are interposable, too.
7498 (cgraph_set_const_flag_1): Rename to ...
7499 (set_const_flag_1): ... this one; change to self recursive function
7500 instead of call_for_symbol_thunks_and_aliases. Handle correctly
7501 clearnig the flag in all variants and also virtual thunks of const
7502 functions are pure; track if any change was done.
7503 (cgraph_node::set_const_flag): Update.
7504 (struct set_pure_flag_info): New struct.
7505 (cgraph_set_pure_flag_1): Rename to ...
7506 (set_pure_flag_1): ... this one; take set_pure_flag_info parameter
7507 rather than pointer encoded flags; track if any changes was done;
7508 handle correctly clearning flag and setting flag of aliases already
7509 declared const.
7510 (cgraph_node::set_pure_flag): Update.
7511 (cgraph_node::set_nothrow_flag): Handle correctly clearning the flag.
7512
7513 2016-04-17 Tom de Vries <tom@codesourcery.com>
7514
7515 PR other/70433
7516 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Escape
7517 backslash in label.
7518
7519 2016-04-17 Tom de Vries <tom@codesourcery.com>
7520
7521 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Classify chars
7522 '{}<> ' as escape-for-record.
7523
7524 2016-04-17 Tom de Vries <tom@codesourcery.com>
7525
7526 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Simplify loop
7527 structure.
7528
7529 2016-04-17 Tom de Vries <tom@codesourcery.com>
7530
7531 PR other/70185
7532 * tree-pass.h (class opt_pass): Remove graph_dump_initialized member.
7533 * dumpfile.h (struct dump_file_info): Add graph_dump_initialized field.
7534 * dumpfile.c (dump_files): Initialize graph_dump_initialized field.
7535 * passes.c (finish_optimization_passes): Only call
7536 finish_graph_dump_file if dfi->graph_dump_initialized.
7537 (execute_function_dump, pass_init_dump_file): Use
7538 dfi->graph_dump_initialized instead of pass->graph_dump_initialized.
7539
7540 2016-04-17 Tom de Vries <tom@codesourcery.com>
7541
7542 PR tree-optimization/70256
7543 * tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap)
7544 (debug_varmap): New function.
7545
7546 2016-04-17 Tom de Vries <tom@codesourcery.com>
7547
7548 PR other/70183
7549 * passes.c (pass_manager::register_pass): Propagate pflags.
7550
7551 2016-04-17 Tom de Vries <tom@codesourcery.com>
7552
7553 PR other/68875
7554 * pass_manager.h (TERMINATE_PASS_LIST): Add pass argument.
7555 * passes.c (pass_manager::pass_manager): Declare and init p_start in
7556 INSERT_PASSES_AFTER. Add pass parameter to TERMINATE_PASS_LIST, and
7557 check if it's equal to p_start.
7558 * passes.def: Add arguments to TERMINATE_PASS_LISTs.
7559
7560 2016-04-15 Jan Hubicka <jh@suse.cz>
7561
7562 PR ipa/70018
7563 * cgraph.c (cgraph_set_const_flag_1): Only set as pure if
7564 function does not bind to current def.
7565 * ipa-pure-const.c (worse_state): Add FROM and TO parameters;
7566 handle conservatively calls to functions that does not need to bind
7567 to current def.
7568 (check_call): Update call of worse_state.
7569 (ignore_edge_for_nothrow): Update.
7570 (ignore_edge_for_pure_const): Likewise.
7571 (propagate_pure_const): Update calls to worse_state.
7572 (skip_function_for_local_pure_const): Reformat comments.
7573
7574 2016-04-15 Jan Hubicka <jh@suse.cz>
7575
7576 PR ipa/70018
7577 * cgraph.c (cgraph_node::get_availability): Add REF parameter.
7578 (cgraph_node::function_symbol): Likewise.
7579 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
7580 * cgraph.h (symtab_node::get_availabbility): Add REF parameter.
7581 (symtab_node::ultimate_alias_target): Add REF parameter.
7582 (symtab_node::binds_to_current_def_p): Declare.
7583 (symtab_node;:ultimate_alias_target_1): Add REF parameter.
7584 (cgraph_node::function_symbol): Likewise.
7585 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
7586 (cgraph_node::get_availability): Likewise.
7587 (cgraph_edge::binds_to_current_def_p): New inline function.
7588 (varpool_node::get_availability): Add REF parameter.
7589 (varpool_node::ultimate_alias_target): Likewise.
7590 * symtab.c (symtab_node::ultimate_alias_target_1): Likewise.
7591 (symtab_node::binds_to_current_def_p): Likewise.
7592 * varpool.c (varpool_node::get_availability): Likewise.
7593
7594 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
7595
7596 PR target/70662
7597 * config/i386/sse.md(define_insn "<avx512>_vec_dup<mode><mask_name>"):
7598 Fix mode size check.
7599
7600 2016-04-15 Jakub Jelinek <jakub@redhat.com>
7601
7602 * BASE-VER: Set to 7.0.0.
7603
7604 2016-04-15 Alexander Monakov <amonakov@ispras.ru>
7605
7606 * config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.
7607
7608 2016-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7609
7610 * doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T
7611 architecture revisions.
7612
7613 2016-04-15 Bernd Schmidt <bschmidt@redhat.com>
7614
7615 * config/i386/i386-protos.h (ix86_using_red_zone): Declare.
7616 * config/i386/i386.c (ix86_using_red_zone): No longer static.
7617 * config/i386/i386.md (stack decrement to push peepholes): Guard
7618 with !x86_using_red_zone ().
7619
7620 2016-04-15 Jakub Jelinek <jakub@redhat.com>
7621
7622 PR c++/70675
7623 * tree-pretty-print.c (do_niy): Add FLAGS argument, pass it down
7624 to dump_generic_node.
7625 (NIY): Pass also flags to do_niy.
7626
7627 2016-04-15 Thomas Schwinge <thomas@codesourcery.com>
7628
7629 * omp-low.c (simd_clone_struct_alloc, simd_clone_struct_copy)
7630 (simd_clone_vector_of_formal_parm_types)
7631 (simd_clone_clauses_extract, simd_clone_compute_base_data_type)
7632 (simd_clone_mangle, simd_clone_create)
7633 (simd_clone_adjust_return_type, create_tmp_simd_array)
7634 (simd_clone_adjust_argument_types, simd_clone_init_simd_arrays)
7635 (struct modify_stmt_info, ipa_simd_modify_stmt_ops)
7636 (ipa_simd_modify_function_body, simd_clone_linear_addend)
7637 (simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone)
7638 (pass_data_omp_simd_clone, class pass_omp_simd_clone)
7639 (pass_omp_simd_clone::gate, make_pass_omp_simd_clone): Move into...
7640 * omp-simd-clone.c: ... this new file.
7641 (simd_clone_vector_of_formal_parm_types): Make it static.
7642 * Makefile.in (OBJS): Add omp-simd-clone.o.
7643
7644 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
7645
7646 PR target/70662
7647 * config/i386/sse.md: Use proper memory operand modifiers.
7648
7649
7650 2016-04-15 Richard Biener <rguenther@suse.de>
7651 Alan Modra <amodra@gmail.com>
7652
7653 PR tree-optimization/70130
7654 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Detect
7655 when alignment stays not the same and no not use the realign
7656 scheme then.
7657
7658 2016-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
7659
7660 PR target/70669
7661 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
7662 direct move handlers for KFmode. Change TFmode handlers test from
7663 FLOAT128_IEEE_P to FLOAT128_VECTOR_P.
7664
7665 2016-04-14 Jakub Jelinek <jakub@redhat.com>
7666
7667 PR c++/70594
7668 * ipa-utils.h (polymorphic_ctor_dtor_p): New prototype.
7669 * ipa-polymorphic-call.c (polymorphic_ctor_dtor_p): New function.
7670 (inlined_polymorphic_ctor_dtor_block_p): Use it.
7671 * tree-ssa-live.c (remove_unused_scope_block_p): When
7672 in_ctor_dtor_block, avoid discarding not just BLOCKs with
7673 BLOCK_ABSTRACT_ORIGIN being FUNCTION_DECL, but even when
7674 block_ultimate_origin is FUNCTION_DECL.
7675 (remove_unused_locals): If current_function_decl is
7676 polymorphic_ctor_dtor_p, pass initial true to
7677 remove_unused_scope_block_p' is_ctor_dtor_block.
7678
7679 2016-04-14 Martin Sebor <msebor@redhat.com>
7680
7681 PR c++/69517
7682 PR c++/70019
7683 PR c++/70588
7684 * doc/extend.texi (Variable Length): Revert.
7685
7686 2016-04-14 Marek Polacek <polacek@redhat.com>
7687 Jan Hubicka <hubicka@ucw.cz>
7688
7689 PR c++/70029
7690 * tree.c (verify_type): Disable the canonical type of main variant
7691 check.
7692
7693 2016-04-14 Jason Merrill <jason@redhat.com>
7694
7695 * cfgexpand.c, expr.c: Revert previous change.
7696
7697 2016-04-14 Cesar Philippidis <cesar@codesourcery.com>
7698
7699 PR middle-end/70643
7700 * omp-low.c (lower_oacc_reductions): Check for TREE_CONSTANT
7701 when building a mem ref for the incoming reduction variable.
7702
7703 2016-04-14 Richard Biener <rguenther@suse.de>
7704
7705 PR tree-optimization/70614
7706 * tree-scalar-evolution.c (analyze_evolution_in_loop): Terminate
7707 loop if the evolution dropped to chrec_dont_know.
7708 (interpret_condition_phi): Likewise.
7709
7710 2016-04-14 Richard Biener <rguenther@suse.de>
7711
7712 PR tree-optimization/70623
7713 * tree-ssa-pre.c (changed_blocks): Make global ...
7714 (compute_antic): ... local here. Move and fix worklist
7715 handling here. Do not clear EDGE_DFS_BACK or call mark_dfs_back_edges.
7716 (compute_antic_aux): Add dumping for MAX assumed succs. Remove
7717 worklist handling, dump when ANTIC_IN changed.
7718 (compute_partial_antic_aux): Remove worklist handling.
7719 (init_pre): Do not compute post dominators. Add a comment about
7720 the CFG order chosen.
7721 (fini_pre): Do not free post dominators.
7722
7723 2016-04-13 Martin Sebor <msebor@redhat.com>
7724
7725 PR c++/69517
7726 PR c++/70019
7727 PR c++/70588
7728 * doc/extend.texi (Variable Length): Document C++ specifics.
7729
7730 2016-04-13 Jakub Jelinek <jakub@redhat.com>
7731
7732 PR c++/70641
7733 * ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt
7734 on all recursive call stmts. Return TODO_cleanup_cfg if any dead
7735 eh edges have been purged.
7736
7737 PR c++/70594
7738 * tree-sra.c (create_access_replacement,
7739 get_replaced_param_substitute): Set DECL_NAMELESS on repl if it
7740 gets fancy name.
7741 * tree-pretty-print.c (dump_fancy_name): New function.
7742 (dump_decl_name, dump_generic_node): Use it.
7743
7744 2016-04-13 Jason Merrill <jason@redhat.com>
7745
7746 * cfgexpand.c (pass_expand::execute): Handle attribute "abi warning".
7747 * expr.c (expand_expr_real_1): Likewise.
7748
7749 2016-04-13 Ilya Enkovich <ilya.enkovich@intel.com>
7750
7751 * config/i386/i386.md (kunpckhi): Swap operands.
7752 (kunpcksi): Likewise.
7753 (kunpckdi): Likewise.
7754 * config/i386/sse.md (vec_pack_trunc_qi): Likewise.
7755 (vec_pack_trunc_<mode>): Likewise.
7756
7757 2016-04-13 Jakub Jelinek <jakub@redhat.com>
7758
7759 PR debug/70628
7760 * explow.c (convert_memory_address_addr_space_1): Formatting fix.
7761
7762 PR middle-end/70633
7763 * gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
7764 gimplification turns some element into non-constant.
7765
7766 PR debug/70628
7767 * rtl.h (convert_memory_address_addr_space_1): New prototype.
7768 * explow.c (convert_memory_address_addr_space_1): No longer static,
7769 add NO_EMIT argument and don't call convert_modes if true, pass
7770 it down recursively, remove break after return.
7771 (convert_memory_address_addr_space): Adjust caller.
7772 * simplify-rtx.c (simplify_unary_operation_1): Call
7773 convert_memory_address_addr_space_1 instead of convert_memory_address,
7774 if it returns NULL, don't simplify.
7775
7776 2016-04-12 Eric Botcazou <ebotcazou@adacore.com>
7777
7778 PR target/70630
7779 * config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.
7780
7781 2016-04-12 Jakub Jelinek <jakub@redhat.com>
7782
7783 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
7784 Bump the upper SIMDLEN limits, so that if the return type or
7785 characteristic type if the return type is void can be passed in
7786 all available SSE2/AVX/AVX2/AVX512-F registers, the SIMDLEN is
7787 allowed.
7788
7789 2016-04-12 Michael Meissner <meissner@linux.vnet.ibm.com>
7790
7791 PR target/70640
7792 * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2_internal):
7793 Do not use "=" constraint on an input constraint.
7794 (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
7795 (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
7796 (ieee_128bit_vsx_nabs<mode>2): Correct splitter so that it
7797 generates (neg (abs ...)) instead of (abs ...).
7798
7799 2016-04-12 Jakub Jelinek <jakub@redhat.com>
7800
7801 PR rtl-optimization/70596
7802 * lra-spills.c (spill_pseudos): Don't delete debug insns, instead
7803 just invalidate LRA data and reset them. Adjust dump wording.
7804
7805 2016-04-12 Martin Liska <mliska@suse.cz>
7806
7807 Revert
7808 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
7809
7810 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
7811 estimates here.
7812 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
7813 max_loop_iterations_int.
7814 (tree_unswitch_outer_loop): Likewise.
7815 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
7816 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
7817
7818 2016-04-12 Tom de Vries <tom@codesourcery.com>
7819
7820 PR tree-optimization/68756
7821 * graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr
7822 instead of new_name.
7823
7824 2016-04-12 Jakub Jelinek <jakub@redhat.com>
7825
7826 PR tree-optimization/70602
7827 * tree-sra.c (generate_subtree_copies): Don't write anything into
7828 constant pool decls.
7829
7830 * omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
7831 regardless whether there are depend clauses or not.
7832
7833 2016-04-11 Michael Meissner <meissner@linux.vnet.ibm.com>
7834
7835 PR target/70381
7836 * config/rs6000/rs6000.c (rs6000_opt_masks): Disable using the
7837 target attribute and pragma from changing the -mfloat128
7838 and -mfloat128-hardware options.
7839
7840 * doc/extend.texi (Additional Floating Types): Document PowerPC
7841 __float128 restrictions.
7842
7843 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
7844
7845 PR target/70133
7846 * config/aarch64/driver-aarch64.c
7847 (aarch64_get_extension_string_for_isa_flags): New.
7848 (arch_extension): Rename to...
7849 (aarch64_arch_extension): ...This.
7850 (ext_to_feat_string): Rename to...
7851 (aarch64_extensions): ...This.
7852 (aarch64_core_data): Keep track of architecture extension flags.
7853 (cpu_data): Rename to...
7854 (aarch64_cpu_data): ...This.
7855 (aarch64_arch_driver_info): Keep track of architecture extension
7856 flags.
7857 (get_arch_name_from_id): Rename to...
7858 (get_arch_from_id): ...This, change return type.
7859 (host_detect_local_cpu): Update and reformat for renames, handle
7860 extensions through common infrastructure.
7861
7862 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
7863
7864 PR target/70133
7865 * config/aarch64/aarch64-common.c (aarch64_option_extension): Keep
7866 track of a canonical flag name.
7867 (all_extensions): Likewise.
7868 (arch_to_arch_name): Also track extension flags enabled by the arch.
7869 (all_architectures): Likewise.
7870 (aarch64_parse_extension): Move to here.
7871 (aarch64_get_extension_string_for_isa_flags): Take a new argument,
7872 rework.
7873 (aarch64_rewrite_selected_cpu): Update for above change.
7874 * config/aarch64/aarch64-option-extensions.def: Rework the way flags
7875 are handled, such that the single explicit value enabled by an
7876 extension is kept seperate from the implicit values it also enables.
7877 * config/aarch64/aarch64-protos.h (aarch64_parse_opt_result): Move
7878 to here.
7879 (aarch64_parse_extension): New.
7880 * config/aarch64/aarch64.c (aarch64_parse_opt_result): Move from
7881 here to config/aarch64/aarch64-protos.h.
7882 (aarch64_parse_extension): Move from here to
7883 common/config/aarch64/aarch64-common.c.
7884 (aarch64_option_print): Update.
7885 (aarch64_declare_function_name): Likewise.
7886 (aarch64_start_file): Likewise.
7887 * config/aarch64/driver-aarch64.c (arch_extension): Keep track of
7888 the canonical flag for extensions.
7889 * config.gcc (aarch64*-*-*): Extend regex for capturing extension
7890 flags.
7891
7892 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
7893
7894 * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
7895 AARCH64_FL_CRC.
7896
7897 2016-04-09 Tom de Vries <tom@codesourcery.com>
7898
7899 PR tree-optimization/68953
7900 * graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from
7901 first to last subscript.
7902
7903 2016-04-09 Jakub Jelinek <jakub@redhat.com>
7904
7905 PR tree-optimization/70586
7906 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false
7907 for any calls.
7908
7909 2016-04-08 Cesar Philippidis <cesar@codesourcery.com>
7910
7911 PR lto/70289
7912 PR ipa/70348
7913 PR tree-optimization/70373
7914 PR middle-end/70533
7915 PR middle-end/70534
7916 PR middle-end/70535
7917 * gimplify.c (gimplify_adjust_omp_clauses): Add or adjust data
7918 clauses for acc parallel reductions as necessary. Error on those
7919 that are private.
7920 * omp-low.c (scan_sharing_clauses): Don't install variables which
7921 are used in acc parallel reductions.
7922 (lower_rec_input_clauses): Remove dead code.
7923 (lower_oacc_reductions): Add support for reference reductions.
7924 (lower_reduction_clauses): Remove dead code.
7925 (lower_omp_target): Don't remap variables appearing in acc parallel
7926 reductions.
7927 * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro.
7928
7929 2016-04-08 Jakub Jelinek <jakub@redhat.com>
7930
7931 PR middle-end/70593
7932 * tree-ssa-coalesce.c (build_ssa_conflict_graph): For stmt
7933 with multiple SSA_NAME defs, force the outputs other than first
7934 to be live before calling live_track_process_def on each output.
7935
7936 PR rtl-optimization/70574
7937 * fwprop.c (forward_propagate_and_simplify): Don't add
7938 REG_EQUAL note if DF_REF_REG (use) is a paradoxical subreg.
7939 (try_fwprop_subst): Don't add REG_EQUAL note if there are any
7940 paradoxical subregs within *loc.
7941
7942 2016-04-08 Thomas Schwinge <thomas@codesourcery.com>
7943
7944 * config/arc/arc.h (LINK_COMMAND_SPEC): Use gt to ignore
7945 -ftree-parallelize-loops={0,1}.
7946 * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
7947 * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
7948 * config/ia64/hpux.h (LIB_SPEC): Likewise.
7949 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
7950 * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
7951
7952 2016-04-08 Maxim Ostapenko <m.ostapenko@samsung.com>
7953
7954 PR sanitizer/70541
7955 * asan.c (instrument_derefs): If we get unknown location, extract it
7956 with EXPR_LOCATION.
7957 (maybe_instrument_call): Instrument gimple_call's arguments if needed.
7958
7959 2016-04-08 Tom de Vries <tom@codesourcery.com>
7960
7961 * omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc
7962 implicit firstprivate clause.
7963
7964 2016-04-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7965
7966 PR target/70566
7967 * config/arm/thumb2.md (tst + branch-> lsls + branch
7968 peephole below *orsi_not_shiftsi_si): Require that condition
7969 register is dead after the peephole.
7970 (second peephole after the above): Likewise.
7971
7972 2016-04-08 Alan Modra <amodra@gmail.com>
7973
7974 PR target/70117
7975 * builtins.c (fold_builtin_classify): For IBM extended precision,
7976 look at just the high-order double to test for NaN.
7977 (fold_builtin_interclass_mathfn): Similarly for Inf. For isnormal
7978 test just the high double for Inf but both doubles for subnormal
7979 limit.
7980
7981 2016-04-07 Jakub Jelinek <jakub@redhat.com>
7982
7983 * cgraph.h (struct cgraph_simd_clone): Add mask_mode field.
7984 * omp-low.c (simd_clone_init_simd_arrays, simd_clone_adjust): Handle
7985 node->simdclone->mask_mode != VOIDmode masks.
7986 (simd_clone_adjust_argument_types): Likewise. Move sc var definition
7987 earlier, use it instead of node->simdclone.
7988 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
7989 Set clonei->mask_mode.
7990
7991 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
7992
7993 PR c/70436
7994 * parser.c (cp_parser_iteration_statement): New parameter IF_P.
7995 Pass it through to cp_parser_already_scoped_statement.
7996 (cp_parser_already_scoped_statement): New parameter IF_P. Pass
7997 it through to cp_parser_statement.
7998 (cp_parser_statement): Pass IF_P through to
7999 cp_parser_iteration_statement.
8000 (cp_parser_pragma): Adjust call to
8001 cp_parser_iteration_statement.
8002
8003 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
8004
8005 PR c/70436
8006 * gimplify.c (gimplify_omp_ordered): Add explicit braces to
8007 resolve a future -Wparentheses warning.
8008 * omp-low.c (scan_sharing_clauses): Likewise.
8009 * tree-parloops.c (eliminate_local_variables): Likewise.
8010
8011 2016-04-06 Vladimir Makarov <vmakarov@redhat.com>
8012
8013 PR rtl-optimization/70398
8014 * lra-constraints.c (process_address_1): Check zero scale and code
8015 for reloading with zero scale.
8016
8017 2016-04-06 Uros Bizjak <ubizjak@gmail.com>
8018
8019 * config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
8020 (ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.
8021
8022 2016-04-06 Jakub Jelinek <jakub@redhat.com>
8023
8024 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
8025 Add support for AVX512F clones, include them by default for
8026 exported OpenMP declare simd functions. For AVX2 allow simdlen 32
8027 and use it if charasteric type is 8-bit, for AVX512F allow simdlen
8028 up to 128.
8029
8030 PR middle-end/70550
8031 * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define.
8032 * gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit
8033 firstprivate clauses.
8034 * omp-low.c (lower_send_clauses): Set TREE_NO_WARNING for
8035 OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT !by_ref vars in task contexts.
8036 (lower_omp_target): Set TREE_NO_WARNING for
8037 non-addressable possibly uninitialized vars which are copied into
8038 addressable temporaries or copied for GOMP_MAP_FIRSTPRIVATE_INT.
8039
8040 2016-04-05 John David Anglin <danglin@gcc.gnu.org>
8041
8042 * config/pa/predicates.md (integer_store_memory_operand): Accept
8043 REG+D operands with a large offset when reload_in_progress is true.
8044 (floating_point_store_memory_operand): Likewise.
8045
8046 2016-04-05 Jakub Jelinek <jakub@redhat.com>
8047
8048 PR c++/70336
8049 * match.pd (nested int casts): Limit to GIMPLE.
8050
8051 2016-04-05 Jan Hubicka <hubicka@ucw.cz>
8052
8053 PR ipa/66223
8054 * ipa-devirt.c (maybe_record_node): Fix comment; use
8055 SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.
8056
8057 2016-04-05 Jakub Jelinek <jakub@redhat.com>
8058
8059 PR rtl-optimization/70542
8060 * ree.c (add_removable_extension): For VECTOR_MODE_P punt
8061 if there are any uses other than insn or debug insns.
8062
8063 2016-04-05 Marc Glisse <marc.glisse@inria.fr>
8064 Jakub Jelinek <jakub@redhat.com>
8065
8066 PR tree-optimization/70509
8067 * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SELECT>:
8068 Shift HOST_WIDE_INT_1U instead of 1.
8069
8070 2016-04-05 Zdenek Sojka <zsojka@seznam.cz>
8071
8072 PR tree-optimization/70509
8073 * tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int instead
8074 of the vector base type for index.
8075
8076 2016-04-05 Uros Bizjak <ubizjak@gmail.com>
8077
8078 PR target/70510
8079 * config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.
8080
8081 2016-04-05 Richard Biener <rguenther@suse.de>
8082
8083 PR tree-optimization/70526
8084 * tree-sra.c (build_ref_for_offset): Use prev_base to
8085 extract the alias pointer type.
8086
8087 2016-04-05 Richard Biener <rguenther@suse.de>
8088
8089 * dse.c (struct store_info): Remove alias_set member.
8090 (struct read_info_type): Likewise.
8091 (clear_alias_group, clear_alias_mode_table, clear_alias_mode_holder,
8092 spill_deleted, clear_alias_set_lookup): Remove.
8093 (get_group_info): Remove dead base == NULL_RTX case.
8094 (dse_step0): Remove initialization of removed variables.
8095 (delete_dead_store_insn): Reomve alias set dumping.
8096 (free_read_records): Remove alias_set handling.
8097 (canon_address): Remove alias_set_out parameter.
8098 (record_store): Remove spill_alias_set, it's always zero.
8099 (check_mem_read_rtx): Likewise.
8100 (dse_step2): Rename from ...
8101 (dse_step2_nospill): ... this. Adjust.
8102 (scan_stores): Rename from ...
8103 (scan_stores_nospill): ... this.
8104 (scan_reads): Rename from ...
8105 (scan_reads_nospill): ... this.
8106 (scan_stores_spill, scan_reads_spill): Remove.
8107 (dse_step3_scan): Remove for_spills argument which is always false.
8108 (dse_step3): Likewise.
8109 (dse_step5): Rename from ...
8110 (dse_step5_nospill): ... this. Remove alias_set handling.
8111 (rest_of_handle_dse): Adjust.
8112
8113 2016-04-05 Jakub Jelinek <jakub@redhat.com>
8114
8115 PR target/70525
8116 * config/i386/sse.md (*andnot<mode>3): Simplify assertions.
8117 Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for
8118 V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting.
8119 (*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator.
8120
8121 2016-04-05 Richard Biener <rguenther@suse.de>
8122
8123 PR middle-end/70499
8124 * gimplify-me.c (gimple_regimplify_operands): Do not rewrite
8125 non-register type temporaries into SSA.
8126
8127 2016-04-04 Jan Hubicka <hubicka@ucw.cz>
8128
8129 PR ipa/66223
8130 * ipa-devirt.c (maybe_record_node): Do not optimize cxa_pure_virtual
8131 calls when sanitizing.
8132 (possible_polymorphic_call_target_p): Fix formatting.
8133
8134 2016-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8135 Jakub Jelinek <jakub@redhat.com>
8136
8137 PR middle-end/70457
8138 * tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p
8139 to ensure a call statement is compatible with a built-in's
8140 prototype.
8141 * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
8142 Likewise.
8143
8144 2016-04-04 Richard Biener <rguenther@suse.de>
8145
8146 PR rtl-optimization/70484
8147 * rtl.h (canon_output_dependence): Declare.
8148 * alias.c (canon_output_dependence): New function.
8149 * dse.c (record_store): Use canon_output_dependence rather
8150 than canon_true_dependence.
8151
8152 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
8153
8154 PR ipa/68881
8155 * cgraph.h (symtab_node::copy_visibility_from): New function.
8156 * symtab.c (symtab_node::copy_visibility_from): New function.
8157 * ipa-visibility.c (optimize_weakref): New function.
8158 (function_and_variable_visibility): Use it.
8159
8160 2016-04-04 Martin Liska <mliska@suse.cz>
8161
8162 PR hsa/70402
8163 * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Guard index
8164 value that is really in range handled by SBR instruction.
8165 * hsa-brig.c (emit_switch_insn): Do not emit unconditional jump.
8166 * hsa-dump.c (dump_hsa_insn_1): Do not dump default BB.
8167 * hsa.h (hsa_insn_sbr::m_default_bb): Remove field.
8168
8169 2016-04-03 Oleg Endo <olegendo@gcc.gnu.org>
8170
8171 PR target/70416
8172 PR target/67391
8173 * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
8174 set, but not for SP_REG operands.
8175
8176 2016-04-02 Martin Sebor <msebor@redhat.com>
8177
8178 PR c++/67376
8179 * fold-const.c (maybe_nonzero_address): New function.
8180 (fold_comparison): Call it. Fold equality and relational
8181 expressions involving null pointers.
8182 (tree_single_nonzero_warnv_p): Call maybe_nonzero_address.
8183
8184 2016-03-31 Evandro Menezes <e.menezes@samsung.com>
8185
8186 Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
8187 the "Y" constraint (scalar FP 0.0 immediate).
8188
8189 * config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
8190 Add the "const_double" to the list of operand constraints.
8191
8192 2016-04-01 Jakub Jelinek <jakub@redhat.com>
8193
8194 PR rtl-optimization/70467
8195 * config/i386/i386.md (*add<dwi>3_doubleword, *sub<dwi>3_doubleword):
8196 If low word of the last operand is 0, just emit addition/subtraction
8197 for the high word.
8198
8199 2016-04-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8200
8201 PR target/70404
8202 * config/s390/s390.c (s390_expand_insv): Check for everything
8203 constant instead of just VOIDmode stuff.
8204
8205 2016-04-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8206
8207 PR target/70496
8208 * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB.
8209
8210 2016-04-01 Nathan Sidwell <nathan@acm.org>
8211
8212 * tree.def (TRY_CATCH_EXPR): Correct documentation.
8213
8214 2016-03-31 Vladimir Makarov <vmakarov@redhat.com>
8215
8216 PR rtl-optimization/70461
8217 * ira-color.c (allocno_copy_cost_saving): Use allocno class if it
8218 is necessary.
8219
8220 2016-03-31 Martin Liska <mliska@suse.cz>
8221
8222 PR hsa/70399
8223 * hsa-brig.c (hsa_op_immed::emit_to_buffer): Emit either
8224 a tree value or an immediate integer value to a buffer
8225 that is eventually copied to a BRIG section.
8226 (emit_immediate_operand): Call the function here.
8227 * hsa-dump.c (dump_hsa_immed): Remove checking assert.
8228 * hsa-gen.c (hsa_op_immed::hsa_op_immed): Remove initialization
8229 of class' fields that are removed.
8230 (hsa_op_immed::~hsa_op_immed): Remove deinitialization.
8231 * hsa.h (class hsa_op_immed): Remove m_brig_repr and
8232 m_brig_repr_size fields.
8233
8234 2016-03-31 Martin Liska <mliska@suse.cz>
8235
8236 PR hsa/70391
8237 * hsa-gen.c (hsa_function_representation::update_dominance): New
8238 function.
8239 (convert_addr_to_flat_segment): Likewise.
8240 (gen_hsa_memory_set): New alignment argument.
8241 (gen_hsa_ctor_assignment): Likewise.
8242 (gen_hsa_insns_for_single_assignment): Provide alignment
8243 to gen_hsa_ctor_assignment.
8244 (gen_hsa_insns_for_direct_call): Add new argument.
8245 (expand_lhs_of_string_op): New function.
8246 (expand_string_operation_builtin): Likewise.
8247 (expand_memory_copy): New function.
8248 (expand_memory_set): New function.
8249 (gen_hsa_insns_for_call): Use HOST_WIDE_INT.
8250 (convert_switch_statements): Change signature.
8251 (generate_hsa): Use a return value of the function.
8252 (pass_gen_hsail::execute): Do not call
8253 convert_switch_statements here.
8254 * hsa-regalloc.c (hsa_regalloc): Call update_dominance.
8255 * hsa.h (hsa_function_representation::m_modified_cfg): New flag.
8256 (hsa_function_representation::update_dominance): New function.
8257
8258 2016-03-31 Martin Liska <mliska@suse.cz>
8259
8260 PR hsa/70391
8261 * hsa-brig.c (emit_directive_variable): Emit alignment
8262 according to hsa_symbol::m_align.
8263 * hsa-dump.c (hsa_byte_alignment): Move the function to another file.
8264 (dump_hsa_symbol): Dump alignment of HSA symbols.
8265 * hsa-gen.c (get_symbol_for_decl): Set-up alignment of a symbol.
8266 (gen_hsa_addr_with_align): New function.
8267 (hsa_bitmemref_alignment): Use newly added function.
8268 (gen_hsa_insns_for_load): Likewise.
8269 (gen_hsa_insns_for_store): Likewise.
8270 (gen_hsa_memory_copy): New argument added.
8271 (gen_hsa_insns_for_single_assignment): Respect
8272 alignment for assignments processed via gen_hsa_memory_copy.
8273 (gen_hsa_insns_for_direct_call): Likewise.
8274 (gen_hsa_insns_for_return): Likewise.
8275 (gen_function_def_parameters): Set default alignment.
8276 * hsa.c (hsa_object_alignment): New function.
8277 (hsa_byte_alignment): Pasted function.
8278 * hsa.h (hsa_symbol::m_align): New field.
8279
8280 2016-03-31 Bin Cheng <bin.cheng@arm.com>
8281
8282 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
8283 scratch field for goto case.
8284
8285 2016-03-31 James Greenhalgh <james.greenhalgh@arm.com>
8286
8287 * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.
8288
8289 2016-03-31 Ilya Enkovich <enkovich.gnu@gmail.com>
8290
8291 PR target/70442
8292 * config/i386/i386.c (scalar_chain::convert_op): Fix description.
8293 (scalar_chain::convert_insn): Call convert_op for reg
8294 moves to handle undefined registers.
8295
8296 2016-03-31 Nathan Sidwell <nathan@acm.org>
8297
8298 PR c++/70393
8299 * varasm.c (output_constructor_regular_field): Flush bitfield earlier.
8300 Assert we don't want to move backwards.
8301
8302 2016-03-31 Kirill Yukhin <kirill.yukhin@intel.com>
8303
8304 PR target/70453
8305 * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
8306
8307 2016-03-31 Jakub Jelinek <jakub@redhat.com>
8308
8309 PR rtl-optimization/70460
8310 * ira.c (indirect_jump_optimize): Don't substitute LABEL_REF
8311 with operand from REG_LABEL_OPERAND, instead substitute
8312 SET_SRC or REG_EQUAL note content if it is a LABEL_REF.
8313 Don't do anything for REG_NON_LOCAL_GOTO jumps.
8314
8315 2016-03-31 Martin Liska <mliska@suse.cz>
8316
8317 * passes.c (execute_one_pass): Do not call
8318 todo_after for a discarded function.
8319
8320 2016-03-31 Bin Cheng <bin.cheng@arm.com>
8321
8322 * tree-ssa-loop-ivopts.c (struct comp_cost): New scrach field.
8323 (no_cost, infinite_cost): Initialize the new field.
8324 (get_computation_cost_at): Record setup cost.
8325 (determine_use_iv_cost_address): Skip cost computation for sub
8326 uses if we can estimate it without losing accuracy.
8327
8328 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
8329
8330 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
8331 estimates here.
8332 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
8333 max_loop_iterations_int.
8334 (tree_unswitch_outer_loop): Likewise.
8335 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
8336 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
8337
8338 2016-03-30 Richard Biener <rguenther@suse.de>
8339
8340 PR middle-end/70450
8341 * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage.
8342
8343 2016-03-30 Jakub Jelinek <jakub@redhat.com>
8344
8345 PR target/70421
8346 * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
8347 in gen_blendm expander.
8348
8349 2016-03-30 Nick Clifton <nickc@redhat.com>
8350
8351 PR target/62254
8352 * config/arm/arm.c (arm_reload_out_hi): Add code to handle the
8353 case where we are already provided with an SImode SUBREG.
8354
8355 2016-03-30 H.J. Lu <hongjiu.lu@intel.com>
8356
8357 PR target/70439
8358 * config/i386/i386.c (ix86_expand_epilogue): Properly check
8359 conflict between DRAP register and __builtin_eh_return.
8360
8361 2016-03-30 Michael Matz <matz@suse.de>
8362 Richard Biener <rguenther@suse.de>
8363
8364 PR ipa/12392
8365 * ipa-polymorphic-call.c (struct type_change_info): Change
8366 speculative to an unsigned allowing to limit the work we do.
8367 (csftc_abort_walking_p): New inline function..
8368 (check_stmt_for_type_change): Limit the number of may-defs
8369 skipped for speculative devirtualization to
8370 max-speculative-devirt-maydefs.
8371 * params.def (max-speculative-devirt-maydefs): New param.
8372 * doc/invoke.texi (--param max-speculative-devirt-maydefs): Document.
8373
8374 2016-03-30 Mike Stump <mrs@gcc.gnu.org>
8375
8376 PR target/63890
8377 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
8378 and TARGET_MACHO.
8379
8380 2016-03-30 Patrick Palka <ppalka@gcc.gnu.org>
8381
8382 PR tree-optimization/59124
8383 * tree-vrp.c (register_edge_assert_for_2): For NAME != CST1
8384 where NAME = A +- CST2 add the assertion A != (CST1 -+ CST2).
8385
8386 2016-03-29 Jeff Law <law@redhat.com>
8387
8388 * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment.
8389
8390 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
8391
8392 * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
8393 to HOST_WIDE_INT.
8394
8395 2016-03-29 Thomas Schwinge <thomas@codesourcery.com>
8396
8397 * config/gnu.h (CPP_SPEC, LIB_SPEC): Don't override.
8398 * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt1.o instead of
8399 gcrt0.o if linking dynamically.
8400
8401 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
8402
8403 PR ipa/70283
8404 * ipa-devirt.c (methods_equal_p): New function.
8405 (compare_virtual_tables): Use it.
8406 * cgraph.h (symbol_table::symbol_suffix_separator): Declare.
8407 * cgraphclones.c (clone_function_name_1): Use
8408 symbol_table::symbol_suffix_separator.
8409 * coverage.c (build_var): Likewise.
8410 * symtab.c (symbol_table::symbol_suffix_separator): New.
8411
8412 2016-03-29 Jakub Jelinek <jakub@redhat.com>
8413
8414 PR rtl-optimization/70429
8415 * combine.c (simplify_shift_const_1): For ASHIFTRT don't optimize
8416 (cst1 >> count) >> cst2 into (cst1 >> cst2) >> count if
8417 mode != result_mode.
8418
8419 PR c++/70353
8420 * tree-inline.c (remap_decls): Don't add_local_decl if cfun is null.
8421
8422 PR tree-optimization/70405
8423 * ssa-iterators.h (num_imm_uses): Add missing braces.
8424
8425 2016-03-29 Vladimir Makarov <vmakarov@redhat.com>
8426
8427 PR rtl-optimization/68695
8428 * ira-color.c (allocno_copy_cost_saving): New.
8429 (improve_allocation): Use it.
8430
8431 2016-03-29 Richard Henderson <rth@redhat.com>
8432
8433 PR middle-end/70355
8434 * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.
8435
8436 2016-03-29 Richard Biener <rguenther@suse.de>
8437
8438 PR middle-end/70424
8439 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
8440 use alignment returned by get_pointer_alignment_1 if it is
8441 bigger than BITS_PER_UNIT.
8442 * builtins.c (get_pointer_alignment_1): Do not return true
8443 for alignment extracted from SSA info.
8444
8445 2016-03-28 James Bowman <james.bowman@ftdichip.com>
8446
8447 * config/ft32/ft32.opt (mnodiv): New.
8448 * config/ft32/ft32.md (*divsi3, *modsi3): Qualify with TARGET_NODIV.
8449 * doc/invoke.texi (FT32 Options -mnodiv): New.
8450
8451 2016-03-28 Kirill Yukhin <kirill.yukhin@intel.com>
8452
8453 PR target/70406
8454 * config/i386/i386.md (define_split, andn): Fix modes.
8455
8456 2016-03-26 Richard Biener <rguenther@suse.de>
8457 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
8458
8459 PR ipa/70366
8460 * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
8461 instead of
8462 TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
8463 as 2nd argument to cl_optimization_restore().
8464
8465 2016-03-25 Richard Henderson <rth@redhat.com>
8466
8467 PR target/70120
8468 * config/aarch64/aarch64.c (aarch64_asm_output_pool_epilogue): New.
8469 * config/aarch64/aarch64-protos.h: Declare it.
8470 * config/aarch64/aarch64.h (ASM_OUTPUT_POOL_EPILOGUE): New.
8471
8472 2016-03-25 Alan Modra <amodra@gmail.com>
8473
8474 PR target/70052
8475 * config/rs6000/constraints.md (j): Simplify.
8476 * config/rs6000/predicates.md (easy_fp_constant): Exclude
8477 decimal float 0.D.
8478 * config/rs6000/rs6000.md (zero_fp): New mode_attr.
8479 (mov<mode>_hardfloat, mov<mode>_hardfloat32, mov<mode>_hardfloat64,
8480 mov<mode>_64bit_dm, mov<mode>_32bit): Use zero_fp in place of j
8481 in all constraint alternatives.
8482 (movtd_64bit_nodm): Delete "j" constraint alternative.
8483
8484 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
8485
8486 * tree-ssa-propagate.c: Enhance docs for
8487 SSA_PROP_NOT_INTERESTING.
8488
8489 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
8490
8491 * doc/extend.texi: Fix typo in documentation to pure attribute.
8492
8493 2016-03-24 John David Anglin <danglin@gcc.gnu.org>
8494
8495 PR target/70319
8496 * config/pa/pa.md (bswapdi2): Use a scratch register.
8497
8498 2016-03-24 Richard Henderson <rth@redhat.com>
8499
8500 PR middle-end/69845
8501 * fold-const.c (extract_muldiv_1): Correct test for multiplication
8502 overflow.
8503
8504 2016-03-24 Uros Bizjak <ubizjak@gmail.com>
8505
8506 * config/i386/i386.md (*anddi3_doubleword): Generate AND insn
8507 using ix86_expand_binary_operator instead of gen_andsi3.
8508
8509 2016-03-24 Richard Biener <rguenther@suse.de>
8510
8511 PR tree-optimization/70396
8512 * tree-vect-stmts.c (vectorizable_comparison): Use
8513 get_vectype_for_scalar_type.
8514
8515 2016-03-24 Richard Biener <rguenther@suse.de>
8516
8517 PR middle-end/70370
8518 * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
8519 with register bases.
8520
8521 2016-03-24 Richard Biener <rguenther@suse.de>
8522
8523 PR tree-optimization/70372
8524 * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Use
8525 build_all_ones_cst to also handle vector types correctly.
8526
8527 2016-03-23 Michael Meissner <meissner@linux.vnet.ibm.com>
8528
8529 PR target/70381
8530 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
8531 -mfloat128 here.
8532
8533 2016-03-23 Marek Polacek <polacek@redhat.com>
8534
8535 PR c++/69884
8536 * doc/invoke.texi: Document -Wignored-attributes.
8537
8538 2016-03-23 Bin Cheng <bin.cheng@arm.com>
8539
8540 PR tree-optimization/69042
8541 * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
8542 parameter from 30 to 40.
8543
8544 2016-03-23 Bin Cheng <bin.cheng@arm.com>
8545
8546 PR tree-optimization/69042
8547 * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Add IV cand
8548 for use with constant offset stripped in base.
8549
8550 2016-03-23 Richard Biener <rguenther@suse.de>
8551
8552 PR middle-end/70251
8553 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust
8554 mode compatibility check.
8555 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
8556
8557 2016-03-23 Jeff Law <law@redhat.com>
8558
8559 PR tree-optimization/64058
8560 * tree-ssa-coalesce.c (struct coalesce_pair): Add new field
8561 CONFLICT_COUNT.
8562 (struct ssa_conflicts): Move up earlier in the file.
8563 (conflicts_, var_map_): New static variables.
8564 (initialize_conflict_count): New function to initialize the
8565 CONFLICT_COUNT field for each conflict pair.
8566 (compare_pairs): Lazily initialize the conflict count and use it
8567 as the first tie-breaker.
8568 (sort_coalesce_list): Add new arguments conflicts, map. Initialize
8569 and wipe conflicts_ and map_ around the call to qsort. Remove
8570 special case for 2 coalesce pairs.
8571 * bitmap.c (bitmap_count_unique_bits): New function.
8572 (bitmap_count_bits_in_word): New function, extracted from
8573 bitmap_count_bits.
8574 (bitmap_count_bits): Use bitmap_count_bits_in_word.
8575 * bitmap.h (bitmap_count_unique_bits): Declare it.
8576
8577 2016-03-23 Ilya Enkovich <enkovich.gnu@gmail.com>
8578
8579 PR target/69917
8580 * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
8581 transparent alias chain for decl assembler name.
8582 * config/sol2.c (solaris_assemble_visibility): Likewise.
8583
8584 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8585
8586 * config/arm/arm1020e.md (1020call_op): Reduce reservation
8587 duration.
8588 (v10_fdivs): Likewise.
8589 (v10_fdivd): Likewise.
8590
8591 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8592
8593 PR driver/70132
8594 * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
8595 to not call fclose twice on file.
8596
8597 2016-03-23 Jakub Jelinek <jakub@redhat.com>
8598
8599 PR tree-optimization/70354
8600 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
8601 oprnd0 is wider than oprnd1 and there is a cast from the wider
8602 type to oprnd1, mask it with the mask of the narrower type.
8603
8604 PR target/70321
8605 * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
8606 Optimize TARGET_STV splitters, if high or low word of last argument
8607 is 0 or -1.
8608
8609 2016-03-22 Jeff Law <law@redhat.com>
8610
8611 PR target/70232
8612 tree-ssa-threadbackward.c
8613 (fsm_find_control_statement_thread_paths): Correctly distinguish
8614 between old style jump threads vs FSM jump threads.
8615
8616 2016-03-22 Ilya Enkovich <enkovich.gnu@gmail.com>
8617
8618 PR target/70302
8619 * config/i386/i386.c (scalar_chain::convert_op): Support
8620 uninitialized register usage case.
8621
8622 2016-03-22 Richard Biener <rguenther@suse.de>
8623
8624 PR middle-end/70251
8625 * genmatch.c (gen_transform): Adjust last parameter to a three-state
8626 int...
8627 (capture::gen_transform): ... to change behavior when substituting
8628 a condition into cond or not-cond expr context.
8629 (dt_simplify::gen_1): Adjust.
8630 * gimple-match-head.c: Include gimplify.h for unshare_expr.
8631 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Revert
8632 last change and instead change to
8633 A + (B vcmp C ? 1 : 0) -> A - (B vcmp C ? -1 : 0).
8634 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
8635
8636 2016-03-22 Anthony Green <green@moxielogic.com>
8637
8638 * config/moxie/moxiebox.h (CC1_SPEC): Define. Fix endianness
8639 issue for moxiebox targets.
8640 (CC1PLUS_SPEC): Ditto.
8641
8642 2016-03-22 Richard Biener <rguenther@suse.de>
8643
8644 PR middle-end/70333
8645 * fold-const.c (extract_muldiv_1): Properly perform multiplication
8646 in the wide type.
8647
8648 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
8649
8650 * config/i386/i386.c (def_builtin): Remove duplicated functionality.
8651
8652 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
8653
8654 PR target/70325
8655 * config/i386/i386.c (def_builtin): Handle
8656 OPTION_MASK_ISA_AVX512VL to be and-ed with other
8657 bits.
8658 (const struct builtin_description bdesc_special_args[]):
8659 Remove duplicate ISA bits.
8660
8661 2016-03-22 Jakub Jelinek <jakub@redhat.com>
8662
8663 PR target/70329
8664 * config/i386/i386.c (ix86_expand_vecop_qihi): Don't bother computing
8665 d.perm[i] for i >= d.nelt. If not full_interleave, compute d.perm[i]
8666 in a way that works also for AVX512BW.
8667
8668 PR target/70300
8669 * config/i386/i386.md (cvtsd2ss splitter): Unpack in destination
8670 instead of source if operands[1] is xmm16 and above and
8671 !TARGET_AVX512VL. Use avx512f_vec_dupv16sf_1 instead of
8672 vec_interleave_lowv4sf if we need to unpack xmm16 and above.
8673
8674 PR c++/70295
8675 * gimplify.c (gimplify_modify_expr): Call gimple_set_no_warning
8676 on assign if (*from_p) is a comparison, set it to
8677 TREE_NO_WARNING (*from_p).
8678
8679 2016-03-21 Jakub Jelinek <jakub@redhat.com>
8680
8681 PR middle-end/70326
8682 * lra.c (restore_scratches): Ignore deleted insns.
8683
8684 2016-03-21 Marc Glisse <marc.glisse@inria.fr>
8685 Jakub Jelinek <jakub@redhat.com>
8686
8687 PR tree-optimization/70317
8688 * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
8689 to HONOR_NANS.
8690
8691 2016-03-21 Uros Bizjak <ubizjak@gmail.com>
8692
8693 PR target/70327
8694 * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
8695 of ix86_expand_move.
8696 (movoi): Ditto.
8697 (movti): Use general_operand for operand 1 predicate.
8698
8699 2016-03-21 Martin Liska <mliska@suse.cz>
8700
8701 * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
8702 insns.
8703 (dump_hsa_symbol): Dump BRIG offset of hsa_symbols.
8704
8705 2016-03-21 Martin Liska <mliska@suse.cz>
8706
8707 PR ipa/70306
8708 * ipa-icf.c (sem_function::parse): Skip static
8709 constructors and destructors.
8710
8711 2016-03-21 Jakub Jelinek <jakub@redhat.com>
8712
8713 PR target/70296
8714 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If IDENT is
8715 function-like macro, peek following token(s) if it is followed
8716 by CPP_OPEN_PAREN token with optional padding in between, and
8717 if not, don't treat it like a macro.
8718
8719 2016-03-21 Thomas Schwinge <thomas@codesourcery.com>
8720 Alexander Monakov <amonakov@ispras.ru>
8721
8722 * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
8723 for the stabs debug format.
8724
8725 2016-03-21 Richard Biener <rguenther@suse.de>
8726
8727 PR tree-optimization/70310
8728 * tree-vect-generic.c (expand_vector_condition): Fold the built
8729 condition.
8730
8731 2016-03-21 Kirill Yukhin <kirill.yukhin@intel.com>
8732
8733 PR target/70293
8734 * config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2):
8735 Block third alternative for AVX-512VL target,
8736
8737 2016-03-21 Martin Liska <mliska@suse.cz>
8738
8739 PR hsa/70234
8740 * hsa-brig.c (emit_function_directives): Mark unemitted
8741 global variables for emission.
8742 * hsa-gen.c (hsa_symbol::hsa_symbol): Initialize a new flag.
8743 (get_symbol_for_decl): Likewise.
8744 * hsa.h (struct hsa_symbol): New flag.
8745
8746 2016-03-21 Richard Biener <rguenther@suse.de>
8747
8748 PR tree-optimization/70288
8749 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Make sure
8750 we do not estimate unsimplified all-constant conditionals or
8751 switches as optimized away.
8752
8753 2016-03-21 Andrey Belevantsev <abel@ispras.ru>
8754
8755 PR rtl-optimization/69102
8756 * sched-deps.c (sched_analyze_insn): Do not set last_args_size field
8757 when we have a readonly dependency context.
8758
8759 2016-03-18 Jeff Law <law@redhat.com>
8760
8761 PR rtl-optimization/70263
8762 * ira.c (memref_used_between_p): Assert we found END in the insn chain.
8763 (update_equiv_regs): When trying to move a store to after the insn
8764 that sets the source of the store, make sure the store occurs after
8765 the insn that sets the source of the store. When successful note
8766 the REG_EQUIV note created in the dump file.
8767
8768 2016-03-16 David Wohlferd <dw@LimeGreenSocks.com>
8769 Bernd Schmidt <bschmidt@redhat.com>
8770
8771 * doc/extend.texi: Document more potential problems with basic asms.
8772
8773 2016-03-18 Bernd Schmidt <bschmidt@redhat.com>
8774
8775 PR rtl-optimization/70278
8776 * lra-constraints.c (split_reg): Handle the case where biggest_mode is
8777 VOIDmode.
8778
8779 2016-03-18 Jason Merrill <jason@redhat.com>
8780
8781 * calls.c (load_register_parameters): Fix zero size sibcall logic.
8782
8783 2016-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
8784
8785 * config/i386/sse.md: Use vpbroadcastq for broadcasting DF
8786 values to 128b regs.
8787
8788 2016-03-18 Ilya Enkovich <enkovich.gnu@gmail.com>
8789
8790 PR tree-optimization/70252
8791 * tree-vect-stmts.c (supportable_widening_operation): Check resulting
8792 boolean vector has a proper number of elements.
8793 (supportable_narrowing_operation): Likewise.
8794
8795 2016-03-18 Tom de Vries <tom@codesourcery.com>
8796
8797 PR ipa/70269
8798 * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.
8799
8800 2016-03-18 Jakub Jelinek <jakub@redhat.com>
8801
8802 * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
8803 instead of replace_rtx for DEBUG_INSNs.
8804
8805 2016-03-18 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
8806
8807 * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
8808 load type reservations.
8809
8810 2016-03-17 John David Anglin <danglin@gcc.gnu.org>
8811
8812 PR target/70188
8813 * config/pa/constraints.md: Revert 2015-02-13 change. Use
8814 define_constraint for "Q" and "T" constraints.
8815
8816 2016-03-17 Evandro Menezes <e.menezes@samsung.com>
8817
8818 Tweak the pipeline model for Exynos M1
8819
8820 * config/aarch64/aarch64.c (exynosm1_tunings): Enable weak prefetching
8821 model.
8822
8823 2016-03-17 David Malcolm <dmalcolm@redhat.com>
8824
8825 PR c/70264
8826 * diagnostic-show-locus.c (compatible_locations_p): Handle the case
8827 where one or both locations aren't within a line_map.
8828
8829 2016-03-17 H.J. Lu <hongjiu.lu@intel.com>
8830
8831 PR driver/70192
8832 * opts.c (finish_options): Don't set flag_pie to the default if
8833 -fpic, -fPIC, -fno-pic or -fno-PIC is used. Set flag_pic to 0
8834 if it is -1.
8835
8836 2016-03-17 Joern Rennecke <joern.rennecke@embecosm.com>
8837
8838 * config/i386/i386.md (*movv4qicc_insn+1..36): Pass
8839 true as ALL_REGS argument to replace_rtx.
8840
8841 2016-03-17 Richard Biener <rguenther@suse.de>
8842
8843 PR debug/70271
8844 * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
8845 last.
8846
8847 2016-03-17 Jakub Jelinek <jakub@redhat.com>
8848
8849 PR target/70245
8850 * rtl.h (replace_rtx): Add ALL_REGS argument.
8851 * rtlanal.c (replace_rtx): Likewise. If true, use REGNO
8852 equality and assert mode is the same, instead of just rtx pointer
8853 equality.
8854 * config/i386/i386.md (mov + arithmetics with load peephole): Pass
8855 true as ALL_REGS argument to replace_rtx.
8856
8857 2016-03-17 Ilya Enkovich <enkovich.gnu@gmail.com>
8858
8859 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply
8860 for boolean vector with vector mode only.
8861 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
8862
8863 2016-03-17 Nick Clifton <nickc@redhat.com>
8864
8865 PR target/70162
8866 * config/rx/rx.c (rx_print_integer): Print negative constants in
8867 decimal.
8868
8869 2016-03-17 Jakub Jelinek <jakub@redhat.com>
8870
8871 PR target/70261
8872 * rtlanal.c (replace_rtx): Revert 2016-03-16 change.
8873
8874 2016-03-16 Richard Henderson <rth@redhat.com>
8875 Richard Biener <rguenth@suse.de>
8876
8877 PR middle-end/70240
8878 PR middle-end/68215
8879 PR tree-opt/68714
8880 * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
8881 first operand as is_gimple_condexpr.
8882
8883 PR middle-end/70240
8884 PR middle-end/68215
8885 Revert r231575
8886 2015-12-11 Eric Botcazou <ebotcazou@adacore.com>
8887 * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter.
8888 Do not gimplify the result.
8889 (do_unop): Adjust call to tree_vec_extract.
8890 (do_binop): Likewise.
8891 (do_compare): Likewise.
8892 (do_plus_minus): Likewise.
8893 (do_negate): Likewise.
8894 (expand_vector_condition): Likewise.
8895 (do_cond): Likewise.
8896
8897 2016-03-16 Richard Henderson <rth@redhat.com>
8898
8899 PR target/70048
8900 * config/aarch64/aarch64.c (virt_or_elim_regno_p): New.
8901 (aarch64_classify_address): Use it.
8902 (aarch64_legitimize_address): Force all subexpressions of PLUS
8903 into registers. Simplify as (sfp+const)+reg or (reg+reg)+const.
8904
8905 2016-03-16 Jakub Jelinek <jakub@redhat.com>
8906 Richard Biener <rguenth@suse.de>
8907
8908 PR target/70245
8909 * rtlanal.c (replace_rtx): For REG, if from is a REG,
8910 return to even if only REGNO is equal, and assert
8911 mode is the same.
8912
8913 2016-03-11 Jeff Law <law@redhat.com>
8914
8915 PR rtl-optimization/70224
8916 * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
8917
8918 2016-03-16 Richard Henderson <rth@redhat.com>
8919
8920 PR middle-end/70199
8921 * function.h (struct function): Add has_forced_label_in_static.
8922 * gimplify.c (force_labels_r): Set it.
8923 * lto-streamer-in.c (input_struct_function_base): Read it.
8924 * lto-streamer-out.c (output_struct_function_base): Write it.
8925 * tree-inline.c (has_label_address_in_static_1): Remove.
8926 (copy_forbidden): Remove fndecl parameter; test
8927 has_forced_label_in_static.
8928 (inline_forbidden_p): Update call to copy_forbidden.
8929 (tree_versionable_function_p): Likewise.
8930 * ipa-chkp.c (chkp_instrumentable_p): Likewise.
8931 (chkp_versioning): Likewise.
8932 * tree-inline.h (copy_forbidden): Update decl.
8933
8934 2016-03-16 Marek Polacek <polacek@redhat.com>
8935
8936 PR c/70093
8937 * cgraphunit.c (cgraph_node::expand_thunk): Also build call to the
8938 function being thunked if the result type doesn't have fixed size.
8939 * gimplify.c (gimplify_modify_expr): Also set LHS if the result type
8940 doesn't have fixed size.
8941
8942 2016-03-16 Bin Cheng <bin.cheng@arm.com>
8943
8944 * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
8945 reporting malformed loop nest.
8946
8947 2016-03-16 Tom de Vries <tom@codesourcery.com>
8948
8949 PR lto/70187
8950 * ipa-devirt.c (possible_polymorphic_call_targets): Move
8951 nodes.length () == 1 test to before first nodes[0] access.
8952
8953 2016-03-16 Tom de Vries <tom@codesourcery.com>
8954
8955 PR tree-optimization/68715
8956 * graphite-scop-detection.c (scop_detection::merge_sese): Add missing
8957 single_pred_p test.
8958
8959 2016-03-16 Tom de Vries <tom@codesourcery.com>
8960
8961 PR tree-optimization/68809
8962 * graphite-scop-detection.c (same_close_phi_node): Test if result types
8963 are the same.
8964
8965 2016-03-16 Carlos O'Donell <carlos@redhat.com>
8966 Sandra Loosemore <sandra@codesourcery.com>
8967
8968 * doc/extend.texi (Common Function Attributes): Describe ifunc impact
8969 on leaf attribute. Mention ELF interposition problems.
8970
8971 2016-03-16 Alan Modra <amodra@gmail.com>
8972
8973 PR rtl-optimization/69195
8974 PR rtl-optimization/47992
8975 * ira.c (indirect_jump_optimize): Ignore artificial defs.
8976 Add comments.
8977
8978 2016-03-15 Eric Botcazou <ebotcazou@adacore.com>
8979
8980 PR bootstrap/69513
8981 * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.
8982
8983 2016-03-15 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
8984
8985 * config/avr/avr.md (rotl<mode>3): Set mode for operand 2.
8986
8987 2016-03-15 Jakub Jelinek <jakub@redhat.com>
8988
8989 PR rtl-optimization/70222
8990 * combine.c (simplify_shift_const_1): For A >> B >> C LSHIFTRT
8991 optimization if mode is different from result_mode, queue up masking
8992 of the result in outer_op. Formatting fix.
8993
8994 PR middle-end/70239
8995 * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
8996 of safe_grow.
8997
8998 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
8999
9000 PR rtl-optimization/69032
9001 * sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
9002 looping backwards over basic block insns.
9003
9004 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
9005
9006 PR target/66660
9007 * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
9008 to non-speculative when propagating trap bits.
9009
9010 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
9011
9012 PR rtl-optimization/63384
9013 * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
9014 DEBUG_INSN_P insns.
9015
9016 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
9017
9018 PR target/64411
9019 * sched-deps.c (get_implicit_reg_pending_clobbers): New function,
9020 factored out from ...
9021 (sched_analyze_insn): ... here.
9022 * sched-int.h (get_implicit_reg_pending_clobbers): Declare it.
9023 * sel-sched-ir.c (setup_id_implicit_regs): New function, use
9024 get_implicit_reg_pending_clobbers in it.
9025 (setup_id_reg_sets): Use setup_id_implicit_regs.
9026 (deps_init_id): Ditto.
9027
9028 2016-03-15 Tom de Vries <tom@codesourcery.com>
9029
9030 PR ipa/70161
9031 * cgraph.c (cgraph_node::get_body): Save, reset and restore
9032 dump_file_name.
9033 * passes.c (execute_one_ipa_transform_pass): Add missing argument to
9034 execute_function_dump.
9035 (execute_one_pass): Don't dump function if it will be dumped after ipa
9036 transform.
9037
9038 2016-03-15 Segher Boessenkool <segher@kernel.crashing.org>
9039
9040 * genrecog.c (match_pattern_2): If pred is NULL don't call
9041 safe_predicate_mode on it.
9042
9043 2016-03-14 Jakub Jelinek <jakub@redhat.com>
9044
9045 PR middle-end/70219
9046 * lra-constraints.c (delete_move_and_clobber): Change assertion
9047 to also allow dregno == 0.
9048
9049 2016-03-14 Richard Henderson <rth@redhat.com>
9050
9051 PR tree-opt/68714
9052 * tree-ssa-reassoc.c (ovce_extract_ops, optimize_vec_cond_expr): New.
9053 (can_reassociate_p): Allow ANY_INTEGRAL_TYPE_P.
9054 (reassociate_bb): Use optimize_vec_cond_expr; avoid
9055 optimize_range_tests, attempt_builtin_copysign and attempt_builtin_powi
9056 on vectors.
9057
9058 2016-03-14 Bernd Schmidt <bschmidt@redhat.com>
9059
9060 PR target/70083
9061 * lra-lives.c (process_bb_lives): Also update biggest mode for hard
9062 regs.
9063 (lra_create_live_ranges_1): initialize hard register biggest_mode to
9064 VOIDmode.
9065 * lra-constraints.c (split_reg): For hard regs, try to find the
9066 biggest single-register mode used in the function.
9067
9068 2016-03-14 Richard Biener <rguenther@suse.de>
9069
9070 PR tree-optimization/56365
9071 * tree-ssa-phiopt.c (minmax_replacement): Handle alternate
9072 constants to compare against.
9073
9074 2016-03-14 Segher Boessenkool <segher@kernel.crashing.org>
9075
9076 PR target/70098
9077 * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
9078 *ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output.
9079 (define_split for the GPR case): Use int_reg_operand instead of
9080 gpc_reg_operand for the output.
9081
9082 2016-03-14 Tom de Vries <tom@codesourcery.com>
9083
9084 PR tree-optimization/70045
9085 * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Unshare
9086 create_empty_if_region_on_edge argument.
9087
9088 2016-03-13 Eric Botcazou <ebotcazou@adacore.com>
9089
9090 * config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define.
9091 (STACK_CHECK_PROTECT): Likewise.
9092 * config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
9093 (STACK_CHECK_PROTECT): Likewise.
9094 * config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
9095 (STACK_CHECK_PROTECT): Likewise.
9096 * config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise.
9097 * config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
9098 (STACK_CHECK_PROTECT): Likewise.
9099
9100 2016-03-12 Andrey Belevantsev <abel@ispras.ru>
9101
9102 PR rtl-optimization/69307
9103 * sel-sched.c (choose_best_pseudo_reg): Properly check for hard
9104 registers in modes that span more than one register.
9105
9106 2016-03-12 Vladimir Makarov <vmakarov@redhat.com>
9107
9108 PR target/69614
9109 * lra-constraints.c (delete_move_and_clobber): New.
9110 (remove_inheritance_pseudos): Use it.
9111
9112 2016-03-12 Eric Botcazou <ebotcazou@adacore.com>
9113
9114 PR ada/70017
9115 * calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if
9116 the libcall is LCT_THROW.
9117 * explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call
9118 for the checking routine.
9119
9120 2016-03-11 Michael Meissner <meissner@linux.vnet.ibm.com>
9121
9122 PR target/70131
9123 * config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the
9124 optimization if we have direct move.
9125 (roundu32<mode>2_fprs): Likewise.
9126
9127 2016-03-11 Bernd Schmidt <bschmidt@redhat.com>
9128
9129 PR target/70123
9130 * lra-remat.c (operand_to_remat): Disallow hard regs in the value t
9131 be rematerialized.
9132 (reg_overlap_for_remat_p): Renamed from input_regno_present_p.
9133 Arguments swapped. All callers changed. Take reg_renumber into
9134 account, and Calculate and compare register ranges for hard regs.
9135
9136 2016-03-11 Jeff Law <law@redhat.com>
9137
9138 PR tree-optimization/70190
9139 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
9140 Handle cases where we can not extract the taken edge, even though we
9141 found a constant value.
9142
9143 PR tree-optimization/64058
9144 * tree-ssa-coalesce.c (struct coalesce_pair): Add new field INDEX.
9145 (num_coalesce_pairs): Move up earlier in file.
9146 (find_coalesce_pair): Initialize the INDEX field for each pair
9147 discovered.
9148 (compare_pairs): No longer sort on the elements in each pair.
9149 Instead break ties with the index of the coalesce pair.
9150
9151 2016-03-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9152
9153 PR target/70002
9154 * config/aarch64/aarch64-protos.h
9155 (aarch64_save_restore_target_globals): New prototype.
9156 * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
9157 Call the above when popping pragma.
9158 * config/aarch64/aarch64.c (aarch64_save_restore_target_globals):
9159 New function.
9160 (aarch64_set_current_function): Rewrite using the above.
9161
9162 2016-03-11 Jakub Jelinek <jakub@redhat.com>
9163
9164 PR tree-optimization/70177
9165 * gimple-expr.h (extract_ops_from_tree_1): Renamed to ...
9166 (extract_ops_from_tree): ... this. In the 2 argument
9167 overload remove _1 suffix.
9168 * gimple-expr.c (extract_ops_from_tree_1): Renamed to ...
9169 (extract_ops_from_tree): ... this.
9170 * gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree):
9171 Adjust callers.
9172 * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
9173 * tree-ssa-forwprop.c (defcodefor_name): Call 3 operand
9174 extract_ops_from_tree instead of 2 operand one.
9175
9176 2016-03-11 Alan Lawrence <alan.lawrence@arm.com>
9177
9178 PR tree-optimization/70013
9179 * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
9180 for constant-pool entries.
9181
9182 2016-03-11 Jakub Jelinek <jakub@redhat.com>
9183
9184 PR rtl-optimization/70174
9185 * expmed.c (store_bit_field_using_insv): Use gen_lowpart_if_possible
9186 followed by gen_lowpart on force_reg instead of just gen_lowpart.
9187
9188 PR tree-optimization/70169
9189 * tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and
9190 LABEL_DECL like VAR_DECL. Emit nothing instead of gcc_unreachable
9191 for unknown codes.
9192
9193 2016-03-11 Ilya Enkovich <enkovich.gnu@gmail.com>
9194 Jakub Jelinek <jakub@redhat.com>
9195
9196 PR target/70160
9197 * config/i386/i386.c (scalar_chain::convert_reg): Skip uses
9198 of uninitialized values.
9199
9200 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9201
9202 * config/s390/s390.md ("trunctddd2"): Turn former define_insn into
9203 define_expand.
9204 ("*trunctddd2"): New pattern definition.
9205 ("trunctdsd2"): Set prep_for_short_prec rounding mode for the
9206 TD->DD truncation.
9207
9208 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9209
9210 * config/s390/s390.md (BFP_RND_*, DFP_RND_*): Add new constant
9211 definitions for BFP and DFP rounding modes.
9212 ("fixuns_truncdddi2", "fixuns_trunctddi2")
9213 ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2")
9214 ("fix_trunc<DSF:mode><GPR:mode>2", "fix_trunc<mode>di2")
9215 ("fix_trunctf<mode>2"): Use the new constants instead of magic
9216 numbers.
9217
9218 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9219
9220 * config/s390/constraints.md: Adjust comment.
9221 ("Y"): Adjust comment. Rename s390_decompose_shift_count to
9222 s390_decompose_addrstyle_without_index.
9223 * config/s390/predicates.md (shift_count_or_setmem_operand):
9224 Rename to setmem_operand.
9225 * config/s390/s390-protos.h
9226 (s390_decompose_shift_count): Rename to
9227 s390_decompose_addrstyle_without_index.
9228 * config/s390/s390.c (s390_decompose_shift_count)
9229 (s390_mem_constraint, print_shift_count_operand)
9230 (print_operand_address, print_operand): Rename
9231 s390_decompose_shift_count to
9232 s390_decompose_addrstyle_without_index and rename
9233 print_shift_count_operand to print_addrstyle_operand troughout the
9234 file.
9235 * config/s390/s390.md ("setmem_long_<P:mode>", "*setmem_long")
9236 ("*setmem_long_and", "*setmem_long_31z", "*setmem_long_and_31z"):
9237 Rename shift_count_or_setmem_operand to setmem_operand.
9238 * config/s390/vx-builtins.md ("vec_insert<mode>")
9239 ("vec_promote<mode>"): Replace shift_count_or_setmem_operand with
9240 nonmemory_operand.
9241
9242 2016-03-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9243
9244 PR target/70168
9245 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
9246 Handle overlapping retval and newval.
9247
9248 2016-03-10 Nick Clifton <nickc@redhat.com>
9249
9250 PR target/7044
9251 * config/aarch64/aarch64.c
9252 (aarch64_override_options_after_change_1): When forcing
9253 flag_omit_frame_pointer to be true, use a special value that can
9254 be detected if this function is called again, thus preventing
9255 flag_omit_leaf_frame_pointer from being forced to be false.
9256
9257 2016-03-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9258
9259 * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
9260 Set x_flag_omit_leaf_frame_pointer when handling
9261 -momit-leaf-frame-pointer.
9262
9263 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
9264
9265 PR lto/69589
9266 * cgraph.c (cgraph_node::dump): Dump split_part and
9267 indirect_call_target.
9268 * cgraph.h (cgraph_node): Add indirect_call_target flag.
9269 * ipa.c (has_addr_references_p): Cleanup.
9270 (is_indirect_call_target_p): New.
9271 (walk_polymorphic_call_targets): Do not mark virtuals that may be
9272 called indirectly as local.
9273 (symbol_table::remove_unreachable_nodes): Compute indirect_call_target.
9274
9275 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
9276
9277 PR ipa/69630
9278 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
9279 on cxa_pure_virtual.
9280
9281 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
9282
9283 PR lto/69589
9284 * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
9285
9286 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
9287
9288 PR lto/69589
9289 * tree.c (need_assembler_name_p): Only record main variant type names.
9290
9291 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
9292
9293 PR target/70113.
9294 * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_843419_DEFAULT):
9295 Always define to 0 or 1.
9296 (TARGET_FIX_ERR_A53_843419): New macro.
9297 * config/aarch64/aarch64-elf-raw.h
9298 (TARGET_FIX_ERR_A53_843419_DEFAULT): Update for above changes.
9299 * config/aarch64/aarch64-linux.h: Likewise.
9300 * config/aarch64/aarch64.c
9301 (aarch64_override_options_after_change_1): Do not default
9302 aarch64_nopcrelative_literal_loads to true if Cortex-A53 erratum
9303 843419 is on.
9304 (aarch64_attributes): Handle fix-cortex-a53-843419.
9305 (aarch64_can_inline_p): Likewise.
9306 * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.
9307
9308 2016-03-10 Alan Lawrence <alan.lawrence@arm.com>
9309 Jakub Jelinek <jakub@redhat.com>
9310
9311 * common.opt (funconstrained-commons, flag_unconstrained_commons): New.
9312 * tree.c (array_at_struct_end_p): Do not limit to size of decl for
9313 DECL_COMMONS if flag_unconstrained_commons is set.
9314 * tree-dfa.c (get_ref_base_and_extent): Likewise.
9315 * doc/invoke.texi (Optimize Options): Add -funconstrained-commons.
9316 (funconstrained-commons): Document.
9317
9318 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
9319
9320 * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
9321 aarch64-fusion-pairs.def and aarch64-tuning-flags.def
9322
9323 2016-03-10 Ilya Enkovich <enkovich.gnu@gmail.com>
9324
9325 * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
9326 has a proper number of elements.
9327
9328 2016-03-10 Alan Modra <amodra@gmail.com>
9329
9330 PR rtl-optimization/69195
9331 PR rtl-optimization/47992
9332 * ira.c (recorded_label_ref): Delete.
9333 (update_equiv_regs): Return void.
9334 (indirect_jump_optimize): New function.
9335 (ira): Call indirect_jump_optimize and delete_trivially_dead_insns
9336 before regstat_compute_ri. Don't rebuild_jump_labels here.
9337 Delete update_regstat.
9338
9339 2016-03-10 Richard Biener <rguenther@suse.de>
9340
9341 PR tree-optimization/70128
9342 * tree-ssa-structalias.c (set_uids_in_ptset): Set
9343 vars_contains_nonlocal for any FUNCTION_DECL or LABEL_DECL.
9344
9345 2016-03-09 Jakub Jelinek <jakub@redhat.com>
9346
9347 PR tree-optimization/70152
9348 * tree-sra.c (replace_removed_params_ssa_names): Copy over
9349 SSA_NAME_OCCURS_IN_ABNORMAL_PHI from old_name to new_name.
9350
9351 PR target/70086
9352 * config/i386/i386.md (truncdfsf2 splitter): Use gen_vec_concatv2df
9353 instead of gen_sse2_loadlpd.
9354 * config/i386/sse.md (*vec_concatv2df): Rename to...
9355 (vec_concatv2df): ... this.
9356
9357 PR tree-optimization/70127
9358 * fold-const.c (operand_equal_p): Revert the 2015-10-28 change.
9359
9360 2016-03-09 David Malcolm <dmalcolm@redhat.com>
9361
9362 PR c/68473
9363 PR c++/70105
9364 * diagnostic-show-locus.c (compatible_locations_p): New function.
9365 (layout::layout): Sanitize ranges using compatible_locations_p.
9366
9367 2016-03-09 David Malcolm <dmalcolm@redhat.com>
9368
9369 PR c/68473
9370 PR c++/70105
9371 * diagnostic-show-locus.c (layout_range::layout_range): Replace
9372 location_range param with three const expanded_locations * and a
9373 bool.
9374 (layout::layout): Replace call to
9375 rich_location::lazily_expand_location with get_expanded_location.
9376 Extract the range and perform location expansion here, passing
9377 the results to the layout_range ctor.
9378 * diagnostic.c (source_range::debug): Delete.
9379 * diagnostic.h (diagnostic_expand_location): Reimplement in terms
9380 of rich_location::get_expanded_location.
9381 * gcc-rich-location.c (get_range_for_expr): Delete.
9382 (gcc_rich_location::add_expr): Reimplement to avoid the
9383 rich_location::add_range overload that took a location_range,
9384 passing a location_t instead.
9385
9386 2016-03-09 Richard Biener <rguenther@suse.de>
9387 Jakub Jelinek <jakub@redhat.com>
9388
9389 PR tree-optimization/70138
9390 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
9391 Also skip vect_double_reduction_def.
9392
9393 2016-03-09 Jakub Jelinek <jakub@redhat.com>
9394
9395 PR target/70049
9396 * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
9397 if the operand is "m".
9398
9399 2016-03-09 Nathan Sidwell <nathan@acm.org>
9400
9401 * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.
9402
9403 2016-03-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
9404
9405 * config/i386/i386.c (processor_target_table): Fix cost table
9406 intialization order for znver1.
9407
9408 2016-03-08 Jakub Jelinek <jakub@redhat.com>
9409
9410 * ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling
9411 - becuase -> because.
9412 * ipa-reference.c (ignore_module_statics): Likewise.
9413 * cgraph.c (cgraph_node::get_body): Likewise.
9414 * ipa-inline.c (early_inliner): Likewise.
9415 * ipa-devirt.c (types_same_for_odr): Likewise.
9416 * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
9417 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Likewise.
9418
9419 2016-03-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9420
9421 * tree-ssa-math-opts.c: Fix typo in comment.
9422
9423 2016-03-08 Jakub Jelinek <jakub@redhat.com>
9424
9425 PR target/70110
9426 * config/i386/i386.c (scalar_chain::make_vector_copies,
9427 scalar_chain::convert_reg): Call end_sequence in between
9428 get_insns and emit_conversion_insns rather than after both
9429 calls.
9430
9431 2016-03-07 Uros Bizjak <ubizjak@gmail.com>
9432
9433 PR target/70064
9434 * config/i386/i386.h (machine_function): Add
9435 pc_thunk_call_expanded flag.
9436 (ix86_pc_thunk_call_expanded): New define.
9437 * config/i386/i386.md (set_got, set_got_labelled): New expanders.
9438 (*set_got): Rename insn pattern from set_got.
9439 (*set_got_labelled): Rename inst pattern from set_got_labelled.
9440 * config/i386/i386.c (ix86_compute_frame_layout): Use
9441 ix86_pc_thunk_call_expanded to prevent red-zone.
9442
9443 2016-03-07 Martin Jambor <mjambor@suse.cz>
9444
9445 * hsa.h (hsa_get_ctor_statements): Declare.
9446 (hsa_get_dtor_statements): Likewise.
9447 (hsa_get_kernel_dispatch_type): Likewise.
9448 * hsa.c (hsa_get_ctor_statements): New function.
9449 (hsa_get_dtor_statements): Likewise.
9450 (hsa_get_kernel_dispatch_type): Likewise.
9451 * hsa-brig.c (hsa_cdtor_statements): Removed.
9452 (hsa_output_libgomp_mapping): Use hsa_get_ctor_statements and
9453 hsa_get_dtor_statements.
9454 * hsa-gen.c (hsa_kernel_dispatch_type): Removed.
9455 (get_hsa_kernel_dispatch_offset): Use hsa_get_kernel_dispatch_type.
9456
9457 2016-03-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
9458
9459 * config/arm/arm-cores.def (cortex-r8): New.
9460 * config/arm/arm-tables.opt (cortex-r8): Regenerate.
9461 * config/arm/arm-tune.md: Likewise.
9462 * doc/invoke.texi: Add cortex-r8 to list of cpu values.
9463
9464 2016-03-07 Martin Sebor <msebor@redhat.com>
9465
9466 PR rtl-optimization/19705
9467 * doc/invoke.texi (Options That Control Optimization): Clarify
9468 -fno-branch-count-reg.
9469
9470 2016-02-26 Richard Biener <rguenther@suse.de>
9471 Jeff Law <law@redhat.com>
9472
9473 PR tree-optimization/69740
9474 * cfghooks.c (remove_edge): Request loop fixups if we delete
9475 an edge that might turn an irreducible loop into a natural
9476 loop.
9477 * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
9478 Move after definition of loops_state_clear.
9479
9480 2016-03-07 Bin Cheng <bin.cheng@arm.com>
9481
9482 PR rtl-optimization/69052
9483 * rtlanal.c (commutative_operand_precedence): Set higher precedence
9484 to CONST_WIDE_INT.
9485
9486 2016-03-07 Tom de Vries <tom@codesourcery.com>
9487
9488 PR tree-optimization/70116
9489 * tree-ssa-tail-merge.c (merge_stmts_p): New function, handling
9490 is_tm_ending stmts and ubsan/asan internal functions.
9491 (find_duplicate): Use it. Don't test is_tm_ending here.
9492
9493 2016-03-07 Richard Biener <rguenther@suse.de>
9494
9495 PR tree-optimization/70115
9496 * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
9497 (propagate_constants_for_unrolling): Use replace_uses_by.
9498
9499 2016-03-07 Nathan Sidwell <nathan@codesourcery.com>
9500
9501 PR middle-end/69916
9502 * omp-low.c (struct oacc_loop): Add ifns.
9503 (new_oacc_loop_raw): Initialize it.
9504 (finish_oacc_loop): Clear mask & flags if no ifns.
9505 (oacc_loop_discover_walk): Count IFN_GOACC_LOOP calls.
9506 (oacc_loop_xform_loop): Add ifns arg & adjust.
9507 (oacc_loop_process): Adjust oacc_loop_xform_loop call.
9508
9509 2016-03-07 Richard Henderson <rth@redhat.com>
9510
9511 PR rtl-opt/70061
9512 * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
9513 (insert_value_copy_on_edge): Likewise.
9514
9515 2016-03-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9516
9517 * config/arm/arm_neon.h: Show error if using with soft-float ABI.
9518
9519 2016-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9520
9521 PR target/62281
9522 * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
9523
9524 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
9525
9526 * config/i386/i386.c (znver1_cost): Fix Multiply cost.
9527
9528 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
9529
9530 Fix sseimul type attribute.
9531 * config/i386/znver1.md
9532 (znver1_sseimul, znver1_sseimul_avx256, znver1_sseimul_load,
9533 znver1_sseimul_avx256_load) : Fix the type attribute.
9534 (znver1_sseimul_di, znver1_sseimul_load_di): Fix type attribute,
9535 pipe usage and latency.
9536
9537 2016-03-05 Jakub Jelinek <jakub@redhat.com>
9538
9539 PR c++/70084
9540 * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
9541 of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
9542 to the right type.
9543
9544 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
9545
9546 PR c/69973
9547 * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
9548
9549 PR rtl-optimization/69941
9550 * postreload.c (reload_combine_recognize_pattern): Ensure all uses of
9551 the reg share its mode.
9552
9553 2016-03-04 Jeff Law <law@redhat.com>
9554
9555 PR tree-optimization/69196
9556 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
9557 If the both SSA_NAMEs are anonymous, then consider them unassociated
9558 and include the PHI in the statement count.
9559
9560 2016-03-05 Tom de Vries <tom@codesourcery.com>
9561
9562 * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
9563 construct in oacc routine. Check for oacc region in oacc routine.
9564
9565 2016-03-04 Jakub Jelinek <jakub@redhat.com>
9566
9567 PR target/70062
9568 * config/i386/i386.c (decide_alg): Add RECUR argument. Revert
9569 2016-02-22 changes, instead don't recurse if RECUR is already true.
9570 Don't change *dynamic_check if RECUR. Adjust recursive caller
9571 to pass true to the new argument.
9572 (ix86_expand_set_or_movmem): Adjust decide_alg caller.
9573
9574 PR target/70059
9575 * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
9576 <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
9577 fixes.
9578 (vec_set_hi_<mode><mask_name>): Likewise. Swap VEC_CONCAT operands.
9579
9580 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
9581
9582 PR rtl-optimization/57676
9583 * lra-assigns.c (lra_assign): Guard test for maximum iterations
9584 with flag_checking.
9585
9586 2016-03-04 Ilya Enkovich <enkovich.gnu@gmail.com>
9587
9588 * tree-vect-patterns.c (search_type_for_mask): Handle
9589 comparison of booleans.
9590
9591 2016-03-04 Jakub Jelinek <jakub@redhat.com>
9592
9593 * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
9594 Fix @xref usage.
9595
9596 PR debug/69947
9597 * dwarf2out.c (prune_unused_types_walk_loc_descr): Handle
9598 all other ops that have dw_val_class_die_ref operands,
9599 and DW_OP_GNU_entry_value.
9600
9601 2016-03-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9602
9603 PR rtl-optimization/69904
9604 * config/arm/arm.c (arm_cannot_copy_insn_p):
9605 Return true for load-exclusive instructions.
9606
9607 2016-03-03 Jakub Jelinek <jakub@redhat.com>
9608
9609 PR target/70021
9610 * tree-vect-stmts.c (vect_mark_relevant): Remove USED_IN_PATTERN
9611 argument, if STMT_VINFO_IN_PATTERN_P (stmt_info), always mark
9612 the pattern no matter if it is used just by non-pattern, pattern
9613 or mix thereof.
9614 (process_use, vect_mark_stmts_to_be_vectorized): Adjust callers.
9615 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
9616 oprnd1 def_stmt is in pattern, don't look through it.
9617
9618 2016-03-03 Marek Polacek <polacek@redhat.com>
9619
9620 PR middle-end/70050
9621 * match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
9622
9623 2016-03-03 Martin Liska <mliska@suse.cz>
9624
9625 PR tree-optimization/70043
9626 * tree-vect-loop.c (optimize_mask_stores): Move iterator to
9627 previous statement if we see a debug statement.
9628
9629 2016-03-03 Richard Biener <rguenther@suse.de>
9630
9631 PR tree-optimization/55936
9632 * tree-vrp.c (compare_name_with_value): Add use_equiv_p
9633 parameter and guard unsafe equivalence use.
9634 (vrp_evaluate_conditional_warnv_with_ops): Always use
9635 safe equivalences but not via the quadratic compare_names
9636 helper.
9637
9638 2016-03-03 Michael Collison <michael.collison@linaro.org>
9639
9640 PR target/70014
9641 * config/arm/arm.md (*subsi3_carryin_const): Change predicate
9642 for operand 1 to s_register_operand. Change predicate for operand
9643 2 to arm_not_immediate_operand.
9644
9645 2016-03-02 H.J. Lu <hongjiu.lu@intel.com>
9646
9647 * doc/tm.texi: Regenerated.
9648
9649 2016-03-02 Richard Henderson <rth@redhat.com>
9650
9651 PR rtl-opt/67145
9652 * simplify-rtx.c (simplify_plus_minus): Allow reassoc without
9653 simplification when all args are positive non-fixed registers.
9654
9655 2016-03-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9656
9657 * target.def (lra_p): Specify that new ports should use LRA.
9658
9659 2016-03-02 Jakub Jelinek <jakub@redhat.com>
9660
9661 PR libgomp/69555
9662 * gimplify.c (gimplify_decl_expr): For decls with REFERENCE_TYPE, also
9663 gimplify_type_sizes the type they refer to.
9664 (omp_notice_variable): Handle reference vars to VLAs.
9665 * omp-low.c (lower_omp_target): Emit setup of OMP_CLAUSE_PRIVATE
9666 reference to VLA decls in the second pass instead of first pass.
9667
9668 2016-03-02 Tom de Vries <tom@codesourcery.com>
9669
9670 PR tree-optimization/68659
9671 * graphite-isl-ast-to-gimple.c (collect_all_ssa_names): Handle
9672 new_expr == NULL_TREE.
9673 (get_new_name): Handle ADDR_EXPR.
9674
9675 2016-03-02 Bin Cheng <bin.cheng@arm.com>
9676
9677 PR rtl-optimization/69052
9678 * loop-invariant.c (canonicalize_address): New function.
9679 (inv_can_prop_to_addr_use): Check validity of address expression
9680 which is canonicalized by above function.
9681
9682 2016-03-02 Alan Modra <amodra@gmail.com>
9683
9684 PR ipa/69990
9685 * ipa-icf.c (sem_variable::merge): Do not merge an alias with
9686 larger alignment.
9687
9688 2016-03-02 Jakub Jelinek <jakub@redhat.com>
9689
9690 PR target/70028
9691 * config/i386/i386.md (kmovw): Move m constraint to 2nd alternative.
9692 (*movhi_internal): Put mask moves from and to memory separately
9693 from moves from/to GPRs.
9694
9695 2016-03-02 Richard Biener <rguenther@suse.de>
9696
9697 * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
9698 GENERIC expressions in GIMPLE.
9699
9700 2016-03-02 Richard Biener <rguenther@suse.de>
9701
9702 * config/i386/i386.c (type_natural_mode): Fix typo.
9703
9704 2016-03-02 Nick Clifton <nickc@redhat.com>
9705
9706 * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.
9707
9708 2016-03-02 Richard Biener <rguenther@suse.de>
9709 Uros Bizjak <ubizjak@gmail.com>
9710
9711 PR target/67278
9712 * config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
9713
9714 2016-03-02 Richard Biener <rguenther@suse.de>
9715
9716 PR middle-end/67278
9717 * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
9718
9719 2016-03-02 Marek Polacek <polacek@redhat.com>
9720
9721 PR c/67854
9722 * gimplify.c (gimplify_va_arg_expr): Use expanded location for the
9723 "is promoted to" warning.
9724
9725 2016-03-01 DJ Delorie <dj@redhat.com>
9726
9727 * config.gcc: Deprecate mep-*.
9728
9729 2016-03-01 Vladimir Makarov <vmakarov@redhat.com>
9730
9731 PR middle-end/70025
9732 * lra-constraints.c (regno_val_use_in): New.
9733 (match_reload): Use it instead of regno_use_in.
9734
9735 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
9736
9737 PR rtl-optimization/70007
9738 * gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
9739 references present in REG_EQUAL notes attached to non-SET patterns.
9740
9741 2016-03-01 Jeff Law <law@redhat.com>
9742
9743 PR tree-optimization/69196
9744 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
9745 Appropriately clamp the number of statements to copy when the
9746 thread path does not traverse a loop backedge.
9747
9748 PR tree-optimization/69196
9749 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
9750 Do count some PHIs in the thread path against the insn count. Decrease
9751 final statement count by one as the control statement in the last
9752 block will get removed. Remove special cased code for handling PHIs
9753 in the last block.
9754
9755 2016-03-01 Uros Bizjak <ubizjak@gmail.com>
9756
9757 PR target/70027
9758 * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
9759 asm dialect alternatives to explicit GOTPCREL calls.
9760
9761 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
9762
9763 PR ada/70017
9764 * ira.c (do_reload): Issue warning for generic stack checking here...
9765 * reload1.c (reload): ...instead of here and streamline it.
9766
9767 2016-03-01 Nick Clifton <nickc@redhat.com>
9768
9769 * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
9770
9771 2016-03-01 Richard Biener <rguenther@suse.de>
9772
9773 PR tree-optimization/69983
9774 * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
9775 types and fall back to operand_equal_p.
9776
9777 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9778
9779 Revert
9780 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9781
9782 * config/s390/constraints.md ("jm8"): New constraint.
9783 * config/s390/predicates.md ("const_int_8bitset_operand"): New
9784 predicate.
9785 * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
9786 into ...
9787 ("*setmem_long<setmem_and>"): New pattern.
9788 ("*setmem_long_31z", "*setmem_long_and_31z"): Merge
9789 into ...
9790 ("*setmem_long_31z<setmem_and>"): New pattern.
9791 * config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
9792 New substitution rules with the required attributes.
9793
9794
9795 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9796
9797 Revert
9798 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9799
9800 * gensupport.c (process_substs_on_one_elem): Split loop to
9801 complete mark_operands_used_in_match_dup on all expressions in the
9802 vector first.
9803 (adjust_operands_numbers): Inline into process_substs_on_one_elem
9804 and remove function.
9805
9806 2016-03-01 Richard Biener <rguenther@suse.de>
9807
9808 PR middle-end/70022
9809 * fold-const.c (fold_indirect_ref_1): Fix range checking for
9810 vector BIT_FIELD_REF extract.
9811
9812 2016-03-01 Richard Biener <rguenther@suse.de>
9813
9814 PR tree-optimization/69994
9815 * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
9816
9817 2016-03-01 Ilya Enkovich <enkovich.gnu@gmail.com>
9818
9819 PR tree-optimization/69956
9820 * tree-vect-stmts.c (supportable_widening_operation): Support
9821 multi-step conversion of boolean vectors.
9822 (supportable_narrowing_operation): Likewise.
9823
9824 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9825
9826 * config/s390/s390.c (s390_decompose_address): Don't accept SImode
9827 anymore.
9828
9829 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9830
9831 * config/s390/subst.md (DSI_VI): New mode iterator.
9832 ("addr_style_op_subst"): Use DSI_VI instead of DSI.
9833 * config/s390/vector.md ("vec_set<mode>"): Move expander before
9834 the insn definition.
9835 ("*vec_set<mode>"): Change predicate and add alternative to
9836 support only either register or const_int operands as element
9837 selector.
9838 ("*vec_set<mode>_plus"): New pattern to support reg + const_int
9839 operands.
9840 ("vec_extract<mode>"): New expander.
9841 ("*vec_extract<mode>"): New insn definition supporting reg and
9842 const_int element selectors.
9843 ("*vec_extract<mode>_plus"): New insn definition supporting
9844 reg+const_int element selectors.
9845 ("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
9846 following expander+insn definition.
9847 ("<vec_shifts_name><mode>3"): New expander.
9848 ("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.
9849
9850 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9851
9852 * config/s390/s390.md ("*tabort_1"): Change predicate to
9853 nonmemory_operand. Add a second alternative to cover
9854 register as well as const int operands.
9855 ("*tabort_1_plus"): New pattern definition.
9856
9857 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9858
9859 * config/s390/s390.md ("*ashrdi3_cc_31")
9860 ("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
9861 ("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
9862 Merge insn definitions into ...
9863 ("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
9864 New pattern definition.
9865 ("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
9866 ("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
9867 ("*ashr<mode>3_and"): Merge insn definitions into ...
9868 ("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
9869 New pattern definition.
9870 * config/s390/subst.md ("addr_style_op_cc_subst")
9871 ("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
9872 substitutions patterns plus attributes.
9873 Add ashiftrt to SUBST iterator.
9874
9875 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9876
9877 * config/s390/s390.md ("<shift><mode>3"): Change predicate of
9878 op2 to nonmemory_operand.
9879 ("*<shift>di3_31", "*<shift>di3_31_and"):
9880 Merge into single pattern definition ...
9881 ("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
9882 ("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
9883 pattern definition ...
9884 ("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
9885 * config/s390/subst.md: Add ashift and lshiftrt to SUBST
9886 iterator.
9887
9888 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9889
9890 * config/s390/predicates.md (const_int_6bitset_operand): New
9891 predicate.
9892 * config/s390/s390.md: Include subst.md.
9893 ("rotl<mode>3"): New expander.
9894 ("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
9895 ...
9896 ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
9897 * config/s390/subst.md: New file.
9898
9899 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9900
9901 * config/s390/s390.md ("op_type", "atype", "length" attributes):
9902 Remove RRR type. It doesn't really exist.
9903 ("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
9904 attributes.
9905 ("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
9906 ("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
9907 ("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
9908 ("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
9909 ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
9910 ("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
9911 `enabled' attribute.
9912
9913 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9914
9915 * gensupport.c (process_substs_on_one_elem): Split loop to
9916 complete mark_operands_used_in_match_dup on all expressions in the
9917 vector first.
9918 (adjust_operands_numbers): Inline into process_substs_on_one_elem
9919 and remove function.
9920
9921 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
9922
9923 PR target/69706
9924 * config/sparc/sparc.c (NWORDS_UP): Rename to...
9925 (CEIL_NWORDS): ...this. Use CEIL macro.
9926 (compute_fp_layout): Adjust to above renaming.
9927 (function_arg_union_value): Likewise.
9928 (sparc_arg_partial_bytes): Likewise.
9929 (sparc_function_arg_advance): Likewise.
9930
9931 2016-02-29 Jeff Law <law@redhat.com>
9932
9933 PR tree-optimization/70005
9934 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
9935 where an object with a boolean range is compared against a value
9936 outside [0..1].
9937
9938 PR tree-optimization/69999
9939 * gimple-ssa-split-paths.c (split_paths): When duplicating a block
9940 with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule
9941 loop cleanups.
9942
9943 2016-02-29 Richard Biener <rguenther@suse.de>
9944
9945 PR tree-optimization/69994
9946 * tree-ssa-reassoc.c (gimple_nop_conversion_p): New function.
9947 (get_unary_op): Look through nop conversions.
9948 (ops_equal_values_p): New function, look for equality diregarding
9949 nop conversions.
9950 (eliminate_plus_minus_pair): Use ops_equal_values_p
9951 (repropagate_negates): Do not use get_unary_op here.
9952
9953 2016-02-29 Martin Liska <mliska@suse.cz>
9954
9955 * system.h: Poison ENABLE_CHECKING macro.
9956
9957 2016-02-29 Martin Liska <mliska@suse.cz>
9958
9959 * hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS
9960 is presented in dump flags.
9961 * hsa-regalloc.c (linear_scan_regalloc): Likewise.
9962 (hsa_regalloc): Likewise.
9963
9964 2016-02-19 Richard Biener <rguenther@suse.de>
9965
9966 PR tree-optimization/69980
9967 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
9968 permutation of those we need to keep.
9969
9970 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
9971
9972 PR target/69706
9973 * config/sparc/sparc.c (ROUND_ADVANCE): Rename to...
9974 (NWORDS_UP): ...this
9975 (init_cumulative_args): Minor tweaks.
9976 (sparc_promote_function_mode): Likewise.
9977 (scan_record_type): Delete.
9978 (traverse_record_type): New function template.
9979 (classify_data_t): New structure type.
9980 (classify_registers): New inline function.
9981 (function_arg_slotno): In 64-bit mode, bail out early if FP slots are
9982 exhausted. Instantiate traverse_record_type on classify_registers and
9983 deal with the case of a structure passed in slot #15 with no FP field
9984 in the first word.
9985 (assign_data_t): New structure type.
9986 (compute_int_layout): New static function.
9987 (compute_fp_layout): Likewise.
9988 (count_registers): New inline function.
9989 (assign_int_registers): New static function.
9990 (assign_fp_registers): Likewise.
9991 (assign_registers): New inline function.
9992 (function_arg_record_value_1): Delete.
9993 (function_arg_record_value_2): Likewise.
9994 (function_arg_record_value_3): Likewise.
9995 (function_arg_record_value): Adjust to above changes. Instantiate
9996 traverse_record_type on count_registers to first count the number of
9997 registers to be used and then on assign_registers to assign them.
9998 (function_arg_union_value): Adjust to above renaming.
9999 (sparc_function_arg_1); Minor tweaks. Remove commented out code.
10000 (sparc_arg_partial_bytes): Adjust to above renaming. Deal with the
10001 case of a structure passed in slot #15
10002 (sparc_function_arg_advance): Likewise.
10003 (function_arg_padding): Minor tweak.
10004
10005 2016-02-29 Richard Biener <rguenther@suse.de>
10006
10007 PR tree-optimization/69720
10008 * tree-vect-loop.c (get_initial_def_for_reduction): Avoid
10009 the adjustment_def path for possibly vectorized defs.
10010 (vect_create_epilog_for_reduction): Handle vectorized initial
10011 defs properly.
10012
10013 2016-02-28 Eric Botcazou <ebotcazou@adacore.com>
10014
10015 * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
10016
10017 2016-02-27 Jeff Law <law@redhat.com>
10018
10019 Revert
10020 2016-02-26 Richard Biener <rguenther@suse.de>
10021 Jeff Law <law@redhat.com>
10022
10023 PR tree-optimization/69740
10024 * cfghooks.c (remove_edge): Request loop fixups if we delete
10025 an edge that might turn an irreducible loop into a natural
10026 loop.
10027
10028 2016-02-27 Jakub Jelinek <jakub@redhat.com>
10029
10030 PR rtl-optimization/69896
10031 * tree-vect-generic.c (get_compute_type): Avoid single element
10032 vector types.
10033
10034 2016-02-26 Evandro Menezes <e.menezes@samsung.com>
10035
10036 Rename the AArch64 tuning option and related functions to enable the
10037 Newton series for the reciprocal square root to reflect its
10038 approximative characteristic.
10039
10040 * config/aarch64/aarch64-protos.h (aarch64_emit_swrsqrt): Rename
10041 function to "aarch64_emit_approx_rsqrt".
10042 * config/aarch64/aarch64-tuning-flags.def: Rename tuning flag to
10043 AARCH64_EXTRA_TUNE_APPROX_RSQRT.
10044 * config/aarch64/aarch64.c (exynosm1_tunigs): Use new flag name.
10045 (xgene1_tunings): Likewise.
10046 (use_rsqrt_p): Likewise.
10047 (aarch64_emit_swrsqrt): Use new function name.
10048 * config/aarch64/aarch64-simd.md (aarch64_rsqrts_*): Likewise.
10049 * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): Reword the
10050 text explaining this option.
10051 * doc/invoke.texi (-mlow-precision-recip-sqrt): Likewise.
10052
10053 2016-02-26 Jakub Jelinek <jakub@redhat.com>
10054
10055 PR target/69969
10056 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
10057 complain about -mallow-movmisalign without -mvsx if
10058 TARGET_ALLOW_MOVMISALIGN was not set explicitly.
10059
10060 2016-02-26 Joel Sherrill <joel@rtems.org>
10061
10062 * config.gcc: Add x86_64-*-rtems*.
10063 * config/i386/rtems-64.h: New file.
10064
10065 2016-02-26 Joel Sherrill <joel@rtems.org>
10066
10067 * config.gcc: Add aarch64-*-rtems*.
10068 * config/aarch64/rtems.h: New file.
10069
10070 2016-02-26 Segher Boessenkool <segher@kernel.crashing.org>
10071
10072 PR target/69946
10073 * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
10074 shift amount using %h. Add comment.
10075
10076 2016-02-26 Richard Biener <rguenther@suse.de>
10077 Jeff Law <law@redhat.com>
10078
10079 PR tree-optimization/69740
10080 * cfghooks.c (remove_edge): Request loop fixups if we delete
10081 an edge that might turn an irreducible loop into a natural
10082 loop.
10083
10084 2016-02-26 Martin Jambor <mjambor@suse.cz>
10085
10086 PR middle-end/69920
10087 * tree-sra.c (sra_modify_assign): Do not remove loads of
10088 uninitialized aggregates to SSA_NAMEs.
10089
10090 2016-02-26 Richard Henderson <rth@redhat.com>
10091
10092 PR target/69709
10093 * config/s390/s390.md (risbg and risbgn splitters): Allocate new
10094 pseudo in case the target rtx matches the source of the left
10095 shift.
10096
10097 2016-02-26 Martin Jambor <mjambor@suse.cz>
10098
10099 PR hsa/69568
10100 * hsa.h (hsa_type_packed_p): Declare.
10101 * hsa.c (hsa_type_packed_p): New function.
10102 * hsa-gen.c (mem_type_for_type): Use unsigned type for packed
10103 loads.
10104 (gen_hsa_insns_for_store): Use hsa_type_packed_p.
10105 * hsa-brig.c (emit_basic_insn): Likewise.
10106
10107 2016-02-26 Martin Jambor <mjambor@suse.cz>
10108
10109 pr hsa/69674
10110 * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
10111 pointers.
10112 (gen_hsa_addr): Allow integer constants in TMR_INDEX2.
10113
10114 2016-02-26 Martin Jambor <mjambor@suse.cz>
10115
10116 * hsa.h (is_a_helper): New overload for hsa_op_immed for
10117 hsa_op_with_type operands.
10118 (hsa_unsigned_type_for_type): Declare.
10119 * hsa.c (hsa_unsigned_type_for_type): New function.
10120 * hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type.
10121 (gen_hsa_insns_for_operation_assignment): Satisfy constrains of
10122 the finalizer. Do not emit extra move.
10123
10124 2016-02-26 Martin Jambor <mjambor@suse.cz>
10125
10126 * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
10127 atomic operations in private segment.
10128
10129 2016-02-26 Martin Jambor <mjambor@suse.cz>
10130
10131 * omp-low.c (grid_find_ungridifiable_statement): Store problematic
10132 statements to wi->info. Also disallow omp simd constructs.
10133 (grid_target_follows_gridifiable_pattern): Use wi.info to dump reason
10134 for not gridifying. Dump special string for omp_for.
10135
10136 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10137
10138 PR target/69245
10139 * config/aarch64/aarch64.c (aarch64_set_current_function):
10140 Save/restore target globals when switching to
10141 target_option_default_node.
10142
10143 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10144
10145 PR target/69613
10146 * config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
10147 Return 0 if !SHIFT_COUNT_TRUNCATED.
10148
10149 2016-02-26 Jakub Jelinek <jakub@redhat.com>
10150 Eric Botcazou <ebotcazou@adacore.com>
10151
10152 PR rtl-optimization/69891
10153 * dse.c (scan_insn): If we can't figure out memset arguments
10154 or they are non-constant, call clear_rhs_from_active_local_stores.
10155
10156 2016-02-26 Martin Liska <mliska@suse.cz>
10157
10158 * doc/extend.texi: Mention clog10, clog10f an clog10l
10159 in Builtins section.
10160
10161 2016-02-26 Martin Liska <mliska@suse.cz>
10162
10163 * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
10164 CHECKING_P.
10165 (resolve_args_picking_1): Likewise.
10166 * dwarf2out.h (struct GTY): Likewise.
10167
10168 2016-02-26 Martin Liska <mliska@suse.cz>
10169
10170 * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
10171 with flag_checking.
10172 * hsa-regalloc.c (linear_scan_regalloc): Likewise.
10173
10174 2016-02-26 Markus Trippelsdorf <markus@trippelsdorf.de>
10175 Martin Liska <mliska@suse.cz>
10176
10177 * doc/install.texi: Mention --enable-valgrind-annotations.
10178
10179 2016-02-26 Richard Biener <rguenther@suse.de>
10180
10181 PR tree-optimization/69551
10182 * tree-ssa-structalias.c (get_constraint_for_ssa_var): When
10183 looking through aliases adjust DECL_PT_UID to refer to the
10184 ultimate alias target.
10185
10186 2016-02-25 Martin Liska <mliska@suse.cz>
10187
10188 PR middle-end/69919
10189 * alloc-pool.c (after_memory_report): New variable.
10190 * alloc-pool.h (base_pool_allocator ::release): Do not use
10191 the infrastructure if after_memory_report.
10192 * toplev.c (toplev::main): Mark after memory report.
10193
10194 2016-02-25 Richard Biener <rguenther@suse.de>
10195
10196 PR tree-optimization/48795
10197 * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
10198
10199 2016-02-25 Ilya Verbin <ilya.verbin@intel.com>
10200
10201 PR driver/68463
10202 * config/gnu-user.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o if
10203 offloading is enabled and -fopenacc or -fopenmp is specified.
10204 (CRTOFFLOADEND): Likewise.
10205 (GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
10206 (GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
10207 * lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
10208 (offload_objects_file_name): New static var.
10209 (tool_cleanup): Remove offload_objects_file_name file.
10210 (find_offloadbeginend): Replace with ...
10211 (find_crtoffloadtable): ... this.
10212 (run_gcc): Remove offload_argc and offload_argv.
10213 Get offload_objects_file_name from -foffload-objects=... option.
10214 Read names of object files with offload from this file, pass them to
10215 compile_images_for_offload_targets. Don't call find_offloadbeginend and
10216 don't pass offloadbegin and offloadend to the linker. Don't pass
10217 offload non-LTO files to the linker, because now they're not claimed.
10218
10219 2016-02-25 Jan Hubicka <hubicka@ucw.cz>
10220
10221 PR ipa/69630
10222 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
10223 on builtin_unreachable.
10224
10225 2016-02-25 Jakub Jelinek <jakub@redhat.com>
10226
10227 PR rtl-optimization/69896
10228 * regcprop.c: Include cfgrtl.h.
10229 (copyprop_hardreg_forward_1): If noop_p insn uses narrower
10230 than remembered mode, either delete it (if noop_move_p), or
10231 treat like copy_p but not noop_p instruction.
10232
10233 2016-02-24 Jakub Jelinek <jakub@redhat.com>
10234
10235 PR debug/69705
10236 * dwarf2out.c (gen_variable_die): Work around buggy LTO
10237 - allow NULL decl for Fortran DW_TAG_common_block variables.
10238
10239 2016-02-24 Jason Merrill <jason@redhat.com>
10240
10241 * common.opt (flifetime-dse): Add -flifetime-dse=1.
10242
10243 2016-02-24 Richard Biener <rguenther@suse.de>
10244 Jakub Jelinek <jakub@redhat.com>
10245
10246 PR middle-end/69760
10247 * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
10248 conditionally executed ops to well-defined overflow behavior.
10249
10250 2016-02-24 Jakub Jelinek <jakub@redhat.com>
10251
10252 PR middle-end/69915
10253 * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
10254 elements.
10255
10256 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10257
10258 PR rtl-optimization/69886
10259 * gcse.c (can_assign_to_reg_without_clobbers_p): Accept mode
10260 argument. Use it when checking validity of set instructions.
10261 (want_to_gcse_p): Pass mode to can_assign_to_reg_without_clobbers_p.
10262 (compute_ld_motion_mems): Update can_assign_to_reg_without_clobbers_p
10263 callsite.
10264 * rtl.h (can_assign_to_reg_without_clobbers_p): Update prototype.
10265 * store-motion.c (find_moveable_store): Update
10266 can_assign_to_reg_without_clobbers_p callsite.
10267
10268 2016-02-24 Richard Biener <rguenther@suse.de>
10269
10270 PR middle-end/68963
10271 * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
10272 bogus check.
10273 (record_nonwrapping_iv): Do not fall back to the low/high bound
10274 for non-constant IV bases if the stmt is not always executed.
10275
10276 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10277
10278 * config/arm/arm-cores.def (cortex-a32): New entry.
10279 * config/arm/arm-tables.opt: Regenerate.
10280 * config/arm/arm-tune.md: Regenerate.
10281 * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a32.
10282 * config/arm/t-aprofile: Handle mcpu=cortex-a32.
10283 * doc/invoke.texi (ARM Options): Document cortex-a32 as value
10284 for -mcpu and -mtune.
10285
10286 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10287
10288 PR target/69875
10289 * config/arm/arm.h (TARGET_HAVE_LPAE): Define.
10290 * config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value.
10291 * config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern.
10292 (atomic_loaddi_1): Delete.
10293 (atomic_loaddi): Rewrite expander using the above changes.
10294
10295 2016-02-24 Jakub Jelinek <jakub@redhat.com>
10296
10297 PR c/69918
10298 * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
10299 2 to 3.
10300
10301 2016-02-24 Jakub Jelinek <jakub@redhat.com>
10302 Richard Biener <rguenth@suse.de>
10303
10304 PR middle-end/69909
10305 * expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid
10306 set_mem_attributes if tem is SSA_NAME which got expanded
10307 as a MEM.
10308
10309 2016-02-24 Richard Biener <rguenther@suse.de>
10310
10311 PR tree-optimization/69907
10312 * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
10313 end of permutations for BB vectorization.
10314
10315 2016-02-24 Christian Bruel <christian.bruel@st.com>
10316
10317 * config/arm/arm-c.c (arm_option_override): Initialize
10318 target_option_current_node.
10319 * config/arm/arm.c (arm_pragma_target_parse): Replace
10320 build_target_option_node call by target_option_current_node.
10321 Set target_option_current_node.
10322 Fix comments.
10323
10324 2016-02-23 David Edelsohn <dje.gcc@gmail.com>
10325
10326 PR target/69810
10327 * config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
10328 define_insn_and_split to define_insn.
10329 (zero_extendqi<mode>2_dot2): Same.
10330 (extendqi<mode>2_dot): Same.
10331 (extendqi<mode>2_dot2): Same.
10332
10333 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
10334
10335 * config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores
10336 and add bypass for AES{D,E} and AESMC pairs.
10337 * config/aarch64/aarch64.c (exynosm1_tunings): Enable fusion of AES{D,E}
10338 and AESMC pairs.
10339
10340 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
10341
10342 * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
10343 series for reciprocal square root in Exynos M1.
10344
10345 2016-02-23 Martin Sebor <msebor@redhat.com>
10346
10347 PR c/69759
10348 * doc/extend.texi (Other Builtins): Document __builtin_alloca and
10349 __builtin_alloca_with_align.
10350
10351 2016-02-23 Richard Henderson <rth@redhat.com>
10352
10353 * config/i386/i386-c.c (ix86_target_macros): Remove __SEG_TLS.
10354 (ix86_register_pragmas): Remove __seg_tls.
10355 * config/i386/i386-protos.h (ADDR_SPACE_SEG_TLS): Remove.
10356 * config/i386/i386.c (ix86_print_operand_address_as): Don't handle it.
10357 (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): Remove.
10358 (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): Remove.
10359 (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): Remove.
10360 * doc/extend.texi (__seg_tls): Remove item.
10361
10362 2016-02-23 Richard Biener <rguenther@suse.de>
10363
10364 * alloc-pool.h (struct allocation_object): Make id member
10365 conditional on CHECKING_P again.
10366 (get_instance): Adjust.
10367 (base_pool_allocator): Likewise.
10368
10369 2016-02-23 Thomas Schwinge <thomas@codesourcery.com>
10370
10371 * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
10372 (parallelize_loops): In OpenACC kernels mode, set n_threads to
10373 zero.
10374 (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
10375 flag_openacc.
10376 * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
10377
10378 2016-02-23 Richard Biener <rguenther@suse.de>
10379
10380 * mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
10381 * bitmap.h (struct bitmap_usage): Likewise.
10382 (bitmap_move): Declare.
10383 * bitmap.c (register_overhead): Take size_t argument.
10384 (bitmap_move): New function.
10385 * df-problems.c (df_rd_transfer_function): Use bitmap_move
10386 to properly account overhead.
10387 * tree.c (free_node): Use tree_size.
10388
10389 2016-02-23 Jakub Jelinek <jakub@redhat.com>
10390
10391 PR c++/69902
10392 * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
10393 when inverting comparison.
10394
10395 PR c/69900
10396 * common.opt (Wunreachable-code): Add Warning flag.
10397
10398 2016-02-23 Mark Wielaard <mjw@redhat.com>
10399 Jakub Jelinek <jakub@redhat.com>
10400
10401 PR c/69911
10402 * cgraphunit.c (check_global_declaration): Check main_input_filename
10403 and DECL_SOURCE_FILE are not NULL.
10404
10405 2016-02-23 Martin Jambor <mjambor@suse.cz>
10406
10407 PR tree-optimization/69666
10408 * tree-sra.c (sra_modify_assign): Do not attempt to create
10409 default_def replacements for unscalarizable regions.
10410
10411 2016-02-20 Mark Wielaard <mjw@redhat.com>
10412
10413 PR c/28901
10414 * cgraphunit.c (check_global_declaration): Check level of
10415 warn_unused_const_variable and main_input_filename.
10416 * doc/invoke.texi (Warning Options): Add -Wunused-const-variable=.
10417 (-Wunused-variable): For C implies -Wunused-const-variable=1.
10418 (-Wunused-const-variable): Explain levels 1 and 2.
10419
10420 2016-02-22 Jakub Jelinek <jakub@redhat.com>
10421
10422 PR target/69888
10423 * config/i386/i386.c (decide_alg): Ensure we don't recurse with
10424 identical arguments. Formatting and spelling fixes.
10425
10426 PR target/69885
10427 * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
10428 be specified.
10429
10430 PR target/69894
10431 PR target/69895
10432 * config/m68k/t-opts (OPTIONS_H_EXTRA): Add m68k-microarchs.def
10433 and m68k-devices.def.
10434 * config/c6x/t-c6x (OPTIONS_H_EXTRA): Add c6x-isas.def.
10435 * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add aarch64-arches.def.
10436
10437 2016-02-22 Cesar Philippidis <cesar@codesourcery.com>
10438
10439 * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
10440 and HImode registers.
10441
10442 2016-02-22 Richard Biener <rguenther@suse.de>
10443
10444 PR tree-optimization/69882
10445 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Properly
10446 preserve permutations present because of gaps.
10447 (vect_supported_load_permutation_p): Always continue checking
10448 permutations after vect_attempt_slp_rearrange_stmts.
10449
10450 2016-02-22 Bin Cheng <bin.cheng@arm.com>
10451
10452 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
10453 min_profitable_estimate, rather than min_profitable_iters.
10454
10455 2016-02-22 Jakub Jelinek <jakub@redhat.com>
10456
10457 PR target/69885
10458 * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
10459 SImode for last match_operand.
10460
10461 2016-02-22 Martin Liska <mliska@suse.cz>
10462
10463 * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
10464 return bitsize - 1 as the return value.
10465
10466 2016-02-22 Oleg Endo <olegendo@gcc.gnu.org>
10467
10468 PR target/69806
10469 PR target/54089
10470 * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
10471 Handle negative shift counts.
10472 * config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
10473 force_reg on the shift constant.
10474 (lshrsi3): Likewise. Expand into lshrsi3_n* instead of lshrsi3_d.
10475 (lshrsi3_d): Handle negative shift counts.
10476
10477 2016-02-22 Richard Biener <rguenther@suse.de>
10478 Tom de Vries <tom@codesourcery.com>
10479
10480 * graph.c: Include dumpfile.h.
10481 (print_graph_cfg): Split into three overloads.
10482 * gdbhooks.py (class DotFn): Add and instantiate, adding command dot-fn.
10483
10484 2016-02-22 Tom de Vries <tom@codesourcery.com>
10485
10486 * gdbhooks.py (class DumpFn): Add and instantiate, adding command
10487 dump-fn.
10488
10489 2016-02-22 Richard Biener <rguenther@suse.de>
10490
10491 PR ipa/37448
10492 * ipa-inline-transform.c (inline_call): When not updating
10493 overall summaries adjust self size by the growth estimate.
10494 * ipa-inline.c (inline_to_all_callers_1): Add to the callers
10495 hash-set, do not update overall summaries here. Renamed from ...
10496 (inline_to_all_callers): ... this which is now wrapping the
10497 above and performing delayed overall summary update.
10498 (early_inline_small_functions): Delay updating of the overall
10499 summary.
10500
10501 2016-02-21 Markus Trippelsdorf <markus@trippelsdorf.de>
10502
10503 * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
10504 variable.
10505
10506 2016-02-19 Jakub Jelinek <jakub@redhat.com>
10507
10508 PR driver/69805
10509 * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use
10510 :%* in %:gt() argument.
10511 (greater_than_spec_func): Adjust for expecting only numbers,
10512 if there are more than two numbers, compare the last two.
10513
10514 2016-02-19 Jonathan Wakely <jwakely@redhat.com>
10515
10516 * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
10517 -Wnarrowing with -std.
10518
10519 2016-02-19 Jakub Jelinek <jakub@redhat.com>
10520
10521 PR c++/69851
10522 * expr.c (store_field): Don't use bit-field path if exp is
10523 COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is
10524 different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize
10525 and the assignment can be performed by bitwise copy. Formatting
10526 fix.
10527
10528 PR middle-end/69838
10529 * lra.c (lra_process_new_insns): If non-call exceptions are enabled,
10530 call copy_reg_eh_region_note_forward on before and/or after sequences
10531 and remove note from insn if it no longer can throw.
10532
10533 PR target/69820
10534 * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
10535 if TARGET_AVX512BW.
10536
10537 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10538
10539 * config/s390/vector.md: Add missing commutative operand markers
10540 to the patterns which qualify for one.
10541 * config/s390/vx-builtins.md: Likewise.
10542
10543 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10544
10545 * config/s390/vector.md (VI, VI_QHS): Add single element vector
10546 types to mode iterators.
10547 (vec_double): ... and mode attribute.
10548 * config/s390/vx-builtins.md (non_vec_int): Likewise.
10549
10550 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10551
10552 * config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
10553 Change the predicate of op2 from nonimmediate to general and let
10554 reload fix it if necessary.
10555
10556 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10557
10558 * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
10559
10560 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10561
10562 * config/s390/s390.c (s390_expand_vcond): Use the compare operand
10563 mode.
10564
10565 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10566
10567 * config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
10568 * config/s390/s390.c (s390_expand_vec_movstr): New function.
10569 * config/s390/s390.md ("movstr<P:mode>"): Call
10570 s390_expand_vec_movstr.
10571
10572 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10573
10574 * config/s390/s390.md: Add missing output modifier for operand 1
10575 to print it as address properly.
10576
10577 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10578
10579 * config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
10580 * config/s390/2964.md: New file.
10581 * config/s390/s390.c (s390_get_sched_attrmask): Use the right set
10582 of insn grouping attributes depending on the CPU level.
10583 (s390_get_unit_mask): New function.
10584 (s390_sched_score): Remove the OOO from the scheduling macros.
10585 Add loop to calculate a score for the instruction mix.
10586 (s390_sched_reorder): Likewise plus improve debug output.
10587 (s390_sched_variable_issue): Rename macros as above. Calculate
10588 the unit distances after actually scheduling an insn. Improve
10589 debug output.
10590 (s390_sched_init): Clear last_scheduled_unit_distance array.
10591 * config/s390/s390.md: Include 2964.md.
10592
10593 2016-02-18 Jakub Jelinek <jakub@redhat.com>
10594
10595 PR target/69671
10596 * config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
10597 *avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
10598 *avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
10599 *avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
10600 *avx512f_<code>v8div16qi2_mask_1): New insns.
10601
10602 2016-02-18 Michael Meissner <meissner@linux.vnet.ibm.com>
10603
10604 PR target/68404
10605 * config/rs6000/predicates.md (fusion_gpr_addis): Revert
10606 2016-02-09 change.
10607
10608 * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
10609 earlyclobber from target. Use wF constraint for fused memory
10610 address.
10611 (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
10612
10613 2016-02-18 Jakub Jelinek <jakub@redhat.com>
10614 Martin Liska <mliska@suse.cz>
10615
10616 PR sanitizer/69863
10617 * cfgexpand.c (asan_sanitize_stack_p): New function.
10618 (partition_stack_vars): Use the function.
10619 (expand_stack_vars): Likewise.
10620 (defer_stack_allocation): Likewise.
10621 (expand_used_vars): Likewise.
10622
10623 2016-02-18 Richard Biener <rguenther@suse.de>
10624
10625 PR middle-end/69553
10626 * fold-const.c (operand_equal_p): Properly compare offsets for
10627 IMAGPART_EXPR and ARRAY_REF.
10628
10629 2016-02-18 Nick Clifton <nickc@redhat.com>
10630
10631 PR target/62254
10632 PR target/69610
10633 * config/arm/arm.c (arm_option_override_internal): Disable
10634 interworking if the target does not support thumb instructions.
10635 (arm_reload_in_hi): Handle the case where a register to register
10636 move needs reloading because there is no simple pattern to handle
10637 it.
10638 (arm_reload_out_hi): Likewise.
10639
10640 2016-02-18 Richard Biener <rguenther@suse.de>
10641
10642 PR middle-end/69854
10643 * match.pd: Don't use fold_binary or fold_unary for folding
10644 constants.
10645
10646 2016-02-17 Jakub Jelinek <jakub@redhat.com>
10647
10648 PR c++/69850
10649 * gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
10650 on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
10651 * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
10652 warn on gimple_no_warning_p statements.
10653
10654 2016-02-17 Jonathan Wakely <jwakely@redhat.com>
10655
10656 * doc/extend.texi (C++ Attributes): Correct description of
10657 warn_unused type attribute.
10658
10659 2016-02-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10660
10661 * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
10662 correct instruction.
10663
10664 2016-02-17 Richard Biener <rguenther@suse.de>
10665
10666 PR rtl-optimization/69609
10667 * bb-reorder.c (struct bbro_basic_block_data): Add priority member.
10668 (find_traces_1_round): When ending a trace update cached priority
10669 of successors.
10670 (bb_to_key): Use cached priority when available.
10671 (copy_bb): Initialize cached priority.
10672 (reorder_basic_blocks_software_trace_cache): Likewise.
10673
10674 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10675
10676 PR target/69161
10677 * config/aarch64/predicates.md (aarch64_comparison_operator_mode):
10678 New predicate.
10679 (aarch64_comparison_operator): Break overly long line into two.
10680 (aarch64_comparison_operation): Likewise.
10681 * config/aarch64/aarch64.md (cstorecc4): Use
10682 aarch64_comparison_operator_mode instead of
10683 aarch64_comparison_operator.
10684 (cstore<mode>4): Likewise.
10685 (aarch64_cstore<mode>): Likewise.
10686 (*cstoresi_insn_uxtw): Likewise.
10687 (cstore<mode>_neg): Likewise.
10688 (*cstoresi_neg_uxtw): Likewise.
10689
10690 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10691
10692 PR target/69161
10693 * config/arm/predicates.md (arm_comparison_operator_mode):
10694 New predicate.
10695 * config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode
10696 instead of arm_comparison_operator.
10697 (*mov_negscc): Likewise.
10698 (*mov_notscc): Likewise.
10699 * config/arm/thumb2.md (*thumb2_mov_scc): Likewise.
10700 (*thumb2_mov_negscc): Likewise.
10701 (*thumb2_mov_negscc_strict_it): Likewise.
10702 (*thumb2_mov_notscc): Likewise.
10703 (*thumb2_mov_notscc_strict_it): Likewise.
10704
10705 2016-02-17 Wilco Dijkstra <wdijkstr@arm.com>
10706
10707 * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
10708 Add missing return.
10709
10710 2016-02-17 Eric Botcazou <ebotcazou@adacore.com>
10711
10712 * config/visium/visium.c (machine_libfunc_index): New enum.
10713 (machine_libfuncs): New structure.
10714 (visium_libfuncs): New static variable.
10715 (TARGET_INIT_LIBFUNCS): Define to...
10716 (visium_init_libfuncs): ...this. New function.
10717 (expand_block_move_4): Use the appropriate libfunc.
10718 (expand_block_move_2): Likewise.
10719 (expand_block_move_1): Likewise.
10720 (expand_block_set_4): Likewise.
10721 (expand_block_set_2): Likewise.
10722 (expand_block_set_1): Likewise.
10723 (visium_trampoline_init): Likewise.
10724
10725 2016-02-17 Nick Clifton <nickc@redhat.com>
10726
10727 * config/msp430/msp430.c (msp430_mcu_data): Sync with data from
10728 TI's devices.csv file as of March 2016.
10729
10730 2016-02-16 Kelvin Nilsen <kelvin@gcc.gnu.org>
10731
10732 PR Target/48344
10733 * opts-global.c (handle_common_deferred_options): Introduce and
10734 initialize two global variables to remember command-line options
10735 specifying a stack-limiting register.
10736 * opts.h: Add extern declarations of the two new global variables.
10737 * emit-rtl.c (init_emit_once): Initialize the stack_limit_rtx
10738 variable based on the values of the two new global variables.
10739
10740 2016-02-16 Jakub Jelinek <jakub@redhat.com>
10741
10742 PR c/69835
10743 * common.opt (Wnonnull-compare): New warning.
10744 * doc/invoke.texi (-Wnonnull): Remove text about comparison
10745 of arguments against NULL.
10746 (-Wnonnull-compare): Document.
10747 * Makefile.in (OBJS): Add gimple-ssa-nonnull-compare.o.
10748 * tree-pass.h (make_pass_warn_nonnull_compare): Declare.
10749 * passes.def (pass_warn_nonnull_compare): Add.
10750 * gimple-ssa-nonnull-compare.c: New file.
10751
10752 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
10753
10754 * config/aarch64/aarch64.c (cortexa57_tunings): Remove
10755 AARCH64_EXTRA_TUNE_RECIP_SQRT.
10756
10757 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
10758
10759 * config/aarch64/aarch64.c (use_rsqrt_p): Always use software
10760 reciprocal sqrt for -mlow-precision-recip-sqrt.
10761
10762 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
10763 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10764
10765 * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
10766 always use lane loads to construct non-constant vectors.
10767
10768 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
10769
10770 * config/aarch64/aarch64.md
10771 (arch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Fix register
10772 constraints for operand 3.
10773 (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
10774
10775 2016-02-16 Jakub Jelinek <jakub@redhat.com>
10776 Richard Biener <rguenther@suse.de>
10777
10778 PR tree-optimization/69820
10779 * tree-vect-patterns.c (type_conversion_p): Return false if
10780 *orig_type is unsigned single precision or boolean.
10781 (vect_recog_dot_prod_pattern, vect_recog_widen_mult_pattern):
10782 Formatting fix.
10783
10784 2016-02-16 Jakub Jelinek <jakub@redhat.com>
10785
10786 PR rtl-optimization/69764
10787 PR rtl-optimization/69771
10788 * optabs.c (expand_binop): Ensure for shift optabs invalid CONST_INT
10789 op1 is valid for GET_MODE_INNER (mode) and force it into a reg.
10790
10791 2016-02-16 Richard Biener <rguenther@suse.de>
10792
10793 PR tree-optimization/69776
10794 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
10795 sets from caller.
10796 (indirect_refs_may_alias_p): Likewise.
10797 (refs_may_alias_p_1): Pass alias sets as from ao_ref.
10798 * tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set
10799 according to tbaa_p.
10800 * tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag.
10801 (optimize_stmt): For redundant store discovery do not allow tbaa.
10802
10803 2016-02-16 Bernd Schmidt <bschmidt@redhat.com>
10804
10805 PR tree-optimization/69714
10806 * tree-ssa-math-opts.c (find_bswap_or_nop): Revert previous change.
10807 Return NULL if we have irrelevant high bytes on BIG_ENDIAN.
10808
10809 2016-02-16 Claudiu Zissulescu <claziss@synopsys.com>
10810
10811 * config/arc/arc-modes.def (CC_FPU, CC_FPU_UNEQ): New modes.
10812 * config/arc/arc-opts.h (FPU_SP, FPU_SF, FPU_SC, FPU_SD, FPU_DP)
10813 (FPU_DF, FPU_DC, FPU_DD, FXP_DP): Define.
10814 * config/arc/arc.c (arc_init): Check FPU options.
10815 (get_arc_condition_code): Handle new CC_FPU* modes.
10816 (arc_select_cc_mode): Likewise.
10817 (arc_conditional_register_usage): Allow 64 bit datum into even-odd
10818 register pair only. Allow access for ARCv2 accumulator.
10819 (gen_compare_reg): Whenever we have FPU support use FPU compare
10820 instructions.
10821 (arc_reorg): Don't generate brcc insns when FPU compare
10822 instructions are involved.
10823 * config/arc/arc.h (TARGET_DPFP): Add TARGET_FP_DPAX condition.
10824 (TARGET_OPTFPE): Add condition when ARC EM can use optimized
10825 floating point emulation.
10826 (ACC_REG_FIRST, ACC_REG_LAST, ACCL_REGNO, ACCH_REGNO): Define.
10827 (REVERSE_CONDITION): Add new CC_FPU* modes.
10828 (TARGET_FP_SP_BASE): Define.
10829 (TARGET_FP_DP_BASE): Likewise.
10830 (TARGET_FP_SP_FUSED): Likewise.
10831 (TARGET_FP_DP_FUSED): Likewise.
10832 (TARGET_FP_SP_CONV): Likewise.
10833 (TARGET_FP_DP_CONV): Likewise.
10834 (TARGET_FP_SP_SQRT): Likewise.
10835 (TARGET_FP_DP_SQRT): Likewise.
10836 (TARGET_FP_DP_AX): Likewise.
10837 * config/arc/arc.md (ARCV2_ACC): New constant.
10838 (type): New fpu type attribute.
10839 (SDF): Conditional iterator.
10840 (cstore<mode>, cbranch<mode>): Change expand condition.
10841 (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3): New expands,
10842 handles FPU/FPX cases as well.
10843 * config/arc/arc.opt (mfpu): New option.
10844 * config/arc/fpx.md (addsf3_fpx, subsf3_fpx, mulsf3_fpx):
10845 Renamed.
10846 (adddf3, muldf3, subdf3): Removed.
10847 * config/arc/predicates.md (proper_comparison_operator): Recognize
10848 CC_FPU* modes.
10849 * config/arc/fpu.md: New file.
10850 * doc/invoke.texi (ARC Options): Document mfpu option.
10851
10852 2016-02-16 Richard Biener <rguenther@suse.de>
10853
10854 PR rtl-optimization/69291
10855 * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
10856 noce_operand_ok check.
10857
10858 2016-02-16 Tom de Vries <tom@codesourcery.com>
10859
10860 PR lto/67709
10861 * omp-low.c (simd_clone_create): Remove call to
10862 symtab->call_cgraph_insertion_hooks.
10863
10864 2016-02-16 Jakub Jelinek <jakub@redhat.com>
10865
10866 PR tree-optimization/69802
10867 * tree-ssa-reassoc.c (update_range_test): If op is
10868 SSA_NAME_IS_DEFAULT_DEF, give up unless tem is a positive
10869 op == 1 test of precision 1 integral op, otherwise handle
10870 that case as op itself. Fix up formatting.
10871 (optimize_range_tests_to_bit_test, optimize_range_tests): Fix
10872 up formatting.
10873
10874 2016-02-16 Richard Biener <rguenther@suse.de>
10875
10876 PR tree-optimization/69586
10877 * tree-vrp.c (register_edge_assert_for_2): Handle all integral
10878 types for conversion sources.
10879
10880 2016-02-16 Richard Biener <rguenther@suse.de>
10881
10882 PR middle-end/69801
10883 * fold-const.c (operand_equal_p): For COND_EXPR zero operand
10884 mask OEP_ADDRESS_OF.
10885
10886 2016-02-16 Alan Modra <amodra@gmail.com>
10887
10888 PR target/68973
10889 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter.
10890 (p8_mtvsrd_df, p8_mtvsrd_sf): New.
10891 (p8_mtvsrd_1, p8_mtvsrd_2): Delete.
10892 (p8_mtvsrwz): New.
10893 (p8_mtvsrwz_1, p8_mtvsrwz_2): Delete.
10894 (p8_xxpermdi_<mode>): Take two DF inputs rather than one TF.
10895 (p8_fmrgow_<mode>): Likewise.
10896 (reload_vsx_from_gpr<mode>): Make clobber IF. Adjust for above
10897 changes.
10898 (reload_fpr_from_gpr<mode>): Similarly. Use "d" for op0 constraint.
10899 (reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting
10900 to use movdi_internal64. Remove op0_di.
10901 * config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode.
10902
10903 2016-02-15 Evandro Menezes <e.menezes@samsung.com>
10904
10905 Add support for the FCCMP insn types
10906
10907 * config/aarch64/aarch64.md (fccmp): Change insn type.
10908 (fccmpe): Likewise.
10909 * config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types.
10910 * config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise.
10911 * config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise.
10912 * config/arm/xgene1.md (xgene1_fcmp): Likewise.
10913 * config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation.
10914 * config/arm/types.md (fccmps): Add new insn type.
10915 (fccmpd): Likewise.
10916
10917 2016-02-15 Bernd Edlinger <bernd.edlinger@hotmail.de>
10918
10919 * alias.c (get_alias_set): Fix a typo in comment.
10920
10921 2016-02-15 Richard Biener <rguenther@suse.de>
10922
10923 PR tree-optimization/69595
10924 * match.pd: Complete range test simplification to true.
10925
10926 2016-02-15 Bernd Schmidt <bschmidt@redhat.com>
10927
10928 PR rtl-optimization/69648
10929 * lra-constraints.c (update_ebb_live_info): Don't remove sets of
10930 pic_offset_table_rtx.
10931
10932 PR rtl-optimization/69752
10933 * ira.c (update_equiv_regs): When looking for more than a single SET,
10934 also take other side effects into account.
10935
10936 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
10937
10938 * config/s390/s390.c (s390_function_profiler): Add a new sequence
10939 for z900+ CPUs in 31-bit mode.
10940
10941 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
10942
10943 * common/config/s390/s390-common.c (s390_supports_split_stack):
10944 New function.
10945 (TARGET_SUPPORTS_SPLIT_STACK): New macro.
10946 * config/s390/s390-protos.h: Add s390_expand_split_stack_prologue.
10947 * config/s390/s390.c (struct machine_function): New field
10948 split_stack_varargs_pointer.
10949 (s390_register_info): Mark r12 as clobbered if it'll be used as temp
10950 in s390_emit_prologue.
10951 (s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack
10952 vararg pointer.
10953 (morestack_ref): New global.
10954 (SPLIT_STACK_AVAILABLE): New macro.
10955 (s390_expand_split_stack_prologue): New function.
10956 (s390_live_on_entry): New function.
10957 (s390_va_start): Use split-stack vararg pointer if appropriate.
10958 (s390_asm_file_end): Emit the split-stack note sections.
10959 (TARGET_EXTRA_LIVE_ON_ENTRY): New macro.
10960 * config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec.
10961 (UNSPECV_SPLIT_STACK_CALL): New unspec.
10962 (UNSPECV_SPLIT_STACK_DATA): New unspec.
10963 (split_stack_prologue): New expand.
10964 (split_stack_space_check): New expand.
10965 (split_stack_data): New insn.
10966 (split_stack_call): New expand.
10967 (split_stack_call_*): New insn.
10968 (split_stack_cond_call): New expand.
10969 (split_stack_cond_call_*): New insn.
10970
10971 2016-02-15 Richard Biener <rguenther@suse.de>
10972
10973 PR tree-optimization/69783
10974 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
10975 Add trivially correct cases.
10976
10977 2016-02-15 Tom de Vries <tom@codesourcery.com>
10978
10979 PR lto/69655
10980 * lto-cgraph.c (input_offload_tables): Add and handle bool parameter
10981 do_force_output.
10982 * lto-streamer.h (input_offload_tables): Add and handle bool parameter.
10983
10984 2016-02-15 Richard Biener <rguenther@suse.de>
10985
10986 PR tree-optimization/69776
10987 * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
10988 * tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to
10989 indicate whether we can use TBAA to disambiguate against stores.
10990 Use alias-set zero if not.
10991 (visit_reference_op_store): Do not use TBAA when looking up
10992 redundant stores.
10993 * tree-ssa-pre.c (compute_avail): Use TBAA here.
10994 (eliminate_dom_walker::before_dom_children): But not when looking
10995 up redundant stores.
10996
10997 2016-02-14 John David Anglin <danglin@gcc.gnu.org>
10998
10999 * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.
11000
11001 2016-02-14 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
11002
11003 * config/i386/znver1.md
11004 (znver1_pop, znver1_pop_mem,
11005 znver1_load_imov_double_store,
11006 znver1_load_imov_direct_store,
11007 znver1_load_imov_direct_load,
11008 znver1_load_imov_double_load): Add new.
11009 (znver1_insn, znver1_insn_load): Add icmov type.
11010 (znver1_sseavx_fma,
11011 znver1_sseavx_fma_load,
11012 znver1_avx256_fma,
11013 znver1_avx256_fma_load): Fix pipe usage.
11014
11015 2016-02-14 Alan Modra <amodra@gmail.com>
11016
11017 PR target/68973
11018 * reloads.c (find_reloads_address_1): For pre/post-inc/dec
11019 with an invalid hard reg, reload just the reg not the entire
11020 pre/post-inc/dec address expression.
11021
11022 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
11023
11024 PR target/67260
11025 * config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with
11026 fixed R1_REG scratch reg.
11027 (sibcall_value_pcrel_fdpic): Likewise.
11028
11029 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
11030
11031 PR target/67636
11032 PR target/64345
11033 * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.
11034
11035 2016-02-12 Walter Lee <walt@tilera.com>
11036
11037 * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
11038 * config/tilegx/t-tilegx: Likewise.
11039
11040 2016-02-12 David Malcolm <dmalcolm@redhat.com>
11041
11042 PR other/69554
11043 * diagnostic-show-locus.c (struct line_span): New struct.
11044 (layout::get_first_line): Delete.
11045 (layout::get_last_line): Delete.
11046 (layout::get_num_line_spans): New member function.
11047 (layout::get_line_span): Likewise.
11048 (layout::print_heading_for_line_span_index_p): Likewise.
11049 (layout::get_expanded_location): Likewise.
11050 (layout::calculate_line_spans): Likewise.
11051 (layout::m_first_line): Delete.
11052 (layout::m_last_line): Delete.
11053 (layout::m_line_spans): New field.
11054 (layout::layout): Update comment. Replace m_first_line and
11055 m_last_line with m_line_spans, replacing their initialization
11056 with a call to calculate_line_spans.
11057 (diagnostic_show_locus): When printing source lines and
11058 annotations, rather than looping over a single span
11059 of lines, instead loop over each line_span within
11060 the layout, with an inner loop over the lines within them.
11061 Call the context's start_span callback when changing line spans.
11062 * diagnostic.c (diagnostic_initialize): Initialize start_span.
11063 (diagnostic_build_prefix): Break out the building of the location
11064 part of the string into...
11065 (diagnostic_get_location_text): ...this new function, rewriting
11066 it from nested ternary expressions to a sequence of "if"
11067 statements.
11068 (default_diagnostic_start_span_fn): New function.
11069 * diagnostic.h (diagnostic_start_span_fn): New typedef.
11070 (diagnostic_context::start_span): New field.
11071 (default_diagnostic_start_span_fn): New prototype.
11072
11073 2016-02-12 David Malcolm <dmalcolm@redhat.com>
11074
11075 PR driver/69779
11076 * gcc.c (driver::finalize): Fix cleanup of "specs".
11077
11078 2016-02-12 David Malcolm <dmalcolm@redhat.com>
11079
11080 PR driver/69265
11081 PR driver/69453
11082 * gcc.c (driver::driver): Initialize m_option_suggestions.
11083 (driver::~driver): Clean up m_option_suggestions.
11084 (suggest_option): Convert to...
11085 (driver::suggest_option): ...this, and split out into
11086 driver::build_option_suggestions and find_closest_string.
11087 (driver::build_option_suggestions): New function, from
11088 first half of suggest_option. Special-case
11089 OPT_fsanitize_ and OPT_fsanitize_recover_, making use of
11090 the sanitizer_opts array. For options of enum types, add the
11091 various enum values to the candidate strings.
11092 (driver::handle_unrecognized_options): Remove "const".
11093 * gcc.h (driver::handle_unrecognized_options): Likewise.
11094 (driver::build_option_suggestions): New decl.
11095 (driver::suggest_option): New decl.
11096 (driver::m_option_suggestions): New field.
11097 * opts-common.c (add_misspelling_candidates): New function.
11098 * opts.c (sanitizer_opts): Remove decl of struct sanitizer_opts_s
11099 and make non-static.
11100 * opts.h (sanitizer_opts): New array decl.
11101 (add_misspelling_candidates): New function decl.
11102 * spellcheck.c (find_closest_string): New function.
11103 * spellcheck.h (find_closest_string): New function decl.
11104
11105 2016-02-12 Jakub Jelinek <jakub@redhat.com>
11106
11107 PR rtl-optimization/69764
11108 PR rtl-optimization/69771
11109 * optabs.c (expand_binop_directly): For shift_optab_p, force
11110 convert_modes with VOIDmode if xop1 has VOIDmode.
11111
11112 2016-02-12 Ilya Enkovich <enkovich.gnu@gmail.com>
11113
11114 PR target/69729
11115 * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
11116 to correctly determine instrumentation thunks.
11117
11118 2016-02-12 Jakub Jelinek <jakub@redhat.com>
11119
11120 PR ipa/69241
11121 * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
11122 type by reference, force lhs on the call.
11123
11124 PR ipa/68672
11125 * ipa-split.c (split_function): Don't compute/use main_part_return_p.
11126 Compute retval and retbnd early in all cases if split_part_return_p
11127 and return_bb is not EXIT. Remove all clobber stmts and reset
11128 all debug stmts that refer to SSA_NAMEs defined in split part,
11129 except if it is retval, in that case replace the old retval with the
11130 lhs of the call to the split part.
11131
11132 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
11133
11134 revert:
11135 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
11136
11137 PR middle-end/66726
11138 * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
11139 whose result is used in PHI.
11140 (maybe_optimize_range_tests): Likewise.
11141 (final_range_test_p): Likweise.
11142
11143 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
11144
11145 PR middle-end/66726
11146 * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
11147 whose result is used in PHI.
11148 (maybe_optimize_range_tests): Likewise.
11149 (final_range_test_p): Likweise.
11150
11151 2016-02-12 Jakub Jelinek <jakub@redhat.com>
11152
11153 * cgraph.c: Spelling fixes - behaviour -> behavior and
11154 neighbour -> neighbor.
11155 * target.def: Likewise.
11156 * sel-sched.c: Likewise.
11157 * config/mips/mips.c: Likewise.
11158 * config/arc/arc.md: Likewise.
11159 * config/arm/cortex-a57.md: Likewise.
11160 * config/arm/arm.c: Likewise.
11161 * config/arm/neon.md: Likewise.
11162 * config/arm/arm-c.c: Likewise.
11163 * config/vms/vms-c.c: Likewise.
11164 * config/s390/s390.c: Likewise.
11165 * config/i386/znver1.md: Likewise.
11166 * config/i386/i386.c: Likewise.
11167 * config/ia64/hpux-unix2003.h: Likewise.
11168 * config/msp430/msp430.md: Likewise.
11169 * config/rx/rx.c: Likewise.
11170 * config/rx/rx.md: Likewise.
11171 * config/aarch64/aarch64-simd.md: Likewise.
11172 * config/aarch64/aarch64.c: Likewise.
11173 * config/nvptx/nvptx.c: Likewise.
11174 * config/bfin/bfin.c: Likewise.
11175 * config/cris/cris.opt: Likewise.
11176 * config/rs6000/rs6000.c: Likewise.
11177 * target.h: Likewise.
11178 * spellcheck.c: Likewise.
11179 * ira-build.c: Likewise.
11180 * tree-inline.c: Likewise.
11181 * builtins.c: Likewise.
11182 * lra-constraints.c: Likewise.
11183 * explow.c: Likewise.
11184 * hwint.h: Likewise.
11185 * targhooks.c: Likewise.
11186 * tree-vect-data-refs.c: Likewise.
11187 * expr.c: Likewise.
11188 * doc/tm.texi: Likewise.
11189 * doc/extend.texi: Likewise.
11190 * doc/install.texi: Likewise.
11191 * doc/md.texi: Likewise.
11192 * tree-ssa-tail-merge.c: Likewise.
11193 * sched-int.h: Likewise.
11194 * match.pd: Likewise.
11195 * sched-ebb.c: Likewise.
11196 * target.def (omit_struct_return_reg): Likewise.
11197 * gimple-ssa-isolate-paths.c: Likewise.
11198 (find_implicit_erroneous_behaviour): Renamed to...
11199 (find_implicit_erroneous_behavior): ... this.
11200 (find_explicit_erroneous_behaviour): Renamed to...
11201 (find_explicit_erroneous_behavior): ... this.
11202 (gimple_ssa_isolate_erroneous_paths): Adjust caller.
11203
11204 2016-02-11 Segher Boessenkool <segher@kernel.crashing.org>
11205
11206 PR rtl-optimization/64682
11207 PR rtl-optimization/69567
11208 PR rtl-optimization/69737
11209 * combine.c (distribute_notes) <REG_DEAD>: If the register is set
11210 in I2 as well, just lose it.
11211
11212 2016-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11213
11214 * config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
11215 New variable.
11216 (aarch64_last_printed_tune_string): Likewise.
11217 (aarch64_declare_function_name): Only output .arch assembler
11218 directive if it will be different from the previously output
11219 directive. Same for .tune comment but only if -dA is set.
11220 (aarch64_start_file): New function.
11221 (TARGET_ASM_FILE_START): Define.
11222
11223 2016-02-11 David Malcolm <dmalcolm@redhat.com>
11224
11225 PR plugins/69758
11226 * Makefile.in (PLUGIN_HEADERS): Add params.list.
11227
11228 2016-02-11 Jakub Jelinek <jakub@redhat.com>
11229
11230 PR target/65313
11231 * tree-vect-slp.c (vect_schedule_slp_instance): Avoid
11232 -Wmaybe-uninitialized warning.
11233
11234 2016-02-11 Oleg Endo <olegendo@gcc.gnu.org>
11235
11236 PR target/69713
11237 * config/sh/sh.md (casesi_worker_0): Add T_REG use.
11238
11239 2016-02-11 Richard Biener <rguenther@suse.de>
11240
11241 PR rtl-optimization/69291
11242 * ifcvt.c (noce_try_store_flag_constants): Do not allow
11243 subexpressions affected by changing the result.
11244
11245 2016-02-10 Vladimir Makarov <vmakarov@redhat.com>
11246
11247 PR target/69148
11248 * lra-constraints.c (curr_insn_transform): Find in/out operands
11249 for secondary memory moves. Update dups.
11250
11251 2016-02-10 Yuri Rumyantsev <ysrumyan@gmail.com>
11252
11253 PR tree-optimization/69652
11254 * tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1
11255 to nested loop, did source re-formatting, skip debug statements,
11256 add check on statement with volatile operand, remove dead scalar
11257 statements.
11258
11259 2016-02-10 Jakub Jelinek <jakub@redhat.com>
11260 Patrick Palka <ppalka@gcc.gnu.org>
11261
11262 PR ipa/69241
11263 PR c++/69649
11264 * gimplify.c (gimplify_modify_expr): Set lhs even for noreturn
11265 calls if the return type is TREE_ADDRESSABLE.
11266 * cgraphunit.c (cgraph_node::expand_thunk): Likewise.
11267 * ipa-split.c (split_function): Fix doubled "we" in comment.
11268 Use void return type for the split part even if
11269 !split_point->split_part_set_retval.
11270
11271 2016-02-10 Bin Cheng <bin.cheng@arm.com>
11272
11273 PR tree-optimization/68021
11274 * tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if
11275 when computing the value of biv cand by itself.
11276
11277 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
11278
11279 * config/aarch64/aarch64.c (cortexa53_tunings): Enable AES fusion.
11280 (cortexa57_tunings): Likewise.
11281 (cortexa72_tunings): Likewise.
11282 (arch_macro_fusion_pair_p): Add support for AES fusion.
11283 * config/aarch64/aarch64-fusion-pairs.def: Add AES_AESMC entry.
11284 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
11285 Allow virtual registers before reload so early scheduling works.
11286 * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Use
11287 correct latency and pipeline.
11288 (cortex_a57_crypto_complex): Likewise.
11289 (cortex_a57_crypto_xor): Likewise.
11290 (define_bypass): Add AES bypass.
11291
11292 2016-02-10 Richard Biener <rguenther@suse.de>
11293
11294 PR tree-optimization/69726
11295 * passes.def: Add DCE pass before late uninit.
11296 * match.pd: Add A ? B : (!A ? C : X) -> A ? B : C patterns to
11297 really fixup if-conversions job.
11298
11299 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
11300
11301 * config/arm/arm.c (arm_cortex_a53_tune): Enable AES fusion.
11302 (arm_cortex_a57_tune): Likewise.
11303 (aarch_macro_fusion_pair_p): Add support for AES fusion.
11304 * config/arm/arm-protos.h (fuse_ops): Add FUSE_AES_AESMC.
11305
11306 2016-02-10 Eric Botcazou <ebotcazou@adacore.com>
11307
11308 * timevar.def (TV_PHASE_DBGINFO): Delete.
11309 (TV_PHASE_CHECK_DBGINFO): Likewise.
11310 * varpool.c (varpool_node::assemble_decl): Do not change timevar.
11311
11312 2016-02-10 Richard Biener <rguenther@suse.de>
11313
11314 PR tree-optimization/69719
11315 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
11316 Adjust previous fix by ensuring that dr_a1 is left of dr_a2.
11317
11318 2016-02-09 Andrew Pinski <apinski@cavium.com>
11319
11320 PR tree-opt/69282
11321 * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
11322 get_vcond_mask_icode returns false.
11323
11324 2016-02-09 Michael Meissner <meissner@linux.vnet.ibm.com>
11325
11326 PR target/68404
11327 * config/rs6000/predicates.md (fusion_gpr_addis): Prevent fusing
11328 an ADDIS that adds a pointer to a large constant that sets the
11329 upper16 bits with a load operation.
11330
11331 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
11332
11333 PR target/68532
11334 * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
11335 order.
11336 * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
11337 endian.
11338 (vzipq_s16): Likewise.
11339 (vzipq_s32): Likewise.
11340 (vzipq_f32): Likewise.
11341 (vzipq_u8): Likewise.
11342 (vzipq_u16): Likewise.
11343 (vzipq_u32): Likewise.
11344 (vzipq_p8): Likewise.
11345 (vzipq_p16): Likewise.
11346
11347 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
11348
11349 PR target/68532
11350 * config/arm/arm.c (neon_endian_lane_map): New function.
11351 (neon_vector_pair_endian_lane_map): New function.
11352 (arm_evpc_neon_vuzp): Allow for big endian lane order.
11353 * config/arm/arm_neon.h (vuzpq_s8): Adjust shuffle patterns for big
11354 endian.
11355 (vuzpq_s16): Likewise.
11356 (vuzpq_s32): Likewise.
11357 (vuzpq_f32): Likewise.
11358 (vuzpq_u8): Likewise.
11359 (vuzpq_u16): Likewise.
11360 (vuzpq_u32): Likewise.
11361 (vuzpq_p8): Likewise.
11362 (vuzpq_p16): Likewise.
11363
11364 2016-02-11 Alexandre Oliva <aoliva@redhat.com>
11365
11366 PR target/69634
11367 * regstat.c (regstat_bb_compute_calls_crossed): Disregard
11368 debug insns.
11369
11370 2016-02-09 Uros Bizjak <ubizjak@gmail.com>
11371
11372 * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
11373 truncate const_int operand 1 to QImode.
11374
11375 2016-02-09 Eric Botcazou <ebotcazou@adacore.com>
11376
11377 * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
11378 corresponding to an abnormal edge.
11379
11380 2016-02-09 Tom de Vries <tom@codesourcery.com>
11381
11382 PR tree-optimization/69599
11383 * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
11384 function.
11385 (find_func_aliases_for_builtin_call, find_func_clobbers)
11386 (ipa_pta_execute): Handle case that foo and foo._0 are not in same lto
11387 partition.
11388
11389 2016-02-09 Richard Biener <rguenther@suse.de>
11390
11391 PR tree-optimization/69715
11392 * tree-ssa.c (execute_update_addresses_taken): Mark non-decl
11393 LHS on calls as non-rewritable.
11394
11395 2016-02-09 Tom de Vries <tom@codesourcery.com>
11396
11397 PR lto/69707
11398 * lto-wrapper.c (append_diag_options): New function.
11399 (compile_offload_image): Call append_diag_options.
11400
11401 2016-02-08 Sandra Loosemore <sandra@codesourcery.com>
11402
11403 PR other/69722
11404 * doc/extend.texi (Flag Output Operands): Correct sectioning.
11405 Minor copy-edit to fix verb tenses.
11406
11407 2016-02-08 Jakub Jelinek <jakub@redhat.com>
11408
11409 PR tree-optimization/69209
11410 * ipa-split.c (split_function): If split part is not
11411 returning retval, retval has gimple type but is not
11412 gimple value, force it into a SSA_NAME first.
11413
11414 2016-02-08 Nicklas Bo Jensen <nbjensen@gmail.com>
11415
11416 * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
11417 outdated section.
11418
11419 2016-02-08 Jason Merrill <jason@redhat.com>
11420
11421 PR c++/69631
11422 * convert.c (convert_to_integer_1): Check dofold on truncation
11423 distribution.
11424 (convert_to_pointer_maybe_fold, convert_to_real_maybe_fold)
11425 (convert_to_integer_maybe_fold, convert_to_complex_maybe_fold):
11426 Rename from *_nofold.
11427 * convert.h (convert_to_pointer_nofold, convert_to_integer_nofold)
11428 (convert_to_real_nofold, convert_to_complex_nofold): New inlines.
11429
11430 2016-02-08 Bernd Schmidt <bschmidt@redhat.com>
11431
11432 PR target/60410
11433 * tree.c (build_common_tree_nodes): Remove short_double argument.
11434 All callers changed.
11435 * tree.h (build_common_tree_nodes): Adjust declaration.
11436 * doc/invoke.texi (-fshort-double): Remove documentation.
11437 * config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
11438 MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
11439 * lto-wrapper.c (merge_and_complain, append_compiler_options)
11440 (append_linker_options): Don't handle OPT_fshort_double.
11441
11442 PR rtl-optimization/68730
11443 * lra-remat.c (insn_to_cand_activation): New static variable.
11444 (lra_remat): Allocate and free it.
11445 (create_cand): New arg activation. Initialize a field in
11446 insn_to_cand_activation if it is nonnull.
11447 (create_cands): Pass the activation insn to create_cand when making
11448 a candidate involving an output reload. Reorganize code a little.
11449 (do_remat): Keep track of active status of candidates in a separate
11450 bitmap.
11451
11452 2016-02-08 Richard Biener <rguenther@suse.de>
11453
11454 PR tree-optimization/69719
11455 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
11456 Properly use absolute of the difference of the two offsets to
11457 compare or adjust the segment length.
11458
11459 2016-02-08 Richard Biener <rguenther@suse.de>
11460 Jeff Law <law@redhat.com>
11461
11462 PR target/68273
11463 * tree-ssanames.c (make_ssa_name_fn): Always use unqualified
11464 types for anonymous SSA names.
11465
11466 2016-02-08 Richard Biener <rguenther@suse.de>
11467
11468 PR rtl-optimization/69274
11469 * ira.c (ira_setup_alts): Do not change recog_data.operand order.
11470
11471 2016-02-08 Jeff Law <law@redhat.com>
11472
11473 PR tree-optimization/65917
11474 * tree-ssa-dom.c (record_temporary_equivalences): Record both
11475 equivalences from if (x == y) style conditionals.
11476 (loop_depth_of_name): Remove.
11477 (record_equality): Remove loop depth check.
11478 * tree-ssa-scopedtables.h (const_and_copies): Refine comments.
11479 (const_and_copies::record_const_or_copy_raw): New member function.
11480 * tree-ssa-scopedtables.c
11481 (const_and_copies::record_const_or_copy_raw): New, factored out of
11482 (const_and_copies::record_const_or_copy): Call new member function.
11483
11484 2016-02-05 Jeff Law <law@redhat.com>
11485
11486 PR tree-optimization/68541
11487 * gimple-ssa-split-paths.c: Include tree-cfg.h and params.h.
11488 (count_stmts_in_block): New function.
11489 (poor_ifcvt_candidate_code): Likewise.
11490 (is_feasible_trace): Add some heuristics to determine when path
11491 splitting is profitable.
11492 (find_block_to_duplicate_for_splitting_paths): Make sure the graph
11493 is a diamond with a single exit.
11494
11495 2016-02-05 Martin Sebor <msebor@redhat.com>
11496
11497 PR c++/69662
11498 * doc/invoke.texi: Update -Wplacement-new to take an optional
11499 argument.
11500
11501 2016-02-06 Richard Henderson <rth@redhat.com>
11502
11503 PR c/69643
11504 * tree.c (tree_nop_conversion_p): Do not strip casts into or
11505 out of non-standard address spaces.
11506
11507 2016-02-05 Jakub Jelinek <jakub@redhat.com>
11508
11509 PR rtl-optimization/69691
11510 * lra-eliminations.c (move_plus_up): Don't add the addend twice.
11511
11512 2016-02-05 Pat Haugen <pthaugen@us.ibm.com>
11513
11514 * config/rs6000/crypto.md (crypto_vpermxor_<mode>): Correct insn type.
11515 * config/rs6000/rs6000.md (mov<mode>_hardfloat): Likewise.
11516 (*ieee128_mfvsrd_64bit): Likewise.
11517 (*ieee128_mfvsrd_32bit): Likewise.
11518
11519 2016-02-05 Ilya Enkovich <enkovich.gnu@gmail.com>
11520
11521 PR target/69369
11522 Revert r232560:
11523 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
11524
11525 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
11526 instrumented_version.
11527
11528 2016-01-05 Jeremy Bennett <jeremy.bennett@embecosm.com>
11529
11530 * doc/invoke.texi (Optimize Options): In table of --param options
11531 rename second occurrence of tracer-min-branch-ratio to
11532 tracer-min-branch-probability, rename
11533 tracer-min-branch-ratio-feedback to
11534 tracer-min-branch-probability-feedback and clarify description,
11535 rename sched-spec-state-edge-prob-cutoff to
11536 sched-state-edge-prob-cutoff, rename selsched-max-insns-to-rename
11537 to selsched-insns-to-rename, rename lto-minpartition to
11538 lto-min-partition, delete reorder-blocks-duplicate and
11539 reorder-blocks-duplicate-feedback.
11540
11541 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
11542
11543 * config/s390/s390.c (s390_register_info_set_ranges): Remove
11544 superfluous loops.
11545
11546 2016-02-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
11547
11548 * doc/extend.texi: S/390: Correct some typos.
11549
11550 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
11551
11552 * config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
11553
11554 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
11555
11556 PR target/69625
11557 * config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines.
11558 (s390_register_info_gprtofpr): Use new macros above.
11559 (s390_register_info_stdarg_fpr): Adjust max_fpr to better match
11560 its name.
11561 (s390_register_info_stdarg_gpr): Adjust max_gpr to better match
11562 its name. Adjust restore and save gpr ranges.
11563 (s390_register_info_set_ranges): New function.
11564 (s390_register_info): Use new macros above. Call
11565 s390_register_info_set_ranges.
11566 (s390_optimize_register_info): Likewise.
11567 (s390_hard_regno_rename_ok): Use new macros.
11568 (s390_hard_regno_scratch_ok): Likewise.
11569 (s390_emit_epilogue): Likewise.
11570 (s390_can_use_return_insn): Likewise.
11571 (s390_optimize_prologue): Likewise.
11572 * config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants.
11573
11574 2016-02-05 Jakub Jelinek <jakub@redhat.com>
11575
11576 PR bootstrap/69677
11577 * config/i386/i386.c (convert_scalars_to_vector): Readd stack
11578 alignment fixes.
11579 (ix86_option_override_internal): Disable TARGET_STV even for
11580 -m{incoming,preferred}-stack-boundary=3.
11581
11582 2016-02-03 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11583
11584 * config.gcc: Mark deprecated rtems targets as obsolete.
11585
11586 2016-02-04 Segher Boessenkool <segher@kernel.crashing.org>
11587
11588 PR rtl-optimization/64682
11589 PR rtl-optimization/69567
11590 * combine.c (distribute_notes) <REG_DEAD>: Place the death note
11591 before I2 only if the register is both used and set in I2.
11592
11593 2016-02-04 DJ Delorie <dj@redhat.com>
11594
11595 * config/msp430/msp430.c (msp430_start_function): Add function type.
11596
11597 2016-02-04 Jakub Jelinek <jakub@redhat.com>
11598
11599 PR fortran/69368
11600 * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
11601
11602 2016-02-04 Uros Bizjak <ubizjak@gmail.com>
11603
11604 PR rtl-optimization/69577
11605 Revert:
11606 2015-10-29 Richard Henderson <rth@redhat.com>
11607
11608 PR target/68124
11609 PR rtl-opt/67609
11610 * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
11611 sse check to the exact conditions of PR 67609.
11612
11613 2016-02-04 Michael Meissner <meissner@linux.vnet.ibm.com>
11614
11615 PR target/69667
11616 * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Use 'd' constraint
11617 instead of 'ws', and 'wh' instead of 'wm' since TFmode/IFmode are
11618 not allowed into the traditional Altivec registers.
11619 (movtd_64bit_nodm): Likewise.
11620 (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
11621
11622 2016-02-04 David Malcolm <dmalcolm@redhat.com>
11623
11624 * config/aarch64/cortex-a57-fma-steering.c
11625 (aarch64_register_fma_steering): Remove "static" from arguments
11626 to register_pass.
11627
11628 2016-02-04 Wilco Dijkstra <wdijkstr@arm.com>
11629
11630 PR target/69619
11631 * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
11632 twice when complex.
11633
11634 2016-02-04 Mike Frysinger <vapier@gentoo.org>
11635
11636 * doc/invoke.texi: Delete -mno-fma4.
11637
11638 2016-02-04 Richard Sandiford <richard.sandiford@arm.com>
11639
11640 PR rtl-optimization/69577
11641 * reginfo.c (record_subregs_of_mode): Add a partial_def parameter.
11642 (find_subregs_of_mode): Update accordingly. Iterate over partial
11643 definitions.
11644
11645 2016-02-04 Alan Lawrence <alan.lawrence@arm.com>
11646
11647 * config/arm/arm-protos.h (neon_reinterpret): Remove.
11648 * config/arm/arm.c (neon_reinterpret): Remove.
11649 * config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi,
11650 vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi,
11651 vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di,
11652 vreinterpretti): Remove.
11653 * config/arm/neon.md (neon_vreinterpretv8qi<mode>,
11654 neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
11655 neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>,
11656 neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>,
11657 neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>,
11658 neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove.
11659 * config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32,
11660 vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64,
11661 vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32,
11662 vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32,
11663 vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64,
11664 vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8,
11665 vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8,
11666 vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8,
11667 vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64,
11668 vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16,
11669 vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16,
11670 vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16,
11671 vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64,
11672 vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32,
11673 vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32,
11674 vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32,
11675 vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8,
11676 vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8,
11677 vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8,
11678 vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64,
11679 vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16,
11680 vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16,
11681 vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16,
11682 vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64,
11683 vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32,
11684 vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32,
11685 vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32,
11686 vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64,
11687 vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8,
11688 vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8,
11689 vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64,
11690 vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8,
11691 vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16,
11692 vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16,
11693 vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64,
11694 vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16,
11695 vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32,
11696 vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32,
11697 vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64,
11698 vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32,
11699 vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8,
11700 vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64,
11701 vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8,
11702 vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8,
11703 vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32,
11704 vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64,
11705 vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16,
11706 vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16,
11707 vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32,
11708 vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64,
11709 vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16,
11710 vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16,
11711 vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16,
11712 vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64,
11713 vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16,
11714 vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16,
11715 vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16,
11716 vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64,
11717 vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16,
11718 vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16,
11719 vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16,
11720 vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64,
11721 vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16,
11722 vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16,
11723 vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16,
11724 vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128,
11725 vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16,
11726 vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16,
11727 vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16,
11728 vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128,
11729 vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16,
11730 vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16,
11731 vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16,
11732 vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128,
11733 vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16,
11734 vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16,
11735 vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16,
11736 vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128,
11737 vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8,
11738 vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16,
11739 vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16,
11740 vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64,
11741 vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64,
11742 vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8,
11743 vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8,
11744 vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64,
11745 vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64,
11746 vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32,
11747 vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8,
11748 vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64,
11749 vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64,
11750 vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32,
11751 vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8,
11752 vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64,
11753 vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64,
11754 vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32,
11755 vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts.
11756
11757 2016-02-04 Martin Liska <mliska@suse.cz>
11758
11759 PR sanitizer/69276
11760 * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
11761 that are gimple_store_p.
11762 (maybe_instrument_call): Likewise.
11763
11764 2016-02-04 Bin Cheng <bin.cheng@arm.com>
11765
11766 * config/aarch64/aarch64.c (aarch64_legitimize_address): Force
11767 register scaling out of memory reference and comment why.
11768
11769 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11770
11771 PR target/65932
11772 PR target/67714
11773 * cse.c (cse_insn): Pass NULL to fold_rtx when initially
11774 folding the source of a SET.
11775
11776 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11777
11778 PR target/65932
11779 PR target/67714
11780 * config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
11781 the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.
11782
11783 2016-02-04 Jim Wilson <jim.wilson@linaro.org>
11784
11785 PR target/65932
11786 PR target/67714
11787 * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
11788 HImode.
11789
11790 2016-02-04 Christian Bruel <christian.bruel@st.com>
11791
11792 * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
11793 * config/arm/arm.c (arm_set_current_function): Likewise.
11794
11795 2016-02-04 Jakub Jelinek <jakub@redhat.com>
11796 Ilya Enkovich <enkovich.gnu@gmail.com>
11797 H.J. Lu <hongjiu.lu@intel.com>
11798
11799 PR target/69454
11800 * config/i386/i386.c (convert_scalars_to_vector): Remove
11801 stack alignment fixes.
11802 (ix86_option_override_internal): Disable TARGET_STV if stack
11803 might not be aligned enough.
11804 (ix86_minimum_alignment): Assert that TARGET_STV is false.
11805
11806 2016-02-04 Victoria Stepanyan <victoria.stepanyan@amd.com>
11807
11808 * config/i386/x86-tune.def: Disable default prefetching
11809 for -march=znver1.
11810
11811 2016-02-03 Michael Meissner <meissner@linux.vnet.ibm.com>
11812 Vladimir Makarov <vmakarov@redhat.com>
11813
11814 PR target/69461
11815 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
11816 in validating fused toc addresses.
11817
11818 2016-02-03 Jakub Jelinek <jakub@redhat.com>
11819
11820 PR c/69627
11821 * diagnostic-show-locus.c (layout::get_state_at_point): Don't read
11822 range->m_caret fields if range->m_show_caret_p is false.
11823
11824 PR target/69644
11825 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
11826 Force oldval into register if it does not satisfy reg_or_short_operand
11827 predicate. Fix up formatting.
11828
11829 2016-02-03 Vladimir Makarov <vmakarov@redhat.com>
11830 Alexandre Oliva <aoliva@redhat.com>
11831
11832 PR target/69461
11833 * lra-constraints.c (simplify_operand_subreg): Check additionally
11834 address validity after potential reloading.
11835 (process_address_1): Check insns validity. In case of failure do
11836 nothing.
11837
11838 2016-02-03 Kirill Yukhin <kirill.yukhin@intel.com>
11839
11840 PR target/69118
11841 * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
11842 Fix target.
11843
11844 2016-02-02 Jakub Jelinek <jakub@redhat.com>
11845
11846 * wide-int.cc (canonize_uhwi): New function.
11847 (wi::divmod_internal): Use it.
11848
11849 2016-02-02 James Norris <jnorris@codesourcery.com
11850
11851 * gimplify.c (omp_notice_variable): Add usage check.
11852
11853 2016-02-02 Alexander Monakov <amonakov@ispras.ru>
11854
11855 * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
11856 like LE, GE, LT, GT when emitting relational operator.
11857
11858 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
11859
11860 * ira-costs.c (find_costs_and_classes): Add extra argument.
11861 * target.def (ira_change_pseudo_allocno_class): Add parameter.
11862 * targhooks.h (ira_change_pseudo_allocno_class): Likewise.
11863 * targhooks.c (ira_change_pseudo_allocno_class): Likewise.
11864 * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
11865 Add best_class parameter, and return it if not ALL_REGS.
11866 * config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
11867 Add parameter.
11868 * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
11869 Update target hook.
11870
11871 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
11872
11873 * config/aarch64/aarch64.c
11874 (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
11875 (aarch64_ira_change_pseudo_allocno_class): New function.
11876
11877 2016-02-02 Uros Bizjak <ubizjak@gmail.com>
11878
11879 PR target/67032
11880 * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
11881
11882 2016-02-02 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
11883
11884 * config/avr/avr.c (avr_option_override): Set
11885 PARAM_ALLOW_STORE_DATA_RACES to 1.
11886
11887 2016-02-02 Richard Biener <rguenther@suse.de>
11888
11889 PR tree-optimization/69595
11890 * match.pd: Add range test simplifications to true/false.
11891
11892 2016-02-02 Thomas Schwinge <thomas@codesourcery.com>
11893
11894 * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
11895 * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
11896 instead.
11897
11898 2016-02-02 Richard Biener <rguenther@suse.de>
11899
11900 PR tree-optimization/69606
11901 * tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
11902 info on the result before moving a stmt.
11903
11904 2016-02-02 Yuri Rumyantsev <ysrumyan@gmail.com>
11905
11906 PR middle-end/68542
11907 * config/i386/i386.c (ix86_expand_branch): Add support for conditional
11908 branch with vector comparison.
11909 * config/i386/sse.md (VI48_AVX): New mode iterator.
11910 (define_expand "cbranch<mode>4): Add support for conditional branch
11911 with vector comparison.
11912 * tree-vect-loop.c (optimize_mask_stores): New function.
11913 * tree-vect-stmts.c (vectorizable_mask_load_store): Initialize
11914 has_mask_store field of vect_info.
11915 * tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for
11916 vectorized loops having masked stores after vec_info destroy.
11917 * tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and
11918 correspondent macros.
11919 (optimize_mask_stores): Add prototype.
11920
11921 2016-02-02 Alan Modra <amodra@gmail.com>
11922
11923 PR target/69548
11924 * config/rs6000/predicates.md (quad_int_reg_operand): Don't
11925 allow subregs.
11926
11927 2016-02-02 Alan Modra <amodra@gmail.com>
11928
11929 PR target/68662
11930 * config/rs6000/rs6000.c (need_toc_init): New var, set it
11931 whenever toc_label_name used.
11932 (rs6000_file_start): Don't set up toc section here,
11933 (rs6000_output_function_epilogue): do so here instead,
11934 (rs6000_xcoff_file_start): and here.
11935 * config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init.
11936 (load_toc_aix_di): Likewise.
11937
11938 2016-02-01 Jakub Jelinek <jakub@redhat.com>
11939
11940 PR rtl-optimization/69592
11941 * rtlanal.c (nonzero_bits_binary_arith_p): New inline function.
11942 (cached_nonzero_bits): Use it instead of ARITHMETIC_P.
11943 (num_sign_bit_copies_binary_arith_p): New inline function.
11944 (cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P.
11945
11946 2016-02-01 Jeff Law <law@redhat.com>
11947
11948 PR tree-optimization/69580
11949 * params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param.
11950 * tree-ssa-threadbackward.c
11951 (fsm_find_control_statement_thread_paths): Do not try to walk
11952 through large PHI nodes.
11953
11954 2016-02-01 Jakub Jelinek <jakub@redhat.com>
11955
11956 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
11957 when count is incremented above limit, don't analyze further
11958 insns afterwards.
11959
11960 * omp-low.c (oacc_parse_default_dims): Avoid
11961 -Wsign-compare warning, make sure value fits into int
11962 rather than just unsigned int.
11963
11964 2016-02-01 Bin Cheng <bin.cheng@arm.com>
11965
11966 PR tree-optimization/67921
11967 * fold-const.c (split_tree): New parameters. Convert pointer
11968 type variable part to proper type before negating.
11969 (fold_binary_loc): Pass new arguments to split_tree.
11970
11971 2016-02-01 Nathan Sidwell <nathan@codesourcery.com>
11972
11973 * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New.
11974 (nvptx_goacc_validate_dims): Extend to handle global defaults.
11975 * target.def (OACC_VALIDATE_DIMS): Extend documentation.
11976 * doc/tm.texti: Rebuilt.
11977 * doc/invoke.texi (fopenacc-dim): Document.
11978 * lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case.
11979 (append_compiler_options): Likewise.
11980 * omp-low.c (oacc_default_dims, oacc_min_dims): New.
11981 (oacc_parse_default_dims): New.
11982 (oacc_validate_dims): Add USED arg. Select non-unity default when
11983 possible.
11984 (oacc_loop_fixed_partitions): Return mask of used partitions.
11985 (oacc_loop_auto_partitions): Emit dump info.
11986 (oacc_loop_partition): Return mask of used partitions.
11987 (execute_oacc_device_lower): Parse default dimension arg. Adjust
11988 loop partitioning and validation calls.
11989
11990 2016-02-01 Richard Biener <rguenther@suse.de>
11991
11992 PR middle-end/69556
11993 * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
11994
11995 2016-02-01 Richard Biener <rguenther@suse.de>
11996
11997 PR tree-optimization/69574
11998 * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
11999 of asserting return chrec_dont_know.
12000
12001 2016-02-01 Martin Liska <mliska@suse.cz>
12002
12003 * mem-stats-traits.h: Add copyright header.
12004 * mem-stats.h: Likewise.
12005
12006 2016-02-01 Richard Biener <rguenther@suse.de>
12007
12008 PR tree-optimization/69579
12009 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
12010 Do not propagate through abnormal PHI results.
12011
12012 2016-02-01 Eric Botcazou <ebotcazou@adacore.com>
12013
12014 * postreload.c (reload_cse_simplify): Remove dead code.
12015
12016 2016-02-01 Jakub Jelinek <jakub@redhat.com>
12017
12018 PR rtl-optimization/69570
12019 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only
12020 if there is more than one set, not if there is a single set.
12021
12022 2016-02-01 Richard Henderson <rth@redhat.com>
12023
12024 PR rtl-opt/69535
12025 * combine.c (make_compound_operation): When looking through a
12026 subreg, make sure to re-extend to the width of the outer mode.
12027
12028 2016-01-30 Jakub Jelinek <jakub@redhat.com>
12029
12030 PR tree-optimization/69546
12031 * wide-int.cc (wi::divmod_internal): For unsigned division
12032 where both operands fit into uhwi, if o1 is 1 and o0 has
12033 msb set, if divident_prec is larger than bits per hwi,
12034 clear another quotient word and return 2 instead of 1.
12035 Similarly for remainder with msb in HWI set, if dividend_prec
12036 is larger than bits per hwi.
12037
12038 2016-01-29 Martin Jambor <mjambor@suse.cz>
12039
12040 * hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK.
12041 Use short lowercase names.
12042 (get_memory_order): Mask with MEMMODEL_BASE_MASK. Support
12043 MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with
12044 acq_rel one. Protect warning agains segfaults if
12045 get_memory_order_name returns NULL.
12046 (gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST
12047 with release semantics. Do not warn if get_memory_order already did.
12048 (gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire
12049 semantics. Fix check for relaxed or acquire semantics. Do not warn
12050 if get_memory_order already did.
12051
12052 2016-01-29 Sebastian Pop <s.pop@samsung.com>
12053
12054 * doc/install.texi: Document that isl-0.16 is supported.
12055
12056 2016-01-29 Vladimir Makarov <vmakarov@redhat.com>
12057
12058 PR target/69299
12059 * config/i386/constraints.md (Bm): Describe as special memory
12060 constraint.
12061 * doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it.
12062 * genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
12063 * genpreds.c (struct constraint_data): Add is_special_memory.
12064 (have_special_memory_constraints, special_memory_start): New
12065 static vars.
12066 (special_memory_end): Ditto.
12067 (add_constraint): Add new arg is_special_memory. Add code to
12068 process its true value. Update have_special_memory_constraints.
12069 (process_define_constraint): Pass the new arg.
12070 (process_define_register_constraint): Ditto.
12071 (choose_enum_order): Process special memory.
12072 (write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and
12073 function insn_extra_special_memory_constraint.
12074 (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
12075 * gensupport.c (process_rtx): Process
12076 DEFINE_SPECIAL_MEMORY_CONSTRAINT.
12077 * ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY.
12078 * ira-lives.c (single_reg_class): Use
12079 insn_extra_special_memory_constraint.
12080 * ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY.
12081 * lra-constraints.c (process_alt_operands): Ditto.
12082 (curr_insn_transform): Use insn_extra_special_memory_constraint.
12083 * recog.c (asm_operand_ok, preprocess_constraints): Process
12084 CT_SPECIAL_MEMORY.
12085 * reload.c (find_reloads): Ditto.
12086 * rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New.
12087 * stmt.c (parse_input_constraint): Use
12088 insn_extra_special_memory_constraint.
12089
12090 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
12091
12092 PR target/69530
12093 * lra-splill.c (lra_final_code_change): Revert r229087 by
12094 removing all sub-registers.
12095
12096 2016-01-29 Steve Ellcey <sellcey@imgtec.com>
12097
12098 PR target/65604
12099 * config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
12100
12101 2016-01-29 Jakub Jelinek <jakub@redhat.com>
12102
12103 PR target/69551
12104 * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
12105 SSE1, copy target into the temporary reg first before recursing
12106 on it.
12107
12108 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
12109
12110 * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
12111 with vm.
12112
12113 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
12114
12115 * ginclude/stdarg.h: Test __cplusplus instead of
12116 __GXX_EXPERIMENTAL_CXX0X__.
12117
12118 2016-01-29 Richard Biener <rguenther@suse.de>
12119
12120 PR tree-optimization/69547
12121 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
12122 Do not mark clobbers necessary.
12123 (mark_all_reaching_defs_necessary_1): Likewise.
12124
12125 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
12126
12127 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
12128 declaration name with %qs and print it in both error messages.
12129 Also fix indentation.
12130
12131 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
12132
12133 PR other/69006
12134 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
12135 trailing blank line from error message.
12136
12137 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
12138
12139 PR c++/69462
12140 * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
12141 for C++-11.
12142
12143 2016-01-29 Richard Biener <rguenther@suse.de>
12144
12145 PR middle-end/69537
12146 * match.pd: Allow all integral types when simplifying a
12147 widening or sign-changing conversion.
12148
12149 2016-01-28 Sebastian Pop <s.pop@samsung.com>
12150
12151 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
12152 back to setting codegen_error to fail codegen.
12153
12154 2016-01-28 Uros Bizjak <ubizjak@gmail.com>
12155
12156 PR target/69459
12157 * config/i386/constraints.md (C): Only accept constant zero operand.
12158 (BC): New constraint.
12159 * config/i386/sse.md (*mov<mode>_internal): Use BC constraint
12160 instead of C constraint.
12161 * doc/md.texi (Machine Constraints): Update description
12162 of C constraint.
12163
12164 2016-01-28 Steve Ellcey <sellcey@imgtec.com>
12165
12166 PR target/68400
12167 * config/mips/mips.c (and_operands_ok): Add MIPS16 check.
12168
12169 2016-01-28 Jakub Jelinek <jakub@redhat.com>
12170
12171 PR middle-end/69542
12172 * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
12173 non-debug insns.
12174
12175 2016-01-28 Pat Haugen <pthaugen@us.ibm.com>
12176
12177 * config/rs6000/rs6000.c (output_cbranch): Don't statically predict
12178 branches if using guessed profile.
12179
12180 2016-01-28 H.J. Lu <hongjiu.lu@intel.com>
12181
12182 * graphite-optimize-isl.c (optimize_isl): Fix dump.
12183
12184 2016-01-28 Richard Henderson <rth@redhat.com>
12185
12186 PR target/69305
12187 * config/aarch64/aarch64-modes.def (CC_Cmode): New
12188 * config/aarch64/aarch64-protos.h: Update.
12189 * config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
12190 (aarch64_select_cc_mode): Add check for use of CC_Cmode.
12191 (aarch64_get_condition_code_1): Handle CC_Cmode.
12192 * config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
12193 (*add<mode>3_compareC_cconly_imm): New.
12194 (*add<mode>3_compareC_cconly): New.
12195 (*add<mode>3_compareC_imm): New.
12196 (add<mode>3_compareC): New.
12197 (add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
12198 to be first. Use aarch64_carry_operation.
12199 (*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
12200 (*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
12201 (*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
12202 (subti3): Use subdi3_compare1.
12203 (*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
12204 (sub<mode>3_compare1): New.
12205 (*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
12206 (*sub<mode>3_carryin): Use aarch64_borrow_operation.
12207 (*subsi3_carryin_uxtw): Likewise.
12208 (*ngc<mode>, *ngcsi_uxtw): Likewise.
12209 (*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
12210 * config/aarch64/iterators.md (DWI): New.
12211 * config/aarch64/predicates.md (aarch64_carry_operation): New.
12212 (aarch64_borrow_operation): New.
12213
12214 2016-01-28 Abderrazek Zaafrani <a.zaafrani@samsung.com>
12215
12216 * graphite-optimize-isl.c (optimize_isl): Print a different debug
12217 message when isl does not return a valid schedule.
12218
12219 2016-01-28 Sebastian Pop <s.pop@samsung.com>
12220
12221 * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
12222 Remove comments from class declarations: they are already in the code
12223 close by the defs.
12224
12225 2016-01-28 Sebastian Pop <s.pop@samsung.com>
12226
12227 * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
12228 codegen_error_p.
12229 (ternary_op_to_tree): Same.
12230 (unary_op_to_tree): Same.
12231 (nary_op_to_tree): Same.
12232 (gcc_expression_from_isl_expr_op): Same.
12233 (gcc_expression_from_isl_expression): Same.
12234 (graphite_create_new_loop): Same.
12235 (graphite_create_new_loop_guard): Same.
12236 (build_iv_mapping): Same.
12237 (graphite_create_new_guard): Same.
12238 (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same.
12239 (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same.
12240
12241 2016-01-28 Sebastian Pop <s.pop@samsung.com>
12242
12243 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
12244 instead of setting codegen_error to fail codegen.
12245
12246 2016-01-28 Jason Merrill <jason@redhat.com>
12247
12248 * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
12249
12250 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
12251
12252 * config/aarch64/aarch64.c (aarch64_if_then_else_costs):
12253 Remove CONST_INT_P check in CCMP cost calculation.
12254
12255 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
12256
12257 * config/aarch64/aarch64.c (generic_vector_cost):
12258 Set vec_permute_cost.
12259 (cortexa57_vector_cost): Likewise.
12260 (exynosm1_vector_cost): Likewise.
12261 (xgene1_vector_cost): Likewise.
12262 (aarch64_builtin_vectorization_cost): Use vec_permute_cost.
12263 * config/aarch64/aarch64-protos.h (cpu_vector_cost):
12264 Add vec_permute_cost entry.
12265
12266 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
12267
12268 * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
12269 immediate as %1.
12270 (add<mode>3_compare0): Likewise.
12271 (addsi3_compare0_uxtw): Likewise.
12272 (add<mode>3nr_compare0): Likewise.
12273 (compare_neg<mode>): Likewise.
12274 (<optab><mode>3): Likewise.
12275
12276 2016-01-28 Ilya Enkovich <enkovich.gnu@gmail.com>
12277
12278 * tree-vect-stmts.c (vectorizable_comparison): Add
12279 NULL check for vectype.
12280
12281 2016-01-28 Richard Biener <rguenther@suse.de>
12282
12283 PR tree-optimization/69466
12284 * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
12285 Account for PHIs we couldn't duplicate.
12286
12287 2016-01-28 Martin Liska <mliska@suse.cz>
12288
12289 PR pch/68758
12290 * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
12291 instead of ENABLE_VALGRIND_CHECKING.
12292
12293 2016-01-27 Richard Henderson <rth@redhat.com>
12294
12295 PR rtl-opt/69447
12296 * lra-remat.c (subreg_regs): New.
12297 (dump_candidates_and_remat_bb_data): Dump it.
12298 (operand_to_remat): Reject if operand in subreg_regs.
12299 (set_bb_regs): Collect subreg_regs.
12300 (lra_remat): Init and free subreg_regs. Compute
12301 calculate_local_reg_remat_bb_data before create_cands.
12302
12303 2016-01-27 H.J. Lu <hongjiu.lu@intel.com>
12304
12305 PR target/68986
12306 * config/i386/i386.c (ix86_update_stack_boundary): Don't
12307 change stack_alignment_needed for __tls_get_addr call.
12308
12309 2016-01-27 Segher Boessenkool <segher@kernel.crashing.org>
12310
12311 * config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
12312
12313 2016-01-27 Jeff Law <law@redhat.com>
12314
12315 PR tree-optimization/68398
12316 PR tree-optimization/69196
12317 * params.def (PARAM_FSM_SCALE_PATH_STMTS): New parameter.
12318 (PARAM_FSM_SCALE_PATH_BLOCKS): Likewise.
12319 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
12320 Only count PHIs in the last block in the path. The others will
12321 const/copy propagate away. Add heuristic to allow more irreducible
12322 subloops to be created when it is likely profitable to do so.
12323
12324 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
12325 Fix typo in comment. Use gsi_after_labels and remove the GIMPLE_LABEL
12326 check from within the loop. Use gsi_next_nondebug rather than gsi_next.
12327
12328 2016-01-27 Jakub Jelinek <jakub@redhat.com>
12329
12330 PR lto/69254
12331 * sanitizer.def: Add BEGIN_SANITIZER_BUILTINS and
12332 END_SANITIZER_BUILTINS markers using DEF_BUILTIN_STUB.
12333 * asan.c (DEF_BUILTIN_STUB): Temporarily define.
12334 * tree-streamer-in.c: Include asan.h.
12335 (streamer_get_builtin_tree): For builtins in sanitizer
12336 range call initialize_sanitizer_builtins and retry.
12337
12338 2016-01-27 Ian Lance Taylor <iant@google.com>
12339
12340 * common.opt (fkeep-gc-roots-live): New undocumented option.
12341 * tree-ssa-loop-ivopts.c (add_candidate_1): If
12342 -fkeep-gc-roots-live, skip pointers.
12343 (add_iv_candidate_for_biv): Handle add_candidate_1 returning
12344 NULL.
12345
12346 2016-01-27 Uros Bizjak <ubizjak@gmail.com>
12347
12348 PR target/69512
12349 * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
12350 (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.
12351
12352 2016-01-27 Thomas Klausner <wiz@NetBSD.org>
12353
12354 PR target/68380
12355 * configure.ac: NetBSD provides SSP in its C library.
12356 * configure: Updated.
12357
12358 2016-01-27 Richard Biener <rguenther@suse.de>
12359
12360 PR tree-optimization/69166
12361 * tree-vect-loop.c (vect_is_simple_reduction): Always check
12362 reduction code for commutativity / associativity.
12363
12364 2016-01-27 Martin Jambor <mjambor@suse.cz>
12365
12366 PR tree-optimization/69355
12367 * tree-sra.c (analyze_access_subtree): Correct hole detection when
12368 total_scalarization fails.
12369
12370 2016-01-27 David Edelsohn <dje.gcc@gmail.com>
12371
12372 * config/rs6000/driver-rs6000.c (detect_processor_aix): Add
12373 power9.
12374
12375 2016-01-27 Christian Bruel <christian.bruel@st.com>
12376
12377 PR target/69245
12378 * config/arm/arm-c.c (arm_pragma_target_parse): Add comments.
12379 Move arm_reset_previous_fndecl and set_target_option_current_node in
12380 the conditional part. Call save_restore_target_globals.
12381 * config/arm/arm.c (arm_set_current_function):
12382 Refactor to better support #pragma target and attribute mix.
12383 Call save_restore_target_globals.
12384 * config/arm/arm-protos.h (save_restore_target_globals): New function.
12385
12386 2016-01-27 Martin Liska <mliska@suse.cz>
12387
12388 * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
12389 reference for an HSA kernel and its host function.
12390
12391 2016-01-27 Jakub Jelinek <jakub@redhat.com>
12392
12393 PR tree-optimization/69399
12394 * wide-int.h (wi::lrshift): For larger precisions, only
12395 use fast path if shift is known to be < HOST_BITS_PER_WIDE_INT.
12396
12397 2016-01-27 Claudiu Zissulescu <claziss@synopsys.com>
12398
12399 * config/arc/predicates.md (proper_comparison_operator): Reject
12400 constant-constant comparison.
12401
12402 2016-01-26 Tom de Vries <tom@codesourcery.com>
12403
12404 PR tree-optimization/69110
12405 * tree-data-ref.c (initialize_data_dependence_relation): Handle
12406 DR_NUM_DIMENSIONS == 0.
12407
12408 2016-01-26 Abderrazek Zaafrani <a.zaafrani@samsung.com>
12409 Sebastian Pop <s.pop@samsung.com>
12410
12411 * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Handle
12412 isl_ast_op_cond and isl_ast_op_select.
12413 (gcc_expression_from_isl_expr_op): Same.
12414
12415 2016-01-26 Jason Merrill <jason@redhat.com>
12416
12417 PR c++/68782
12418 * tree.c (recompute_constructor_flags): Split out from
12419 build_constructor.
12420 (verify_constructor_flags): New.
12421 * tree.h: Declare them.
12422
12423 2016-01-26 Iain Buclaw <ibuclaw@gdcproject.org>
12424
12425 PR rtl-optimization/69217
12426 * var-tracking.c (tracked_record_parameter_p): Don't segfault if there
12427 are no TYPE_FIELDS set for the record type.
12428
12429 2016-01-26 Jakub Jelinek <jakub@redhat.com>
12430
12431 PR target/68662
12432 * config/rs6000/rs6000.c (rs6000_option_override_internal): Initialize
12433 toc_label_name unconditionally.
12434 (rs6000_emit_load_toc_table): Call ggc_strdup on toc_label_name for
12435 SYMBOL_REF string. Use toc_label_name instead of constructing
12436 LCTOC1.
12437 (rs6000_elf_declare_function_name): Use toc_label_name instead of
12438 constructing LCTOC1.
12439
12440 2016-01-26 Martin Sebor <msebor@redhat.com>
12441
12442 PR other/69477
12443 * doc/extend.texi (Common Type Attributes): Move text that talks about
12444 attribute packed from attribute aligned to the section discussing
12445 the former attribute for clarity.
12446
12447 2016-01-26 Richard Henderson <rth@redhat.com>
12448
12449 PR middle-end/60908
12450 * trans-mem.c (tm_region_init): Mark entry block as visited.
12451
12452 2016-01-26 David Malcolm <dmalcolm@redhat.com>
12453
12454 PR other/69006
12455 * diagnostic-show-locus.c (layout::print_source_line): Replace
12456 call to pp_newline with call to layout::print_newline.
12457 (layout::print_annotation_line): Likewise.
12458 (layout::move_to_column): Likewise.
12459 (layout::print_any_fixits): After printing any fixits, print a
12460 trailing newline, if necessary.
12461 (layout::print_newline): New method, resetting any colorization
12462 before a newline.
12463 (diagnostic_show_locus): Move the pp_newline to before the
12464 early bailout. Remove dummy block enclosing the layout instance.
12465 * diagnostic.c (default_diagnostic_finalizer): Replace invocation
12466 of pp_newline_and_flush with pp_flush.
12467 (diagnostic_append_note): Delete use of pp_newline.
12468 (diagnostic_append_note_at_rich_loc): Delete.
12469 * diagnostic.h (diagnostic_append_note_at_rich_loc): Delete.
12470 * pretty-print.h (output_buffer_append_r): Reset buff->line_length
12471 when newline characters are added to the buffer.
12472
12473 2016-01-26 Michael Matz <matz@suse.de>
12474
12475 * configure.ac (ac_cv_std_swap_in_utility): New test.
12476 * system.h (<algorithm>): Check HAVE_SWAP_IN_UTILITY as well.
12477 * configure: Regenerate.
12478 * config.in: Regenerate.
12479
12480 2016-01-26 Claudiu Zissulescu <claziss@synopsys.com>
12481
12482 * config/arc/arc.md (cstoresi4): Force operand into register.
12483 (arcset<code>): Fix predicate.
12484 (arcsetltu): Likewise.
12485 (arcsetgeu): Likewise.
12486 (arcsethi): Likewise.
12487 (arcsetls): Likewise.
12488
12489 2016-01-26 Jakub Jelinek <jakub@redhat.com>
12490
12491 PR tree-optimization/69483
12492 * gimple-fold.c (canonicalize_constructor_val): Return NULL
12493 if base has error_mark_node type.
12494
12495 2016-01-26 Christophe Lyon <christophe.lyon@linaro.org>
12496
12497 PR target/68620
12498 * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
12499 * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
12500 New helper macros.
12501 (vget_lane_f16): Handle big-endian.
12502 (vgetq_lane_f16): Likewise.
12503 (vset_lane_f16): Likewise.
12504 (vsetq_lane_f16): Likewise.
12505 * config/arm/iterators.md (VQXMOV): Add V8HF.
12506 (VDQ): Add V4HF and V8HF.
12507 (V_reg): Handle V4HF and V8HF.
12508 (Is_float_mode): Likewise.
12509 * config/arm/neon.md (movv4hf, movv8hf, neon_vdup_nv4hf,
12510 neon_vdup_nv8hf): New patterns.
12511 (vec_set<mode>_internal, vec_extract<mode>, neon_vld1_dup<mode>):
12512 Use VD_LANE iterator.
12513 (neon_vld1_dup<mode>): Use VQ2 iterator.
12514
12515 2016-01-26 Nathan Sidwell <nathan@acm.org>
12516
12517 * omp-low.h (oacc_fn_attrib_kernels_p): Declare.
12518 (set_oacc_fn_attrib): Add IS_KERNEL arg.
12519 * omp-low.c (set_oacc_fn_attrib): Add IS_KERNEL arg.
12520 (oacc_fn_attrib_kernels_p, oacc_fn_attrib_level): New.
12521 (expand_omp_target): Pass is_kernel to set_oacc_fn_attrib.
12522 (oacc_validate_dims): Add LEVEL arg, don't return level.
12523 (new_oacc_loop_routine): Use oacc_fn_attrib_level, not
12524 oacc_validate_dims.
12525 (execute_oacc_device_lower): Adjust, add more dump output.
12526 * tree-ssa-loop.c (gate_oacc_kernels): Use
12527 oacc_fn_attrib_kernels_p.
12528 * tree-parloops.c (create_parallel_loop): Adjust
12529 set_oacc_fn_attrib call.
12530
12531 2016-01-26 Jakub Jelinek <jakub@redhat.com>
12532
12533 PR lto/69254
12534 * lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
12535 (append_compiler_options): Handle -fcilkplus.
12536 (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.
12537
12538 2016-01-26 Nick Clifton <nickc@redhat.com>
12539
12540 PR target/66655
12541 * config/i386/winnt.c (i386_pe_binds_local_p): If a function has
12542 been marked as DECL_ONE_ONLY but we do not the means to make it
12543 so, then do not allow it to bind locally.
12544
12545 2016-01-26 Jakub Jelinek <jakub@redhat.com>
12546
12547 PR lto/69254
12548 * opts.h (parse_sanitizer_options): New prototype.
12549 * opts.c (sanitizer_opts): New array.
12550 (parse_sanitizer_options): New function.
12551 (common_handle_option): Use parse_sanitizer_options.
12552
12553 2016-01-26 H.J. Lu <hongjiu.lu@intel.com>
12554
12555 PR target/68986
12556 * config/i386/i386.c (ix86_compute_frame_layout): Move stack
12557 alignment adjustment to ...
12558 (ix86_update_stack_boundary): Here. Don't over-align stack for
12559 __tls_get_addr.
12560 (ix86_finalize_stack_realign_flags): Use stack_alignment_needed
12561 if __tls_get_addr is called.
12562
12563 2016-01-26 Christian Bruel <christian.bruel@st.com>
12564
12565 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.
12566
12567 2016-01-26 Eric Botcazou <ebotcazou@adacore.com>
12568
12569 * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.
12570
12571 2016-01-26 Richard Biener <rguenther@suse.de>
12572
12573 PR middle-end/69467
12574 * match.pd: Guard X * CST CMP 0 pattern with single_use.
12575
12576 2016-01-26 Richard Biener <rguenther@suse.de>
12577
12578 PR tree-optimization/69452
12579 * tree-ssa-loop-im.c (move_computations_dom_walker): Remove.
12580 (move_computations_dom_walker::before_dom_children): Rename
12581 to ...
12582 (move_computations_worker): This.
12583 (move_computations): Perform an RPO rather than a DOM walk.
12584
12585 2016-01-26 Jakub Jelinek <jakub@redhat.com>
12586
12587 PR target/69442
12588 * combine.c (combine_instructions): For REG_EQUAL note with
12589 SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST
12590 to the underlying register.
12591 * doc/rtl.texi (REG_EQUAL): Document the behavior of
12592 REG_EQUAL/REG_EQUIV notes if SET_DEST is ZERO_EXTRACT.
12593
12594 2016-01-26 Roger Ferrer Ibáñez <rofirrim@gmail.com>
12595
12596 PR target/67896
12597 * config/aarch64/aarch64-builtins.c
12598 (aarch64_init_simd_builtin_types): Do not set structural
12599 equality to __Poly{8,16,64,128}_t types.
12600
12601 2016-01-26 Richard Sandiford <richard.sandiford@arm.com>
12602
12603 PR tree-optimization/69400
12604 * wide-int.cc (wi_pack): Take the precision as argument and
12605 perform canonicalization here rather than in the callers.
12606 Use the main loop to handle all full-width HWIs. Add a
12607 zero HWI if in_len isn't a full result.
12608 (wi::divmod_internal): Update accordingly.
12609 (wi::mul_internal): Likewise. Simplify.
12610
12611 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
12612 Sebastian Pop <s.pop@samsung.com>
12613
12614 * graphite-poly.c (apply_poly_transforms): Simplify.
12615 (print_isl_set): Use more readable format: ISL_YAML_STYLE_BLOCK.
12616 (print_isl_map): Same.
12617 (print_isl_union_map): Same.
12618 (print_isl_schedule): New.
12619 (debug_isl_schedule): New.
12620 * graphite-dependences.c (scop_get_reads): Do not call
12621 isl_union_map_add_map that is undocumented isl functionality.
12622 (scop_get_must_writes): Same.
12623 (scop_get_may_writes): Same.
12624 (scop_get_original_schedule): Remove.
12625 (scop_get_dependences): Do not call isl_union_map_compute_flow that
12626 is deprecated in isl 0.15. Instead, use isl_union_access_* interface.
12627 (compute_deps): Remove.
12628 * graphite-isl-ast-to-gimple.c (print_schedule_ast): New.
12629 (debug_schedule_ast): New.
12630 (translate_isl_ast_to_gimple::scop_to_isl_ast): Call
12631 set_separate_option.
12632 (graphite_regenerate_ast_isl): Add dump.
12633 (translate_isl_ast_to_gimple::scop_to_isl_ast): Generate code
12634 from scop->transformed_schedule.
12635 (graphite_regenerate_ast_isl): Add more dump.
12636 * graphite-optimize-isl.c (optimize_isl): Set
12637 scop->transformed_schedule. Check whether schedules are equal.
12638 (apply_poly_transforms): Move here.
12639 * graphite-poly.c (apply_poly_transforms): ... from here.
12640 (free_poly_bb): Static.
12641 (free_scop): Static.
12642 (pbb_number_of_iterations_at_time): Remove.
12643 (print_isl_ast): New.
12644 (debug_isl_ast): New.
12645 (debug_scop_pbb): New.
12646 * graphite-scop-detection.c (print_edge): Move.
12647 (print_sese): Move.
12648 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
12649 (build_scop_scattering): Remove.
12650 (create_pw_aff_from_tree): Assert instead of bailing out.
12651 (add_condition_to_pbb): Remove unused code, do not fail.
12652 (add_conditions_to_domain): Same.
12653 (add_conditions_to_constraints): Remove.
12654 (build_scop_context): New.
12655 (add_iter_domain_dimension): New.
12656 (build_iteration_domains): Initialize pbb->iterators.
12657 Call add_conditions_to_domain.
12658 (nested_in): New.
12659 (loop_at): New.
12660 (index_outermost_in_loop): New.
12661 (index_pbb_in_loop): New.
12662 (outermost_pbb_in): New.
12663 (add_in_sequence): New.
12664 (add_outer_projection): New.
12665 (outer_projection_mupa): New.
12666 (add_loop_schedule): New.
12667 (build_schedule_pbb): New.
12668 (build_schedule_loop): New.
12669 (embed_in_surrounding_loops): New.
12670 (build_schedule_loop_nest): New.
12671 (build_original_schedule): New.
12672 (build_poly_scop): Call build_original_schedule.
12673 * graphite.h: Declare print_isl_schedule and debug_isl_schedule.
12674 (free_poly_dr): Remove.
12675 (struct poly_bb): Add iterators. Remove schedule, transformed, saved.
12676 (free_poly_bb): Remove.
12677 (debug_loop_vec): Remove.
12678 (print_isl_ast): Declare.
12679 (debug_isl_ast): Declare.
12680 (scop_do_interchange): Remove.
12681 (scop_do_strip_mine): Remove.
12682 (scop_do_block): Remove.
12683 (flatten_all_loops): Remove.
12684 (optimize_isl): Remove.
12685 (pbb_number_of_iterations_at_time): Remove.
12686 (debug_scop_pbb): Declare.
12687 (print_schedule_ast): Declare.
12688 (debug_schedule_ast): Declare.
12689 (struct scop): Remove schedule. Add original_schedule,
12690 transformed_schedule.
12691 (free_gimple_poly_bb): Remove.
12692 (print_generated_program): Remove.
12693 (debug_generated_program): Remove.
12694 (unify_scattering_dimensions): Remove.
12695 * sese.c (print_edge): ... here.
12696 (print_sese): ... here.
12697 (debug_edge): ... here.
12698 (debug_sese): ... here.
12699 * sese.h (print_edge): Declare.
12700 (print_sese): Declare.
12701 (dump_edge): Declare.
12702 (dump_sese): Declare.
12703
12704 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
12705 Sebastian Pop <s.pop@samsung.com>
12706
12707 * Makefile.in: Set ISLVER in site.exp.
12708
12709 2016-01-25 Jakub Jelinek <jakub@redhat.com>
12710
12711 * omp-low.c (lower_omp_target) <case USE_DEVICE_PTR>: Set
12712 DECL_VALUE_EXPR of new_var even for the non-array case. Look
12713 through DECL_VALUE_EXPR for expansion.
12714
12715 2016-01-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
12716
12717 * config/mips/mips.c (mips_compute_frame_info): Skip re-computing
12718 the frame info after reload completed.
12719
12720 2016-01-25 Jeff Law <law@redhat.com>
12721
12722 PR tree-optimization/69196
12723 PR tree-optimization/68398
12724 * tree-ssa-threadupdate.h (enum bb_dom_status): Moved here from
12725 tree-ssa-threadupdate.c.
12726 (determine_bb_domination_status): Prototype
12727 * tree-ssa-threadupdate.c (enum bb_dom_status): Remove
12728 (determine_bb_domination_status): No longer static.
12729 (valid_jump_thread_path): Remove code to detect characteristics
12730 of the jump thread path not associated with correctness.
12731 * tree-ssa-threadbackward.c (fsm_find_control_statment_thread_paths):
12732 Correct test for thread path length. Count PHIs for real operands as
12733 statements that need to be copied. Do not count ASSERT_EXPRs.
12734 Look at all the blocks in the thread path. Compute and selectively
12735 filter thread paths based on threading through the latch, threading
12736 a multiway branch or crossing a multiway branch.
12737
12738 2016-01-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12739
12740 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): Add
12741 decl with __attribute__ ((unused)) annotation.
12742
12743 2016-01-25 Ilya Enkovich <enkovich.gnu@gmail.com>
12744
12745 PR target/69421
12746 * tree-vect-stmts.c (vectorizable_condition): Check vectype
12747 of operands is compatible with a statement vectype.
12748
12749 2016-01-25 Eric Botcazou <ebotcazou@adacore.com>
12750
12751 * doc/extend.texi (scalar_storage_order type attribute): Fix typo and
12752 improve wording for mixed storage order support.
12753
12754 2016-01-25 Bilyan Borisov <bilyan.borisov@arm.com>
12755
12756 * config/aarch64/arm_neon.h (vcvt_s64_f64): New intrinsic.
12757 (vcvt_u64_f64): Likewise.
12758 (vcvta_s64_f64): Likewise.
12759 (vcvta_u64_f64): Likewise.
12760 (vcvtm_s64_f64): Likewise.
12761 (vcvtm_u64_f64): Likewise.
12762 (vcvtn_s64_f64): Likewise.
12763 (vcvtn_u64_f64): Likewise.
12764 (vcvtp_s64_f64): Likewise.
12765 (vcvtp_u64_f64): Likewise.
12766
12767 2016-01-25 Claudiu Zissulescu <claziss@synopsys.com>
12768
12769 * config/arc/arc.c (TARGET_DWARF_REGISTER_SPAN): Define.
12770 (arc_init): Check validity mll64 option.
12771 (arc_save_restore): Use double load/store instruction.
12772 (arc_expand_movmem): Likewise.
12773 (arc_split_move): Don't split if we have double load/store
12774 instructions. Returns a boolean.
12775 (arc_process_double_reg_moves): Change function to return boolean
12776 instead of a sequence of instructions.
12777 (arc_dwarf_register_span): New function.
12778 * config/arc/arc-protos.h (arc_split_move): Change prototype.
12779 * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __ARC_LL64__.
12780 * config/arc/arc.md (*movdi_insn): Emit ldd/std instructions.
12781 (*movdf_insn): Likewise.
12782 * config/arc/arc.opt (mll64): New option.
12783 * config/arc/predicates.md (even_register_operand): New predicate.
12784 * doc/invoke.texi (ARC Options): Add mll64 documentation.
12785
12786 2016-01-25 Richard Biener <rguenther@suse.de>
12787
12788 PR lto/69393
12789 * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
12790 * tree-streamer-out.c (pack_ts_base_value_fields): Stream
12791 DECL_NAMELESS.
12792 * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
12793
12794 2016-01-25 Richard Biener <rguenther@suse.de>
12795
12796 PR tree-optimization/69376
12797 * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
12798 flag.
12799 (VN_INFO_ANTI_RANGE_P): New inline.
12800 (VN_INFO_RANGE_TYPE): Likewise.
12801 * tree-ssa-sccvn.c (set_ssa_val_to): Also record and copy
12802 SSA_NAME_ANTI_RANGE_P.
12803 (free_scc_vn): Restore SSA_NAME_ANTI_RANGE_P.
12804 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
12805 Properly query VN_INFO_RANGE_TYPE.
12806
12807 2016-01-25 Nick Clifton <nickc@redhat.com>
12808
12809 PR target/66655
12810 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.
12811
12812 2016-01-23 Tom de Vries <tom@codesourcery.com>
12813
12814 PR tree-optimization/69426
12815 * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
12816 removed clobber.
12817
12818 2016-01-23 Jakub Jelinek <jakub@redhat.com>
12819
12820 * tree-ssanames.c (release_free_names_and_compact_live_names): Replace
12821 "the the" with "the" in the comments.
12822 * ipa-devirt.c (build_type_inheritance_graph,
12823 update_type_inheritance_graph): Likewise.
12824 * tree.c (build_function_type_list_1): Likewise.
12825 * cfgloopmanip.c (scale_loop_profile): Likewise.
12826 * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Likewise.
12827 * gimple-ssa-split-paths.c
12828 (find_block_to_duplicate_for_splitting_paths): Likewise.
12829 * tree-sra.c (init_subtree_with_zero, clobber_subtree): Likewise.
12830 * expr.c (convert_move): Likewise.
12831 * var-tracking.c (vt_stack_adjustments): Likewise.
12832 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
12833 * tree-vrp.c (test_for_singularity): Likewise.
12834
12835 * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
12836 directly instead of building a temporary tree.
12837
12838 PR bootstrap/69434
12839 * genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
12840 remove <algorithm> include.
12841
12842 2016-01-22 Jakub Jelinek <jakub@redhat.com>
12843
12844 PR target/69432
12845 * config/i386/i386.c: Include dojump.h.
12846 (expand_small_movmem_or_setmem,
12847 expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Spelling
12848 fixes.
12849 (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
12850 if dynamic_check != -1.
12851
12852 2016-01-21 Jeff Law <law@redhat.com>
12853
12854 PR middle-end/69347
12855 * tree-ssa-dom.c (back_propagate_equivalences): Factored out of
12856 record_temporary_equivalences. Rewritten to avoid unnecessary calls
12857 into dominated_by_p.
12858 (cprop_into_successor_phis): Avoid unnecessary tests.
12859
12860 2016-01-22 Richard Henderson <rth@redhat.com>
12861
12862 PR target/69416
12863 * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
12864 (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
12865
12866 2016-01-22 Michael Matz <matz@suse.de>
12867
12868 * system.h (string, algorithm): Include only conditionally.
12869 (new): Include always under C++.
12870 * bb-reorder.c (toplevel): Define INCLUDE_ALGORITHM.
12871 * final.c (toplevel): Ditto.
12872 * ipa-chkp.c (toplevel): Define INCLUDE_STRING.
12873 * genconditions.c (write_header): Make gencondmd.c define
12874 INCLUDE_STRING.
12875 * mem-stats.h (mem_usage::print_dash_line): Don't use std::string.
12876
12877 * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
12878 * common/config/aarch64/aarch64-common.c (toplevel): Ditto.
12879
12880 2016-01-22 Christian Bruel <christian.bruel@st.com>
12881
12882 PR target/68674
12883 * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.
12884
12885 2016-01-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12886
12887 PR target/69403
12888 * config/arm/thumb2.md (*thumb2_ior_scc_strict_it): Convert to
12889 define_insn_and_split. Ensure operands[1] and operands[0] do not
12890 get assigned the same register.
12891
12892 2016-01-22 Kugan Vivekanandarajah <kuganv@linaro.org>
12893
12894 * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.
12895
12896 2016-01-22 Christian Bruel <christian.bruel@st.com>
12897
12898 * config/arm/arm-c.c (arm_pragma_target_parse):
12899 Remove warn_builtin_macro_redefined overwrite.
12900
12901 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
12902
12903 * ipa-inline.c (can_inline_edge_p): Back out overzealous check on
12904 flag_non_call_exceptions compatibility.
12905
12906 2016-01-22 Jakub Jelinek <jakub@redhat.com>
12907
12908 PR debug/66668
12909 * dwarf2out.c (add_child_die_after): New function.
12910 (dwarf_qual_info_t): New type.
12911 (dwarf_qual_info): New variable.
12912 (qualified_die_p): New function.
12913 (modified_type_die): For -fdebug-types-section, ensure
12914 canonical order of qualifiers. Put qualified DIEs adjacent
12915 to the corresponding non-qualified type DIE and search there
12916 for existing qualified DIEs.
12917
12918 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
12919
12920 * doc/extend.texi (scalar_storage_order type attribute): Document
12921 restriction on type punning and aliasing, and remove future tense.
12922
12923 2016-01-21 Roman Zhuykov <zhroma@ispras.ru>
12924
12925 PR target/69252
12926 * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
12927 first stage.
12928
12929 2016-01-21 Jeff Law <law@redhat.com>
12930
12931 PR middle-end/69347
12932 * tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid
12933 useless call to record_temporary_equivalences.
12934 * tree-ssa-threadbackward.c (find_jump_threads_backwards): Just
12935 allocate 10 slots in the bb_path vector and let it grow as needed.
12936 (fsm_find_control_statement_thread_paths): Similarly for the next_path
12937 vector.
12938
12939 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
12940
12941 * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
12942 Detangle.
12943 * configure: Regenerate.
12944
12945 2016-01-21 Pat Haugen <pthaugen@us.ibm.com>
12946
12947 * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
12948 * config/rs6000/driver-rs6000.c (struct asm_names): Likewise.
12949
12950 2016-01-21 Bernd Schmidt <bschmidt@redhat.com>
12951
12952 PR middle-end/66178
12953 * expr.c (expand_expr_real_2) [PLUS_EXPR, MINUS_EXPR]: Don't
12954 drop EXPAND_INITIALIZER.
12955 * rtl.h (contains_symbolic_reference_p): Declare.
12956 * rtlanal.c (contains_symbolic_reference_p): New function.
12957 * simplify-rtx.c (simplify_binary_operation_1): Don't turn
12958 a subtraction into a NOT if symbolic constants are involved.
12959
12960 2016-01-21 Anton Blanchard <anton@samba.org>
12961 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12962
12963 PR target/63354
12964 * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
12965 #define.
12966 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
12967 function.
12968
12969 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
12970
12971 * config/microblaze/microblaze.c
12972 (get_branch_target): New.
12973 (insert_wic_for_ilb_runout): New.
12974 (insert_wic): New.
12975 (microblaze_machine_dependent_reorg): New.
12976 (TARGET_MACHINE_DEPENDENT_REORG): Define macro.
12977 * config/microblaze/microblaze.md
12978 (UNSPEC_IPREFETCH): Define.
12979 (iprefetch): New pattern
12980 * config/microblaze/microblaze.opt
12981 (mxl-prefetch): New flag.
12982
12983 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
12984
12985 * config/microblaze/microblaze.h
12986 (FIXED_REGISTERS): Update in macro.
12987 (CALL_USED_REGISTERS): Update in macro.
12988
12989 2016-01-21 Yuri Rumyantsev <ysrumyan@gmail.com>
12990
12991 PR rtl-optimization/68920
12992 * ifcvt.c (cond_move_process_if_block): Limit number of conditional
12993 moves.
12994
12995 2016-01-21 Vladimir Makarov <vmakarov@redhat.com>
12996
12997 PR rtl-optimization/68990
12998 * lra-coalesce.c (lra_coalesce): Invalidate value for the result
12999 pseudo instead of inheritance ones.
13000
13001 2016-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
13002 Nick Clifton <nickc@redhat.com>
13003
13004 PR target/69129
13005 PR target/69012
13006 * config/mips/mips.c (mips_compute_frame_info): Initialise
13007 args_size and hard_frame_pointer_offset fields of the frame
13008 structure before calling mips_global_pointer.
13009
13010 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
13011
13012 * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
13013 label reference.
13014 * configure: Regenerate.
13015
13016 2016-01-21 Richard Biener <rguenther@suse.de>
13017
13018 * graphite-optimize-isl.c (get_schedule_map): Fix typo.
13019
13020 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
13021
13022 * config/s390/s390.c (s390_asm_declare_function_size): Add code
13023 to actually emit the .size directive.
13024
13025 2016-01-21 Stefan Sørensen <stefan.sorensen@spectralink.com>
13026 Jakub Jelinek <jakub@redhat.com>
13027
13028 PR target/69187
13029 PR target/65624
13030 * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
13031 args array size by one to avoid buffer overflow.
13032
13033 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
13034
13035 * config/s390/s390.md (pool_section_start): Use switch_to_section
13036 to select proper read-only data section instead of hardcoding
13037 .rodata.
13038 (pool_section_end): Use switch_to_section to match the above.
13039
13040 2016-01-21 Richard Biener <rguenther@suse.de>
13041
13042 PR tree-optimization/69378
13043 * tree-ssa-sccvn.c (dominated_by_p_w_unex): New function.
13044 (set_ssa_val_to): Use it for dominance checks taking into
13045 account not executable edges.
13046
13047 2016-01-21 Jakub Jelinek <jakub@redhat.com>
13048
13049 PR c++/69355
13050 * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
13051 for bitsize instead of GET_MODE_PRECISION (mode).
13052
13053 2016-01-20 Martin Sebor <msebor@redhat.com>
13054
13055 PR c/52291
13056 * extend.texi (__sync Builtins): Clarify the semantics of
13057 __sync_fetch_and_OP built-ins on pointers.
13058 (__atomic Builtins): Same.
13059
13060 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
13061 Sebastian Pop <s.pop@samsung.com>
13062
13063 * graphite-isl-ast-to-gimple.c (enum phi_node_kind): New.
13064 (class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool.
13065 (is_valid_rename): Same.
13066 (translate_isl_ast_to_gimple::get_rename): Same.
13067 (translate_isl_ast_to_gimple::rename_all_uses): Same.
13068 (translate_isl_ast_to_gimple::rename_uses): Same.
13069 (get_new_name): Check for close_phi nodes.
13070 (copy_loop_phi_args): Use phi_node_kind.
13071 (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
13072 (translate_isl_ast_to_gimple::copy_cond_phi_args): Same.
13073
13074 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
13075 Sebastian Pop <s.pop@samsung.com>
13076
13077 Revert commit r229783.
13078 * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
13079 Remove use of parameter_rename_map.
13080 (copy_def): Remove.
13081 (copy_internal_parameters): Remove.
13082 (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
13083 * sese.c (new_sese_info): Do not initialize parameter_rename_map.
13084 (free_sese_info): Do not free parameter_rename_map.
13085 (set_rename): Do not use parameter_rename_map.
13086 (rename_uses): Update call to set_rename.
13087 (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
13088 * sese.h (parameter_rename_map_t): Remove.
13089 (struct sese_info_t): Remove field parameter_rename_map.
13090
13091 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
13092 Sebastian Pop <s.pop@samsung.com>
13093
13094 * graphite-isl-ast-to-gimple.c: Fix comment.
13095 * graphite-scop-detection.c (defined_in_loop_p): New.
13096 (canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
13097 names defined in loop.
13098
13099 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
13100 Sebastian Pop <s.pop@samsung.com>
13101
13102 * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
13103 Discard unstructured if-then-else regions.
13104
13105 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
13106 Sebastian Pop <s.pop@samsung.com>
13107
13108 * graphite-sese-to-poly.c (set_scop_parameter_dim): Remove.
13109 (cleanup_loop_iter_dom): Remove.
13110 (build_loop_iteration_domains): Remove.
13111 (build_scop_context): Remove.
13112 (build_scop_iteration_domain): Remove.
13113 (add_loop_constraints): New.
13114 (build_iteration_domains): New.
13115 (build_poly_scop): Call build_iteration_domains.
13116
13117 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
13118 Sebastian Pop <s.pop@samsung.com>
13119
13120 * graphite-scop-detection.c
13121 (scop_detection::harmful_loop_in_region): Free dom and loops.
13122 (scop_detection::loop_body_is_valid_scop): Free bbs.
13123
13124 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
13125 Sebastian Pop <s.pop@samsung.com>
13126
13127 * graphite-scop-detection.c (record_loop_in_sese): New.
13128 (gather_bbs::before_dom_children): Call record_loop_in_sese.
13129 (build_scops): Remove call to build_sese_loop_nests.
13130 * sese.c (sese_record_loop): Remove.
13131 (build_sese_loop_nests): Remove.
13132 (new_sese_info): Remove region->loops.
13133 (free_sese_info): Same.
13134 * sese.h (sese_contains_loop): Same.
13135 (build_sese_loop_nests): Remove.
13136 (sese_contains_loop): Remove.
13137
13138 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
13139 Sebastian Pop <s.pop@samsung.com>
13140
13141 * graphite-scop-detection.c (loop_is_valid_scop): Renamed
13142 loop_is_valid_in_scop.
13143 (scop_detection::harmful_stmt_in_region): Renamed
13144 harmful_loop_in_region.
13145 Call loop_is_valid_in_scop.
13146
13147 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
13148 Sebastian Pop <s.pop@samsung.com>
13149
13150 * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
13151 isl_ast_node_mark.
13152
13153 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
13154 Sebastian Pop <s.pop@samsung.com>
13155
13156 * graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION.
13157 * graphite.h (struct poly_bb): Remove field is_reduction.
13158 (PBB_IS_REDUCTION): Remove.
13159
13160 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
13161 Sebastian Pop <s.pop@samsung.com>
13162
13163 * graphite-dependences.c (constrain_domain): Add call to isl_*_coalesce.
13164 (add_pdr_constraints): Same.
13165 (scop_get_reads): Same.
13166 (scop_get_must_writes): Same.
13167 (scop_get_may_writes): Same.
13168 (scop_get_original_schedule): Same.
13169 (extend_schedule): Same.
13170 (apply_schedule_on_deps): Same.
13171 (carries_deps): Same.
13172 (compute_deps): Same.
13173 (scop_get_dependences): Same.
13174 * graphite-isl-ast-to-gimple.c
13175 (translate_isl_ast_to_gimple::generate_isl_schedule): Same.
13176 * graphite-optimize-isl.c (get_schedule_for_band): Same.
13177 (get_schedule_for_band_list): Same.
13178 (get_schedule_map): Same.
13179 (apply_schedule_map_to_scop): Same.
13180 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
13181 (build_loop_iteration_domains): Same.
13182 (add_condition_to_pbb): Same.
13183 (add_param_constraints): Same.
13184 (pdr_add_memory_accesses): Same.
13185 (pdr_add_data_dimensions): Same.
13186
13187 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
13188
13189 * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
13190 requirements.
13191
13192 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
13193
13194 * common.opt (feliminate-dwarf2-dups): Replace references to
13195 "DWARF 2" with just "DWARF".
13196 * config/ia64/ia64.opt (mdwarf2-asm): Likewise.
13197 * doc/extend.texi: Likewise.
13198 * doc/cpp.texi: Likewise.
13199 * doc/invoke.texi: Likewise.
13200 (Option Summary): Add -gdwarf to list of Debugging Options.
13201 (Debugging Options): Document -gdwarf.
13202 * doc/contrib.texi: Spell "DWARF" like that.
13203
13204 2016-01-21 Jakub Jelinek <jakub@redhat.com>
13205
13206 * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
13207 warning. Fix up formatting.
13208
13209 PR middle-end/67653
13210 * gimplify.c (gimplify_asm_expr): Warn if it is too late to
13211 attempt to mark memory input operand addressable and
13212 call prepare_gimple_addressable in that case. Don't adjust
13213 input_location for diagnostics, use error_at instead.
13214
13215 2016-01-20 Peter Bergner <bergner@vnet.ibm.com>
13216
13217 * config/rs6000/ppc-auxv.h: New file.
13218 * config/rs6000/rs6000-builtin.def (cpu_init): Add new builtin.
13219 (cpu_is): Likewise.
13220 (cpu_supports): Likewise.
13221 * config/rs6000/rs6000.c: include "ppc-auxv.h".
13222 (cpu_is_info): New variable.
13223 (cpu_supports_info): Likewise.
13224 (tcb_verification_symbol): Likewise.
13225 (cpu_builtin_p): Likewise.
13226 (cpu_expand_builtin): New function.
13227 (rs6000_expand_ternop_builtin): Add support for CPU builtin functions.
13228 (rs6000_init_builtins): Likewise.
13229 (rs6000_elf_file_end): Emit HWCAP in TCB verification symbol.
13230 * config/rs6000/rs6000.h (TLS_REGNUM): New define.
13231 * configure.ac (gcc_cv_libc_provides_hwcap_in_tcb): New test.
13232 * configure: Regenerate.
13233 * config.in: Likewise.
13234 * doc/extend.texi (PowerPC Built-in Functions): Document
13235 __builtin_cpu_init, __builtin_cpu_is and __builtin_cpu_supports.
13236
13237 2016-01-20 David Edelsohn <dje.gcc@gmail.com>
13238
13239 PR target/68609
13240 * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
13241 domain check.
13242 * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
13243 for V4SFmode.
13244
13245 2016-01-20 Richard Henderson <rth@redhat.com>
13246
13247 PR bootstrap/69343
13248 PR bootstrap/69339
13249 PR tree-opt/68964
13250 Revert:
13251 * tree.c (tm_define_builtin): New.
13252 (find_tm_vector_type): New.
13253 (build_tm_vector_builtins): New.
13254 (build_common_builtin_nodes): Call it.
13255
13256 2016-01-20 Christophe Lyon <christophe.lyon@linaro.org>
13257
13258 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
13259 (arm_fp_ok): Likewise.
13260 (arm_fp): Likewise.
13261 (arm_crypto): Likewise.
13262
13263 2016-01-20 Ilya Enkovich <enkovich.gnu@gmail.com>
13264 Richard Biener <rguenther@suse.de>
13265
13266 PR tree-optimization/69328
13267 * tree-vect-stmts.c (vect_is_simple_cond): Check compared
13268 vectors have same number of elements.
13269 (vectorizable_condition): Fix masked version recognition.
13270
13271 2016-01-20 Richard Biener <rguenther@suse.de>
13272
13273 PR tree-optimization/69345
13274 * tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function.
13275 (VN_INFO_PTR_INFO): Likewise.
13276 * tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to
13277 info when it is equal between non-dominating SSA names.
13278 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
13279 Make sure to look at original SSA infos.
13280
13281 2016-01-20 Jeff Law <law@redhat.com>
13282
13283 PR target/25114
13284 * config/m68k/predicates.md (pow2_m1_operand): New predicate
13285 extracted from ...
13286 (reg_or_pow2_m1_operand): Call pow2_m1_operand.
13287 (pc_or_label_operand): New predicate.
13288 * config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU
13289 tests for small integers that are 2^n - 1.
13290
13291 2016-01-20 Jonathan Wakely <jwakely@redhat.com>
13292
13293 * doc/invoke.texi (Options Summary): Add '.' after @xref.
13294
13295 2016-01-19 Jeff Law <law@redhat.com>
13296
13297 PR middle-end/69347
13298 * tree-ssa-threadbackwards.c
13299 (fsm_find_control_statement_thread_paths): Do not try to lookup
13300 FSM paths for SSA_NAMEs appearing in abnormal PHIs.
13301
13302 2016-01-20 Kugan Vivekanandarajah <kuganv@linaro.org>
13303
13304 * doc/lto.texi: Remove text that says only Gold has linker plugin
13305 support.
13306
13307 2016-01-19 Eric Botcazou <ebotcazou@adacore.com>
13308
13309 * dwarf2out.c (need_endianity_attribute_p): New inline predicate.
13310 (base_type_die): Add REVERSE parameter and attach DW_AT_endianity to
13311 the DIE accordingly.
13312 (modified_type_die): Add REVERSE parameter and pass it recursively,
13313 as well as to base_type_die. Adjust presence check accordingly.
13314 (base_type_for_mode): Adjust call to modified_type_die.
13315 (add_type_attribute): Add REVERSE parameter and pass it to
13316 modified_type_die.
13317 (generic_parameter_die): Adjust call to add_type_attribute.
13318 (add_scalar_info): Likewise.
13319 (add_subscript_info): Likewise.
13320 (gen_array_type_die): Likewise.
13321 (gen_descr_array_type_die): Likewise.
13322 (gen_entry_point_die): Likewise.
13323 (gen_enumeration_type_die): Likewise.
13324 (gen_formal_parameter_die): Likewise.
13325 (gen_subprogram_die): Likewise.
13326 (gen_variable_die ): Likewise.
13327 (gen_const_die): Likewise.
13328 (gen_field_die): Likewise.
13329 (gen_pointer_type_die): Likewise.
13330 (gen_reference_type_die): Likewise.
13331 (gen_ptr_to_mbr_type_die): Likewise.
13332 (gen_inheritance_die): Likewise.
13333 (gen_subroutine_type_die): Likewise.
13334 (gen_typedef_die): Likewise.
13335 (force_type_die): Adjust call to modified_type_die.
13336
13337 2016-01-19 Sandra Loosemore <sandra@codesourcery.com>
13338
13339 * doc/standards.texi: Copy-editing for grammar, markup, and sentence
13340 flow throughout the file. Fix broken link to Objective-C 2.0
13341 documentation.
13342 * doc/invoke.texi: More copy-editing; fix numerous typos and spelling
13343 errors.
13344
13345 2016-01-19 Wilco Dijkstra <wdijkstr@arm.com>
13346
13347 * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.
13348
13349 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
13350
13351 PR ipa/66223
13352 * ipa-devirt.c (is_cxa_pure_virtual_p): New function.
13353 (maybe_record_node): Record cxa_pure_virtual as the only possible
13354 target if there are not ohter candidates.
13355 (possible_polymorphic_call_target_p): Accept cxa_pure_virtual.
13356
13357 2016-01-19 Richard Biener <rguenther@suse.de>
13358
13359 * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
13360 (get_memory_order): Likewise.
13361
13362 2016-01-19 Kirill Yukhin <kirill.yukhin@intel.com>
13363
13364 * tree-vect-stmts.c (vectorizable_store): Check
13365 rhs vectype.
13366
13367 2016-01-19 David Malcolm <dmalcolm@redhat.com>
13368
13369 PR jit/68446
13370 * gcc.c (driver::decode_argv): Add call to
13371 init_opts_obstack before init_options_struct.
13372 * opts.c (init_opts_obstack): Remove idempotency.
13373 (init_options_struct): Replace call to init_opts_obstack
13374 with a gcc_assert to verify that it has already been called.
13375 * toplev.c (toplev::main): Add call to init_opts_obstack before
13376 calls to init_options_struct.
13377 (toplev::finalize): Move cleanup of opts_obstack next to
13378 cleanup of save_decoded_options, clearing the latter, and
13379 save_decoded_options_count.
13380
13381 2016-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13382
13383 PR target/69135
13384 * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
13385 attribute to unconditional. Remove %? from output template.
13386
13387 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
13388 Jiong Wang <jiong.wang@arm.com>
13389
13390 * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
13391 generated from different expand order.
13392
13393 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
13394
13395 * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
13396 Add support for CCMP costing.
13397
13398 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
13399
13400 * ccmp.c (ccmp_candidate_p): Remove integer-only restriction.
13401 * config/aarch64/aarch64.md (fccmp<mode>): New pattern.
13402 (fccmpe<mode>): Likewise.
13403 (fcmp): Rename to fcmp and globalize pattern.
13404 (fcmpe): Likewise.
13405 * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
13406 (aarch64_gen_ccmp_next): Add FP support.
13407
13408 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
13409
13410 * target.def (gen_ccmp_first): Update documentation.
13411 (gen_ccmp_next): Likewise.
13412 * doc/tm.texi (gen_ccmp_first): Update documentation.
13413 (gen_ccmp_next): Likewise.
13414 * ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of
13415 expand_ccmp_expr_1. Improve comments.
13416 * config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp.
13417 (ccmp_ior<mode>): Remove pattern.
13418 (cmp<mode>): Remove expand.
13419 (cmp): Globalize pattern.
13420 (cstorecc4): Use cc_register.
13421 (mov<mode>cc): Remove ccmp_cc_register check.
13422 * config/aarch64/aarch64.c (aarch64_get_condition_code_1):
13423 Simplify after removal of CC_DNE/* modes.
13424 (aarch64_ccmp_mode_to_code): Remove.
13425 (aarch64_print_operand): Remove 'K' case. Merge 'm' and 'M' cases.
13426 In 'k' case use integer as condition.
13427 (aarch64_nzcv_codes): Remove inverted cases.
13428 (aarch64_code_to_ccmode): Remove.
13429 (aarch64_gen_ccmp_first): Use cmp pattern directly. Return the correct
13430 comparison with CC register to be used in folowing CCMP/branch/CSEL.
13431 (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP
13432 pattern. Return the comparison with CC register. Invert conditions
13433 when bitcode is OR.
13434 * config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes.
13435 * config/aarch64/predicates.md (ccmp_cc_register): Remove.
13436
13437 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
13438
13439 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
13440 instrumented_version.
13441
13442 2016-01-19 Richard Biener <rguenther@suse.de>
13443
13444 PR tree-optimization/69336
13445 * tree-ssa-scopedtables.c (avail_expr_hash): Handle all
13446 handled components with get_ref_base_and_extent.
13447 (equal_mem_array_ref_p): Adjust.
13448
13449 2016-01-19 Jakub Jelinek <jakub@redhat.com>
13450
13451 PR debug/65779
13452 * shrink-wrap.c: Include valtrack.h.
13453 (move_insn_for_shrink_wrap): Add DEBUG argument. If
13454 MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs
13455 in between insn and where it will be moved to. Call
13456 dead_debug_insert_temp.
13457 (prepare_shrink_wrap): Adjust caller. Call dead_debug_local_init
13458 first and dead_debug_local_finish at the end.
13459 For uses and defs bitmap, handle all regs in between REGNO and
13460 END_REGNO, not just the first one.
13461
13462 2016-01-19 Richard Biener <rguenther@suse.de>
13463
13464 PR tree-optimization/69352
13465 * tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1.
13466 (equal_mem_array_ref_p): Constrain size and max size properly.
13467 Compare the reverse flag.
13468
13469 2016-01-19 Bernd Schmidt <bschmidt@redhat.com>
13470
13471 * ira.c (ira): Update regstat data if we deleted insns.
13472
13473 2016-01-19 Jakub Jelinek <jakub@redhat.com>
13474
13475 PR rtl-optimization/68955
13476 PR rtl-optimization/64557
13477 * dse.c (record_store, check_mem_read_rtx): Don't call get_addr
13478 here. Fix up formatting.
13479 * alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.
13480
13481 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
13482
13483 PR lto/69133
13484 * cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple
13485 assume that the node has body.
13486 * cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p
13487 check.
13488
13489 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
13490
13491 * lto-streamer-out.c (lto_output): Do not stream instrumentation
13492 thunks.
13493
13494 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
13495
13496 * symtab.c (symtab_node::asm_name): Do not call printable name directly.
13497 (symtab_node::name): Report name as unnamed if DECL_NAME is not set.
13498
13499 2016-01-19 Martin Jambor <mjambor@suse.cz>
13500 Martin Liska <mliska@suse.cz>
13501 Michael Matz <matz@suse.de>
13502
13503 * Makefile.in (OBJS): Add new source files.
13504 (GTFILES): Add hsa.c.
13505 * common.opt (disable_hsa): New variable.
13506 (-Whsa): New warning.
13507 * config.in (ENABLE_HSA): New.
13508 * configure.ac: Treat hsa differently from other accelerators.
13509 (OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
13510 $enable_offloading.
13511 (ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
13512 * doc/install.texi (Configuration): Document --with-hsa-runtime,
13513 --with-hsa-runtime-include, --with-hsa-runtime-lib and
13514 --with-hsa-kmt-lib.
13515 * doc/invoke.texi (-Whsa): Document.
13516 (hsa-gen-debug-stores): Likewise.
13517 * lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
13518 to invoke offload compiler for hsa acclerator.
13519 * opts.c (common_handle_option): Determine whether HSA offloading
13520 should be performed.
13521 * params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
13522 * builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
13523 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
13524 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
13525 * gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
13526 * gimple-pretty-print.c (dump_gimple_omp_for): Also handle
13527 GF_OMP_FOR_KIND_GRID_LOOP.
13528 (dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
13529 (pp_gimple_stmt_1): Likewise.
13530 * gimple-walk.c (walk_gimple_stmt): Likewise.
13531 * gimple.c (gimple_build_omp_grid_body): New function.
13532 (gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
13533 * gimple.def (GIMPLE_OMP_GRID_BODY): New.
13534 * gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
13535 GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
13536 GF_OMP_TEAMS_GRID_PHONY.
13537 (gimple_statement_omp_single_layout): Updated comments.
13538 (gimple_build_omp_grid_body): New function.
13539 (gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
13540 (gimple_omp_for_grid_phony): New function.
13541 (gimple_omp_for_set_grid_phony): Likewise.
13542 (gimple_omp_parallel_grid_phony): Likewise.
13543 (gimple_omp_parallel_set_grid_phony): Likewise.
13544 (gimple_omp_teams_grid_phony): Likewise.
13545 (gimple_omp_teams_set_grid_phony): Likewise.
13546 (gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
13547 * omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
13548 (BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
13549 (BUILT_IN_GOMP_TARGET): Updated type.
13550 * omp-low.c: Include symbol-summary.h, hsa.h and params.h.
13551 (adjust_for_condition): New function.
13552 (get_omp_for_step_from_incr): Likewise.
13553 (extract_omp_for_data): Moved parts to adjust_for_condition and
13554 get_omp_for_step_from_incr.
13555 (build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
13556 (fixup_child_record_type): Bail out if receiver_decl is NULL.
13557 (scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
13558 (scan_omp_parallel): Do not create child functions for phony
13559 constructs.
13560 (check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
13561 (scan_omp_1_op): Checking assert we are not remapping to
13562 ERROR_MARK. Also also handle GIMPLE_OMP_GRID_BODY.
13563 (parallel_needs_hsa_kernel_p): New function.
13564 (expand_parallel_call): Register apprpriate parallel child
13565 functions as HSA kernels.
13566 (grid_launch_attributes_trees): New type.
13567 (grid_attr_trees): New variable.
13568 (grid_create_kernel_launch_attr_types): New function.
13569 (grid_insert_store_range_dim): Likewise.
13570 (grid_get_kernel_launch_attributes): Likewise.
13571 (get_target_argument_identifier_1): Likewise.
13572 (get_target_argument_identifier): Likewise.
13573 (get_target_argument_value): Likewise.
13574 (push_target_argument_according_to_value): Likewise.
13575 (get_target_arguments): Likewise.
13576 (expand_omp_target): Call get_target_arguments instead of looking
13577 up for teams and thread limit.
13578 (grid_expand_omp_for_loop): New function.
13579 (grid_arg_decl_map): New type.
13580 (grid_remap_kernel_arg_accesses): New function.
13581 (grid_expand_target_kernel_body): New function.
13582 (expand_omp): Call it.
13583 (lower_omp_for): Do not emit phony constructs.
13584 (lower_omp_taskreg): Do not emit phony constructs but create for them
13585 a temporary variable receiver_decl.
13586 (lower_omp_taskreg): Do not emit phony constructs.
13587 (lower_omp_teams): Likewise.
13588 (lower_omp_grid_body): New function.
13589 (lower_omp_1): Call it.
13590 (grid_reg_assignment_to_local_var_p): New function.
13591 (grid_seq_only_contains_local_assignments): Likewise.
13592 (grid_find_single_omp_among_assignments_1): Likewise.
13593 (grid_find_single_omp_among_assignments): Likewise.
13594 (grid_find_ungridifiable_statement): Likewise.
13595 (grid_target_follows_gridifiable_pattern): Likewise.
13596 (grid_remap_prebody_decls): Likewise.
13597 (grid_copy_leading_local_assignments): Likewise.
13598 (grid_process_kernel_body_copy): Likewise.
13599 (grid_attempt_target_gridification): Likewise.
13600 (grid_gridify_all_targets_stmt): Likewise.
13601 (grid_gridify_all_targets): Likewise.
13602 (execute_lower_omp): Call grid_gridify_all_targets.
13603 (make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
13604 * tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
13605 (tree_omp_clause): Added union field dimension.
13606 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
13607 * tree.c (omp_clause_num_ops): Added number of arguments of
13608 OMP_CLAUSE__GRIDDIM_.
13609 (omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
13610 (walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
13611 * tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
13612 (OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
13613 (OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
13614 (OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
13615 * passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
13616 * tree-pass.h (make_pass_gen_hsail): Declare.
13617 (make_pass_ipa_hsa): Likewise.
13618 * ipa-hsa.c: New file.
13619 * lto-section-in.c (lto_section_name): Add hsa section name.
13620 * lto-streamer.h (lto_section_type): Add hsa section.
13621 * timevar.def (TV_IPA_HSA): New.
13622 * hsa-brig-format.h: New file.
13623 * hsa-brig.c: New file.
13624 * hsa-dump.c: Likewise.
13625 * hsa-gen.c: Likewise.
13626 * hsa.c: Likewise.
13627 * hsa.h: Likewise.
13628 * toplev.c (compile_file): Call hsa_output_brig.
13629 * hsa-regalloc.c: New file.
13630
13631 2016-01-18 Jeff Law <law@redhat.com>
13632
13633 PR tree-optimization/69320
13634 * tree-ssa-dom.c (record_edge_info): For comparisons against a boolean
13635 ranged object, do nothing if the RHS constant is not [0..1].
13636 (optimize_stmt): Comparing a boolean ranged object against a
13637 constant outside [0..1] results in a compile-time constant.
13638
13639 * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
13640 test.
13641
13642 2016-01-18 Sandra Loosemore <sandra@codesourcery.com>
13643
13644 * doc/invoke.texi (Invoking GCC): Add new section to menu.
13645 (Option Summary): Update to reflect new section and moved options.
13646 (C++ Dialect Options): Move -fstats to new section.
13647 (Debugging Options): Move all dump, statistics, and other GCC
13648 developer options to new section. Rewrite section introduction
13649 and re-order remaining options to put the more basic ones first.
13650 (Optimization Options): Move -fira-verbose and -flto-report* to
13651 new section.
13652 (Developer Options): New section incorporating moved options.
13653 * doc/cppopts.texi (-dM): Update cross-reference.
13654
13655 2016-01-18 Richard Henderson <rth@redhat.com>
13656
13657 PR target/69176
13658 * config/aarch64/aarch64.md (add<GPI>3): Move long immediate
13659 operands to pseudo only if CSE is expected. Split long immediate
13660 operands only after reload, and for the stack pointer.
13661 (*add<GPI>3_pluslong): Remove.
13662 (*addsi3_aarch64, *adddi3_aarch64): Merge into...
13663 (*add<GPI>3_aarch64): ... here. Add r/rk/Upl alternative.
13664 (*addsi3_aarch64_uxtw): Add r/rk/Upl alternative.
13665 (*add<GPI>3 peepholes): New.
13666 (*add<GPI>3 splitters): New.
13667 * config/aarch64/constraints.md (Upl): New.
13668 * config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New.
13669
13670 2016-01-18 Richard Biener <rguenther@suse.de>
13671
13672 PR tree-optimization/69297
13673 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
13674 stmt at most once.
13675 (vect_bb_vectorization_profitable_p): Clear visited flag again.
13676
13677 2016-01-18 Yuri Rumyantsev <ysrumyan@gmail.com>
13678
13679 PR middle-end/68542
13680 * fold-const.c (fold_binary_op_with_conditional_arg): Bail out for case
13681 of mixind vector and scalar types.
13682 (fold_relational_const): Add handling of vector
13683 comparison with boolean result.
13684 * tree-cfg.c (verify_gimple_comparison): Add argument CODE, allow
13685 comparison of vector operands with boolean result for EQ/NE only.
13686 (verify_gimple_assign_binary): Adjust call for verify_gimple_comparison.
13687 (verify_gimple_cond): Likewise.
13688 * tree-vrp.c (extract_code_and_val_from_cond_with_ops): Modify check on
13689 valid type of VAL.
13690
13691 2016-01-18 Joseph Myers <joseph@codesourcery.com>
13692
13693 * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
13694 !TARGET_OCTEON.
13695
13696 2016-01-18 Richard Biener <rguenther@suse.de>
13697
13698 PR middle-end/69308
13699 * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.
13700
13701 2016-01-18 Tom de Vries <tom@codesourcery.com>
13702
13703 * passes.def: Add pass_parallelize_loops to pass_oacc_kernels.
13704
13705 2016-01-18 Tom de Vries <tom@codesourcery.com>
13706
13707 * omp-low.c (set_oacc_fn_attrib): Make extern.
13708 * omp-low.h (set_oacc_fn_attrib): Declare.
13709 * tree-parloops.c (struct reduction_info): Add reduc_addr field.
13710 (create_call_for_reduction_1): Handle case that reduc_addr is non-NULL.
13711 (create_parallel_loop, gen_parallel_loop, try_create_reduction_list):
13712 Add and handle function parameter oacc_kernels_p.
13713 (find_reduc_addr, get_omp_data_i_param): New function.
13714 (ref_conflicts_with_region, oacc_entry_exit_ok_1)
13715 (oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function.
13716 (parallelize_loops): Add and handle function parameter oacc_kernels_p.
13717 Calculate dominance info. Skip loops that are not in a kernels region
13718 in oacc_kernels_p mode. Skip inner loops of parallelized loops.
13719 (pass_parallelize_loops::execute): Call parallelize_loops with
13720 oacc_kernels_p argument.
13721 (pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param):
13722 New member function.
13723 (pass_parallelize_loops::bool oacc_kernels_p): New member var.
13724 * passes.def: Add argument to pass_parallelize_loops instantation.
13725
13726 2016-01-18 Tom de Vries <tom@codesourcery.com>
13727
13728 * tree-parloops.c (pass_parallelize_loops::execute): Allow
13729 pass_parallelize_loops to be run outside the loop pipeline.
13730
13731 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
13732
13733 * tree-scalar-evolution.c (follow_copies_to_constant): New.
13734 (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
13735
13736 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
13737
13738 PR target/63679
13739 * tree-ssa-scopedtables.c (avail_expr_hash): Hash MEM_REF and ARRAY_REF
13740 using get_ref_base_and_extent.
13741 (equal_mem_array_ref_p): New.
13742 (hashable_expr_equal_p): Add call to previous.
13743
13744 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
13745
13746 PR target/63679
13747 * tree-sra.c (disqualified_constants, constant_decl_p): New.
13748 (sra_initialize): Allocate disqualified_constants.
13749 (sra_deinitialize): Free disqualified_constants.
13750 (disqualify_candidate): Update disqualified_constants when appropriate.
13751 (create_access): Scan for constant-pool entries as we go along.
13752 (scalarizable_type_p): Add check against type_contains_placeholder_p.
13753 (maybe_add_sra_candidate): Allow constant-pool entries.
13754 (load_assign_lhs_subreplacements): Bind debug for constant pool vars.
13755 (initialize_constant_pool_replacements): New.
13756 (sra_modify_assign): Avoid mangling assignments created by previous,
13757 and don't generate writes into constant pool.
13758 (sra_modify_function_body): Call initialize_constant_pool_replacements.
13759
13760 2016-01-18 Ilya Enkovich <enkovich.gnu@gmail.com>
13761
13762 * config/i386/i386.c (scalar_to_vector_candidate_p): Support
13763 andnot instruction.
13764 (scalar_chain::convert_op): Likewise.
13765 * config/i386/i386.md (*andndi3_doubleword): New.
13766
13767 2016-01-18 Richard Biener <rguenther@suse.de>
13768
13769 PR tree-optimization/69170
13770 * tree-vect-slp.c (vect_build_slp_tree): Verify we are not
13771 building a vector from scalar results of a pattern stmt.
13772
13773 2016-01-18 Jakub Jelinek <jakub@redhat.com>
13774
13775 * haifa-sched.c (autopref_multipass_init): Work around
13776 -Wmaybe-uninitialized warning.
13777
13778 2016-01-18 Thomas Preud'homme <thomas.preudhomme@arm.com>
13779
13780 * config/arm/arm.c (thumb1_reorg): Check that the comparison is
13781 against the constant 0.
13782
13783 2016-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13784
13785 PR tree-optimization/68799
13786 * gimple-ssa-strength-reduction.c (create_phi_basis): Directly
13787 look up phi candidates in the statement-candidate map.
13788 (phi_add_costs): Likewise.
13789 (record_phi_increments): Likewise.
13790 (phi_incr_cost): Likewise.
13791 (ncd_with_phi): Likewise.
13792 (all_phi_incrs_profitable): Likewise.
13793
13794 2016-01-17 Jakub Jelinek <jakub@redhat.com>
13795
13796 * omp-low.c (mark_loops_in_oacc_kernels_region): Work around
13797 -Wmaybe-uninitialized warning.
13798
13799 2016-01-16 Sandra Loosemore <sandra@codesourcery.com>
13800
13801 * doc/invoke.texi (Invoking GCC): Add new section to menu.
13802 (Option Summary): Update to reflect new section and moved options.
13803 (C++ Dialect Options): Move -fvtable-verify and related options.
13804 (Debugging Options): Move Sanitizer, Pointer Bounds Checker,
13805 and profiling-related options.
13806 (Optimization Options): Move profile generation options and
13807 -fstack-protector and related options.
13808 (Instrumentation Options): New section incorporating moved options.
13809 (Code Generation Options): Move -finstrument-functions and
13810 related options, -fstack-check, -fstack-limit*, and -fbounds-check.
13811
13812 2016-01-16 Tom de Vries <tom@codesourcery.com>
13813
13814 * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.
13815
13816 2016-01-16 Tom de Vries <tom@codesourcery.com>
13817
13818 * omp-low.c (expand_omp_atomic_fetch_op): Release defs of update stmt.
13819
13820 2016-01-16 Richard Sandiford <richard.sandiford@arm.com>
13821
13822 * hash-table.h (hash_table::empty): Turn into an inline wrapper
13823 that checks whether the table is already empty. Rename the
13824 original implementation to...
13825 (hash_table::empty_slot): ...this new private function.
13826
13827 2016-01-15 David Malcolm <dmalcolm@redhat.com>
13828
13829 PR diagnostic/68899
13830 * diagnostic-show-locus.c (layout::print_source_line): Move x
13831 offset of line until after call to
13832 get_line_width_without_trailing_whitespace.
13833
13834 2016-01-15 Jeff Law <law@redhat.com>
13835
13836 PR tree-optimization/69270
13837 * tree-ssanames.c (ssa_name_has_boolean_range): Moved here from
13838 tree-ssa-dom.c. Improve test for [0..1] ranve from VRP.
13839 * tree-ssa-dom.c (ssa_name_has_boolean_range): Remove.
13840 * tree-ssanames.h (ssa_name_has_boolean_range): Prototype.
13841 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
13842 ssa_name_has_boolean_range and constant_boolean_node.
13843
13844 2016-01-15 Vladimir Makarov <vmakarov@redhat.com>
13845
13846 PR rtl-optimization/69030
13847 * lra-spills.c (remove_pseudos): Check nrefs and make the function
13848 returning bool.
13849 (spill_pseudos): Delete debug insn for dead pseudo.
13850 (lra_spill): Initiate spill_hard_reg and slots memory separately.
13851
13852 2016-01-15 Jiong Wang <jiong.wang@arm.com>
13853
13854 * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
13855 New.
13856 (TYPES_UNOPUS): Likewise.
13857 * config/aarch64/aarch64-simd-builtins.def (lbtruncuv2sf): Correct
13858 builtin type, from UNOP to UNOPUS.
13859 (lbtruncuv4sf): Likewise.
13860 (lbtruncuv2df): Likewise.
13861 (lrounduv2sf): Likewise.
13862 (lrounduv4sf): Likewise.
13863 (lrounduv2df): Likewise.
13864 (lroundusf): Likewise.
13865 (lroundusf): Likewise.
13866 (lceiluv2sf): Likewise.
13867 (lceiluv4sf): Likewise.
13868 (lceiluv2df): Likewise.
13869 (lceilusf): Likewise.
13870 (lceiludf): Likewise.
13871 (lflooruv2sf): Likewise.
13872 (lflooruv4sf): Likewise.
13873 (lflooruv2df): Likewise.
13874 (lfloorusf): Likewise.
13875 (lfloorudf): Likewise.
13876 (lfrintnuv2sf): Likewise.
13877 (lfrintnuv4sf): Likewise.
13878 (lfrintnuv2df): Likewise.
13879 (lfrintnusf): Likewise.
13880 (lfrintnudf): Likewise.
13881 * config/aarch64/arm_neon.h (vcvt_u32_f32): Remove unncessary type
13882 conversion.
13883 (vcvtq_u32_f32): Likewise.
13884 (vcvtq_u64_f64): Likewise.
13885 (vcvta_u32_f32): Likewise.
13886 (vcvtaq_u32_f32): Likewise.
13887 (vcvtaq_u64_f64): Likewise.
13888 (vcvtm_u32_f32): Likewise.
13889 (vcvtmq_u32_f32): Likewise.
13890 (vcvtmq_u64_f64): Likewise.
13891 (vcvtn_u32_f32): Likwise.
13892 (vcvtnq_u32_f32): Likewise.
13893 (vcvtnq_u64_f64): Likewise.
13894 (vcvtp_u32_f32): Likewise.
13895 (vcvtpq_u32_f32): Likewise.
13896 (vcvtpq_u64_f64): Likewise.
13897 (vcvtmd_u64_f64): Likewise.
13898 (vcvtms_u32_f32): Likewise.
13899 (vcvtad_u64_f64): Likewise.
13900 (vcvtas_u32_f32): Likewise.
13901 (vcvtnd_u64_f64): Likewise.
13902 (vcvtns_u32_f32): Likewise.
13903 (vcvtpd_u64_f64): Likewise.
13904 (vcvtps_u32_f32): Likewise.
13905
13906 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13907
13908 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
13909 CSEL of zero_extended registers.
13910
13911 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13912
13913 * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
13914 Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
13915
13916 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13917
13918 * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
13919 false when argument string is not found in the attributes table
13920 at all.
13921
13922 2016-01-15 David Edelsohn <dje.gcc@gmail.com>
13923
13924 PR target/68609
13925 * config/rs6000/rs6000.c (rs6000_emit_msub): Delete.
13926 (rs6000_emit_swsqrt): Convert to Goldschmidt's Algorithm
13927 * config/rs6000/rs6000.md (sqrt<mode>2): Limit swsqrt to high
13928 precision estimate.
13929
13930 2016-01-15 Richard Biener <rguenther@suse.de>
13931
13932 PR tree-optimization/66856
13933 * tree-vect-loop.c (vect_transform_loop): Free SLP instances here.
13934 * tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count.
13935 (vect_create_new_slp_node): Increment stmt reference count.
13936 (vect_get_and_check_slp_defs): Make sure stmts are nor already in
13937 an SLP tree before swapping operands.
13938 (vect_build_slp_tree): Likewise.
13939 (destroy_bb_vec_info): Free stmt info after SLP instances.
13940 * tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count.
13941 * tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field.
13942 (STMT_VINFO_NUM_SLP_USES): New macro.
13943
13944 2016-01-15 Richard Biener <rguenther@suse.de>
13945
13946 PR debug/69137
13947 * dwarf2out.c (add_linkage_name_raw): New function split out from ...
13948 (add_linkage_name): ... here.
13949 (gen_typedef_die): Use add_linkage_name_raw instead of
13950 add_linkage_attr to delay DECL_ASSEMBLER_NAME computation
13951 if necessary.
13952
13953 2016-01-15 Cesar Philippidis <cesar@codesourcery.com>
13954
13955 * gimplify.c (oacc_default_clause): Decode reference and pointer
13956 types for both kernels and parallel regions.
13957
13958 2016-01-15 Richard Sandiford <richard.sandiford@arm.com>
13959
13960 PR middle-end/69246
13961 * calls.c (emit_call_1): Force n_popped to zero for sibcalls.
13962
13963 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
13964
13965 * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
13966 (convert_scalars_to_vector): Likewise.
13967
13968 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
13969
13970 * doc/extend.texi (Type Traits): Fix grammar.
13971
13972 2016-01-15 Martin Jambor <mjambor@suse.cz>
13973
13974 * tree-inline.c (remap_decl): Use existing dclarations if
13975 remapping a type and prevent_decl_creation_for_types.
13976 (replace_locals_stmt): Do an initial remapping of non-VLA typed
13977 decls first. Do real remapping with
13978 prevent_decl_creation_for_types set.
13979 * tree-inline.h (copy_body_data): New field
13980 prevent_decl_creation_for_types, moved remap_var_for_cilk to avoid
13981 padding.
13982
13983 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
13984
13985 * config/s390/s390.opt (mmvcle): More verbose help text.
13986
13987 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
13988
13989 * config/s390/s390.opt: Add period to -mzvector option text.
13990
13991 2016-01-15 Richard Biener <rguenther@suse.de>
13992
13993 PR tree-optimization/68961
13994 * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
13995 of invariants in stores again.
13996
13997 2016-01-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
13998
13999 * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.
14000
14001 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
14002
14003 * config/i386/i386.c (ix86_expand_branch): Don't split
14004 DI mode xor instruction to SI mode.
14005
14006 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
14007
14008 PR ipa/68148
14009 * ipa-icf.c (sem_function::merge): Virtual functions may become
14010 reachable even if they address is not taken and there are no
14011 idrect calls.
14012
14013 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
14014
14015 * lto-streamer-out.c (subtract_estimated_size): New function.
14016 (get_symbol_initial_value): Use it.
14017
14018 2016-01-15 Christian Bruel <christian.bruel@st.com>
14019
14020 PR target/65837
14021 * config/arm/arm-builtins.c (ARM_BUILTIN_CRYPTO_BASE): New enum tag.
14022 (arm_init_neon_builtins_internal): Rename arm_init_neon_builtins,
14023 (arm_init_crypto_builtins_internal): Rename arm_init_crypto_builtins.
14024 use add_builtin_function_ext_scope instead of add_builtin_function.
14025 (neon_set_p, neon_crypto_set_p): Remove.
14026 (arm_init_builtins): Always call arm_init_neon_builtins and
14027 arm_init_crypto_builtins.
14028 (arm_expand_builtin): Check that builtins are allowed for the arch.
14029 * config/arm/arm-protos.h (arm_init_neon_builtins): Remove prototype.
14030 * config/arm/arm.c (arm_valid_target_attribute_tree): Remove
14031 arm_init_neon_builtins call.
14032
14033 2016-01-15 Richard Biener <rguenther@suse.de>
14034
14035 PR tree-optimization/69117
14036 * tree-ssa-sccvn.h (struct vn_ssa_aux): Add info member.
14037 * tree-ssa-sccvn.c (set_ssa_val_to): Save and adjust SSA name info
14038 of the leader conservatively.
14039 (free_scc_vn): Restore original SSA name infos.
14040
14041 2016-01-14 Jeff Law <law@redhat.com>
14042
14043 PR tree-optimization/69270
14044 * tree-ssa-dom.c (ssa_name_has_boolean_range): If the type has a
14045 single bit of precision, verify it's also unsigned.
14046 (record_edge_info): Use constant_boolean_node rather than fold_convert
14047 to convert boolean_true/boolean_false to the right type.
14048
14049 2016-01-14 Richard Henderson <rth@redhat.com>
14050
14051 PR rtl-opt/69014
14052 * loop-doloop.c (record_reg_sets): New.
14053 (doloop_optimize): Reject the transform if the sequence
14054 clobbers registers live at the end of the loop block.
14055 (doloop_optimize_loops): Enable df_live if needed.
14056
14057 2016-01-14 Michael Meissner <meissner@linux.vnet.ibm.com>
14058
14059 * config/rs6000/rs6000-builtin.def: Revert 2016-01-13 change.
14060 * config/rs6000/rs6000.c: Likewise.
14061 * config/rs6000/rs6000.h: Likewise.
14062 * config/rs6000/rs6000.md: Likewise.
14063 * doc/extend.texi: Likewsie.
14064
14065 2016-01-14 Jeff Law <law@redhat.com>
14066
14067 * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
14068 typo.
14069
14070 2016-01-14 Richard Henderson <rth@redhat.com>
14071
14072 PR c/69272
14073 PR tree-opt/68964
14074 * trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size.
14075 * tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p
14076 instead of builtin_decl_declared_p to test for declaration.
14077
14078 2016-01-14 Nicklas Bo Jensen <nbjensen@gmail.com>
14079
14080 * doc/loop.texi (Loop Analysis and Representation): Document
14081 loop_depth function.
14082
14083 2016-01-14 Tom de Vries <tom@codesourcery.com>
14084
14085 PR tree-optimization/68773
14086 * omp-low.c (expand_omp_target): Don't set force_output.
14087 * varpool.c (varpool_node::get_create): Same.
14088 * lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and
14089 offload_funcs with force_output.
14090
14091 2016-01-14 Jakub Jelinek <jakub@redhat.com>
14092
14093 PR debug/69244
14094 * lra-eliminations.c (move_plus_up): Don't change anything if either
14095 the outer or inner subreg mode is not MODE_INT.
14096 * dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is
14097 integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards.
14098
14099 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
14100
14101 * doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m},
14102 reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m},
14103 reduc_uplus_@var{m}): Remove.
14104 * expr.c (expand_expr_real_2): Remove expansion path for
14105 reduc_[us](min|max|plus) optabs.
14106 * optabs-tree.c (scalar_reduc_to_vector): Remove.
14107 * optabs-tree.h (scalar_reduc_to_vector): Remove.
14108 * optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab,
14109 reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove.
14110 * tree-vect-loop.c (vectorizable_reduction): Remove test for
14111 reduc_[us](min|max|plus) optabs.
14112
14113 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
14114
14115 * config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove.
14116 (reduc_plus_scal_v2sf): New.
14117 (reduc_smax_v2sf): Rename to...
14118 (reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract.
14119 (reduc_smin_v2sf): Rename to...
14120 (reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract.
14121
14122 2016-01-14 Jan Hubicka <hubicka@ucw.cz>
14123
14124 * alias.c (compare_base_symbol_refs): New function.
14125 (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
14126 it.
14127
14128 2016-01-14 Jakub Jelinek <jakub@redhat.com>
14129
14130 PR middle-end/68146
14131 PR tree-optimization/69155
14132 * tree-complex.c: Include cfganal.h.
14133 (phis_to_revisit): New variable.
14134 (extract_component): Add phiarg_p argument. Assert that returned
14135 SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true.
14136 (update_phi_components): Partly rewrite to use loop over real/imag
14137 components instead of code duplication. If extract_component returns
14138 SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or
14139 create_tmp_reg into the PHI node instead, and mention the phi triplet
14140 in phis_to_revisit.
14141 (tree_lower_complex): Walk bbs in rpo order. Adjust phis recorded
14142 in phis_to_revisit at the end.
14143
14144 2016-01-14 Richard Biener <rguenther@suse.de>
14145
14146 PR tree-optimization/68060
14147 * tree-vect-loop.c (vect_is_simple_reduction): Check the
14148 outer loop reduction is only used in the inner loop before
14149 detecting a double reduction.
14150
14151 2016-01-14 Jakub Jelinek <jakub@redhat.com>
14152
14153 PR target/68269
14154 * combine.c (expand_field_assignment): Punt if compute_mode is
14155 unsupported scalar mode.
14156
14157 2016-01-14 Richard Biener <rguenther@suse.de>
14158
14159 PR tree-optimization/66856
14160 * tree-vect-slp.c (vect_build_slp_tree): Refactor to build
14161 SLP node only if it built successfully.
14162 (vect_analyze_slp_instance): Adjust.
14163
14164 2016-01-14 Jeff Law <law@redhat.com>
14165
14166 PR tree-optimization/69270
14167 * tree-ssa-dom.c (ssa_name_has_boolean_range): New function.
14168 (record_edge_info): Use it. Convert boolean_{true,false}_node
14169 to the type of op0.
14170
14171 2016-01-13 Jan Hubicka <hubicka@ucw.cz>
14172
14173 PR ipa/66487
14174 * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
14175 use block_ultimate_origin
14176 (noncall-stmt_may_be_vtbl_ptr_store): Likewise.
14177
14178 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
14179
14180 * doc/invoke.texi (Submodel Options): Rename section to
14181 "Machine-Dependent Options" to better reflect its content.
14182 Rewrite introductory text to remove archaic CPU names.
14183 Update references.
14184
14185 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
14186
14187 * doc/invoke.texi (Code Gen Options): Move section up in file,
14188 before target-specific options. Update menu and option summary
14189 to reflect the new section ordering.
14190
14191 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
14192
14193 * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
14194 (C++ Dialect Options): Add cross-reference to -std option.
14195 * doc/standards.texi (C++ Language): Document C++14 support.
14196
14197 2016-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
14198
14199 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
14200 for pack/unpack functions for __ibm128.
14201 (PACK_IF): Likewise.
14202 (UNPACK_IF): Likewise.
14203
14204 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
14205 support for __ibm128 pack/unpack functions.
14206 (rs6000_invalid_builtin): Likewise.
14207 (rs6000_init_builtins): Likewise.
14208 (rs6000_opt_masks): Likewise.
14209
14210 * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
14211 (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
14212 functions
14213 (RS6000_BTM_COMMON): Likewise.
14214
14215 * config/rs6000/rs6000.md (f128_vsx): New mode attribute.
14216 (unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
14217 disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
14218 128-bit floating point. Add support for the double values to be
14219 in Altivec registers for TF/IF packing and unpacking, but restrict
14220 TD packing sub-fields to be FPR registers. Don't allow overlapped
14221 register support for packing. Allow pack inputs to be memory
14222 locations. Don't build generator functions for unpack<mode>_dm
14223 and unpack<mode>_nodm.
14224 (unpack<mode>_dm): Likewise.
14225 (unpack<mode>_nodm): Likewise.
14226 (pack<mode>): Likewise.
14227
14228 * config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
14229 built-in functions to pack/unpack explicit __ibm128 values.
14230 (__builtin_unpack_ibm128): Likewise.
14231
14232 * doc/extend.texi (PowerPC Built-in Functions): Document
14233 __builtin_pack_ibm128 and __builtin_unpack_ibm128.
14234
14235 2016-01-13 Bernd Schmidt <bschmidt@redhat.com>
14236
14237 PR c/66208
14238 * c-common.c (check_function_nonnull): Remove unnecessary declaration.
14239 Add new arg loc and pass it down as context.
14240 (check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
14241 to the location to use for the warning.
14242 (check_function_arguments): New arg loc. All callers changed. Pass
14243 it to check_function_nonnull.
14244 * c-common.h (check_function_arguments): Adjust declaration.
14245
14246 2016-01-13 Jakub Jelinek <jakub@redhat.com>
14247
14248 PR tree-optimization/69156
14249 * gimple.c (validate_type): Removed.
14250 (gimple_builtin_call_types_compatible_p): Use
14251 useless_type_conversion_p instead of validate_type.
14252 * value-prof.c (gimple_stringop_fixed_value): Fold
14253 icall_size to correct type.
14254
14255 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
14256
14257 * doc/extend.texi (__atomic Builtins): Clarify compare_exchange
14258 effects.
14259
14260 2016-01-13 Richard Henderson <rth@redhat.com>
14261
14262 PR tree-opt/68964
14263 * target.def (builtin_tm_load, builtin_tm_store): Remove.
14264 * config/i386/i386.c (ix86_builtin_tm_load): Remove.
14265 (ix86_builtin_tm_store): Remove.
14266 (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
14267 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
14268 * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
14269 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
14270 * doc/tm.texi: Rebuild.
14271
14272 * gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New.
14273 (BUILT_IN_TM_MEMCPY_RTWN): New.
14274 * trans-mem.c (tm_log_emit_stmt): Rearrange code for better
14275 fallback from vector to integer helpers.
14276 (build_tm_load): Handle vector types directly, instead of
14277 via target hook.
14278 (build_tm_store): Likewise.
14279 (expand_assign_tm): Prepare for register types not handled by
14280 the above. Copy them to memory and use memcpy.
14281 * tree.c (tm_define_builtin): New.
14282 (find_tm_vector_type): New.
14283 (build_tm_vector_builtins): New.
14284 (build_common_builtin_nodes): Call it.
14285
14286 2016-01-13 Uros Bizjak <ubizjak@gmail.com>
14287
14288 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
14289 TARGET_SSE_MATH without TARGET_SSE2. Rewrite.
14290
14291 2016-01-13 Tom de Vries <tom@codesourcery.com>
14292
14293 PR tree-optimization/69169
14294 * tree-ssa-structalias.c (create_variable_info_for_1): Add and handle
14295 handled_struct_type param.
14296 (create_variable_info_for, intra_create_variable_infos): Call
14297 create_variable_info_for_1 with extra arg.
14298
14299 2016-01-13 Yvan Roux <yvan.roux@linaro.org>
14300
14301 * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
14302 and "armv8.1-a+crc" entries.
14303
14304 2016-01-13 Alexander Fomin <alexander.fomin@intel.com>
14305
14306 PR target/69228
14307 * config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
14308 Change first operand predicate from register_or_constm1_operand
14309 to register_operand.
14310 (define_expand "avx512pf_gatherpf<mode>df"): Likewise.
14311 (define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
14312 (define_expand "avx512pf_scatterpf<mode>df"): Likewise.
14313 (define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
14314 (define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
14315 (define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
14316 (define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
14317 * config/i386/i386.c (ix86_expand_builtin): Remove first operand
14318 comparison with constm1_rtx from vec_prefetch_gen part.
14319
14320 2016-01-13 Richard Biener <rguenther@suse.de>
14321
14322 PR tree-optimization/69013
14323 * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
14324 Exchange assert for a test.
14325
14326 2016-01-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
14327
14328 PR target/69247
14329 * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.
14330
14331 2016-01-13 Richard Biener <rguenther@suse.de>
14332
14333 PR tree-optimization/69242
14334 * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
14335 assert with a check.
14336
14337 2016-01-13 Richard Biener <rguenther@suse.de>
14338
14339 PR tree-optimization/69186
14340 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
14341 Properly guard vect_update_misalignment_for_peel call.
14342
14343 2016-01-12 Jeff Law <law@redhat.com>
14344
14345 PR tree-optimization/pr67755
14346 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
14347 "need_profile_correction".
14348 (thread_block_1): Initialize new field to false by default. If we
14349 have multiple thread paths through a common joiner to different
14350 final targets, then set new field to true.
14351 (compute_path_counts): Only do count adjustment when it's really
14352 needed.
14353
14354 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
14355
14356 * doc/invoke.texi (Spec Files): Move section down in file, past
14357 all command-line option descriptions.
14358
14359 2016-01-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
14360
14361 PR middle-end/54809
14362 * doc/gty.texi: Remove documentation of mark_hook.
14363 * gengtype.c (struct write_types_data): Remove code to support
14364 mark_hook attribute.
14365 (walk_type): Likewise.
14366 (write_func_for_structure): Likewise.
14367
14368 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
14369
14370 * doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to
14371 Directory Options, and -specs= to Overall Options.
14372 (Overall Options): Adjust similarly. Reorder to group related
14373 options together. Make -specs= cross-reference the spec file details.
14374 (Directory Options): Adjust similarly.
14375
14376 2016-01-12 Jeff Law <law@redhat.com>
14377
14378 * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
14379
14380 2016-01-12 Olivier Hainque <hainque@adacore.com>
14381
14382 * gcc.c (spec_undefvar_allowed): New global.
14383 (process_command): Set to true when running for --version or --help,
14384 alone or together.
14385 (getenv_spec_function): When the variable is not defined, use the
14386 variable name as the variable value if we're allowed not to issue
14387 a fatal error.
14388
14389 2016-01-12 Bin Cheng <bin.cheng@arm.com>
14390
14391 PR tree-optimization/68911
14392 * tree-vrp.c (adjust_range_with_scev): Check overflow in range
14393 information computed for expression "init + nit * step".
14394
14395 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
14396
14397 * doc/invoke.texi (Invoking GCC): Copy-edit. Incorporate information
14398 about name of GCC executable. Remove deleted node from menu.
14399 (Directory Options) <-B>: Remove cross-reference to deleted node.
14400 (Target Options): Delete section.
14401
14402 2016-01-12 Christian Bruel <christian.bruel@st.com>
14403
14404 PR target/69180
14405 * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
14406 for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.
14407
14408 2016-01-12 Jakub Jelinek <jakub@redhat.com>
14409
14410 PR target/69198
14411 * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
14412 aligned_mem is properly set for AVX512-VL floating point masked
14413 stores.
14414
14415 PR target/69175
14416 * ifcvt.c (cond_exec_process_if_block): When removing the last
14417 insn from then_bb, remove also any possible barriers that follow it.
14418
14419 2016-01-12 H.J. Lu <hongjiu.lu@intel.com>
14420
14421 PR target/68456
14422 PR target/69226
14423 * config/i386/iamcu.h (SIZE_TYPE): New macro.
14424 (PTRDIFF_TYPE): Likewise.
14425 (WCHAR_TYPE): Likewise.
14426 (WCHAR_TYPE_SIZE): Likewise.
14427 (STDINT_LONG32): Likewise.
14428
14429 2016-01-12 Richard Biener <rguenther@suse.de>
14430
14431 PR tree-optimization/69053
14432 * tree-vect-loop.c (get_initial_def_for_reduction): Properly
14433 convert initial value for cond reductions.
14434
14435 2016-01-12 Richard Biener <rguenther@suse.de>
14436
14437 PR tree-optimization/69007
14438 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
14439 widen_sum after dot_prod and sad.
14440
14441 2016-01-12 Richard Biener <rguenther@suse.de>
14442
14443 PR tree-optimization/69168
14444 * tree-vect-loop.c (vect_analyze_loop_2): Reset both main and
14445 pattern stmt SLP type.
14446 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may
14447 end up unused so cope with that case.
14448
14449 2016-01-12 Richard Biener <rguenther@suse.de>
14450
14451 PR tree-optimization/69157
14452 * tree-vect-stmts.c (vectorizable_mask_load_store): Check
14453 stmts def type only during analyze phase.
14454 (vectorizable_call): Likewise.
14455 (vectorizable_simd_clone_call): Likewise.
14456 (vectorizable_conversion): Likewise.
14457 (vectorizable_assignment): Likewise.
14458 (vectorizable_shift): Likewise.
14459 (vectorizable_operation): Likewise.
14460 (vectorizable_store): Likewise.
14461 (vectorizable_load): Likewise.
14462
14463 2016-01-12 Richard Biener <rguenther@suse.de>
14464
14465 PR tree-optimization/69174
14466 * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
14467 space.
14468 (vectorizable_load): Properly compute the number of loads needed
14469 for permuted strided SLP loads and do not spuriously assign
14470 to SLP_TREE_VEC_STMTS.
14471
14472 2016-01-12 Andris Pavenis <andris.pavenis@iki.fi>
14473
14474 * config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2
14475 (TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive
14476 (MD_EXEC_PREFIX): Remove.
14477 (MD_STARTFILE_PREFIX) Removee.
14478 (FILE_NAME_ABSOLUTE_P): Remove.
14479 (CPP_SPEC): Do not read macros from sys/version.h.
14480 (LINK_COMMAND_SPEC): Remove.
14481 (LOCAL_INCLUDE_DIR): Remove.
14482 (TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section
14483 (TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix.
14484 (POST_LINK_SPEC): Define to invoke stubify after linker
14485 (LIBSTDCXX): Remove define
14486 (DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map.
14487 (DEFAULT_PCC_STRUCT_RETURN): Define to 1.
14488 (SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210.
14489 (SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message.
14490 (SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info.
14491 (IX86_MAYBE_NO_LIBGCC_TFMODE): Remove.
14492 (i386_djgpp_asm_named_section): Add propotype of new procedure
14493
14494 * config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define.
14495 (MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h).
14496 (STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX
14497 in config/i386/djgpp.h).
14498 (STANDARD_STARTFILE_PREFIX_2): Define identical to
14499 STANDARD_STARTFILE_PREFIX_1.
14500 (LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h).
14501 (GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal
14502 installation errors.
14503 (MAX_OFILE_ALIGNMENT): Define to 128.
14504 (HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h.
14505
14506 * config/i386/djgpp.c: New file. Add implementation of
14507 i386_djgpp_asm_named_section.
14508
14509 * config/i386/djgpp.opt: Remove obsolete option -mbnu210.
14510
14511 * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
14512 Add rule for building djgpp.o.
14513
14514 2016-01-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14515
14516 * config/rs6000/rs6000.c (v2df_reduction_p): New function.
14517 (rtx_is_swappable_p): Reductions are swappable.
14518 (insn_is_swappable_p): V2DF reductions are swappable.
14519
14520 2016-01-11 John David Anglin <danglin@gcc.gnu.org>
14521
14522 * config/pa/pa.c (pa_emit_move_sequence): Handle floating point
14523 reloads for other unsupported memory operands.
14524
14525 2016-01-12 Kugan Vivekanandarajah <kuganv@linaro.org>
14526 Jim Wilson <jim.wilson@linaro.org>
14527
14528 PR target/69194
14529 * config/arm/arm-builtins.c (arm_expand_neon_args): Call
14530 copy_to_mode_reg instead of force_reg.
14531
14532 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
14533
14534 PR target/69225
14535 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
14536 TARGET_80387 is true.
14537
14538 2016-01-11 Jakub Jelinek <jakub@redhat.com>
14539
14540 PR target/69071
14541 * lra-eliminations.c (move_plus_up): Only move plus up
14542 if subreg of the constant can be simplified into constant
14543 and use the simplified subreg of the constant instead of
14544 the original constant.
14545
14546 * fold-const.c (fold_convertible_p): Don't return true
14547 for conversion of VECTOR_TYPE to same sized integral type.
14548 (fold_convert_loc): Fix up formatting. Fold conversion of
14549 VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR
14550 instead of NOP_EXPR.
14551
14552 PR tree-optimization/69214
14553 * tree-vrp.c (simplify_cond_using_ranges): Don't propagate
14554 innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
14555 Formatting fix.
14556
14557 PR tree-optimization/69207
14558 * tree-vect-slp.c (vect_get_constant_vectors): For
14559 VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
14560 fold_convertible_p to vector_type's element type, and always
14561 use VCE for non-VECTOR_BOOLEAN_TYPE_P.
14562
14563 2016-01-11 Richard Biener <rguenther@suse.de>
14564
14565 PR tree-optimization/69173
14566 * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only
14567 fixup the cycle if all stmts are in a pattern.
14568
14569 2016-01-11 Uros Bizjak <ubizjak@gmail.com>
14570
14571 PR middle-end/68999
14572 * alias.c (base_alias_check): Move check for addresses with
14573 alignment ANDs before the call for compare_base_decls.
14574 (memrefs_conflict_p): Return -1 for different decls
14575 that went through alignment adjustments.
14576
14577 2016-01-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14578
14579 PR rtl-optimization/68796
14580 * config/aarch64/aarch64.md (*and<mode>_compare0): New pattern.
14581 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle HImode
14582 and QImode comparisons against zero with CC_NZmode.
14583 * config/aarch64/iterators.md (short_mask): New mode_attr.
14584
14585 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
14586
14587 * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
14588 (<avx512>_store<mode>_mask): Likewise.
14589
14590 2016-01-11 Bernd Schmidt <bschmidt@redhat.com>
14591 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14592
14593 PR rtl-optimization/68841
14594 * ifcvt.c (struct noce_if_info): Add orig_x field.
14595 (bbs_ok_for_cmove_arith): Add to_rename parameter.
14596 Don't record conflicts on to_rename if it's present.
14597 Allow memory destinations in sets.
14598 (noce_try_cmove_arith): Call bbs_ok_for_cmove_arith even on simple
14599 blocks, passing orig_x to the checks.
14600 (noce_process_if_block): Set if_info->orig_x appropriately.
14601
14602 2016-01-11 Tom de Vries <tom@codesourcery.com>
14603
14604 PR tree-optimization/69069
14605 * tree-parloops.c (create_parallel_loop): Add missing phi args.
14606
14607 2016-01-11 Yuri Rumyantsev <ysrumyan@gmail.com>
14608
14609 PR rtl-optimization/68920
14610 * config/i386/i386.c (ix86_option_override_internal): Restrict number
14611 of conditional moves for RTL if-conversion to 1 for
14612 TARGET_ONE_IF_CONV_INSN.
14613 * config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros.
14614 * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros.
14615 * params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new
14616 parameter to restirct number of conditional moves for
14617 RTL if-conversion.
14618 * doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
14619 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
14620 conditionl moves.
14621
14622 2016-01-11 Alexandre Oliva <aoliva@redhat.com>
14623
14624 PR bootstrap/69123
14625 * var-tracking.c (drop_overlapping_mem_locs): Operate on all
14626 onepart vars. Fix typo in comment. Fix reversed condition in
14627 unshare test.
14628 (dataflow_set_remove_mem_locs): Operate on all onepart vars.
14629
14630 PR bootstrap/69123
14631 * var-tracking.c (dump_onepart_variable_differences): New.
14632 (dataflow_set_different): If a detailed dump is requested,
14633 delay early returns and dump differences between onepart
14634 variables present before and after, and added variables.
14635
14636 2016-01-11 Ilya Enkovich <enkovich.gnu@gmail.com>
14637
14638 PR target/69010
14639 * expr.c (expand_expr_real_1): For boolean vector constants
14640 with a scalar mode use const_scalar_mask_from_tree.
14641 (const_scalar_mask_from_tree): New.
14642 * optabs.c (expand_vec_cond_mask_expr): Use mask mode
14643 assigned to a mask type to handle constants.
14644
14645 2016-01-11 Martin Jambor <mjambor@suse.cz>
14646
14647 PR ipa/69044
14648 * ipa-cp.c (estimate_local_effects): Do not clone for removal of
14649 useless parameters if we cannot change function signature.
14650
14651 2016-01-11 Martin Jambor <mjambor@suse.cz>
14652
14653 PR ipa/66616
14654 * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
14655 flag.
14656
14657 2016-01-11 Tom de Vries <tom@codesourcery.com>
14658
14659 PR tree-optimization/69109
14660 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
14661 latch with phi.
14662
14663 2016-01-11 Tom de Vries <tom@codesourcery.com>
14664
14665 PR tree-optimization/69108
14666 * tree-parloops.c (gather_scalar_reductions): Handle case that outer phi
14667 res is not used in a phi.
14668
14669 2016-01-11 Yury Gribov <y.gribov@samsung.com>
14670
14671 PR 67425
14672 * common.opt (frandom-seed): Fix parameter name.
14673 * doc/invoke.texi (frandom-seed): Ditto and describe parameter.
14674
14675 2016-01-11 Tom de Vries <tom@codesourcery.com>
14676
14677 PR tree-optimization/69058
14678 * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
14679 not supported.
14680
14681 2016-01-11 Andrew Burgess <andrew.burgess@embecosm.com>
14682
14683 * config/arc/arc.opt (mdiv-rem): Add period to the end.
14684 (mcode-density): Likewise.
14685
14686 2016-01-10 Tom de Vries <tom@codesourcery.com>
14687
14688 PR tree-optimization/69062
14689 * tree-parloops.c (loop_has_phi_with_address_arg): New function.
14690 (parallelize_loops): Don't paralelize loop that has phi with address
14691 arg.
14692
14693 2016-01-10 Tom de Vries <tom@codesourcery.com>
14694
14695 PR tree-optimization/69039
14696 * tree-parloops.c (try_create_reduction_list): Only allow single exit
14697 phi for reduction.
14698
14699 2016-01-09 John David Anglin <danglin@gcc.gnu.org>
14700
14701 PR middle-end/68743
14702 * match.pd: Require target has function_c99_misc before doing
14703 truncl(extend(x)) and trunc(extend(x)) -> extend(truncf(x)), etc.
14704
14705 2016-01-09 Gerald Pfeifer <gerald@pfeifer.com>
14706
14707 * configure.ac (isl_options_set_schedule_serialize_sccs): Also
14708 use GMPINC.
14709 * configure: Regenerate.
14710
14711 2016-01-09 Jakub Jelinek <jakub@redhat.com>
14712
14713 PR middle-end/50865
14714 PR tree-optimization/69097
14715 * fold-const.h (expr_not_equal_to): New prototype.
14716 * fold-const.c: Include stringpool.h and tree-ssanames.h.
14717 (expr_not_equal_to): New function.
14718 * match.pd (X % -Y is the same as X % Y): Don't optimize
14719 unless X is known not to be equal to minimum or Y is known
14720 not to be equal to -1.
14721 * tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument.
14722 fold TRUNC_MOD_EXPR if the second argument is not a power of two.
14723 (simplify_stmt_using_ranges): Adjust caller.
14724 (vrp_finalize): Call set_value_range on SSA_NAMEs before calling
14725 substitute_and_fold.
14726
14727 2016-01-09 Jan Hubicka <hubicka@ucw.cz>
14728
14729 * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
14730 w/o DECL_NAME.
14731
14732 2016-01-08 Jakub Jelinek <jakub@redhat.com>
14733
14734 PR tree-optimization/69167
14735 * gimple-fold.c (replace_stmt_with_simplification): Also punt if
14736 new SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs appear in operands of
14737 ops[0] comparison.
14738 * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
14739
14740 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
14741 Richard Biener <rguenther@suse.de>
14742
14743 PR tree-optimization/68707
14744 * tree-vect-slp.c (vect_analyze_slp_instance): Cancel permuted SLP
14745 instances that can be handled via vect_load_lanes.
14746
14747 2016-01-08 Uros Bizjak <ubizjak@gmail.com>
14748
14749 * symtab.c (symtab_node::equal_address_to): Return -1 instead of 2
14750 if we can't determine address equivalence.
14751 * alias.c (compare_base_decl): Update for changed return value of
14752 symtab_node::equal_address_to.
14753
14754 2016-01-08 Jason Merrill <jason@redhat.com>
14755
14756 PR c++/68983
14757 PR c++/67557
14758 * function.c (assign_temp): Guard against TREE_ADDRESSABLE types here.
14759 * expr.c (store_field): Not here.
14760 * tree-cfgcleanup.c (fixup_noreturn_call): Don't clear LHS of a
14761 call with TREE_ADDRESSABLE type.
14762 * tree-cfg.c (verify_gimple_call): Adjust.
14763
14764 2016-01-08 Olivier Hainque <hainque@adacore.com>
14765
14766 * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
14767 libc_internal.
14768
14769 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
14770
14771 * gcc.target/rs6000/paired.md (reduc_smax_v2sf): Rename to...
14772 (reduc_smax_scal_v2sf): ...here, make result SFmode, extract element.
14773 (reduc_smin_v2sf): Rename to...
14774 (reduc_smin_scal_v2sf): ...here, make result SFmode, extract element.
14775 (reduc_splus_v2sf): Rename to...
14776 (reduc_plus_scal_v2sf): ...here, make result SFmode, extract element.
14777
14778 2016-01-08 Jakub Jelinek <jakub@redhat.com>
14779
14780 PR tree-optimization/69162
14781 * gimplify.c (gimplify_va_arg_expr): Encode original type of
14782 valist argument in another argument.
14783 (gimplify_modify_expr): Adjust for the above change. Cleanup.
14784 * tree-stdarg.c (expand_ifn_va_arg_1): Use new 3rd argument
14785 to determine the va_list type, build a MEM_REF instead of
14786 build_fold_indirect_ref.
14787
14788 PR tree-optimization/69172
14789 * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
14790 gimple_build.
14791
14792 2016-01-08 Thomas Preud'homme <thomas.preudhomme@arm.com>
14793
14794 PR tree-optimization/67781
14795 * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
14796 and cmpnop in two steps: first the ones not accessed in original
14797 gimple expression in a endian independent way and then the ones not
14798 accessed in the final result in an endian-specific way.
14799
14800 2016-01-08 Jakub Jelinek <jakub@redhat.com>
14801
14802 PR tree-optimization/69083
14803 * tree-vect-slp.c (vect_get_constant_vectors): For
14804 VECTOR_BOOLEAN_TYPE_P assert op is fold_convertible_p to vector_type's
14805 element type. If op is fold_convertible_p to vector_type's element
14806 type, use NOP_EXPR instead of VCE.
14807
14808 2016-01-08 Segher Boessenkool <segher@kernel.crashing.org>
14809
14810 PR rtl-optimization/67778
14811 PR rtl-optimization/68634
14812 PR rtl-optimization/68909
14813 * shrink-wrap.c (try_shrink_wrapping): Add comment. Don't pop
14814 block from the stack until done with it. Remove a superfluous
14815 bitmap set. Remove a superfluous bitmap test.
14816
14817 2016-01-07 Martin Sebor <msebor@redhat.com>
14818
14819 PR c/68966
14820 * doc/extend.texi (__atomic Builtins, __sync Builtins): Document
14821 constraint on the type of arguments.
14822
14823 2016-01-07 Andreas Tobler <andreast@gcc.gnu.org>
14824
14825 * config/arm/freebsd.h: Rename SUBTARGET_OVERRIDE_OPTIONS to
14826 SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. Adjust to check
14827 unaligned_access on the gcc_options set.
14828 * config/arm/arm.c (arm_option_override_internal): Use
14829 SUBTARGET_OVERRIDE_INTERNAL_OPTIONS.
14830
14831 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
14832
14833 PR target/69140
14834 * config/i386/i386.c (ix86_frame_pointer_required): Enable
14835 frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
14836
14837 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
14838
14839 Revert
14840 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
14841
14842 PR target/69140
14843 * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
14844 depending on frame_pointer_needed before remaining integer and SSE
14845 registers are saved.
14846
14847 2016-01-07 Sandra Loosemore <sandra@codesourcery.com>
14848
14849 PR 1078
14850 * doc/extend.texi (Nvidia PDX Function Attributes): New section.
14851
14852 2016-01-07 H.J. Lu <hongjiu.lu@intel.com>
14853
14854 PR target/69171
14855 * config/i386/sse.md (<sse>_sqrt<mode>2<mask_name><round_name>):
14856 Use the "xBm" constraint.
14857 (float<sseintvecmodelower><mode>2<mask_name><round_name):
14858 Likewise.
14859 (sse_cvtsi2ss<round_name>): Use round_nimm_scalar_predicate.
14860 (sse_cvtsi2ssq<round_name>): Likewise.
14861 (sse_cvtss2si<round_name>): Likewise.
14862 (sse_cvtss2siq<round_name>): Likewise.
14863 (sse2_cvtsi2sdq<round_name>): Likewise.
14864 (sse2_cvtsd2si<round_name>): Likewise.
14865 (sse2_cvtsd2siq<round_name>): Likewise.
14866 * config/i386/subst.md (round_nimm_scalar_predicate): New
14867 predicate.
14868
14869 2015-12-15 Bernd Schmidt <bschmidt@redhat.com>
14870
14871 PR middle-end/67639
14872 * varasm.c (make_decl_rtl): Mark invalid register vars as
14873 DECL_EXTERNAL.
14874
14875 PR rtl-optimization/66206
14876 * bt-load.c (find_btr_use): Change first arg to be a pointer to an rtx.
14877 All callers changed.
14878
14879 2016-01-07 Jakub Jelinek <jakub@redhat.com>
14880
14881 PR tree-optimization/69141
14882 * tree-ssa-pre.c: Include langhooks.h.
14883 (eliminate_dom_walker::before_dom_children): Use
14884 lang_hooks.decl_printable_name instead of
14885 cgraph_node::get ()->name ().
14886
14887 PR middle-end/68960
14888 * gimple-expr.c (copy_var_decl): If var has DECL_USER_ALIGN set, copy
14889 it and DECL_ALIGN too.
14890
14891 2016-01-06 Robert Suchanek <robert.suchanek@imgtec.com>
14892
14893 * config/mips/mips-ftypes.def: Sort to lexicographical order.
14894
14895 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
14896
14897 PR target/69140
14898 * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
14899 depending on frame_pointer_needed before remaining integer and SSE
14900 registers are saved.
14901
14902 2015-01-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14903
14904 * config/rs6000/vsx.md (*p9_vecload_<mode>): Replace VSX_M
14905 mode iterator with VSX_M2.
14906 (*p9_vecstore_<mode>): Likewise.
14907 (*vsx_le_permute_<mode>): Restrict to !TARGET_P9_VECTOR.
14908 (*vsx_le_perm_load_<mode> for VSX_LE_128): Likewise.
14909 (*vsx_le_perm_store_<mode> for VSX_LE_128): Likewise.
14910 (define_split for VSX_LE128 stores): Likewise.
14911 (define_peephole2 for TImode LE swaps): Likewise.
14912 (define_split for VSX_LE128 post-reload stores): Likewise.
14913
14914 2016-01-06 Marek Polacek <polacek@redhat.com>
14915
14916 PR sanitizer/69099
14917 * convert.c (convert_to_integer_1): Adjust call to
14918 ubsan_instrument_float_cast. Use NULL_TREE instead of NULL.
14919 * ubsan.c (ubsan_instrument_float_cast): Drop the ARG parameter. Use
14920 EXPR instead of ARG.
14921 * ubsan.h (ubsan_instrument_float_cast): Adjust declaration.
14922
14923 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
14924
14925 PR 1078
14926 * doc/extend.texi (RL78 Variable Attributes): New section.
14927
14928 2016-01-05 Marek Polacek <polacek@redhat.com>
14929
14930 PR c/69104
14931 * builtins.c (get_memmodel): Use expansion point location rather than
14932 the input location. Call warning_at rather than warning.
14933 (expand_builtin_atomic_compare_exchange): Likewise.
14934 (expand_builtin_atomic_load): Likewise.
14935 (expand_builtin_atomic_store): Likewise.
14936 (expand_builtin_atomic_clear): Likewise.
14937
14938 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
14939
14940 PR target/68991
14941 * config/i386/i386.c (ix86_expand_vector_logical_operator):
14942 Replace nonimmediate_operand with vector_operand.
14943 * config/i386/predicates.md (vector_operand): New predicate.
14944 (general_vector_operand): Replace nonimmediate_operand with
14945 vector_operand.
14946 * config/i386/sse.md: Replace nonimmediate_operand with
14947 vector_operand and m constraint with Bm constraint on SSE
14948 patterns with 16-byte memory operand.
14949 * config/i386/subst.md (round_nimm_predicate): Replace
14950 nonimmediate_operand with vector_operand.
14951 (round_saeonly_nimm_predicate): Likewise.
14952 (round_saeonly_nimm_scalar_predicate): New.
14953
14954 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
14955
14956 PR target/68991
14957 * config/i386/constraints.md (Bm): New constraint.
14958 * config/i386/predicates.md (vector_memory_operand): New
14959 predicate.
14960 * config/i386/sse.md: Replace xm with xBm in plusminus and
14961 any_logic patterns.
14962
14963 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
14964
14965 PR 1078
14966 * doc/extend.texi (V850 Function Attributes): New section.
14967 (V850 Variable Attributes): New section.
14968
14969 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
14970
14971 PR 1078
14972 * doc/extend.texi (MicroBlaze Function Attributes): Document
14973 interrupt_handler and fast_interrupt attributes.
14974
14975 2016-01-05 Sergei Trofimovich <siarheit@google.com>
14976
14977 PR other/60465
14978 * config/ia64/ia64.c (ia64_expand_load_address): Use gprel64
14979 for local symbolic operands.
14980 * config/ia64/predicates.md (local_symbolic_operand64): New
14981 predicate.
14982
14983 2016-01-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14984
14985 PR rtl-optimization/68651
14986 * combine.c (combine_simplify_rtx): Canonicalize x + x into
14987 x << 1.
14988
14989 2016-01-05 Nathan Sidwell <nathan@acm.org>
14990
14991 * alias.c (compare_base_decls): Use symtab_node::get.
14992
14993 2016-01-05 Nick Clifton <nickc@redhat.com>
14994
14995 PR target/68770
14996 * ira-costs.c (copy_cost): Initialise the t_icode field of the
14997 secondary_reload_info structure.
14998
14999 PR target/66655
15000 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
15001 decls if weak support is available.
15002
15003 2016-01-04 Martin Sebor <msebor@redhat.com>
15004
15005 * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.
15006
15007 2016-01-04 Michael Meissner <meissner@linux.vnet.ibm.com>
15008
15009 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
15010 OPTION_MASK_P9_DFORM.
15011
15012 * config/rs6000/constraints.md (wo constraint): New constraint for
15013 ISA 3.0 (power9).
15014
15015 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
15016 for wo constraint.
15017 (rs6000_init_hard_regno_mode_ok): Likewise.
15018
15019 * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
15020 wo constraint.
15021
15022 * config/rs6000/altivec.md (altivec_vperm_<mode>): Clean up vperm
15023 expanders not to have constraints. Add support for ISA 3.0 xxperm
15024 instruction. Add support for fusing xxlor with xxperm.
15025 (altivec_vperm_<mode>_internal): Likewise.
15026 (altivec_vperm_v8hiv16qi): Likewise.
15027 (altivec_vperm_<mode>v16q): Likewise.
15028 (altivec_vperm_<mode>_uns): Likewise.
15029 (vperm_v8hiv4si): Likewise.
15030 (vperm_v16qiv8hi): Likewise.
15031
15032 * doc/md.texi (RS/6000 constraints): Document wo constraint.
15033
15034 2016-01-04 Jakub Jelinek <jakub@redhat.com>
15035
15036 Update copyright years.
15037
15038 * gcc.c (process_command): Update copyright notice dates.
15039 * gcov-dump.c (print_version): Ditto.
15040 * gcov.c (print_version): Ditto.
15041 * gcov-tool.c (print_version): Ditto.
15042 * gengtype.c (create_file): Ditto.
15043 * doc/cpp.texi: Bump @copying's copyright year.
15044 * doc/cppinternals.texi: Ditto.
15045 * doc/gcc.texi: Ditto.
15046 * doc/gccint.texi: Ditto.
15047 * doc/gcov.texi: Ditto.
15048 * doc/install.texi: Ditto.
15049 * doc/invoke.texi: Ditto.
15050
15051 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
15052
15053 * config/arm/arm.c (aapcs_vfp_allocate_return_reg): Treat all integer
15054 modes larger than TImode as TImode if NEON is not enabled.
15055
15056 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
15057
15058 PR target/69100
15059 * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
15060 mode for %f0-%f31 only if TARGET_FPU.
15061
15062 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
15063
15064 PR target/69072
15065 * config/sparc/sparc.c (scan_record_type): Take into account subfields
15066 to compute the PACKED_P predicate.
15067 (function_arg_record_value): Minor tweaks.
15068
15069 2016-01-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
15070
15071 * doc/install.texi (--with-multilib-list): Describe the meaning of the
15072 option for arm*-*-* targets.
15073
15074 2016-01-03 Sandra Loosemore <sandra@codesourcery.com>
15075
15076 * doc/extend.texi (Common Function Attributes): Move docs for
15077 MSP430-specific attributes to....
15078 (MSP430 Function Attributes): ...here. Delete the redundant
15079 entries and copy-edit the remaining text.
15080 (MSP430 Variable Attributes): Use uniform format for index
15081 entries and add a cross-reference to the corresponding function
15082 attribute docs.
15083
15084 2016-01-03 Vladimír Čunát <vcunat@gmail.com>
15085
15086 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix
15087 -finite-math typo.
15088 (x86 Options): Likewise.
15089
15090 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
15091
15092 PR 1078
15093
15094 * extend.texi (Common Function Attributes) <no_stack_limit>: New.
15095 * invoke.texi (Code Gen Options) <-fno-stack-limit>: Add pointer
15096 to corresponding attribute.
15097
15098 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
15099
15100 * doc/extend.texi (Common Function Attributes) <noplt>: Move
15101 to correct alphabetization of table. Copy-edit and correct
15102 markup.
15103 <stack_protect>: Likewise.
15104 <target_clones>: Likewise.
15105 <simd>: Likewise.
15106 * doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>:
15107 Correct punctuation.
15108 (Code Gen Options) <-fno-plt>: Copy-edit.
15109
15110 2016-01-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
15111
15112 PR target/68917
15113 * config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of
15114 SI values. Explicitly convert SI to DI and vice-versa.
15115
15116 2016-01-01 Jakub Jelinek <jakub@redhat.com>
15117
15118 PR tree-optimization/69070
15119 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Only test
15120 REAL_VALUE_ISSIGNALING_NAN on arg0 if arg0 is a REAL_CST.
15121
15122 PR sanitizer/69055
15123 * ubsan.c (ubsan_instrument_float_cast): Call
15124 initialize_sanitizer_builtins.
15125
15126 PR target/69015
15127 * ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).
15128 \f
15129 Copyright (C) 2016 Free Software Foundation, Inc.
15130
15131 Copying and distribution of this file, with or without modification,
15132 are permitted in any medium without royalty provided the copyright
15133 notice and this notice are preserved.