Update documentation for ARM architecture
[gcc.git] / gcc / ChangeLog
1 2016-06-09 Stefan Bruens <stefan.bruens@rwth-aachen.de>
2
3 * doc/invoke.texi (ARM Options): Use lexicographical ordering.
4 Correct usage of @samp vs @option, add @samp where appropriate.
5 Add -march={armv6k,armv6z,arm6zk}, remove -march=ep9312.
6 Add armv6s-m and document it, as it is no official ARM name.
7
8 2016-06-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9
10 * ifcvt.c (struct noce_if_info): Add transform_name field.
11 (noce_try_move): Set if_info->transform_name to the function name.
12 (noce_try_ifelse_collapse): Likewise.
13 (noce_try_store_flag): Likewise.
14 (noce_try_inverse_constants): Likewise.
15 (noce_try_store_flag_constants): Likewise.
16 (noce_try_addcc): Likewise.
17 (noce_try_store_flag_mask): Likewise.
18 (noce_try_cmove): Likewise.
19 (noce_try_cmove_arith): Likewise.
20 (noce_try_minmax): Likewise.
21 (noce_try_abs): Likewise.
22 (noce_try_sign_mask): Likewise.
23 (noce_try_bitop): Likewise.
24 (noce_convert_multiple_sets): Likewise.
25 (noce_process_if_block): Print if_info->transform_name to
26 dump_file if transformation succeeded.
27
28 2016-06-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29
30 * config/arm/cortex-a57.md (cortex_a57_alu):
31 Handle csel type.
32
33 2016-06-08 Martin Sebor <msebor@redhat.com>
34 Jakub Jelinek <jakub@redhat.com>
35
36 PR c++/70507
37 PR c/68120
38 * builtins.def (BUILT_IN_ADD_OVERFLOW_P, BUILT_IN_SUB_OVERFLOW_P,
39 BUILT_IN_MUL_OVERFLOW_P): New builtins.
40 * builtins.c: Include gimple-fold.h.
41 (fold_builtin_arith_overflow): Handle
42 BUILT_IN_{ADD,SUB,MUL}_OVERFLOW_P.
43 (fold_builtin_3): Likewise.
44 * doc/extend.texi (Integer Overflow Builtins): Document
45 __builtin_{add,sub,mul}_overflow_p.
46
47 2016-06-08 Jose E. Marchesi <jose.marchesi@oracle.com>
48
49 * config/sparc/driver-sparc.c (cpu_names): Fix the entry for the
50 SPARC-M7 and add an entry for SPARC-S7 cpus (Sonoma).
51
52 2016-06-08 Alan Lawrence <alan.lawrence@arm.com>
53
54 * config/aarch64/aarch64.c (aarch64_function_arg_alignment):
55 Rewrite, looking one level down for records and arrays.
56
57 2016-06-08 David Malcolm <dmalcolm@redhat.com>
58
59 * pretty-print.c: Include "selftest.h".
60 (pp_format): Fix comment.
61 (identifier_to_locale): Likewise.
62 (selftest::test_basic_printing): New function.
63 (selftest::assert_pp_format): New function.
64 (selftest::test_pp_format): New function.
65 (selftest::pretty_print_c_tests): New function.
66 * selftest-run-tests.c (selftest::run_tests): Call
67 selftest::pretty_print_c_tests.
68 * selftest.h (pretty_print_c_tests): New declaration.
69
70 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
71
72 * invoke.texi (max-loop-headers-insns): Document.
73 * params.def (PARAM_MAX_LOOP_HEADER_INSNS): New.
74 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Update comment.
75 (ch_base::copy_headers): Use PARAM_MAX_LOOP_HEADER_INSNS.
76
77 2016-06-08 Richard Biener <rguenther@suse.de>
78
79 * tree-vect-stmts.c (vectorizable_load): Remove restrictions
80 on strided SLP loads and fall back to scalar loads in case
81 we can't chunk them.
82
83 2016-06-08 Richard Biener <rguenther@suse.de>
84
85 PR tree-optimization/71452
86 * tree-ssa.c (non_rewritable_lvalue_p): Make sure that the
87 type used for the SSA rewrite has enough precision to cover
88 the dynamic type of the location.
89
90 2016-06-08 Jakub Jelinek <jakub@redhat.com>
91 Richard Biener <rguenther@suse.de>
92
93 PR c++/71448
94 * fold-const.c (fold_comparison): Handle CONSTANT_CLASS_P (base0)
95 the same as DECL_P (base0) for indirect_base0. Use equality_code
96 in one further place.
97
98 2016-06-08 Richard Sandiford <richard.sandiford@arm.com>
99
100 * expmed.c (store_bit_field_1): Do not restrict a multiword op0
101 to one word if the field is known to overlap other words.
102 (extract_bit_field_1): Likewise.
103 (store_split_bit_field): Remove compensating code.
104 (extract_split_bit_field): Likewise.
105
106 2016-06-08 Bernd Schmidt <bschmidt@redhat.com>
107
108 PR debug/71432
109 PR ada/71413
110 * tree-ssa-strlen.c (handle_builtin_memcmp): Ignore debug insns.
111
112 2016-06-08 Jiong Wang <jiong.wang@arm.com>
113
114 * config/aarch64/aarch64-builtins.def (faddp): New builtins for modes in
115 VDQF.
116 * config/aarch64/aarch64-simd.md (aarch64_faddp<mode>): New.
117 (arch64_addpv4sf): Delete.
118 (reduc_plus_scal_v4sf): Use "gen_aarch64_faddpv4sf" instead of
119 "gen_aarch64_addpv4sf".
120 * config/aarch64/arm_neon.h (vpadd_f32): Remove inline assembly. Use
121 builtin.
122 (vpadds_f32): Likewise.
123 (vpaddq_f32): Likewise.
124 (vpaddq_f64): Likewise.
125
126 2016-06-08 Jiong Wang <jiong.wang@arm.com>
127
128 * config/aarch64/aarch64-builtins.def (fabd): New builtins for modes
129 VALLF.
130 * config/aarch64/aarch64-simd.md (fabd<mode>_3): Extend modes from VDQF
131 to VALLF. Rename to "fabd<mode>3".
132 "*fabd_scalar<mode>3): Delete.
133 * config/aarch64/arm_neon.h (vabds_f32): Remove inline assembly.
134 Use builtin.
135 (vabdd_f64): Likewise.
136 (vabd_f32): Likewise.
137 (vabd_f64): Likewise.
138 (vabdq_f32): Likewise.
139 (vabdq_f64): Likewise.
140
141 2016-06-08 Jiong Wang <jiong.wang@arm.com>
142
143 * config/aarch64/aarch64-builtins.def (rsqrts): New builtins for modes
144 VALLF.
145 * config/aarch64/aarch64-simd.md (aarch64_rsqrts_<mode>3): Rename to
146 "aarch64_rsqrts<mode>".
147 * config/aarch64/aarch64.c (get_rsqrts_type): Update gen* name.
148 * config/aarch64/arm_neon.h (vrsqrtss_f32): Remove inline assembly. Use
149 builtin.
150 (vrsqrtsd_f64): Likewise.
151 (vrsqrts_f32): Likewise.
152 (vrsqrts_f64): Likewise.
153 (vrsqrtsq_f32): Likewise.
154 (vrsqrtsq_f64): Likewise.
155
156 2016-06-08 Jiong Wang <jiong.wang@arm.com>
157
158 * config/aarch64/aarch64-builtins.def (rsqrte): New builtins for modes
159 VALLF.
160 * config/aarch64/aarch64-simd.md (aarch64_rsqrte_<mode>2): Rename to
161 "aarch64_rsqrte<mode>".
162 * config/aarch64/aarch64.c (get_rsqrte_type): Update gen* name.
163 * config/aarch64/arm_neon.h (vrsqrts_f32): Remove inline assembly. Use
164 builtin.
165 (vrsqrted_f64): Likewise.
166 (vrsqrte_f32): Likewise.
167 (vrsqrte_f64): Likewise.
168 (vrsqrteq_f32): Likewise.
169 (vrsqrteq_f64): Likewise.
170
171 2016-06-08 Jiong Wang <jiong.wang@arm.com>
172
173 * config/aarch64/aarch64-builtins.def (scvtf): Register vector modes.
174 (ucvtf): Likewise.
175 (fcvtzs): Likewise.
176 (fcvtzu): Likewise.
177 * config/aarch64/aarch64-simd.md
178 (<FCVT_F2FIXED:fcvt_fixed_insn><VDQF:mode>3): New.
179 (<FCVT_FIXED2F:fcvt_fixed_insn><VDQ_SDI:mode>3): Likewise.
180 * config/aarch64/arm_neon.h (vcvt_n_f32_s32): Remove inline assembly.
181 Use builtin.
182 (vcvt_n_f32_u32): Likewise.
183 (vcvt_n_s32_f32): Likewise.
184 (vcvt_n_u32_f32): Likewise.
185 (vcvtq_n_f32_s32): Likewise.
186 (vcvtq_n_f32_u32): Likewise.
187 (vcvtq_n_f64_s64): Likewise.
188 (vcvtq_n_f64_u64): Likewise.
189 (vcvtq_n_s32_f32): Likewise.
190 (vcvtq_n_s64_f64): Likewise.
191 (vcvtq_n_u32_f32): Likewise.
192 (vcvtq_n_u64_f64): Likewise.
193 * config/aarch64/iterators.md (VDQ_SDI): New mode iterator.
194 (VSDQ_SDI): Likewise.
195 (fcvt_target): Support V4DI, V4SI and V2SI.
196 (FCVT_TARGET): Likewise.
197
198 2016-06-08 Jiong Wang <jiong.wang@arm.com>
199
200 * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New
201 (TYPES_BINOP_SUS): Likewise.
202 (aarch64_simd_builtin_data): Update include file name.
203 (aarch64_builtins): Likewise.
204 * config/aarch64/aarch64-simd-builtins.def (scvtf): New entries
205 for conversion between scalar float-point and fixed-point.
206 (ucvtf): Likewise.
207 (fcvtzs): Likewise.
208 (fcvtzu): Likewise.
209 * config/aarch64/aarch64.md
210 (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3: New
211 pattern for conversion between scalar float to fixed-pointer.
212 (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>: Likewise.
213 (UNSPEC_FCVTZS): New UNSPEC enumeration.
214 (UNSPEC_FCVTZU): Likewise.
215 (UNSPEC_SCVTF): Likewise.
216 (UNSPEC_UCVTF): Likewise.
217 * config/aarch64/arm_neon.h (vcvtd_n_f64_s64): Remove inline assembly.
218 Use builtin.
219 (vcvtd_n_f64_u64): Likewise.
220 (vcvtd_n_s64_f64): Likewise.
221 (vcvtd_n_u64_f64): Likewise.
222 (vcvtd_n_f32_s32): Likewise.
223 (vcvts_n_f32_u32): Likewise.
224 (vcvtd_n_s32_f32): Likewise.
225 (vcvts_n_u32_f32): Likewise.
226 * config/aarch64/iterators.md (fcvt_target): Support integer to float
227 mapping.
228 (FCVT_TARGET): Likewise.
229 (FCVT_FIXED2F): New iterator.
230 (FCVT_F2FIXED): Likewise.
231 (fcvt_fixed_insn): New define_int_attr.
232
233 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
234
235 * predict.c (pass_strip_predict_hints::execute): Cleanup CFG if
236 some statements was removed.
237
238 2016-06-08 Alan Hayward <alan.hayward@arm.com>
239
240 * tree-vect-data-refs.c (vect_analyze_data_refs): Remove debug newline.
241 * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): likewise.
242 (vect_can_advance_ivs_p): likewise.
243 (vect_update_ivs_after_vectorizer): likewise.
244 * tree-vect-loop.c (vect_determine_vectorization_factor): likewise.
245 (vect_analyze_scalar_cycles_1): likewise.
246 (vect_analyze_loop_operations): likewise.
247 (report_vect_op): likewise.
248 (vect_is_slp_reduction): likewise.
249 (vect_is_simple_reduction): likewise.
250 (get_initial_def_for_induction): likewise.
251 (vect_transform_loop): likewise.
252 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): likewise.
253 (vect_recog_sad_pattern): likewise.
254 (vect_recog_widen_sum_pattern): likewise.
255 (vect_recog_widening_pattern): likewise.
256 (vect_recog_divmod_pattern): likewise.
257 * tree-vect-slp.c (vect-build-slp_tree_1): likewise.
258 (vect_analyze_slp_instance): likewise.
259 (vect_transform_slp_perm_load): likewise.
260 (vect_schedule_slp_instance): likewise.
261
262 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
263
264 * predict.c (predict_iv_comparison): Mention that heuristics is broken.
265 (return_prediction): PRED_CONST_RETURN predict return as not taken.
266 * predict.def (PRED_CONTINUE): Change hitrate 50->67
267 (PRED_LOOP_BRANCH): Document predictor as broken.
268 (PRED_LOOP_EXIT): Change hitrate 91->92.
269 (PRED_LOOP_EXTRA_EXIT): Change hitrate 91->83.
270 (PRED_POINTER, PRED_TREE_POINTER): Change hitrate 85->70.
271 (PRED_OPCODE_POSITIVE): Change hitrate 79->64.
272 (PRED_OPCODE_NONEQUAL): Change hitrate 91->66.
273 (PRED_TREE_OPCODE_POSITIVE): Change hitrate 73->64
274 (PRED_TREE_OPCODE_NONEQUAL): Chnage hitrate 72->66
275 (PRED_CALL): Chane hitrate 71->67.
276 (PRED_TREE_EARLY_RETURN): Document issues, change hitrate 61->54.
277 (PRED_GOTO): Document as unused right now.
278 (PRED_CONST_RETURN): Change hitrate 67->69
279 (PRED_NEGATIVE_RETURN): Change hitrate 96->98
280 (PRED_NULL_RETURN): Change hitrate 91->90.
281 (PRED_LOOP_IV_COMPARE_GUESS): Change hitrate to 98.
282 (PRED_FORTRAN_FAIL_ALLOC): Change hitrate to 62; document issues.
283 (PRED_FORTRAN_SIZE_ZERO): Change hitrate to 99.
284
285 2016-06-07 Bill Seurer <seurer@linux.vnet.ibm.com>
286
287 * config/rs6000/altivec.h: Add __builtin_vec_mul.
288 * config/rs6000/rs6000-builtin.def (vec_mul): Change vec_mul to a
289 special case Altivec builtin.
290 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
291 VSX_BUILTIN_VEC_MUL (replaced with special case code).
292 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
293 code for ALTIVEC_BUILTIN_VEC_MUL.
294 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
295 for __builtin_vec_mul.
296
297 2016-06-07 Peter Bergner <bergner@vnet.ibm.com>
298
299 * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mhtm and
300 -mno-htm.
301
302 2016-06-07 David Malcolm <dmalcolm@redhat.com>
303
304 * spellcheck.c (selftest::test_find_closest_string): New function.
305 (spellcheck_c_tests): Call the above.
306
307 2016-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
308
309 * simplify-rtx.c (simplify_cond_clz_ctz): Delete 'mode' local
310 variable.
311
312 2016-06-07 Jakub Jelinek <jakub@redhat.com>
313
314 * config/i386/sse.md (avx_vec_concat<mode>): Add v=v,vm and
315 Yv=Yv,C alternatives.
316
317 2016-06-07 Richard Biener <rguenther@suse.de>
318
319 PR c/61564
320 * common.opt (ffast-math): Make Optimization.
321
322 2016-06-07 Simon Dardis <simon.dardis@imgtec.com>
323 Prachi Godbole <prachi.godbole@imgtec.com>
324
325 * config/mips/p5600.md (p5600_fpu_fadd): Remove checking for
326 `fabs' and `fneg' type attributes.
327 (p5600_fpu_fabs): Add `fmove' to the comment.
328
329 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
330
331 * gimple.c: Include builtins.h
332 (gimple_inexpensive_call_p): New function.
333 * gimple.h (gimple_inexpensive_call_p): Declare.
334 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use it.
335 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise;
336 fix formatting.
337
338 2016-06-07 Paolo Carlini <paolo.carlini@oracle.com>
339
340 * diagnostic.c (diagnostic_impl, diagnostic_n_impl): New.
341 (inform, inform_at_rich_loc, inform_n, warning, warning_at,
342 warning_at_rich_loc, warning_n, pedwarn, permerror,
343 permerror_at_rich_loc, error, error_n, error_at, error_at_rich_loc,
344 sorry, fatal_error, internal_error, internal_error_no_backtrace):
345 Use the above.
346
347 2016-06-07 Richard Biener <rguenther@suse.de>
348
349 PR tree-optimization/71428
350 * tree-ssa-math-opts.c (perform_symbolic_merge): Properly distinguish
351 BIT_FIELD_REF op vs. load.
352
353 2016-06-07 Richard Biener <rguenther@suse.de>
354
355 PR middle-end/71423
356 * match.pd ((X | ~Y) -> Y <= X): Properly invert the comparison
357 for signed ops.
358
359 2016-06-06 John David Anglin <danglin@gcc.gnu.org>
360
361 * config/pa/pa.md (call): Generate indirect long calls to non-local
362 functions on TARGET_64BIT.
363 (call_value): Likewise.
364
365 2016-06-06 John David Anglin <danglin@gcc.gnu.org>
366
367 * config/pa/pa.md (call_val_reg_64bit): Remove "reg: DI " clobber from
368 pattern and subsequent splitters.
369 (call_val_reg_64bit_post_reload): Likewise.
370
371 2016-06-07 Kugan Vivekanandarajah <kuganv@linaro.org>
372
373 PR middle-end/71408
374 * tree-ssa-reassoc.c (zero_one_operation): Fix NEGATE_EXPR operand for
375 propagate_op_to_single_use.
376
377 2016-06-07 Kugan Vivekanandarajah <kuganv@linaro.org>
378
379 PR middle-end/71281
380 * tree-ssa-reassoc.c (reassociate_bb): Set uid for negate stmt.
381
382 2016-06-07 Uros Bizjak <ubizjak@gmail.com>
383
384 * config/i386/i386.h (enum ix86_enitity): Add X86_DIRFLAG.
385 (enum x86_dirflag_state): New enum.
386 (NUM_MODES_FOR_MODE_SWITCHING): Add X86_DIRFLAG_ANY.
387 (machine_function): Remove needs_cld.
388 (ix86_current_function_needs_cld): Remove.
389 * config/i386/i386.c (ix86_set_func_type): Set
390 ix86_optimize_mode_switching[X86_DIRFLAG] to 1.
391 (ix86_expand_prologue): Do not emit CLD here.
392 (ix86_dirflag_mode_needed): New function.
393 (ix86_dirflag_mode_entry): Ditto.
394 (ix86_mode_needed): Handle X86_DIRFLAG entity.
395 (ix86_mode_after): Ditto.
396 (ix86_mode_entry): Ditto.
397 (ix86_mode_exit): Ditto.
398 (ix86_emit_mode_set): Ditto.
399 * config/i386/i386.md (strmov_singleop): Set
400 ix86_optimize_mode_switching[X86_DIRFLAG] to 1 for TARGET_CLD.
401 Do not set ix86_current_function_needs_cld.
402 (rep_mov): Ditto.
403 (strset_singleop): Ditto.
404 (rep_stos): Ditto.
405 (cmpstrnqi_nz_1): Ditto.
406 (cmpstrnqi_1): Ditto.
407 (strlenqi_1): Ditto.
408
409 2016-06-06 Jakub Jelinek <jakub@redhat.com>
410
411 PR tree-optimization/71259
412 * tree-vect-slp.c (vect_get_constant_vectors): For
413 VECTOR_BOOLEAN_TYPE_P, return all ones constant instead of
414 one for constant op, and use COND_EXPR for non-constant.
415
416 2016-06-06 David Malcolm <dmalcolm@redhat.com>
417
418 * Makefile.in (OBJS): Add function-tests.o,
419 hash-map-tests.o, hash-set-tests.o, rtl-tests.o,
420 selftest-run-tests.o.
421 (OBJS-libcommon): Add selftest.o.
422 (OBJS-libcommon-target): Add selftest.o.
423 (all.internal): Add "selftest".
424 (all.cross): Likewise.
425 (selftest): New phony target.
426 (s-selftest): New target.
427 (selftest-gdb): New phony target.
428 (COLLECT2_OBJS): Add selftest.o.
429 * bitmap.c: Include "selftest.h".
430 (selftest::test_gc_alloc): New function.
431 (selftest::test_set_range): New function.
432 (selftest::test_clear_bit_in_middle): New function.
433 (selftest::test_copying): New function.
434 (selftest::test_bitmap_single_bit_set_p): New function.
435 (selftest::bitmap_c_tests): New function.
436 * common.opt (fself-test): New.
437 * diagnostic-show-locus.c: Include "selftest.h".
438 (make_range): New function.
439 (test_range_contains_point_for_single_point): New function.
440 (test_range_contains_point_for_single_line): New function.
441 (test_range_contains_point_for_multiple_lines): New function.
442 (assert_eq): New function.
443 (test_get_line_width_without_trailing_whitespace): New function.
444 (selftest::diagnostic_show_locus_c_tests): New function.
445 * et-forest.c: Include "selftest.h".
446 (selftest::test_single_node): New function.
447 (selftest::test_simple_tree): New function.
448 (selftest::test_disconnected_nodes): New function.
449 (selftest::et_forest_c_tests): New function.
450 * fold-const.c: Include "selftest.h".
451 (selftest::assert_binop_folds_to_const): New function.
452 (selftest::assert_binop_folds_to_nonlvalue): New function.
453 (selftest::test_arithmetic_folding): New function.
454 (selftest::fold_const_c_tests): New function.
455 * function-tests.c: New file.
456 * gimple.c: Include "selftest.h".
457 Include "gimple-pretty-print.h".
458 (selftest::verify_gimple_pp): New function.
459 (selftest::test_assign_single): New function.
460 (selftest::test_assign_binop): New function.
461 (selftest::test_nop_stmt): New function.
462 (selftest::test_return_stmt): New function.
463 (selftest::test_return_without_value): New function.
464 (selftest::gimple_c_tests): New function.
465 * hash-map-tests.c: New file.
466 * hash-set-tests.c: New file.
467 * input.c: Include "selftest.h".
468 (selftest::assert_loceq): New function.
469 (selftest::test_accessing_ordinary_linemaps): New function.
470 (selftest::test_unknown_location): New function.
471 (selftest::test_builtins): New function.
472 (selftest::test_reading_source_line): New function.
473 (selftest::input_c_tests): New function.
474 * rtl-tests.c: New file.
475 * selftest-run-tests.c: New file.
476 * selftest.c: New file.
477 * selftest.h: New file.
478 * spellcheck.c: Include "selftest.h".
479 (selftest::levenshtein_distance_unit_test_oneway): New function,
480 adapted from testsuite/gcc.dg/plugin/levenshtein_plugin.c.
481 (selftest::levenshtein_distance_unit_test): Likewise.
482 (selftest::spellcheck_c_tests): Likewise.
483 * toplev.c: Include selftest.h.
484 (toplev::run_self_tests): New.
485 (toplev::main): Handle -fself-test.
486 * toplev.h (toplev::run_self_tests): New.
487 * tree.c: Include "selftest.h".
488 (selftest::test_integer_constants): New function.
489 (selftest::test_identifiers): New function.
490 (selftest::test_labels): New function.
491 (selftest::tree_c_tests): New function.
492 * tree-cfg.c: Include "selftest.h".
493 (selftest::push_fndecl): New function.
494 (selftest::test_linear_chain): New function.
495 (selftest::test_diamond): New function.
496 (selftest::test_fully_connected): New function.
497 (selftest::tree_cfg_c_tests): New function.
498 * vec.c: Include "selftest.h".
499 (selftest::safe_push_range): New function.
500 (selftest::test_quick_push): New function.
501 (selftest::test_safe_push): New function.
502 (selftest::test_truncate): New function.
503 (selftest::test_safe_grow_cleared): New function.
504 (selftest::test_pop): New function.
505 (selftest::test_safe_insert): New function.
506 (selftest::test_ordered_remove): New function.
507 (selftest::test_unordered_remove): New function.
508 (selftest::test_block_remove): New function.
509 (selftest::reverse_cmp): New function.
510 (selftest::test_qsort): New function.
511 (selftest::vec_c_tests): New function.c.
512 * wide-int.cc: Include selftest.h and wide-int-print.h.
513 (selftest::from_int <wide_int>): New function.
514 (selftest::from_int <offset_int>): New function.
515 (selftest::from_int <widest_int>): New function.
516 (selftest::assert_deceq): New function.
517 (selftest::assert_hexeq): New function.
518 (selftest::test_printing <VALUE_TYPE>): New function template.
519 (selftest::test_ops <VALUE_TYPE>): New function template.
520 (selftest::test_comparisons <VALUE_TYPE>): New function template.
521 (selftest::run_all_wide_int_tests <VALUE_TYPE>): New function
522 template.
523 (selftest::wide_int_cc_tests): New function.
524
525 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
526
527 PR middle-end/37780
528 * ifcvt.c (noce_try_ifelse_collapse): New function.
529 Declare prototype.
530 (noce_process_if_block): Call noce_try_ifelse_collapse.
531 * simplify-rtx.c (simplify_cond_clz_ctz): New function.
532 (simplify_ternary_operation): Use the above to simplify
533 conditional CLZ/CTZ expressions.
534
535 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
536
537 PR middle-end/37780
538 * config/aarch64/aarch64.md (ctz<mode>2): Convert to
539 define_insn_and_split.
540
541 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
542
543 PR middle-end/37780
544 * config/arm/arm.md (ctzsi2): Convert to define_insn_and_split.
545
546 2016-06-06 Bernd Edlinger <bernd.edlinger@hotmail.de>
547
548 PR c/24414
549 * cfgexpand.c (expand_asm_loc): Remove handling for ADDR_EXPR.
550 Implicitly clobber memory for basic asm with non-empty assembler
551 string. Use targetm.md_asm_adjust also here.
552 * compare-elim.c (arithmetic_flags_clobber_p): Use asm_noperands here.
553 * final.c (final_scan_insn): Handle basic asm in PARALLEL block.
554 * gimple.c (gimple_asm_clobbers_memory_p): Handle basic asm with
555 non-empty assembler string.
556 * ira.c (compute_regs_asm_clobbered): Use asm_noperands here.
557 * recog.c (asm_noperands): Handle basic asm in PARALLEL block.
558 (decode_asm_operands): Handle basic asm in PARALLEL block.
559 (extract_insn): Handle basic asm in PARALLEL block.
560 * doc/extend.texi: Mention new behavior of basic asm.
561 * config/ia64/ia64 (rtx_needs_barrier): Handle ASM_INPUT here.
562 * config/pa/pa.c (branch_to_delay_slot_p, branch_needs_nop_p,
563 branch_needs_nop_p): Use asm_noperands.
564
565 2016-06-06 Jose E. Marchesi <jose.marchesi@oracle.com>
566
567 * config/sparc/sparc.md (cpu): Add niagara7 cpu type.
568 Include the M7 SPARC DFA scheduler.
569 New attribute v3pipe.
570 Annotate insns with v3pipe where appropriate.
571 Define cpu_feature vis4.
572 Add lzd instruction type and set it on clzdi_sp64 and clzsi_sp64.
573 Add (V8QI "8") to vbits.
574 Add insns {add,sub}v8qi3
575 Add insns ss{add,sub}v8qi3
576 Add insns us{add,sub}{v8qi,v4hi}3
577 Add insns {min,max}{v8qi,v4hi,v2si}3
578 Add insns {minu,maxu}{v8qi,v4hi,v2si}3
579 Add insns fpcmp{le,gt,ule,ug,ule,ugt}{8,16,32}_vis.
580 * config/sparc/niagara4.md: Add a comment explaining the
581 discrepancy between the documented latenty numbers and the
582 implemented ones.
583 * config/sparc/niagara7.md: New file.
584 * configure.ac (HAVE_AS_SPARC5_VIS4): Define if the assembler
585 supports SPARC5 and VIS 4.0 instructions.
586 * configure: Regenerate.
587 * config.in: Likewise.
588 * config.gcc: niagara7 is a supported cpu in sparc*-*-* targets.
589 * config/sparc/sol2.h (ASM_CPU32_DEFAUILT_SPEC): Set for
590 TARGET_CPU_niagara7.
591 (ASM_CPU64_DEFAULT_SPEC): Likewise.
592 (CPP_CPU_SPEC): Handle niagara7.
593 (ASM_CPU_SPEC): Likewise.
594 * config/sparc/sparc-opts.h (processor_type): Add
595 PROCESSOR_NIAGARA7.
596 (mvis4): New option.
597 * config/sparc/sparc.h (TARGET_CPU_niagara7): Define.
598 (AS_NIAGARA7_FLAG): Define.
599 (ASM_CPU64_DEFAULT_SPEC): Set for niagara7.
600 (CPP_CPU64_DEFAULT_SPEC): Likewise.
601 (CPP_CPU_SPEC): Handle niagara7.
602 (ASM_CPU_SPEC): Likewise.
603 * config/sparc/sparc.c (niagara7_costs): Define.
604 (sparc_option_override): Handle niagara7 and adjust cache-related
605 parameters with better values for niagara cpus. Also support VIS4.
606 (sparc32_initialize_trampoline): Likewise.
607 (sparc_use_sched_lookahead): Likewise.
608 (sparc_issue_rate): Likewise.
609 (sparc_register_move_cost): Likewise.
610 (dump_target_flag_bits): Support VIS4.
611 (sparc_vis_init_builtins): Likewise.
612 (sparc_builtins): Likewise.
613 * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__ for
614 VIS4 4.0.
615 * config/sparc/driver-sparc.c (cpu_names): Add SPARC-M7 and
616 UltraSparc M7.
617 * config/sparc/sparc.opt (sparc_processor_type): New value
618 niagara7.
619 * config/sparc/visintrin.h (__attribute__): Prototypes for the
620 VIS4 builtins.
621 * doc/invoke.texi (SPARC Options): Document -mcpu=niagara7 and
622 -mvis4.
623 * doc/extend.texi (SPARC VIS Built-in Functions): Document the
624 VIS4 builtins.
625
626 2016-06-06 Jonathan Wakely <jwakely@redhat.com>
627
628 * doc/sourcebuild.texi (Directives): Remove extra closing braces.
629
630 2016-06-06 Richard Biener <rguenther@suse.de>
631
632 PR tree-optimization/71398
633 * tree-ssa-loop-ivcanon.c (unloop_loops): First unloop, then
634 remove edges.
635
636 2016-06-05 James Bowman <james.bowman@ftdichip.com>
637
638 * config/ft32/ft32.c (ft32_setup_incoming_varargs,
639 ft32_expand_prolog, ft32_expand_epilogue):
640 Handle pretend_args.
641 * config/ft32/ft32.h: Remove OUTGOING_REG_PARM_STACK_SPACE.
642 * config/ft32/ft32.md: Add pretend_returner.
643
644 2016-06-06 Uros Bizjak <ubizjak@gmail.com>
645
646 PR target/71389
647 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
648 Copy op1 RTX to avoid invalid sharing.
649 (ix86_expand_vector_move_misalign): Ditto.
650
651 2016-06-05 John David Anglin <danglin@gcc.gnu.org>
652
653 * expr.c (move_by_pieces_d::generate): Mark mode parameter with
654 ATTRIBUTE_UNUSED.
655
656 2016-06-05 Jan Hubicka <hubicka@ucw.cz>
657
658 * predict.c (predicted_by_loop_heuristics_p): New function.
659 (predict_iv_comparison): Use it.
660 (predict_loops): Walk from innermost loops; do not predict edges
661 leaving multiple loops multiple times; implement
662 PRED_LOOP_ITERATIONS_MAX heuristics.
663 * predict.def (PRED_LOOP_ITERATIONS_MAX): New predictor.
664
665 2016-06-05 Jan Hubicka <hubicka@ucw.cz>
666
667 * cfg.c (check_bb_profile): Do not report mismatched profiles when
668 only edges out of BB are EH edges.
669
670 2016-06-04 Martin Sebor <msebor@redhat.com>
671 Marcin Baczyński <marbacz@gmail.com>
672
673 PR c/48116
674 * doc/invoke.texi (-Wreturn-type): Mention not warning on return with
675 a void expression in a void function.
676
677 2016-06-03 Jan Hubicka <hubicka@ucw.cz>
678
679 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Do not check
680 aux; dump reasons of decisions.
681 (should_duplicate_loop_header_p): Likewise.
682 (do_while_loop_p): Likewise.
683 (ch_base::copy_headers): Dump asi num insns duplicated.
684
685 2016-06-04 Jakub Jelinek <jakub@redhat.com>
686
687 PR tree-optimization/71405
688 * tree-ssa.c (execute_update_addresses_taken): For clobber with
689 incompatible type, build a new clobber with the right type instead
690 of building a VIEW_CONVERT_EXPR around it.
691
692 2016-06-04 Oleg Endo <olegendo@gcc.gnu.org>
693
694 PR tree-optimization/52171
695 * config/sh/sh.c (sh_use_by_pieces_infrastructure_p): Use
696 by_pieces_ninsns instead of move_by_pieces_ninsns.
697
698 2016-06-04 Oleg Endo <olegendo@gcc.gnu.org>
699
700 * config/sh/sh.c (sh_print_operand_address): Don't use hardcoded 'r0'
701 for reg+reg addressing mode.
702
703 2016-06-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
704
705 * rs6000-c.c (c/c-tree.h): Add #include.
706 (altivec_resolve_overloaded_builtin): Handle ARRAY_TYPE arguments
707 in C++ when found in the base position of vec_ld or vec_st.
708
709 2016-06-03 Jan Hubicka <hubicka@ucw.cz>
710
711 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Avoid
712 use of profile unless profile status is PROFILE_READ.
713 * profile.c (compute_branch_probabilities): Set profile status
714 only after reporting predictor hitrates.
715
716 2016-06-03 Joseph Myers <joseph@codesourcery.com>
717
718 PR target/71276
719 PR target/71277
720 * common.opt (ffp-int-builtin-inexact): New option.
721 * doc/invoke.texi (-fno-fp-int-builtin-inexact): Document.
722 * doc/md.texi (floor@var{m}2, btrunc@var{m}2, round@var{m}2)
723 (ceil@var{m}2): Document dependence on this option.
724 * ipa-inline-transform.c (inline_call): Handle
725 flag_fp_int_builtin_inexact.
726 * ipa-inline.c (can_inline_edge_p): Likewise.
727 * config/i386/i386.md (rintxf2): Do not test
728 flag_unsafe_math_optimizations.
729 (rint<mode>2_frndint): New define_insn.
730 (rint<mode>2): Do not test flag_unsafe_math_optimizations for 387
731 or !flag_trapping_math for SSE. Just use gen_rint<mode>2_frndint
732 for 387 instead of extending and truncating.
733 (frndintxf2_<rounding>): Test flag_fp_int_builtin_inexact ||
734 !flag_trapping_math instead of flag_unsafe_math_optimizations.
735 Change to frndint<mode>2_<rounding>.
736 (frndintxf2_<rounding>_i387): Likewise. Change to
737 frndint<mode>2_<rounding>_i387.
738 (<rounding_insn>xf2): Likewise.
739 (<rounding_insn><mode>2): Test flag_fp_int_builtin_inexact ||
740 !flag_trapping_math instead of flag_unsafe_math_optimizations for
741 x87. Test TARGET_ROUND || !flag_trapping_math ||
742 flag_fp_int_builtin_inexact instead of !flag_trapping_math for
743 SSE. Use ROUND_NO_EXC in constant operand of
744 gen_sse4_1_round<mode>2. Just use gen_frndint<mode>2_<rounding>
745 for 387 instead of extending and truncating.
746
747 2016-06-03 H.J. Lu <hongjiu.lu@intel.com>
748 Julia Koval <julia.koval@intel.com>
749
750 PR target/66960
751 PR target/67630
752 PR target/67634
753 PR target/67841
754 PR target/68037
755 PR target/68618
756 PR target/68661
757 PR target/69575
758 PR target/69596
759 PR target/69734
760 * config/i386/i386-protos.h (ix86_epilogue_uses): New prototype.
761 * config/i386/i386.c (ix86_conditional_register_usage): Preserve
762 all registers, except for function return registers if there are
763 no caller-saved registers.
764 (ix86_set_func_type): New function.
765 (ix86_set_current_function): Call ix86_set_func_type to set
766 no_caller_saved_registers and func_type. Call reinit_regs if
767 caller-saved registers are changed. Don't allow MPX, SSE, MMX
768 nor x87 instructions in interrupt handler nor function with
769 no_caller_saved_registers attribute.
770 (ix86_function_ok_for_sibcall): Return false if there are no
771 caller-saved registers.
772 (type_natural_mode): Don't warn ABI change for MMX in interrupt
773 handler.
774 (ix86_function_arg_advance): Skip for callee in interrupt handler.
775 (ix86_function_arg): Return special arguments in interrupt handler.
776 (ix86_promote_function_mode): Promote pointer to word_mode only
777 for normal functions.
778 (ix86_can_use_return_insn_p): Don't use `ret' instruction in
779 interrupt handler.
780 (ix86_epilogue_uses): New function.
781 (ix86_hard_regno_scratch_ok): Likewise.
782 (ix86_save_reg): Preserve all registers in interrupt handler
783 after reload. Preserve all registers, except for function return
784 registers, if there are no caller-saved registers after reload.
785 (find_drap_reg): Always use callee-saved register if there are
786 no caller-saved registers.
787 (ix86_minimum_incoming_stack_boundary): Return MIN_STACK_BOUNDARY
788 for interrupt handler.
789 (ix86_expand_prologue): Don't allow DRAP in interrupt handler.
790 Emit cld instruction if stringops are used in interrupt handler
791 or interrupt handler isn't a leaf function.
792 (ix86_expand_epilogue): Generate interrupt return for interrupt
793 handler and pop the 'ERROR_CODE' off the stack before interrupt
794 return in exception handler.
795 (ix86_expand_call): Disallow calling interrupt handler directly.
796 If there are no caller-saved registers, mark all registers that
797 are clobbered by the call which returns as clobbered.
798 (ix86_handle_no_caller_saved_registers_attribute): New function.
799 (ix86_handle_interrupt_attribute): Likewise.
800 (ix86_attribute_table): Add interrupt and no_caller_saved_registers
801 attributes.
802 (TARGET_HARD_REGNO_SCRATCH_OK): Likewise.
803 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use argument
804 accumulation in interrupt function if stack may be realigned to
805 avoid DRAP.
806 (EPILOGUE_USES): New.
807 (function_type): New enum.
808 (machine_function): Add func_type and no_caller_saved_registers.
809 * config/i386/i386.md (UNSPEC_INTERRUPT_RETURN): New.
810 (interrupt_return): New pattern.
811 * doc/extend.texi: Document x86 interrupt and
812 no_caller_saved_registers attributes.
813
814 2016-06-03 Bernd Schmidt <bschmidt@redhat.com>
815
816 PR tree-optimization/52171
817 * builtins.c (expand_cmpstrn_or_cmpmem): Delete, moved elsewhere.
818 (expand_builtin_memcmp): New arg RESULT_EQ. All callers changed.
819 Look for constant strings. Move some code to emit_block_cmp_hints
820 and use it.
821 * builtins.def (BUILT_IN_MEMCMP_EQ): New.
822 * defaults.h (COMPARE_MAX_PIECES): New macro.
823 * expr.c (move_by_pieces_d, store_by_pieces_d): Remove old structs.
824 (move_by_pieces_1, store_by_pieces_1, store_by_pieces_2): Remvoe.
825 (clear_by_pieces_1): Don't declare. Move definition before use.
826 (can_do_by_pieces): New static function.
827 (can_move_by_pieces): Use it. Return bool.
828 (by_pieces_ninsns): Renamed from move_by_pieces_ninsns. New arg
829 OP. All callers changed. Handle COMPARE_BY_PIECES.
830 (class pieces_addr); New.
831 (pieces_addr::pieces_addr, pieces_addr::decide_autoinc,
832 pieces_addr::adjust, pieces_addr::increment_address,
833 pieces_addr::maybe_predec, pieces_addr::maybe_postinc): New member
834 functions for it.
835 (class op_by_pieces_d): New.
836 (op_by_pieces_d::op_by_pieces_d, op_by_pieces_d::run): New member
837 functions for it.
838 (class move_by_pieces_d, class compare_by_pieces_d,
839 class store_by_pieces_d): New subclasses of op_by_pieces_d.
840 (move_by_pieces_d::prepare_mode, move_by_pieces_d::generate,
841 move_by_pieces_d::finish_endp, store_by_pieces_d::prepare_mode,
842 store_by_pieces_d::generate, store_by_pieces_d::finish_endp,
843 compare_by_pieces_d::generate, compare_by_pieces_d::prepare_mode,
844 compare_by_pieces_d::finish_mode): New member functions.
845 (compare_by_pieces, emit_block_cmp_via_cmpmem): New static
846 functions.
847 (expand_cmpstrn_or_cmpmem): Moved here from builtins.c.
848 (emit_block_cmp_hints): New function.
849 (move_by_pieces, store_by_pieces, clear_by_pieces): Rewrite to just
850 use the newly defined classes.
851 * expr.h (by_pieces_constfn): New typedef.
852 (can_store_by_pieces, store_by_pieces): Use it in arg declarations.
853 (emit_block_cmp_hints, expand_cmpstrn_or_cmpmem): Declare.
854 (move_by_pieces_ninsns): Don't declare.
855 (can_move_by_pieces): Change return value to bool.
856 * target.def (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Update docs.
857 (compare_by_pieces_branch_ratio): New hook.
858 * target.h (enum by_pieces_operation): Add COMPARE_BY_PIECES.
859 (by_pieces_ninsns): Declare.
860 * targethooks.c (default_use_by_pieces_infrastructure_p): Handle
861 COMPARE_BY_PIECES.
862 (default_compare_by_pieces_branch_ratio): New function.
863 * targhooks.h (default_compare_by_pieces_branch_ratio): Declare.
864 * doc/tm.texi.in (STORE_MAX_PIECES, COMPARE_MAX_PIECES): Document.
865 * doc/tm.texi: Regenerate.
866 * tree-ssa-strlen.c: Include "builtins.h".
867 (handle_builtin_memcmp): New static function.
868 (strlen_optimize_stmt): Call it for BUILT_IN_MEMCMP.
869 * tree.c (build_common_builtin_nodes): Create __builtin_memcmp_eq.
870
871 2016-06-03 Alan Hayward <alan.hayward@arm.com>
872
873 * tree-vect-stmts.c (vect_stmt_relevant_p): Do not vectorize non live
874 relevant stmts which are simple and invariant.
875 * tree-vect-loop.c (vectorizable_live_operation): Check relevance
876 instead of simple and invariant
877
878 2016-06-03 Alan Hayward <alan.hayward@arm.com>
879
880 * tree-vect-loop.c (vect_analyze_loop_operations): Allow live stmts.
881 (vectorizable_reduction): Check for new relevant state.
882 (vectorizable_live_operation): vectorize live stmts using
883 BIT_FIELD_REF. Remove special case for gimple assigns stmts.
884 * tree-vect-stmts.c (is_simple_and_all_uses_invariant): New function.
885 (vect_stmt_relevant_p): Check for stmts which are only used live.
886 (process_use): Use of a stmt does not inherit it's live value.
887 (vect_mark_stmts_to_be_vectorized): Simplify relevance inheritance.
888 (vect_analyze_stmt): Check for new relevant state.
889 * tree-vectorizer.h (vect_relevant): New entry for a stmt which is used
890 outside the loop, but not inside it.
891
892 2016-06-03 Alan Hayward <alan.hayward@arm.com>
893
894 * tree-vectorizer.h (vect_get_vec_def_for_operand_1): New.
895 * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): New.
896 (vect_get_vec_def_for_operand): Split out code.
897
898 2016-06-03 Segher Boessenkool <segher@kernel.crashing.org>
899
900 * config/rs6000/rs6000.md (define_peepholes for two mfcr's): Delete.
901
902 2016-06-03 Alan Hayward <alan.hayward@arm.com>
903
904 * tree-vect-stmts.c (vectorizable_call) Remove GOMP_SIMD_LANE code.
905
906 2016-06-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
907
908 * config/arm/thumb1.md (*thumb1_mulsi3): Fix typos in comment.
909
910 2016-06-03 Jakub Jelinek <jakub@redhat.com>
911
912 PR middle-end/71387
913 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): If redirecting
914 to noreturn e->callee->decl that has void return type and void
915 arguments, adjust gimple_call_fntype and remove lhs even if it had
916 previously addressable type.
917
918 2016-06-02 Jeff Law <law@redhat.com>
919
920 PR tree-optimization/71328
921 * tree-ssa-threadupdate.c (duplicate_thread_path): Fix off-by-one
922 error when checking for a jump back onto the copied path.
923
924 2016-06-02 David Malcolm <dmalcolm@redhat.com>
925
926 * config/microblaze/microblaze.c (get_branch_target): Add return
927 NULL_RTX for the non-CALL_P case.
928 (insert_wic_for_ilb_runout): Remove unused local "wic_addr1".
929 (insert_wic): Remove unused local "j".
930
931 2016-06-02 Martin Liska <mliska@suse.cz>
932
933 * predict.def: Fix typo in PRED_FORTRAN_FAIL_IO display name.
934
935 2016-06-02 H.J. Lu <hongjiu.lu@intel.com>
936 Julia Koval <julia.koval@intel.com>
937
938 * function.c (assign_parm_setup_stack): Force source into a
939 register if needed.
940 * target.def (function_incoming_arg): Update documentation to
941 allow arbitrary address computation based on hard register.
942 * doc/tm.texi: Regenerated.
943
944 2016-06-02 Martin Liska <mliska@suse.cz>
945
946 * predict.c (combine_predictions_for_bb): Fix first match in
947 cases where a first predictor contains more than one occurence
948 in list of predictors. Take the best value in such case.
949
950 2016-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
951
952 PR rtl-optimization/71295
953 * rtlanal.c (subreg_get_info): If taking a subreg at the requested
954 offset would go over the size of the inner mode reject it.
955
956 2016-06-02 Jakub Jelinek <jakub@redhat.com>
957
958 * config/i386/sse.md (*vec_concatv4si): Use v=v,v instead of
959 x=x,x and v=v,m instead of x=x,m.
960
961 * config/i386/sse.md (*vec_concatv2si_sse4_1): Add avx512dq v=Yv,rm
962 alternative. Change x=x,x alternative to v=Yv,Yv and x=rm,C
963 alternative to v=rm,C.
964
965 * config/i386/sse.md (*vec_concatv2di): Add x86_avx512dq v=Yv,rm
966 alternative. Change x=xm,C alternative to v=vm,C, x=x,x alternative
967 to v=Yv,Yv and x=x,m to v=v,m. Use maybe_evex prefix attribute
968 instead of vex for the last two above mentioned alternatives.
969
970 2016-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
971
972 PR target/70830
973 * config/arm/arm.c (arm_output_multireg_pop): Guard "pop" on update.
974
975 2016-06-02 Segher Boessenkool <segher@kernel.crashing.org>
976
977 * config/rs6000/dfp.md (trunctddd2): Correct the "length" attribute.
978
979 2016-06-01 David Malcolm <dmalcolm@redhat.com>
980
981 * config/rl78/rl78.c (rl78_expand_prologue): Convert local
982 from int to unsigned.
983
984 2016-05-31 Michael Meissner <meissner@linux.vnet.ibm.com>
985
986 * config/rs6000/vsx.md (vsx_splat_<mode>, V2DI/V2DF): Simplify
987 alternatives, eliminating preferred register class. Add support
988 for the MTVSRDD instruction in ISA 3.0.
989 (vsx_splat_v4si_internal): Use splat_input_operand instead of
990 reg_or_indexed_operand.
991 (vsx_splat_v4sf_internal): Likewise.
992
993 2016-05-31 Michael Meissner <meissner@linux.vnet.ibm.com>
994
995 PR target/71186
996 * config/rs6000/vsx.md (xxspltib_<mode>_nosplit): Add alternatives
997 for loading up all 0's or all 1's.
998
999 2016-06-01 Thomas Preud'homme <thomas.preudhomme@arm.com>
1000
1001 * doc/sourcebuild.texi (arm_acq_rel): Document new effective target.
1002
1003 2016-06-01 Eduard Sanou <dhole@openmailbox.org>
1004
1005 * doc/cppenv.texi: Note that the `%s` in `date` is a non-standard
1006 extension.
1007 * gcc.c (driver_handle_option): Call set_source_date_epoch_envvar.
1008 * gcc.c (set_source_date_epoch_envvar): New function, sets
1009 the SOURCE_DATE_EPOCH environment variable to the current time.
1010
1011 2016-06-01 Eric Botcazou <ebotcazou@adacore.com>
1012
1013 * tree-vect-loop.c (vect_determine_vectorization_factor): Also compute
1014 the factor for live Phi nodes.
1015
1016 2016-06-01 Jan Hubicka <hubicka@ucw.cz>
1017
1018 * loop-dolop.c (doloop_optimize): Us likely max iteration bound.
1019 * tree-parloops.c (parallelize_loops): likewise.
1020 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop,
1021 tree_unswitch_outer_loop): likewise.
1022
1023 2016-06-01 Jakub Jelinek <jakub@redhat.com>
1024
1025 PR middle-end/71371
1026 * gimplify.c (gimplify_omp_for): Temporarily clear gimplify_omp_ctxp
1027 around creation of the temporary.
1028
1029 2016-06-01 Richard Biener <rguenther@suse.de>
1030
1031 PR tree-optimization/71366
1032 * tree-ssa-loop-ivcanon.c (edges_to_remove): New global.
1033 (unloop_loops): Move removing edges here ...
1034 (try_unroll_loop_completely): ... from here.
1035 (try_peel_loop): ... and here.
1036 (tree_unroll_loops_completely_1): Track parent loops via
1037 bitmap of header BBs.
1038 (tree_unroll_loops_completely): Adjust for that.
1039
1040 2016-06-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
1041
1042 * config/rs6000/altivec.h (vec_slv): New macro.
1043 (vec_srv): New macro.
1044 * config/rs6000/altivec.md (UNSPEC_VSLV): New value.
1045 (UNSPEC_VSRV): New value.
1046 (vslv): New insn.
1047 (vsrv): New insn.
1048 * config/rs6000/rs6000-builtin.def (vslv): New builtin definition.
1049 (vsrv): New builtin definition.
1050 * config/rs6000/rs6000-c.c (P9V_BUILTIN_VSLV): Macro expansion to
1051 define argument types for new builtin.
1052 (P9V_BUILTIN_VSRV): Macro expansion to define argument types for
1053 new builtin.
1054 * doc/extend.texi: Document the new vec_vslv and vec_srv built-in
1055 functions.
1056
1057 2016-06-01 Uros Bizjak <ubizjak@gmail.com>
1058 Jocelyn Mayer <l_indien@magic.fr>
1059
1060 PR target/67310
1061 * config/i386/driver-i386.c (host_detect_local_cpu): Correctly
1062 detect processor family for signature_CENTAUR_ebx.
1063 <case PROCESSOR_I486>: Pass c3, winchip2 or winchip-c6 for
1064 signature_CENTAUR_ebx.
1065 <case PROCESSOR _PENTIUMPRO>: Pass c3-2 for signature_CENTAUR_ebx.
1066 <default>: Pass x86-64 for has_longmode.
1067
1068 2016-06-01 Nathan Sidwell <nathan@acm.org>
1069
1070 * config/nvptx/nvptx.c (nvptx_assemble_undefined_decl): Reject
1071 undefined weak.
1072
1073 2016-06-01 Richard Biener <rguenther@suse.de>
1074
1075 PR tree-optimization/71261
1076 * tree-vect-patterns.c (check_bool_pattern): Gather a hash-set
1077 of stmts successfully put in the bool pattern. Remove
1078 single-use restriction.
1079 (adjust_bool_pattern_cast): Add cast at the use site via the
1080 pattern def sequence.
1081 (adjust_bool_pattern): Remove recursion, maintain a hash-map
1082 of patterned defs. Use the pattern def seqence instead of
1083 multiple independent patterns.
1084 (sort_after_uid): New qsort compare function.
1085 (adjust_bool_stmts): New function to process stmts in the bool
1086 pattern in IL order.
1087 (vect_recog_bool_pattern): Adjust.
1088 * tree-if-conv.c (ifcvt_split_def_stmt): Remove.
1089 (ifcvt_walk_pattern_tree): Likewise.
1090 (stmt_is_root_of_bool_pattern): Likewise.
1091 (ifcvt_repair_bool_pattern): Likewise.
1092 (tree_if_conversion): Do not call ifcvt_repair_bool_pattern.
1093
1094 2016-06-01 Jan Hubicka <hubicka@ucw.cz>
1095
1096 * loop-unroll.c (decide_unroll_constant_iterations,
1097 decide_unroll_runtime_iterations, decide_unroll_stupid): Use
1098 likely upper bounds.
1099 * loop-iv.c (find_simple_exit): Dump likely upper bounds.
1100
1101 2016-06-01 Thomas Schwinge <thomas@codesourcery.com>
1102
1103 * tree-core.h (enum omp_clause_code): Remove
1104 OMP_CLAUSE_DEVICE_RESIDENT. Adjust all users.
1105
1106 2016-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1107
1108 * config/arm/sync.md (arm_store_exclusive<mode>):
1109 Use 'H' output modifier on operands[2] rather than creating a new
1110 entry in out-of-bounds memory of the operands array.
1111 (arm_store_release_exclusivedi): Likewise.
1112
1113 2016-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1114
1115 * config/arm/arm.c (arm_fusion_enabled_p): New function.
1116 * config/arm/arm-protos.h (arm_fusion_enabled_p): Declare prototype.
1117 * config/arm/crypto.md (crypto_<crypto_pattern>, CRYPTO_UNARY):
1118 Add "=w,0" alternative. Enable it when AES/AESMC fusion is enabled.
1119
1120 2016-06-01 Eric Botcazou <ebotcazou@adacore.com>
1121
1122 * tree-vect-loop.c (vect_determine_vectorization_factor): Also take
1123 into account live statements for mask producers.
1124
1125 2016-06-01 Richard Biener <rguenther@suse.de>
1126
1127 PR tree-optimization/71311
1128 * match.pd (@0 < @1 && @0 < @2 -> @0 < min(@1,@2)): Add :c and
1129 restrict to non-INTEGER_CST @0.
1130
1131 2016-06-01 Richard Biener <rguenther@suse.de>
1132
1133 * match.pd ((A & B) - (A & ~B) -> B - (A ^ B)): Add missing :c.
1134 (relational patterns): Use :c to avoid pattern duplications.
1135
1136 2016-06-01 Richard Biener <rguenther@suse.de>
1137
1138 * genmatch.c (comparison_code_p): New predicate.
1139 (swap_tree_comparison): New function.
1140 (commutate): Add for_vec parameter to append new for entries.
1141 Support commutating relational operators by swapping it alongside
1142 operands.
1143 (lower_commutative): Adjust.
1144 (dt_simplify::gen): Do not pass artificial operators to gen
1145 functions.
1146 (decision_tree::gen): Do not add artificial operators as parameters.
1147 (parser::parse_expr): Verify operator commutativity when :c is
1148 applied. Allow :C to override this.
1149 * match.pd: Adjust patterns to use :C instead of :c where required.
1150
1151 2016-06-01 Patrick Palka <ppalka@gcc.gnu.org>
1152
1153 PR tree-optimization/71077
1154 * tree-ssa-threadedge.c (simplify_control_stmt_condition_1): In
1155 the combining step, use boolean_false_node and boolean_true_node
1156 as the designated false/true return values.
1157
1158 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
1159
1160 * predict.def (PRED_LOOP_EXTRA_EXIT): Define.
1161 * predict.c (predict_iv_comparison): Also check PRED_LOOP_EXTRA_EXIT.
1162 (predict_extra_loop_exits): Use PRED_LOOP_EXTRA_EXIT instead of
1163 PRED_LOOP_EXIT.
1164
1165 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
1166
1167 * doc/invoke.texi (-frename-registers): Drop -fpeel-loops from list
1168 of flags impliying the register renaming.
1169 * toplev.c (process_options): Do not imply flag_rename_registers with
1170 loop peeling.
1171
1172 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
1173
1174 * config/sh/sh.h (ASM_OUTPUT_SYMBOL_REF): Remove macro and use the
1175 default implementation.
1176
1177 2016-05-31 Nathan Sidwell <nathan@acm.org>
1178
1179 * dwarf2out.c (cur_line_info_table): Add GTY marker.
1180
1181 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
1182
1183 * config/sh/constraints.md (b): Remove constraint.
1184 * config/sh/predicates.md (arith_reg_operand): Remove
1185 TARGET_REGISTER_P.
1186 * config/sh/sh-modes.def (PDI): Remove.
1187 * config/sh/sh.c (sh_target_reg_class,
1188 sh_optimize_target_register_callee_saved): Remove functions.
1189 (sh_option_override): Don't set MASK_SAVE_ALL_TARGET_REGS.
1190 (sh_expand_epilogue): Update comment.
1191 (sh_hard_regno_mode_ok, sh_register_move_cost, calc_live_regs,
1192 sh_secondary_reload): Remove TARGET_REGS related code.
1193 * config/sh/sh.h (FIRST_TARGET_REG, LAST_TARGET_REG,
1194 TARGET_REGISTER_P): Remove macros.
1195 (SH_DBX_REGISTER_NUMBER, REG_ALLOC_ORDER): Remove target regs.
1196 * config/sh/sh.md (PR_MEDIA_REG, T_MEDIA_REG, FR23_REG, TR0_REG,
1197 TR1_REG, TR2_REG): Remove constants.
1198 * config/sh/sh.opt (SAVE_ALL_TARGET_REGS): Remove.
1199
1200 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
1201
1202 * config/sh/sh.md (adddi3, subdi3, negdi2, abs<mode>2): Remove
1203 define_expand patterns.
1204 (adddi3_compact): Rename to adddi3.
1205 (subdi3_compact): Rename to subdi3.
1206 (*negdi2): Rename to negdi2.
1207 (*abs<mode>2): Rename to abs<mode>2.
1208
1209 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
1210
1211 * config/rx/rx.md (FETCHOP_NO_MINUS): New code iterator.
1212 (atomic_<fetchop_name>_fetchsi): Extract minus operator into ...
1213 (atomic_sub_fetchsi): ... this new pattern.
1214 (mvtc): Add CC_REG clobber.
1215
1216 2016-05-31 Marek Polacek <polacek@redhat.com>
1217
1218 * gimplify.c (gimplify_switch_expr): Also handle GIMPLE_TRY.
1219
1220 2016-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1221
1222 * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Use
1223 aarch64_fusion_enabled_p to check for fusion capabilities.
1224
1225 2016-05-31 Richard Biener <rguenther@suse.de>
1226
1227 PR tree-optimization/71352
1228 * tree-ssa-reassoc.c (zero_one_operation): Handle op equal to
1229 minus one and a negate.
1230
1231 2016-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1232
1233 * config/aarch64/aarch64.c (aarch64_simd_attr_length_move): Delete.
1234 * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
1235 Delete prototype.
1236 * config/aarch64/iterators.md (insn_count): Add descriptive comment.
1237 * config/aarch64/aarch64-simd.md (*aarch64_mov<mode>, VSTRUCT modes):
1238 Remove use of aarch64_simd_attr_length_move, set length attribute
1239 directly.
1240 (*aarch64_be_movoi): Likewise.
1241 (*aarch64_be_movci): Likewise.
1242 (*aarch64_be_movxi): Likewise.
1243
1244 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
1245
1246 * loop-init.c (gate): Do not enale RTL loop unroller with -fpeel-loops.
1247 It no longer does that.
1248 * toplev.c (process_options): Do not enable flag_web with -fpeel-loops.
1249
1250 2016-05-31 Wladimir J. van der Laan <laanwj@gmail.com>
1251
1252 * config/aarch64/arm_neon.h (vdupb_laneq_s8): Remove spurious
1253 attribute __unused__.
1254
1255 2016-05-31 Thomas Preud'homme <thomas.preudhomme@arm.com>
1256
1257 * config/arm/arm-protos.h (arm_arch_thumb1): Declare.
1258 * config/arm/arm.c (arm_arch_thumb1): Define.
1259 (arm_option_override): Initialize arm_arch_thumb1.
1260 * config/arm/arm.h (arm_arch_thumb1): Declare.
1261 (TARGET_ARM_ARCH_ISA_THUMB): Use arm_arch_thumb to determine if target
1262 support Thumb-1 ISA.
1263
1264 2016-05-31 Kirill Yukhin <kirill.yukhin@intel.com>
1265
1266 PR target/71346
1267 * config/i386/sse.md (define_insn_and_split "*vec_extractv4sf_0"): Use
1268 `Yv' for scalar operand.
1269
1270 2016-05-31 Tom de Vries <tom@codesourcery.com>
1271
1272 PR tree-optimization/69068
1273 * graphite-isl-ast-to-gimple.c (copy_bb_and_scalar_dependences): Handle
1274 phis with more than two args.
1275
1276 2016-05-30 Andreas Tobler <andreast@gcc.gnu.org>
1277
1278 * config.gcc: Move hard float support for arm*hf*-*-freebsd* into
1279 armv6*-*-freebsd* for FreeBSD 11. Eliminate the arm*hf*-*-freebsd*
1280 target.
1281
1282 2016-05-30 Jose E. Marchesi <jose.marchesi@oracle.com>
1283
1284 * config.gcc (sparc*-*-*): Support cpu_32, cpu_64, tune_32 and
1285 tune_64.
1286 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
1287 support on SPARC.
1288 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Add entries for
1289 cpu_32, cpu_64, tune_32 and tune_64.
1290 * config/sparc/sol2.h (OPTION_DEFAULT_SPECS): Likewise.
1291
1292 2016-05-30 Uros Bizjak <ubizjak@gmail.com>
1293
1294 * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
1295
1296 2016-05-30 Andi Kleen <ak@linux.intel.com>
1297
1298 * auto-profile.c (read_profile): Replace asserts with errors
1299 when file does not exist.
1300 * gcov-io.c (gcov_read_words): Dito.
1301
1302 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
1303
1304 * tree-cfg.c (print_loop): Print likely upper bounds.
1305
1306 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
1307
1308 * doc/invoke.texi (-fpeel-loops,-O3): Update documentation.
1309 * opts.c (default_options): Enable peel loops at -O3.
1310 * tree-ssa-loop-ivcanon.c (peeled_loops): New static var.
1311 (try_peel_loop): Do not re-peel already peeled loops;
1312 use likely upper bounds; fix profile updating.
1313 (pass_complete_unroll::execute): Initialize peeled_loops.
1314
1315 2016-05-30 Martin Liska <mliska@suse.cz>
1316
1317 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Scale
1318 computed costs by frequency of BB they belong to.
1319 (get_scaled_computation_cost_at): New function.
1320
1321 2016-05-30 Alexander Monakov <amonakov@ispras.ru>
1322 Marc Glisse <marc.glisse@inria.fr>
1323
1324 PR tree-optimization/71289
1325 * match.pd (-1 / B < A, A > -1 / B): New transformations.
1326
1327 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
1328
1329 * tree-vect-loop.c (vect_transform_loop): Update likely bounds.
1330
1331 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
1332
1333 * tree-ssa-loop-ivcanon.c (try_peel_loop): Correctly set wont_exit
1334 for peeled copies; avoid underflow when updating estimates; correctly
1335 scale loop profile.
1336
1337 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
1338
1339 * tree-ssa-reassoc.ci (swap_ops_for_binary_stmt): Fix typo from commit
1340 r236875. Corrected oe3 to oe2 as obvious.
1341
1342 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
1343
1344 PR middle-end/71269
1345 PR middle-end/71252
1346 * tree-ssa-reassoc.c (insert_stmt_before_use): Use find_insert_point so
1347 that inserted stmt will not dominate stmts that defines its operand.
1348 (rewrite_expr_tree): Add stmt_to_insert before adding the use stmt.
1349 (rewrite_expr_tree_parallel): Likewise.
1350
1351 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
1352
1353 PR middle-end/71252
1354 * tree-ssa-reassoc.c (swap_ops_for_binary_stmt): Fix swap such that
1355 all fields including stmt_to_insert are swapped.
1356
1357 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
1358
1359 * predict.h (force_edge_cold): Declare.
1360 * predict.c (force_edge_cold): New function.
1361 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Fix profile
1362 updating.
1363 (canonicalize_loop_induction_variables): Fix formating.
1364
1365 2016-05-30 Eric Botcazou <ebotcazou@adacore.com>
1366
1367 * config/visium/visium.c (visium_split_double_add): Minor tweaks.
1368 (visium_expand_copysign): Use gen_int_mode directly.
1369 (visium_compute_frame_size): Minor tweaks.
1370
1371 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
1372
1373 * tree-vect-loop.c (vect_analyze_loop_2): Use
1374 likely_max_stmt_executions_int.
1375
1376 2016-05-30 Tom de Vries <tom@codesourcery.com>
1377
1378 PR tree-optimization/69067
1379 * graphite-isl-ast-to-gimple.c (get_def_bb_for_const): Remove assert.
1380
1381 2016-05-29 Uros Bizjak <ubizjak@gmail.com>
1382
1383 PR target/71245
1384 * config/i386/sync.md (define_peephole2 atomic_storedi_fpu):
1385 New peepholes to remove unneeded fild/fistp pairs.
1386 (define_peephole2 atomic_loaddi_fpu): Ditto.
1387
1388 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
1389
1390 * predict.c (maybe_hot_frequency_p): Avoid division.
1391
1392 2016-05-28 Gerald Pfeifer <gerald@pfeifer.com>
1393
1394 * doc/install.texi: Use https for shop.fsf.org.
1395
1396 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
1397
1398 * tree-ssa-loop-ivopts.c (estimated_stmt_executions_int): Use
1399 likely_max_stmt_executions_int.
1400
1401 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
1402
1403 * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
1404 likely_max_stmt_executions_int.
1405
1406 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
1407
1408 * profile.c (compute_branch_probabilities): Do not report hitrates
1409 here.
1410 (branch_prob): Report hitrates here.
1411 * predict.c (gimple_predict_edge): Do not assert profile status;
1412 fix formatting issues.
1413
1414 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
1415
1416 * predict.c (edge_predicted_by_p): New function.
1417 (predict_paths_for_bb): Do not put multiple predictions of the same type
1418 on one edge.
1419
1420 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
1421
1422 * tree-ssa-loop-niter.c (number_of_iterations_exit): Revert accidental
1423 commit.
1424
1425 2016-05-28 Alan Modra <amodra@gmail.com>
1426
1427 * dominance.c (verify_dominators): Don't segfault on NULL imm_bb.
1428
1429 2016-05-28 Alan Modra <amodra@gmail.com>
1430
1431 PR rtl-optimization/71275
1432 * ira.c (ira): Free dominance info.
1433
1434 2016-05-27 Gerald Pfeifer <gerald@pfeifer.com>
1435
1436 * doc/sourcebuild.texi: New address for upstream Go repository.
1437
1438 2016-05-27 Thomas Preud'homme <thomas.preudhomme@arm.com>
1439
1440 * config/arm/arm.h (TARGET_ARM_V6M): Remove.
1441 (TARGET_ARM_V7M): Likewise.
1442
1443 2016-05-26 Jeff Law <law@redhat.com>
1444
1445 * tree-ssa-threadedge.c: Remove include of tree-ssa-threadbackward.h.
1446 (thread_across_edge): Remove calls to find_jump_threads_backwards.
1447 * passes.def: Add jump threading passes before DOM/VRP.
1448 * tree-ssa-threadbackward.c (find_jump_threads_backwards): Change
1449 argument to a basic block from an edge. Remove tests which are
1450 handled elsewhere.
1451 (pass_data_thread_jumps, class pass_thread_jumps): New.
1452 (pass_thread_jumps::gate, pass_thread_jumps::execute): New.
1453 (make_pass_thread_jumps): Likewise.
1454 * tree-pass.h (make_pass_thread_jumps): Declare.
1455
1456 2016-05-27 Eric Botcazou <ebotcazou@adacore.com>
1457
1458 * config/visium/visium-protos.h (split_double_move): Rename into...
1459 (visium_split_double_move): ...this.
1460 (visium_split_double_add): Declare.
1461 * config/visium/visium.c (split_double_move): Rename into...
1462 (visium_split_double_move): ...this.
1463 (visium_split_double_add): New function.
1464 (visium_expand_copysign): Renumber operands for consistency.
1465 * config/visium/visium.md (DImode move splitter): Adjust to renaming.
1466 (DFmode move splitter): Likewise.
1467 (*addi3_insn): Split by means of visium_split_double_add.
1468 (*adddi3_insn_flags): Delete.
1469 (*plus_plus_sltu<subst_arith>): New insn.
1470 (*subdi3_insn): Split by means of visium_split_double_add.
1471 (subdi3_insn_flags): Delete.
1472 (*minus_minus_sltu<subst_arith>): New insn.
1473 (*negdi2_insn): Split by means of visium_split_double_add.
1474 (*negdi2_insn_flags): Delete.
1475
1476 2016-05-27 Ulrich Weigand <uweigand@de.ibm.com>
1477
1478 * configure.ac: Treat a --with-headers option without argument
1479 the same as the default (i.e. consult sys-include directory).
1480 * configure: Regenerate.
1481
1482 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1483
1484 * config/aarch64/aarch64.c (aarch64_fusion_enabled_p): New function.
1485 * config/aarch64/aarch64-protos.h (aarch64_fusion_enabled_p): Declare
1486 prototype.
1487 * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aesmc_op>v16qi):
1488 Add "=w,0" alternative. Enable it when AES/AESMC fusion is enabled.
1489
1490 2016-05-27 Jiong Wang <jiong.wang@arm.com>
1491
1492 PR target/63596
1493 * config/aarch64/aarch64.c (aarch64_expand_builtin_va_start): Honor
1494 tree-stdarg analysis results.
1495 (aarch64_setup_incoming_varargs): Likewise.
1496
1497 2016-05-27 Jiong Wang <jiong.wang@arm.com>
1498
1499 * config/aarch64/aarch64.c (aarch64_build_builtin_va_list): Initialize
1500 va_list_gpr_counter_field and va_list_fpr_counter_field.
1501
1502 2016-05-27 Wilco Dijkstra <wdijkstr@arm.com>
1503
1504 PR67609
1505 * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Remove.
1506 * config/aarch64/aarch64.c
1507 (aarch64_cannot_change_mode_class): Remove function.
1508 * config/aarch64/aarch64-protos.h
1509 (aarch64_cannot_change_mode_class): Remove.
1510
1511 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
1512
1513 * cfgloop.c (record_niter_bound): Record likely upper bounds.
1514 (likely_max_stmt_executions_int, get_likely_max_loop_iterations,
1515 get_likely_max_loop_iterations_int): New.
1516 * cfgloop.h (struct loop): Add nb_iterations_likely_upper_bound,
1517 any_likely_upper_bound.
1518 (get_likely_max_loop_iterations_int, get_likely_max_loop_iterations):
1519 Declare.
1520 * cfgloopmanip.c (copy_loop_info): Copy likely upper bounds.
1521 * loop-unroll.c (unroll_loop_constant_iterations): Update likely
1522 upper bound.
1523 (unroll_loop_constant_iterations): Likewise.
1524 (unroll_loop_runtime_iterations): Likewise.
1525 * lto-streamer-in.c (input_cfg): Stream likely upper bounds.
1526 * lto-streamer-out.c (output_cfg): Likewise.
1527 * tree-ssa-loop-ivcanon.c (try_peel_loop): Update likely upper
1528 bounds.
1529 (canonicalize_loop_induction_variables): Dump likely upper bounds.
1530 * tree-ssa-loop-niter.c (record_estimate): Record likely upper bounds.
1531 (likely_max_loop_iterations): New.
1532 (likely_max_loop_iterations_int): New.
1533 (likely_max_stmt_executions): New.
1534 * tree-ssa-loop-niter.h (likely_max_loop_iterations,
1535 likely_max_loop_iterations_int, likely_max_stmt_executions_int,
1536 likely_max_stmt_executions): Declare.
1537
1538 2016-05-27 Marek Polacek <polacek@redhat.com>
1539
1540 PR middle-end/71308
1541 * gimple-fold.c (gimple_fold_call): Check that LHS is not null.
1542
1543 2016-05-27 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1544
1545 * config/s390/s390.md (2x risbg splitters): Use
1546 reg_overlap_mentioned_p instead of rtx_equal_p.
1547
1548 2016-05-27 Dominik Vogt <vogt@linux.vnet.ibm.com>
1549
1550 * combine.c (make_compound_operation): Take known zero bits into
1551 account when checking for possible zero_extend.
1552
1553 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1554
1555 * config/aarch64/aarch64.md (ashl<mode>3, SHORT modes):
1556 Use const_int_operand for operand 2 predicate. Simplify expand code
1557 as a result.
1558
1559 2016-05-27 Ilya Enkovich <ilya.enkovich@intel.com>
1560
1561 PR middle-end/71279
1562 * fold-const.c (fold_ternary_loc): Don't fold VEC_COND_EXPR
1563 into comparison.
1564
1565 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1566
1567 * config/aarch64/aarch64-modes.def (CC_ZESWP, CC_SESWP): Delete.
1568 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Remove condition
1569 that returns CC_SESWPmode and CC_ZESWPmode.
1570 (aarch64_get_condition_code_1): Remove handling of CC_SESWPmode
1571 and CC_SESWPmode.
1572 (aarch64_rtx_costs): Likewise.
1573
1574 2016-05-26 Michael Meissner <meissner@linux.vnet.ibm.com>
1575
1576 * config/rs6000/rs6000.c (rs6000_emit_p9_fp_minmax): New function
1577 for ISA 3.0 min/max support.
1578 (rs6000_emit_p9_fp_cmove): New function for ISA 3.0 floating point
1579 conditional move support.
1580 (rs6000_emit_cmove): Call rs6000_emit_p9_fp_minmax and
1581 rs6000_emit_p9_fp_cmove if the ISA 3.0 instructions are
1582 available.
1583 * config/rs6000/rs6000.md (SFDF2): New iterator to allow doing
1584 conditional moves where the comparison type is different from move
1585 type.
1586 (fp_minmax): New code iterator for smin/smax.
1587 (minmax): New code attributes for min/max.
1588 (SMINMAX): Likewise.
1589 (smax<mode>3): Combine min, max insns into one insn using the
1590 fp_minmax code iterator. Add support for ISA 3.0 min/max
1591 instructions that don't need -ffast-math.
1592 (s<minmax><mode>3): Likewise.
1593 (smax<mode>3_vsx): Likewise.
1594 (smin<mode>3): Likewise.
1595 (s<minmax><mode>3_vsx): Likewise.
1596 (smin<mode>3_vsx): Likewise.
1597 (pre-VSX min/max splitters): Likewise.
1598 (s<minmax><mode>3_fpr): Likewise.
1599 (movsfcc): Rewrite floating point conditional moves to combine
1600 SFmode/DFmode into a single insn.
1601 (mov<mode>cc): Likewise.
1602 (movdfcc): Likewise.
1603 (fselsfsf4): Combine FSEL cases into a single insn, using SFDF and
1604 SFDF2 iterators to handle all combinations.
1605 (fseldfsf4): Likewise.
1606 (fsel<SFDF:mode><SFDF2:mode>4): Likewise.
1607 (fseldfdf4): Likewise.
1608 (fselsfdf4): Likewise.
1609 (mov<SFDF:mode><SFDF2:mode>cc_p9): Add support for the ISA 3.0
1610 comparison instructions that set a 0/-1 mask, and use it for
1611 floating point conditional move via XXSEL.
1612 (fpmask<mode>): Likewise.
1613 (xxsel<mode>): Likewise.
1614 * config/rs6000/predicates.md (min_max_operator): Delete, no
1615 longer used.
1616 (fpmask_comparison_operaton): New insn for ISA 3.0 comparison
1617 instructions that generate a 0/-1 mask for use with XXSEL.
1618 * config/rs6000/rs6000.h (TARGET_MINMAX_SF): New helper macros to
1619 say whether floating point min/max is available, either through
1620 FSEL, ISA 2.06 min/max, and ISA 3.0 min/max instrucitons.
1621 (TARGET_MINMAX_DF): Likewise.
1622
1623 2016-05-27 Alan Modra <amodra@gmail.com>
1624
1625 PR rtl-optimization/71275
1626 * ira.c (ira): Call loop_optimizer_init to set up bb_loop_depth
1627 for update_equiv_regs and combine_and_move_insns.
1628
1629 2016-05-26 Uros Bizjak <ubizjak@gmail.com>
1630
1631 * config/i386/i386.md (*movqi_internal) <attr "isa">: Use
1632 if_then_else or cond RTXes to calculate attribute value.
1633 * config/i386/mmx.md (*vec_extractv2sf_1) <attr "prefix_rep">: Ditto.
1634 <attr "length_immediate>: Ditto.
1635 (*vec_extractv2sf_1) <attr "length_immediate">: Ditto.
1636 * config/i386/sse.md (sse_loadlps) <attr "length_immediate">: Ditto.
1637 (*vec_concatv2sf_sse4_1) <attr "isa">: Ditto.
1638 <attr "type">: Ditto.
1639 <attr "prefix_data16">: Ditto.
1640 <attr "prefix_extra">: Ditto.
1641 <attr "length_immediate">: Ditto.
1642 <attr "prefix">: Ditto.
1643 (vec_set<mode>_0) <attr "isa">: Ditto.
1644 <attr "prefix_extra">: Ditto.
1645 <attr "length_immediate">: Ditto.
1646 <attr "prefix">: Ditto.
1647 (*vec_interleave_highv2df) <attr "prefix_data16">: Ditto.
1648 (*vec_interleave_lowv2df) <attr "prefix_data16">: Ditto.
1649 (sse2_storelpd) <attr "prefix_data16">: Ditto.
1650 (sse2_loadhpd) <attr "prefix_data16">: Ditto.
1651 (sse2_loadlpd) <attr "prefix_data16">: Ditto.
1652 <attr "length_immediate">: Ditto.
1653 <attr "prefix">: Ditto.
1654 (sse2_movsd) <attr "length_immediate">: Ditto.
1655 <attr "prefix">: Ditto.
1656 (vec_concatv2df) <attr "isa">: Ditto.
1657 <attr "prefix">: Ditto.
1658 (*vec_extractv4si) <attr "prefix_extra">: Ditto.
1659 (*vec_extractv2di_1) <attr "isa">: Ditto.
1660 <attr "type">: Ditto.
1661 <attr "length_immediate">: Ditto.
1662 <attr "prefix_rex">: Ditto.
1663 <attr "prefix_extra">: Ditto.
1664 (*vec_concatv2si_sse4_1) <attr "type">: Ditto.
1665 <attr "prefix_extra">: Ditto.
1666 <attr "length_immediate">: Ditto.
1667 (vec_concatv2di) <attr "isa">: Ditto.
1668 <attr "prefix_extra">: Ditto.
1669 <attr "length_immediate">: Ditto.
1670 <attr "prefix">: Ditto.
1671
1672 2016-05-26 Martin Liska <mliska@suse.cz>
1673
1674 * tree-ssa-loop-ivopts.c (comp_cost::infinite_cost_p): New
1675 function.
1676 (operator+): Likewise.
1677 (operator-): Likewise.
1678 (comp_cost::operator+=): Likewise.
1679 (comp_cost::operator-=): Likewise.
1680 (comp_cost::operator/=): Likewise.
1681 (comp_cost::operator*=): Likewise.
1682 (operator<): Likewise.
1683 (operator==): Likewise.
1684 (operator<=): Likewise.
1685 (new_cost): Remove.
1686 (infinite_cost_p): Likewise.
1687 (add_costs): Likewise.
1688 (sub_costs): Likewise.
1689 (compare_costs): Likewise.
1690 (set_group_iv_cost): Use the newly introduced functions.
1691 (get_address_cost): Likewise.
1692 (get_shiftadd_cost): Likewise.
1693 (force_expr_to_var_cost): Likewise.
1694 (split_address_cost): Likewise.
1695 (ptr_difference_cost): Likewise.
1696 (difference_cost): Likewise.
1697 (get_computation_cost_at): Likewise.
1698 (determine_group_iv_cost_generic): Likewise.
1699 (determine_group_iv_cost_address): Likewise.
1700 (determine_group_iv_cost_cond): Likewise.
1701 (autoinc_possible_for_pair): Likewise.
1702 (determine_group_iv_costs): Likewise.
1703 (cheaper_cost_pair): Likewise.
1704 (iv_ca_recount_cost): Likewise.
1705 (iv_ca_set_no_cp): Likewise.
1706 (iv_ca_set_cp): Likewise.
1707 (iv_ca_cost): Likewise.
1708 (iv_ca_new): Likewise.
1709 (iv_ca_dump): Likewise.
1710 (iv_ca_narrow): Likewise.
1711 (iv_ca_prune): Likewise.
1712 (iv_ca_replace): Likewise.
1713 (try_add_cand_for): Likewise.
1714 (try_improve_iv_set): Likewise.
1715 (find_optimal_iv_set): Likewise.
1716
1717 2016-05-26 Richard Sandiford <richard.sandiford@arm.com>
1718
1719 * tree-ssa-loop-ivopts.c (loop_body_includes_call): Don't assume
1720 that internal functions will clobber all caller-saved registers.
1721
1722 2016-05-26 Wilco Dijkstra <wdijkstr@arm.com>
1723
1724 * config/aarch64/aarch64.c (aarch64_case_values_threshold):
1725 Return a better case_values_threshold when optimizing.
1726
1727 2016-05-26 Wilco Dijkstra <wdijkstr@arm.com>
1728
1729 * config/aarch64/aarch64-simd.md (aarch64_combinez):
1730 Add ? to integer variant.
1731 (aarch64_combinez_be): Likewise.
1732
1733 2016-05-26 Jakub Jelinek <jakub@redhat.com>
1734
1735 * config/i386/sse.md (*vcvtps2ph_store<mask_name>): Use v constraint
1736 instead of x constraint.
1737 (vcvtps2ph256<mask_name>): Likewise.
1738
1739 * config/i386/sse.md (*ssse3_palignr<mode>_perm): Add avx512bw
1740 alternative. Formatting fix.
1741
1742 * config/i386/sse.md
1743 (<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Rename
1744 to ...
1745 (avx512vl_shuf_<shuffletype>32x4_1<mask_name>): ... this.
1746 (*avx_vperm_broadcast_v4sf): Use v constraint instead of x. Use
1747 maybe_evex prefix instead of vex.
1748 (*avx_vperm_broadcast_<mode>): Use v constraint instead of x. Handle
1749 EXT_REX_SSE_REG_P (op0) case in the splitter.
1750
1751 2016-05-25 Jeff Law <law@redhat.com>
1752
1753 PR tree-optimization/71272
1754 * tree-ssa-threadbackward.c (convert_and_register_jump_thread_path):
1755 Update comments. Add test for empty path.
1756
1757 2016-05-25 Bill Seurer <seurer@linux.vnet.ibm.com>
1758
1759 * config/rs6000/altivec.h (vec_cmpne): Add #define for vec_cmpne.
1760 * config/rs6000/rs6000-builtin.def (vec_cmpne): Add vec_cmpne as a
1761 special case builtin.
1762 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
1763 code for ALTIVEC_BUILTIN_VEC_CMPNE.
1764 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
1765 for __builtin_vec_cmpne.
1766
1767 2016-05-25 Eric Botcazou <ebotcazou@adacore.com>
1768
1769 * tree-ssa-phiopt.c (factor_out_conditional_conversion): Remove
1770 redundant test and bail out if the type of the new operand is not
1771 a GIMPLE register type after stripping a VIEW_CONVERT_EXPR.
1772
1773 2016-05-25 Uros Bizjak <ubizjak@gmail.com>
1774
1775 * config/i386/i386.opt (ix86_target_flags_explicit): Remove.
1776 (x_ix86_target_flags_explicit): Remove.
1777 * config/i386/i386.c (ix86_function_specific_save): Do not copy
1778 x_ix86_target_flags_explicit.
1779 (ix86_function_specific_restore): Ditto.
1780
1781 2016-05-25 Uros Bizjak <ubizjak@gmail.com>
1782 H.J. Lu <hongjiu.lu@intel.com>
1783
1784 PR target/70738
1785 * common/config/i386/i386-common.c
1786 (OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): New.
1787 (ix86_handle_option) <case OPT_mgeneral_regs_only>: Disable
1788 MPX, MMX, SSE and x87 instructions for -mgeneral-regs-only.
1789 * config/i386/i386.opt (ix86_target_flags): Add new Variable.
1790 (-mgeneral-regs-only): Add new option.
1791 * config/i386/i386.c (ix86_option_override_internal): Don't enable
1792 x87 instructions if only general registers are allowed.
1793 (ix86_target_string): Add ix86_flags argument. Handle additional
1794 flags options through ix86_flags argument. Update all callers.
1795 * doc/invoke.texi: Document -mgeneral-regs-only.
1796
1797 2016-05-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1798
1799 PR rtl-optimization/66940
1800 * ifcvt.c (noce_get_alt_condition): Check that incrementing or
1801 decrementing desired_val will not overflow before performing these
1802 operations.
1803
1804 2016-05-25 Ilya Verbin <ilya.verbin@intel.com>
1805
1806 * config/i386/i386-builtin-types.def: Add V16SI_FTYPE_V16SF,
1807 V8DF_FTYPE_V8DF_ROUND, V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND.
1808 * config/i386/i386.c (enum ix86_builtins): Add
1809 IX86_BUILTIN_CVTPS2DQ512_MASK, IX86_BUILTIN_FLOORPS512,
1810 IX86_BUILTIN_FLOORPD512, IX86_BUILTIN_CEILPS512, IX86_BUILTIN_CEILPD512,
1811 IX86_BUILTIN_TRUNCPS512, IX86_BUILTIN_TRUNCPD512,
1812 IX86_BUILTIN_CVTPS2DQ512, IX86_BUILTIN_VEC_PACK_SFIX512,
1813 IX86_BUILTIN_FLOORPS_SFIX512, IX86_BUILTIN_CEILPS_SFIX512,
1814 IX86_BUILTIN_ROUNDPS_AZ_SFIX512.
1815 (builtin_description bdesc_args): Add __builtin_ia32_floorps512,
1816 __builtin_ia32_ceilps512, __builtin_ia32_truncps512,
1817 __builtin_ia32_floorpd512, __builtin_ia32_ceilpd512,
1818 __builtin_ia32_truncpd512, __builtin_ia32_cvtps2dq512,
1819 __builtin_ia32_vec_pack_sfix512, __builtin_ia32_roundps_az_sfix512,
1820 __builtin_ia32_floorps_sfix512, __builtin_ia32_ceilps_sfix512.
1821 Change IX86_BUILTIN_CVTPS2DQ512 to IX86_BUILTIN_CVTPS2DQ512_MASK for
1822 __builtin_ia32_cvtps2dq512_mask.
1823 (ix86_expand_args_builtin): Handle V8DF_FTYPE_V8DF_ROUND,
1824 V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF.
1825 (ix86_builtin_vectorized_function): Handle builtins mentioned above.
1826 * config/i386/sse.md
1827 (<mask_codefor>avx512f_fix_notruncv16sfv16si<mask_name><round_name>):
1828 Rename to ...
1829 (avx512f_fix_notruncv16sfv16si<mask_name><round_name>): ... this.
1830 (<mask_codefor>avx512f_cvtpd2dq512<mask_name><round_name>): Rename
1831 to ...
1832 (avx512f_cvtpd2dq512<mask_name><round_name>): ... this.
1833 (avx512f_vec_pack_sfix_v8df): New define_expand.
1834 (avx512f_roundpd512): Rename to ...
1835 (avx512f_round<castmode>512): ... this. Change iterator.
1836 (avx512f_roundps512_sfix): New define_expand.
1837 (round<mode>2_sfix): Change iterator.
1838
1839 2016-05-25 Nick Clifton <nickc@redhat.com>
1840
1841 * config/msp430/msp430.c (msp430_attr): Produce an error if a
1842 static interrupt handler is detected.
1843 * config/msp430/msp430.h (LIB_SPEC): Do not use msp430.ld as the
1844 default linker script.
1845 * config/msp430/msp430.md (movpsihi2_lo): New pattern for loading
1846 the low part of a symbolic pointer.
1847
1848 2016-05-25 Richard Biener <rguenther@suse.de>
1849
1850 PR tree-optimization/71261
1851 * tree-if-conv.c (ifcvt_split_def_stmt): Walk uses on the
1852 interesting stmt instead of immediate uses when looking
1853 for the use operand to replace.
1854
1855 2016-05-25 Martin Liska <mliska@suse.cz>
1856
1857 * ipa-inline.c (edge_badness): Use 'w/' instead of 'w'.
1858
1859 2016-05-25 Richard Biener <rguenther@suse.de>
1860
1861 PR tree-optimization/71264
1862 * tree-vect-stmts.c (vect_init_vector): Properly deal with
1863 vector type val.
1864
1865 2016-05-25 Martin Liska <mliska@suse.cz>
1866
1867 PR tree-optimization/71239
1868 * tree.c (array_at_struct_end_p): Do not call operand_equal_p
1869 if DECL_SIZE is NULL.
1870
1871 2016-05-25 Richard Biener <rguenther@suse.de>
1872
1873 * timevar.def (TV_TREE_LOOP_IFCVT): Add.
1874 * tree-if-conv.c (pass_data_if_conversion): Use it.
1875
1876 2016-05-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
1877
1878 * cgraph.c (cgraph_node::get_availability): Fix typo in comment.
1879 * symtab.c (symtab_node::binds_to_current_def_p): Likewise.
1880 * varpool.c (varpool_node::get_availability): Likewise.
1881
1882 2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
1883
1884 * config/rs6000/altivec.md (VNEG iterator): New iterator for
1885 VNEGW/VNEGD instructions.
1886 (p9_neg<mode>2): New insns for ISA 3.0 VNEGW/VNEGD.
1887 (neg<mode>2): Add expander for V2DImode added in ISA 2.07, and
1888 support for ISA 3.0 VNEGW/VNEGD instructions.
1889
1890 2016-05-24 Cesar Philippidis <cesar@codesourcery.com>
1891
1892 * gimplify.c (omp_notice_variable): Use zero-length arrays for data
1893 pointers inside OACC_DATA regions.
1894 (gimplify_scan_omp_clauses): Prune firstprivate clause associated
1895 with OACC_DATA, OACC_ENTER_DATA and OACC_EXIT data regions.
1896 (gimplify_adjust_omp_clauses): Fix typo in comment.
1897
1898 2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
1899
1900 * config/rs6000/altivec.md (VParity): New mode iterator for vector
1901 parity built-in functions.
1902 (p9v_ctz<mode>2): Add support for ISA 3.0 vector count trailing
1903 zeros.
1904 (p9v_parity<mode>2): Likewise.
1905 * config/rs6000/vector.md (VEC_IP): New mode iterator for vector
1906 parity.
1907 (ctz<mode>2): ISA 3.0 expander for vector count trailing zeros.
1908 (parity<mode>2): ISA 3.0 expander for vector parity.
1909 * config/rs6000/rs6000-builtin.def (BU_P9_MISC_1): New macros for
1910 power9 built-ins.
1911 (BU_P9_64BIT_MISC_0): Likewise.
1912 (BU_P9_MISC_0): Likewise.
1913 (BU_P9V_AV_1): Likewise.
1914 (BU_P9V_AV_2): Likewise.
1915 (BU_P9V_AV_3): Likewise.
1916 (BU_P9V_AV_P): Likewise.
1917 (BU_P9V_VSX_1): Likewise.
1918 (BU_P9V_OVERLOAD_1): Likewise.
1919 (BU_P9V_OVERLOAD_2): Likewise.
1920 (BU_P9V_OVERLOAD_3): Likewise.
1921 (VCTZB): Add vector count trailing zeros support.
1922 (VCTZH): Likewise.
1923 (VCTZW): Likewise.
1924 (VCTZD): Likewise.
1925 (VPRTYBD): Add vector parity support.
1926 (VPRTYBQ): Likewise.
1927 (VPRTYBW): Likewise.
1928 (VCTZ): Add overloaded vector count trailing zeros support.
1929 (VPRTYB): Add overloaded vector parity support.
1930 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
1931 overloaded vector count trailing zeros and parity instructions.
1932 * config/rs6000/rs6000.md (wd mode attribute): Add V1TI and TI for
1933 vector parity support.
1934 * config/rs6000/altivec.h (vec_vctz): Add ISA 3.0 vector count
1935 trailing zeros support.
1936 (vec_cntlz): Likewise.
1937 (vec_vctzb): Likewise.
1938 (vec_vctzd): Likewise.
1939 (vec_vctzh): Likewise.
1940 (vec_vctzw): Likewise.
1941 (vec_vprtyb): Add ISA 3.0 vector parity support.
1942 (vec_vprtybd): Likewise.
1943 (vec_vprtybw): Likewise.
1944 (vec_vprtybq): Likewise.
1945 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
1946 the ISA 3.0 vector count trailing zeros and vector parity built-in
1947 functions.
1948
1949 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
1950
1951 * tree-ssa-reassoc.c (sort_by_operand_rank): Skip checking gimple_bb
1952 when there is stmt_to_insert.
1953
1954 2016-05-24 Martin Sebor <msebor@redhat.com>
1955
1956 PR c++/71147
1957 * tree.h (complete_or_array_type_p): New inline function.
1958
1959 2016-05-24 Jakub Jelinek <jakub@redhat.com>
1960
1961 * config/i386/i386.h (TARGET_AVOID_4BYTE_PREFIXES): Define.
1962 * config/i386/constraints.md (Yr): Test TARGET_AVOID_4BYTE_PREFIXES
1963 rather than X86_TUNE_AVOID_4BYTE_PREFIXES.
1964
1965 * config/i386/sse.md (<sse4_1>_round<ssemodesuffix><avxsizesuffix>):
1966 Limit 1st alternative to noavx isa, split 2nd alternative into one
1967 noavx and one avx alternative, use *x and Bm in the former and
1968 x and m in the latter.
1969
1970 * config/i386/sse.md (vec_set<mode>_0): Use sse4_noavx isa instead
1971 of sse4 for the first alternative, drop %v from the template
1972 and d operand modifier. Split second alternative into one sse4_noavx
1973 and one avx alternative, use *x instead of *v in the former and v
1974 instead of *v in the latter.
1975 (*sse4_1_extractps): Use noavx isa instead of * for the first
1976 alternative, drop %v from the template. Split second alternative into
1977 one noavx and one avx alternative, use *x instead of *v in the
1978 former and v instead of *v in the latter.
1979 (<vi8_sse4_1_avx2_avx512>_movntdqa): Guard the first 2 alternatives
1980 with noavx and the last one with avx.
1981 (sse4_1_phminposuw): Guard first alternative with noavx isa,
1982 split the second one into one noavx and one avx alternative,
1983 use *x and Bm in the former and x and m in the latter one.
1984 (<sse4_1>_ptest<mode>): Use noavx instead of * for the first two
1985 alternatives.
1986
1987 * config/i386/sse.md (sse4_1_<code>v8qiv8hi2<mask_name>): Limit
1988 first two alternatives to noavx, use *x instead of *v in the second
1989 one, add avx alternative without *.
1990 (sse4_1_<code>v4qiv4si2<mask_name>, sse4_1_<code>v4hiv4si2<mask_name>,
1991 sse4_1_<code>v2qiv2di2<mask_name>, sse4_1_<code>v2hiv2di2<mask_name>,
1992 sse4_1_<code>v2siv2di2<mask_name>): Likewise.
1993
1994 2016-05-24 Jeff Law <law@redhat.com>
1995
1996 * tree-ssa-threadbackwards.c (convert_and_register_jump_thread_path):
1997 New function, extracted from...
1998 (fsm_find_control_statement_thread_paths): Here. Use the new function.
1999 Allow simple copies and constant initializations in the SSA chain.
2000
2001 2016-05-24 Marek Polacek <polacek@redhat.com>
2002
2003 PR c/71249
2004 * gimplify.c (gimplify_switch_expr): Look into the innermost lexical
2005 scope.
2006
2007 2016-05-24 Jakub Jelinek <jakub@redhat.com>
2008
2009 PR c++/71257
2010 * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
2011 SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
2012 SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP. Add
2013 SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP and
2014 SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP cases explicitly.
2015
2016 2016-05-24 Richard Biener <rguenther@suse.de>
2017
2018 PR tree-optimization/71240
2019 * tree-ssa-math-opts.c (init_symbolic_number): Verify the source
2020 has integral type.
2021
2022 2016-05-24 Richard Biener <rguenther@suse.de>
2023
2024 PR tree-optimization/71230
2025 * tree-ssa-reassoc.c (zero_one_operation): Handle negate special ops.
2026
2027 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
2028
2029 * tree-vectorizer.h (vectorizable_comparison): Delete.
2030 * tree-vect-loop.c (vectorizable_reduction): Remove redundant
2031 PURE_SLP_STMT check.
2032 * tree-vect-stmts.c (vectorizable_call): Likewise.
2033 (vectorizable_simd_clone_call): Likewise.
2034 (vectorizable_conversion): Likewise.
2035 (vectorizable_assignment): Likewise.
2036 (vectorizable_shift): Likewise.
2037 (vectorizable_operation): Likewise.
2038 (vectorizable_load): Likewise.
2039 (vectorizable_condition): Likewise.
2040 (vectorizable_store): Likewise. Assert that we don't have
2041 hybrid SLP.
2042 (vectorizable_comparison): Make static. Remove redundant
2043 PURE_SLP_STMT check.
2044 (vect_transform_stmt): Assert that we always have an slp_node
2045 if PURE_SLP_STMT.
2046
2047 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2048
2049 * config/arm/neon.md (ashldi3_neon): Replace comparison of INTVAL of
2050 operands[2] against 1 with comparison against CONST1_RTX.
2051 (<shift>di3_neon): Likewise.
2052 * config/arm/predicates.md (const0_operand): Replace with comparison
2053 against CONST0_RTX.
2054
2055 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2056
2057 * config/arm/arm.md (ashldi3): Replace comparison of INTVAL of
2058 operands[2] against 1 with comparison against CONST1_RTX.
2059 (ashrdi3): Likewise.
2060 (lshrdi3): Likewise.
2061 (ashlsi3): Replace cast of INTVAL to unsigned HOST_WIDE_INT with
2062 UINTVAL.
2063 (ashrsi3): Likewise.
2064 (lshrsi3): Likewise.
2065 (rotrsi3): Likewise.
2066 (define_split above *compareqi_eq0): Likewise.
2067 (define_split above "prologue"): Likewise.
2068 * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
2069 * config/arm/predicates.md (shift_operator): Likewise.
2070 (shift_nomul_operator): Likewise.
2071 (sat_shift_operator): Likewise.
2072 (thumb1_cmp_operand): Likewise.
2073 (const_neon_scalar_shift_amount_operand): Replace manual range
2074 check with IN_RANGE.
2075 * config/arm/thumb1.md (define_peephole2 above *thumb_subdi3):
2076 Replace cast of INTVAL to unsigned HOST_WIDE_INT with UINTVAL.
2077
2078 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2079
2080 * config/arm/arm.md (andsi3): Replace cast of 1 to HOST_WIDE_INT
2081 with HOST_WIDE_INT_1.
2082 (insv): Likewise.
2083 * config/arm/arm.c (optimal_immediate_sequence): Replace cast of
2084 1 to unsigned HOST_WIDE_INT with HOST_WIDE_INT_1U.
2085 (arm_canonicalize_comparison): Likewise.
2086 (thumb1_rtx_costs): Replace cast of 1 to HOST_WIDE_INT with
2087 HOST_WIDE_INT_1.
2088 (thumb1_size_rtx_costs): Likewise.
2089 (vfp_const_double_index): Replace cast of 1 to unsigned
2090 HOST_WIDE_INT with HOST_WIDE_INT_1U.
2091 (get_jump_table_size): Replace cast of 1 to HOST_WIDE_INT with
2092 HOST_WIDE_INT_1.
2093 (arm_asan_shadow_offset): Replace cast of 1 to unsigned
2094 HOST_WIDE_INT with HOST_WIDE_INT_1U.
2095 * config/arm/neon.md (vec_set<mode>): Replace cast of 1 to
2096 HOST_WIDE_INT with HOST_WIDE_INT_1.
2097
2098 2016-05-24 Marek Polacek <polacek@redhat.com>
2099
2100 * tree-cfg.h (should_remove_lhs_p): New predicate.
2101 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
2102 * gimplify.c (gimplify_modify_expr): Likewise.
2103 * tree-cfg.c (verify_gimple_call): Likewise.
2104 * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
2105 * gimple-fold.c: Include "tree-cfg.h".
2106 (gimple_fold_call): Use should_remove_lhs_p.
2107
2108 2016-05-24 Richard Biener <rguenther@suse.de>
2109
2110 PR tree-optimization/71253
2111 * cfganal.h (control_dependences): Make robust against edge
2112 and BB removal.
2113 (control_dependences::control_dependences): Remove edge_list argument.
2114 (control_dependences::get_edge): Remove.
2115 (control_dependences::get_edge_src): Add.
2116 (control_dependences::get_edge_dest): Likewise.
2117 (control_dependences::m_el): Make a vector of edge src/dest index.
2118 * cfganal.c (control_dependences::find_control_dependence): Adjust.
2119 (control_dependences::control_dependences): Likewise.
2120 (control_dependences::~control_dependence): Likewise.
2121 (control_dependences::get_edge): Remove.
2122 (control_dependences::get_edge_src): Add.
2123 (control_dependences::get_edge_dest): Likewise.
2124 * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Use
2125 get_edge_src.
2126 (perform_tree_ssa_dce): Adjust.
2127 * tree-loop-distribution.c (create_edge_for_control_dependence): Use
2128 get_edge_src.
2129 (pass_loop_distribution::execute): Adjust. Do loop destroying
2130 conditional on changed.
2131
2132 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2133
2134 PR target/69857
2135 * config/arm/arm.c (gen_operands_ldrd_strd): Remove bogus early
2136 return. Reindent transformation comment and mention the ARM state
2137 behavior.
2138
2139 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
2140
2141 PR middle-end/71252
2142 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Add stmt_to_insert
2143 after build_and_add_sum creates new use stmt.
2144
2145 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
2146
2147 * tree-vect-stmts.c (vectorizable_load): Reorder checks so that
2148 load_lanes/grouped_load classification comes first. Don't check
2149 whether the vectorization factor is a multiple of the group size
2150 for load_lanes.
2151
2152 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
2153
2154 * tree-vect-data-refs.c (vect_analyze_group_access_1): Set
2155 GROUP_GAP for single-element interleaving.
2156 * tree-vect-stmts.c (vectorizable_load): Remove force_peeling
2157 variable.
2158
2159 2016-05-24 Richard Biener <rguenther@suse.de>
2160
2161 PR middle-end/70434
2162 PR c/69504
2163 * tree-ssa.c (non_rewritable_mem_ref_base): Make sure to mark
2164 bases which are accessed with non-invariant indices.
2165 * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Re-write
2166 constant index ARRAY_REFs of vectors into BIT_FIELD_REFs.
2167
2168 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
2169
2170 PR middle-end/71170
2171 * tree-ssa-reassoc.c (struct operand_entry): Add field stmt_to_insert.
2172 (add_to_ops_vec): Add stmt_to_insert.
2173 (add_repeat_to_ops_vec): Init stmt_to_insert.
2174 (insert_stmt_before_use): New.
2175 (transform_add_to_multiply): Remove mult_stmt insertion and add it
2176 to ops vector.
2177 (get_ops): Init stmt_to_insert.
2178 (maybe_optimize_range_tests): Likewise.
2179 (rewrite_expr_tree): Insert stmt_to_insert before use stmt.
2180 (rewrite_expr_tree_parallel): Likewise.
2181 (reassociate_bb): Likewise.
2182
2183 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
2184
2185 PR target/71201
2186 * config/rs6000/altivec.md (altivec_vperm_<mode>_internal): Drop
2187 ISA 3.0 xxperm fusion alternative.
2188 (altivec_vperm_v8hiv16qi): Likewise.
2189 (altivec_vperm_<mode>_uns_internal): Likewise.
2190 (vperm_v8hiv4si): Likewise.
2191 (vperm_v16qiv8hi): Likewise.
2192
2193 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
2194 Kelvin Nilsen <kelvin@gcc.gnu.org>
2195
2196 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate
2197 vpermr/xxpermr on ISA 3.0.
2198 (altivec_expand_vec_perm_le): Likewise.
2199 * config/rs6000/altivec.md (UNSPEC_VPERMR): New unspec.
2200 (altivec_vpermr_<mode>_internal): Add VPERMR/XXPERMR support for
2201 ISA 3.0.
2202
2203 2016-05-23 Uros Bizjak <ubizjak@gmail.com>
2204
2205 * config/i386/i386.h (IS_STACK_MODE): Enable for
2206 TARGET_MIX_SSE_I387. Rewrite using X87_FLOAT_MODE_P and
2207 SSE_FLOAT_MODE_P macros.
2208 * config/i386/i386.c (ix86_preferred_reload_class): Use
2209 IS_STACK_MODE, INTEGER_CLASS_P, FLOAT_CLASS_P and Q_CLASS_P macros.
2210 Cleanup regclass processing for CONST_DOUBLE_P.
2211 (ix86_preferred_output_reload_class): Use IS_STACK_MODE macro.
2212 (ix86_rtx_costs): Remove redundant TARGET_80387 check
2213 with IS_STACK_MODE macro.
2214 * config/i386/i386.md: Replace SSE_FLOAT_MODE_P (DFmode)
2215 with TARGET_SSE2.
2216 (*movdf_internal): Use IS_STACK_MODE macro.
2217 (*movsf_internal): Ditto.
2218
2219 2016-05-23 Marc Glisse <marc.glisse@inria.fr>
2220
2221 * match.pd (a * (1 << b), ~x & ~y, ~X ^ ~Y, (X ^ Y) ^ Y, ~ (-A),
2222 ~ (A - 1), ~(~X >> Y), ~(~X >>r Y)): Relax constraints.
2223
2224 2016-05-23 Jeff Law <law@redhat.com>
2225
2226 * tree-ssa-threadbackward.c (profitable_jump_thread_path): New function
2227 extracted from ...
2228 (fsm_find_control_statement_thread_paths): Call it.
2229
2230 2016-05-23 Martin Jambor <mjambor@suse.cz>
2231
2232 PR ipa/71234
2233 * ipa-cp.c (ipa_get_indirect_edge_target_1): Only check value of
2234 from_global_constant if t is not NULL.
2235
2236 2016-05-23 Marek Polacek <polacek@redhat.com>
2237
2238 PR c/49859
2239 * common.opt (Wswitch-unreachable): New option.
2240 * doc/invoke.texi: Document -Wswitch-unreachable.
2241 * gimplify.c (gimplify_switch_expr): Implement the -Wswitch-unreachable
2242 warning.
2243
2244 2016-05-23 Bin Cheng <bin.cheng@arm.com>
2245
2246 * tree-ssa-address.c (copy_ref_info): Check NULL TMR_STEP when
2247 TMR_INDEX is non-NULL.
2248
2249 2016-05-23 Richard Biener <rguenther@suse.de>
2250
2251 PR tree-optimization/71230
2252 * tree-ssa-reassoc.c (acceptable_pow_call): Move initial condition...
2253 (try_special_add_to_ops): ... here. Always test for single-use.
2254
2255 2016-05-23 Martin Jambor <mjambor@suse.cz>
2256
2257 * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Create an empty
2258 default block if a PHI node in the original one would be resized.
2259
2260 2016-05-23 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
2261
2262 PR tree-optimization/58135
2263 * tree-vect-slp.c: When group size is not multiple
2264 of vector size, allow splitting of store group at
2265 vector boundary.
2266
2267 2016-05-23 Christophe Lyon <christophe.lyon@linaro.org>
2268
2269 * config/arm/arm_neon.h (vtst_p16, vtstq_p16): New.
2270
2271 2016-05-22 Jakub Jelinek <jakub@redhat.com>
2272
2273 * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
2274 vec_set_hi_<mode><mask_name>): Add && <mask_avx512dq_condition>
2275 condition. For !TARGET_AVX512DQ, emit 32x4 instruction instead
2276 of 64x2.
2277
2278 * config/i386/sse.md (vec_set_lo_v16hi, vec_set_hi_v16hi,
2279 vec_set_lo_v32qi, vec_set_hi_v32qi): Add alternative with
2280 v constraint instead of x and vinserti32x4 insn.
2281
2282 * config/i386/sse.md (i128vldq): New mode iterator.
2283 (avx2_vbroadcasti128_<mode>, avx_vbroadcastf128_<mode>): Add
2284 avx512dq and avx512vl alternatives.
2285
2286 * config/i386/sse.md (avx2_vec_dupv4df): Use v instead of x
2287 constraint, use maybe_evex prefix instead of vex.
2288 (vec_dupv4sf): Use v constraint instead of x for output
2289 operand except for noavx alternative, use Yv constraint
2290 instead of x for input. Use maybe_evex prefix instead of vex.
2291 (*vec_dupv4si): Likewise.
2292 (*vec_dupv2di): Likewise.
2293
2294 2016-05-22 Kugan Vivekanandarajah <kuganv@linaro.org>
2295
2296 PR middle-end/40921
2297 * tree-ssa-reassoc.c (try_special_add_to_ops): New.
2298 (linearize_expr_tree): Call try_special_add_to_ops.
2299 (reassociate_bb): Convert MULT_EXPR by (-1) to NEGATE_EXPR.
2300
2301 2016-05-21 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
2302
2303 * config/avr/avr.c (avr_expand_prologue): Add INCOMING_FRAME_SP_OFFSET
2304 to computed stack_usage.
2305
2306 2016-05-21 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
2307
2308 PR target/71103
2309 * config/avr/avr.md (define_expand "mov<mode>"): If the source
2310 operand is subreg (symbol_ref) then move the symbol ref to register.
2311
2312 2016-05-21 Jan Hubicka <hubicka@ucw.cz>
2313
2314 * tree.c (array_at_struct_end_p): Look through MEM_REF.
2315
2316 2016-05-21 Kugan Vivekanandarajah <kuganv@linaro.org>
2317
2318 PR middle-end/71179
2319 * tree-ssa-reassoc.c (transform_add_to_multiply): Disallow float
2320 VECTOR type.
2321
2322 2016-05-20 Eric Botcazou <ebotcazou@adacore.com>
2323
2324 * tree-vrp.c (compare_values_warnv): Simplify handling of symbolic
2325 ranges by calling get_single_symbol and tidy up. Look more closely
2326 into NAME + CST1 vs CST2 comparisons if type overflow is undefined.
2327
2328 2016-05-20 Jeff Law <law@redhat.com>
2329
2330 * bitmap.c (bitmap_find_bit): Remove useless test.
2331
2332 2016-05-20 Segher Boessenkool <segher@kernel.crashing.org>
2333
2334 * function.c (thread_prologue_and_epilogue_insns): Commit the
2335 insertion of the epilogue.
2336
2337 2016-05-20 Martin Jambor <mjambor@suse.cz>
2338
2339 PR tree-optimization/70884
2340 * tree-sra.c (initialize_constant_pool_replacements): Do not check
2341 should_scalarize_away_bitmap and cannot_scalarize_away_bitmap bits.
2342 (sort_and_splice_var_accesses): Do not consider multiple scalar reads
2343 of constant pool data as a reason for scalarization.
2344
2345 2016-05-20 Eric Botcazou <ebotcazou@adacore.com>
2346
2347 * config/arm/arm.c (arm_expand_prologue): Set the stack usage to 0
2348 for naked functions.
2349 (thumb1_expand_prologue): Likewise.
2350
2351 2016-05-20 Nathan Sidwell <nathan@acm.org>
2352
2353 * config/nvptx/nptx.c (nvptx_option_override): Only set
2354 flag_toplevel_reorder, if not explicitly specified. Set
2355 flag_no_common, unless explicitly specified.
2356
2357 2016-05-20 David Malcolm <dmalcolm@redhat.com>
2358
2359 * calls.c (can_implement_as_sibling_call_p): Mark param
2360 reg_parm_stack_space with ATTRIBUTE_UNUSED.
2361
2362 2016-05-20 Uros Bizjak <ubizjak@gmail.com>
2363
2364 * config/i386/i386.c (ix86_rtx_costs) <case CONST_DOUBLE>:
2365 Use IS_STACK_MODE when calculating cost of standard 80387 constants.
2366 Fallthru to CONST_VECTOR case to calculate cost of standard SSE
2367 constants.
2368 <case CONST_WIDE_INT>: Calculate cost of (MEM (SYMBOL_REF)).
2369 (ix86_legitimate_constant_p): Use CASE_CONST_SCALAR_INT
2370 and CASE_CONST_ANY.
2371
2372 2016-05-20 Cesar Philippidis <cesar@codesourcery.com>
2373
2374 * config/nvptx/nvptx.md (sincossf3): New pattern.
2375
2376 2016-05-20 David Malcolm <dmalcolm@redhat.com>
2377
2378 * calls.c (maybe_complain_about_tail_call): New function.
2379 (initialize_argument_information): Call
2380 maybe_complain_about_tail_call when clearing *may_tailcall.
2381 (can_implement_as_sibling_call_p): Call
2382 maybe_complain_about_tail_call when returning false.
2383 (expand_call): Read CALL_EXPR_MUST_TAIL_CALL and, if set,
2384 ensure try_tail_call is set. Call maybe_complain_about_tail_call
2385 if tail-call optimization fails.
2386 * cfgexpand.c (expand_call_stmt): Initialize
2387 CALL_EXPR_MUST_TAIL_CALL from gimple_call_must_tail_p.
2388 * gimple-pretty-print.c (dump_gimple_call): Dump
2389 gimple_call_must_tail_p.
2390 * gimple.c (gimple_build_call_from_tree): Call
2391 gimple_call_set_must_tail with the value of
2392 CALL_EXPR_MUST_TAIL_CALL.
2393 * gimple.h (enum gf_mask): Add GF_CALL_MUST_TAIL_CALL.
2394 (gimple_call_set_must_tail): New function.
2395 (gimple_call_must_tail_p): New function.
2396 * print-tree.c (print_node): Update printing of TREE_STATIC
2397 to reflect its use for CALL_EXPR_MUST_TAIL_CALL.
2398 * tree-core.h (struct tree_base): Add MUST_TAIL_CALL to the
2399 trailing comment listing applicable flags.
2400 * tree.h (CALL_EXPR_MUST_TAIL_CALL): New macro.
2401
2402 2016-05-20 David Malcolm <dmalcolm@redhat.com>
2403
2404 * calls.c (expand_call): Move "Rest of purposes for tail call
2405 optimizations to fail" to...
2406 (can_implement_as_sibling_call_p): ...this new function, and
2407 split into multiple "if" statements.
2408
2409 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
2410
2411 * cfgloop.h (expected_loop_iterations_unbounded,
2412 expected_loop_iterations): Unconstify.
2413 * cfgloopanal.c (expected_loop_iterations_unbounded): Sanity check the
2414 profile with known upper bound; return 3 when profile is absent.
2415 (expected_loop_iterations): Update.
2416
2417 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
2418
2419 * loop-doloop.c (doloop_optimize): Use get_estimated_loop_iterations_int
2420 and get_max_loop_iterations_int.
2421
2422 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
2423
2424 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can not produce
2425 realistic upper bounds here.
2426
2427 2016-05-20 Jakub Jelinek <jakub@redhat.com>
2428
2429 PR c++/71210
2430 * gimple-fold.c (gimple_fold_call): Do not remove lhs of noreturn
2431 calls if the LHS is variable length or has addressable type.
2432 If targets[0]->decl is a noreturn call with void return type and
2433 zero arguments, adjust fntype and remove lhs in that case.
2434
2435 2016-05-20 Marc Glisse <marc.glisse@inria.fr>
2436
2437 PR tree-optimization/71079
2438 PR tree-optimization/71206
2439 * match.pd ((X ^ Y) ^ (X ^ Z)): Convert the arguments.
2440
2441 2016-05-20 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2442
2443 * tree-vectorizer.c (get_vec_alignment_for_decl): New static function.
2444 (get_vec_alignment_for_array_decl): Likewise.
2445 (get_vec_alignment_for_record_decl): Likewise.
2446 (increase_alignment::execute): Move code to find alignment to
2447 get_vec_alignment_for_array_decl and call get_vec_alignment_for_decl.
2448 (type_align_map): New hash_map.
2449
2450 2016-05-20 Richard Guenther <rguenther@suse.de>
2451
2452 PR tree-optimization/29756
2453 * tree.def (BIT_INSERT_EXPR): New tcc_expression tree code.
2454 * expr.c (expand_expr_real_2): Handle BIT_INSERT_EXPR.
2455 * fold-const.c (operand_equal_p): Likewise.
2456 (fold_ternary_loc): Add constant folding of BIT_INSERT_EXPR.
2457 * gimplify.c (gimplify_expr): Handle BIT_INSERT_EXPR.
2458 * tree-inline.c (estimate_operator_cost): Likewise.
2459 * tree-pretty-print.c (dump_generic_node): Likewise.
2460 * tree-ssa-operands.c (get_expr_operands): Likewise.
2461 * cfgexpand.c (expand_debug_expr): Likewise.
2462 * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
2463 * gimple.c (get_gimple_rhs_num_ops): Handle BIT_INSERT_EXPR.
2464 * tree-cfg.c (verify_gimple_assign_ternary): Verify BIT_INSERT_EXPR.
2465 * tree-ssa.c (non_rewritable_lvalue_p): We can rewrite
2466 vector inserts using BIT_FIELD_REF or MEM_REF on the lhs.
2467 (execute_update_addresses_taken): Do it.
2468
2469 2016-05-20 Richard Biener <rguenther@suse.de>
2470
2471 PR tree-optimization/71185
2472 * tree-ssa-loop-prefetch.c (gather_memory_references): Drop
2473 register operations.
2474
2475 2016-05-20 Richard Biener <rguenther@suse.de>
2476
2477 * tree-if-conv.c (add_bb_predicate_gimplified_stmts): Use
2478 gimple_seq_add_seq_without_update.
2479 (release_bb_predicate): Assert we have no operands to free.
2480 (if_convertible_loop_p_1): Calculate post dominators later.
2481 Do not free BB predicates here.
2482 (combine_blocks): Do not recompute BB predicates.
2483 (version_loop_for_if_conversion): Save BB predicates around
2484 loop versioning.
2485
2486 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org>
2487
2488 * function.c (make_epilogue_seq): Remove epilogue_end parameter.
2489 (thread_prologue_and_epilogue_insns): Remove bb_flags. Restructure
2490 code. Ignore sibcalls on EDGE_IGNORE edges.
2491 * shrink-wrap.c (handle_simple_exit): New function. Set EDGE_IGNORE
2492 on edges for sibcalls that run without prologue. The rest of the
2493 function is combined from...
2494 (fix_fake_fallthrough_edge): ... this, and ...
2495 (try_shrink_wrapping): ... a part of this. Remove the bb_with
2496 function argument, make it a local variable.
2497
2498 2016-05-19 Sandra Loosemore <sandra@codesourcery.com>
2499
2500 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Allow
2501 --disable-sjlj-exceptions for TARGET_BI_ARCH to select DWARF-2 EH
2502 for 32-bit mode and SEH for 64-bit.
2503 * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): Handle
2504 TARGET_64BIT_DEFAULT.
2505
2506 2016-05-19 Ryan Burn <contact@rnburn.com>
2507
2508 * Makefile.in (GTFILES): Add cilk.h and cilk-common.c.
2509 * gengtype.c (open_base_files): Add cilk.h to ifiles.
2510
2511 2016-05-19 Uros Bizjak <ubizjak@gmail.com>
2512
2513 * sched-deps.c (sched_analyze_2) <case TRAP_IF>: Also
2514 force pending loads from memory.
2515
2516 2016-05-19 Kelvin Nilsen <kelvin@gcc.gnu.org>
2517
2518 * config/rs6000/altivec.md (UNSPEC_DARN): New unspec constant.
2519 (UNSPEC_DARN_32): New unspec constant.
2520 (UNSPEC_DARN_RAW): New unspec constant.
2521 (darn_32): New instruction.
2522 (darn_raw): New instruction.
2523 (darn): New instruction.
2524 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_0): Add
2525 support and documentation for this macro.
2526 (BU_P9_MISC_1): New macro definition.
2527 (BU_P9_64BIT_MISC_0): New macro definition.
2528 (BU_P9_MISC_0): New macro definition.
2529 (darn_32): New builtin definition.
2530 (darn_raw): New builtin definition.
2531 (darn): New builtin definition.
2532 * config/rs6000/rs6000.c: Add #define RS6000_BUILTIN_0 and #undef
2533 RS6000_BUILTIN_0 directives to surround each occurrence of
2534 #include "rs6000-builtin.def".
2535 (rs6000_builtin_mask_calculate): Add in the RS6000_BTM_MODULO and
2536 RS6000_BTM_64BIT flags to the returned mask, depending on
2537 configuration.
2538 (def_builtin): Correct an error in the assignments made to the
2539 debugging variable attr_string.
2540 (rs6000_expand_builtin): Add support for no-operand built-in
2541 functions.
2542 (builtin_function_type): Remove fatal_error assertion that is no
2543 longer valid.
2544 (rs6000_common_init_builtins): Add support for no-operand built-in
2545 functions.
2546 * config/rs6000/rs6000.h (RS6000_BTM_MODULO): New macro
2547 definition.
2548 (RS6000_BTM_PURE): Enhance comment to clarify intent of this flag
2549 definition.
2550 (RS6000_BTM_64BIT): New macro definition.
2551 * doc/extend.texi: Document __builtin_darn (void),
2552 __builtin_darn_raw (void), and __builtin_darn_32 (void) built-in
2553 functions.
2554
2555 2016-05-19 Jan Hubicka <hubicka@ucw.cz>
2556
2557 * tree-vect-loop.c (vect_analyze_loop_2): Use also
2558 max_loop_iterations_int.
2559
2560 2016-05-19 Marek Polacek <polacek@redhat.com>
2561
2562 PR tree-optimization/71031
2563 * tree-vrp.c (extract_range_from_binary_expr_1): Turn assert into a
2564 condition and adjust the code a bit.
2565
2566 2016-05-19 Martin Liska <mliska@suse.cz>
2567
2568 * tree-vect-stmts.c (vectorizable_simd_clone_call): Utilize
2569 auto_vec instead of vec.
2570
2571 2016-05-19 Martin Liska <mliska@suse.cz>
2572
2573 * tree-parloops.c (oacc_entry_exit_ok): Release a vector.
2574
2575 2016-05-19 Martin Liska <mliska@suse.cz>
2576
2577 * tree-if-conv.c (ifcvt_repair_bool_pattern): Utilize auto_vecs.
2578
2579 2016-05-19 Martin Liska <mliska@suse.cz>
2580
2581 * ipa-pure-const.c (set_function_state): Remove an existing
2582 funct_state.
2583 (remove_node_data): Do not free it as it's released
2584 in set_function_state.
2585
2586 2016-05-19 Martin Liska <mliska@suse.cz>
2587
2588 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Release
2589 bitmap.
2590
2591 2016-05-19 Martin Liska <mliska@suse.cz>
2592
2593 * omp-simd-clone.c (simd_clone_adjust): Release vector.
2594
2595 2016-05-19 Martin Liska <mliska@suse.cz>
2596
2597 * tree-ssa-reassoc.c (eliminate_duplicate_pair): Truncate
2598 an auto_vec instead of re-creating it.
2599
2600 2016-05-19 Martin Liska <mliska@suse.cz>
2601
2602 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Use
2603 auto_vec instead of vec.
2604
2605 2016-05-19 Martin Liska <mliska@suse.cz>
2606
2607 * lto-section-in.c (lto_get_section_data): Call
2608 lto_check_version with additional argument.
2609 * lto-streamer.c (lto_check_version): Add new argument.
2610 * lto-streamer.h (lto_check_version): Likewise.
2611
2612 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2613
2614 * config/arm/arm.c (arm_new_rtx_costs, SIGN_EXTEND case):
2615 Don't add cost of inner memory when handling sign-extended loads.
2616
2617 2016-05-19 Ilya Enkovich <ilya.enkovich@intel.com>
2618
2619 PR rtl-optimization/71148
2620 * cse.c (cse_main): Free dominance info.
2621 (rest_of_handle_cse): Don't free dominance info.
2622 (rest_of_handle_cse2): Likewise.
2623 (rest_of_handle_cse_after_global_opts): Likewise.
2624
2625 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2626
2627 PR target/71056
2628 * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Return
2629 NULL_TREE early if NEON is not available. Remove now redundant check
2630 in ARM_CHECK_BUILTIN_MODE.
2631
2632 2016-05-19 Maxim Ostapenko <m.ostapenko@samsung.com>
2633
2634 PR sanitizer/64354
2635 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add new
2636 builtin __SANITIZE_THREAD__ macros for fsanitize=thread switch.
2637 * doc/cpp.texi: Document new macros.
2638
2639 2016-05-19 Bin Cheng <bin.cheng@arm.com>
2640
2641 PR tree-optimization/69848
2642 * tree-vect-loop.c (vectorizable_reduction): Don't factor
2643 comparison expr out of VEC_COND_EXPR for COND_REDUCTION.
2644
2645 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org>
2646
2647 * function.c (thread_prologue_and_epilogue_insn): Move the
2648 "goto epilogue_done" one block later.
2649
2650 2016-05-19 Richard Biener <rguenther@suse.de>
2651
2652 PR tree-optimization/70729
2653 * passes.def: Move LIM pass before PRE. Remove no longer
2654 required copyprop and move first DCE out of the loop pipeline.
2655
2656 2016-05-18 David Malcolm <dmalcolm@redhat.com>
2657
2658 PR driver/69265
2659 * Makefile.in (GCC_OBJS): Move spellcheck.o to...
2660 (OBJS-libcommon-target): ...here.
2661 * opts-common.c: Include spellcheck.h.
2662 (cmdline_handle_error): Build a vec of valid options and use it
2663 to suggest provide hints for misspelled arguments.
2664
2665 2016-05-18 Jakub Jelinek <jakub@redhat.com>
2666
2667 PR c++/71100
2668 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Don't drop
2669 lhs if it has TREE_ADDRESSABLE type.
2670
2671 2016-05-18 Uros Bizjak <ubizjak@gmail.com>
2672
2673 PR target/71145
2674 * config/alpha/alpha.md (trap): Add (use (reg:DI 29)).
2675 (*exception_receiver_1): Return "#" for TARGET_EXPLICIT_RELOCS.
2676
2677 2016-05-18 Martin Jambor <mjambor@suse.cz>
2678
2679 PR ipa/69708
2680 * ipa-cp.c (ipa_get_jf_pass_through_result): Allow non-ip constant
2681 input for NOP_EXPR pass-through functions.
2682 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Allow
2683 aggregate global constant VAR_DECLs in constant jump functions.
2684
2685 2016-05-18 Martin Jambor <mjambor@suse.cz>
2686
2687 PR ipa/69708
2688 * ipa-prop.c (parm_preserved_before_stmt_p): Return true for loads
2689 from TREE_READONLY parameters.
2690
2691 2016-05-18 Martin Jambor <mjambor@suse.cz>
2692
2693 PR ipa/69708
2694 * cgraph.h (cgraph_indirect_call_info): New field
2695 guaranteed_unmodified.
2696 * ipa-cp.c (ipa_get_indirect_edge_target_1): Also pass parameter value
2697 to ipa_find_agg_cst_for_param, check guaranteed_unmodified when
2698 appropriate.
2699 * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Also
2700 pass the parameter value to ipa_find_agg_cst_for_param.
2701 * ipa-prop.c (ipa_load_from_parm_agg): New parameter
2702 guaranteed_unmodified, store AA results there instead of bailing out
2703 if present.
2704 (ipa_note_param_call): Also initialize guaranteed_unmodified flag.
2705 (ipa_analyze_indirect_call_uses): Also set guaranteed_unmodified flag.
2706 (find_constructor_constant_at_offset): New function.
2707 (ipa_find_agg_cst_from_init): Likewise.
2708 (ipa_find_agg_cst_for_param): Also seearch for aggregate values in
2709 static initializers of contants, report back through a new paameter
2710 from_global_constant if that was the case.
2711 (try_make_edge_direct_simple_call): Also pass parameter value to
2712 ipa_find_agg_cst_for_param, check guaranteed_unmodified when
2713 appropriate.
2714 (ipa_write_indirect_edge_info): Stream new flag guaranteed_unmodified.
2715 (ipa_read_indirect_edge_info): Likewise.
2716 * ipa-prop.h (ipa_find_agg_cst_for_param): Update declaration.
2717 (ipa_load_from_parm_agg): Likewise.
2718
2719 2016-05-18 Jiong Wang <jiong.wang@arm.com>
2720
2721 PR rtl-optimization/71150
2722 * lra-constraint (process_addr_reg): Guard "in_class_p" with REG_P
2723 check.
2724
2725 2016-05-18 Michael Meissner <meissner@linux.vnet.ibm.com>
2726
2727 PR target/70915
2728 * config/rs6000/constraints.md (wE constraint): New constraint
2729 for a vector constant that can be loaded with XXSPLTIB.
2730 (wM constraint): New constraint for a vector constant of a 1's.
2731 (wS constraint): New constraint for a vector constant that can be
2732 loaded with XXSPLTIB and a vector sign extend instruction.
2733 * config/rs6000/predicates.md (xxspltib_constant_split): New
2734 predicates for wE/wS constraints.
2735 (xxspltib_constant_nosplit): Likewise.
2736 (easy_vector_constant): Add support for constants that can be
2737 loaded via XXSPLTIB.
2738 (all_ones_constant): New predicate for vector constant with all
2739 1's set.
2740 (splat_input_operand): Add support for ISA 3.0 word splat operations.
2741 * config/rs6000/rs6000.c (xxspltib_constant_p): New function to
2742 return if a constant can be loaded with the ISA 3.0 XXSPLTIB
2743 instruction and possibly with a sign extension.
2744 (output_vec_const_move): Add support for XXSPLTIB. If we are
2745 loading up 0/-1 into Altivec registers, prefer using VSPLTISW
2746 instead of XXLXOR/XXLORC.
2747 (rs6000_expand_vector_init): Add support for ISA 3.0 word splat
2748 operations.
2749 (rs6000_legitimize_reload_address): Likewise.
2750 (rs6000_output_move_128bit): Use output_vec_const_move to emit
2751 constants.
2752 * config/rs6000/vsx.md (VSX_M): Add TImode (if -mvsx-timode) and
2753 combine VSX_M and VSX_M2 into one iterator.
2754 (VSX_M2): Likewise.
2755 (VSINT_84): New iterators for loading constants with XXSPLTIB.
2756 (VSINT_842): Likewise.
2757 (UNSPEC_VSX_SIGN_EXTEND): New UNSPEC.
2758 (xxspltib_v16qi): New insns to load up constants with the ISA 3.0
2759 XXSPLTIB instruction.
2760 (xxspltib_<mode>_nosplit): Likewise.
2761 (xxspltib_<mode>_split): New insn to load up constants with
2762 XXSPLTIB and a sign extend instruction.
2763 (vsx_mov<mode>): Replace single move that handled all vector types
2764 with separate 32-bit and 64-bit moves. Combine the movti_<bit>
2765 moves (when -mvsx-timode is in effect) into the main vector
2766 moves. Eliminate separate moves for <VSr> <VSa>, where the
2767 preferred register class (<VSr>) is listed first, and the
2768 secondary register class (<VSa>) is listed second with a '?' to
2769 discourage use. Prefer loading 0/-1 in any VSX register for ISA
2770 3.0, and Altivec registers for ISA 2.06/2.07 (PR target/70915) so
2771 that if the register was involved in a slow operation, the
2772 clear/set operation does not wait for the slow operation to
2773 finish. Adjust the length attributes for 32-bit mode. Use
2774 rs6000_output_move_128bit and drop the use of the string
2775 instructions for 32-bit movti when -mvsx-timode is in effect. Use
2776 spacing so that the alternatives and attributes don't generate
2777 long lines, and put things in columns, so that it is easier to
2778 match up the operands and attributes with the insn alternatives.
2779 (vsx_mov<mode>_64bit): Likewise.
2780 (vsx_mov<mode>_32bit): Likewise.
2781 (vsx_movti_64bit): Fold movti into normal vector moves.
2782 (vsx_movti_32bit): Likewise.
2783 (vsx_splat_<mode>, V4SI/V4SF modes): Add support for ISA 3.0 word
2784 splat instructions.
2785 (vsx_splat_v4si_internal): Likewise.
2786 (vsx_splat_v4sf_internal): Likewise.
2787 (vector fusion peepholes): Use VSX_M instead of VSX_M2.
2788 (vsx_sign_extend_qi_<mode>): New ISA 3.0 instructions to sign
2789 extend vector elements.
2790 (vsx_sign_extend_hi_<mode>): Likewise.
2791 (vsx_sign_extend_si_v2di): Likewise.
2792 * config/rs6000/rs6000-protos.h (xxspltib_constant_p): Add
2793 declaration.
2794 * doc/md.texi (PowerPC constraints): Document the wE, wM, and wS
2795 constraints. Add trailing period to wL documentation.
2796
2797 2016-05-18 Richard Sandiford <richard.sandiford@arm.com>
2798
2799 PR middle-end/71020
2800 * tree-dfa.h (replace_abnormal_ssa_names): Declare.
2801 * tree-dfa.c (replace_abnormal_ssa_names): New function.
2802 * tree-call-cdce.c: Include tree-dfa.h.
2803 (can_guard_call_p): New function, extracted from...
2804 (can_use_internal_fn): ...here.
2805 (shrink_wrap_one_built_in_call_with_conds): Remove failure path
2806 and return void.
2807 (shrink_wrap_one_built_in_call): Likewise.
2808 (use_internal_fn): Likewise.
2809 (shrink_wrap_conditional_dead_built_in_calls): Update accordingly
2810 and return void. Call replace_abnormal_ssa_names.
2811 (pass_call_cdce::execute): Check can_guard_call_p during the
2812 initial walk. Assume shrink_wrap_conditional_dead_built_in_calls
2813 will always change something.
2814
2815 2016-05-18 Martin Jambor <mjambor@suse.cz>
2816
2817 PR ipa/70646
2818 * ipa-prop.c (determine_locally_known_aggregate_parts): Bail out early
2819 if parameter PARAM_IPA_MAX_AGG_ITEMS is zero.
2820
2821 2016-05-18 Martin Jambor <mjambor@suse.cz>
2822
2823 PR ipa/70646
2824 * ipa-inline.h (condition): New field size.
2825 * ipa-inline-analysis.c (add_condition): New parameter SIZE, use it
2826 for comaprison and store it into the new condition.
2827 (evaluate_conditions_for_known_args): Use condition size to check
2828 access sizes for all but CHANGED conditions.
2829 (unmodified_parm_1): New parameter size_p, store access size into it.
2830 (unmodified_parm): Likewise.
2831 (unmodified_parm_or_parm_agg_item): Likewise.
2832 (eliminated_by_inlining_prob): Pass NULL to unmodified_parm as size_p.
2833 (set_cond_stmt_execution_predicate): Extract access sizes and store
2834 them to conditions.
2835 (set_switch_stmt_execution_predicate): Likewise.
2836 (will_be_nonconstant_expr_predicate): Likewise.
2837 (will_be_nonconstant_predicate): Likewise.
2838 (inline_read_section): Stream condition size.
2839 (inline_write_summary): Likewise.
2840
2841 2016-05-18 Richard Biener <rguenther@suse.de>
2842
2843 * tree-ssa-loop-im.c (determine_max_movement): Properly add
2844 condition cost to PHI cost instead of total_cost.
2845
2846 2016-05-18 Martin Liska <mliska@suse.cz>
2847
2848 PR fortran/70856
2849 * ipa-icf.c (sem_variable::merge): Set DECL_PT_UID for
2850 merged variables.
2851
2852 2016-05-18 Richard Biener <rguenther@suse.de>
2853
2854 * lto-streamer.h (LTO_major_version): Bump to 6.
2855
2856 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org>
2857
2858 * function.c (make_split_prologue_seq, make_prologue_seq,
2859 make_epilogue_seq): New functions, factored out from...
2860 (thread_prologue_and_epilogue_insns): Here.
2861
2862 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org>
2863
2864 * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
2865 cleanup_cfg with CLEANUP_EXPENSIVE after shrink-wrapping instead
2866 of before. Add a comment.
2867
2868 2016-05-18 Bin Cheng <bin.cheng@arm.com>
2869
2870 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check invariant
2871 expression pointer, not pointer to the pointer.
2872
2873 2016-05-18 Jakub Jelinek <jakub@redhat.com>
2874
2875 * config/i386/sse.md (pbroadcast_evex_isa): New mode attr.
2876 (avx2_pbroadcast<mode>): Add another alternative with v instead
2877 of x constraints in it, using <pbroadcast_evex_isa> isa.
2878 (avx2_pbroadcast<mode>_1): Similarly, add two such alternatives.
2879
2880 * config/i386/sse.md (<ssse3_avx2>_palignr<mode>): Use
2881 constraint x instead of v in second alternative, add avx512bw
2882 alternative.
2883
2884 * config/i386/sse.md (<ssse3_avx2>_pshufb<mode>3<mask_name>): Use
2885 constraint x instead of v in second alternative, add avx512bw
2886 alternative.
2887
2888 * config/i386/sse.md (*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>): Use
2889 constraint x instead of v in second alternative, add avx512bw
2890 alternative.
2891
2892 * config/i386/sse.md (avx2_pmaddubsw256, ssse3_pmaddubsw128): Add
2893 avx512bw alternative.
2894
2895 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
2896
2897 * config/i386/sse.md (define_insn "*andnot<mode>3"): Extend static
2898 array to 128 chars.
2899 (define_insn "*andnottf3"): Ditto.
2900 (define_insn "*<code><mode>3"/any_logic): Ditto.
2901 (define_insn "*<code>tf3"/any_logic): Ditto.
2902 (define_insn "sse2_storehpd"): Use Yv constraint for scalar
2903 operand to block AVX-512VL insn variant emit when it is not enabled.
2904
2905 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
2906
2907 * config/i386/sse.md (define_insn "*vec_concatv2sf_sse4_1"): Use 'Yv'
2908 constraint fot SF mode.
2909
2910 2016-05-18 Petr Murzin <petr.murzin@intel.com>
2911 Kirill Yukhin <kirill.yukhin@intel.com>
2912
2913 * config/i386/sse.md (define_insn "srcp14<mode>"): Use proper operand
2914 modifiers.
2915 (define_insn "rsqrt14<mode>"): Ditto.
2916 (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
2917 (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
2918 (define_insn "avx512f_<code>v8div16qi2_mask_store"): Ditto.
2919 (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
2920 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"):
2921 Ditto.
2922 (define_insn "*avx512f_gatherdi<mode>"): Ditto.
2923 (define_insn "*avx512f_scatterdi<mode>"): Ditto.
2924 * config/i386/i386.c (ix86_print_operand): Expand check for size
2925 override codes for Intel syntax.
2926
2927 2016-05-18 Richard Biener <rguenther@suse.de>
2928
2929 PR tree-optimization/71168
2930 * tree-loop-distribution.c (distribute_loop): Move *destroy_p
2931 initialization earlier.
2932
2933 2016-05-18 James Greenhalgh <james.greenhalgh@arm.com>
2934
2935 * config/aarch64/aarch64-simd.md
2936 (aarch64_reduc_plus_internal<mode>): Rename to...
2937 (reduc_plus_scal): ...This, and remove previous implementation.
2938
2939 2016-05-18 Richard Biener <rguenther@suse.de>
2940
2941 * passes.def: Put late dse and cd_dce in canonical order.
2942
2943 2016-05-17 Jan Hubicka <hubicka@ucw.cz>
2944
2945 * ipa-inline-transform.c (preserve_function_body_p): Look for
2946 first non-thunk clone.
2947 (save_function_body): Save into first non-thunk.
2948 * lto-cgraph.c (lto_output_edge): When streaming thunk do not look
2949 up call stmt id.
2950 (lto_output_node): Inline thunks don't need body in every
2951 partition.
2952 * lto-streamer-in.c: Do not fixup thunk clones.
2953 * cgraphclones.c (cgraph_node::create_edge_including_clone): Skip
2954 thunks.
2955 * tree-inline.c (copy_bb): Be prepared for target node to be new after
2956 folding suceeds.
2957
2958 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org>
2959
2960 PR middle-end/63586
2961 * tree-ssa-reassoc.c (transform_add_to_multiply): New.
2962 (reassociate_bb): Call transform_add_to_multiply.
2963
2964 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org>
2965
2966 * config/aarch64/aarch64.c (all_extensions): Removed unused
2967 static variable.
2968
2969 2016-05-17 Nathan Sidwell <nathan@acm.org>
2970
2971 * config/nvptx/nvptx.c (nvptx_function_arg_boundary): New.
2972 (TARGET_FUNCTION_ARG_BOUNDARY): Override.
2973
2974 2016-05-17 Mikhail Maltsev <maltsevm@gmail.com>
2975
2976 PR tree-optimization/54579
2977 PR middle-end/55299
2978 * match.pd (~(~X >> Y), ~(~X >>r Y), ~(~X <<r Y)): New patterns.
2979
2980 2016-05-17 Marek Polacek <polacek@redhat.com>
2981
2982 PR ipa/71146
2983 * tree-inline.c (expand_call_inline): Call
2984 maybe_remove_unused_call_args.
2985
2986 2016-05-17 Jim Wilson <jim.wilson@linaro.org>
2987
2988 * doc/cpp.texi (__GNUC__): Major version changes are no longer rare.
2989 * doc/invoke.texi (-mnan=2008): Change signalling to signaling.
2990 * doc/md.texi (fmin@var{m}3): Likewise.
2991
2992 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
2993
2994 * match.pd (X & C): New transformation.
2995
2996 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
2997
2998 * match.pd (~X & Y): New transformation.
2999
3000 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
3001
3002 * tree-vrp.c (simplify_truth_ops_using_ranges): Set range
3003 information for new SSA_NAME.
3004 (simplify_conversion_using_ranges): Get range through get_range_info
3005 instead of get_value_range.
3006
3007 2016-05-17 Jiong Wang <jiong.wang@arm.com>
3008
3009 * config/aarch64/arm_neon.h (vmvn_s8): Reimplement using C operator.
3010 Remove inline assembly.
3011 (vmvn_s16): Likewise.
3012 (vmvn_s32): Likewise.
3013 (vmvn_u8): Likewise.
3014 (vmvn_u16): Likewise.
3015 (vmvn_u32): Likewise.
3016 (vmvnq_s8): Likewise.
3017 (vmvnq_s16): Likewise.
3018 (vmvnq_s32): Likewise.
3019 (vmvnq_u8): Likewise.
3020 (vmvnq_u16): Likewise.
3021 (vmvnq_u32): Likewise.
3022 (vmvn_p8): Likewise.
3023 (vmvnq_p16): Likewise.
3024
3025 2016-05-17 Jiong Wang <jiong.wang@arm.com>
3026
3027 * config/aarch64/aarch64-simd.md (vmul_n_f32): Remove inline assembly.
3028 Use builtin.
3029 (vmul_n_s16): Likewise.
3030 (vmul_n_s32): Likewise.
3031 (vmul_n_u16): Likewise.
3032 (vmul_n_u32): Likewise.
3033 (vmulq_n_f32): Likewise.
3034 (vmulq_n_f64): Likewise.
3035 (vmulq_n_s16): Likewise.
3036 (vmulq_n_s32): Likewise.
3037 (vmulq_n_u16): Likewise.
3038 (vmulq_n_u32): Likewise.
3039
3040 2016-05-17 Jiong Wang <jiong.wang@arm.com>
3041
3042 * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_to_128df): Extend
3043 to all supported modes. Rename to "*aarch64_mul3_elt_from_dup".
3044
3045 2016-05-17 Jiong Wang <jiong.wang@arm.com>
3046
3047 * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_to_128df): Rename
3048 to *aarch64_fma4_elt_from_dup<mode>.
3049 (*aarch64_fnma4_elt_to_128df): Rename to
3050 *aarch64_fnma4_elt_from_dup<mode>.
3051 * config/aarch64/arm_neon.h (vfma_n_f64): New.
3052 (vfms_n_f32): Likewise.
3053 (vfms_n_f64): Likewise.
3054 (vfmsq_n_f32): Likewise.
3055 (vfmsq_n_f64): Likewise.
3056
3057 2016-05-17 Gerald Pfeifer <gerald@pfeifer.com>
3058
3059 * wide-int.h: Change fixed_wide_int_storage from class to struct.
3060
3061 2016-05-17 Richard Biener <rguenther@suse.de>
3062
3063 PR tree-optimization/71132
3064 * tree-loop-distribution.c (create_rdg_cd_edges): Pass in loop.
3065 Only add control dependences for blocks in the loop.
3066 (build_rdg): Adjust.
3067 (generate_code_for_partition): Return whether loop should
3068 be destroyed and delay that.
3069 (distribute_loop): Likewise.
3070 (pass_loop_distribution::execute): Record loops to be destroyed
3071 and perform delayed destroying of loops.
3072
3073 2016-05-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3074
3075 PR target/70809
3076 * config/aarch64/aarch64-simd.md (aarch64_vmls<mode>): Delete.
3077
3078 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
3079
3080 * config/aarch64/aarch64-elf.h (ASM_OUTPUT_DEF): Delete.
3081
3082 2016-05-17 Ilya Enkovich <ilya.enkovich@intel.com>
3083
3084 PR target/71114
3085 * config/i386/i386.c (dimode_scalar_chain::convert_op): Fix
3086 insertion point for instructions generated by validize_mem.
3087
3088 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
3089
3090 * config/aarch64/aarch64.c (SHIFT_COUNT_TRUNCATED): Wrap definition
3091 in brackets.
3092
3093 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
3094
3095 * config/aarch64/aarch64.c
3096 (aarch64_output_simd_mov_immediate): Make "buf_size" a variable
3097 rather than a macro.
3098
3099 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
3100
3101 * doc/invoke.texi (AArch64 Options): Various updates.
3102
3103 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
3104
3105 * ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig
3106 into instrumentation thunks.
3107 * cif-code.def (CIF_CHKP): New.
3108
3109 2016-05-16 Uros Bizjak <ubizjak@gmail.com>
3110
3111 * config/i386/xopintrin.h: Correct "unsinged" typo in the comments.
3112
3113 2016-05-16 Martin Jambor <mjambor@suse.cz>
3114
3115 * hsa-gen.c (fillup_for_decl): Increase alignment to natural one.
3116 (get_symbol_for_decl): Sorry if a global symbol in under-aligned.
3117
3118 2016-05-16 Marek Polacek <polacek@redhat.com>
3119
3120 * gimple.c (maybe_remove_unused_call_args): Fix typos in the
3121 commentary.
3122
3123 2016-05-16 Martin Jambor <mjambor@suse.cz>
3124
3125 PR hsa/70857
3126 * omp-low.c (grid_expand_target_grid_body): Copy RESULT_DECL of
3127 the outlined kernel function.
3128
3129 2016-05-16 Robert Suchanek <robert.suchanek@imgtec.com>
3130
3131 * config/mips/mips.h (ISA_HAS_LSA): Enable for -mmsa.
3132 (ISA_HAS_DLSA): Ditto.
3133
3134 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com>
3135
3136 * config/mips/m5100.md (m51_int_load): Update the latency to 2.
3137
3138 2016-05-16 Nathan Sidwell <nathan@acm.org>
3139
3140 * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): Revert.
3141 (nvptx_name_replacement): Restore. Add comment.
3142 (write_fn_proto, write_fn_proto_from_insn,
3143 nvptx_output_call_insn): Restore
3144 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Delete.
3145
3146 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
3147
3148 * config/aarch64/aarch64.md
3149 (add<mode>3_compareC_cconly_imm): Remove use of %w.
3150 (add<mode>3_compareC_imm): Likewise.
3151 (<optab>si3_uxtw): Split into register and immediate variants.
3152 (andsi3_compare0_uxtw): Likewise.
3153 (and<mode>3_compare0): Likewise.
3154 (and<mode>3nr_compare0): Likewise.
3155 (stack_protect_test_<mode>): Don't use %x for memory operands.
3156
3157 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com>
3158
3159 * config/mips/mips-cpus.def (p5600): Add multi-line brackets.
3160
3161 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
3162
3163 * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
3164 Split integer shifts into shift_reg and bfm.
3165 (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
3166 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
3167 (ror<mode>3_insn): Likewise.
3168 (<optab>si3_insn_uxtw): Likewise.
3169 (<optab><mode>3_insn): Change to rotate_imm.
3170 (extr<mode>5_insn_alt): Likewise.
3171 (extrsi5_insn_uxtw): Likewise.
3172 (extrsi5_insn_uxtw_alt): Likewise.
3173
3174 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
3175
3176 * doc/tm.texi: Regenerate.
3177 * doc/tm.texi.in (TARGET_INVALID_PARAMETER_TYPE): Remove.
3178 (TARGET_INVALID_RETURN_TYPE): Remove.
3179 * system.h: Poison TARGET_INVALID_PARAMETER_TYPE and
3180 TARGET_INVALID_RETURN_TYPE.
3181 * target.def (invalid_parameter_type): Remove.
3182 (invalid_return_type): Remove.
3183
3184 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
3185
3186 * ipa-inline-analysis.c (compute_inline_parameters): Be more reailistic
3187 on estimating thunk bodies; do not set inline_failed to CIF_THUNK for
3188 calls from thunk.
3189 * ipa-inline-transform.c (inline_call): When inlining into thunk produce
3190 gimple body.
3191 (preserve_function_body_p): No need to preserve function body
3192 * cif-codes.def (CIF_THUNK): Remove.
3193 * cgraphclones.c (duplicate_thunk_for_node): Thunks calls are inlinable.
3194
3195 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
3196
3197 * tree-inline.c (expand_call_inline): recurse after inlining thunk.
3198
3199 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
3200
3201 * tree.c (free_lang_data_in_decl): Also set target/optimization flags
3202 for thunks.
3203
3204 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
3205
3206 * ipa-inline.c (report_inline_failed_reason): Look into thunks, too
3207 (inline_small_functions): Do not look for function symbol when
3208 resetting caches.
3209
3210 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
3211
3212 * lto-cgraph.c (compute_ltrans_boundary, output_symtab): Fix handling
3213 of inline thunks
3214
3215 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
3216 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3217 Jiong Wang <jiong.wang@arm.com>
3218
3219 * config/arm/arm-c.c (arm_cpu_builtins): Use def_or_undef_macro
3220 for __ARM_FP16_FORMAT_IEEE and __ARM_FP16_FORMAT_ALTERNATIVE.
3221 Define __ARM_FP16_ARGS when appropriate.
3222 * config/arm/arm.c (arm_invalid_parameter_type): Remove
3223 declaration.
3224 (arm_invalid_return_type): Likewise.
3225 (TARGET_INVALID_PARAMETER_TYPE): Remove.
3226 (TARGET_INVALID_RETURN_TYPE): Remove.
3227 (aapcs_vfp_sub_candidate): Allow HFmode.
3228 (aapcs_vfp_allocate): Add comment. Support HFmode.
3229 (aapcs_vfp_allocate_return_reg): Likewise.
3230 (struct aapcs_cp_arg_layout): Slightly reword comments for
3231 is_return_candidate and allocate_return_reg.
3232 (output_mov_vfp): Update assert.
3233 (arm_hard_regno_mode_ok): Remove comment, update HF-mode
3234 condition.
3235 (arm_invalid_parameter_type): Remove.
3236 (amr_invalid_return_type): Remove.
3237 * config/arm/arm.h (TARGET_NEON_FP16): Fix definition.
3238 * config/arm/arm.md (*arm32_movhf): Disable for TARGET_VFP.
3239 * config/arm/vfp.md (*movhf_vfp): Enable for TARGET_VFP.
3240
3241 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
3242
3243 * config/aarch64/aarch64.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
3244 * config/aarch64/arch64-protos.h
3245 (aarch64_legitimize_reload_address): Remove.
3246 * config/aarch64/aarch64.c (aarch64_legitimize_reload_address):
3247 Remove.
3248
3249 2016-05-16 Eric Botcazou <ebotcazou@adacore.com>
3250
3251 * configure.ac: Add ACX_NONCANONICAL_HOST.
3252 * configure: Regenerate.
3253 * Makefile.in: Set host_noncanonical.
3254
3255 2016-05-14 Uros Bizjak <ubizjak@gmail.com>
3256
3257 PR target/71097
3258 * config/i386/i386.md (*movtf_internal): Before register allocation,
3259 do not allow FP constants for CM_MEDIUM memory model, allow only
3260 standard FP constants for CM_LARGE and CM_LARGE_PIC models.
3261 (*movxf_internal): Ditto.
3262 (*movdf_internal): Ditto.
3263 (*movsf_internal): Ditto.
3264
3265 2016-05-13 Segher Boessenkool <segher@kernel.crashing.org>
3266
3267 PR rtl-optimization/67483
3268 * combine.c (make_compound_operation): Don't call extract_left_shift
3269 with negative shift amounts.
3270
3271 2016-05-13 Jakub Jelinek <jakub@redhat.com>
3272
3273 PR bootstrap/71071
3274 * fold-const.c (fold_checksum_tree): Allow modification
3275 of TYPE_ALIAS_SET during folding.
3276
3277 * config/i386/i386.c (ix86_compute_frame_layout, ix86_expand_prologue,
3278 ix86_expand_split_stack_prologue): Use HOST_WIDE_INT_C macro.
3279 (ix86_split_to_parts): Likewise. Fix up formatting.
3280
3281 2016-05-13 H.J. Lu <hongjiu.lu@intel.com>
3282
3283 * tree-ssa-loop-ivopts.c (create_new_ivs): Cast to
3284 unsigned HOST_WIDE_INT with HOST_WIDE_INT_PRINT_UNSIGNED in
3285 printf format.
3286
3287 2016-05-13 Nathan Sidwell <nathan@acm.org>
3288
3289 * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): New.
3290 (nvptx_name_replacement): Delete.
3291 (write_fn_proto, write_fn_proto_from_insn,
3292 nvptx_output_call_insn): Remove nvptx_name_replacement call.
3293 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Override.
3294 * langhooks.c (add_builtin_funcction_common): Call
3295 targetm.mangle_decl_assembler_name.
3296
3297 * config/nvptx/nvptx.c (write_fn_proto): Handle
3298 BUILT_IN_ATOMIC_COMPARE_EXCHANGE_n oddity.
3299
3300 2016-05-13 Martin Liska <mliska@suse.cz>
3301
3302 * tree-ssa-loop-ivopts.c (create_new_ivs): Use HOST_WIDE_INT_PRINT_DEC
3303 and PRIu64 in printf format.
3304
3305 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3306
3307 * tree-ssa-loop-ivanon.c (try_unroll_loop_completely): Typo fix in
3308 comment.
3309
3310 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3311
3312 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
3313 Change --param max-completely-peeled-times to
3314 --param max-completely-peel-times in dump file printing.
3315
3316 2016-05-13 Richard Biener <rguenther@suse.de>
3317
3318 PR tree-optimization/42587
3319 * tree-ssa-math-opts.c (perform_symbolic_merge): Handle BIT_FIELD_REF.
3320 (find_bswap_or_nop_1): Likewise.
3321 (bswap_replace): Likewise.
3322
3323 2016-05-13 Martin Liska <mliska@suse.cz>
3324
3325 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
3326 Initialize a variable with default value.
3327
3328 2016-05-13 Martin Liska <mliska@suse.cz>
3329
3330 * doc/invoke.texi: Enhance explanation of error recovery
3331 of sanitizers.
3332
3333 2016-05-13 Martin Liska <mliska@suse.cz>
3334
3335 * tree-ssa-loop-ivopts.c (avg_loop_niter): Fix coding style.
3336 (struct cost_pair): Change inv_expr_id (int) to inv_expr
3337 (iv_inv_expr_ent *).
3338 (struct iv_inv_expr_ent): Comment struct fields.
3339 (sort_iv_inv_expr_ent): New function.
3340 (struct ivopts_data): Rename inv_expr_id to max_inv_expr_id.
3341 (struct iv_ca): Replace used_inv_expr and num_used_inv_expr with
3342 a hash_map between iv_inv_expr_ent and number of usages.
3343 (niter_for_exit): Fix coding style.
3344 (tree_ssa_iv_optimize_init): Use renamed variable.
3345 (determine_base_object): Fix coding style.
3346 (alloc_iv): Likewise.
3347 (find_interesting_uses_outside): Likewise.
3348 (add_candidate_1): Likewise.
3349 (add_standard_iv_candidates): Likewise.
3350 (set_group_iv_cost): Replace inv_expr_id with inv_expr.
3351 (prepare_decl_rtl): Fix coding style.
3352 (get_address_cost): Likewise.
3353 (get_shiftadd_cost): Likewise.
3354 (force_expr_to_var_cost): Likewise.
3355 (compare_aff_trees): Likewise.
3356 (get_expr_id): Restructure the function.
3357 (get_loop_invariant_expr_id): Renamed to
3358 get_loop_invariant_expr.
3359 (get_computation_cost_at): Replace usage of inv_expr_id with
3360 inv_expr.
3361 (get_computation_cost): Likewise.
3362 (determine_group_iv_cost_generic): Likewise.
3363 (determine_group_iv_cost_address): Likewise.
3364 (iv_period): Fix coding style.
3365 (iv_elimination_compare_lt): Likewise.
3366 (may_eliminate_iv): Likewise.
3367 (determine_group_iv_cost_cond): Replace usage of inv_expr_id with
3368 inv_expr.
3369 (determine_group_iv_costs): Dump invariant expressions.
3370 (iv_ca_recount_cost): Use the newly added hash_map.
3371 (iv_ca_set_remove_invariants): Fix coding style.
3372 (iv_ca_set_add_invariants): Fix coding style.
3373 (iv_ca_set_no_cp): Utilize the newly added hash_map for used
3374 invariants.
3375 (iv_ca_set_cp): Likewise.
3376 (iv_ca_new): Initialize the newly added hash_map and remove
3377 initialization of fields.
3378 (iv_ca_free): Delete the hash_map.
3379 (iv_ca_dump): Dump invariant expressions.
3380 (iv_ca_extend): Fix coding style.
3381 (try_add_cand_for): Likewise.
3382 (create_new_ivs): Dump information about # of avg iterations and
3383 # of used invariant expressions.
3384 (rewrite_use_compare): Fix coding style.
3385 (free_loop_data): Set default value for max_inv_expr_id.
3386
3387 2016-05-13 Ilya Enkovich <ilya.enkovich@intel.com>
3388
3389 * cse.c (rest_of_handle_cse): Use cleanup_cfg
3390 returned value cse_cfg_altered computation.
3391 (rest_of_handle_cse2): Likewise.
3392 (rest_of_handle_cse_after_global_opts): Likewise.
3393
3394 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3395
3396 PR target/53440
3397 * config/arm/arm.c (arm32_output_mi_thunk): New.
3398 (arm_output_mi_thunk): Rename to arm_thumb1_mi_thunk. Rework
3399 to split Thumb1 vs TARGET_32BIT functionality.
3400 (arm_thumb1_mi_thunk): New.
3401
3402 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3403
3404 * config/aarch64/aarch64.c (TARGET_OMIT_STRUCT_RETURN_REG): Set
3405 to true.
3406
3407 2016-05-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3408
3409 PR target/71080
3410 * config/i386/i386.c (ix86_in_large_data_p): Guard against NULL exp.
3411
3412 2016-05-13 Eric Botcazou <ebotcazou@adacore.com>
3413
3414 * builtins.c (expand_builtin_memcmp): Do not emit the call here.
3415 (expand_builtin_trap): Emit a regular call.
3416 (set_builtin_user_assembler_name): Remove obsolete cases.
3417 * dse.c (scan_insn): Adjust.
3418 * except.c: Include calls.h.
3419 (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is defined,
3420 emit a regular call to setjmp.
3421 * expr.c (emit_block_move_hints): Call emit_block_copy_via_libcall.
3422 (block_move_libcall_safe_for_call_parm): Use memcpy builtin.
3423 (emit_block_move_via_libcall): Delete.
3424 (block_move_fn): Delete.
3425 (init_block_move_fn): Likewise.
3426 (emit_block_move_libcall_fn): Likewise.
3427 (emit_block_op_via_libcall): New function.
3428 (set_storage_via_libcall): Tidy up and use memset builtin.
3429 (block_clear_fn): Delete.
3430 (init_block_clear_fn): Likewise.
3431 (clear_storage_libcall_fn): Likewise.
3432 (expand_assignment): Call emit_block_move_via_libcall.
3433 Do not include gt-expr.h.
3434 * expr.h (emit_block_op_via_libcall): Declare.
3435 (emit_block_copy_via_libcall): New inline function.
3436 (emit_block_move_via_libcall): Likewise.
3437 (emit_block_comp_via_libcall): Likewise.
3438 (block_clear_fn): Delete.
3439 (init_block_move_fn): Likewise.
3440 (init_block_clear_fn): Likewise.
3441 (emit_block_move_via_libcall): Likewise.
3442 (set_storage_via_libcall): Add default parameter value.
3443 * libfuncs.h (enum libfunc_index): Remove obsolete values.
3444 (abort_libfunc): Delete.
3445 (memcpy_libfunc): Likewise.
3446 (memmove_libfunc): Likewise.
3447 (memcmp_libfunc): Likewise.
3448 (memset_libfunc): Likewise.
3449 (setbits_libfunc): Likewise.
3450 (setjmp_libfunc): Likewise.
3451 (longjmp_libfunc): Likewise.
3452 (profile_function_entry_libfunc): Likewise.
3453 (profile_function_exit_libfunc): Likewise.
3454 (gcov_flush_libfunc): Likewise.
3455 * optabs-libfuncs.c (build_libfunc_function): Set DECL_ARTIFICIAL
3456 and DECL_VISIBILITY on the declaration.
3457 (init_optabs): Do not initialize obsolete libfuncs.
3458 * optabs.c (prepare_cmp_insn): Call emit_block_comp_via_libcall.
3459 * tree-core.h (ECF_RET1): Define.
3460 (ECF_TM_PURE): Adjust.
3461 (ECF_TM_BUILTIN): Likewise.
3462 * tree.c (set_call_expr_flags): Deal with ECF_RET1.
3463 (build_common_builtin_nodes): Initialize abort builtin.
3464 Add ECF_RET1 on memcpy, memmove and memset builtins.
3465 Pass final flags for alloca and alloca_with_align builtins.
3466 * config/alpha/alpha.c (alpha_init_libfuncs): Do not initialize
3467 obsolete builtins.
3468 * config/ia64/ia64.c (ia64_vms_init_libfuncs): Likewise.
3469 * config/i386/i386.c (ix86_expand_set_or_movmem): Adjust call to
3470 set_storage_via_libcall and call emit_block_copy_via_libcall.
3471
3472 2016-05-12 Uros Bizjak <ubizjak@gmail.com>
3473
3474 * config/i386/i386.md (*call_got_x32): Change operand 0 to
3475 DImode before it is passed to ix86_output_call_operand.
3476 (*call_value_got_x32): Ditto for operand 1.
3477
3478 2016-05-12 Jiong Wang <jiong.wang@arm.com>
3479
3480 PR rtl-optimization/70904
3481 * lra-constraint.c (process_addr_reg): Relax the restriction on subreg
3482 reload for wide mode.
3483
3484 2016-05-12 Marek Polacek <polacek@redhat.com>
3485
3486 PR c/70756
3487 * langhooks-def.h (lhd_incomplete_type_error): Adjust declaration.
3488 * langhooks.c (lhd_incomplete_type_error): Add location parameter.
3489 * langhooks.h (incomplete_type_error): Likewise.
3490 * tree.c (size_in_bytes_loc): Renamed from size_in_bytes. Add location
3491 parameter, pass it down to incomplete_type_error.
3492 * tree.h (size_in_bytes): New inline overload.
3493 (size_in_bytes_loc): Renamed from size_in_bytes.
3494
3495 2016-05-12 Richard Biener <rguenther@suse.de>
3496
3497 PR tree-optimization/71059
3498 * tree-ssa-pre.c (phi_translate_1): Fully fold translated
3499 nary before looking up or entering the expression into the VN
3500 hashes.
3501 * tree-ssa-sccvn.c (vn_nary_build_or_lookup): Fix comment typo.
3502 Make sure to re-use NARYs without result as inserted by
3503 phi-translation.
3504
3505 2016-05-12 Richard Biener <rguenther@suse.de>
3506
3507 PR tree-optimization/71062
3508 * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
3509 field.
3510 * tree-ssa-structalias.c (set_uids_in_ptset): Set
3511 vars_contains_restrict if the var is a restrict tag.
3512 * tree-ssa-alias.c (ptrs_compare_unequal): If vars_contains_restrict
3513 do not disambiguate pointers against it.
3514 (dump_points_to_solution): Re-structure and adjust for new
3515 vars_contains_restrict flag.
3516 * gimple-pretty-print.c (pp_points_to_solution): Likewise.
3517
3518 2016-05-12 Martin Liska <mliska@suse.cz>
3519
3520 * doc/invoke.texi: Explain connection between
3521 -fsanitize-recover=address and ASAN_OPTIONS="halt_on_error=1".
3522
3523 2016-05-12 Ilya Enkovich <ilya.enkovich@intel.com>
3524
3525 PR tree-optimization/71006
3526 * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
3527 consider COND_EXPR as a mask producer.
3528
3529 2016-05-12 Marek Polacek <polacek@redhat.com>
3530
3531 PR driver/71063
3532 * opts.c (common_handle_option): Detect missing argument for --help^.
3533
3534 2016-05-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3535
3536 PR target/70830
3537 * config/arm/arm.c (arm_output_multireg_pop): Avoid POP instruction
3538 when popping the PC and within an interrupt handler routine.
3539 Add missing tab to output of "ldmfd".
3540 (output_return_instruction): Output LDMFD with SP update rather
3541 than POP when returning from interrupt handler.
3542
3543 2016-05-12 Jakub Jelinek <jakub@redhat.com>
3544
3545 * config/i386/i386.md (isa): Add x64_avx512dq, enable if
3546 TARGET_64BIT && TARGET_AVX512DQ.
3547 * config/i386/sse.md (*vec_extract<mode>): Add avx512bw alternatives.
3548 (*vec_extract<PEXTR_MODE12:mode>_zext): Add avx512bw alternative.
3549 (*vec_extract<ssevecmodelower>_0, *vec_extractv4si_0_zext,
3550 *vec_extractv2di_0_sse): Use v constraint instead of x constraint.
3551 (*vec_extractv4si): Add avx512dq and avx512bw alternatives.
3552 (*vec_extractv4si_zext): Add avx512dq alternative.
3553 (*vec_extractv2di_1): Add x64_avx512dq and avx512bw alternatives,
3554 use v instead of x constraint in other alternatives where possible.
3555
3556 * config/i386/sse.md (sse2_loadld): Use v instead of x
3557 constraint in alternatives 0,1,4.
3558
3559 * config/i386/sse.md (pinsr_evex_isa): New mode attr.
3560 (<sse2p4_1>_pinsr<ssemodesuffix>): Add 2 alternatives with
3561 v constraints instead of x and <pinsr_evex_isa> isa attribute.
3562
3563 PR target/71019
3564 * config/i386/sse.md (<sse2_avx2>_packssdw<mask_name>,
3565 <sse4_1_avx2>_packusdw<mask_name>): Make sure EVEX encoded insn
3566 is not emitted unless TARGET_AVX512BW.
3567 (<sse2_avx2>_packuswb<mask_name>, <sse2_avx2>_packsswb<mask_name>):
3568 Likewise. For TARGET_AVX512BW, use "=v" constraint instead of "=x"
3569 for the result operand.
3570
3571 * config/i386/sse.md (*vec_setv4sf_sse4_1, sse4_1_insertps): Use v
3572 constraint instead of x in avx alternatives. Use maybe_evex instead
3573 of vex prefix.
3574
3575 * config/i386/constraints.md (Yv): New constraint.
3576 * config/i386/i386.h (VALID_AVX512VL_128_REG_MODE): Allow
3577 TFmode and V1TImode in xmm16+ registers for TARGET_AVX512VL.
3578 * config/i386/i386.md (avx512fvecmode): New mode attr.
3579 (*pushtf): Use v constraint instead of x.
3580 (*movtf_internal): Likewise. For TARGET_AVX512VL and
3581 xmm16+ registers, use vmovdqu64 or vmovdqa64 instructions.
3582 (*absneg<mode>2): Use Yv constraint instead of x constraint.
3583 (*absnegtf2_sse): Likewise.
3584 (copysign<mode>3_const, copysign<mode>3_var): Likewise.
3585 * config/i386/sse.md (*andnot<mode>3): Add avx512vl and
3586 avx512f alternatives.
3587 (*andnottf3, *<code><mode>3, *<code>tf3): Likewise.
3588
3589 2016-05-12 Richard Biener <rguenther@suse.de>
3590
3591 PR tree-optimization/71060
3592 * tree-data-ref.c (initialize_data_dependence_relation): Do not
3593 require exact match of DR_BASE_OBJECT but only matching address and
3594 type.
3595
3596 2016-05-12 Richard Biener <rguenther@suse.de>
3597
3598 PR tree-optimization/70986
3599 * cfganal.c: Include cfgloop.h.
3600 (dfs_find_deadend): Prefer to take edges exiting loops.
3601
3602 2016-05-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3603
3604 * gcc.target/powerpc/pr70963.c: Require at least power8 at both
3605 compile and run time.
3606
3607 2016-05-11 Mikhail Maltsev <maltsevm@gmail.com>
3608
3609 PR c/43651
3610 * doc/invoke.texi (Wduplicate-decl-specifier): Document new option.
3611
3612 2016-05-11 Uros Bizjak <ubizjak@gmail.com>
3613
3614 * config/i386/i386.c (legitimize_pic_address): Use
3615 copy_to_suggested_reg instead of gen_movsi.
3616
3617 2016-05-11 Michael Meissner <meissner@linux.vnet.ibm.com>
3618
3619 * config/rs6000/predicates.md (quad_memory_operand): Move most of
3620 the code into quad_address_p and call it to share code with
3621 vsx_quad_dform_memory_operand.
3622 (vsx_quad_dform_memory_operand): New predicate for ISA 3.0 vector
3623 d-form support.
3624 * config/rs6000/rs6000.opt (-mlra): Switch to being an option mask
3625 bit instead of being a separate word. Split -mpower9-dform into
3626 two switches, -mpower9-dform-scalar and -mpower9-dform-vector.
3627 * config/rs6000/rs6000.c (RELOAD_REG_QUAD_OFFSET): New addr_mask
3628 for the register class supporting 128-bit quad word memory offsets.
3629 (mode_supports_vsx_dform_quad): Helper function to return if the
3630 register class uses quad word memory offsets.
3631 (rs6000_debug_addr_mask): Add support for quad word memory offsets.
3632 (rs6000_debug_reg_global): Always print if we are using LRA or not.
3633 (rs6000_setup_reg_addr_masks): If ISA 3.0 vector d-form
3634 instructions are enabled, set up the appropriate addr_masks for
3635 128-bit types.
3636 (rs6000_init_hard_regno_mode_ok): wb constraint is now based on
3637 -mpower9-dform-scalar, instead of -mpower9-dform.
3638 (rs6000_option_override_internal): Split -mpower9-dform into two
3639 switches, -mpower9-dform-scalar and -mpower9-dform-vector. The
3640 -mpower9-dform switch sets or clears both. If we are not using
3641 the LRA register allocator, do not enable -mpower9-dform-vector by
3642 default. If we are using LRA, enable -mpower9-dform-vector and
3643 -mvsx-timode if it is appropriate. Issue a warning if either
3644 -mpower9-dform-vector or -mvsx-timode are explicitly used without
3645 enabling LRA.
3646 (quad_address_offset_p): New helper function to return if the
3647 offset is legal for quad word memory instructions.
3648 (quad_address_p): New function to determin if GPR or vector
3649 register quad word memory addresses are legal.
3650 (mem_operand_gpr): Validate quad word address offsets.
3651 (reg_offset_addressing_ok_p): Add support for ISA 3.0 vector
3652 d-form (register + offset) instructions.
3653 (offsettable_ok_by_alignment): Likewise.
3654 (rs6000_legitimate_offset_address_p): Likewise.
3655 (legitimate_lo_sum_address_p): Likewise.
3656 (rs6000_legitimize_address): Likewise.
3657 (rs6000_legitimize_reload_address): Add more debug statements for
3658 -mdebug=addr.
3659 (rs6000_legitimate_address_p): Add support for ISA 3.0 vector
3660 d-form instructions.
3661 (rs6000_secondary_reload_memory): Add support for ISA 3.0 vector
3662 d-form instructions. Distinguish different cases in debug
3663 output. (rs6000_secondary_reload_inner): Add support for ISA 3.0 vector
3664 d-form instructions.
3665 (rs6000_preferred_reload_class): Likewise.
3666 (rs6000_output_move_128bit): Add support for ISA 3.0 d-form
3667 instructions. If ISA 3.0 is available, generate lxvx/stxvx instead
3668 of the ISA 2.06 indexed memory instructions.
3669 (rs6000_emit_prologue): If we have ISA 3.0 d-form instructions,
3670 use them to save/restore the saved vector registers instead of
3671 using Altivec instructions.
3672 (rs6000_emit_epilogue): Likewise.
3673 (rs6000_lra_p): Use TARGET_LRA instead of the old option word.
3674 (rs6000_opt_masks): Split -mpower9-dform into
3675 -mpower9-dform-scalar and -mpower9-dform-vector.
3676 (rs6000_print_options_internal): Print -mno-<switch> if <switch>
3677 was not selected.
3678 * config/rs6000/vsx.md (p9_vecload_<mode>): Delete hack to emit
3679 ISA 3.0 vector indexed memory instructions, and fold the code into
3680 the normal mov<mode> patterns.
3681 (p9_vecstore_<mode>): Likewise.
3682 (vsx_mov<mode>): Add support for ISA 3.0 vector d-form
3683 instructions.
3684 (vsx_movti_64bit): Likewise.
3685 (vsx_movti_32bit): Likewise.
3686 * config/rs6000/constraints.md (wO constraint): New constraint for
3687 ISA 3.0 vector d-form support.
3688 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Use
3689 -mpower9-dform-scalar instead of -mpower9-dform. Add note not to
3690 include -mpower9-dform-vector until we switch over to LRA.
3691 (POWERPC_MASKS): Add -mlra. Split -mpower9-dform into two.
3692 switches, -mpower9-dform-scalar and -mpower9-dform-vector.
3693 * config/rs6000/rs6000-protos.h (quad_address_p): Add declaration.
3694 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
3695 for -mpower9-dform and -mlra.
3696 * doc/md.texi (wO constraint): Document wO constraint.
3697
3698 2016-05-11 Alexander Monakov <amonakov@ispras.ru>
3699
3700 * genattr.c (main): Change 'rtx' to 'rtx_insn *' in prototypes of
3701 'insn_latency', 'maximal_insn_latency', 'min_insn_conflict_delay'.
3702 * genautomata.c (output_internal_insn_code_evaluation): Simplify.
3703 Move handling of non-insn arguments inline into the sole user:
3704 (output_trans_func): ...here.
3705 (output_min_insn_conflict_delay_func): Change 'rtx' to 'rtx_insn *'
3706 in emitted function prototype.
3707 (output_internal_insn_latency_func): Ditto. Simplify.
3708 (output_internal_maximal_insn_latency_func): Ditto. Delete
3709 always-unused argument.
3710 (output_insn_latency_func): Ditto.
3711 (output_maximal_insn_latency_func): Ditto.
3712
3713 2016-05-11 Richard Biener <rguenther@suse.de>
3714
3715 PR tree-optimization/71055
3716 * tree-ssa-sccvn.c (vn_reference_lookup_3): When native-interpreting
3717 sth with precision not equal to access size verify we don't chop
3718 off bits.
3719
3720 2016-05-11 Richard Biener <rguenther@suse.de>
3721
3722 PR debug/71057
3723 * dwarf2out.c (retry_incomplete_types): Set early_dwarf.
3724 (dwarf2out_finish): Move retry_incomplete_types call ...
3725 (dwarf2out_early_finish): ... here.
3726
3727 2016-05-11 Richard Biener <rguenther@suse.de>
3728
3729 PR middle-end/71002
3730 * alias.c (reference_alias_ptr_type): Preserve alias-set zero
3731 if the langhook insists on it.
3732 * fold-const.c (make_bit_field_ref): Add arg for the original
3733 reference and preserve its alias-set.
3734 (decode_field_reference): Take exp by reference and adjust it
3735 to the original memory reference.
3736 (optimize_bit_field_compare): Adjust callers.
3737 (fold_truth_andor_1): Likewise.
3738 * gimplify.c (gimplify_expr): Adjust in-SSA form test.
3739
3740 2016-05-11 Ilya Enkovich <ilya.enkovich@intel.com>
3741
3742 PR middle-end/70807
3743 * cfgrtl.h (delete_insn_and_edges): Now return bool.
3744 * cfgrtl.c (delete_insn_and_edges): Likewise.
3745 * config/i386/i386.c (convert_scalars_to_vector): Remove
3746 redundant code.
3747 * cse.c (cse_insn): Compute cse_cfg_altered.
3748 (delete_trivially_dead_insns): Likewise.
3749 (cse_cc_succs): Likewise.
3750 (rest_of_handle_cse): Free dominance info if required.
3751 (rest_of_handle_cse2): Likewise.
3752 (rest_of_handle_cse_after_global_opts): Likewise.
3753
3754 2016-05-11 Alan Modra <amodra@gmail.com>
3755
3756 * config/rs6000/rs6000.c (is_complex_IBM_long_double,
3757 abi_v4_pass_in_fpr): New functions.
3758 (rs6000_function_arg_boundary): Exclude complex IBM long double
3759 from 64-bit alignment when ABI_V4.
3760 (rs6000_function_arg, rs6000_function_arg_advance_1,
3761 rs6000_gimplify_va_arg): Use abi_v4_pass_in_fpr.
3762
3763 2016-05-10 Segher Boessenkool <segher@kernel.crashing.org>
3764
3765 PR rtl-optimization/71028
3766 * cfgcleanup.c (try_optimize_cfg): Do not flip a conditional
3767 jump with just a return in the fallthrough block if the branch
3768 block contains just a return as well.
3769
3770 2016-05-10 Marc Glisse <marc.glisse@inria.fr>
3771
3772 * fold-const.c (fold_binary_loc) [(X ^ Y) & Y]: Remove and merge with...
3773 * match.pd ((X & Y) ^ Y): ... this.
3774 ((X & Y) & Y, (X | Y) | Y, (X ^ Y) ^ Y, (X & Y) & (X & Z), (X | Y)
3775 | (X | Z), (X ^ Y) ^ (X ^ Z)): New transformations.
3776
3777 2016-05-10 David Malcolm <dmalcolm@redhat.com>
3778
3779 * read-md.c (require_char_ws): New function.
3780 (read_string): Simplify using require_char_ws.
3781 (handle_constants): Likewise.
3782 (handle_enum): Likewise.
3783 (handle_file): Likewise.
3784 * read-md.h (require_char_ws): New declaration.
3785 * read-rtl.c (read_conditions): Simplify using require_char_ws.
3786 (read_mapping): Likewise.
3787 (read_rtx_code): Likewise.
3788 (read_nested_rtx): Likewise.
3789
3790 2016-05-10 James Norris <jnorris@codesourcery.com>
3791
3792 * config/rs6000/sysv4.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o
3793 if offloading is enabled and -fopenacc or -fopenmp is specified.
3794 (CRTOFFLOADEND): Likewise.
3795 (STARTFILE_LINUX_SPEC): Add CRTOFFLOADBEGIN.
3796 (ENDFILE_LINUX_SPEC): Add CRTOFFLOADEND.
3797
3798 2016-05-10 Uros Bizjak <ubizjak@gmail.com>
3799
3800 * config/i386/i386.c (legitimize_pic_address): Merge 64-bit and 32-bit
3801 gotoff_operand code paths. Use copy_to_suggested_regs and
3802 expand_simple_binop where appropriate. Cleanup.
3803
3804 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
3805
3806 PR target/70799
3807 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Allow
3808 integer constants.
3809 (dimode_scalar_chain::vector_const_cost): New.
3810 (dimode_scalar_chain::compute_convert_gain): Handle constants.
3811 (dimode_scalar_chain::convert_op): Likewise.
3812 (dimode_scalar_chain::convert_insn): Likewise.
3813
3814 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com>
3815
3816 * dwarf2out.c (resolve_args_picking_1): Consider DW_OP_neg as an
3817 unary operation, not a binary one.
3818
3819 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
3820
3821 PR middle-end/70877
3822 * tree-chkp.c (chkp_add_bounds_to_call_stmt): Handle
3823 calls with type casted fndecl.
3824
3825 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
3826
3827 PR tree-optimization/70786
3828 * tree-chkp.c (chkp_find_bounds_1): Support WITH_SIZE_EXPR.
3829 * calls.c (initialize_argument_information): Bind bounds
3830 with corresponding args passed by reference.
3831
3832 2016-05-10 Jakub Jelinek <jakub@redhat.com>
3833
3834 PR target/70927
3835 * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>),
3836 *<code><mode>3<mask_name>): For !TARGET_AVX512DQ and EVEX encoding,
3837 use vp*[dq] instead of v*p[sd] instructions and adjust mode attribute
3838 accordingly.
3839
3840 2016-05-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3841
3842 PR target/70963
3843 * config/rs6000/vsx.md (vsx_xvcvdpsxds_scale): Generate correct
3844 code for a zero scale factor.
3845 (vsx_xvcvdpuxds_scale): Likewise.
3846
3847 2016-05-10 David Malcolm <dmalcolm@redhat.com>
3848
3849 * diagnostic-show-locus.c (layout::layout): Call show_ruler
3850 if show_ruler_p was set on the context.
3851 (layout::show_ruler): New method.
3852 * diagnostic.h (struct diagnostic_context): Add field
3853 "show_ruler_p".
3854
3855 2016-05-10 Richard Biener <rguenther@suse.de>
3856
3857 PR tree-optimization/71039
3858 * tree-ssa-phiprop.c: Include tree-ssa-loop.h.
3859 (chk_uses): New function.
3860 (propagate_with_phi): Verify we can safely replicate the lhs of an
3861 aggregate assignment on all incoming edges.
3862
3863 2016-05-10 Oleg Endo <olegendo@gcc.gnu.org>
3864
3865 * config/rx/rx-protos.h (is_interrupt_func, is_fast_interrupt_func):
3866 Forward declare.
3867 (rx_atomic_sequence): New class.
3868 * config/rx/rx.c (rx_print_operand): Use symbolic names for PSW bits.
3869 (is_interrupt_func, is_fast_interrupt_func): Make non-static and
3870 non-inline.
3871 (rx_atomic_sequence::rx_atomic_sequence,
3872 rx_atomic_sequence::~rx_atomic_sequence): New functions.
3873 * config/rx/rx.md (CTRLREG_PSW, CTRLREG_USP, CTRLREG_FPSW, CTRLREG_CPEN,
3874 CTRLREG_BPSW, CTRLREG_BPC, CTRLREG_ISP, CTRLREG_FINTV,
3875 CTRLREG_INTB): New constants.
3876 (FETCHOP): New code iterator.
3877 (fethcop_name, fetchop_name2): New iterator code attributes.
3878 (QIHI): New mode iterator.
3879 (atomic_exchange<mode>, atomic_exchangesi, xchg_mem<mode>,
3880 atomic_fetch_<fetchop_name>si, atomic_fetch_nandsi,
3881 atomic_<fetchop_name>_fetchsi, atomic_nand_fetchsi): New patterns.
3882
3883 2016-05-10 Martin Liska <mliska@suse.cz>
3884
3885 * tree-inline.c (remap_dependence_clique): Do not remap
3886 debugging statements.
3887
3888 2016-05-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3889
3890 * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly")
3891 ("*fixuns_truncdfdi2_z13")
3892 ("*fixuns_trunc<FP:mode><GPR:mode>2_z196")
3893 ("*fix_truncdfdi2_bfp_z13", "*floatunsdidf2_z13")
3894 ("*extendsfdf2_z13"): Replace TARGET_Z13 with TARGET_VX.
3895
3896 2016-05-10 Richard Biener <rguenther@suse.de>
3897
3898 PR tree-optimization/70497
3899 PR tree-optimization/28367
3900 * tree-ssa-sccvn.c (vn_nary_build_or_lookup): New function
3901 split out from ...
3902 (visit_reference_op_load): ... here.
3903 (vn_reference_lookup_3): Use it to handle subreg-like accesses
3904 with simplified BIT_FIELD_REFs.
3905 * tree-ssa-pre.c (eliminate_insert): Handle inserting BIT_FIELD_REFs.
3906 * tree-complex.c (extract_component): Handle BIT_FIELD_REFs
3907 correctly.
3908
3909 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com>
3910
3911 * dwarf2out.c (add_abstract_origin_attribute): Adjust
3912 documentation comment. For BLOCK nodes, add a
3913 DW_AT_abstract_origin attribute that points to the DIE generated
3914 for the origin BLOCK.
3915 (gen_lexical_block_die): Call add_abstract_origin_attribute for
3916 blocks from inlined functions.
3917
3918 2016-05-10 Alan Modra <amodra@gmail.com>
3919
3920 PR target/70947
3921 * config/rs6000/rs6000.c (rs6000_expand_split_stack_prologue): Stop
3922 regrename modifying insns saving lr before __morestack call.
3923 * config/rs6000/rs6000.md (split_stack_return): Similarly for
3924 insns restoring lr after __morestack call.
3925
3926 2016-05-09 Jakub Jelinek <jakub@redhat.com>
3927
3928 * config/i386/i386.md (set_got, set_got_labelled, lwp_llwpcb,
3929 lwp_lwpval<mode>3, lwp_lwpins<mode>3): Remove constraints from
3930 expanders.
3931 * config/i386/sse.md (vec_interleave_high<mode>,
3932 vec_interleave_low<mode>, <avx512>_vpermi2var<mode>3_maskz,
3933 <avx512>_vpermt2var<mode>3_maskz): Likewise.
3934
3935 2016-05-04 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
3936
3937 * config/rs6000/rs6000.c (rs6000_reassociation_width): Add
3938 function for TARGET_SCHED_REASSOCIATION_WIDTH to enable
3939 parallel reassociation for power8 and forward.
3940
3941 2016-05-09 Uros Bizjak <ubizjak@gmail.com>
3942
3943 * config/i386/i386.md (absneg splitters with general regs): Use
3944 general_reg_operand predicate.
3945 (btsq peephole2): Use x86_64_immediate_operand to check if new
3946 value is suitable for immediate operand. Generate emitted insn
3947 using RTL expressions.
3948 (btcq peephole2): Ditto.
3949 (btrq peephole2): Ditto. Generate correct immediate operand
3950 for AND masking.
3951
3952 2016-05-09 Richard Sandiford <richard.sandiford@arm.com>
3953
3954 * cfgexpand.c (expand_debug_expr): Fix address offset for negative
3955 bitpos.
3956
3957 2016-05-09 Richard Sandiford <richard.sandiford@arm.com>
3958
3959 * tree-affine.c (wide_int_constant_multiple_p): Add missing
3960 pointer dereference.
3961
3962 2016-05-09 Richard Biener <rguenther@suse.de>
3963
3964 PR tree-optimization/70985
3965 * match.pd (BIT_FIELD_REF -> (type)): Disable on GIMPLE when
3966 op0 isn't a gimple register.
3967
3968 2016-05-09 Prachi Godbole <prachi.godbole@imgtec.com>
3969
3970 * config/mips/i6400.md (i6400_fpu_intadd, i6400_fpu_logic)
3971 (i6400_fpu_div, i6400_fpu_cmp, i6400_fpu_float, i6400_fpu_store)
3972 (i6400_fpu_long_pipe, i6400_fpu_logic_l, i6400_fpu_float_l)
3973 (i6400_fpu_mult): New cpu units.
3974 (i6400_msa_add_d, i6400_msa_int_add, i6400_msa_short_logic3)
3975 (i6400_msa_short_logic2, i6400_msa_short_logic, i6400_msa_move)
3976 (i6400_msa_cmp, i6400_msa_short_float2, i6400_msa_div_d)
3977 (i6400_msa_div_w, i6400_msa_div_h, i6400_msa_div_b)
3978 (i6400_msa_copy, i6400_msa_branch, i6400_fpu_msa_store)
3979 (i6400_fpu_msa_load, i6400_fpu_msa_move, i6400_msa_long_logic1)
3980 (i6400_msa_long_logic2, i6400_msa_mult, i6400_msa_long_float2)
3981 (i6400_msa_long_float4, i6400_msa_long_float5)
3982 (i6400_msa_long_float8, i6400_msa_fdiv_df)
3983 (i6400_msa_fdiv_sf): New reservations.
3984 * config/mips/p5600.md (p5600_fpu_intadd, p5600_fpu_cmp)
3985 (p5600_fpu_float, p5600_fpu_logic_a, p5600_fpu_logic_b)
3986 (p5600_fpu_div, p5600_fpu_logic, p5600_fpu_float_a)
3987 (p5600_fpu_float_b, p5600_fpu_float_c, p5600_fpu_float_d)
3988 (p5600_fpu_mult, p5600_fpu_fdiv, p5600_fpu_load): New cpu units.
3989 (msa_short_int_add, msa_short_logic, msa_short_logic_move_v)
3990 (msa_short_cmp, msa_short_float2, msa_short_logic3)
3991 (msa_short_store4, msa_long_load, msa_short_store)
3992 (msa_long_logic, msa_long_float2, msa_long_float4)
3993 (msa_long_float5, msa_long_float8, msa_long_mult)
3994 (msa_long_fdiv, msa_long_div): New reservations.
3995
3996 2016-05-09 Robert Suchanek <robert.suchanek@imgtec.com>
3997 Sameera Deshpande <sameera.deshpande@imgtec.com>
3998 Matthew Fortune <matthew.fortune@imgtec.com>
3999 Graham Stott <graham.stott@imgtec.com>
4000 Chao-ying Fu <chao-ying.fu@imgtec.com>
4001
4002 * config.gcc: Add MSA header file for mips*-*-* target.
4003 * config/mips/constraints.md (YI, YC, YZ, Unv5, Uuv5, Usv5, Uuv6)
4004 (Ubv8i, Urv8): New constraints.
4005 * config/mips/mips-ftypes.def: Add function types for MSA
4006 builtins.
4007 * config/mips/mips-modes.def (V16QI, V8HI, V4SI, V2DI, V4SF)
4008 (V2DF, V32QI, V16HI, V8SI, V4DI, V8SF, V4DF): New modes.
4009 * config/mips/mips-msa.md: New file.
4010 * config/mips/mips-protos.h
4011 (mips_split_128bit_const_insns): New prototype.
4012 (mips_msa_idiv_insns): Likewise.
4013 (mips_split_128bit_move): Likewise.
4014 (mips_split_128bit_move_p): Likewise.
4015 (mips_split_msa_copy_d): Likewise.
4016 (mips_split_msa_insert_d): Likewise.
4017 (mips_split_msa_fill_d): Likewise.
4018 (mips_expand_msa_branch): Likewise.
4019 (mips_const_vector_same_val_p): Likewise.
4020 (mips_const_vector_same_bytes_p): Likewise.
4021 (mips_const_vector_same_int_p): Likewise.
4022 (mips_const_vector_shuffle_set_p): Likewise.
4023 (mips_const_vector_bitimm_set_p): Likewise.
4024 (mips_const_vector_bitimm_clr_p): Likewise.
4025 (mips_msa_vec_parallel_const_half): Likewise.
4026 (mips_msa_output_division): Likewise.
4027 (mips_ldst_scaled_shift): Likewise.
4028 (mips_expand_vec_cond_expr): Likewise.
4029 * config/mips/mips.c (enum mips_builtin_type): Add
4030 MIPS_BUILTIN_MSA_TEST_BRANCH.
4031 (mips_gen_const_int_vector_shuffle): New prototype.
4032 (mips_const_vector_bitimm_set_p): New function.
4033 (mips_const_vector_bitimm_clr_p): Likewise.
4034 (mips_const_vector_same_val_p): Likewise.
4035 (mips_const_vector_same_bytes_p): Likewise.
4036 (mips_const_vector_same_int_p): Likewise.
4037 (mips_const_vector_shuffle_set_p): Likewise.
4038 (mips_symbol_insns): Forbid loading symbols via immediate for
4039 MSA.
4040 (mips_valid_offset_p): Limit offset to 10-bit for MSA loads and
4041 stores.
4042 (mips_valid_lo_sum_p): Forbid loadings symbols via %lo(base) for
4043 MSA.
4044 (mips_lx_address_p): Add support load indexed address for MSA.
4045 (mips_address_insns): Add calculation of instructions needed for
4046 stores and loads for MSA.
4047 (mips_const_insns): Move CONST_DOUBLE below CONST_VECTOR. Handle
4048 CONST_VECTOR for MSA and let it fall through.
4049 (mips_ldst_scaled_shift): New function.
4050 (mips_subword_at_byte): Likewise.
4051 (mips_msa_idiv_insns): Likewise.
4052 (mips_legitimize_move): Validate MSA moves.
4053 (mips_rtx_costs): Add UNGE, UNGT, UNLE, UNLT cases. Add
4054 calculation of costs for MSA division.
4055 (mips_split_move_p): Check if MSA moves need splitting.
4056 (mips_split_move): Split MSA moves if necessary.
4057 (mips_split_128bit_move_p): New function.
4058 (mips_split_128bit_move): Likewise.
4059 (mips_split_msa_copy_d): Likewise.
4060 (mips_split_msa_insert_d): Likewise.
4061 (mips_split_msa_fill_d): Likewise.
4062 (mips_output_move): Handle MSA moves.
4063 (mips_expand_msa_branch): New function.
4064 (mips_print_operand): Add 'E', 'B', 'w', 'v' and 'V' modifiers.
4065 Reinstate 'y' modifier.
4066 (mips_file_start): Add MSA .gnu_attribute.
4067 (mips_hard_regno_mode_ok_p): Allow TImode and 128-bit vectors in
4068 FPRs.
4069 (mips_hard_regno_nregs): Always return 1 for MSA supported mode.
4070 (mips_class_max_nregs): Add register size for MSA supported mode.
4071 (mips_cannot_change_mode_class): Allow conversion between MSA
4072 vector modes and TImode.
4073 (mips_mode_ok_for_mov_fmt_p): Allow MSA to use move.v
4074 instruction.
4075 (mips_secondary_reload_class): Force MSA loads/stores via memory.
4076 (mips_preferred_simd_mode): Add preffered modes for MSA.
4077 (mips_vector_mode_supported_p): Add MSA supported modes.
4078 (mips_autovectorize_vector_sizes): New function.
4079 (mips_msa_output_division): Likewise.
4080 (MSA_BUILTIN, MIPS_BUILTIN_DIRECT_NO_TARGET)
4081 (MSA_NO_TARGET_BUILTIN, MSA_BUILTIN_TEST_BRANCH): New macros.
4082 (CODE_FOR_msa_adds_s_b, CODE_FOR_msa_adds_s_h)
4083 (CODE_FOR_msa_adds_s_w, CODE_FOR_msa_adds_s_d)
4084 (CODE_FOR_msa_adds_u_b, CODE_FOR_msa_adds_u_h)
4085 (CODE_FOR_msa_adds_u_w, CODE_FOR_msa_adds_u_du
4086 (CODE_FOR_msa_addv_b, CODE_FOR_msa_addv_h, CODE_FOR_msa_addv_w)
4087 (CODE_FOR_msa_addv_d, CODE_FOR_msa_and_v, CODE_FOR_msa_bmnz_v)
4088 (CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bmz_v, CODE_FOR_msa_bmzi_b)
4089 (CODE_FOR_msa_bnz_v, CODE_FOR_msa_bz_v, CODE_FOR_msa_bsel_v)
4090 (CODE_FOR_msa_bseli_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w)
4091 (CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b)
4092 (CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w)
4093 (CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clti_u_b)
4094 (CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w)
4095 (CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_s_b)
4096 (CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w)
4097 (CODE_FOR_msa_clei_s_d, CODE_FOR_msa_clei_u_b)
4098 (CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w)
4099 (CODE_FOR_msa_clei_u_d, CODE_FOR_msa_div_s_b)
4100 (CODE_FOR_msa_div_s_h, CODE_FOR_msa_div_s_w)
4101 (CODE_FOR_msa_div_s_d, CODE_FOR_msa_div_u_b)
4102 (CODE_FOR_msa_div_u_h, CODE_FOR_msa_div_u_w)
4103 (CODE_FOR_msa_div_u_d, CODE_FOR_msa_fadd_w, CODE_FOR_msa_fadd_d)
4104 (CODE_FOR_msa_fexdo_w, CODE_FOR_msa_ftrunc_s_w)
4105 (CODE_FOR_msa_ftrunc_s_d, CODE_FOR_msa_ftrunc_u_w)
4106 (CODE_FOR_msa_ftrunc_u_d, CODE_FOR_msa_ffint_s_w)
4107 (CODE_FOR_msa_ffint_s_d, CODE_FOR_msa_ffint_u_w)
4108 (CODE_FOR_msa_ffint_u_d, CODE_FOR_msa_fsub_w)
4109 (CODE_FOR_msa_fsub_d, CODE_FOR_msa_fmsub_d, CODE_FOR_msa_fmadd_w)
4110 (CODE_FOR_msa_fmadd_d, CODE_FOR_msa_fmsub_w, CODE_FOR_msa_fmul_w)
4111 (CODE_FOR_msa_fmul_d, CODE_FOR_msa_fdiv_w, CODE_FOR_msa_fdiv_d)
4112 (CODE_FOR_msa_fmax_w, CODE_FOR_msa_fmax_d, CODE_FOR_msa_fmax_a_w)
4113 (CODE_FOR_msa_fmax_a_d, CODE_FOR_msa_fmin_w, CODE_FOR_msa_fmin_d)
4114 (CODE_FOR_msa_fmin_a_w, CODE_FOR_msa_fmin_a_d)
4115 (CODE_FOR_msa_fsqrt_w, CODE_FOR_msa_fsqrt_d)
4116 (CODE_FOR_msa_max_s_b, CODE_FOR_msa_max_s_h)
4117 (CODE_FOR_msa_max_s_w, CODE_FOR_msa_max_s_d)
4118 (CODE_FOR_msa_max_u_b, CODE_FOR_msa_max_u_h)
4119 (CODE_FOR_msa_max_u_w, CODE_FOR_msa_max_u_d)
4120 (CODE_FOR_msa_min_s_b, CODE_FOR_msa_min_s_h)
4121 (CODE_FOR_msa_min_s_w, CODE_FOR_msa_min_s_d)
4122 (CODE_FOR_msa_min_u_b, CODE_FOR_msa_min_u_h)
4123 (CODE_FOR_msa_min_u_w, CODE_FOR_msa_min_u_d)
4124 (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
4125 (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
4126 (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
4127 (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
4128 (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
4129 (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
4130 (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
4131 (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
4132 (CODE_FOR_msa_mulv_b, CODE_FOR_msa_mulv_h, CODE_FOR_msa_mulv_w)
4133 (CODE_FOR_msa_mulv_d, CODE_FOR_msa_nlzc_b, CODE_FOR_msa_nlzc_h)
4134 (CODE_FOR_msa_nlzc_w, CODE_FOR_msa_nlzc_d, CODE_FOR_msa_nor_v)
4135 (CODE_FOR_msa_or_v, CODE_FOR_msa_ori_b, CODE_FOR_msa_nori_b)
4136 (CODE_FOR_msa_pcnt_b, CODE_FOR_msa_pcnt_h, CODE_FOR_msa_pcnt_w)
4137 (CODE_FOR_msa_pcnt_d, CODE_FOR_msa_xor_v, CODE_FOR_msa_xori_b)
4138 (CODE_FOR_msa_sll_b, CODE_FOR_msa_sll_h, CODE_FOR_msa_sll_w)
4139 (CODE_FOR_msa_sll_d, CODE_FOR_msa_slli_b, CODE_FOR_msa_slli_h)
4140 (CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d, CODE_FOR_msa_sra_b)
4141 (CODE_FOR_msa_sra_h, CODE_FOR_msa_sra_w, CODE_FOR_msa_sra_d)
4142 (CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w)
4143 (CODE_FOR_msa_srai_d, CODE_FOR_msa_srl_b, CODE_FOR_msa_srl_h)
4144 (CODE_FOR_msa_srl_w, CODE_FOR_msa_srl_d, CODE_FOR_msa_srli_b)
4145 (CODE_FOR_msa_srli_h, CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d)
4146 (CODE_FOR_msa_subv_b, CODE_FOR_msa_subv_h, CODE_FOR_msa_subv_w)
4147 (CODE_FOR_msa_subv_d, CODE_FOR_msa_subvi_b, CODE_FOR_msa_subvi_h)
4148 (CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d, CODE_FOR_msa_move_v)
4149 (CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h, CODE_FOR_msa_vshf_w)
4150 (CODE_FOR_msa_vshf_d, CODE_FOR_msa_ilvod_d, CODE_FOR_msa_ilvev_d)
4151 (CODE_FOR_msa_pckod_d, CODE_FOR_msa_pckdev_d, CODE_FOR_msa_ldi_b)
4152 (CODE_FOR_msa_ldi_hi, CODE_FOR_msa_ldi_w)
4153 (CODE_FOR_msa_ldi_d): New code_aliasing macros.
4154 (mips_builtins): Add MSA sll_b, sll_h, sll_w, sll_d, slli_b,
4155 slli_h, slli_w, slli_d, sra_b, sra_h, sra_w, sra_d, srai_b,
4156 srai_h, srai_w, srai_d, srar_b, srar_h, srar_w, srar_d, srari_b,
4157 srari_h, srari_w, srari_d, srl_b, srl_h, srl_w, srl_d, srli_b,
4158 srli_h, srli_w, srli_d, srlr_b, srlr_h, srlr_w, srlr_d, srlri_b,
4159 srlri_h, srlri_w, srlri_d, bclr_b, bclr_h, bclr_w, bclr_d,
4160 bclri_b, bclri_h, bclri_w, bclri_d, bset_b, bset_h, bset_w,
4161 bset_d, bseti_b, bseti_h, bseti_w, bseti_d, bneg_b, bneg_h,
4162 bneg_w, bneg_d, bnegi_b, bnegi_h, bnegi_w, bnegi_d, binsl_b,
4163 binsl_h, binsl_w, binsl_d, binsli_b, binsli_h, binsli_w,
4164 binsli_d, binsr_b, binsr_h, binsr_w, binsr_d, binsri_b, binsri_h,
4165 binsri_w, binsri_d, addv_b, addv_h, addv_w, addv_d, addvi_b,
4166 addvi_h, addvi_w, addvi_d, subv_b, subv_h, subv_w, subv_d,
4167 subvi_b, subvi_h, subvi_w, subvi_d, max_s_b, max_s_h, max_s_w,
4168 max_s_d, maxi_s_b, maxi_s_h, maxi_s_w, maxi_s_d, max_u_b,
4169 max_u_h, max_u_w, max_u_d, maxi_u_b, maxi_u_h, maxi_u_w,
4170 maxi_u_d, min_s_b, min_s_h, min_s_w, min_s_d, mini_s_b, mini_s_h,
4171 mini_s_w, mini_s_d, min_u_b, min_u_h, min_u_w, min_u_d, mini_u_b,
4172 mini_u_h, mini_u_w, mini_u_d, max_a_b, max_a_h, max_a_w, max_a_d,
4173 min_a_b, min_a_h, min_a_w, min_a_d, ceq_b, ceq_h, ceq_w, ceq_d,
4174 ceqi_b, ceqi_h, ceqi_w, ceqi_d, clt_s_b, clt_s_h, clt_s_w,
4175 clt_s_d, clti_s_b, clti_s_h, clti_s_w, clti_s_d, clt_u_b,
4176 clt_u_h, clt_u_w, clt_u_d, clti_u_b, clti_u_h, clti_u_w,
4177 clti_u_d, cle_s_b, cle_s_h, cle_s_w, cle_s_d, clei_s_b, clei_s_h,
4178 clei_s_w, clei_s_d, cle_u_b, cle_u_h, cle_u_w, cle_u_d, clei_u_b,
4179 clei_u_h, clei_u_w, clei_u_d, ld_b, ld_h, ld_w, ld_d, st_b, st_h,
4180 st_w, st_d, sat_s_b, sat_s_h, sat_s_w, sat_s_d, sat_u_b, sat_u_h,
4181 sat_u_w, sat_u_d, add_a_b, add_a_h, add_a_w, add_a_d, adds_a_b,
4182 adds_a_h, adds_a_w, adds_a_d, adds_s_b, adds_s_h, adds_s_w,
4183 adds_s_d, adds_u_b, adds_u_h, adds_u_w, adds_u_d, ave_s_b,
4184 ave_s_h, ave_s_w, ave_s_d, ave_u_b, ave_u_h, ave_u_w, ave_u_d,
4185 aver_s_b, aver_s_h, aver_s_w, aver_s_d, aver_u_b, aver_u_h,
4186 aver_u_w, aver_u_d, subs_s_b, subs_s_h, subs_s_w, subs_s_d,
4187 subs_u_b, subs_u_h, subs_u_w, subs_u_d, subsuu_s_b, subsuu_s_h,
4188 subsuu_s_w, subsuu_s_d, subsus_u_b, subsus_u_h, subsus_u_w,
4189 subsus_u_d, asub_s_b, asub_s_h, asub_s_w, asub_s_d, asub_u_b,
4190 asub_u_h, asub_u_w, asub_u_d, mulv_b, mulv_h, mulv_w, mulv_d,
4191 maddv_b, maddv_h, maddv_w, maddv_d, msubv_b, msubv_h, msubv_w,
4192 msubv_d, div_s_b, div_s_h, div_s_w, div_s_d, div_u_b, div_u_h,
4193 div_u_w, div_u_d, hadd_s_h, hadd_s_w, hadd_s_d, hadd_u_h,
4194 hadd_u_w, hadd_u_d, hsub_s_h, hsub_s_w, hsub_s_d, hsub_u_h,
4195 hsub_u_w, hsub_u_d, mod_s_b, mod_s_h, mod_s_w, mod_s_d, mod_u_b,
4196 mod_u_h, mod_u_w, mod_u_d, dotp_s_h, dotp_s_w, dotp_s_d,
4197 dotp_u_h, dotp_u_w, dotp_u_d, dpadd_s_h, dpadd_s_w, dpadd_s_d,
4198 dpadd_u_h, dpadd_u_w, dpadd_u_d, dpsub_s_h, dpsub_s_w, dpsub_s_d,
4199 dpsub_u_h, dpsub_u_w, dpsub_u_d, sld_b, sld_h, sld_w, sld_d,
4200 sldi_b, sldi_h, sldi_w, sldi_d, splat_b, splat_h, splat_w,
4201 splat_d, splati_b, splati_h, splati_w, splati_d, pckev_b,
4202 pckev_h, pckev_w, pckev_d, pckod_b, pckod_h, pckod_w, pckod_d,
4203 ilvl_b, ilvl_h, ilvl_w, ilvl_d, ilvr_b, ilvr_h, ilvr_w, ilvr_d,
4204 ilvev_b, ilvev_h, ilvev_w, ilvev_d, ilvod_b, ilvod_h, ilvod_w,
4205 ilvod_d, vshf_b, vshf_h, vshf_w, vshf_d, and_v, andi_b, or_v,
4206 ori_b, nor_v, nori_b, xor_v, xori_b, bmnz_v, bmnzi_b, bmz_v,
4207 bmzi_b, bsel_v, bseli_b, shf_b, shf_h, shf_w, bnz_v, bz_v,
4208 fill_b, fill_h, fill_w, fill_d, pcnt_b, pcnt_h, pcnt_w,
4209 pcnt_d, nloc_b, nloc_h, nloc_w, nloc_d, nlzc_b, nlzc_h, nlzc_w,
4210 nlzc_d, copy_s_b, copy_s_h, copy_s_w, copy_s_d, copy_u_b,
4211 copy_u_h, copy_u_w, copy_u_d, insert_b, insert_h, insert_w,
4212 insert_d, insve_b, insve_h, insve_w, insve_d, bnz_b, bnz_h,
4213 bnz_w, bnz_d, bz_b, bz_h, bz_w, bz_d, ldi_b, ldi_h, ldi_w, ldi_d,
4214 fcaf_w, fcaf_d, fcor_w, fcor_d, fcun_w, fcun_d, fcune_w, fcune_d,
4215 fcueq_w, fcueq_d, fceq_w, fceq_d, fcne_w, fcne_d, fclt_w, fclt_d,
4216 fcult_w, fcult_d, fcle_w, fcle_d, fcule_w, fcule_d, fsaf_w,
4217 fsaf_d, fsor_w, fsor_d, fsun_w, fsun_d, fsune_w, fsune_d,
4218 fsueq_w, fsueq_d, fseq_w, fseq_d, fsne_w, fsne_d, fslt_w,
4219 fslt_d, fsult_w, fsult_d, fsle_w, fsle_d, fsule_w, fsule_d,
4220 fadd_w, fadd_d, fsub_w, fsub_d, fmul_w, fmul_d, fdiv_w, fdiv_d,
4221 fmadd_w, fmadd_d, fmsub_w, fmsub_d, fexp2_w, fexp2_d, fexdo_h,
4222 fexdo_w, ftq_h, ftq_w, fmin_w, fmin_d, fmin_a_w, fmin_a_d,
4223 fmax_w, fmax_d, fmax_a_w, fmax_a_d, mul_q_h, mul_q_w, mulr_q_h,
4224 mulr_q_w, madd_q_h, madd_q_w, maddr_q_h, maddr_q_w, msub_q_h,
4225 msub_q_w, msubr_q_h, msubr_q_w, fclass_w, fclass_d, fsqrt_w,
4226 fsqrt_d, frcp_w, frcp_d, frint_w, frint_d, frsqrt_w, frsqrt_d,
4227 flog2_w, flog2_d, fexupl_w, fexupl_d, fexupr_w, fexupr_d, ffql_w,
4228 ffql_d, ffqr_w, ffqr_d, ftint_s_w, ftint_s_d, ftint_u_w,
4229 ftint_u_d, ftrunc_s_w, ftrunc_s_d, ftrunc_u_w, ftrunc_u_d,
4230 ffint_s_w, ffint_s_d, ffint_u_w, ffint_u_d, ctcmsa, cfcmsa,
4231 move_v builtins.
4232 (mips_get_builtin_decl_index): New array.
4233 (MIPS_ATYPE_QI, MIPS_ATYPE_HI, MIPS_ATYPE_V2DI, MIPS_ATYPE_V4SI)
4234 (MIPS_ATYPE_V8HI, MIPS_ATYPE_V16QI, MIPS_ATYPE_V2DF)
4235 (MIPS_ATYPE_V4SF, MIPS_ATYPE_UV2DI, MIPS_ATYPE_UV4SI)
4236 (MIPS_ATYPE_UV8HI, MIPS_ATYPE_UV16QI): New.
4237 (mips_init_builtins): Initialize mips_get_builtin_decl_index
4238 array.
4239 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
4240 hook.
4241 (mips_expand_builtin_insn): Prepare operands for
4242 CODE_FOR_msa_addvi_b, CODE_FOR_msa_addvi_h, CODE_FOR_msa_addvi_w,
4243 CODE_FOR_msa_addvi_d, CODE_FOR_msa_clti_u_b,
4244 CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w,
4245 CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_u_b,
4246 CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w,
4247 CODE_FOR_msa_clei_u_d, CODE_FOR_msa_maxi_u_b,
4248 CODE_FOR_msa_maxi_u_h, CODE_FOR_msa_maxi_u_w,
4249 CODE_FOR_msa_maxi_u_d, CODE_FOR_msa_mini_u_b,
4250 CODE_FOR_msa_mini_u_h, CODE_FOR_msa_mini_u_w,
4251 CODE_FOR_msa_mini_u_d, CODE_FOR_msa_subvi_b,
4252 CODE_FOR_msa_subvi_h, CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d,
4253 CODE_FOR_msa_ceqi_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w,
4254 CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b,
4255 CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w,
4256 CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clei_s_b,
4257 CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w,
4258 CODE_FOR_msa_clei_s_d, CODE_FOR_msa_maxi_s_b,
4259 CODE_FOR_msa_maxi_s_h, CODE_FOR_msa_maxi_s_w,
4260 CODE_FOR_msa_maxi_s_d, CODE_FOR_msa_mini_s_b,
4261 CODE_FOR_msa_mini_s_h, CODE_FOR_msa_mini_s_w,
4262 CODE_FOR_msa_mini_s_d, CODE_FOR_msa_andi_b, CODE_FOR_msa_ori_b,
4263 CODE_FOR_msa_nori_b, CODE_FOR_msa_xori_b, CODE_FOR_msa_bmzi_b,
4264 CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bseli_b, CODE_FOR_msa_fill_b,
4265 CODE_FOR_msa_fill_h, CODE_FOR_msa_fill_w, CODE_FOR_msa_fill_d,
4266 CODE_FOR_msa_ilvl_b, CODE_FOR_msa_ilvl_h, CODE_FOR_msa_ilvl_w,
4267 CODE_FOR_msa_ilvl_d, CODE_FOR_msa_ilvr_b, CODE_FOR_msa_ilvr_h,
4268 CODE_FOR_msa_ilvr_w, CODE_FOR_msa_ilvr_d, CODE_FOR_msa_ilvev_b,
4269 CODE_FOR_msa_ilvev_h, CODE_FOR_msa_ilvev_w, CODE_FOR_msa_ilvod_b,
4270 CODE_FOR_msa_ilvod_h, CODE_FOR_msa_ilvod_w, CODE_FOR_msa_pckev_b,
4271 CODE_FOR_msa_pckev_h, CODE_FOR_msa_pckev_w, CODE_FOR_msa_pckod_b,
4272 CODE_FOR_msa_pckod_h, CODE_FOR_msa_pckod_w, CODE_FOR_msa_slli_b,
4273 CODE_FOR_msa_slli_h, CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d,
4274 CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w,
4275 CODE_FOR_msa_srai_d, CODE_FOR_msa_srli_b, CODE_FOR_msa_srli_h,
4276 CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d, CODE_FOR_msa_insert_b,
4277 CODE_FOR_msa_insert_h, CODE_FOR_msa_insert_w,
4278 CODE_FOR_msa_insert_d, CODE_FOR_msa_insve_b,
4279 CODE_FOR_msa_insve_h, CODE_FOR_msa_insve_w, CODE_FOR_msa_insve_d,
4280 CODE_FOR_msa_shf_b, CODE_FOR_msa_shf_h, CODE_FOR_msa_shf_w,
4281 CODE_FOR_msa_shf_w_f, CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h,
4282 CODE_FOR_msa_vshf_w, CODE_FOR_msa_vshf_d.
4283 (mips_expand_builtin): Add case for MIPS_BULTIN_MSA_TEST_BRANCH.
4284 (mips_set_compression_mode): Disallow MSA with MIPS16 code.
4285 (mips_option_override): -mmsa requires -mfp64 and -mhard-float.
4286 These are set implicitly and an error is reported if overridden.
4287 (mips_expand_builtin_msa_test_branch): New function.
4288 (mips_expand_msa_shuffle): Likewise.
4289 (MAX_VECT_LEN): Increase maximum length of a vector to 16 bytes.
4290 (TARGET_SCHED_REASSOCIATION_WIDTH): Define target hook.
4291 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Likewise.
4292 (mips_expand_vec_unpack): Add support for MSA.
4293 (mips_expand_vector_init): Likewise.
4294 (mips_expand_vi_constant): Use CONST0_RTX (element_mode)
4295 instead of const0_rtx.
4296 (mips_msa_vec_parallel_const_half): New function.
4297 (mips_gen_const_int_vector): Likewise.
4298 (mips_gen_const_int_vector_shuffle): Likewise.
4299 (mips_expand_msa_cmp): Likewise.
4300 (mips_expand_vec_cond_expr): Likewise.
4301 * config/mips/mips.h
4302 (TARGET_CPU_CPP_BUILTINS): Add __mips_msa and __mips_msa_width.
4303 (OPTION_DEFAULT_SPECS): Ignore --with-fp-32 if -mmsa is
4304 specified.
4305 (ASM_SPEC): Pass mmsa and mno-msa to the assembler.
4306 (ISA_HAS_MSA): New macro.
4307 (UNITS_PER_MSA_REG): Likewise.
4308 (BITS_PER_MSA_REG): Likewise.
4309 (BIGGEST_ALIGNMENT): Redefine using ISA_HAS_MSA.
4310 (MSA_REG_FIRST): New macro.
4311 (MSA_REG_LAST): Likewise.
4312 (MSA_REG_NUM): Likewise.
4313 (MSA_REG_P): Likewise.
4314 (MSA_REG_RTX_P): Likewise.
4315 (MSA_SUPPORTED_MODE_P): Likewise.
4316 (HARD_REGNO_CALL_PART_CLOBBERED): Redefine using TARGET_MSA.
4317 (ADDITIONAL_REGISTER_NAMES): Add named registers $w0-$w31.
4318 * config/mips/mips.md: Include mips-msa.md.
4319 (alu_type): Add simd_add.
4320 (mode): Add V2DI, V4SI, V8HI, V16QI, V2DF, V4SF.
4321 (type): Add simd_div, simd_fclass, simd_flog2, simd_fadd,
4322 simd_fcvt, simd_fmul, simd_fmadd, simd_fdiv, simd_bitins,
4323 simd_bitmov, simd_insert, simd_sld, simd_mul, simd_fcmp,
4324 simd_fexp2, simd_int_arith, simd_bit, simd_shift, simd_splat,
4325 simd_fill, simd_permute, simd_shf, simd_sat, simd_pcnt,
4326 simd_copy, simd_branch, simd_cmsa, simd_fminmax, simd_logic,
4327 simd_move, simd_load, simd_store. Choose "multi" for moves
4328 for "qword_mode".
4329 (qword_mode): New attribute.
4330 (insn_count): Add instruction count for quad moves.
4331 Increase the count for MIPS SIMD division.
4332 (UNITMODE): Add UNITMODEs for vector types.
4333 (addsub): New code iterator.
4334 * config/mips/mips.opt (mmsa): New option.
4335 * config/mips/msa.h: New file.
4336 * config/mips/mti-elf.h: Don't infer -mfpxx if -mmsa is
4337 specified.
4338 * config/mips/mti-linux.h: Likewise.
4339 * config/mips/predicates.md
4340 (const_msa_branch_operand): New constraint.
4341 (const_uimm3_operand): Likewise.
4342 (const_uimm4_operand): Likewise.
4343 (const_uimm5_operand): Likewise.
4344 (const_uimm8_operand): Likewise.
4345 (const_imm5_operand): Likewise.
4346 (aq10b_operand): Likewise.
4347 (aq10h_operand): Likewise.
4348 (aq10w_operand): Likewise.
4349 (aq10d_operand): Likewise.
4350 (const_m1_operand): Likewise.
4351 (reg_or_m1_operand): Likewise.
4352 (const_exp_2_operand): Likewise.
4353 (const_exp_4_operand): Likewise.
4354 (const_exp_8_operand): Likewise.
4355 (const_exp_16_operand): Likewise.
4356 (const_vector_same_val_operand): Likewise.
4357 (const_vector_same_simm5_operand): Likewise.
4358 (const_vector_same_uimm5_operand): Likewise.
4359 (const_vector_same_uimm6_operand): Likewise.
4360 (const_vector_same_uimm8_operand): Likewise.
4361 (par_const_vector_shf_set_operand): Likewise.
4362 (reg_or_vector_same_val_operand): Likewise.
4363 (reg_or_vector_same_simm5_operand): Likewise.
4364 (reg_or_vector_same_uimm6_operand): Likewise.
4365 * doc/extend.texi (MIPS SIMD Architecture Functions): New
4366 section.
4367 * doc/invoke.texi (-mmsa): Document new option.
4368
4369 2016-05-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4370
4371 * configure.ac (enable_vtable_verify): Handle --enable-vtable-verify.
4372 * configure: Regenerate.
4373 * config.in: Regenerate.
4374 * gcc.c (VTABLE_VERIFICATION_SPEC) [!ENABLE_VTABLE_VERIFY]: Error
4375 on -fvtable-verify.
4376 * config/sol2.h [!ENABLE_VTABLE_VERIFY] (STARTFILE_VTV_SPEC): Define.
4377 (ENDFILE_VTV_SPEC): Define.
4378
4379 2016-05-09 Kaushik Phatak <kaushik.phatak@kpit.com>
4380
4381 * config/rl78/rl78.c (rl78_expand_prologue): Save the MDUC related
4382 registers in all interrupt handlers if necessary.
4383 (rl78_option_override): Add warning.
4384 (MUST_SAVE_MDUC_REGISTERS): New macro.
4385 (rl78_expand_epilogue): Restore the MDUC registers if necessary.
4386 * config/rl78/rl78.c (check_mduc_usage): New function.
4387 (mduc_regs): New structure to hold MDUC register data.
4388 * config/rl78/rl78.md (is_g13_muldiv_insn): New attribute.
4389 (mulsi3_g13): Add is_g13_muldiv_insn attribute.
4390 (udivmodsi4_g13): Add is_g13_muldiv_insn attribute.
4391 (mulhi3_g13): Add is_g13_muldiv_insn attribute.
4392 * config/rl78/rl78.opt (msave-mduc-in-interrupts): New option.
4393 * doc/invoke.texi (RL78 Options): Add -msave-mduc-in-interrupts.
4394
4395 2016-05-09 Bin Cheng <bin.cheng@arm.com>
4396
4397 * tree-if-conv.c (tree-ssa-loop.h): Include header file.
4398 (tree-ssa-loop-niter.h): Ditto.
4399 (idx_within_array_bound, ref_within_array_bound): New functions.
4400 (ifcvt_memrefs_wont_trap): Check if array ref is within bound.
4401 Factor out check on writable base object to ...
4402 (base_object_writable): ... here.
4403
4404 2016-05-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4405
4406 * config/arm/arm.md (probe_stack): Add modes to set source
4407 and destination.
4408
4409 2016-05-09 Bernd Schmidt <bschmidt@redhat.com>
4410
4411 * regrename.c (base_reg_class_for_rename): New static function.
4412 (scan_rtx_address, scan_rtx): Use it instead of base_reg_class.
4413
4414 2016-05-08 Jan Hubicka <hubicka@ucw.cz>
4415
4416 * cgraph.c (thunk_adjust): Export.
4417 * cgraphclones.c (cgraph_node::create_clone): Clone thunk info.
4418 * cgraphunit.c (thunk_adjust): Export.
4419 (cgraph_node::assemble_thunks_and_aliases): Do not assemble inlined
4420 thunks.
4421 * ipa-inline-analyssi.c (compute_inline_parameters): Thunks are
4422 inlinable.
4423 * tree-inline.c (expand_call_inline): Expand thunks inline.
4424
4425 2016-05-08 Uros Bizjak <ubizjak@gmail.com>
4426
4427 PR target/70998
4428 * config/i386/sse.md (*sse2_vd_cvtsd2ss): New insn pattern.
4429 (*sse2_vd_cvtss2sd): Ditto.
4430 * config/i386/i386.md
4431 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf splitter):
4432 Generate *sse2_vd_cvtsd2ss pattern.
4433 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df splitter):
4434 Generate *sse2_vd_cvtss2sd pattern.
4435
4436 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
4437
4438 * config/sh/sh.h (GET_SH_ARG_CLASS): Convert macro into ...
4439 * config/sh/sh.c (get_sh_arg_class): ... this new function. Update its
4440 users.
4441
4442 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
4443
4444 * config/sh/sh-protos.h (sh_media_register_for_return): Remove.
4445 * config/sh/sh.c: Define and declare variables on first use throughout
4446 the file.
4447 (current_function_interrupt): Change to bool type.
4448 (frame_insn): Rename to emit_frame_insn and update users.
4449 (push_regs): Use bool for 'interrupt_handler' argument.
4450 (save_schedule_s): Remove.
4451 (TARGET_ASM_UNALIGNED_DI_OP, TARGET_ASM_ALIGNED_DI_OP): Remove.
4452 (sh_option_override): Don't nullify targetm.asm_out.aligned_op.di and
4453 targetm.asm_out.unaligned_op.di.
4454 (gen_far_branch): Remove redundant forward declaration.
4455 (sh_media_register_for_return, MAX_SAVED_REGS, save_entry_s, save_entry,
4456 MAX_TEMPS, save_schedule_ssave_schedule): Remove.
4457 (sh_set_return_address, sh_function_ok_for_sibcall,
4458 scavenge_reg): Update comments.
4459 (sh_builtin_saveregs): Use TRAGET_FPU_ANY condition.
4460 (sh2a_get_function_vector_number, sh2a_function_vector_p): Use for loop.
4461 (sh_attr_renesas_p): Remove unnecessary parentheses.
4462 (branch_dest): Simplify.
4463 * config/sh/sh.h (sh_args): Remove byref, byref_regs, stack_regs fields.
4464 Change force_mem, prototype_p, outgoing, renesas_abi fields to bool.
4465 (CUMULATIVE_ARGS): Change macro to typedef.
4466 (current_function_interrupt): Change to bool type.
4467 (sh_arg_class, sh_args, CUMULATIVE_ARGS, current_function_interrupt):
4468 Surround with __cplusplus ifdef.
4469 (sh_compare_op0, sh_compare_op1): Remove.
4470 (EPILOGUE_USES): Use TARGET_FPU_ANY condition.
4471
4472 2016-05-07 Jim Wilson <jim.wilson@linaro.org>
4473
4474 * config/arm/arm.md: (arch): Add neon.
4475 (arch_enabled): Return yes for arch neon when TARGET_NEON.
4476 * config/arm/vfp.md (movdf_vfp): Add w/G as alternative 3. Add
4477 neon_move as type for alt 3. Add arch attr enabling alt 3 for neon.
4478 Emit vmov.i64 for alt 3. Renumber alternatives 3 to 8. Adjust
4479 attributes for alt renumbering. Mark alt 3 as non-predicable.
4480 (thumb2_movdf_vfp): Likewise.
4481
4482 2016-05-07 Uros Bizjak <ubizjak@gmail.com>
4483
4484 * config/i386/i386.md (*addqi_1): Add preferred_for_speed attribute
4485 to disparage alternatives 3 and 4 for TARGET_PARTIAL_REG_STALL targets.
4486 (*andqi_1): Add preferred_for_speed attribute to disparage
4487 alternative 2 for TARGET_PARTIAL_REG_STALL targets.
4488 (*<code>qi_1): Ditto.
4489 (*one_cmplqi2_1): Add preferred_for_speed attribute to disparage
4490 alternative 1 for TARGET_PARTIAL_REG_STALL targets.
4491 (*ashlqi3_1): Ditto.
4492 (*swap<mode>): Merge from *swap<mode>_1 and *swap<mode>_2 patterns.
4493 Add preferred_for_size attribute to disparage alternative 0 and
4494 preferred_for_speed attribute to disparage alternative 1 for
4495 TARGET_PARTIAL_REG_STALL targets.
4496
4497 2016-05-07 Tom de Vries <tom@codesourcery.com>
4498
4499 PR tree-optimization/70956
4500 * graphite-scop-detection.c (build_cross_bb_scalars_def): Handle NULL
4501 def.
4502
4503 2016-05-07 Oleg Endo <olegendo@gcc.gnu.org>
4504
4505 * config/sh/sh-protos.h (sh_cbranch_distance): Declare new function.
4506 * config/sh/sh.c (sh_cbranch_distance): Implement it.
4507 * config/sh/sh.md (branch_zero): Remove define_attr.
4508 (define_delay): Disable delay slot if branch distance is one insn.
4509
4510 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
4511
4512 * config/i386/i386.md (LEAMODE): New mode attribute.
4513 (plus to LEA splitter): Rewrite splitter using LEAMODE mode attribute.
4514 (ashift to LEA splitter): Rewrte splitter using SWI mode iterator
4515 and LEAMODE mode attribute. Use VOIDmode const_0_to_3_operand as
4516 operand 2 predicate.
4517 (*lea<mode>_general_2): Use VOIDmode for const248_operand.
4518 (*lea<mode>_general_3): Ditto.
4519 (*lea<mode>_general_4): Use VOIDmode for const_0_to_3_operand.
4520
4521 2016-05-06 Jakub Jelinek <jakub@redhat.com>
4522
4523 * genmddump.c (main): Convert argv from char ** to const char **.
4524
4525 2016-05-06 David Malcolm <dmalcolm@redhat.com>
4526
4527 * coretypes.h (OVERRIDE): New macro.
4528 (FINAL): New macro.
4529
4530 2016-05-06 Eric Botcazou <ebotcazou@adacore.com>
4531
4532 * tree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case,
4533 allow coalescing if the types are compatible.
4534
4535 2016-05-06 David Malcolm <dmalcolm@redhat.com>
4536
4537 * pass_manager.h (pass_manager::register_pass_name): New method.
4538 (pass_manager::get_pass_by_name): New method.
4539 (pass_manager::create_pass_tab): New method.
4540 (pass_manager::m_name_to_pass_map): New field.
4541 * passes.c (name_to_pass_map): Delete global in favor of field
4542 "m_name_to_pass_map" of pass_manager.
4543 (register_pass_name): Rename from a function to...
4544 (pass_manager::register_pass_name): ...this method, updating
4545 for renaming of global "name_to_pass_map" to field
4546 "m_name_to_pass_map".
4547 (create_pass_tab): Rename from a function to...
4548 (pass_manager::create_pass_tab): ...this method, updating
4549 for renaming of global "name_to_pass_map" to field.
4550 (get_pass_by_name): Rename from a function to...
4551 (pass_manager::get_pass_by_name): ...this method.
4552 (enable_disable_pass): Convert use of get_pass_by_name to
4553 a method call, locating the pass_manager singleton.
4554
4555 2016-05-06 David Malcolm <dmalcolm@redhat.com>
4556
4557 * genattr-common.c (main): Convert argv from char ** to const char **.
4558 * genattr.c (main): Likewise.
4559 * genattrtab.c (main): Likewise.
4560 * genautomata.c (initiate_automaton_gen): Likewise.
4561 (main): Likewise.
4562 * gencodes.c (main): Likewise.
4563 * genconditions.c (main): Likewise.
4564 * genconfig.c (main): Likewise.
4565 * genconstants.c (main): Likewise.
4566 * genemit.c (main): Likewise.
4567 * genenums.c (main): Likewise.
4568 * genextract.c (main): Likewise.
4569 * genflags.c (main): Likewise.
4570 * genmddeps.c (main): Likewise.
4571 * genopinit.c (main): Likewise.
4572 * genoutput.c (main): Likewise.
4573 * genpeep.c (main): Likewise.
4574 * genpreds.c (main): Likewise.
4575 * genrecog.c (main): Likewise.
4576 * gensupport.c (init_rtx_reader_args_cb): Likewise.
4577 (init_rtx_reader_args): Likewise.
4578 * gensupport.h (init_rtx_reader_args_cb): Likewise.
4579 (init_rtx_reader_args): Likewise.
4580 * gentarget-def.c (main): Likewise.
4581 * read-md.c (read_md_files): Likewise.
4582 * read-md.h (read_md_files): Likewise.
4583
4584 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
4585
4586 * config/i386/i386.md (int cmove peephole2s): Use general_reg_operand
4587 instead of register_and_not_any_fp_reg_operand as operand 0 predicate.
4588 * config/i386/predicates.md (register_and_not_any_fp_reg_operand):
4589 Remove unused predicate.
4590 (register_and_not_fp_reg_operand): Ditto.
4591
4592 2016-05-06 Martin Liska <mliska@suse.cz>
4593
4594 * tree-if-conv.c (ifcvt_split_critical_edges): Use auto_vec
4595 instead of vec as the vector is local to the function.
4596
4597 2016-05-06 Jakub Jelinek <jakub@redhat.com>
4598
4599 * config/i386/sse.md (*<code>v8hi3, *<code>v16qi3): Add
4600 avx512bw alternative.
4601
4602 * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>): Move
4603 before the ashr<mode>3 pattern.
4604
4605 * config/i386/sse.md (*avx2_pmaddwd, *sse2_pmaddwd): Use
4606 v instead of x in vex or maybe_vex alternatives, use
4607 maybe_evex instead of vex in prefix.
4608
4609 * config/i386/sse.md (*vec_extractv4sf_0, *sse4_1_extractps,
4610 *vec_extractv4sf_mem, vec_extract_lo_v16hi, vec_extract_hi_v16hi,
4611 vec_extract_lo_v32qi, vec_extract_hi_v32qi): Use v instead of x
4612 in vex or maybe_vex alternatives, use maybe_evex instead of vex
4613 in prefix.
4614
4615 * config/i386/sse.md (*vec_concatv2sf_sse4_1, *vec_concatv4sf): Use
4616 v instead of x in vex or maybe_vex alternatives, use
4617 maybe_evex instead of vex in prefix.
4618
4619 * config/i386/sse.md (sse_shufps_<mode>, sse_storehps, sse_loadhps,
4620 sse_storelps, sse_movss, avx2_vec_dup<mode>, avx2_vec_dupv8sf_1,
4621 sse2_shufpd_<mode>, sse2_storehpd, sse2_storelpd, sse2_loadhpd,
4622 sse2_loadlpd, sse2_movsd): Use v instead of x in vex or maybe_vex
4623 alternatives, use maybe_evex instead of vex in prefix.
4624
4625 * config/i386/sse.md (vec_interleave_lowv4sf,
4626 *vec_interleave_highv2df, *vec_interleave_lowv2df): Use
4627 v instead of x in vex or maybe_vex alternatives, use
4628 maybe_evex instead of vex in prefix.
4629
4630 * config/i386/sse.md (sse_movhlps, sse_movlhps): Use
4631 v instead of x in vex or maybe_vex alternatives, use
4632 maybe_evex instead of vex in prefix.
4633
4634 * config/i386/sse.md (*avx_cvtpd2dq256_2, *avx_cvtps2pd256_2): Use
4635 v constraint instead of x.
4636
4637 2016-05-06 Nathan Sidwell <nathan@codesourcery.com>
4638
4639 * gimple.c (gimple_call_same_target_p): Unique functions are eq.
4640 * tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
4641 equality first.
4642
4643 2016-05-06 Richard Biener <rguenther@suse.de>
4644
4645 PR tree-optimization/70948
4646 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
4647 Properly clobber all fields of va_list for __builtin_va_start.
4648
4649 2016-05-06 Yuri Rumyantsev <ysrumyan@gmail.com>
4650
4651 PR debug/70935
4652 * tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
4653 loop latch destination.
4654
4655 2016-05-06 Martin Liska <mliska@suse.cz>
4656
4657 * tree-ssa-uninit.c: Apply manual changes
4658 to the GNU coding style.
4659 (prune_uninit_phi_opnds): Rename from
4660 prune_uninit_phi_opnds_in_unrealizable_paths.
4661
4662 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
4663
4664 * config/sh/sh.opt (madjust-unroll, minvalid-symbols, msoft-atomic,
4665 mspace): Remove deprecated options.
4666 * doc/invoke.texi (SH options): Remove -mspace.
4667
4668 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
4669
4670 * config/sh/sh.md (ic_invalidate_line_sh4a): Fix insn length.
4671
4672 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
4673
4674 * config/sh/sh.md (*cmpeqsi_t): Remove combine insn pattern and similar
4675 corresponding combine split pattern.
4676
4677 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
4678
4679 PR target/58219
4680 * config/sh/predicates.md (long_displacement_mem_operand): New.
4681 * config/sh/sh.md (movsi_i): Allow for SH2A, disallow for any FPU.
4682 Add movi20, movi20s alternatives. Adjust length attribute for
4683 alternatives.
4684 (movsi_ie): Allow for any FPU. Adjust length attribute for
4685 alternatives.
4686 (movsi_i_lowpart): Add movi20, movi20s alternatives. Adjust length
4687 attribute for alternatives.
4688 (*mov<mode>): Use long_displacement_mem_operand for length attribute.
4689 (*movdi_i, movdf_k, movdf_i4, movsf_i, movsf_ie, movsf_ie_ra): Adjust
4690 length attribute for alternatives.
4691
4692 2016-05-06 Richard Biener <rguenther@suse.de>
4693
4694 PR tree-optimization/70960
4695 * tree-if-conv.c (ifcvt_walk_pattern_tree): Handle non-SSA ops.
4696
4697 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
4698
4699 PR target/52933
4700 * config/sh/sh.md (*cmp_div0s_7, *cmp_div0s_8): Add div0s variants.
4701 * config/sh/sh.c (sh_rtx_costs): Add another div0s case.
4702
4703 2016-05-06 Marek Polacek <polacek@redhat.com>
4704
4705 PR sanitizer/70875
4706 * ubsan.c (get_ubsan_type_info_for_type): Remove assert.
4707
4708 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
4709
4710 PR target/54089
4711 * config/sh/sh.md (*rotcr): Add another variant.
4712
4713 2016-05-06 Richard Biener <rguenther@suse.de>
4714
4715 PR middle-end/70931
4716 * dwarf2out.c (native_encode_initializer): Skip zero-sized fields.
4717
4718 2016-05-06 Richard Biener <rguenther@suse.de>
4719
4720 PR middle-end/70941
4721 * fold-const.c (split_tree): Always convert to the original type
4722 before negating.
4723
4724 2016-05-06 Richard Biener <rguenther@suse.de>
4725
4726 * fwprop.c (fwprop): Remove duplicate cleanup_cfg call.
4727 (fwprop_addr): Likewise.
4728
4729 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
4730
4731 PR target/70873
4732 * config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p):
4733 New prototype.
4734 * config/i386/i386.c (ix86_standard_x87sse_constant_load_p): New.
4735 * config/i386/i386.md (push mem splitter): Use find_constant_src in
4736 the splitter condition.
4737 (FP load splitter): Use ix86_standard_x87sse_constant_load_p in
4738 the splitter condition.
4739 (FP float_extend load splitter): Ditto.
4740
4741 2016-05-05 Uros Bizjak <ubizjak@gmail.com>
4742
4743 * config/i386/i386.md (peehole2 patterns): Change true_regnum
4744 to REGNO in all peephole2 patterns.
4745 (post-reload splitters): Change true_regnum to REGNO in
4746 post-reload splitters.
4747 (zero_extend splitters): Use general_reg_operand and
4748 nonimmediate_gr_operand predicates.
4749
4750 2016-05-05 Jakub Jelinek <jakub@redhat.com>
4751
4752 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use
4753 v constraint instead of x.
4754
4755 2016-05-05 Alan Modra <amodra@gmail.com>
4756
4757 PR target/68662
4758 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
4759 set OPTION_MASK_RELOCATABLE when flag_pic == 2. Set
4760 TARGET_NO_FP_IN_TOC for -mrelocatable.
4761 (MINIMAL_TOC_SECTION_ASM_OP): Remove redundant
4762 TARGET_RELOCATABLE test.
4763 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
4764 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
4765 * config/rs6000/linux64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
4766 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
4767 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
4768 * config/rs6000/freebsd64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
4769 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
4770 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
4771 * config/rs6000/predicates.md (easy_fp_constant): Likewise.
4772 * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
4773 Likewise.
4774 (rs6000_assemble_integer): Update TARGET_RELOCATABLE test.
4775 (rs6000_stack_info): Likewise.
4776 (rs6000_elf_asm_out_constructor): Likewise.
4777 (rs6000_elf_asm_out_destructor): Likewise.
4778 (rs6000_elf_declare_function_name): Likewise.
4779 * config/rs6000/rs6000.md (load_toc_aix_di): Likewise.
4780 * config/rs6000/rs6000.h (MASK_RELOCATABLE, MASK_MINIMAL_TOC):
4781 Don't define.
4782
4783 2016-05-05 Alan Modra <amodra@gmail.com>
4784
4785 * config/rs6000/rs6000.c (rs6000_frame_related): Rewrite.
4786
4787 2016-05-05 Alan Modra <amodra@gmail.com>
4788
4789 * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
4790 out-of-line gpr restore for one or two regs if that would add
4791 a save of lr.
4792
4793 2016-05-04 Uros Bizjak <ubizjak@gmail.com>
4794
4795 PR target/70873
4796 * config/i386/i386.md
4797 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df peephole2):
4798 Change to post-epilogue_completed late splitter. Use sse_reg_operand
4799 as operand 0 predicate.
4800 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf peephole2):
4801 Ditto.
4802 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2):
4803 Ditto. Emit the pattern using RTX.
4804
4805 (TARGET_USE_VECTOR_FP_CONVERTS float_extend sf->df splitter):
4806 Use sse_reg_opreand as operand 0 predicate. Do not use true_regnum in
4807 the post-reload splitter. Use lowpart_subreg instead of gen_rtx_REG.
4808 (TARGET_USE_VECTOR_FP_CONVERTS float_truncate df->sf splitter):
4809 Ditto.
4810 (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use
4811 sse_reg_operand as operand 0 predicate.
4812
4813 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_extend sf->df peephole2):
4814 Use sse_reg_opreand as operand 0 predicate. Use lowpart_subreg
4815 instead of gen_rtx_REG.
4816 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_truncate sf->df peephole2):
4817 Ditto.
4818
4819 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
4820
4821 * function.c (emit_use_return_register_into_block): Delete.
4822 (gen_return_pattern): Delete.
4823 (emit_return_into_block): Delete.
4824 (active_insn_between): Delete.
4825 (convert_jumps_to_returns): Delete.
4826 (emit_return_for_exit): Delete.
4827 (thread_prologue_and_epilogue_insns): Delete all code dealing with
4828 simple_return for shrink-wrapped blocks.
4829 * shrink-wrap.c (try_shrink_wrapping): Insert simple_return at the
4830 end of blocks that need one.
4831 (get_unconverted_simple_return): Delete.
4832 (convert_to_simple_return): Delete.
4833 * shrink-wrap.c (get_unconverted_simple_return): Delete declaration.
4834 (convert_to_simple_return): Ditto.
4835
4836 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
4837
4838 * cfgcleanup.c (bb_is_just_return): New function.
4839 (try_optimize_cfg): Simplify jumps to return, branches to return,
4840 and branches around return.
4841
4842 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
4843
4844 * cfgcleanup.c (try_simplify_condjump): Don't try to simplify a
4845 branch to a return.
4846
4847 2016-05-04 Jakub Jelinek <jakub@redhat.com>
4848
4849 PR c++/70906
4850 PR c++/70933
4851 * tree-core.h (enum operand_equal_flag): Add OEP_HASH_CHECK.
4852 * tree.c (inchash::add_expr): If !IS_EXPR_CODE_CLASS (tclass),
4853 assert flags & OEP_HASH_CHECK, instead of asserting it
4854 never happens. Handle TARGET_EXPR.
4855 * fold-const.c (operand_equal_p): For hash verification,
4856 or in OEP_HASH_CHECK into flags.
4857
4858 2016-05-04 Eric Botcazou <ebotcazou@adacore.com>
4859
4860 * tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
4861 comment.
4862 (compute_samebase_partition_bases): Fix typo.
4863
4864 2016-05-04 Jakub Jelinek <jakub@redhat.com>
4865
4866 * config/i386/sse.md (vec_interleave_highv8sf,
4867 vec_interleave_lowv8sf, vec_interleave_highv4df,
4868 vec_interleave_lowv4df): Remove constraints from expanders.
4869
4870 * config/i386/sse.md (sse2_movq128): Use v constraint instead of x.
4871
4872 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
4873
4874 * tree-inline.c (expand_call_inline): Fix path dealing with
4875 making lhs of call statement undefined.
4876
4877 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
4878
4879 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
4880 Check availability on NODE, too.
4881 * cgraph.h (symtab_node::call_for_symbol_and_aliases): Likewise.
4882 (cgraph_node::call_for_symbol_and_aliases): Likewise.
4883 (varpool_node::call_for_symbol_and_aliase): Likewise.
4884 * ipa-pure-const.c (add_new_function): Analyze all bodies.
4885 (propagate_pure_const): Propagate across interposable functions, too.
4886 (skip_function_for_local_pure_const): Do not skip interposable bodies
4887 with aliases.
4888 (pass_local_pure_const::execute): Update.
4889
4890 2016-05-04 Marek Polacek <polacek@redhat.com>
4891
4892 * doc/invoke.texi: Document -Wdangling-else.
4893
4894 2016-05-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
4895
4896 * config.gcc: Error out when conflicting multilib is detected. Do not
4897 loop over multilibs since no combination is legal.
4898
4899 2016-05-04 Alan Modra <amodra@gmail.com>
4900
4901 * config/rs6000/rs6000.h (PIC_OFFSET_TABLE_REGNUM): Correct.
4902 * config/rs6000/sysv4.h (TARGET_TOC): Simplify.
4903 * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
4904 Align .toc.
4905
4906 2016-05-04 Matthew Fortune <matthew.fortune@imgtec.com>
4907
4908 * config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
4909 Clean up p5600 comments.
4910
4911 2016-05-04 Richard Biener <rguenther@suse.de>
4912
4913 * match.pd: Add BIT_FIELD_REF canonicalizations and vector
4914 constructor simplifications.
4915 * fold-const.c (fold_ternary_loc): Remove duplicate functionality here.
4916
4917 2016-05-04 Oleg Endo <olegendo@gcc.gnu.org>
4918
4919 * config/sh/predicates (post_inc_mem, pre_dec_mem): New predicates.
4920 * config/sh/sh-protos.h (sh_find_set_of_reg): Return null result if
4921 result.set_rtx is null instead of aborting.
4922 * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT):
4923 Always enable.
4924 (USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT): Enable for SH2A.
4925 * config/sh/sh.md (*extend<mode>si2_predec, *mov<mode>_load_predec,
4926 *mov<mode>_store_postinc): New patterns.
4927
4928 2016-05-04 Marc Glisse <marc.glisse@inria.fr>
4929
4930 * match.pd ((A | B) & (A | C)): Generalize to BIT_XOR_EXPR. Mark
4931 as commutative. Check both conversions are NOP.
4932 ((A & B) OP (C & B)): Remove.
4933
4934 2016-05-04 Alan Modra <amodra@gmail.com>
4935
4936 * combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.
4937
4938 2016-05-04 Alan Modra <amodra@gmail.com>
4939
4940 PR target/70866
4941 * config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
4942 when cr2,3,4 are all fixed regs.
4943
4944 2016-05-04 Bernd Schmidt <bschmidt@redhat.com>
4945
4946 PR rtl-optimization/57193
4947 * opts.c (default_options_table): Revert OPT_frename_registers change.
4948 * doc/invoke.texi (-frename-registers, -O2): Likewise.
4949
4950 2016-05-03 Martin Sebor <msebor@redhat.com>
4951
4952 PR c++/66561
4953 * builtins.c (fold_builtin_FILE): New function.
4954 (fold_builtin_FUNCTION, fold_builtin_LINE): New functions.
4955 (fold_builtin_0): Call them.
4956 * gimplify.c (gimplify_call_expr): Remove the handling of
4957 BUILT_IN_FILE, BUILT_IN_FUNCTION, and BUILT_IN_LINE.
4958
4959 PR c++/66561
4960 * doc/extend.texi (Other Builtins): Update __builtin_FILE,
4961 __builtin_FUNCTION, and __builtin_LINE to reflect they yield
4962 constants.
4963
4964 PR c++/66639
4965 * doc/extend.texi (Function Names as Strings): Update __func__,
4966 __FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
4967 constants.
4968
4969 2016-05-03 Jakub Jelinek <jakub@redhat.com>
4970 Richard Biener <rguenther@suse.de>
4971
4972 PR tree-optimization/70916
4973 * tree-if-conv.c: Include cfganal.h.
4974 (pass_if_conversion::execute): Call connect_infinite_loops_to_exit
4975 and remove_fake_exit_edges around the optimization pass.
4976
4977 2016-05-03 Jan Hubicka <hubicka@ucw.cz>
4978
4979 * cgraph.c (symbol_table::create_edge): Set inline_failed.
4980 (cgraph_edge::make_direct): Likewise.
4981 (cgraph_edge::dump_edge_flags): Dump call_stmt_cannot_inline_p.
4982 * cgraphclones.c (duplicate_thunk_for_node): Set inline_failed.
4983 * cif-code.def (CIF_LTO_MISMATCHED_DECLARATIONS): New code
4984 (CIF_THUNK): New code.
4985 * ipa-inline-analysis.c (initialize_inline_failed): Preserve
4986 CIF_FINAL_ERROR codes; do not deal with call_stmt_cannot_inline_p.
4987 (compute_inline_parameters): Set inline_failed for thunks.
4988 (inline_analyze_function): Cleanup.
4989 * ipa-inline.c (can_inline_edge_p): Do not deal with
4990 call_stmt_cannot_inline_p.
4991 (can_early_inline_edge_p): Likewise.
4992 (early_inliner): Initialize inline_failed.
4993 * lto-cgraph.c (lto_output_edge): Sanity check inline_failed.
4994
4995 2016-05-03 Uros Bizjak <ubizjak@gmail.com>
4996
4997 * config/i386/predicates.md (x87nonimm_ssenomem_operand): Rename
4998 from nonimm_ssenomem_operand.
4999 (nonimm_ssenomem_operand): New predicate.
5000 * config/i386/i386.md (extendsfdf2): Use nonimm_ssenomem_operand
5001 as operand 0 predicate.
5002 (*extendsfdf2): Merge from *extendsfdf2_mixed and *extendsfdf2_i387.
5003 Disable unsupported alternatives using "enabled" attribute.
5004 Use register_ssemem_operand as operand 0 predicate.
5005 (*fop_<mode>_1): Use x87nonimm_ssenomem_operand as operand 1 predicate.
5006
5007 2016-05-03 Marek Polacek <polacek@redhat.com>
5008
5009 PR c/70859
5010 * input.c (expansion_point_location): New function.
5011 * input.h (expansion_point_location): Declare.
5012
5013 2016-05-03 Pierre-Marie de Rodat <derodat@adacore.com>
5014
5015 * dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
5016 occurence with frame_offset_ ones.
5017
5018 2016-05-03 Alan Modra <amodra@gmail.com>
5019
5020 PR rtl-optimization/70890
5021 * ira.c (combine_and_move_insns): When moving def_insn, remove
5022 equivs on use_insn.
5023
5024 2016-05-03 Dominik Vogt <vogt@linux.vnet.ibm.com>
5025
5026 * config/s390/s390.md ("*r<noxa>sbg_<mode>_sll")
5027 ("*r<noxa>sbg_<mode>_srl"): New define_insns.
5028 ("*r<noxa>sbg_<mode>_srl_bitmask"): Rename by adding "_bitmask".
5029 ("*r<noxa>sbg_<mode>_sll_bitmask"): Likewise.
5030
5031 2016-05-03 Alan Modra <amodra@gmail.com>
5032
5033 * config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
5034 for SAVE_MULTIPLE/STORE_MULTIPLE.
5035
5036 2016-05-03 Jakub Jelinek <jakub@redhat.com>
5037
5038 * config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
5039 *truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead of x.
5040
5041 2016-05-03 Richard Biener <rguenther@suse.de>
5042
5043 * gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
5044 default true.
5045 (gimplify_arg): Likewise.
5046 * gimplify.c (gimplify_expr): Add overload with allow_ssa parameter,
5047 re-writing the result to a decl if required.
5048 (internal_get_tmp_var): Add allow_ssa parameter
5049 and override into_ssa with it.
5050 (get_formal_tmp_var): Adjust.
5051 (get_initialized_tmp_var): Add allow_ssa parameter.
5052 (gimplify_arg): Add allow_ssa parameter and avoid generating
5053 SSA names for the result false.
5054 (gimplify_call_expr): If the call may return twice do not
5055 gimplify parameters into SSA.
5056 (prepare_gimple_addressable): Do not allow an SSA name as temporary.
5057 (gimplify_modify_expr): Adjust assert. For noreturn calls
5058 with a SSA name LHS adjust its def.
5059 (gimplify_save_expr): Do not allow an SSA name as save-expr result.
5060 (gimplify_one_sizepos): Do not allow an SSA name as a sizepos.
5061 (gimplify_body): Init GIMPLE SSA data structures and gimplify into-SSA.
5062 (gimplify_scan_omp_clauses): Make sure OMP_CLAUSE_SIZE is not
5063 an SSA name. Likewise for OMP_CLAUSE_REDUCTION operands.
5064 (gimplify_omp_for): Likewise for OMP_CLAUSE_DECL. Likewise
5065 for OMP_FOR_COND, OMP_FOR_INCR and OMP_CLAUSE_LINEAR_STEP.
5066 (optimize_target_teams): Do not allow SSA names for clause operands.
5067 (gimplify_expr): Likewise for where we mark the result addressable.
5068 * passes.def (pass_init_datastructures): Remove.
5069 * tree-into-ssa.c (mark_def_sites): Ignore existing SSA names.
5070 (rewrite_stmt): Likewise.
5071 * tree-inline.c (initialize_cfun): Properly transfer SSA state.
5072 (replace_locals_op): Replace SSA names.
5073 (copy_gimple_seq_and_replace_locals): Init src_cfun.
5074 * gimple-low.c (lower_builtin_setjmp): Deal with SSA.
5075 * cgraph.c (release_function_body): Free CFG annotations only
5076 when we have a CFG. Simplify.
5077 * gimple-fold.c (gimplify_and_update_call_from_tree): Use
5078 force_gimple_operand instead of get_initialized_tmp_var.
5079 * tree-pass.h (make_pass_init_datastructures): Remove.
5080 * tree-ssa.c (execute_init_datastructures): Remove.
5081 (pass_data_init_datastructures): Likewise.
5082 (class pass_init_datastructures): Likewise.
5083 (make_pass_init_datastructures): Likewise.
5084 * omp-low.c (create_omp_child_function): Init SSA data structures.
5085 (grid_expand_target_grid_body): Likewise.
5086 * tree-cfg.c (move_block_to_fn): Double-check the DEF is an SSA
5087 name before adding it to names_to_release.
5088 (remove_bb): Always release SSA defs.
5089 * tree-ssa-ccp.c (get_default_value): Check SSA_NAME_VAR
5090 before dereferencing it.
5091 * cgraphunit.c (init_lowered_empty_function): Always
5092 int SSA data structures.
5093 * tree-ssanames.c (release_defs): Remove assert that we are in
5094 SSA form.
5095 * trans-mem.c (diagnose_tm_1): Handle SSA name function.
5096
5097 2016-05-03 Jakub Jelinek <jakub@redhat.com>
5098 Uros Bizjak <ubizjak@gmail.com>
5099
5100 PR rtl-optimization/70467
5101 * config/i386/predicates.md (x86_64_hilo_int_operand,
5102 x86_64_hilo_general_operand): New predicates.
5103 * config/i386/constraints.md (Wd): New constraint.
5104 * config/i386/i386.md (mode attr di): Use Wd instead of e.
5105 (general_hilo_operand): New mode attr.
5106 (add<mode>3, sub<mode>3): Use <general_hilo_operand>
5107 instead of <general_operand>.
5108 (*add<dwi>3_doubleword, *sub<dwi>3_doubleword): Use
5109 x86_64_hilo_general_operand instead of <general_operand>.
5110
5111 2016-05-03 Jakub Jelinek <jakub@redhat.com>
5112
5113 PR tree-optimization/70916
5114 * tree-if-conv.c (constant_or_ssa_name): Removed.
5115 (fold_build_cond_expr): Use is_gimple_val instead of
5116 constant_or_ssa_name.
5117
5118 PR tree-optimization/70916
5119 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
5120 if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.
5121
5122 PR target/49244
5123 * tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h.
5124 (optimize_atomic_bit_test_and): New function.
5125 (pass_fold_builtins::execute): Use it.
5126 * optabs.def (atomic_bit_test_and_set_optab,
5127 atomic_bit_test_and_complement_optab,
5128 atomic_bit_test_and_reset_optab): New optabs.
5129 * internal-fn.def (ATOMIC_BIT_TEST_AND_SET,
5130 ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_BIT_TEST_AND_RESET): New ifns.
5131 * builtins.h (expand_ifn_atomic_bit_test_and): New prototype.
5132 * builtins.c (expand_ifn_atomic_bit_test_and): New function.
5133 * internal-fn.c (expand_ATOMIC_BIT_TEST_AND_SET,
5134 expand_ATOMIC_BIT_TEST_AND_COMPLEMENT,
5135 expand_ATOMIC_BIT_TEST_AND_RESET): New functions.
5136 * doc/md.texi (atomic_bit_test_and_set@var{mode},
5137 atomic_bit_test_and_complement@var{mode},
5138 atomic_bit_test_and_reset@var{mode}): Document.
5139 * config/i386/sync.md (atomic_bit_test_and_set<mode>,
5140 atomic_bit_test_and_complement<mode>,
5141 atomic_bit_test_and_reset<mode>): New expanders.
5142 (atomic_bit_test_and_set<mode>_1,
5143 atomic_bit_test_and_complement<mode>_1,
5144 atomic_bit_test_and_reset<mode>_1): New insns.
5145
5146 2016-05-03 Richard Sandiford <richard.sandiford@arm.com>
5147
5148 PR rtl-optimization/70687
5149 * combine.c (change_zero_ext): Check for scalar modes. Use wide_int
5150 instead of unsigned HOST_WIDE_INT.
5151
5152 2016-05-03 Bernd Schmidt <bschmidt@redhat.com>
5153
5154 PR rtl-optimization/44281
5155 * hard-reg-set.h (struct target_hard_regs): New field
5156 x_fixed_nonglobal_reg_set.
5157 (fixed_nonglobal_reg_set): New macro.
5158 * reginfo.c (init_reg_sets_1): Initialize it.
5159 * ira.c (setup_alloc_regs): Use fixed_nonglobal_reg_set instead
5160 of fixed_reg_set.
5161 * df-scan.c (df_insn_refs_collect): Asms may reference global regs.
5162
5163 2016-05-03 Bin Cheng <bin.cheng@arm.com>
5164
5165 PR tree-optimization/56541
5166 * doc/invoke.texi (@item max-tree-if-conversion-phi-args): New item.
5167 * params.def (PARAM_MAX_TREE_IF_CONVERSION_PHI_ARGS): new param.
5168 * tree-if-conv.c (MAX_PHI_ARG_NUM): new macro.
5169 (any_complicated_phi): new static variable.
5170 (aggressive_if_conv): delete.
5171 (if_convertible_phi_p): support phis with more than two arguments.
5172 (if_convertible_bb_p): remvoe check on aggressive_if_conv and
5173 critical pred edges.
5174 (ifcvt_split_critical_edges): support phis with more than two
5175 arguments by checking new parameter. only split critical edges
5176 if needed.
5177 (tree_if_conversion): handle simd pragma marked loop using new
5178 local variable aggressive_if_conv. check any_complicated_phi.
5179
5180 2016-05-03 Bin Cheng <bin.cheng@arm.com>
5181
5182 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
5183 before using it.
5184
5185 2016-05-03 Bin Cheng <bin.cheng@arm.com>
5186
5187 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
5188 cbase.
5189
5190 2016-05-03 Oleg Endo <olegendo@gcc.gnu.org>
5191
5192 * config/sh/sh.md (udivsi3, divsi3, mulsi3): Simplify.
5193 (mulhisi3, umulhisi3, (smulsi3_highpart, umulsi3_highpart): Convert to
5194 define_insn_and_split.
5195 (mulsi3_i): New define_insn_and_split.
5196 (mulsi3_call): Convert to define_insn.
5197 (mulsidi3, mulsidi3_compact, umulsidi3, umulsidi3_compact):
5198 Remove constraints.
5199
5200 2016-05-02 Michael Meissner <meissner@linux.vnet.ibm.com>
5201
5202 * machmode.h (mode_complex): Add support to give the complex mode
5203 for a given mode.
5204 (GET_MODE_COMPLEX_MODE): Likewise.
5205 * stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
5206 stored by build_complex_type and gfc_build_complex_type instead of
5207 trying to figure out the appropriate mode based on the size. Raise
5208 an assertion error, if the type was not set.
5209 * genmodes.c (struct mode_data): Add field for the complex type of
5210 the given type.
5211 (blank_mode): Likewise.
5212 (make_complex_modes): Remember the complex mode created in the
5213 base type.
5214 (emit_mode_complex): Write out the mode_complex array to map a
5215 type mode to the complex version.
5216 (emit_insn_modes_c): Likewise.
5217 * tree.c (build_complex_type): Set the complex type to use before
5218 calling layout_type.
5219 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
5220 support for __float128 complex datatypes.
5221 (rs6000_hard_regno_mode_ok): Likewise.
5222 (rs6000_setup_reg_addr_masks): Likewise.
5223 (rs6000_complex_function_value): Likewise.
5224 * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
5225 __float128 and __ibm128 complex.
5226 (FLOAT128_IBM_P): Likewise.
5227 (ALTIVEC_ARG_MAX_RETURN): Likewise.
5228 * doc/extend.texi (Additional Floating Types): Document that
5229 -mfloat128 must be used to enable __float128. Document complex
5230 __float128 and __ibm128 support.
5231
5232 2016-05-02 Jakub Jelinek <jakub@redhat.com>
5233
5234 PR target/49244
5235 * gimple.c (gimple_builtin_call_types_compatible_p): Allow
5236 char/short arguments promoted to int because of promote_prototypes.
5237
5238 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
5239
5240 * config/i386/predicates.md (register_ssemem_operand): New predicate.
5241 * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Merge from
5242 *cmpi<FPCMP:unord><MODEF:mode>_mixed and
5243 *cmpi<FPCMP:unord><X87MODEF:mode>_i387. Disable unsupported
5244 alternatives using "enabled" attribute. Use register_ssemem_operand
5245 as operand 1 predicate.
5246 (*cmpi<unord>xf_i387): Split XFmode pattern from
5247 *cmpi<FPCMP:unord><X87MODEF:mode>_i387.
5248 (*absneg<mode>2): Merge from *absneg<mode>2_mixed and
5249 *absneg<mode>2_i387. Disable unsupported alternatives using
5250 "enabled" attribute.
5251 (*absnegxf2_i387): Split XFmode pattern from *absneg<mode>2_i387.
5252
5253 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
5254
5255 * omp-low.c (lower_oacc_head_tail): Assert there is at least one
5256 marker.
5257 (oacc_loop_process): Check mask for loop termination.
5258
5259 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
5260
5261 * cif-code.def (CIF_THUNK): Add.
5262 * ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
5263 accidental change.
5264
5265 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
5266
5267 * ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
5268 (dump_inline_summary): Dump it.
5269 (fp_expression_p): New predicate.
5270 (estimate_function_body_sizes): Use it.
5271 (inline_merge_summary): Merge fp_expressions.
5272 (inline_read_section): Read fp_expressions.
5273 (inline_write_summary): Write fp_expressions.
5274 * ipa-inline.c (can_inline_edge_p): Permit inlining across fp math
5275 codegen boundary if either caller or callee is !fp_expressions.
5276 * ipa-inline.h (inline_summary): Add fp_expressions.
5277 * ipa-inline-transform.c (inline_call): When inlining !fp_expressions
5278 to fp_expressions be sure the fp generation flags are updated.
5279
5280 2016-05-02 Jakub Jelinek <jakub@redhat.com>
5281
5282 PR rtl-optimization/70467
5283 * cse.c (cse_insn): Handle no-op MEM moves after folding.
5284
5285 PR rtl-optimization/70467
5286 * ipa-pure-const.c (check_call): Handle internal calls even in
5287 ipa mode like in local mode.
5288
5289 2016-05-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
5290
5291 * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.
5292
5293 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
5294
5295 * match.pd (X u< X, X u> X): New transformations.
5296
5297 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
5298
5299 * flag-types.h (enum warn_strict_overflow_code): Move ...
5300 * coretypes.h: ... here.
5301 * fold-const.h (fold_overflow_warning): Declare.
5302 * fold-const.c (fold_overflow_warning): Make non-static.
5303 (fold_comparison): Move the transformation of X +- C1 CMP C2
5304 into X CMP C2 -+ C1 ...
5305 * match.pd: ... here.
5306 * gimple-fold.c (fold_stmt_1): Protect with
5307 fold_defer_overflow_warnings.
5308
5309 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
5310
5311 * omp-low.c (struct oacc_loop): Add 'inner' field.
5312 (new_oacc_loop_raw): Initialize it to zero.
5313 (oacc_loop_fixed_partitions): Initialize it.
5314 (oacc_loop_auto_partitions): Partition outermost loop to outermost
5315 available partitioning.
5316
5317 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
5318
5319 * config/arc/arc.md (mulsidi3): Change operand 0 predicate to
5320 register_operand.
5321 (umulsidi3): Likewise.
5322 (indirect_jump): Fix jump instruction assembly patterns.
5323
5324 2016-05-02 Thomas Schwinge <thomas@codesourcery.com>
5325
5326 PR target/70860
5327 * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
5328 (nvptx_function_value): Assert non-NULL cfun.
5329
5330 2016-05-02 Eric Botcazou <ebotcazou@adacore.com>
5331
5332 PR rtl-optimization/70886
5333 * sched-deps.c (estimate_dep_weak): Canonicalize cselib values.
5334
5335 * cselib.h (rtx_equal_for_cselib_1): Declare.
5336 (rtx_equal_for_cselib_p: New inline function.
5337 * cselib.c (rtx_equal_for_cselib_p): Delete.
5338 (rtx_equal_for_cselib_1): Make public.
5339
5340 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
5341
5342 * config/i386/predicates.md (nonimm_ssenomem_operand): New predicate.
5343 (register_mixssei387nonimm_operand): Remove predicate.
5344 * config/i386/i386.md (*fop_<mode>_comm): Merge from
5345 *fop_<mode>_comm_mixed and *fop_<mode>_comm_i387. Disable unsupported
5346 alternatives using "enabled" attribute. Also check X87_ENABLE_ARITH
5347 for TARGET_MIX_SSE_I387 alternatives.
5348 (*fop_<mode>_1): Merge from *fop_<mode>_1_mixed and *fop_<mode>_1_i387.
5349 Disable unsupported alternatives using "enabled" attribute. Use
5350 nonimm_ssenomem_operand as operand 1 predicate. Also check
5351 X87_ENABLE_ARITH for TARGET_MIX_SSE_I387 alternatives.
5352
5353 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
5354
5355 * tree.c (cst_and_fits_in_hwi): Simplify.
5356
5357 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
5358
5359 * tree.h (wi::to_wide): New function.
5360 * expr.c (expand_expr_real_1): Use wi::to_wide.
5361 * fold-const.c (int_const_binop_1): Likewise.
5362 (extract_muldiv_1): Likewise.
5363
5364 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
5365
5366 * wide-int.h: Update offset_int and widest_int documentation.
5367 (WI_SIGNED_SHIFT_RESULT): New macro.
5368 (wi::binary_shift): Define signed_shift_result_type for
5369 shifts on offset_int- and widest_int-like types.
5370 (generic_wide_int): Support <<= and >>= if << and >> are supported.
5371 * tree.h (int_bit_position): Use shift operators instead of wi::
5372 shifts.
5373 * alias.c (adjust_offset_for_component_ref): Likewise.
5374 * expr.c (get_inner_reference): Likewise.
5375 * fold-const.c (fold_comparison): Likewise.
5376 * gimple-fold.c (fold_nonarray_ctor_reference): Likewise.
5377 * gimple-ssa-strength-reduction.c (restructure_reference): Likewise.
5378 * tree-dfa.c (get_ref_base_and_extent): Likewise.
5379 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
5380 (stmt_kills_ref_p): Likewise.
5381 * tree-ssa-ccp.c (bit_value_binop_1): Likewise.
5382 * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
5383 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
5384 (ao_ref_init_from_vn_reference): Likewise.
5385
5386 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
5387
5388 * wide-int.h: Update offset_int and widest_int documentation.
5389 (WI_SIGNED_BINARY_PREDICATE_RESULT): New macro.
5390 (wi::binary_traits): Allow ordered comparisons between offset_int and
5391 offset_int, between widest_int and widest_int, and between either
5392 of these types and basic C types.
5393 (operator <, <=, >, >=): Define for the same combinations.
5394 * tree.h (tree_int_cst_lt): Use comparison operators instead
5395 of wi:: comparisons.
5396 (tree_int_cst_le): Likewise.
5397 * gimple-fold.c (fold_array_ctor_reference): Likewise.
5398 (fold_nonarray_ctor_reference): Likewise.
5399 * gimple-ssa-strength-reduction.c (record_increment): Likewise.
5400 * tree-affine.c (aff_comb_cannot_overlap_p): Likewise.
5401 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Likewise.
5402 * tree-sra.c (completely_scalarize): Likewise.
5403 * tree-ssa-alias.c (stmt_kills_ref_p): Likewise.
5404 * tree-ssa-reassoc.c (extract_bit_test_mask): Likewise.
5405 * tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
5406 (check_for_binary_op_overflow): Likewise.
5407 (search_for_addr_array): Likewise.
5408 * ubsan.c (ubsan_expand_objsize_ifn): Likewise.
5409
5410 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
5411
5412 * config/arc/arc.c (arc_preferred_simd_mode): Remove enum keyword.
5413 (arc_save_restore): Likewise.
5414 (arc_dwarf_register_span): Likewise.
5415 (arc_output_pic_addr_const): Initialize suffix variable.
5416
5417 2016-05-02 Martin Liska <mliska@suse.cz>
5418
5419 * symbol-summary.h (function_summary::function_summary):
5420 Remove checking assert for all cgraph nodes.
5421 (function_summary::get): Check summary_uid.
5422 (symtab_insertion): Check summary_uid.
5423
5424 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
5425
5426 * config/arc/arc-protos.h (compact_memory_operand_p): Declare.
5427 * config/arc/arc.c (arc_output_commutative_cond_exec): Consider
5428 bmaskn instruction.
5429 (arc_dwarf_register_span): Remove enum keyword.
5430 (compact_memory_operand_p): New function.
5431 * config/arc/arc.h (reg_class): Add code density register classes.
5432 (REG_CLASS_NAMES): Likewise.
5433 (REG_CLASS_CONTENTS): Likewise.
5434 * config/arc/arc.md (*movqi_insn): Add code density instructions.
5435 (*movhi_insn, *movsi_insn, *movsf_insn): Likewise.
5436 (*extendhisi2_i, andsi3_i, cmpsi_cc_insn_mixed): Likewise.
5437 (*cmpsi_cc_c_insn, *movsi_ne): Likewise.
5438 * config/arc/constraints.md (C2p, Uts, Cm1, Cm3, Ucd): New
5439 constraints.
5440 (h, Rcd, Rsd, Rzd): New register constraints.
5441 (T): Use compact_memory_operand_p function.
5442 * config/arc/predicates.md (compact_load_memory_operand): Remove.
5443
5444 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
5445
5446 * config/sh/sh.md (*negnegt, *movtt): Remove.
5447
5448 2016-05-02 Marek Polacek <polacek@redhat.com>
5449 Tom de Vries <tom@codesourcery.com>
5450
5451 PR tree-optimization/70700
5452 * tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids
5453 bigger than FIRST_REF_NODE.
5454
5455 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
5456
5457 PR target/52898
5458 * config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4,
5459 TARGET_CMPEQDI_T.
5460 (prepare_cbranch_operands): Don't use scratch register. Assume that
5461 function is used when pseudos can be created.
5462 (expand_cbranchdi4): Likewise. Remove unused TARGET_CMPEQDI_T paths.
5463 * config/sh/sh.md (cbranchsi4): Allow only when pseudos can be created.
5464 (cbranchdi4, cbranchdi4_i): Simplify to single cbranchdi4
5465 define_expand. Allow it only when pseudos can be created.
5466 * config/sh/sh.opt (mcbranchdi, mcmpeqdi): Delete.
5467
5468 2016-05-01 Uros Bizjak <ubizjak@gmail.com>
5469
5470 * config/i386/constraints.md (BC): Only allow -1 operands.
5471 * config/i386/sse.md (mov<mode>_internal): Add (v,C) alternative.
5472 Add "enabled" attribute. Update XI mode attribute calculation.
5473 * config/i386/i386.md (*movxi_internal_avx512f): Add (v,C) alternative.
5474 (*movoi_internal_avx): Update XI mode attribute calculation.
5475 (*movti_internal): Ditto.
5476
5477 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
5478
5479 * config/sh/sh.md (push, pop, ic_invalidate_line, cstoresi4, cstoredi4,
5480 cstoresf4, cstoredf4, fix_truncsfsi2): Remove constraints.
5481
5482 2016-05-01 Eric Botcazou <ebotcazou@adacore.com>
5483
5484 * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Do not use switch
5485 statement on instruction code. Remove trailing spaces.
5486 (altivec_expand_stv_builtin): Likewise.
5487
5488 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
5489
5490 * config/sh/sh.h (TARGET_SH4): Remove and use default implementation.
5491 (TARGET_FPU_DOUBLE): Simplify.
5492 (BASE_ARG_REG, DOUBLE_TYPE_SIZE, OPTIMIZE_MODE_SWITCHING): Replace
5493 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions with 'TARGET_FPU_DOUBLE'.
5494 * config/sh/sh.c: Replace 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions
5495 with 'TARGET_FPU_DOUBLE'.
5496 * config/sh/sh.md: Likewise.
5497
5498 2016-05-01 Yoshinori Sato <ysato@users.sourceforge.jp>
5499
5500 * config/sh/linux.h (SH_DIV_STRATEGY_DEFAULT,
5501 SH_DIV_STR_FOR_SIZE): Remove.
5502 * config/sh/netbsd-elf.h (SH_DIV_STRATEGY_DEFAULT,
5503 SH_DIV_STR_FOR_SIZE): Remove.
5504
5505 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
5506
5507 * config/sh/predicates.md (any_register_operand, zero_extend_operand,
5508 logical_reg_operand): Delete.
5509 (arith_operand, arith_reg_dest, arith_or_int_operand, cmpsi_operand,
5510 arith_reg_or_0_operand, arith_reg_or_0_or_1_operand, logical_operand,
5511 logical_and_operand, movsrc_no_disp_mem_operand): Rewrite using
5512 match_operand and match_test.
5513 (sh_const_vec, sh_1el_vec): Remove redundant checks. Declare local
5514 variables on their first use. Return bool values.
5515 * config/sh/sh.h (LOAD_EXTEND_OP): Update comment.
5516 * config/sh/sh.md (andsi3, iorsi3): Use arith_reg_dest for result and
5517 arith_reg_operand for input operand. Remove empty constraints.
5518 (xorsi3): Delete.
5519 (*xorsi3_compact): Rename to xorsi3.
5520 (zero_extend<mode>si2): Use arith_reg_operand for input operand.
5521 (*zero_extend<mode>si2_disp_mem): Update comment.
5522 (mov_nop): Delete.
5523
5524 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
5525
5526 * config/sh/t-sh: Remove SH5 support.
5527 * config.gcc: Likewise.
5528 * configure: Likewise.
5529
5530 2016-04-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5531
5532 * config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus.
5533
5534 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
5535
5536 * config/sh/sh.c (register_sh_passes, sh_option_override,
5537 sh_print_operand, prepare_move_operands,
5538 sh_can_follow_jump): Remove TARGET_SH1 checks.
5539 * config/sh/sh.h (TARGET_VARARGS_PRETEND_ARGS, VALID_REGISTER_P,
5540 PROMOTE_MODE): Likewise.
5541 * config/sh/sh.md (adddi3, addsi3, subdi3, subsi3, andsi3,
5542 movdi): Likewise.
5543
5544 2016-04-30 Alan Modra <amodra@gmail.com>
5545
5546 * config/rs6000/rs6000.c (rs6000_savres_strategy): Force inline
5547 restoring when fixed_reg_p, but allow out-of-line or stmw save.
5548 Check for user regs later to avoid unnecessary looping over regs.
5549 Merge user reg check with non-saved reg check. Don't force
5550 inline VR restore when static chain used.
5551 (rs6000_frame_related): Omit eh_frame info for user regs when
5552 saving.
5553 (fixed_regs_p): Delete.
5554
5555 2016-04-30 Alan Modra <amodra@gmail.com>
5556
5557 * config/rs6000/rs6000.c (SAVRES_MULTIPLE): Replace with..
5558 (SAVE_STRATEGY, REST_STRATEGY): ..this. Renumber and sort enum.
5559 Update all uses.
5560
5561 2016-04-30 Alan Modra <amodra@gmail.com>
5562
5563 PR target/69645
5564 * config/rs6000/rs6000.c (fixed_reg_p): New function.
5565 (fixed_regs_p): Rename from global_regs_p. Call fixed_reg_p.
5566 Update all uses.
5567
5568 2016-04-30 Alan Modra <amodra@gmail.com>
5569
5570 * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
5571 Remove redundant PIC_OFFSET_TABLE_REGNUM test. Replace with
5572 flag_pic test for Darwin.
5573
5574 2016-04-30 Alan Modra <amodra@gmail.com>
5575
5576 * regs.h (struct reg_info_t): Delete freq_calls_crossed and
5577 throw_calls_crossed.
5578 (REG_FREQ_CALLS_CROSSED): Delete.
5579 (REG_N_THROWING_CALLS_CROSSED): Delete.
5580 * regstat.c (regstat_bb_compute_ri): Don't calculate
5581 REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED.
5582 (dump_reg_info): Don't print call cross frequency.
5583 * ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED
5584 and REG_N_THROWING_CALLS_CROSSED.
5585
5586 2016-04-30 Alan Modra <amodra@gmail.com>
5587
5588 * regs.h (struct reg_info_t): Delete live_length.
5589 (REG_LIVE_LENGTH): Delete macro.
5590 * regstat.c (regstat_bb_compute_ri): Delete artificial_uses,
5591 local_live, local_processed and local_live_last_luid params.
5592 Replace bb_index param with bb. Don't set REG_LIVE_LENGTH.
5593 Formatting fixes.
5594 (regstat_compute_ri): Adjust for above. Don't set
5595 REG_LIVE_LENGTH.
5596 (dump_reg_info): Don't print live length.
5597 * ira.c (update_equiv_regs): Replace test of REG_LIVE_LENGTH
5598 with test of setjmp_crosses. Don't set REG_LIVE_LENGTH.
5599 Localize loop_depth var.
5600
5601 2016-04-30 Alan Modra <amodra@gmail.com>
5602
5603 * ira.c (enum valid_equiv): New.
5604 (validate_equiv_mem): Return enum.
5605 (update_equiv_mem): Create replacement in more cases.
5606 (add_store_equivs): Update validate_equiv_mem call.
5607
5608 2016-04-30 Alan Modra <amodra@gmail.com>
5609
5610 * ira.c (combine_and_move_insns): Rather than scanning insns,
5611 use DF infrastucture to find use and def insns.
5612
5613 2016-04-30 Alan Modra <amodra@gmail.com>
5614
5615 ira.c (combine_and_move_insns): Move invariant conditions..
5616 (ira.c): ..to here. Call combine_and_move_insns before
5617 add_store_equivs. Call grow_reg_equivs later. Allocate
5618 req_equiv later using max_reg_num() rather than global max_regno.
5619 (contains_replace_regs): Delete.
5620 (add_store_equivs): Remove contains_replace_regs test.
5621
5622 2016-04-30 Alan Modra <amodra@gmail.com>
5623
5624 * ira.c (struct equiv_mem_data): New.
5625 (equiv_mem, equiv_mem_modified): Delete static vars.
5626 (validate_equiv_mem_from_store): Use "data" param to communicate..
5627 (validate_equiv_mem): ..from here.
5628
5629 2016-04-30 Alan Modra <amodra@gmail.com>
5630
5631 * ira.c (add_store_equivs, combine_and_move_insns): New functions,
5632 split out from..
5633 (update_reg_equivs): ..here. Move allocation and freeing of
5634 reg_equiv, and calls to grow_reg_equivs, init_alias_analysis,
5635 end_alias_analysis to..
5636 (ira): ..here.
5637
5638 2016-04-30 Alan Modra <amodra@gmail.com>
5639
5640 * ira.c (pdx_subregs): Delete.
5641 (struct equivalence): Add pdx_subregs field.
5642 (set_paradoxical_subreg): Remove pdx_subregs param. Update
5643 pdx_subregs access.
5644 (update_equiv_regs): Don't create or free pdx_subregs. Update
5645 pdx_subregs access.
5646
5647 2016-04-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5648
5649 * config/rs6000/altivec.h: Change definitions of vec_xl and
5650 vec_xst.
5651 * config/rs6000/rs6000-builtin.def (LD_ELEMREV_V2DF): New.
5652 (LD_ELEMREV_V2DI): New.
5653 (LD_ELEMREV_V4SF): New.
5654 (LD_ELEMREV_V4SI): New.
5655 (LD_ELEMREV_V8HI): New.
5656 (LD_ELEMREV_V16QI): New.
5657 (ST_ELEMREV_V2DF): New.
5658 (ST_ELEMREV_V2DI): New.
5659 (ST_ELEMREV_V4SF): New.
5660 (ST_ELEMREV_V4SI): New.
5661 (ST_ELEMREV_V8HI): New.
5662 (ST_ELEMREV_V16QI): New.
5663 (XL): New.
5664 (XST): New.
5665 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
5666 descriptions for VSX_BUILTIN_VEC_XL and VSX_BUILTIN_VEC_XST.
5667 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Map from
5668 TARGET_P9_VECTOR to RS6000_BTM_P9_VECTOR.
5669 (altivec_expand_builtin): Add handling for
5670 VSX_BUILTIN_ST_ELEMREV_<MODE> and VSX_BUILTIN_LD_ELEMREV_<MODE>.
5671 (rs6000_invalid_builtin): Add error-checking for
5672 RS6000_BTM_P9_VECTOR.
5673 (altivec_init_builtins): Define builtins used to implement vec_xl
5674 and vec_xst.
5675 (rs6000_builtin_mask_names): Define power9-vector.
5676 * config/rs6000/rs6000.h (MASK_P9_VECTOR): Define.
5677 (RS6000_BTM_P9_VECTOR): Define.
5678 (RS6000_BTM_COMMON): Include RS6000_BTM_P9_VECTOR.
5679 * config/rs6000/vsx.md (vsx_ld_elemrev_v2di): New define_insn.
5680 (vsx_ld_elemrev_v2df): Likewise.
5681 (vsx_ld_elemrev_v4sf): Likewise.
5682 (vsx_ld_elemrev_v4si): Likewise.
5683 (vsx_ld_elemrev_v8hi): Likewise.
5684 (vsx_ld_elemrev_v16qi): Likewise.
5685 (vsx_st_elemrev_v2df): Likewise.
5686 (vsx_st_elemrev_v2di): Likewise.
5687 (vsx_st_elemrev_v4sf): Likewise.
5688 (vsx_st_elemrev_v4si): Likewise.
5689 (vsx_st_elemrev_v8hi): Likewise.
5690 (vsx_st_elemrev_v16qi): Likewise.
5691 * doc/extend.texi: Add prototypes for vec_xl and vec_xst. Correct
5692 grammar.
5693
5694 2016-04-29 Patrick Palka <ppalka@gcc.gnu.org>
5695
5696 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Split
5697 out into ...
5698 (simplify_control_stmt_condition_1): ... here. Recurse into
5699 BIT_AND_EXPRs and BIT_IOR_EXPRs.
5700
5701 2016-04-29 David Edelsohn <dje.gcc@gmail.com>
5702
5703 PR target/69810
5704 * config/rs6000/rs6000.md (EXTQI): Don't allow extension to HImode.
5705 (zero_extendqi<mode>2_dot): Revert earlier conversion from
5706 define_insn_and_split to define_insn.
5707 (zero_extendqi<mode>2_dot2): Same.
5708 (extendqi<mode>2_dot): Same.
5709 (extendqi<mode>2_dot2): Same.
5710
5711 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
5712
5713 * config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK.
5714 (probe_stack): New expander.
5715 (probe_stack_<mode>): New insn pattern.
5716
5717 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
5718
5719 * config/i386/i386.md
5720 (operations with memory inputs setting flags peephole2):
5721 Remove uneeded REG_P checks. Cleanup pattern generation.
5722
5723 2016-04-29 Ilya Enkovich <ilya.enkovich@intel.com>
5724
5725 * tree-vect-loop.c (vect_transform_loop): Fix
5726 nb_iterations_upper_bound computation for vectorized loop.
5727
5728 2016-04-29 Marek Polacek <polacek@redhat.com>
5729 Jakub Jelinek <jakub@redhat.com>
5730
5731 PR sanitizer/70342
5732 * fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
5733 TARGET_EXPR_SLOT as a base.
5734
5735 2016-04-29 Andrew Burgess <andrew.burgess@embecosm.com>
5736
5737 * config/arc/arc.md (*loadqi_update): Replace use of 'rI' constraint
5738 with 'rCm2' constraints to limit possible immediate size.
5739 (*load_zeroextendqisi_update): Likewise.
5740 (*load_signextendqisi_update): Likewise.
5741 (*loadhi_update): Likewise.
5742 (*load_zeroextendhisi_update): Likewise.
5743 (*load_signextendhisi_update): Likewise.
5744 (*loadsi_update): Likewise.
5745 (*loadsf_update): Likewise.
5746
5747 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
5748
5749 * config/i386/predicates.md (constm1_operand): Fix comparison.
5750
5751 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
5752
5753 * testsuite/gcc.target/arc/ieee_eq.c: New test.
5754
5755 2016-04-29 Oleg Endo <olegendo@gcc.gnu.org>
5756
5757 * common/config/sh/sh-common.c (sh_option_optimization_table): Remove
5758 remaining SH5 related settings.
5759 * config/sh/sh-protos.h (shmedia_cleanup_truncate,
5760 shmedia_prepare_call_address): Delete.
5761 * config/sh/sh.c (sh_print_operand, output_stack_adjust,
5762 DWARF_CIE_DATA_ALIGNMENT, LOCAL_ALIGNMENT): Update comments.
5763 * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC,
5764 UNSUPPORTED_SH2A): Remove m5 checks.
5765 (sh_divide_strategy_e): Remove SH5 division strategies.
5766 (TARGET_PTRMEMFUNC_VBIT_LOCATION): Remove and use default.
5767 * config/sh/sh.md (divsf3): Reinstate define_expand pattern.
5768
5769 2016-04-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
5770
5771 * config/s390/s390.c (s390_rtx_costs): Update documentation.
5772
5773 2016-04-29 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5774
5775 * config/s390/2964.md ("z13_unit_fxu", "z13_0"): Remove lder.
5776 * config/s390/s390.md ("movsi_larl", "*movsi_esa", "mov<mode>"):
5777 Change lder to ldr.
5778 * config/s390/vector.md ("mov<mode>"): Likewise.
5779
5780 2016-04-29 Ulrich Weigand <uweigand@de.ibm.com>
5781
5782 * config/s390/constraints.md ("U", "W"): Invoke
5783 s390_mem_constraint with "ZR" and "ZT".
5784 * config/s390/s390.c (s390_check_qrst_address): Reject invalid
5785 addresses when using LRA. Accept also short displacements for S
5786 and T constraints. Do not check for long displacement target for
5787 S and T constraints.
5788 (s390_mem_constraint): Remove handling of U and W constraints.
5789 * config/s390/s390.md (various patterns): Remove the short
5790 displacement constraints (Q and R) if a long displacement
5791 constraint is present. Add longdisp as required CPU capability.
5792 * config/s390/vector.md: Likewise.
5793 * config/s390/vx-builtins.md: Likewise.
5794
5795 2016-04-29 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
5796
5797 PR target/60040
5798 * reload1.c (reload): Call finish_spills before
5799 restarting reload loop. Skip select_reload_regs
5800 if update_eliminables_and_spill returns true.
5801
5802 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
5803
5804 * config/arc/arc.h (UNSIGNED_INT12, UNSIGNED_INT16): Define.
5805 * config/arc/arc.md (umulhisi3): Use arc_short_operand predicate.
5806 (umulhisi3_imm): Update predicates and constraint letters.
5807 (umulhisi3_reg): Declare instruction as commutative.
5808 * config/arc/constraints.md (J12, J16): New constraints.
5809 * config/arc/predicates.md (short_unsigned_const_operand): New
5810 predicate.
5811 (arc_short_operand): Likewise.
5812 * testsuite/gcc.target/arc/umulsihi3_z.c: New file.
5813
5814 2016-04-29 Richard Biener <rguenther@suse.de>
5815
5816 PR tree-optimization/13962
5817 PR tree-optimization/65686
5818 * tree-ssa-alias.h (ptrs_compare_unequal): Declare.
5819 * tree-ssa-alias.c (ptrs_compare_unequal): New function
5820 using PTA to compare pointers.
5821 * match.pd: Add pattern for pointer equality compare simplification
5822 using ptrs_compare_unequal.
5823
5824 2016-04-29 Richard Biener <rguenther@suse.de>
5825
5826 * stor-layout.c (layout_type): Do not build a pointer-to-element
5827 type for arrays.
5828
5829 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
5830
5831 * config/i386/i386.md (Load+RegOp to Mov+MemOp peephole2):
5832 Use SWI mode iterator. Use general_reg_operand predicate.
5833 (Load+RegOp to Mov+MemOp peephole2 with vector regs): Split
5834 peephole to MMX and SSE part. Use mmx_reg_operand and sse_reg_operand
5835 predicates.
5836
5837 2016-04-29 Jakub Jelinek <jakub@redhat.com>
5838
5839 PR middle-end/70843
5840 * fold-const.c (operand_equal_p): Don't verify hash value equality
5841 if arg0 == arg1.
5842 * tree.c (inchash::add_expr): Handle STATEMENT_LIST. Ignore BLOCK
5843 and OMP_CLAUSE.
5844
5845 2016-04-28 Jakub Jelinek <jakub@redhat.com>
5846
5847 PR target/70858
5848 * config/i386/i386.c (bdesc_special_args): Add | OPTION_MASK_ISA_64BIT
5849 to __builtin_ia32_lwpval64 and __builtin_ia32_lwpins64.
5850 (bdesc_args): Add | OPTION_MASK_ISA_64BIT to __builtin_ia32_bextr_u64,
5851 __builtin_ia32_bextri_u64, __builtin_ia32_bzhi_di,
5852 __builtin_ia32_pdep_di and __builtin_ia32_pext_di.
5853
5854 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
5855
5856 * config/rs6000/rs6000.c (compute_save_world_info): Rename info_ptr
5857 to info. Don't initialize separate fields to 0. Clean up
5858 formatting a bit.
5859
5860 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
5861
5862 * config/i386/i386.md (peephole2s for operations with memory inputs):
5863 Use SWI mode iterator.
5864 (peephole2s for operations with memory outputs): Ditto.
5865 Do not check for stack checking probe.
5866
5867 (probe_stack): Remove expander.
5868
5869 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
5870 Andrew Burgess <andrew.burgess@embecosm.com>
5871
5872 * config/arc/arc.c (arc_print_operand): Print integer 'H' / 'L'
5873 operands as 32-bits.
5874
5875 2016-04-28 Jason Merrill <jason@redhat.com>
5876
5877 * gdbinit.in: Skip line-map.h.
5878
5879 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
5880 Andrew Burgess <andrew.burgess@embecosm.com>
5881
5882 * config/arc/arc.c (arc_conditional_register_usage): Take
5883 TARGET_RRQ_CLASS into account.
5884 (arc_print_operand): Support printing 'p' and 's' operands.
5885 * config/arc/arc.h (TARGET_NPS_BITOPS_DEFAULT): Provide default
5886 as 0.
5887 (TARGET_RRQ_CLASS): Define.
5888 (IS_POWEROF2_OR_0_P): Define.
5889 * config/arc/arc.md (*movsi_insn): Add w/Clo, w/Chi, and w/Cbi
5890 alternatives.
5891 (*tst_movb): New define_insn.
5892 (*tst): Avoid recognition if it could prevent '*tst_movb'
5893 combination; replace c/CnL with c/Chs alternative.
5894 (*tst_bitfield_tst): New define_insn.
5895 (*tst_bitfield_asr): New define_insn.
5896 (*tst_bitfield): New define_insn.
5897 (andsi3_i): Add Rrq variant.
5898 (extzv): New define_expand.
5899 (insv): New define_expand.
5900 (*insv_i): New define_insn.
5901 (*movb): New define_insn.
5902 (*movb_signed): New define_insn.
5903 (*movb_high): New define_insn.
5904 (*movb_high_signed): New define_insn.
5905 (*movb_high_signed + 1): New define_split pattern.
5906 (*mrgb): New define_insn.
5907 (*mrgb + 1): New define_peephole2 pattern.
5908 (*mrgb + 2): New define_peephole2 pattern.
5909 * config/arc/arc.opt (mbitops): New option for nps400, uses
5910 TARGET_NPS_BITOPS_DEFAULT.
5911 * config/arc/constraints.md (q): Make register class conditional.
5912 (Rrq): New register constraint.
5913 (Chs): New constraint.
5914 (Clo): New constraint.
5915 (Chi): New constraint.
5916 (Cbf): New constraint.
5917 (Cbn): New constraint.
5918 (C18): New constraint.
5919 (Cbi): New constraint.
5920
5921 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
5922
5923 * cfganal.c (bitmap_intersection_of_succs): Delete assert checking
5924 dst->popcount.
5925 (bitmap_intersection_of_preds): Ditto.
5926 (bitmap_union_of_succs): Ditto.
5927 (bitmap_union_of_preds): Ditto.
5928 * sbitmap.c (do_popcount): Delete.
5929 (BITMAP_DEBUGGING): Delete.
5930 (sbitmap_verify_popcount): Delete.
5931 (sbitmap_alloc): Don't initialize the popcount field.
5932 (sbitmap_alloc_with_popcount): Delete.
5933 (sbitmap_resize): Don't resize the popcount array.
5934 (sbitmap_vector_alloc): Don't initialize the popcount field.
5935 (bitmap_copy): Don't copy the popcount array.
5936 (bitmap_clear): Don't clear the popcount array.
5937 (bitmap_clear): Delete the popcount array handling.
5938 (bitmap_ior_and_compl): Delete the popcount assert.
5939 (bitmap_not): Ditto.
5940 (bitmap_and_compl): Ditto.
5941 (bitmap_and): Delete the popcount array handling.
5942 (bitmap_xor): Ditto.
5943 (bitmap_ior): Ditto.
5944 (bitmap_or_and): Delete the popcount assert.
5945 (bitmap_and_or): Ditto.
5946 (popcount_table): Delete.
5947 (sbitmap_elt_popcount): Delete.
5948 * sbitmap.h (simple_bitmap_def): Delete the popcount field.
5949 (bitmap_set_bit): Delete the popcount assert.
5950 (bitmap_clear_bit): Ditto.
5951 (sbitmap_free): Don't free the popcount array.
5952 (sbitmap_alloc_with_popcount): Delete declaration.
5953 (sbitmap_popcount): Ditto.
5954
5955 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
5956 Andrew Burgess <andrew.burgess@embecosm.com>
5957
5958 * config/arc/arc.h (SYMBOL_FLAG_CMEM): Define.
5959 (TARGET_NPS_CMEM_DEFAULT): Provide default definition.
5960 * config/arc/arc.c (arc_address_cost): Return 0 for cmem_address.
5961 (arc_encode_section_info): Set SYMBOL_FLAG_CMEM where indicated.
5962 * config/arc/arc.opt (mcmem): New option.
5963 * config/arc/arc.md (*extendqihi2_i): Add r/Uex alternative,
5964 supply length for r/m alternative.
5965 (*extendqisi2_ac): Likewise.
5966 (*extendhisi2_i): Add r/Uex alternative, supply length for r/m and
5967 r/Uex alternative.
5968 (movqi_insn): Add r/Ucm and Ucm/?Rac alternatives.
5969 (movhi_insn): Likewise.
5970 (movsi_insn): Add r/Ucm,Ucm/w alternatives.
5971 (*zero_extendqihi2_i): Add r/Ucm alternative.
5972 (*zero_extendqisi2_ac): Likewise.
5973 (*zero_extendhisi2_i): Likewise.
5974 * config/arc/constraints.md (Uex): New memory constraint.
5975 (Ucm): New define_constraint.
5976 * config/arc/predicates.md (long_immediate_loadstore_operand):
5977 Return 0 for MEM with cmem_address address.
5978 (cmem_address_0): New predicates.
5979 (cmem_address_1): Likewise.
5980 (cmem_address_2): Likewise.
5981 (cmem_address): Likewise.
5982
5983 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
5984
5985 * config/rs6000/rs6000.c (machine_function): Rename
5986 insn_chain_scanned_p to spe_insn_chain_scanned_p.
5987 (rs6000_stack_info): Adjust.
5988
5989 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
5990 Andrew Burgess <andrew.burgess@embecosm.com>
5991
5992 * config/arc/constraints.md (Usd): Convert to define_constraint.
5993 (Us<): Likewise.
5994 (Us>): Likewise.
5995
5996 2016-04-28 Jakub Jelinek <jakub@redhat.com>
5997
5998 PR target/70821
5999 * config/i386/sync.md (define_peephole2 *atomic_fetch_add_cmp<mode>):
6000 Add new peephole2 where the first insn is *mov<mode>_or instead of
6001 *mov<mode>_internal.
6002
6003 2016-04-28 Segher Boesssenkool <segher@kernel.crashing.org>
6004
6005 * tracer.c (bb_seen): Make static.
6006
6007 2016-04-28 Andrew Burgess <andrew.burgess@embecosm.com>
6008
6009 * common/config/arc/arc-common.c (arc_handle_option): Add NPS400
6010 support, setup defaults.
6011 * config/arc/arc-opts.h (enum processor_type): Add NPS400.
6012 * config/arc/arc.c (arc_init): Add NPS400 support.
6013 * config/arc/arc.h (CPP_SPEC): Add NPS400 defines.
6014 (TARGET_ARC700): NPS400 is also an ARC700.
6015 * config/arc/arc.opt: Add NPS400 options to -mcpu=.
6016
6017 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
6018
6019 PR target/70668
6020 * config/nds32/nds32.md (casesi): Don't access the operands array
6021 out of bounds.
6022
6023 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
6024
6025 * config/i386/i386.md (zeroing peephole2): Use general_reg_operand.
6026 (or $-1,reg peephole2): Ditto.
6027 (strict_low_part zeroing peephole2): Use SWI12 mode iterator.
6028
6029 2016-04-28 Markus Trippelsdorf <markus@trippelsdorf.de>
6030
6031 * doc/extend.texi (Common Function Attributes) [optimize]:
6032 Discourage use of the optimize attribute.
6033
6034 2016-04-28 Bill Seurer <seurer@linux.vnet.ibm.com>
6035
6036 * config/rs6000/rs6000-builtin.def (vec_adde): Change vec_adde to a
6037 special case builtin.
6038 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
6039 ALTIVEC_BUILTIN_VEC_ADDE.
6040 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
6041 support for ALTIVEC_BUILTIN_VEC_ADDE.
6042 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
6043 for __builtin_vec_adde.
6044
6045 2016-04-28 Jakub Jelinek <jakub@redhat.com>
6046
6047 * config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
6048 * config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise.
6049
6050 2016-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6051
6052 PR testsuite/70595
6053 * doc/sourcebuild.texi (Effective-Target Keywords, Other
6054 attributes): Document cilkplus_runtime.
6055
6056 2016-04-28 Martin Jambor <mjambor@suse.cz>
6057
6058 * tree-cfg.c (verify_expr): Verify that local declarations belong to
6059 this function. Call verify_expr on MEM_REFs and bases of other
6060 handled_components.
6061
6062 2016-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6063
6064 * internal-fn.c (expand_arith_overflow): Convert preprocessor check
6065 for WORD_REGISTER_OPERATIONS to runtime check.
6066
6067 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
6068
6069 * config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.
6070
6071 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
6072
6073 * config/arc/arc.c (arc_process_double_reg_moves): Fix for
6074 big-endian compilation.
6075 * config/arc/arc.md (addf3): Likewise.
6076 (subdf3): Likewise.
6077 (muldf3): Likewise.
6078
6079 2016-04-28 Richard Biener <rguenther@suse.de>
6080
6081 PR tree-optimization/70840
6082 * match.pd: powi(-x, y) and powi(|x|,y) -> powi(x,y) if y is even;
6083 Fix pow(copysign(x, y), z) -> pow(x, z) and add powi variant;
6084 Mark x * pow(x,c) -> pow(x,c+1) commutative.
6085 Add powi(x,y) * powi(z,y) -> powi(x*z,y).
6086
6087 2015-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6088
6089 * config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
6090 and explain why in a comment.
6091
6092 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
6093
6094 * config/arc/arc.md (cpu_facility): Add fpx variant.
6095 (subdf3): Prohibit use reverse sub when assist operations option
6096 is enabled.
6097 * config/arc/fpx.md (subdf3_insn, *dsubh_peep2_insn): Allow drsub
6098 instructions only when FPX is enabled.
6099 * testsuite/gcc.target/arc/trsub.c: New test.
6100
6101 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
6102
6103 * config/i386/i386.md (*fop_<mode>_1_mixed): Do not check for
6104 mult_operator when calculating "type" attribute.
6105 (*fop_<mode>_1_i387): Ditto.
6106 (*fop_xf_1_i387): Ditto.
6107 (x87 stack loads peephole2): Add "reg = op (mem, reg)" peephole2.
6108 Use std::swap to swap operands. Use RTL expressions to generate
6109 converted pattern.
6110
6111 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
6112 Joern Rennecke <joern.rennecke@embecosm.com>
6113
6114 * config/arc/arc-protos.h (arc_legitimize_pic_address): Remove
6115 declaration.
6116 (emit_pic_move): Remove.
6117 (arc_eh_uses, insn_is_tls_gd_dispatch): Declare.
6118 * config/arc/arc.c (emit_pic_move): Removed.
6119 (TARGET_HAVE_TLS): Define.
6120 (arc_conditional_register_usage): Test for arc_tp_regno.
6121 (arc_print_operand, arc_print_operand_address): Handle TLS
6122 unspecs.
6123 (arc_needs_pcl_p): New function.
6124 (arc_legitimate_pc_offset_p): Use arc_needs_pcl_p.
6125 (arc_legitimate_pic_addr_p): Handle TLS unspecs.
6126 (arc_raw_symbolic_reference_mentioned_p): Likewise.
6127 (arc_get_tp, arc_emit_call_tls_get_addr): New function.
6128 (arc_legitimize_tls_address): Likewise.
6129 (DTPOFF_ZERO_SYM): Define.
6130 (arc_legitimize_pic_address): Make it static, handle TLS cases.
6131 (arc_output_pic_addr_const): Print TLS unspecs.
6132 (prepare_pic_move): New function, replaces emit_pic_move.
6133 (arc_legitimate_constant_p): Handle TLS unspecs.
6134 (arc_legitimate_address_p): Likewise.
6135 (arc_rewrite_small_data_p): Use assert for TLS constants.
6136 (prepare_move_operands): Use prepare_pic_move.
6137 (arc_legitimize_address): Legitimize tls addresses.
6138 (arc_epilogue_uses): Check for arc_tp_regno.
6139 (arc_eh_uses, insn_is_tls_gd_dispatch): New function.
6140 * config/arc/arc.h [DEFAULT_LIBC != LIBC_UCLIBC] (EXTRA_SPECS):
6141 Define.
6142 [DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC):
6143 Likewise.
6144 [DEFAULT_LIBC != LIBC_UCLIBC] (STARTFILE_SPEC): Add
6145 %(arc_tls_extra_start_spec).
6146 (TARGET_CPU_CPP_BUILTINS): Define __ARC_TLS_REGNO__.
6147 (REGNO_OK_FOR_BASE_P): Check for arc_tp_regno.
6148 (EH_USES): Define.
6149 (INSN_REFERENCES_ARE_DELAYED): Use insn_is_tls_gd_dispatch.
6150 * config/arc/arc.md (UNSPEC_TLS_GD, UNSPEC_TLS_LD, UNSPEC_TLS_IE)
6151 (UNSPEC_TLS_OFF): Add.
6152 (R10_REG): Define.
6153 (tls_load_tp_soft, tls_gd_load, tls_gd_get_addr, tls_gd_dispatch)
6154 (get_thread_pointersi): New patterns.
6155 * config/arc/arc.opt (mtp-regno): New option.
6156 * config/arc/predicates.md (move_src_operand): Handle TLS symbols.
6157 (move_dest_operand): Likewise.
6158 * configure: Regenerate.
6159 * configure.ac: Add arc*-*-* case to test for tls.
6160 * doc/invoke.texi (ARC options): Document mtp-regno.
6161
6162 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
6163
6164 * config/arc/arc.c (arc_vector_mode_supported_p): Add support for
6165 the new ARC HS SIMD instructions.
6166 (arc_preferred_simd_mode): New function.
6167 (arc_autovectorize_vector_sizes): Likewise.
6168 (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
6169 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
6170 (arc_init_reg_tables): Accept new ARC HS SIMD modes.
6171 (arc_init_builtins): Add new SIMD builtin types.
6172 (arc_split_move): Handle 64 bit vector moves.
6173 * config/arc/arc.h (TARGET_PLUS_DMPY, TARGET_PLUS_MACD)
6174 (TARGET_PLUS_QMACW): Define.
6175 * config/arc/builtins.def (QMACH, QMACHU, QMPYH, QMPYHU, DMACH)
6176 (DMACHU, DMPYH, DMPYHU, DMACWH, DMACWHU, VMAC2H, VMAC2HU, VMPY2H)
6177 (VMPY2HU, VADDSUB2H, VSUBADD2H, VADDSUB, VSUBADD, VADDSUB4H)
6178 (VSUBADD4H): New builtins.
6179 * config/arc/simdext.md: Add new ARC HS SIMD instructions.
6180 * testsuite/gcc.target/arc/builtin_simdarc.c: New file.
6181
6182 2016-04-28 Eduard Sanou <dhole@openmailbox.org>
6183 Matthias Klose <doko@debian.org>
6184
6185 * doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable.
6186
6187 2016-04-28 Richard Biener <rguenther@suse.de>
6188
6189 PR middle-end/70777
6190 * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
6191 canonicalization.
6192
6193 2016-04-28 Oleg Endo <olegendo@gcc.gnu.org>
6194
6195 * common/config/sh/sh-common.c: Remove SH5 support.
6196 * config/sh/constraints.md: Likewise.
6197 * config/sh/config/sh/elf.h: Likewise.
6198 * config/sh/linux.h: Likewise.
6199 * config/sh/netbsd-elf.h: Likewise.
6200 * config/sh/predicates.md: Likewise.
6201 * config/sh/sh-c.c: Likewise.
6202 * config/sh/sh-protos.h: Likewise.
6203 * config/sh/sh.c: Likewise.
6204 * config/sh/sh.h: Likewise.
6205 * config/sh/sh.md: Likewise.
6206 * config/sh/sh.opt: Likewise.
6207 * config/sh/sync.md: Likewise.
6208 * config/sh/sh64.h: Delete.
6209 * config/sh/shmedia.h: Likewise.
6210 * config/sh/shmedia.md: Likewise.
6211 * config/sh/sshmedia.h: Likewise.
6212 * config/sh/t-netbsd-sh5-64: Likewise.
6213 * config/sh/t-sh64: Likewise.
6214 * config/sh/ushmedia.h: Likewise.
6215
6216 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
6217
6218 * config/i386/i386.md (sign_extend to memory peephole2s): Use
6219 general_reg_operand instead of register_operand predicate.
6220
6221 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6222
6223 * params.def (MIN_PARTITION_SIZE): Set default value to 10000.
6224
6225 2016-04-27 Marc Glisse <marc.glisse@inria.fr>
6226
6227 * match.pd (A - B > A, A + B < A): New transformations.
6228
6229 2016-04-27 Patrick Palka <ppalka@gcc.gnu.org>
6230
6231 * genattrtab.c (write_test_expr): New parameter EMIT_PARENS
6232 which defaults to true. Emit an outer pair of parentheses only if
6233 EMIT_PARENS. When continuing a chain of && or || (or & or |),
6234 don't emit parentheses for the right-hand operand.
6235
6236 2016-04-27 Jeff Law <law@redhat.com>
6237
6238 * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.
6239
6240 2016-04-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6241
6242 * config/rs6000/altivec.md (altivec_lvx_<mode>): Remove.
6243 (altivec_lvx_<mode>_internal): Document.
6244 (altivec_lvx_<mode>_2op): New define_insn.
6245 (altivec_lvx_<mode>_1op): Likewise.
6246 (altivec_lvx_<mode>_2op_si): Likewise.
6247 (altivec_lvx_<mode>_1op_si): Likewise.
6248 (altivec_stvx_<mode>): Remove.
6249 (altivec_stvx_<mode>_internal): Document.
6250 (altivec_stvx_<mode>_2op): New define_insn.
6251 (altivec_stvx_<mode>_1op): Likewise.
6252 (altivec_stvx_<mode>_2op_si): Likewise.
6253 (altivec_stvx_<mode>_1op_si): Likewise.
6254 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
6255 Expand vec_ld and vec_st during parsing.
6256 * config/rs6000/rs6000.c (altivec_expand_lvx_be): Commentary
6257 changes.
6258 (altivec_expand_stvx_be): Likewise.
6259 (altivec_expand_lv_builtin): Expand lvx built-ins to expose the
6260 address-masking behavior in RTL.
6261 (altivec_expand_stv_builtin): Expand stvx built-ins to expose the
6262 address-masking behavior in RTL.
6263 (altivec_expand_builtin): Change builtin code arguments for calls
6264 to altivec_expand_stv_builtin and altivec_expand_lv_builtin.
6265 (insn_is_swappable_p): Avoid incorrect swap optimization in the
6266 presence of lvx/stvx patterns.
6267 (alignment_with_canonical_addr): New function.
6268 (alignment_mask): Likewise.
6269 (find_alignment_op): Likewise.
6270 (recombine_lvx_pattern): Likewise.
6271 (recombine_stvx_pattern): Likewise.
6272 (recombine_lvx_stvx_patterns): Likewise.
6273 (rs6000_analyze_swaps): Perform a pre-pass to recognize lvx and
6274 stvx patterns from expand.
6275 * config/rs6000/vector.md (vector_altivec_load_<mode>): Use new
6276 expansions.
6277 (vector_altivec_store_<mode>): Likewise.
6278
6279 2016-04-26 Evandro Menezes <e.menezes@samsung.com>
6280
6281 * config/aarch64/aarch64.md
6282 (*movhf_aarch64): Add "movi %0, #0" to zero up register and
6283 remove the "fp" attributes.
6284 (*movsf_aarch64): Add "movi %0, #0" to zero up register and
6285 add the "simd" attributes.
6286 (*movdf_aarch64): Likewise.
6287 (*movtf_aarch64): Remove the "fp" attributes.
6288 * testsuite/gcc.target/aarch64/fmovf-zero-reg.c: Update accordingly.
6289 * testsuite/gcc.target/aarch64/fmovd-zero-reg.c: Likewise.
6290
6291 2016-04-27 David Malcolm <dmalcolm@redhat.com>
6292
6293 * emit-rtl.c (maybe_set_first_label_num): Strengthen param from
6294 rtx to rtx_code_label *.
6295 * rtl.h (maybe_set_first_label_num): Likewise.
6296
6297 2016-04-27 David Malcolm <dmalcolm@redhat.com>
6298
6299 * df-core.c (df_add_problem): Make the problem param be const.
6300 (df_remove_problem): Make local "problem" be const.
6301 * df-problems.c (problem_RD): Make const.
6302 (problem_LR): Likewise.
6303 (problem_LIVE): Likewise.
6304 (problem_MIR): Likewise.
6305 (problem_CHAIN): Likewise.
6306 (problem_WORD_LR): Likewise.
6307 (problem_NOTE): Likewise.
6308 (problem_MD): Likewise.
6309 * df-scan.c (problem_SCAN): Likewise.
6310 * df.h (struct df_problem): Make field "dependent_problem" be
6311 const.
6312 (struct dataflow): Likewise for field "problem".
6313 (df_add_problem): Make param const.
6314
6315 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
6316
6317 * config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when
6318 inter-unit moves to/from vector registers are enabled. Do not disable
6319 for TARGET_MMX.
6320
6321 2016-04-27 David Malcolm <dmalcolm@redhat.com>
6322
6323 * df.h (DF_SCAN, DF_LR, DF_LIVE, DF_RD, DF_CHAIN, DF_WORD_LR,
6324 DF_NOTE, DF_MD, DF_MIR, DF_LAST_PROBLEM_PLUS1): Convert from
6325 #define to...
6326 (enum df_problem_id): ...this new enum.
6327 (struct df_problem): Convert field "id" from "int" to
6328 enum df_problem_id.
6329
6330 2016-04-27 David Malcolm <dmalcolm@redhat.com>
6331
6332 * rtl.def: Update comment for "things in the instruction chain" to
6333 reflect the removal of the leading "i" field for INSN_UID in
6334 r210360. Fix bogus apostrophe.
6335
6336 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
6337
6338 * config/i386/i386.md
6339 (lea arith with mem operand + setcc peephole2): Set operator mode.
6340
6341 2016-04-27 H.J. Lu <hongjiu.lu@intel.com>
6342
6343 PR target/70155
6344 * config/i386/i386.c (scalar_to_vector_candidate_p): Renamed to ...
6345 (dimode_scalar_to_vector_candidate_p): This.
6346 (timode_scalar_to_vector_candidate_p): New function.
6347 (scalar_to_vector_candidate_p): Likewise.
6348 (timode_check_non_convertible_regs): Likewise.
6349 (timode_remove_non_convertible_regs): Likewise.
6350 (remove_non_convertible_regs): Likewise.
6351 (remove_non_convertible_regs): Renamed to ...
6352 (dimode_remove_non_convertible_regs): This.
6353 (scalar_chain::~scalar_chain): Make it virtual.
6354 (scalar_chain::compute_convert_gain): Make it pure virtual.
6355 (scalar_chain::mark_dual_mode_def): Likewise.
6356 (scalar_chain::convert_insn): Likewise.
6357 (scalar_chain::convert_registers): Likewise.
6358 (scalar_chain::add_to_queue): Make it protected.
6359 (scalar_chain::emit_conversion_insns): Likewise.
6360 (scalar_chain::replace_with_subreg): Likewise.
6361 (scalar_chain::replace_with_subreg_in_insn): Likewise.
6362 (scalar_chain::convert_op): Likewise.
6363 (scalar_chain::convert_reg): Likewise.
6364 (scalar_chain::make_vector_copies): Likewise.
6365 (scalar_chain::convert_registers): New pure virtual function.
6366 (class dimode_scalar_chain): New class.
6367 (class timode_scalar_chain): Likewise.
6368 (scalar_chain::mark_dual_mode_def): Renamed to ...
6369 (dimode_scalar_chain::mark_dual_mode_def): This.
6370 (timode_scalar_chain::mark_dual_mode_def): New function.
6371 (timode_scalar_chain::convert_insn): Likewise.
6372 (dimode_scalar_chain::convert_registers): Likewise.
6373 (scalar_chain::compute_convert_gain): Renamed to ...
6374 (dimode_scalar_chain::compute_convert_gain): This.
6375 (scalar_chain::replace_with_subreg): Renamed to ...
6376 (dimode_scalar_chain::replace_with_subreg): This.
6377 (scalar_chain::replace_with_subreg_in_insn): Renamed to ...
6378 (dimode_scalar_chain::replace_with_subreg_in_insn): This.
6379 (scalar_chain::make_vector_copies): Renamed to ...
6380 (dimode_scalar_chain::make_vector_copies): This.
6381 (scalar_chain::convert_reg): Renamed to ...
6382 (dimode_scalar_chain::convert_reg ): This.
6383 (scalar_chain::convert_op): Renamed to ...
6384 (dimode_scalar_chain::convert_op): This.
6385 (scalar_chain::convert_insn): Renamed to ...
6386 (dimode_scalar_chain::convert_insn): This.
6387 (scalar_chain::convert): Call convert_registers.
6388 (convert_scalars_to_vector): Change to scalar_chain pointer to
6389 use timode_scalar_chain in 64-bit mode and dimode_scalar_chain
6390 in 32-bit mode. Delete scalar_chain pointer. Call
6391 free_dominance_info in 64-bit mode.
6392 (pass_stv::gate): Remove TARGET_64BIT check.
6393 (ix86_option_override): Put the 64-bit STV pass before the CSE
6394 pass.
6395
6396 2016-04-27 Pierre-Marie de Rodat <derodat@adacore.com>
6397
6398 * dwarf2out.h (struct dw_loc_descr_node): Remove the
6399 dw_loc_frame_offset field.
6400 * dwarf2out.c (new_loc_descr): Likewise.
6401 (resolve_args_picking_1): Turn the VISITED hash set into a
6402 FRAME_OFFSET hash map. Use it to associate a frame offset to
6403 visited nodes. Remove uses of the CHECKING_P macro.
6404 (resolve_args_picking): Update call to resolve_args_picking_1.
6405
6406 2016-04-27 Martin Liska <mliska@suse.cz>
6407
6408 * tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
6409 (free_loop_data): Release vuses of groups.
6410
6411 2016-04-27 Bin Cheng <bin.cheng@arm.com>
6412
6413 * tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use
6414 instead of redundant use_id and boolean have_use_for.
6415 (struct iv_use): Change sub_id into group_id. Remove field next.
6416 Move fields: related_cands, n_map_members, cost_map and selected
6417 to ...
6418 (struct iv_group): ... here. New structure.
6419 (struct iv_common_cand): Use structure declaration directly.
6420 (struct ivopts_data, iv_ca, iv_ca_delta): Rename fields.
6421 (MAX_CONSIDERED_USES): Rename macro to ...
6422 (MAX_CONSIDERED_GROUPS): ... here.
6423 (n_iv_uses, iv_use, n_iv_cands, iv_cand): Delete.
6424 (dump_iv, dump_use, dump_cand): Refactor format of dump information.
6425 (dump_uses): Rename to ...
6426 (dump_groups): ... here. Update all uses.
6427 (tree_ssa_iv_optimize_init, alloc_iv): Update all uses.
6428 (find_induction_variables): Refactor format of dump information.
6429 (record_sub_use): Delete.
6430 (record_use): Update all uses.
6431 (record_group): New function.
6432 (record_group_use, find_interesting_uses_op): Call above functions.
6433 Update all uses.
6434 (find_interesting_uses_cond): Ditto.
6435 (group_compare_offset): New function.
6436 (split_all_small_groups): Rename to ...
6437 (split_small_address_groups_p): ... here. Update all uses.
6438 (split_address_groups): Update all uses.
6439 (find_interesting_uses): Refactor format of dump information.
6440 (add_candidate_1): Update all uses. Remove redundant check on iv,
6441 base and step.
6442 (add_candidate, record_common_cand): Remove redundant assert.
6443 (add_iv_candidate_for_biv): Update use.
6444 (add_iv_candidate_derived_from_uses): Update all uses.
6445 (add_iv_candidate_for_groups, record_important_candidates): Ditto.
6446 (alloc_use_cost_map): Ditto.
6447 (set_use_iv_cost, get_use_iv_cost): Rename to ...
6448 (set_group_iv_cost, get_group_iv_cost): ... here. Update all uses.
6449 (determine_use_iv_cost_generic): Ditto.
6450 (determine_group_iv_cost_generic): Ditto.
6451 (determine_use_iv_cost_address): Ditto.
6452 (determine_group_iv_cost_address): Ditto.
6453 (determine_use_iv_cost_condition): Ditto.
6454 (determine_group_iv_cost_cond): Ditto.
6455 (determine_use_iv_cost): Ditto.
6456 (determine_group_iv_cost): Ditto.
6457 (set_autoinc_for_original_candidates): Update all uses.
6458 (find_iv_candidates): Update all uses. Refactor dump information.
6459 (determine_use_iv_costs): Ditto.
6460 (determine_iv_costs): Ditto.
6461 (iv_ca_cand_for_use): Rename to ...
6462 (iv_ca_cand_for_group): ... here. Update all uses.
6463 (iv_ca_add_use, iv_ca_add_group): Ditto.
6464 (iv_ca_set_cp, iv_ca_cost, iv_ca_delta_add): Update all uses.
6465 (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_delta_free): Ditto.
6466 (iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow): Ditto.
6467 (iv_ca_prune, cheaper_cost_with_cand, iv_ca_replace): Ditto.
6468 (try_add_cand_for, try_improve_iv_set, find_optimal_iv_set): Ditto.
6469 (create_new_iv, adjust_iv_update_pos): Ditto.
6470 (rewrite_use_address): Delete.
6471 (rewrite_use_address_1): Rename to ...
6472 (rewrite_use_address): ... here.
6473 (rewrite_use_compare): Update all uses.
6474 (rewrite_use): Delete.
6475 (rewrite_uses): Rename to ...
6476 (rewrite_groups): ... here. Update all uses.
6477 (remove_unused_ivs, free_loop_data): Update all uses.
6478 (tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize_loop): Ditto.
6479
6480 2016-04-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6481
6482 * rtlanal.c (nonzero_bits1): Convert preprocessor check
6483 for WORD_REGISTER_OPERATIONS to runtime check.
6484
6485 2016-04-27 Richard Biener <rguenther@suse.de>
6486
6487 PR ipa/70760
6488 * tree-ssa-structalias.c (find_func_aliases_for_call): Use
6489 aggregate_value_p to determine if a function result is
6490 returned by reference.
6491 (ipa_pta_execute): Functions having their address taken are
6492 not automatically nonlocal.
6493
6494 2016-04-27 Jakub Jelinek <jakub@redhat.com>
6495
6496 PR sanitizer/70683
6497 * tree-core.h (enum operand_equal_flag): Add OEP_NO_HASH_CHECK.
6498 * fold-const.c (operand_equal_p): If flag_checking and
6499 OEP_NO_HASH_CHECK is not set in flag, recurse with OEP_NO_HASH_CHECK
6500 and if it returns non-zero, assert iterative_hash_expr on both
6501 args is the same.
6502
6503 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
6504
6505 * doc/invoke.texi (-frename-registers): Also enabled at -Os.
6506
6507 2016-04-27 Nick Clifton <nickc@redhat.com>
6508
6509 PR middle-end/49889
6510 * varasm.c (merge_weak): Generate an error if an attempt is made
6511 to convert a non-weak static function into a weak, public function.
6512
6513 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6514
6515 * params.def (MAX_PARTITION_SIZE): New param.
6516 * doc/invoke.texi: Document lto-max-partition.
6517
6518 2016-04-27 Richard Biener <rguenther@suse.de>
6519
6520 PR ipa/70785
6521 * tree-ssa-structalias.c (refered_from_nonlocal_fn): New
6522 function cummulating used_from_other_partition, externally_visible
6523 and force_output from aliases.
6524 (refered_from_nonlocal_var): Likewise.
6525 (ipa_pta_execute): Use call_for_symbol_and_aliases to cummulate
6526 node flags properly.
6527
6528 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
6529
6530 * doc/invoke.texi (Warning Options): Add -Wmemset-elt-size.
6531 (-Wmemset-elt-size): New item.
6532
6533 2016-04-27 Eric Botcazou <ebotcazou@adacore.com>
6534
6535 PR ada/70759
6536 * stor-layout.h (internal_reference_types): Delete.
6537 * stor-layout.c (reference_types_internal): Likewise.
6538 (internal_reference_types): Likewise.
6539 (layout_type) <REFERENCE_TYPE>: Adjust.
6540
6541 2016-04-27 Jakub Jelinek <jakub@redhat.com>
6542
6543 PR sanitizer/70683
6544 * tree.h (inchash::add_expr): Add FLAGS argument.
6545 * tree.c (inchash::add_expr): Likewise. If not OEP_ADDRESS_OF,
6546 use STRIP_NOPS first. For INTEGER_CST assert not OEP_ADDRESS_OF.
6547 For REAL_CST and !HONOR_SIGNED_ZEROS (t) hash +/- 0 the same.
6548 Formatting fix. Adjust recursive calls. For tcc_comparison,
6549 if swap_tree_comparison (code) is smaller than code, hash that
6550 and arguments in the other order. Hash CONVERT_EXPR the same
6551 as NOP_EXPR. For OEP_ADDRESS_OF hash MEM_REF with 0 offset
6552 of ADDR_EXPR of decl as the decl itself. Add or remove
6553 OEP_ADDRESS_OF from recursive flags as needed. For
6554 FMA_EXPR, WIDEN_MULT_{PLUS,MINUS}_EXPR hash the first two
6555 operands commutatively and only the third one normally.
6556 For internal CALL_EXPR hash in CALL_EXPR_IFN.
6557
6558 2016-04-27 Sebastian Huber <sebastian.huber@embedded-brains.de>
6559
6560 * config/rtems.h (LIB_SPEC): Add -latomic.
6561
6562 2016-04-27 Joel Sherrill <joel@rtems.org>
6563
6564 * config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
6565 xilink.ld and flags not relevant to RTEMS.
6566
6567 2016-04-26 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
6568
6569 * toplev.c (backend_init_target): Avoid calling init_reload when using
6570 LRA.
6571
6572 2016-04-26 Jakub Jelinek <jakub@redhat.com>
6573
6574 * reorg.c (try_merge_delay_insns): Declare i and j inside the
6575 for loops rather than one for the whole function.
6576
6577 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
6578
6579 * match.pd (X + CST CMP X): New transformation.
6580
6581 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
6582
6583 * genmatch.c (write_predicate): Add ATTRIBUTE_UNUSED.
6584 * fold-const.c (fold_binary_loc): Remove 2 transformations
6585 superseded by match.pd.
6586 * match.pd (x+x -> x*2): Generalize to integers.
6587
6588 2016-04-26 Bernd Schmidt <bschmidt@redhat.com>
6589
6590 * config/i386/i386.md (operation on memory peephole): Duplicate an
6591 existing peephole and adapt it to match lea rather than an operation
6592 that clobbers CC.
6593
6594 PR rtl-optimization/57193
6595 * opts.c (default_options_table): Add OPT_frename_registers at -O2
6596 and above.
6597 * doc/invoke.texi (-frename-registers, -O2): Update documentation.
6598
6599 2016-04-26 Bin Cheng <bin.cheng@arm.com>
6600
6601 * tree-if-conv.c (any_pred_load_store): New static variable.
6602 (if_convertible_gimple_assign_stmt_p): Remove parameter. Use
6603 any_pred_load_store instead of and_mask_load_store.
6604 (if_convertible_stmt_p, if_convertible_loop_p_1): Ditto.
6605 (if_convertible_loop_p, insert_gimplified_predicates): Ditto.
6606 (combine_blocks, tree_if_conversion): Ditto.
6607
6608 2016-04-26 Bin Cheng <bin.cheng@arm.com>
6609
6610 PR tree-optimization/70771
6611 PR tree-optimization/70775
6612 * tree-if-conv.c (if_convertible_phi_p): Remove check on special
6613 virtual PHI nodes. Delete parameter.
6614 (if_convertible_loop_p_1): Delete argument to above function.
6615 (predicate_all_scalar_phis): Delete code handling single-argument
6616 PHIs.
6617 (tree_if_conversion): Mark and update virtual SSA.
6618
6619 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6620
6621 PR target/61821
6622 * config/i386/i386.c (LARGECOMM_SECTION_ASM_OP): Define default.
6623 (x86_elf_aligned_common): Rename to ...
6624 (x86_elf_aligned_decl_common): ... this.
6625 Add decl arg. Switch to .lbss for largecomm object. Use
6626 LARGECOMM_SECTION_ASM_OP.
6627 * config/i386/i386-protos.h (x86_elf_aligned_common): Reflect
6628 renaming.
6629 * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_COMMON): Rename to ...
6630 (ASM_OUTPUT_ALIGNED_DECL_COMMON): ... this.
6631 Pass new decl arg.
6632 * config/i386/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
6633 [!USE_GAS] (LARGECOMM_SECTION_ASM_OP): Define.
6634
6635 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6636
6637 PR target/59407
6638 * config/i386/i386.c (SECTION_LARGE): Define.
6639 (x86_64_elf_select_section): Set it for large data/bss sections.
6640 Only clear SECTION_WRITE for .lrodata.
6641 (x86_64_elf_section_type_flags): Set SECTION_LARGE for large
6642 data/bss sections.
6643 * config/i386/sol2.h (MACH_DEP_SECTION_ASM_FLAG): Define.
6644 * varasm.c (default_elf_asm_named_section): Grow flagchars.
6645 [MACH_DEP_SECTION_ASM_FLAG] Emit MACH_DEP_SECTION_ASM_FLAG for
6646 SECTION_MACH_DEP.
6647 * doc/tm.texi.in (Sections, MACH_DEP_SECTION_ASM_FLAG): Describe.
6648 * doc/tm.texi: Regenerate.
6649
6650 2016-04-26 Jakub Jelinek <jakub@redhat.com>
6651
6652 PR bootstrap/70704
6653 * configure.ac (--enable-checking): Document extra flag, for
6654 non-release builds default to --enable-checking=yes,extra.
6655 If misc checking and extra checking, define CHECKING_P to 2 instead
6656 of 1.
6657 * common.opt (fchecking=): Add.
6658 * doc/invoke.texi (-fchecking=): Document.
6659 * doc/install.texi: Document --enable-checking changes.
6660 * configure: Regenerated.
6661 * config.in: Regenerated.
6662
6663 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
6664
6665 * config/i386/i386.md (*movxi_internal_avx512f): Use insn type
6666 attribute instead of which_alternative.
6667 * config/i386/sse.md (*mov<mode>_internal): Ditto.
6668 Use EXT_REX_SSE_REG_P where appropriate.
6669
6670 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
6671
6672 * config/i386/predicates.md (const0_operand): Do not match
6673 const_wide_int code.
6674 (const1_operand): Ditto.
6675
6676 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
6677
6678 * config/i386/i386.md (*movoi_internal_avx): Set mode attribute to XI
6679 for SSE constm1 operands and TARGET_AVX512VL.
6680 (*movti_internal): Ditto.
6681 (*mov<mode>_or): Use constm1_operand predicate.
6682 * config/i386/sse.md (*mov<mode>_internal): Set mode attribute to XI
6683 for SSE vector_all_ones operands and TARGET_AVX512VL.
6684 * config/i386/predicates.md (constm1_operand): New predicate.
6685 * config/i386/i386.c (standard_sse_constant_opcode): Simplify
6686 emission of constant -1 load.
6687
6688 2016-04-25 Jason Merrill <jason@redhat.com>
6689
6690 * gdbinit.in: Skip is-a.h.
6691
6692 * attribs.c (register_scoped_attributes): Fix logic.
6693 * attribs.h: Declare register_scoped_attributes.
6694
6695 2016-04-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6696
6697 * config/rs6000/rs6000-builtin.def: Correct pasto error for
6698 stxvd2x and stxvw4x built-in functions.
6699
6700 2016-04-25 DJ Delorie <dj@redhat.com>
6701
6702 * config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
6703 (ashrhi3): Likewise.
6704 (lshrhi3): Likewise.
6705
6706 2016-04-25 Richard Biener <rguenther@suse.de>
6707
6708 PR tree-optimization/70780
6709 * tree-ssa-pre.c (compute_antic_aux): Also return true if the block
6710 wasn't visited yet.
6711 (compute_antic): Mark blocks with abnormal preds as visited as
6712 they have a final empty antic-in solution already.
6713
6714 2016-04-25 Michael Collison <michael.collison@linaro.org>
6715
6716 * ChangeLog(2016-04-25): Fix ChangeLog formatting.
6717
6718 2016-04-25 Michael Collison <michael.collison@linaro.org>
6719
6720 * config/arm/neon.md (widen_<us>sum<mode>): New patterns where
6721 mode is VQI to improve mixed mode vectorization.
6722 * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3): New
6723 define_insn to match low half of signed vaddw.
6724 * config/arm/neon.md (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): New
6725 define_insn to match high half of signed vaddw.
6726 * config/arm/neon.md (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): New
6727 define_insn to match low half of unsigned vaddw.
6728 * config/arm/neon.md (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): New
6729 define_insn to match high half of unsigned vaddw.
6730 * config/arm/arm.c (arm_simd_vect_par_cnst_half): New function.
6731 (arm_simd_check_vect_par_cnst_half_p): Likewise.
6732 * config/arm/arm-protos.h (arm_simd_vect_par_cnst_half): Prototype
6733 for new function.
6734 (arm_simd_check_vect_par_cnst_half_p): Likewise.
6735 * config/arm/predicates.md (vect_par_constant_high): Support
6736 big endian and simplify by calling
6737 arm_simd_check_vect_par_cnst_half
6738 (vect_par_constant_low): Likewise.
6739
6740 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
6741
6742 * config/i386/i386.md (*lea<mode>_general_4): Use const_0_to_3_operand
6743 predicate for operand 2.
6744
6745 2016-04-24 Uros Bizjak <ubizjak@gmail.com>
6746 H.J. Lu <hongjiu.lu@intel.com>
6747
6748 * config/i386/i386-protos.h (standard_sse_constant_p): Add
6749 machine_mode argument.
6750 * config/i386/i386.c (standard_sse_constant_p): Return 2 for
6751 constm1_rtx operands. For VOIDmode constants, get mode from
6752 pred_mode. Check mode size if the mode is supported by ABI.
6753 (standard_sse_constant_opcode): Do not use standard_constant_p.
6754 Strictly check ABI support for all-ones operands.
6755 (ix86_legitimate_constant_p): Handle TImode, OImode and XImode
6756 immediates. Update calls to standard_sse_constant_p.
6757 (ix86_expand_vector_move): Update calls to standard_sse_constant_p.
6758 (ix86_rtx_costs): Ditto.
6759 * config/i386/i386.md (*movxi_internal_avx512f): Use
6760 nonimmediate_or_sse_const_operand instead of vector_move_operand.
6761 Use (v,BC) alternative instead of (v,C). Use register_operand
6762 checks instead of MEM_P.
6763 (*movoi_internal_avx): Use nonimmediate_or_sse_const_operand instead
6764 of vector_move_operand. Add (v,BC) alternative and corresponding avx2
6765 isa attribute. Use register_operand checks instead of MEM_P.
6766 (*movti_internal): Use nonimmediate_or_sse_const_operand for
6767 TARGET_SSE. Improve TARGET_SSE insn constraint. Add (v,BC)
6768 alternative and corresponding sse2 isa attribute.
6769 (*movtf_internal, *movdf_internal, *movsf_interal): Update calls
6770 to standard_sse_constant_p.
6771 (FP constant splitters): Ditto.
6772 * config/i386/constraints.md (BC): Do not use standard_sse_constant_p.
6773 (C): Ditto.
6774 * config/i386/predicates.md (constm1_operand): Remove.
6775 (nonimmediate_or_sse_const_operand): Rewrite using RTX.
6776 * config/i386/sse.md (*<avx512>_cvtmask2<ssemodesuffix><mode>): Use
6777 vector_all_ones_operand instead of constm1_operand.
6778
6779 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6780
6781 * print-rtl.c (print_rtx_insn_vec): New function.
6782 * print-rtl.h: New prototype.
6783 * store-motion.c (struct st_expr): Make avail_stores a vector.
6784 (st_expr_entry): Adjust.
6785 (free_st_expr_entry): Likewise.
6786 (print_store_motion_mems): Likewise.
6787 (find_moveable_store): Likewise.
6788 (compute_store_table): Likewise.
6789 (delete_store): Likewise.
6790 (build_store_vectors): Likewise.
6791
6792 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6793
6794 * reorg.c (try_merge_delay_insns): Make merged_insns a vector.
6795
6796 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6797
6798 * vec.h (vec_safe_contains): New function.
6799 (vec::contains): Likewise.
6800 (vec::begin): Likewise.
6801 (vec::end): Likewise.
6802
6803 2016-04-23 Jakub Jelinek <jakub@redhat.com>
6804
6805 PR sanitizer/70712
6806 * cfgexpand.c (expand_stack_vars): Fix typo.
6807
6808 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
6809
6810 * system.h (list, map, set, vector): Include conditionally.
6811 * auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define.
6812 * graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define.
6813 * ipa-icf.c (INCLUDE_LIST): Define.
6814 * config/aarch64/cortex-a57-fma-steering.c (INCLUDE_LIST): Define.
6815 * config/sh/sh.c (INCLUDE_VECTOR): Define.
6816 * config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define.
6817 (INCLUDE_LIST, INCLUDE_VECTOR): Define.
6818 * cp/logic.cc (INCLUDE_LIST): Define.
6819 * fortran/trans-common.c (INCLUDE_MAP): Define.
6820
6821 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
6822
6823 * auto-profile.c: Remove <string.h> include.
6824 * ipa-icf-gimple.c: Remove <list> include.
6825 * diagnostic.c: Remove <new> include.
6826 * genmatch.c: Likewise.
6827 * pretty-print.c: Likewise.
6828 * toplev.c: Likewise
6829 * c/c-objc-common.c: Likewise.
6830 * cp/error.c: Likewise.
6831 * fortran/error.c: Likewise.
6832
6833 2016-04-22 Richard Biener <rguenther@suse.de>
6834
6835 * lto-streamer-in.c (input_ssa_names): Do not allocate
6836 GIMPLE_NOP for all SSA names.
6837 * lto-streamer-out.c (output_ssa_names): Do not output
6838 SSA names that should have been released.
6839
6840 2016-04-22 Richard Biener <rguenther@suse.de>
6841
6842 PR tree-optimization/70740
6843 * tree-ssa-phiprop.c (propagate_with_phi): Handle inserted
6844 VDEF.
6845
6846 2016-04-21 H.J. Lu <hongjiu.lu@intel.com>
6847
6848 PR target/70750
6849 * config/i386/predicates.md (call_insn_operand): Replace
6850 sibcall_memory_operand with memory_operand.
6851
6852 2016-04-21 Patrick Palka <ppalka@gcc.gnu.org>
6853
6854 * tree-vrp.c (register_edge_assert_for_2): Remove redundant
6855 has_single_use() tests.
6856 (register_edge_assert_for_1): Likewise.
6857 (find_assert_locations_1): Check the liveness bitmap instead of
6858 checking has_single_use().
6859
6860 2016-04-21 Kirill Yukhin <kirill.yukhin@intel.com>
6861
6862 PR target/70728
6863 * config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
6864 Extract AVX-512BW constraint from AVX.
6865
6866 2016-04-21 Richard Biener <rguenther@suse.de>
6867
6868 PR tree-optimization/70725
6869 * tree-if-conv.c (if_convertible_phi_p): Adjust guard
6870 for phi_convertible_by_degenerating_args.
6871 (predicate_all_scalar_phis): Handle single-argument PHIs.
6872
6873 2016-04-21 Richard Biener <rguenther@suse.de>
6874
6875 PR middle-end/70747
6876 * fold-const.c (fold_comparison): Return properly typed
6877 constant boolean.
6878
6879 2016-04-21 Bin Cheng <bin.cheng@arm.com>
6880
6881 PR tree-optimization/70715
6882 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
6883 after expanding BASE using expand_simple_operations.
6884
6885 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
6886
6887 * match.pd (min(-x, -y), max(-x, -y), min(~x, ~y), max(~x, ~y)):
6888 New transformations.
6889
6890 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
6891
6892 * match.pd (min(int_max, x), max(int_min, x)): New transformations.
6893
6894 2016-04-20 Jan Hubicka <jh@suse.cz>
6895
6896 * ipa-inline.c (can_inline_edge_p): Pass caller info to
6897 ultiimate_alias_target.
6898 (update_callee_keys): Likewise.
6899 (lookup_recursive_calls): Likewise.
6900 (speculation_useful_p): Likewise.
6901
6902 2016-04-20 Jan Hubicka <jh@suse.cz>
6903
6904 PR ipa/70018
6905 * cgraph.c (cgraph_set_nothrow_flag_1): Rename to ...
6906 (set_nothrow_flag_1): ... this; handle interposition correctly;
6907 recurse on aliases and thunks.
6908 (cgraph_node::set_nothrow_flag): New.
6909 * ipa-pure-const.c (ignore_edge_for_nothrow): Ignore calls to
6910 functions compiled with non-call exceptions that binds to current
6911 def.
6912 (propagate_nothrow): Be safe WRT interposition.
6913 * cgraph.h (set_nothrow_flag): Update prototype.
6914
6915 2016-04-18 Jan Hubicka <jh@suse.cz>
6916
6917 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
6918 max_loop_iterations_int.
6919 (tree_unswitch_outer_loop): Likewise.
6920
6921 2016-04-20 Bin Cheng <bin.cheng@arm.com>
6922
6923 PR tree-optimization/69489
6924 * tree-if-conv.c (phi_convertible_by_degenerating_args): New.
6925 (if_convertible_phi_p): Call phi_convertible_by_degenerating_args.
6926 Revise dump message.
6927 (if_convertible_bb_p): Remove check on edge count of basic block's
6928 predecessors.
6929
6930 2016-04-20 Bin Cheng <bin.cheng@arm.com>
6931
6932 PR tree-optimization/56625
6933 PR tree-optimization/69489
6934 * tree-data-ref.h (DR_INNERMOST): New macro.
6935 * tree-if-conv.c (innermost_loop_behavior_hash): New class for
6936 hashing struct innermost_loop_behavior.
6937 (ref_DR_map): Remove.
6938 (innermost_DR_map): New map.
6939 (baseref_DR_map): Revise comment.
6940 (hash_memrefs_baserefs_and_store_DRs_read_written_info): Store DR
6941 to innermost_DR_map accroding to its innermost loop behavior.
6942 (ifcvt_memrefs_wont_trap): Get DR from innermost_DR_map according
6943 to its innermost loop behavior.
6944 (if_convertible_loop_p_1): Remove intialization for ref_DR_map.
6945 Add initialization for innermost_DR_map. Record memory reference
6946 in DR_BASE_ADDRESS if the reference is compound one or it doesn't
6947 have innermost loop behavior.
6948 (if_convertible_loop_p): Remove release for ref_DR_map. Release
6949 innermost_DR_map.
6950
6951 2016-04-20 Uros Bizjak <ubizjak@gmail.com>
6952
6953 * config/i386/i386.md (*lea<mode>_general_1): Rename from
6954 *lea_general_1. Use explicit SWI12 mode interator.
6955 (*lea<mode>_general_2): Rename from *lea_general_2.
6956 Use explicit SWI12 mode interator.
6957 (*lea<mode>_general_3): Rename from *lea_general_3.
6958 Use explicit SWI12 mode interator.
6959 (*lea<SWI12:mode>_general_4): Split from *lea_general_4.
6960 Use explicit SWI12 mode interator.
6961 (*lea<SWI48:mode>_general_4): Split from *lea_general_4.
6962 Use explicit SWI48 mode interator.
6963
6964 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
6965
6966 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
6967 Short-cut unaligned load and store cases. Handle all integer
6968 vector modes.
6969 (ix86_expand_vector_move_misalign): Short-cut unaligned load
6970 and store cases. Call ix86_avx256_split_vector_move_misalign
6971 directly without checking mode class.
6972
6973 2016-04-20 Andrew Pinski <apinski@cavium.com>
6974 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6975
6976 PR target/64971
6977 * config/aarch64/aarch64.md (sibcall): Force call
6978 address to be DImode for ILP32.
6979 (sibcall_value): Likewise.
6980
6981 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
6982
6983 * doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.
6984
6985 2016-04-20 Richard Biener <rguenther@suse.de>
6986
6987 * gimple-match.h (maybe_build_generic_op): Adjust prototype.
6988 * gimple-match-head.c (maybe_build_generic_op): Pass all ops
6989 by reference, clear op1 and op2 when GENERICizing BIT_FIELD_REF.
6990 (maybe_push_res_to_seq): Adjust.
6991 * gimple-fold.c (maybe_build_generic_op): Likewise.
6992
6993 2016-04-20 Marek Polacek <polacek@redhat.com>
6994
6995 * tree-if-conv.c (is_false_predicate): For NULL_TREE return false
6996 rather than true.
6997
6998 2016-04-20 Ilya Enkovich <ilya.enkovich@intel.com>
6999
7000 * config/i386/sse.md (vec_unpacks_lo_hi): Always
7001 use kmovw to support AVX512F target.
7002
7003 2016-04-20 Bin Cheng <bin.cheng@arm.com>
7004
7005 * tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
7006
7007 2016-04-20 Marek Polacek <polacek@redhat.com>
7008
7009 PR tree-optimization/70725
7010 * tree-if-conv.c (is_false_predicate): New function.
7011 (predicate_mem_writes): Use it.
7012
7013 2016-04-20 Richard Biener <rguenther@suse.de>
7014
7015 PR tree-optimization/70726
7016 * tree-vect-stmts.c (vectorizable_shift): Do not use scalar
7017 shift amounts from a pattern stmt operand.
7018
7019 2016-04-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7020
7021 PR target/70674
7022 * config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new
7023 stack_restore_from_fpr pattern when restoring r15.
7024 (s390_optimize_prologue): Strip away the memory barrier in the
7025 parallel when trying to get rid of restore insns.
7026 * config/s390/s390.md ("stack_restore_from_fpr"): New insn
7027 definition for loading the stack pointer from an FPR. Compared to
7028 the normal move insn this pattern includes a full memory barrier.
7029
7030 2016-04-19 Jakub Jelinek <jakub@redhat.com>
7031
7032 PR middle-end/70680
7033 * gimplify.c (gimplify_omp_for): Call omp_notice_variable for
7034 implicitly linear or lastprivate iterator on the outer context.
7035
7036 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
7037
7038 * config/i386/i386.c (ix86_legitimate_combined_insn): Remove
7039 alignment check.
7040 * config/i386/i386.md (ssememalign): Removed.
7041 * config/i386/sse.md: Remove ssememalign attribute from patterns.
7042
7043 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
7044
7045 PR target/69201
7046 * config/i386/avx512bwintrin.h (_mm512_mask_loadu_epi16): Pass
7047 const short * to __builtin_ia32_loaddquhi512_mask.
7048 (_mm512_maskz_loadu_epi16): Likewise.
7049 (_mm512_mask_storeu_epi16): Pass short * to
7050 __builtin_ia32_storedquhi512_mask.
7051 (_mm512_mask_loadu_epi8): Pass const char * to
7052 __builtin_ia32_loaddquqi512_mask.
7053 (_mm512_maskz_loadu_epi8): Likewise.
7054 (_mm512_mask_storeu_epi8): Pass char * to
7055 __builtin_ia32_storedquqi512_mask.
7056 * config/i386/avx512fintrin.h (_mm512_loadu_pd): Pass
7057 const double * to __builtin_ia32_loadupd512_mask.
7058 (_mm512_mask_loadu_pd): Likewise.
7059 (_mm512_maskz_loadu_pd): Likewise.
7060 (_mm512_storeu_pd): Pass double * to
7061 __builtin_ia32_storeupd512_mask.
7062 (_mm512_mask_storeu_pd): Likewise.
7063 (_mm512_loadu_ps): Pass const float * to
7064 __builtin_ia32_loadups512_mask.
7065 (_mm512_mask_loadu_ps): Likewise.
7066 (_mm512_maskz_loadu_ps): Likewise.
7067 (_mm512_storeu_ps): Pass float * to
7068 __builtin_ia32_storeups512_mask.
7069 (_mm512_mask_storeu_ps): Likewise.
7070 (_mm512_mask_loadu_epi64): Pass const long long * to
7071 __builtin_ia32_loaddqudi512_mask.
7072 (_mm512_maskz_loadu_epi64): Likewise.
7073 (_mm512_mask_storeu_epi64): Pass long long *
7074 to __builtin_ia32_storedqudi512_mask.
7075 (_mm512_loadu_si512): Pass const int * to
7076 __builtin_ia32_loaddqusi512_mask.
7077 (_mm512_mask_loadu_epi32): Likewise.
7078 (_mm512_maskz_loadu_epi32): Likewise.
7079 (_mm512_storeu_si512): Pass int * to
7080 __builtin_ia32_storedqusi512_mask.
7081 (_mm512_mask_storeu_epi32): Likewise.
7082 * config/i386/avx512vlbwintrin.h (_mm256_mask_storeu_epi8): Pass
7083 char * to __builtin_ia32_storedquqi256_mask.
7084 (_mm_mask_storeu_epi8): Likewise.
7085 (_mm256_mask_loadu_epi16): Pass const short * to
7086 __builtin_ia32_loaddquhi256_mask.
7087 (_mm256_maskz_loadu_epi16): Likewise.
7088 (_mm_mask_loadu_epi16): Pass const short * to
7089 __builtin_ia32_loaddquhi128_mask.
7090 (_mm_maskz_loadu_epi16): Likewise.
7091 (_mm256_mask_loadu_epi8): Pass const char * to
7092 __builtin_ia32_loaddquqi256_mask.
7093 (_mm256_maskz_loadu_epi8): Likewise.
7094 (_mm_mask_loadu_epi8): Pass const char * to
7095 __builtin_ia32_loaddquqi128_mask.
7096 (_mm_maskz_loadu_epi8): Likewise.
7097 (_mm256_mask_storeu_epi16): Pass short * to.
7098 __builtin_ia32_storedquhi256_mask.
7099 (_mm_mask_storeu_epi16): Pass short * to.
7100 __builtin_ia32_storedquhi128_mask.
7101 * config/i386/avx512vlintrin.h (_mm256_mask_loadu_pd): Pass
7102 const double * to __builtin_ia32_loadupd256_mask.
7103 (_mm256_maskz_loadu_pd): Likewise.
7104 (_mm_mask_loadu_pd): Pass onst double * to
7105 __builtin_ia32_loadupd128_mask.
7106 (_mm_maskz_loadu_pd): Likewise.
7107 (_mm256_mask_storeu_pd): Pass double * to
7108 __builtin_ia32_storeupd256_mask.
7109 (_mm_mask_storeu_pd): Pass double * to
7110 __builtin_ia32_storeupd128_mask.
7111 (_mm256_mask_loadu_ps): Pass const float * to
7112 __builtin_ia32_loadups256_mask.
7113 (_mm256_maskz_loadu_ps): Likewise.
7114 (_mm_mask_loadu_ps): Pass const float * to
7115 __builtin_ia32_loadups128_mask.
7116 (_mm_maskz_loadu_ps): Likewise.
7117 (_mm256_mask_storeu_ps): Pass float * to
7118 __builtin_ia32_storeups256_mask.
7119 (_mm_mask_storeu_ps): ass float * to
7120 __builtin_ia32_storeups128_mask.
7121 (_mm256_mask_loadu_epi64): Pass const long long * to
7122 __builtin_ia32_loaddqudi256_mask.
7123 (_mm256_maskz_loadu_epi64): Likewise.
7124 (_mm_mask_loadu_epi64): Pass const long long * to
7125 __builtin_ia32_loaddqudi128_mask.
7126 (_mm_maskz_loadu_epi64): Likewise.
7127 (_mm256_mask_storeu_epi64): Pass long long * to
7128 __builtin_ia32_storedqudi256_mask.
7129 (_mm_mask_storeu_epi64): Pass long long * to
7130 __builtin_ia32_storedqudi128_mask.
7131 (_mm256_mask_loadu_epi32): Pass const int * to
7132 __builtin_ia32_loaddqusi256_mask.
7133 (_mm256_maskz_loadu_epi32): Likewise.
7134 (_mm_mask_loadu_epi32): Pass const int * to
7135 __builtin_ia32_loaddqusi128_mask.
7136 (_mm_maskz_loadu_epi32): Likewise.
7137 (_mm256_mask_storeu_epi32): Pass int * to
7138 __builtin_ia32_storedqusi256_mask.
7139 (_mm_mask_storeu_epi32): Pass int * to
7140 __builtin_ia32_storedqusi128_mask.
7141 * config/i386/i386-builtin-types.def (PCSHORT): New.
7142 (PINT64): Likewise.
7143 (V64QI_FTYPE_PCCHAR_V64QI_UDI): Likewise.
7144 (V32HI_FTYPE_PCSHORT_V32HI_USI): Likewise.
7145 (V32QI_FTYPE_PCCHAR_V32QI_USI): Likewise.
7146 (V16SF_FTYPE_PCFLOAT_V16SF_UHI): Likewise.
7147 (V8DF_FTYPE_PCDOUBLE_V8DF_UQI): Likewise.
7148 (V16SI_FTYPE_PCINT_V16SI_UHI): Likewise.
7149 (V16HI_FTYPE_PCSHORT_V16HI_UHI): Likewise.
7150 (V16QI_FTYPE_PCCHAR_V16QI_UHI): Likewise.
7151 (V8SF_FTYPE_PCFLOAT_V8SF_UQI): Likewise.
7152 (V8DI_FTYPE_PCINT64_V8DI_UQI): Likewise.
7153 (V8SI_FTYPE_PCINT_V8SI_UQI): Likewise.
7154 (V8HI_FTYPE_PCSHORT_V8HI_UQI): Likewise.
7155 (V4DF_FTYPE_PCDOUBLE_V4DF_UQI): Likewise.
7156 (V4SF_FTYPE_PCFLOAT_V4SF_UQI): Likewise.
7157 (V4DI_FTYPE_PCINT64_V4DI_UQI): Likewise.
7158 (V4SI_FTYPE_PCINT_V4SI_UQI): Likewise.
7159 (V2DF_FTYPE_PCDOUBLE_V2DF_UQI): Likewise.
7160 (V2DI_FTYPE_PCINT64_V2DI_UQI): Likewise.
7161 (VOID_FTYPE_PDOUBLE_V8DF_UQI): Likewise.
7162 (VOID_FTYPE_PDOUBLE_V4DF_UQI): Likewise.
7163 (VOID_FTYPE_PDOUBLE_V2DF_UQI): Likewise.
7164 (VOID_FTYPE_PFLOAT_V16SF_UHI): Likewise.
7165 (VOID_FTYPE_PFLOAT_V8SF_UQI): Likewise.
7166 (VOID_FTYPE_PFLOAT_V4SF_UQI): Likewise.
7167 (VOID_FTYPE_PINT64_V8DI_UQI): Likewise.
7168 (VOID_FTYPE_PINT64_V4DI_UQI): Likewise.
7169 (VOID_FTYPE_PINT64_V2DI_UQI): Likewise.
7170 (VOID_FTYPE_PINT_V16SI_UHI): Likewise.
7171 (VOID_FTYPE_PINT_V8SI_UHI): Likewise.
7172 (VOID_FTYPE_PINT_V4SI_UHI): Likewise.
7173 (VOID_FTYPE_PSHORT_V32HI_USI): Likewise.
7174 (VOID_FTYPE_PSHORT_V16HI_UHI): Likewise.
7175 (VOID_FTYPE_PSHORT_V8HI_UQI): Likewise.
7176 (VOID_FTYPE_PCHAR_V64QI_UDI): Likewise.
7177 (VOID_FTYPE_PCHAR_V32QI_USI): Likewise.
7178 (VOID_FTYPE_PCHAR_V16QI_UHI): Likewise.
7179 (V64QI_FTYPE_PCV64QI_V64QI_UDI): Removed.
7180 (V32HI_FTYPE_PCV32HI_V32HI_USI): Likewise.
7181 (V32QI_FTYPE_PCV32QI_V32QI_USI): Likewise.
7182 (V16HI_FTYPE_PCV16HI_V16HI_UHI): Likewise.
7183 (V16QI_FTYPE_PCV16QI_V16QI_UHI): Likewise.
7184 (V8HI_FTYPE_PCV8HI_V8HI_UQI): Likewise.
7185 (VOID_FTYPE_PV32HI_V32HI_USI): Likewise.
7186 (VOID_FTYPE_PV16HI_V16HI_UHI): Likewise.
7187 (VOID_FTYPE_PV8HI_V8HI_UQI): Likewise.
7188 (VOID_FTYPE_PV64QI_V64QI_UDI): Likewise.
7189 (VOID_FTYPE_PV32QI_V32QI_USI): Likewise.
7190 (VOID_FTYPE_PV16QI_V16QI_UHI): Likewise.
7191 * config/i386/i386.c (ix86_emit_save_reg_using_mov): Don't
7192 use UNSPEC_STOREU.
7193 (ix86_emit_restore_sse_regs_using_mov): Don't use UNSPEC_LOADU.
7194 (ix86_avx256_split_vector_move_misalign): Don't use unaligned
7195 load nor store.
7196 (ix86_expand_vector_move_misalign): Likewise.
7197 (bdesc_special_args): Use CODE_FOR_movvNXY_internal and pointer
7198 to scalar function prototype for unaligned load/store builtins.
7199 (ix86_expand_special_args_builtin): Updated.
7200 * config/i386/sse.md (UNSPEC_LOADU): Removed.
7201 (UNSPEC_STOREU): Likewise.
7202 (VI_ULOADSTORE_BW_AVX512VL): Likewise.
7203 (VI_ULOADSTORE_F_AVX512VL): Likewise.
7204 (ssescalarsize): Handle V4TI, V2TI and V1TI.
7205 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
7206 (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
7207 (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Likewise.
7208 (<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask): Likewise.
7209 (<sse2_avx_avx512f>_loaddqu<mode><mask_name>): Likewise.
7210 (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"): Likewise.
7211 (sse2_avx_avx512f>_storedqu<mode>): Likewise.
7212 (<avx512>_storedqu<mode>_mask): Likewise.
7213 (*sse4_2_pcmpestr_unaligned): Likewise.
7214 (*sse4_2_pcmpistr_unaligned): Likewise.
7215 (*mov<mode>_internal): Renamed to ...
7216 (mov<mode>_internal): This. Remove check of AVX and IAMCU on
7217 misaligned operand. Replace vmovdqu64 with vmovdqu<ssescalarsize>.
7218 (movsd/movhpd to movupd peephole): Don't use UNSPEC_LOADU.
7219 (movlpd/movhpd to movupd peephole): Don't use UNSPEC_STOREU.
7220
7221 2016-04-19 Richard Biener <rguenther@suse.de>
7222
7223 PR tree-optimization/70171
7224 * tree-ssa-phiprop.c: Include stor-layout.h.
7225 (phiprop_insert_phi): Handle the aggregate copy case.
7226 (propagate_with_phi): Likewise.
7227
7228 2016-04-19 Uros Bizjak <ubizjak@gmail.com>
7229
7230 * config/i386/i386.c (ix86_decompose_address): Use lowpart_subreg
7231 instead of simplify_gen_subreg (... , 0).
7232 (ix86_delegitimize_address): Ditto.
7233 (ix86_split_divmod): Ditto.
7234 (ix86_split_copysign_const): Ditto.
7235 (ix86_split_copysign_var): Ditto.
7236 (ix86_expand_args_builtin): Ditto.
7237 (ix86_expand_round_builtin): Ditto.
7238 (ix86_expand_special_args_builtin): Ditto.
7239 * config/i386/i386.md (TARGET_USE_VECTOR_FP_CONVERTS splitters): Ditto.
7240 (TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters and peephole2s): Ditto.
7241 (udivmodqi4): Ditto.
7242 (absneg splitters): Ditto.
7243 (*jcc_bt<mode>_1): Ditto.
7244
7245 2016-04-19 Richard Biener <rguenther@suse.de>
7246
7247 PR tree-optimization/70724
7248 * tree-ssa-sccvn.c (scc_vn_restore_ssa_info): Split SSA info
7249 restoring out from ...
7250 (free_scc_vn): ... here.
7251 * tree-ssa-sccvn.h (scc_vn_restore_ssa_info): Declare.
7252 * tres-ssa-pre.c (pass_pre::execute): Restore SSA info before
7253 tail merging.
7254 (pass_fre::execute): Restore SSA info.
7255
7256 2016-04-19 Richard Biener <rguenther@suse.de>
7257
7258 * gimple-walk.h (struct walk_stmt_info): Add stmt member.
7259 * gimple-walk.c (walk_gimple_op): Initialize it.
7260 (walk_gimple_asm): Set wi->is_lhs before each callback invocation.
7261 * tree-inline.c (remap_gimple_op_r): Set SSA_NAME_DEF_STMT when
7262 remapping SSA names of defs.
7263 (copy_bb): Remove walk over all SSA defs and SSA_NAME_DEF_STMT
7264 adjustment.
7265
7266 2016-04-18 Vladimir Makarov <vmakarov@redhat.com>
7267
7268 PR middle-end/70689
7269 * lra-constraints.c (equiv_substition_p): New.
7270 (process_alt_operands): Use it.
7271 (swap_operands): Swap it.
7272 (curr_insn_transform): Update it.
7273
7274 2016-04-18 Michael Matz <matz@suse.de>
7275
7276 * tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount.
7277 (SET_TYPE_ALIGN, SET_DECL_ALIGN): New.
7278 * tree-core.h (tree_type_common.align): Use bit-field.
7279 (tree_type_common.spare): New.
7280 (tree_decl_common.off_align): Make smaller.
7281 (tree_decl_common.align): Use bit-field.
7282
7283 * expr.c (expand_expr_addr_expr_1): Use SET_TYPE_ALIGN.
7284 * omp-low.c (install_var_field): Use SET_DECL_ALIGN.
7285 (scan_sharing_clauses): Ditto.
7286 (finish_taskreg_scan): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
7287 (omp_finish_file): Ditto.
7288 * stor-layout.c (do_type_align): Use SET_DECL_ALIGN.
7289 (layout_decl): Ditto.
7290 (relayout_decl): Ditto.
7291 (finalize_record_size): Use SET_TYPE_ALIGN.
7292 (finalize_type_size): Ditto.
7293 (finish_builtin_struct): Ditto.
7294 (layout_type): Ditto.
7295 (initialize_sizetypes): Ditto.
7296 * targhooks.c (std_gimplify_va_arg_expr): Use SET_TYPE_ALIGN.
7297 * tree-nested.c (insert_field_into_struct): Use SET_TYPE_ALIGN.
7298 (lookup_field_for_decl): Use SET_DECL_ALIGN.
7299 (get_chain_field): Ditto.
7300 (get_trampoline_type): Ditto.
7301 (get_nl_goto_field): Ditto.
7302 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
7303 SET_DECL_ALIGN.
7304 (unpack_ts_type_common_value_fields): Use SET_TYPE_ALIGN.
7305 * gimple-expr.c (copy_var_decl): Use SET_DECL_ALIGN.
7306 * tree.c (make_node_stat): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
7307 (build_qualified_type): Use SET_TYPE_ALIGN.
7308 (build_aligned_type, build_range_type_1): Ditto.
7309 (build_atomic_base): Ditto.
7310 (build_common_tree_nodes): Ditto.
7311 * cfgexpand.c (align_local_variable): Use SET_DECL_ALIGN.
7312 (expand_one_stack_var_at): Ditto.
7313 * coverage.c (build_var): Use SET_DECL_ALIGN.
7314 * except.c (init_eh): Ditto.
7315 * function.c (assign_parm_setup_block): Ditto.
7316 * symtab.c (increase_alignment_1): Ditto.
7317 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Ditto.
7318 * tree-vect-stmts.c (ensure_base_align): Ditto.
7319 * varasm.c (align_variable): Ditto.
7320 (assemble_variable): Ditto.
7321 (build_constant_desc): Ditto.
7322 (output_constant_def_contents): Ditto.
7323
7324 * config/arm/arm.c (arm_relayout_function): Use SET_DECL_ALIGN.
7325 * config/avr/avr.c (avr_adjust_type_node): Use SET_TYPE_ALIGN.
7326 * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Ditto.
7327 * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Ditto.
7328 * config/spu/spu.c (spu_build_builtin_va_list): Use SET_DECL_ALIGN.
7329
7330 2016-04-18 H.J. Lu <hongjiu.lu@intel.com>
7331
7332 PR target/70708
7333 * config/i386/sse.md (sse2_loadlpd): Accept load from "xm" and
7334 replace %vmovsd with "%vmovq".
7335 (vec_concatv2df): Likewise.
7336
7337 2016-04-18 Uros Bizjak <ubizjak@gmail.com>
7338
7339 * config/i386/mmx.md (*vec_extractv2sf_0): Use gen_lowpart.
7340 (*vec_extractv2si_0): Ditto.
7341 * config/i386/sse.md (*vec_extractv4sf_0): Ditto.
7342 (zero_extended_scalar_load_operand splitters): Ditto.
7343 (vec_extract splitters): Ditto.
7344 (*vec_extractv4si_0_zext): Ditto.
7345 (avx_<castmode><avxsizesuffix>_<castmode>): Use gen_lowpart
7346 and lowpart_subreg.
7347 (avx512f_<castmode><avxsizesuffix>_<castmode>): Ditto.
7348 (avx512f_<castmode><avxsizesuffix>_256<castmode>): Ditto.
7349 (*sse4_1_extractps): Use lowpart_subreg.
7350 * config/i386/i386.md (x87 floatsplitter): Use gen_lowpart.
7351
7352 2016-04-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7353
7354 * doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
7355 gld requirements.
7356 (Specific, *-*-solaris2*): Update Solaris 11 bundled gcc versions.
7357 Mention Solaris 11 packaging changes.
7358 Update gas and gld requirements.
7359 Remove reference to pre-Solaris 10 bug.
7360 (Specific, sparc-sun-solaris2*): Remove reference to pre-Solaris 10
7361 systems and bugs.
7362 (Specific, sparc64-*-solaris2*): Remove reference to bootstrap
7363 with cc.
7364
7365 2016-04-17 Jan Hubicka <jh@suse.cz>
7366
7367 * tree-ssa-loop-ivopts.c (avg_loop_niter): Use also
7368 max_loop_iterations_int.
7369
7370 2016-04-18 Richard Biener <rguenther@suse.de>
7371
7372 PR tree-optimization/43434
7373 * tree-ssa-structalias.c (struct vls_data): New.
7374 (visit_loadstore): Handle all pointer-based accesses.
7375 (compute_dependence_clique): Compute a bitmap of restrict tags
7376 assigned bases and pass it to visit_loadstore.
7377
7378 2016-04-18 Matthew Wahab <matthew.wahab@arm.com>
7379
7380 PR target/70711
7381 * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc,
7382 armv8.1-a and armv8.1-a+crc.
7383
7384 2016-04-18 Richard Biener <rguenther@suse.de>
7385
7386 PR tree-optimization/70701
7387 * tree-ssa-sccvn.c (vn_reference_lookup_3): Resolve fully constant
7388 references after translating through a memcpy.
7389
7390 2016-04-18 Richard Biener <rguenther@suse.de>
7391
7392 * tree-ssa-pre.c (postorder, postorder_num): Make locals ...
7393 (compute_antic): ... here. For partial antic use regular
7394 postorder and scrap iteration.
7395 (compute_partial_antic_aux): Remove unused return value.
7396 (init_pre): Do not allocate postorder.
7397 (fini_pre): Do not free postorder.
7398
7399 2016-04-18 Richard Biener <rguenther@suse.de>
7400
7401 PR middle-end/37870
7402 * expmed.c (extract_bit_field_1): Remove broken case
7403 using a wider MODE_INT mode.
7404
7405 2016-04-18 Segher Boessenkool <segher@kernel.crashing.org>
7406
7407 * has-brig.c (lendian16): Don't try to use __builtin_bswap16
7408 unless compiling with at least GCC-4.8.
7409
7410 2016-04-17 Jan Hubicka <jh@suse.cz>
7411
7412 PR bootstrap/70706
7413 * graphite.c (graphite_finalize): Update call to
7414 tree_estimate_probability.
7415 * predict.h (tree_estimate_probability): Update prototype.
7416
7417 2016-04-17 Jan Hubicka <jh@suse.cz>
7418
7419 * predict.c (combine_predictions_for_bb): Add dry_run parmaeter.
7420 (tree_estimate_probability): Likewise.
7421 (pass_profile::execute): Update.
7422 (report_predictor_hitrates): New function.
7423 * profile.c (compute_branch_probabilities): Use it.
7424 * predict.h (report_predictor_hitrates): Declare.
7425
7426 2016-04-17 Jan Hubicka <jh@suse.cz>
7427
7428 PR ipa/70018
7429 * cgraph.h (cgraph_node::set_const_flag,
7430 cgraph_node::set_pure_flag): Update prototype to return bool;
7431 update comment.
7432 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Thunks
7433 of interposable symbol are interposable, too.
7434 (cgraph_set_const_flag_1): Rename to ...
7435 (set_const_flag_1): ... this one; change to self recursive function
7436 instead of call_for_symbol_thunks_and_aliases. Handle correctly
7437 clearnig the flag in all variants and also virtual thunks of const
7438 functions are pure; track if any change was done.
7439 (cgraph_node::set_const_flag): Update.
7440 (struct set_pure_flag_info): New struct.
7441 (cgraph_set_pure_flag_1): Rename to ...
7442 (set_pure_flag_1): ... this one; take set_pure_flag_info parameter
7443 rather than pointer encoded flags; track if any changes was done;
7444 handle correctly clearning flag and setting flag of aliases already
7445 declared const.
7446 (cgraph_node::set_pure_flag): Update.
7447 (cgraph_node::set_nothrow_flag): Handle correctly clearning the flag.
7448
7449 2016-04-17 Tom de Vries <tom@codesourcery.com>
7450
7451 PR other/70433
7452 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Escape
7453 backslash in label.
7454
7455 2016-04-17 Tom de Vries <tom@codesourcery.com>
7456
7457 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Classify chars
7458 '{}<> ' as escape-for-record.
7459
7460 2016-04-17 Tom de Vries <tom@codesourcery.com>
7461
7462 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Simplify loop
7463 structure.
7464
7465 2016-04-17 Tom de Vries <tom@codesourcery.com>
7466
7467 PR other/70185
7468 * tree-pass.h (class opt_pass): Remove graph_dump_initialized member.
7469 * dumpfile.h (struct dump_file_info): Add graph_dump_initialized field.
7470 * dumpfile.c (dump_files): Initialize graph_dump_initialized field.
7471 * passes.c (finish_optimization_passes): Only call
7472 finish_graph_dump_file if dfi->graph_dump_initialized.
7473 (execute_function_dump, pass_init_dump_file): Use
7474 dfi->graph_dump_initialized instead of pass->graph_dump_initialized.
7475
7476 2016-04-17 Tom de Vries <tom@codesourcery.com>
7477
7478 PR tree-optimization/70256
7479 * tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap)
7480 (debug_varmap): New function.
7481
7482 2016-04-17 Tom de Vries <tom@codesourcery.com>
7483
7484 PR other/70183
7485 * passes.c (pass_manager::register_pass): Propagate pflags.
7486
7487 2016-04-17 Tom de Vries <tom@codesourcery.com>
7488
7489 PR other/68875
7490 * pass_manager.h (TERMINATE_PASS_LIST): Add pass argument.
7491 * passes.c (pass_manager::pass_manager): Declare and init p_start in
7492 INSERT_PASSES_AFTER. Add pass parameter to TERMINATE_PASS_LIST, and
7493 check if it's equal to p_start.
7494 * passes.def: Add arguments to TERMINATE_PASS_LISTs.
7495
7496 2016-04-15 Jan Hubicka <jh@suse.cz>
7497
7498 PR ipa/70018
7499 * cgraph.c (cgraph_set_const_flag_1): Only set as pure if
7500 function does not bind to current def.
7501 * ipa-pure-const.c (worse_state): Add FROM and TO parameters;
7502 handle conservatively calls to functions that does not need to bind
7503 to current def.
7504 (check_call): Update call of worse_state.
7505 (ignore_edge_for_nothrow): Update.
7506 (ignore_edge_for_pure_const): Likewise.
7507 (propagate_pure_const): Update calls to worse_state.
7508 (skip_function_for_local_pure_const): Reformat comments.
7509
7510 2016-04-15 Jan Hubicka <jh@suse.cz>
7511
7512 PR ipa/70018
7513 * cgraph.c (cgraph_node::get_availability): Add REF parameter.
7514 (cgraph_node::function_symbol): Likewise.
7515 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
7516 * cgraph.h (symtab_node::get_availabbility): Add REF parameter.
7517 (symtab_node::ultimate_alias_target): Add REF parameter.
7518 (symtab_node::binds_to_current_def_p): Declare.
7519 (symtab_node;:ultimate_alias_target_1): Add REF parameter.
7520 (cgraph_node::function_symbol): Likewise.
7521 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
7522 (cgraph_node::get_availability): Likewise.
7523 (cgraph_edge::binds_to_current_def_p): New inline function.
7524 (varpool_node::get_availability): Add REF parameter.
7525 (varpool_node::ultimate_alias_target): Likewise.
7526 * symtab.c (symtab_node::ultimate_alias_target_1): Likewise.
7527 (symtab_node::binds_to_current_def_p): Likewise.
7528 * varpool.c (varpool_node::get_availability): Likewise.
7529
7530 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
7531
7532 PR target/70662
7533 * config/i386/sse.md(define_insn "<avx512>_vec_dup<mode><mask_name>"):
7534 Fix mode size check.
7535
7536 2016-04-15 Jakub Jelinek <jakub@redhat.com>
7537
7538 * BASE-VER: Set to 7.0.0.
7539
7540 2016-04-15 Alexander Monakov <amonakov@ispras.ru>
7541
7542 * config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.
7543
7544 2016-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7545
7546 * doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T
7547 architecture revisions.
7548
7549 2016-04-15 Bernd Schmidt <bschmidt@redhat.com>
7550
7551 * config/i386/i386-protos.h (ix86_using_red_zone): Declare.
7552 * config/i386/i386.c (ix86_using_red_zone): No longer static.
7553 * config/i386/i386.md (stack decrement to push peepholes): Guard
7554 with !x86_using_red_zone ().
7555
7556 2016-04-15 Jakub Jelinek <jakub@redhat.com>
7557
7558 PR c++/70675
7559 * tree-pretty-print.c (do_niy): Add FLAGS argument, pass it down
7560 to dump_generic_node.
7561 (NIY): Pass also flags to do_niy.
7562
7563 2016-04-15 Thomas Schwinge <thomas@codesourcery.com>
7564
7565 * omp-low.c (simd_clone_struct_alloc, simd_clone_struct_copy)
7566 (simd_clone_vector_of_formal_parm_types)
7567 (simd_clone_clauses_extract, simd_clone_compute_base_data_type)
7568 (simd_clone_mangle, simd_clone_create)
7569 (simd_clone_adjust_return_type, create_tmp_simd_array)
7570 (simd_clone_adjust_argument_types, simd_clone_init_simd_arrays)
7571 (struct modify_stmt_info, ipa_simd_modify_stmt_ops)
7572 (ipa_simd_modify_function_body, simd_clone_linear_addend)
7573 (simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone)
7574 (pass_data_omp_simd_clone, class pass_omp_simd_clone)
7575 (pass_omp_simd_clone::gate, make_pass_omp_simd_clone): Move into...
7576 * omp-simd-clone.c: ... this new file.
7577 (simd_clone_vector_of_formal_parm_types): Make it static.
7578 * Makefile.in (OBJS): Add omp-simd-clone.o.
7579
7580 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
7581
7582 PR target/70662
7583 * config/i386/sse.md: Use proper memory operand modifiers.
7584
7585
7586 2016-04-15 Richard Biener <rguenther@suse.de>
7587 Alan Modra <amodra@gmail.com>
7588
7589 PR tree-optimization/70130
7590 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Detect
7591 when alignment stays not the same and no not use the realign
7592 scheme then.
7593
7594 2016-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
7595
7596 PR target/70669
7597 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
7598 direct move handlers for KFmode. Change TFmode handlers test from
7599 FLOAT128_IEEE_P to FLOAT128_VECTOR_P.
7600
7601 2016-04-14 Jakub Jelinek <jakub@redhat.com>
7602
7603 PR c++/70594
7604 * ipa-utils.h (polymorphic_ctor_dtor_p): New prototype.
7605 * ipa-polymorphic-call.c (polymorphic_ctor_dtor_p): New function.
7606 (inlined_polymorphic_ctor_dtor_block_p): Use it.
7607 * tree-ssa-live.c (remove_unused_scope_block_p): When
7608 in_ctor_dtor_block, avoid discarding not just BLOCKs with
7609 BLOCK_ABSTRACT_ORIGIN being FUNCTION_DECL, but even when
7610 block_ultimate_origin is FUNCTION_DECL.
7611 (remove_unused_locals): If current_function_decl is
7612 polymorphic_ctor_dtor_p, pass initial true to
7613 remove_unused_scope_block_p' is_ctor_dtor_block.
7614
7615 2016-04-14 Martin Sebor <msebor@redhat.com>
7616
7617 PR c++/69517
7618 PR c++/70019
7619 PR c++/70588
7620 * doc/extend.texi (Variable Length): Revert.
7621
7622 2016-04-14 Marek Polacek <polacek@redhat.com>
7623 Jan Hubicka <hubicka@ucw.cz>
7624
7625 PR c++/70029
7626 * tree.c (verify_type): Disable the canonical type of main variant
7627 check.
7628
7629 2016-04-14 Jason Merrill <jason@redhat.com>
7630
7631 * cfgexpand.c, expr.c: Revert previous change.
7632
7633 2016-04-14 Cesar Philippidis <cesar@codesourcery.com>
7634
7635 PR middle-end/70643
7636 * omp-low.c (lower_oacc_reductions): Check for TREE_CONSTANT
7637 when building a mem ref for the incoming reduction variable.
7638
7639 2016-04-14 Richard Biener <rguenther@suse.de>
7640
7641 PR tree-optimization/70614
7642 * tree-scalar-evolution.c (analyze_evolution_in_loop): Terminate
7643 loop if the evolution dropped to chrec_dont_know.
7644 (interpret_condition_phi): Likewise.
7645
7646 2016-04-14 Richard Biener <rguenther@suse.de>
7647
7648 PR tree-optimization/70623
7649 * tree-ssa-pre.c (changed_blocks): Make global ...
7650 (compute_antic): ... local here. Move and fix worklist
7651 handling here. Do not clear EDGE_DFS_BACK or call mark_dfs_back_edges.
7652 (compute_antic_aux): Add dumping for MAX assumed succs. Remove
7653 worklist handling, dump when ANTIC_IN changed.
7654 (compute_partial_antic_aux): Remove worklist handling.
7655 (init_pre): Do not compute post dominators. Add a comment about
7656 the CFG order chosen.
7657 (fini_pre): Do not free post dominators.
7658
7659 2016-04-13 Martin Sebor <msebor@redhat.com>
7660
7661 PR c++/69517
7662 PR c++/70019
7663 PR c++/70588
7664 * doc/extend.texi (Variable Length): Document C++ specifics.
7665
7666 2016-04-13 Jakub Jelinek <jakub@redhat.com>
7667
7668 PR c++/70641
7669 * ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt
7670 on all recursive call stmts. Return TODO_cleanup_cfg if any dead
7671 eh edges have been purged.
7672
7673 PR c++/70594
7674 * tree-sra.c (create_access_replacement,
7675 get_replaced_param_substitute): Set DECL_NAMELESS on repl if it
7676 gets fancy name.
7677 * tree-pretty-print.c (dump_fancy_name): New function.
7678 (dump_decl_name, dump_generic_node): Use it.
7679
7680 2016-04-13 Jason Merrill <jason@redhat.com>
7681
7682 * cfgexpand.c (pass_expand::execute): Handle attribute "abi warning".
7683 * expr.c (expand_expr_real_1): Likewise.
7684
7685 2016-04-13 Ilya Enkovich <ilya.enkovich@intel.com>
7686
7687 * config/i386/i386.md (kunpckhi): Swap operands.
7688 (kunpcksi): Likewise.
7689 (kunpckdi): Likewise.
7690 * config/i386/sse.md (vec_pack_trunc_qi): Likewise.
7691 (vec_pack_trunc_<mode>): Likewise.
7692
7693 2016-04-13 Jakub Jelinek <jakub@redhat.com>
7694
7695 PR debug/70628
7696 * explow.c (convert_memory_address_addr_space_1): Formatting fix.
7697
7698 PR middle-end/70633
7699 * gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
7700 gimplification turns some element into non-constant.
7701
7702 PR debug/70628
7703 * rtl.h (convert_memory_address_addr_space_1): New prototype.
7704 * explow.c (convert_memory_address_addr_space_1): No longer static,
7705 add NO_EMIT argument and don't call convert_modes if true, pass
7706 it down recursively, remove break after return.
7707 (convert_memory_address_addr_space): Adjust caller.
7708 * simplify-rtx.c (simplify_unary_operation_1): Call
7709 convert_memory_address_addr_space_1 instead of convert_memory_address,
7710 if it returns NULL, don't simplify.
7711
7712 2016-04-12 Eric Botcazou <ebotcazou@adacore.com>
7713
7714 PR target/70630
7715 * config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.
7716
7717 2016-04-12 Jakub Jelinek <jakub@redhat.com>
7718
7719 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
7720 Bump the upper SIMDLEN limits, so that if the return type or
7721 characteristic type if the return type is void can be passed in
7722 all available SSE2/AVX/AVX2/AVX512-F registers, the SIMDLEN is
7723 allowed.
7724
7725 2016-04-12 Michael Meissner <meissner@linux.vnet.ibm.com>
7726
7727 PR target/70640
7728 * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2_internal):
7729 Do not use "=" constraint on an input constraint.
7730 (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
7731 (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
7732 (ieee_128bit_vsx_nabs<mode>2): Correct splitter so that it
7733 generates (neg (abs ...)) instead of (abs ...).
7734
7735 2016-04-12 Jakub Jelinek <jakub@redhat.com>
7736
7737 PR rtl-optimization/70596
7738 * lra-spills.c (spill_pseudos): Don't delete debug insns, instead
7739 just invalidate LRA data and reset them. Adjust dump wording.
7740
7741 2016-04-12 Martin Liska <mliska@suse.cz>
7742
7743 Revert
7744 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
7745
7746 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
7747 estimates here.
7748 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
7749 max_loop_iterations_int.
7750 (tree_unswitch_outer_loop): Likewise.
7751 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
7752 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
7753
7754 2016-04-12 Tom de Vries <tom@codesourcery.com>
7755
7756 PR tree-optimization/68756
7757 * graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr
7758 instead of new_name.
7759
7760 2016-04-12 Jakub Jelinek <jakub@redhat.com>
7761
7762 PR tree-optimization/70602
7763 * tree-sra.c (generate_subtree_copies): Don't write anything into
7764 constant pool decls.
7765
7766 * omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
7767 regardless whether there are depend clauses or not.
7768
7769 2016-04-11 Michael Meissner <meissner@linux.vnet.ibm.com>
7770
7771 PR target/70381
7772 * config/rs6000/rs6000.c (rs6000_opt_masks): Disable using the
7773 target attribute and pragma from changing the -mfloat128
7774 and -mfloat128-hardware options.
7775
7776 * doc/extend.texi (Additional Floating Types): Document PowerPC
7777 __float128 restrictions.
7778
7779 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
7780
7781 PR target/70133
7782 * config/aarch64/driver-aarch64.c
7783 (aarch64_get_extension_string_for_isa_flags): New.
7784 (arch_extension): Rename to...
7785 (aarch64_arch_extension): ...This.
7786 (ext_to_feat_string): Rename to...
7787 (aarch64_extensions): ...This.
7788 (aarch64_core_data): Keep track of architecture extension flags.
7789 (cpu_data): Rename to...
7790 (aarch64_cpu_data): ...This.
7791 (aarch64_arch_driver_info): Keep track of architecture extension
7792 flags.
7793 (get_arch_name_from_id): Rename to...
7794 (get_arch_from_id): ...This, change return type.
7795 (host_detect_local_cpu): Update and reformat for renames, handle
7796 extensions through common infrastructure.
7797
7798 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
7799
7800 PR target/70133
7801 * config/aarch64/aarch64-common.c (aarch64_option_extension): Keep
7802 track of a canonical flag name.
7803 (all_extensions): Likewise.
7804 (arch_to_arch_name): Also track extension flags enabled by the arch.
7805 (all_architectures): Likewise.
7806 (aarch64_parse_extension): Move to here.
7807 (aarch64_get_extension_string_for_isa_flags): Take a new argument,
7808 rework.
7809 (aarch64_rewrite_selected_cpu): Update for above change.
7810 * config/aarch64/aarch64-option-extensions.def: Rework the way flags
7811 are handled, such that the single explicit value enabled by an
7812 extension is kept seperate from the implicit values it also enables.
7813 * config/aarch64/aarch64-protos.h (aarch64_parse_opt_result): Move
7814 to here.
7815 (aarch64_parse_extension): New.
7816 * config/aarch64/aarch64.c (aarch64_parse_opt_result): Move from
7817 here to config/aarch64/aarch64-protos.h.
7818 (aarch64_parse_extension): Move from here to
7819 common/config/aarch64/aarch64-common.c.
7820 (aarch64_option_print): Update.
7821 (aarch64_declare_function_name): Likewise.
7822 (aarch64_start_file): Likewise.
7823 * config/aarch64/driver-aarch64.c (arch_extension): Keep track of
7824 the canonical flag for extensions.
7825 * config.gcc (aarch64*-*-*): Extend regex for capturing extension
7826 flags.
7827
7828 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
7829
7830 * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
7831 AARCH64_FL_CRC.
7832
7833 2016-04-09 Tom de Vries <tom@codesourcery.com>
7834
7835 PR tree-optimization/68953
7836 * graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from
7837 first to last subscript.
7838
7839 2016-04-09 Jakub Jelinek <jakub@redhat.com>
7840
7841 PR tree-optimization/70586
7842 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false
7843 for any calls.
7844
7845 2016-04-08 Cesar Philippidis <cesar@codesourcery.com>
7846
7847 PR lto/70289
7848 PR ipa/70348
7849 PR tree-optimization/70373
7850 PR middle-end/70533
7851 PR middle-end/70534
7852 PR middle-end/70535
7853 * gimplify.c (gimplify_adjust_omp_clauses): Add or adjust data
7854 clauses for acc parallel reductions as necessary. Error on those
7855 that are private.
7856 * omp-low.c (scan_sharing_clauses): Don't install variables which
7857 are used in acc parallel reductions.
7858 (lower_rec_input_clauses): Remove dead code.
7859 (lower_oacc_reductions): Add support for reference reductions.
7860 (lower_reduction_clauses): Remove dead code.
7861 (lower_omp_target): Don't remap variables appearing in acc parallel
7862 reductions.
7863 * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro.
7864
7865 2016-04-08 Jakub Jelinek <jakub@redhat.com>
7866
7867 PR middle-end/70593
7868 * tree-ssa-coalesce.c (build_ssa_conflict_graph): For stmt
7869 with multiple SSA_NAME defs, force the outputs other than first
7870 to be live before calling live_track_process_def on each output.
7871
7872 PR rtl-optimization/70574
7873 * fwprop.c (forward_propagate_and_simplify): Don't add
7874 REG_EQUAL note if DF_REF_REG (use) is a paradoxical subreg.
7875 (try_fwprop_subst): Don't add REG_EQUAL note if there are any
7876 paradoxical subregs within *loc.
7877
7878 2016-04-08 Thomas Schwinge <thomas@codesourcery.com>
7879
7880 * config/arc/arc.h (LINK_COMMAND_SPEC): Use gt to ignore
7881 -ftree-parallelize-loops={0,1}.
7882 * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
7883 * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
7884 * config/ia64/hpux.h (LIB_SPEC): Likewise.
7885 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
7886 * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
7887
7888 2016-04-08 Maxim Ostapenko <m.ostapenko@samsung.com>
7889
7890 PR sanitizer/70541
7891 * asan.c (instrument_derefs): If we get unknown location, extract it
7892 with EXPR_LOCATION.
7893 (maybe_instrument_call): Instrument gimple_call's arguments if needed.
7894
7895 2016-04-08 Tom de Vries <tom@codesourcery.com>
7896
7897 * omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc
7898 implicit firstprivate clause.
7899
7900 2016-04-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7901
7902 PR target/70566
7903 * config/arm/thumb2.md (tst + branch-> lsls + branch
7904 peephole below *orsi_not_shiftsi_si): Require that condition
7905 register is dead after the peephole.
7906 (second peephole after the above): Likewise.
7907
7908 2016-04-08 Alan Modra <amodra@gmail.com>
7909
7910 PR target/70117
7911 * builtins.c (fold_builtin_classify): For IBM extended precision,
7912 look at just the high-order double to test for NaN.
7913 (fold_builtin_interclass_mathfn): Similarly for Inf. For isnormal
7914 test just the high double for Inf but both doubles for subnormal
7915 limit.
7916
7917 2016-04-07 Jakub Jelinek <jakub@redhat.com>
7918
7919 * cgraph.h (struct cgraph_simd_clone): Add mask_mode field.
7920 * omp-low.c (simd_clone_init_simd_arrays, simd_clone_adjust): Handle
7921 node->simdclone->mask_mode != VOIDmode masks.
7922 (simd_clone_adjust_argument_types): Likewise. Move sc var definition
7923 earlier, use it instead of node->simdclone.
7924 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
7925 Set clonei->mask_mode.
7926
7927 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
7928
7929 PR c/70436
7930 * parser.c (cp_parser_iteration_statement): New parameter IF_P.
7931 Pass it through to cp_parser_already_scoped_statement.
7932 (cp_parser_already_scoped_statement): New parameter IF_P. Pass
7933 it through to cp_parser_statement.
7934 (cp_parser_statement): Pass IF_P through to
7935 cp_parser_iteration_statement.
7936 (cp_parser_pragma): Adjust call to
7937 cp_parser_iteration_statement.
7938
7939 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
7940
7941 PR c/70436
7942 * gimplify.c (gimplify_omp_ordered): Add explicit braces to
7943 resolve a future -Wparentheses warning.
7944 * omp-low.c (scan_sharing_clauses): Likewise.
7945 * tree-parloops.c (eliminate_local_variables): Likewise.
7946
7947 2016-04-06 Vladimir Makarov <vmakarov@redhat.com>
7948
7949 PR rtl-optimization/70398
7950 * lra-constraints.c (process_address_1): Check zero scale and code
7951 for reloading with zero scale.
7952
7953 2016-04-06 Uros Bizjak <ubizjak@gmail.com>
7954
7955 * config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
7956 (ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.
7957
7958 2016-04-06 Jakub Jelinek <jakub@redhat.com>
7959
7960 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
7961 Add support for AVX512F clones, include them by default for
7962 exported OpenMP declare simd functions. For AVX2 allow simdlen 32
7963 and use it if charasteric type is 8-bit, for AVX512F allow simdlen
7964 up to 128.
7965
7966 PR middle-end/70550
7967 * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define.
7968 * gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit
7969 firstprivate clauses.
7970 * omp-low.c (lower_send_clauses): Set TREE_NO_WARNING for
7971 OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT !by_ref vars in task contexts.
7972 (lower_omp_target): Set TREE_NO_WARNING for
7973 non-addressable possibly uninitialized vars which are copied into
7974 addressable temporaries or copied for GOMP_MAP_FIRSTPRIVATE_INT.
7975
7976 2016-04-05 John David Anglin <danglin@gcc.gnu.org>
7977
7978 * config/pa/predicates.md (integer_store_memory_operand): Accept
7979 REG+D operands with a large offset when reload_in_progress is true.
7980 (floating_point_store_memory_operand): Likewise.
7981
7982 2016-04-05 Jakub Jelinek <jakub@redhat.com>
7983
7984 PR c++/70336
7985 * match.pd (nested int casts): Limit to GIMPLE.
7986
7987 2016-04-05 Jan Hubicka <hubicka@ucw.cz>
7988
7989 PR ipa/66223
7990 * ipa-devirt.c (maybe_record_node): Fix comment; use
7991 SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.
7992
7993 2016-04-05 Jakub Jelinek <jakub@redhat.com>
7994
7995 PR rtl-optimization/70542
7996 * ree.c (add_removable_extension): For VECTOR_MODE_P punt
7997 if there are any uses other than insn or debug insns.
7998
7999 2016-04-05 Marc Glisse <marc.glisse@inria.fr>
8000 Jakub Jelinek <jakub@redhat.com>
8001
8002 PR tree-optimization/70509
8003 * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SELECT>:
8004 Shift HOST_WIDE_INT_1U instead of 1.
8005
8006 2016-04-05 Zdenek Sojka <zsojka@seznam.cz>
8007
8008 PR tree-optimization/70509
8009 * tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int instead
8010 of the vector base type for index.
8011
8012 2016-04-05 Uros Bizjak <ubizjak@gmail.com>
8013
8014 PR target/70510
8015 * config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.
8016
8017 2016-04-05 Richard Biener <rguenther@suse.de>
8018
8019 PR tree-optimization/70526
8020 * tree-sra.c (build_ref_for_offset): Use prev_base to
8021 extract the alias pointer type.
8022
8023 2016-04-05 Richard Biener <rguenther@suse.de>
8024
8025 * dse.c (struct store_info): Remove alias_set member.
8026 (struct read_info_type): Likewise.
8027 (clear_alias_group, clear_alias_mode_table, clear_alias_mode_holder,
8028 spill_deleted, clear_alias_set_lookup): Remove.
8029 (get_group_info): Remove dead base == NULL_RTX case.
8030 (dse_step0): Remove initialization of removed variables.
8031 (delete_dead_store_insn): Reomve alias set dumping.
8032 (free_read_records): Remove alias_set handling.
8033 (canon_address): Remove alias_set_out parameter.
8034 (record_store): Remove spill_alias_set, it's always zero.
8035 (check_mem_read_rtx): Likewise.
8036 (dse_step2): Rename from ...
8037 (dse_step2_nospill): ... this. Adjust.
8038 (scan_stores): Rename from ...
8039 (scan_stores_nospill): ... this.
8040 (scan_reads): Rename from ...
8041 (scan_reads_nospill): ... this.
8042 (scan_stores_spill, scan_reads_spill): Remove.
8043 (dse_step3_scan): Remove for_spills argument which is always false.
8044 (dse_step3): Likewise.
8045 (dse_step5): Rename from ...
8046 (dse_step5_nospill): ... this. Remove alias_set handling.
8047 (rest_of_handle_dse): Adjust.
8048
8049 2016-04-05 Jakub Jelinek <jakub@redhat.com>
8050
8051 PR target/70525
8052 * config/i386/sse.md (*andnot<mode>3): Simplify assertions.
8053 Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for
8054 V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting.
8055 (*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator.
8056
8057 2016-04-05 Richard Biener <rguenther@suse.de>
8058
8059 PR middle-end/70499
8060 * gimplify-me.c (gimple_regimplify_operands): Do not rewrite
8061 non-register type temporaries into SSA.
8062
8063 2016-04-04 Jan Hubicka <hubicka@ucw.cz>
8064
8065 PR ipa/66223
8066 * ipa-devirt.c (maybe_record_node): Do not optimize cxa_pure_virtual
8067 calls when sanitizing.
8068 (possible_polymorphic_call_target_p): Fix formatting.
8069
8070 2016-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8071 Jakub Jelinek <jakub@redhat.com>
8072
8073 PR middle-end/70457
8074 * tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p
8075 to ensure a call statement is compatible with a built-in's
8076 prototype.
8077 * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
8078 Likewise.
8079
8080 2016-04-04 Richard Biener <rguenther@suse.de>
8081
8082 PR rtl-optimization/70484
8083 * rtl.h (canon_output_dependence): Declare.
8084 * alias.c (canon_output_dependence): New function.
8085 * dse.c (record_store): Use canon_output_dependence rather
8086 than canon_true_dependence.
8087
8088 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
8089
8090 PR ipa/68881
8091 * cgraph.h (symtab_node::copy_visibility_from): New function.
8092 * symtab.c (symtab_node::copy_visibility_from): New function.
8093 * ipa-visibility.c (optimize_weakref): New function.
8094 (function_and_variable_visibility): Use it.
8095
8096 2016-04-04 Martin Liska <mliska@suse.cz>
8097
8098 PR hsa/70402
8099 * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Guard index
8100 value that is really in range handled by SBR instruction.
8101 * hsa-brig.c (emit_switch_insn): Do not emit unconditional jump.
8102 * hsa-dump.c (dump_hsa_insn_1): Do not dump default BB.
8103 * hsa.h (hsa_insn_sbr::m_default_bb): Remove field.
8104
8105 2016-04-03 Oleg Endo <olegendo@gcc.gnu.org>
8106
8107 PR target/70416
8108 PR target/67391
8109 * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
8110 set, but not for SP_REG operands.
8111
8112 2016-04-02 Martin Sebor <msebor@redhat.com>
8113
8114 PR c++/67376
8115 * fold-const.c (maybe_nonzero_address): New function.
8116 (fold_comparison): Call it. Fold equality and relational
8117 expressions involving null pointers.
8118 (tree_single_nonzero_warnv_p): Call maybe_nonzero_address.
8119
8120 2016-03-31 Evandro Menezes <e.menezes@samsung.com>
8121
8122 Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
8123 the "Y" constraint (scalar FP 0.0 immediate).
8124
8125 * config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
8126 Add the "const_double" to the list of operand constraints.
8127
8128 2016-04-01 Jakub Jelinek <jakub@redhat.com>
8129
8130 PR rtl-optimization/70467
8131 * config/i386/i386.md (*add<dwi>3_doubleword, *sub<dwi>3_doubleword):
8132 If low word of the last operand is 0, just emit addition/subtraction
8133 for the high word.
8134
8135 2016-04-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8136
8137 PR target/70404
8138 * config/s390/s390.c (s390_expand_insv): Check for everything
8139 constant instead of just VOIDmode stuff.
8140
8141 2016-04-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8142
8143 PR target/70496
8144 * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB.
8145
8146 2016-04-01 Nathan Sidwell <nathan@acm.org>
8147
8148 * tree.def (TRY_CATCH_EXPR): Correct documentation.
8149
8150 2016-03-31 Vladimir Makarov <vmakarov@redhat.com>
8151
8152 PR rtl-optimization/70461
8153 * ira-color.c (allocno_copy_cost_saving): Use allocno class if it
8154 is necessary.
8155
8156 2016-03-31 Martin Liska <mliska@suse.cz>
8157
8158 PR hsa/70399
8159 * hsa-brig.c (hsa_op_immed::emit_to_buffer): Emit either
8160 a tree value or an immediate integer value to a buffer
8161 that is eventually copied to a BRIG section.
8162 (emit_immediate_operand): Call the function here.
8163 * hsa-dump.c (dump_hsa_immed): Remove checking assert.
8164 * hsa-gen.c (hsa_op_immed::hsa_op_immed): Remove initialization
8165 of class' fields that are removed.
8166 (hsa_op_immed::~hsa_op_immed): Remove deinitialization.
8167 * hsa.h (class hsa_op_immed): Remove m_brig_repr and
8168 m_brig_repr_size fields.
8169
8170 2016-03-31 Martin Liska <mliska@suse.cz>
8171
8172 PR hsa/70391
8173 * hsa-gen.c (hsa_function_representation::update_dominance): New
8174 function.
8175 (convert_addr_to_flat_segment): Likewise.
8176 (gen_hsa_memory_set): New alignment argument.
8177 (gen_hsa_ctor_assignment): Likewise.
8178 (gen_hsa_insns_for_single_assignment): Provide alignment
8179 to gen_hsa_ctor_assignment.
8180 (gen_hsa_insns_for_direct_call): Add new argument.
8181 (expand_lhs_of_string_op): New function.
8182 (expand_string_operation_builtin): Likewise.
8183 (expand_memory_copy): New function.
8184 (expand_memory_set): New function.
8185 (gen_hsa_insns_for_call): Use HOST_WIDE_INT.
8186 (convert_switch_statements): Change signature.
8187 (generate_hsa): Use a return value of the function.
8188 (pass_gen_hsail::execute): Do not call
8189 convert_switch_statements here.
8190 * hsa-regalloc.c (hsa_regalloc): Call update_dominance.
8191 * hsa.h (hsa_function_representation::m_modified_cfg): New flag.
8192 (hsa_function_representation::update_dominance): New function.
8193
8194 2016-03-31 Martin Liska <mliska@suse.cz>
8195
8196 PR hsa/70391
8197 * hsa-brig.c (emit_directive_variable): Emit alignment
8198 according to hsa_symbol::m_align.
8199 * hsa-dump.c (hsa_byte_alignment): Move the function to another file.
8200 (dump_hsa_symbol): Dump alignment of HSA symbols.
8201 * hsa-gen.c (get_symbol_for_decl): Set-up alignment of a symbol.
8202 (gen_hsa_addr_with_align): New function.
8203 (hsa_bitmemref_alignment): Use newly added function.
8204 (gen_hsa_insns_for_load): Likewise.
8205 (gen_hsa_insns_for_store): Likewise.
8206 (gen_hsa_memory_copy): New argument added.
8207 (gen_hsa_insns_for_single_assignment): Respect
8208 alignment for assignments processed via gen_hsa_memory_copy.
8209 (gen_hsa_insns_for_direct_call): Likewise.
8210 (gen_hsa_insns_for_return): Likewise.
8211 (gen_function_def_parameters): Set default alignment.
8212 * hsa.c (hsa_object_alignment): New function.
8213 (hsa_byte_alignment): Pasted function.
8214 * hsa.h (hsa_symbol::m_align): New field.
8215
8216 2016-03-31 Bin Cheng <bin.cheng@arm.com>
8217
8218 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
8219 scratch field for goto case.
8220
8221 2016-03-31 James Greenhalgh <james.greenhalgh@arm.com>
8222
8223 * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.
8224
8225 2016-03-31 Ilya Enkovich <enkovich.gnu@gmail.com>
8226
8227 PR target/70442
8228 * config/i386/i386.c (scalar_chain::convert_op): Fix description.
8229 (scalar_chain::convert_insn): Call convert_op for reg
8230 moves to handle undefined registers.
8231
8232 2016-03-31 Nathan Sidwell <nathan@acm.org>
8233
8234 PR c++/70393
8235 * varasm.c (output_constructor_regular_field): Flush bitfield earlier.
8236 Assert we don't want to move backwards.
8237
8238 2016-03-31 Kirill Yukhin <kirill.yukhin@intel.com>
8239
8240 PR target/70453
8241 * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
8242
8243 2016-03-31 Jakub Jelinek <jakub@redhat.com>
8244
8245 PR rtl-optimization/70460
8246 * ira.c (indirect_jump_optimize): Don't substitute LABEL_REF
8247 with operand from REG_LABEL_OPERAND, instead substitute
8248 SET_SRC or REG_EQUAL note content if it is a LABEL_REF.
8249 Don't do anything for REG_NON_LOCAL_GOTO jumps.
8250
8251 2016-03-31 Martin Liska <mliska@suse.cz>
8252
8253 * passes.c (execute_one_pass): Do not call
8254 todo_after for a discarded function.
8255
8256 2016-03-31 Bin Cheng <bin.cheng@arm.com>
8257
8258 * tree-ssa-loop-ivopts.c (struct comp_cost): New scrach field.
8259 (no_cost, infinite_cost): Initialize the new field.
8260 (get_computation_cost_at): Record setup cost.
8261 (determine_use_iv_cost_address): Skip cost computation for sub
8262 uses if we can estimate it without losing accuracy.
8263
8264 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
8265
8266 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
8267 estimates here.
8268 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
8269 max_loop_iterations_int.
8270 (tree_unswitch_outer_loop): Likewise.
8271 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
8272 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
8273
8274 2016-03-30 Richard Biener <rguenther@suse.de>
8275
8276 PR middle-end/70450
8277 * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage.
8278
8279 2016-03-30 Jakub Jelinek <jakub@redhat.com>
8280
8281 PR target/70421
8282 * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
8283 in gen_blendm expander.
8284
8285 2016-03-30 Nick Clifton <nickc@redhat.com>
8286
8287 PR target/62254
8288 * config/arm/arm.c (arm_reload_out_hi): Add code to handle the
8289 case where we are already provided with an SImode SUBREG.
8290
8291 2016-03-30 H.J. Lu <hongjiu.lu@intel.com>
8292
8293 PR target/70439
8294 * config/i386/i386.c (ix86_expand_epilogue): Properly check
8295 conflict between DRAP register and __builtin_eh_return.
8296
8297 2016-03-30 Michael Matz <matz@suse.de>
8298 Richard Biener <rguenther@suse.de>
8299
8300 PR ipa/12392
8301 * ipa-polymorphic-call.c (struct type_change_info): Change
8302 speculative to an unsigned allowing to limit the work we do.
8303 (csftc_abort_walking_p): New inline function..
8304 (check_stmt_for_type_change): Limit the number of may-defs
8305 skipped for speculative devirtualization to
8306 max-speculative-devirt-maydefs.
8307 * params.def (max-speculative-devirt-maydefs): New param.
8308 * doc/invoke.texi (--param max-speculative-devirt-maydefs): Document.
8309
8310 2016-03-30 Mike Stump <mrs@gcc.gnu.org>
8311
8312 PR target/63890
8313 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
8314 and TARGET_MACHO.
8315
8316 2016-03-30 Patrick Palka <ppalka@gcc.gnu.org>
8317
8318 PR tree-optimization/59124
8319 * tree-vrp.c (register_edge_assert_for_2): For NAME != CST1
8320 where NAME = A +- CST2 add the assertion A != (CST1 -+ CST2).
8321
8322 2016-03-29 Jeff Law <law@redhat.com>
8323
8324 * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment.
8325
8326 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
8327
8328 * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
8329 to HOST_WIDE_INT.
8330
8331 2016-03-29 Thomas Schwinge <thomas@codesourcery.com>
8332
8333 * config/gnu.h (CPP_SPEC, LIB_SPEC): Don't override.
8334 * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt1.o instead of
8335 gcrt0.o if linking dynamically.
8336
8337 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
8338
8339 PR ipa/70283
8340 * ipa-devirt.c (methods_equal_p): New function.
8341 (compare_virtual_tables): Use it.
8342 * cgraph.h (symbol_table::symbol_suffix_separator): Declare.
8343 * cgraphclones.c (clone_function_name_1): Use
8344 symbol_table::symbol_suffix_separator.
8345 * coverage.c (build_var): Likewise.
8346 * symtab.c (symbol_table::symbol_suffix_separator): New.
8347
8348 2016-03-29 Jakub Jelinek <jakub@redhat.com>
8349
8350 PR rtl-optimization/70429
8351 * combine.c (simplify_shift_const_1): For ASHIFTRT don't optimize
8352 (cst1 >> count) >> cst2 into (cst1 >> cst2) >> count if
8353 mode != result_mode.
8354
8355 PR c++/70353
8356 * tree-inline.c (remap_decls): Don't add_local_decl if cfun is null.
8357
8358 PR tree-optimization/70405
8359 * ssa-iterators.h (num_imm_uses): Add missing braces.
8360
8361 2016-03-29 Vladimir Makarov <vmakarov@redhat.com>
8362
8363 PR rtl-optimization/68695
8364 * ira-color.c (allocno_copy_cost_saving): New.
8365 (improve_allocation): Use it.
8366
8367 2016-03-29 Richard Henderson <rth@redhat.com>
8368
8369 PR middle-end/70355
8370 * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.
8371
8372 2016-03-29 Richard Biener <rguenther@suse.de>
8373
8374 PR middle-end/70424
8375 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
8376 use alignment returned by get_pointer_alignment_1 if it is
8377 bigger than BITS_PER_UNIT.
8378 * builtins.c (get_pointer_alignment_1): Do not return true
8379 for alignment extracted from SSA info.
8380
8381 2016-03-28 James Bowman <james.bowman@ftdichip.com>
8382
8383 * config/ft32/ft32.opt (mnodiv): New.
8384 * config/ft32/ft32.md (*divsi3, *modsi3): Qualify with TARGET_NODIV.
8385 * doc/invoke.texi (FT32 Options -mnodiv): New.
8386
8387 2016-03-28 Kirill Yukhin <kirill.yukhin@intel.com>
8388
8389 PR target/70406
8390 * config/i386/i386.md (define_split, andn): Fix modes.
8391
8392 2016-03-26 Richard Biener <rguenther@suse.de>
8393 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
8394
8395 PR ipa/70366
8396 * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
8397 instead of
8398 TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
8399 as 2nd argument to cl_optimization_restore().
8400
8401 2016-03-25 Richard Henderson <rth@redhat.com>
8402
8403 PR target/70120
8404 * config/aarch64/aarch64.c (aarch64_asm_output_pool_epilogue): New.
8405 * config/aarch64/aarch64-protos.h: Declare it.
8406 * config/aarch64/aarch64.h (ASM_OUTPUT_POOL_EPILOGUE): New.
8407
8408 2016-03-25 Alan Modra <amodra@gmail.com>
8409
8410 PR target/70052
8411 * config/rs6000/constraints.md (j): Simplify.
8412 * config/rs6000/predicates.md (easy_fp_constant): Exclude
8413 decimal float 0.D.
8414 * config/rs6000/rs6000.md (zero_fp): New mode_attr.
8415 (mov<mode>_hardfloat, mov<mode>_hardfloat32, mov<mode>_hardfloat64,
8416 mov<mode>_64bit_dm, mov<mode>_32bit): Use zero_fp in place of j
8417 in all constraint alternatives.
8418 (movtd_64bit_nodm): Delete "j" constraint alternative.
8419
8420 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
8421
8422 * tree-ssa-propagate.c: Enhance docs for
8423 SSA_PROP_NOT_INTERESTING.
8424
8425 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
8426
8427 * doc/extend.texi: Fix typo in documentation to pure attribute.
8428
8429 2016-03-24 John David Anglin <danglin@gcc.gnu.org>
8430
8431 PR target/70319
8432 * config/pa/pa.md (bswapdi2): Use a scratch register.
8433
8434 2016-03-24 Richard Henderson <rth@redhat.com>
8435
8436 PR middle-end/69845
8437 * fold-const.c (extract_muldiv_1): Correct test for multiplication
8438 overflow.
8439
8440 2016-03-24 Uros Bizjak <ubizjak@gmail.com>
8441
8442 * config/i386/i386.md (*anddi3_doubleword): Generate AND insn
8443 using ix86_expand_binary_operator instead of gen_andsi3.
8444
8445 2016-03-24 Richard Biener <rguenther@suse.de>
8446
8447 PR tree-optimization/70396
8448 * tree-vect-stmts.c (vectorizable_comparison): Use
8449 get_vectype_for_scalar_type.
8450
8451 2016-03-24 Richard Biener <rguenther@suse.de>
8452
8453 PR middle-end/70370
8454 * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
8455 with register bases.
8456
8457 2016-03-24 Richard Biener <rguenther@suse.de>
8458
8459 PR tree-optimization/70372
8460 * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Use
8461 build_all_ones_cst to also handle vector types correctly.
8462
8463 2016-03-23 Michael Meissner <meissner@linux.vnet.ibm.com>
8464
8465 PR target/70381
8466 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
8467 -mfloat128 here.
8468
8469 2016-03-23 Marek Polacek <polacek@redhat.com>
8470
8471 PR c++/69884
8472 * doc/invoke.texi: Document -Wignored-attributes.
8473
8474 2016-03-23 Bin Cheng <bin.cheng@arm.com>
8475
8476 PR tree-optimization/69042
8477 * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
8478 parameter from 30 to 40.
8479
8480 2016-03-23 Bin Cheng <bin.cheng@arm.com>
8481
8482 PR tree-optimization/69042
8483 * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Add IV cand
8484 for use with constant offset stripped in base.
8485
8486 2016-03-23 Richard Biener <rguenther@suse.de>
8487
8488 PR middle-end/70251
8489 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust
8490 mode compatibility check.
8491 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
8492
8493 2016-03-23 Jeff Law <law@redhat.com>
8494
8495 PR tree-optimization/64058
8496 * tree-ssa-coalesce.c (struct coalesce_pair): Add new field
8497 CONFLICT_COUNT.
8498 (struct ssa_conflicts): Move up earlier in the file.
8499 (conflicts_, var_map_): New static variables.
8500 (initialize_conflict_count): New function to initialize the
8501 CONFLICT_COUNT field for each conflict pair.
8502 (compare_pairs): Lazily initialize the conflict count and use it
8503 as the first tie-breaker.
8504 (sort_coalesce_list): Add new arguments conflicts, map. Initialize
8505 and wipe conflicts_ and map_ around the call to qsort. Remove
8506 special case for 2 coalesce pairs.
8507 * bitmap.c (bitmap_count_unique_bits): New function.
8508 (bitmap_count_bits_in_word): New function, extracted from
8509 bitmap_count_bits.
8510 (bitmap_count_bits): Use bitmap_count_bits_in_word.
8511 * bitmap.h (bitmap_count_unique_bits): Declare it.
8512
8513 2016-03-23 Ilya Enkovich <enkovich.gnu@gmail.com>
8514
8515 PR target/69917
8516 * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
8517 transparent alias chain for decl assembler name.
8518 * config/sol2.c (solaris_assemble_visibility): Likewise.
8519
8520 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8521
8522 * config/arm/arm1020e.md (1020call_op): Reduce reservation
8523 duration.
8524 (v10_fdivs): Likewise.
8525 (v10_fdivd): Likewise.
8526
8527 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8528
8529 PR driver/70132
8530 * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
8531 to not call fclose twice on file.
8532
8533 2016-03-23 Jakub Jelinek <jakub@redhat.com>
8534
8535 PR tree-optimization/70354
8536 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
8537 oprnd0 is wider than oprnd1 and there is a cast from the wider
8538 type to oprnd1, mask it with the mask of the narrower type.
8539
8540 PR target/70321
8541 * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
8542 Optimize TARGET_STV splitters, if high or low word of last argument
8543 is 0 or -1.
8544
8545 2016-03-22 Jeff Law <law@redhat.com>
8546
8547 PR target/70232
8548 tree-ssa-threadbackward.c
8549 (fsm_find_control_statement_thread_paths): Correctly distinguish
8550 between old style jump threads vs FSM jump threads.
8551
8552 2016-03-22 Ilya Enkovich <enkovich.gnu@gmail.com>
8553
8554 PR target/70302
8555 * config/i386/i386.c (scalar_chain::convert_op): Support
8556 uninitialized register usage case.
8557
8558 2016-03-22 Richard Biener <rguenther@suse.de>
8559
8560 PR middle-end/70251
8561 * genmatch.c (gen_transform): Adjust last parameter to a three-state
8562 int...
8563 (capture::gen_transform): ... to change behavior when substituting
8564 a condition into cond or not-cond expr context.
8565 (dt_simplify::gen_1): Adjust.
8566 * gimple-match-head.c: Include gimplify.h for unshare_expr.
8567 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Revert
8568 last change and instead change to
8569 A + (B vcmp C ? 1 : 0) -> A - (B vcmp C ? -1 : 0).
8570 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
8571
8572 2016-03-22 Anthony Green <green@moxielogic.com>
8573
8574 * config/moxie/moxiebox.h (CC1_SPEC): Define. Fix endianness
8575 issue for moxiebox targets.
8576 (CC1PLUS_SPEC): Ditto.
8577
8578 2016-03-22 Richard Biener <rguenther@suse.de>
8579
8580 PR middle-end/70333
8581 * fold-const.c (extract_muldiv_1): Properly perform multiplication
8582 in the wide type.
8583
8584 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
8585
8586 * config/i386/i386.c (def_builtin): Remove duplicated functionality.
8587
8588 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
8589
8590 PR target/70325
8591 * config/i386/i386.c (def_builtin): Handle
8592 OPTION_MASK_ISA_AVX512VL to be and-ed with other
8593 bits.
8594 (const struct builtin_description bdesc_special_args[]):
8595 Remove duplicate ISA bits.
8596
8597 2016-03-22 Jakub Jelinek <jakub@redhat.com>
8598
8599 PR target/70329
8600 * config/i386/i386.c (ix86_expand_vecop_qihi): Don't bother computing
8601 d.perm[i] for i >= d.nelt. If not full_interleave, compute d.perm[i]
8602 in a way that works also for AVX512BW.
8603
8604 PR target/70300
8605 * config/i386/i386.md (cvtsd2ss splitter): Unpack in destination
8606 instead of source if operands[1] is xmm16 and above and
8607 !TARGET_AVX512VL. Use avx512f_vec_dupv16sf_1 instead of
8608 vec_interleave_lowv4sf if we need to unpack xmm16 and above.
8609
8610 PR c++/70295
8611 * gimplify.c (gimplify_modify_expr): Call gimple_set_no_warning
8612 on assign if (*from_p) is a comparison, set it to
8613 TREE_NO_WARNING (*from_p).
8614
8615 2016-03-21 Jakub Jelinek <jakub@redhat.com>
8616
8617 PR middle-end/70326
8618 * lra.c (restore_scratches): Ignore deleted insns.
8619
8620 2016-03-21 Marc Glisse <marc.glisse@inria.fr>
8621 Jakub Jelinek <jakub@redhat.com>
8622
8623 PR tree-optimization/70317
8624 * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
8625 to HONOR_NANS.
8626
8627 2016-03-21 Uros Bizjak <ubizjak@gmail.com>
8628
8629 PR target/70327
8630 * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
8631 of ix86_expand_move.
8632 (movoi): Ditto.
8633 (movti): Use general_operand for operand 1 predicate.
8634
8635 2016-03-21 Martin Liska <mliska@suse.cz>
8636
8637 * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
8638 insns.
8639 (dump_hsa_symbol): Dump BRIG offset of hsa_symbols.
8640
8641 2016-03-21 Martin Liska <mliska@suse.cz>
8642
8643 PR ipa/70306
8644 * ipa-icf.c (sem_function::parse): Skip static
8645 constructors and destructors.
8646
8647 2016-03-21 Jakub Jelinek <jakub@redhat.com>
8648
8649 PR target/70296
8650 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If IDENT is
8651 function-like macro, peek following token(s) if it is followed
8652 by CPP_OPEN_PAREN token with optional padding in between, and
8653 if not, don't treat it like a macro.
8654
8655 2016-03-21 Thomas Schwinge <thomas@codesourcery.com>
8656 Alexander Monakov <amonakov@ispras.ru>
8657
8658 * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
8659 for the stabs debug format.
8660
8661 2016-03-21 Richard Biener <rguenther@suse.de>
8662
8663 PR tree-optimization/70310
8664 * tree-vect-generic.c (expand_vector_condition): Fold the built
8665 condition.
8666
8667 2016-03-21 Kirill Yukhin <kirill.yukhin@intel.com>
8668
8669 PR target/70293
8670 * config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2):
8671 Block third alternative for AVX-512VL target,
8672
8673 2016-03-21 Martin Liska <mliska@suse.cz>
8674
8675 PR hsa/70234
8676 * hsa-brig.c (emit_function_directives): Mark unemitted
8677 global variables for emission.
8678 * hsa-gen.c (hsa_symbol::hsa_symbol): Initialize a new flag.
8679 (get_symbol_for_decl): Likewise.
8680 * hsa.h (struct hsa_symbol): New flag.
8681
8682 2016-03-21 Richard Biener <rguenther@suse.de>
8683
8684 PR tree-optimization/70288
8685 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Make sure
8686 we do not estimate unsimplified all-constant conditionals or
8687 switches as optimized away.
8688
8689 2016-03-21 Andrey Belevantsev <abel@ispras.ru>
8690
8691 PR rtl-optimization/69102
8692 * sched-deps.c (sched_analyze_insn): Do not set last_args_size field
8693 when we have a readonly dependency context.
8694
8695 2016-03-18 Jeff Law <law@redhat.com>
8696
8697 PR rtl-optimization/70263
8698 * ira.c (memref_used_between_p): Assert we found END in the insn chain.
8699 (update_equiv_regs): When trying to move a store to after the insn
8700 that sets the source of the store, make sure the store occurs after
8701 the insn that sets the source of the store. When successful note
8702 the REG_EQUIV note created in the dump file.
8703
8704 2016-03-16 David Wohlferd <dw@LimeGreenSocks.com>
8705 Bernd Schmidt <bschmidt@redhat.com>
8706
8707 * doc/extend.texi: Document more potential problems with basic asms.
8708
8709 2016-03-18 Bernd Schmidt <bschmidt@redhat.com>
8710
8711 PR rtl-optimization/70278
8712 * lra-constraints.c (split_reg): Handle the case where biggest_mode is
8713 VOIDmode.
8714
8715 2016-03-18 Jason Merrill <jason@redhat.com>
8716
8717 * calls.c (load_register_parameters): Fix zero size sibcall logic.
8718
8719 2016-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
8720
8721 * config/i386/sse.md: Use vpbroadcastq for broadcasting DF
8722 values to 128b regs.
8723
8724 2016-03-18 Ilya Enkovich <enkovich.gnu@gmail.com>
8725
8726 PR tree-optimization/70252
8727 * tree-vect-stmts.c (supportable_widening_operation): Check resulting
8728 boolean vector has a proper number of elements.
8729 (supportable_narrowing_operation): Likewise.
8730
8731 2016-03-18 Tom de Vries <tom@codesourcery.com>
8732
8733 PR ipa/70269
8734 * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.
8735
8736 2016-03-18 Jakub Jelinek <jakub@redhat.com>
8737
8738 * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
8739 instead of replace_rtx for DEBUG_INSNs.
8740
8741 2016-03-18 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
8742
8743 * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
8744 load type reservations.
8745
8746 2016-03-17 John David Anglin <danglin@gcc.gnu.org>
8747
8748 PR target/70188
8749 * config/pa/constraints.md: Revert 2015-02-13 change. Use
8750 define_constraint for "Q" and "T" constraints.
8751
8752 2016-03-17 Evandro Menezes <e.menezes@samsung.com>
8753
8754 Tweak the pipeline model for Exynos M1
8755
8756 * config/aarch64/aarch64.c (exynosm1_tunings): Enable weak prefetching
8757 model.
8758
8759 2016-03-17 David Malcolm <dmalcolm@redhat.com>
8760
8761 PR c/70264
8762 * diagnostic-show-locus.c (compatible_locations_p): Handle the case
8763 where one or both locations aren't within a line_map.
8764
8765 2016-03-17 H.J. Lu <hongjiu.lu@intel.com>
8766
8767 PR driver/70192
8768 * opts.c (finish_options): Don't set flag_pie to the default if
8769 -fpic, -fPIC, -fno-pic or -fno-PIC is used. Set flag_pic to 0
8770 if it is -1.
8771
8772 2016-03-17 Joern Rennecke <joern.rennecke@embecosm.com>
8773
8774 * config/i386/i386.md (*movv4qicc_insn+1..36): Pass
8775 true as ALL_REGS argument to replace_rtx.
8776
8777 2016-03-17 Richard Biener <rguenther@suse.de>
8778
8779 PR debug/70271
8780 * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
8781 last.
8782
8783 2016-03-17 Jakub Jelinek <jakub@redhat.com>
8784
8785 PR target/70245
8786 * rtl.h (replace_rtx): Add ALL_REGS argument.
8787 * rtlanal.c (replace_rtx): Likewise. If true, use REGNO
8788 equality and assert mode is the same, instead of just rtx pointer
8789 equality.
8790 * config/i386/i386.md (mov + arithmetics with load peephole): Pass
8791 true as ALL_REGS argument to replace_rtx.
8792
8793 2016-03-17 Ilya Enkovich <enkovich.gnu@gmail.com>
8794
8795 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply
8796 for boolean vector with vector mode only.
8797 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
8798
8799 2016-03-17 Nick Clifton <nickc@redhat.com>
8800
8801 PR target/70162
8802 * config/rx/rx.c (rx_print_integer): Print negative constants in
8803 decimal.
8804
8805 2016-03-17 Jakub Jelinek <jakub@redhat.com>
8806
8807 PR target/70261
8808 * rtlanal.c (replace_rtx): Revert 2016-03-16 change.
8809
8810 2016-03-16 Richard Henderson <rth@redhat.com>
8811 Richard Biener <rguenth@suse.de>
8812
8813 PR middle-end/70240
8814 PR middle-end/68215
8815 PR tree-opt/68714
8816 * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
8817 first operand as is_gimple_condexpr.
8818
8819 PR middle-end/70240
8820 PR middle-end/68215
8821 Revert r231575
8822 2015-12-11 Eric Botcazou <ebotcazou@adacore.com>
8823 * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter.
8824 Do not gimplify the result.
8825 (do_unop): Adjust call to tree_vec_extract.
8826 (do_binop): Likewise.
8827 (do_compare): Likewise.
8828 (do_plus_minus): Likewise.
8829 (do_negate): Likewise.
8830 (expand_vector_condition): Likewise.
8831 (do_cond): Likewise.
8832
8833 2016-03-16 Richard Henderson <rth@redhat.com>
8834
8835 PR target/70048
8836 * config/aarch64/aarch64.c (virt_or_elim_regno_p): New.
8837 (aarch64_classify_address): Use it.
8838 (aarch64_legitimize_address): Force all subexpressions of PLUS
8839 into registers. Simplify as (sfp+const)+reg or (reg+reg)+const.
8840
8841 2016-03-16 Jakub Jelinek <jakub@redhat.com>
8842 Richard Biener <rguenth@suse.de>
8843
8844 PR target/70245
8845 * rtlanal.c (replace_rtx): For REG, if from is a REG,
8846 return to even if only REGNO is equal, and assert
8847 mode is the same.
8848
8849 2016-03-11 Jeff Law <law@redhat.com>
8850
8851 PR rtl-optimization/70224
8852 * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
8853
8854 2016-03-16 Richard Henderson <rth@redhat.com>
8855
8856 PR middle-end/70199
8857 * function.h (struct function): Add has_forced_label_in_static.
8858 * gimplify.c (force_labels_r): Set it.
8859 * lto-streamer-in.c (input_struct_function_base): Read it.
8860 * lto-streamer-out.c (output_struct_function_base): Write it.
8861 * tree-inline.c (has_label_address_in_static_1): Remove.
8862 (copy_forbidden): Remove fndecl parameter; test
8863 has_forced_label_in_static.
8864 (inline_forbidden_p): Update call to copy_forbidden.
8865 (tree_versionable_function_p): Likewise.
8866 * ipa-chkp.c (chkp_instrumentable_p): Likewise.
8867 (chkp_versioning): Likewise.
8868 * tree-inline.h (copy_forbidden): Update decl.
8869
8870 2016-03-16 Marek Polacek <polacek@redhat.com>
8871
8872 PR c/70093
8873 * cgraphunit.c (cgraph_node::expand_thunk): Also build call to the
8874 function being thunked if the result type doesn't have fixed size.
8875 * gimplify.c (gimplify_modify_expr): Also set LHS if the result type
8876 doesn't have fixed size.
8877
8878 2016-03-16 Bin Cheng <bin.cheng@arm.com>
8879
8880 * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
8881 reporting malformed loop nest.
8882
8883 2016-03-16 Tom de Vries <tom@codesourcery.com>
8884
8885 PR lto/70187
8886 * ipa-devirt.c (possible_polymorphic_call_targets): Move
8887 nodes.length () == 1 test to before first nodes[0] access.
8888
8889 2016-03-16 Tom de Vries <tom@codesourcery.com>
8890
8891 PR tree-optimization/68715
8892 * graphite-scop-detection.c (scop_detection::merge_sese): Add missing
8893 single_pred_p test.
8894
8895 2016-03-16 Tom de Vries <tom@codesourcery.com>
8896
8897 PR tree-optimization/68809
8898 * graphite-scop-detection.c (same_close_phi_node): Test if result types
8899 are the same.
8900
8901 2016-03-16 Carlos O'Donell <carlos@redhat.com>
8902 Sandra Loosemore <sandra@codesourcery.com>
8903
8904 * doc/extend.texi (Common Function Attributes): Describe ifunc impact
8905 on leaf attribute. Mention ELF interposition problems.
8906
8907 2016-03-16 Alan Modra <amodra@gmail.com>
8908
8909 PR rtl-optimization/69195
8910 PR rtl-optimization/47992
8911 * ira.c (indirect_jump_optimize): Ignore artificial defs.
8912 Add comments.
8913
8914 2016-03-15 Eric Botcazou <ebotcazou@adacore.com>
8915
8916 PR bootstrap/69513
8917 * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.
8918
8919 2016-03-15 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
8920
8921 * config/avr/avr.md (rotl<mode>3): Set mode for operand 2.
8922
8923 2016-03-15 Jakub Jelinek <jakub@redhat.com>
8924
8925 PR rtl-optimization/70222
8926 * combine.c (simplify_shift_const_1): For A >> B >> C LSHIFTRT
8927 optimization if mode is different from result_mode, queue up masking
8928 of the result in outer_op. Formatting fix.
8929
8930 PR middle-end/70239
8931 * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
8932 of safe_grow.
8933
8934 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
8935
8936 PR rtl-optimization/69032
8937 * sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
8938 looping backwards over basic block insns.
8939
8940 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
8941
8942 PR target/66660
8943 * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
8944 to non-speculative when propagating trap bits.
8945
8946 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
8947
8948 PR rtl-optimization/63384
8949 * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
8950 DEBUG_INSN_P insns.
8951
8952 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
8953
8954 PR target/64411
8955 * sched-deps.c (get_implicit_reg_pending_clobbers): New function,
8956 factored out from ...
8957 (sched_analyze_insn): ... here.
8958 * sched-int.h (get_implicit_reg_pending_clobbers): Declare it.
8959 * sel-sched-ir.c (setup_id_implicit_regs): New function, use
8960 get_implicit_reg_pending_clobbers in it.
8961 (setup_id_reg_sets): Use setup_id_implicit_regs.
8962 (deps_init_id): Ditto.
8963
8964 2016-03-15 Tom de Vries <tom@codesourcery.com>
8965
8966 PR ipa/70161
8967 * cgraph.c (cgraph_node::get_body): Save, reset and restore
8968 dump_file_name.
8969 * passes.c (execute_one_ipa_transform_pass): Add missing argument to
8970 execute_function_dump.
8971 (execute_one_pass): Don't dump function if it will be dumped after ipa
8972 transform.
8973
8974 2016-03-15 Segher Boessenkool <segher@kernel.crashing.org>
8975
8976 * genrecog.c (match_pattern_2): If pred is NULL don't call
8977 safe_predicate_mode on it.
8978
8979 2016-03-14 Jakub Jelinek <jakub@redhat.com>
8980
8981 PR middle-end/70219
8982 * lra-constraints.c (delete_move_and_clobber): Change assertion
8983 to also allow dregno == 0.
8984
8985 2016-03-14 Richard Henderson <rth@redhat.com>
8986
8987 PR tree-opt/68714
8988 * tree-ssa-reassoc.c (ovce_extract_ops, optimize_vec_cond_expr): New.
8989 (can_reassociate_p): Allow ANY_INTEGRAL_TYPE_P.
8990 (reassociate_bb): Use optimize_vec_cond_expr; avoid
8991 optimize_range_tests, attempt_builtin_copysign and attempt_builtin_powi
8992 on vectors.
8993
8994 2016-03-14 Bernd Schmidt <bschmidt@redhat.com>
8995
8996 PR target/70083
8997 * lra-lives.c (process_bb_lives): Also update biggest mode for hard
8998 regs.
8999 (lra_create_live_ranges_1): initialize hard register biggest_mode to
9000 VOIDmode.
9001 * lra-constraints.c (split_reg): For hard regs, try to find the
9002 biggest single-register mode used in the function.
9003
9004 2016-03-14 Richard Biener <rguenther@suse.de>
9005
9006 PR tree-optimization/56365
9007 * tree-ssa-phiopt.c (minmax_replacement): Handle alternate
9008 constants to compare against.
9009
9010 2016-03-14 Segher Boessenkool <segher@kernel.crashing.org>
9011
9012 PR target/70098
9013 * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
9014 *ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output.
9015 (define_split for the GPR case): Use int_reg_operand instead of
9016 gpc_reg_operand for the output.
9017
9018 2016-03-14 Tom de Vries <tom@codesourcery.com>
9019
9020 PR tree-optimization/70045
9021 * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Unshare
9022 create_empty_if_region_on_edge argument.
9023
9024 2016-03-13 Eric Botcazou <ebotcazou@adacore.com>
9025
9026 * config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define.
9027 (STACK_CHECK_PROTECT): Likewise.
9028 * config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
9029 (STACK_CHECK_PROTECT): Likewise.
9030 * config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
9031 (STACK_CHECK_PROTECT): Likewise.
9032 * config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise.
9033 * config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
9034 (STACK_CHECK_PROTECT): Likewise.
9035
9036 2016-03-12 Andrey Belevantsev <abel@ispras.ru>
9037
9038 PR rtl-optimization/69307
9039 * sel-sched.c (choose_best_pseudo_reg): Properly check for hard
9040 registers in modes that span more than one register.
9041
9042 2016-03-12 Vladimir Makarov <vmakarov@redhat.com>
9043
9044 PR target/69614
9045 * lra-constraints.c (delete_move_and_clobber): New.
9046 (remove_inheritance_pseudos): Use it.
9047
9048 2016-03-12 Eric Botcazou <ebotcazou@adacore.com>
9049
9050 PR ada/70017
9051 * calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if
9052 the libcall is LCT_THROW.
9053 * explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call
9054 for the checking routine.
9055
9056 2016-03-11 Michael Meissner <meissner@linux.vnet.ibm.com>
9057
9058 PR target/70131
9059 * config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the
9060 optimization if we have direct move.
9061 (roundu32<mode>2_fprs): Likewise.
9062
9063 2016-03-11 Bernd Schmidt <bschmidt@redhat.com>
9064
9065 PR target/70123
9066 * lra-remat.c (operand_to_remat): Disallow hard regs in the value t
9067 be rematerialized.
9068 (reg_overlap_for_remat_p): Renamed from input_regno_present_p.
9069 Arguments swapped. All callers changed. Take reg_renumber into
9070 account, and Calculate and compare register ranges for hard regs.
9071
9072 2016-03-11 Jeff Law <law@redhat.com>
9073
9074 PR tree-optimization/70190
9075 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
9076 Handle cases where we can not extract the taken edge, even though we
9077 found a constant value.
9078
9079 PR tree-optimization/64058
9080 * tree-ssa-coalesce.c (struct coalesce_pair): Add new field INDEX.
9081 (num_coalesce_pairs): Move up earlier in file.
9082 (find_coalesce_pair): Initialize the INDEX field for each pair
9083 discovered.
9084 (compare_pairs): No longer sort on the elements in each pair.
9085 Instead break ties with the index of the coalesce pair.
9086
9087 2016-03-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9088
9089 PR target/70002
9090 * config/aarch64/aarch64-protos.h
9091 (aarch64_save_restore_target_globals): New prototype.
9092 * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
9093 Call the above when popping pragma.
9094 * config/aarch64/aarch64.c (aarch64_save_restore_target_globals):
9095 New function.
9096 (aarch64_set_current_function): Rewrite using the above.
9097
9098 2016-03-11 Jakub Jelinek <jakub@redhat.com>
9099
9100 PR tree-optimization/70177
9101 * gimple-expr.h (extract_ops_from_tree_1): Renamed to ...
9102 (extract_ops_from_tree): ... this. In the 2 argument
9103 overload remove _1 suffix.
9104 * gimple-expr.c (extract_ops_from_tree_1): Renamed to ...
9105 (extract_ops_from_tree): ... this.
9106 * gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree):
9107 Adjust callers.
9108 * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
9109 * tree-ssa-forwprop.c (defcodefor_name): Call 3 operand
9110 extract_ops_from_tree instead of 2 operand one.
9111
9112 2016-03-11 Alan Lawrence <alan.lawrence@arm.com>
9113
9114 PR tree-optimization/70013
9115 * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
9116 for constant-pool entries.
9117
9118 2016-03-11 Jakub Jelinek <jakub@redhat.com>
9119
9120 PR rtl-optimization/70174
9121 * expmed.c (store_bit_field_using_insv): Use gen_lowpart_if_possible
9122 followed by gen_lowpart on force_reg instead of just gen_lowpart.
9123
9124 PR tree-optimization/70169
9125 * tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and
9126 LABEL_DECL like VAR_DECL. Emit nothing instead of gcc_unreachable
9127 for unknown codes.
9128
9129 2016-03-11 Ilya Enkovich <enkovich.gnu@gmail.com>
9130 Jakub Jelinek <jakub@redhat.com>
9131
9132 PR target/70160
9133 * config/i386/i386.c (scalar_chain::convert_reg): Skip uses
9134 of uninitialized values.
9135
9136 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9137
9138 * config/s390/s390.md ("trunctddd2"): Turn former define_insn into
9139 define_expand.
9140 ("*trunctddd2"): New pattern definition.
9141 ("trunctdsd2"): Set prep_for_short_prec rounding mode for the
9142 TD->DD truncation.
9143
9144 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9145
9146 * config/s390/s390.md (BFP_RND_*, DFP_RND_*): Add new constant
9147 definitions for BFP and DFP rounding modes.
9148 ("fixuns_truncdddi2", "fixuns_trunctddi2")
9149 ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2")
9150 ("fix_trunc<DSF:mode><GPR:mode>2", "fix_trunc<mode>di2")
9151 ("fix_trunctf<mode>2"): Use the new constants instead of magic
9152 numbers.
9153
9154 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9155
9156 * config/s390/constraints.md: Adjust comment.
9157 ("Y"): Adjust comment. Rename s390_decompose_shift_count to
9158 s390_decompose_addrstyle_without_index.
9159 * config/s390/predicates.md (shift_count_or_setmem_operand):
9160 Rename to setmem_operand.
9161 * config/s390/s390-protos.h
9162 (s390_decompose_shift_count): Rename to
9163 s390_decompose_addrstyle_without_index.
9164 * config/s390/s390.c (s390_decompose_shift_count)
9165 (s390_mem_constraint, print_shift_count_operand)
9166 (print_operand_address, print_operand): Rename
9167 s390_decompose_shift_count to
9168 s390_decompose_addrstyle_without_index and rename
9169 print_shift_count_operand to print_addrstyle_operand troughout the
9170 file.
9171 * config/s390/s390.md ("setmem_long_<P:mode>", "*setmem_long")
9172 ("*setmem_long_and", "*setmem_long_31z", "*setmem_long_and_31z"):
9173 Rename shift_count_or_setmem_operand to setmem_operand.
9174 * config/s390/vx-builtins.md ("vec_insert<mode>")
9175 ("vec_promote<mode>"): Replace shift_count_or_setmem_operand with
9176 nonmemory_operand.
9177
9178 2016-03-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9179
9180 PR target/70168
9181 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
9182 Handle overlapping retval and newval.
9183
9184 2016-03-10 Nick Clifton <nickc@redhat.com>
9185
9186 PR target/7044
9187 * config/aarch64/aarch64.c
9188 (aarch64_override_options_after_change_1): When forcing
9189 flag_omit_frame_pointer to be true, use a special value that can
9190 be detected if this function is called again, thus preventing
9191 flag_omit_leaf_frame_pointer from being forced to be false.
9192
9193 2016-03-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9194
9195 * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
9196 Set x_flag_omit_leaf_frame_pointer when handling
9197 -momit-leaf-frame-pointer.
9198
9199 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
9200
9201 PR lto/69589
9202 * cgraph.c (cgraph_node::dump): Dump split_part and
9203 indirect_call_target.
9204 * cgraph.h (cgraph_node): Add indirect_call_target flag.
9205 * ipa.c (has_addr_references_p): Cleanup.
9206 (is_indirect_call_target_p): New.
9207 (walk_polymorphic_call_targets): Do not mark virtuals that may be
9208 called indirectly as local.
9209 (symbol_table::remove_unreachable_nodes): Compute indirect_call_target.
9210
9211 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
9212
9213 PR ipa/69630
9214 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
9215 on cxa_pure_virtual.
9216
9217 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
9218
9219 PR lto/69589
9220 * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
9221
9222 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
9223
9224 PR lto/69589
9225 * tree.c (need_assembler_name_p): Only record main variant type names.
9226
9227 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
9228
9229 PR target/70113.
9230 * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_843419_DEFAULT):
9231 Always define to 0 or 1.
9232 (TARGET_FIX_ERR_A53_843419): New macro.
9233 * config/aarch64/aarch64-elf-raw.h
9234 (TARGET_FIX_ERR_A53_843419_DEFAULT): Update for above changes.
9235 * config/aarch64/aarch64-linux.h: Likewise.
9236 * config/aarch64/aarch64.c
9237 (aarch64_override_options_after_change_1): Do not default
9238 aarch64_nopcrelative_literal_loads to true if Cortex-A53 erratum
9239 843419 is on.
9240 (aarch64_attributes): Handle fix-cortex-a53-843419.
9241 (aarch64_can_inline_p): Likewise.
9242 * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.
9243
9244 2016-03-10 Alan Lawrence <alan.lawrence@arm.com>
9245 Jakub Jelinek <jakub@redhat.com>
9246
9247 * common.opt (funconstrained-commons, flag_unconstrained_commons): New.
9248 * tree.c (array_at_struct_end_p): Do not limit to size of decl for
9249 DECL_COMMONS if flag_unconstrained_commons is set.
9250 * tree-dfa.c (get_ref_base_and_extent): Likewise.
9251 * doc/invoke.texi (Optimize Options): Add -funconstrained-commons.
9252 (funconstrained-commons): Document.
9253
9254 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
9255
9256 * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
9257 aarch64-fusion-pairs.def and aarch64-tuning-flags.def
9258
9259 2016-03-10 Ilya Enkovich <enkovich.gnu@gmail.com>
9260
9261 * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
9262 has a proper number of elements.
9263
9264 2016-03-10 Alan Modra <amodra@gmail.com>
9265
9266 PR rtl-optimization/69195
9267 PR rtl-optimization/47992
9268 * ira.c (recorded_label_ref): Delete.
9269 (update_equiv_regs): Return void.
9270 (indirect_jump_optimize): New function.
9271 (ira): Call indirect_jump_optimize and delete_trivially_dead_insns
9272 before regstat_compute_ri. Don't rebuild_jump_labels here.
9273 Delete update_regstat.
9274
9275 2016-03-10 Richard Biener <rguenther@suse.de>
9276
9277 PR tree-optimization/70128
9278 * tree-ssa-structalias.c (set_uids_in_ptset): Set
9279 vars_contains_nonlocal for any FUNCTION_DECL or LABEL_DECL.
9280
9281 2016-03-09 Jakub Jelinek <jakub@redhat.com>
9282
9283 PR tree-optimization/70152
9284 * tree-sra.c (replace_removed_params_ssa_names): Copy over
9285 SSA_NAME_OCCURS_IN_ABNORMAL_PHI from old_name to new_name.
9286
9287 PR target/70086
9288 * config/i386/i386.md (truncdfsf2 splitter): Use gen_vec_concatv2df
9289 instead of gen_sse2_loadlpd.
9290 * config/i386/sse.md (*vec_concatv2df): Rename to...
9291 (vec_concatv2df): ... this.
9292
9293 PR tree-optimization/70127
9294 * fold-const.c (operand_equal_p): Revert the 2015-10-28 change.
9295
9296 2016-03-09 David Malcolm <dmalcolm@redhat.com>
9297
9298 PR c/68473
9299 PR c++/70105
9300 * diagnostic-show-locus.c (compatible_locations_p): New function.
9301 (layout::layout): Sanitize ranges using compatible_locations_p.
9302
9303 2016-03-09 David Malcolm <dmalcolm@redhat.com>
9304
9305 PR c/68473
9306 PR c++/70105
9307 * diagnostic-show-locus.c (layout_range::layout_range): Replace
9308 location_range param with three const expanded_locations * and a
9309 bool.
9310 (layout::layout): Replace call to
9311 rich_location::lazily_expand_location with get_expanded_location.
9312 Extract the range and perform location expansion here, passing
9313 the results to the layout_range ctor.
9314 * diagnostic.c (source_range::debug): Delete.
9315 * diagnostic.h (diagnostic_expand_location): Reimplement in terms
9316 of rich_location::get_expanded_location.
9317 * gcc-rich-location.c (get_range_for_expr): Delete.
9318 (gcc_rich_location::add_expr): Reimplement to avoid the
9319 rich_location::add_range overload that took a location_range,
9320 passing a location_t instead.
9321
9322 2016-03-09 Richard Biener <rguenther@suse.de>
9323 Jakub Jelinek <jakub@redhat.com>
9324
9325 PR tree-optimization/70138
9326 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
9327 Also skip vect_double_reduction_def.
9328
9329 2016-03-09 Jakub Jelinek <jakub@redhat.com>
9330
9331 PR target/70049
9332 * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
9333 if the operand is "m".
9334
9335 2016-03-09 Nathan Sidwell <nathan@acm.org>
9336
9337 * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.
9338
9339 2016-03-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
9340
9341 * config/i386/i386.c (processor_target_table): Fix cost table
9342 intialization order for znver1.
9343
9344 2016-03-08 Jakub Jelinek <jakub@redhat.com>
9345
9346 * ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling
9347 - becuase -> because.
9348 * ipa-reference.c (ignore_module_statics): Likewise.
9349 * cgraph.c (cgraph_node::get_body): Likewise.
9350 * ipa-inline.c (early_inliner): Likewise.
9351 * ipa-devirt.c (types_same_for_odr): Likewise.
9352 * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
9353 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Likewise.
9354
9355 2016-03-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9356
9357 * tree-ssa-math-opts.c: Fix typo in comment.
9358
9359 2016-03-08 Jakub Jelinek <jakub@redhat.com>
9360
9361 PR target/70110
9362 * config/i386/i386.c (scalar_chain::make_vector_copies,
9363 scalar_chain::convert_reg): Call end_sequence in between
9364 get_insns and emit_conversion_insns rather than after both
9365 calls.
9366
9367 2016-03-07 Uros Bizjak <ubizjak@gmail.com>
9368
9369 PR target/70064
9370 * config/i386/i386.h (machine_function): Add
9371 pc_thunk_call_expanded flag.
9372 (ix86_pc_thunk_call_expanded): New define.
9373 * config/i386/i386.md (set_got, set_got_labelled): New expanders.
9374 (*set_got): Rename insn pattern from set_got.
9375 (*set_got_labelled): Rename inst pattern from set_got_labelled.
9376 * config/i386/i386.c (ix86_compute_frame_layout): Use
9377 ix86_pc_thunk_call_expanded to prevent red-zone.
9378
9379 2016-03-07 Martin Jambor <mjambor@suse.cz>
9380
9381 * hsa.h (hsa_get_ctor_statements): Declare.
9382 (hsa_get_dtor_statements): Likewise.
9383 (hsa_get_kernel_dispatch_type): Likewise.
9384 * hsa.c (hsa_get_ctor_statements): New function.
9385 (hsa_get_dtor_statements): Likewise.
9386 (hsa_get_kernel_dispatch_type): Likewise.
9387 * hsa-brig.c (hsa_cdtor_statements): Removed.
9388 (hsa_output_libgomp_mapping): Use hsa_get_ctor_statements and
9389 hsa_get_dtor_statements.
9390 * hsa-gen.c (hsa_kernel_dispatch_type): Removed.
9391 (get_hsa_kernel_dispatch_offset): Use hsa_get_kernel_dispatch_type.
9392
9393 2016-03-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
9394
9395 * config/arm/arm-cores.def (cortex-r8): New.
9396 * config/arm/arm-tables.opt (cortex-r8): Regenerate.
9397 * config/arm/arm-tune.md: Likewise.
9398 * doc/invoke.texi: Add cortex-r8 to list of cpu values.
9399
9400 2016-03-07 Martin Sebor <msebor@redhat.com>
9401
9402 PR rtl-optimization/19705
9403 * doc/invoke.texi (Options That Control Optimization): Clarify
9404 -fno-branch-count-reg.
9405
9406 2016-02-26 Richard Biener <rguenther@suse.de>
9407 Jeff Law <law@redhat.com>
9408
9409 PR tree-optimization/69740
9410 * cfghooks.c (remove_edge): Request loop fixups if we delete
9411 an edge that might turn an irreducible loop into a natural
9412 loop.
9413 * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
9414 Move after definition of loops_state_clear.
9415
9416 2016-03-07 Bin Cheng <bin.cheng@arm.com>
9417
9418 PR rtl-optimization/69052
9419 * rtlanal.c (commutative_operand_precedence): Set higher precedence
9420 to CONST_WIDE_INT.
9421
9422 2016-03-07 Tom de Vries <tom@codesourcery.com>
9423
9424 PR tree-optimization/70116
9425 * tree-ssa-tail-merge.c (merge_stmts_p): New function, handling
9426 is_tm_ending stmts and ubsan/asan internal functions.
9427 (find_duplicate): Use it. Don't test is_tm_ending here.
9428
9429 2016-03-07 Richard Biener <rguenther@suse.de>
9430
9431 PR tree-optimization/70115
9432 * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
9433 (propagate_constants_for_unrolling): Use replace_uses_by.
9434
9435 2016-03-07 Nathan Sidwell <nathan@codesourcery.com>
9436
9437 PR middle-end/69916
9438 * omp-low.c (struct oacc_loop): Add ifns.
9439 (new_oacc_loop_raw): Initialize it.
9440 (finish_oacc_loop): Clear mask & flags if no ifns.
9441 (oacc_loop_discover_walk): Count IFN_GOACC_LOOP calls.
9442 (oacc_loop_xform_loop): Add ifns arg & adjust.
9443 (oacc_loop_process): Adjust oacc_loop_xform_loop call.
9444
9445 2016-03-07 Richard Henderson <rth@redhat.com>
9446
9447 PR rtl-opt/70061
9448 * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
9449 (insert_value_copy_on_edge): Likewise.
9450
9451 2016-03-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9452
9453 * config/arm/arm_neon.h: Show error if using with soft-float ABI.
9454
9455 2016-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9456
9457 PR target/62281
9458 * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
9459
9460 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
9461
9462 * config/i386/i386.c (znver1_cost): Fix Multiply cost.
9463
9464 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
9465
9466 Fix sseimul type attribute.
9467 * config/i386/znver1.md
9468 (znver1_sseimul, znver1_sseimul_avx256, znver1_sseimul_load,
9469 znver1_sseimul_avx256_load) : Fix the type attribute.
9470 (znver1_sseimul_di, znver1_sseimul_load_di): Fix type attribute,
9471 pipe usage and latency.
9472
9473 2016-03-05 Jakub Jelinek <jakub@redhat.com>
9474
9475 PR c++/70084
9476 * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
9477 of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
9478 to the right type.
9479
9480 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
9481
9482 PR c/69973
9483 * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
9484
9485 PR rtl-optimization/69941
9486 * postreload.c (reload_combine_recognize_pattern): Ensure all uses of
9487 the reg share its mode.
9488
9489 2016-03-04 Jeff Law <law@redhat.com>
9490
9491 PR tree-optimization/69196
9492 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
9493 If the both SSA_NAMEs are anonymous, then consider them unassociated
9494 and include the PHI in the statement count.
9495
9496 2016-03-05 Tom de Vries <tom@codesourcery.com>
9497
9498 * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
9499 construct in oacc routine. Check for oacc region in oacc routine.
9500
9501 2016-03-04 Jakub Jelinek <jakub@redhat.com>
9502
9503 PR target/70062
9504 * config/i386/i386.c (decide_alg): Add RECUR argument. Revert
9505 2016-02-22 changes, instead don't recurse if RECUR is already true.
9506 Don't change *dynamic_check if RECUR. Adjust recursive caller
9507 to pass true to the new argument.
9508 (ix86_expand_set_or_movmem): Adjust decide_alg caller.
9509
9510 PR target/70059
9511 * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
9512 <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
9513 fixes.
9514 (vec_set_hi_<mode><mask_name>): Likewise. Swap VEC_CONCAT operands.
9515
9516 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
9517
9518 PR rtl-optimization/57676
9519 * lra-assigns.c (lra_assign): Guard test for maximum iterations
9520 with flag_checking.
9521
9522 2016-03-04 Ilya Enkovich <enkovich.gnu@gmail.com>
9523
9524 * tree-vect-patterns.c (search_type_for_mask): Handle
9525 comparison of booleans.
9526
9527 2016-03-04 Jakub Jelinek <jakub@redhat.com>
9528
9529 * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
9530 Fix @xref usage.
9531
9532 PR debug/69947
9533 * dwarf2out.c (prune_unused_types_walk_loc_descr): Handle
9534 all other ops that have dw_val_class_die_ref operands,
9535 and DW_OP_GNU_entry_value.
9536
9537 2016-03-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9538
9539 PR rtl-optimization/69904
9540 * config/arm/arm.c (arm_cannot_copy_insn_p):
9541 Return true for load-exclusive instructions.
9542
9543 2016-03-03 Jakub Jelinek <jakub@redhat.com>
9544
9545 PR target/70021
9546 * tree-vect-stmts.c (vect_mark_relevant): Remove USED_IN_PATTERN
9547 argument, if STMT_VINFO_IN_PATTERN_P (stmt_info), always mark
9548 the pattern no matter if it is used just by non-pattern, pattern
9549 or mix thereof.
9550 (process_use, vect_mark_stmts_to_be_vectorized): Adjust callers.
9551 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
9552 oprnd1 def_stmt is in pattern, don't look through it.
9553
9554 2016-03-03 Marek Polacek <polacek@redhat.com>
9555
9556 PR middle-end/70050
9557 * match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
9558
9559 2016-03-03 Martin Liska <mliska@suse.cz>
9560
9561 PR tree-optimization/70043
9562 * tree-vect-loop.c (optimize_mask_stores): Move iterator to
9563 previous statement if we see a debug statement.
9564
9565 2016-03-03 Richard Biener <rguenther@suse.de>
9566
9567 PR tree-optimization/55936
9568 * tree-vrp.c (compare_name_with_value): Add use_equiv_p
9569 parameter and guard unsafe equivalence use.
9570 (vrp_evaluate_conditional_warnv_with_ops): Always use
9571 safe equivalences but not via the quadratic compare_names
9572 helper.
9573
9574 2016-03-03 Michael Collison <michael.collison@linaro.org>
9575
9576 PR target/70014
9577 * config/arm/arm.md (*subsi3_carryin_const): Change predicate
9578 for operand 1 to s_register_operand. Change predicate for operand
9579 2 to arm_not_immediate_operand.
9580
9581 2016-03-02 H.J. Lu <hongjiu.lu@intel.com>
9582
9583 * doc/tm.texi: Regenerated.
9584
9585 2016-03-02 Richard Henderson <rth@redhat.com>
9586
9587 PR rtl-opt/67145
9588 * simplify-rtx.c (simplify_plus_minus): Allow reassoc without
9589 simplification when all args are positive non-fixed registers.
9590
9591 2016-03-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
9592
9593 * target.def (lra_p): Specify that new ports should use LRA.
9594
9595 2016-03-02 Jakub Jelinek <jakub@redhat.com>
9596
9597 PR libgomp/69555
9598 * gimplify.c (gimplify_decl_expr): For decls with REFERENCE_TYPE, also
9599 gimplify_type_sizes the type they refer to.
9600 (omp_notice_variable): Handle reference vars to VLAs.
9601 * omp-low.c (lower_omp_target): Emit setup of OMP_CLAUSE_PRIVATE
9602 reference to VLA decls in the second pass instead of first pass.
9603
9604 2016-03-02 Tom de Vries <tom@codesourcery.com>
9605
9606 PR tree-optimization/68659
9607 * graphite-isl-ast-to-gimple.c (collect_all_ssa_names): Handle
9608 new_expr == NULL_TREE.
9609 (get_new_name): Handle ADDR_EXPR.
9610
9611 2016-03-02 Bin Cheng <bin.cheng@arm.com>
9612
9613 PR rtl-optimization/69052
9614 * loop-invariant.c (canonicalize_address): New function.
9615 (inv_can_prop_to_addr_use): Check validity of address expression
9616 which is canonicalized by above function.
9617
9618 2016-03-02 Alan Modra <amodra@gmail.com>
9619
9620 PR ipa/69990
9621 * ipa-icf.c (sem_variable::merge): Do not merge an alias with
9622 larger alignment.
9623
9624 2016-03-02 Jakub Jelinek <jakub@redhat.com>
9625
9626 PR target/70028
9627 * config/i386/i386.md (kmovw): Move m constraint to 2nd alternative.
9628 (*movhi_internal): Put mask moves from and to memory separately
9629 from moves from/to GPRs.
9630
9631 2016-03-02 Richard Biener <rguenther@suse.de>
9632
9633 * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
9634 GENERIC expressions in GIMPLE.
9635
9636 2016-03-02 Richard Biener <rguenther@suse.de>
9637
9638 * config/i386/i386.c (type_natural_mode): Fix typo.
9639
9640 2016-03-02 Nick Clifton <nickc@redhat.com>
9641
9642 * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.
9643
9644 2016-03-02 Richard Biener <rguenther@suse.de>
9645 Uros Bizjak <ubizjak@gmail.com>
9646
9647 PR target/67278
9648 * config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
9649
9650 2016-03-02 Richard Biener <rguenther@suse.de>
9651
9652 PR middle-end/67278
9653 * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
9654
9655 2016-03-02 Marek Polacek <polacek@redhat.com>
9656
9657 PR c/67854
9658 * gimplify.c (gimplify_va_arg_expr): Use expanded location for the
9659 "is promoted to" warning.
9660
9661 2016-03-01 DJ Delorie <dj@redhat.com>
9662
9663 * config.gcc: Deprecate mep-*.
9664
9665 2016-03-01 Vladimir Makarov <vmakarov@redhat.com>
9666
9667 PR middle-end/70025
9668 * lra-constraints.c (regno_val_use_in): New.
9669 (match_reload): Use it instead of regno_use_in.
9670
9671 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
9672
9673 PR rtl-optimization/70007
9674 * gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
9675 references present in REG_EQUAL notes attached to non-SET patterns.
9676
9677 2016-03-01 Jeff Law <law@redhat.com>
9678
9679 PR tree-optimization/69196
9680 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
9681 Appropriately clamp the number of statements to copy when the
9682 thread path does not traverse a loop backedge.
9683
9684 PR tree-optimization/69196
9685 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
9686 Do count some PHIs in the thread path against the insn count. Decrease
9687 final statement count by one as the control statement in the last
9688 block will get removed. Remove special cased code for handling PHIs
9689 in the last block.
9690
9691 2016-03-01 Uros Bizjak <ubizjak@gmail.com>
9692
9693 PR target/70027
9694 * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
9695 asm dialect alternatives to explicit GOTPCREL calls.
9696
9697 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
9698
9699 PR ada/70017
9700 * ira.c (do_reload): Issue warning for generic stack checking here...
9701 * reload1.c (reload): ...instead of here and streamline it.
9702
9703 2016-03-01 Nick Clifton <nickc@redhat.com>
9704
9705 * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
9706
9707 2016-03-01 Richard Biener <rguenther@suse.de>
9708
9709 PR tree-optimization/69983
9710 * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
9711 types and fall back to operand_equal_p.
9712
9713 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9714
9715 Revert
9716 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9717
9718 * config/s390/constraints.md ("jm8"): New constraint.
9719 * config/s390/predicates.md ("const_int_8bitset_operand"): New
9720 predicate.
9721 * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
9722 into ...
9723 ("*setmem_long<setmem_and>"): New pattern.
9724 ("*setmem_long_31z", "*setmem_long_and_31z"): Merge
9725 into ...
9726 ("*setmem_long_31z<setmem_and>"): New pattern.
9727 * config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
9728 New substitution rules with the required attributes.
9729
9730
9731 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9732
9733 Revert
9734 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9735
9736 * gensupport.c (process_substs_on_one_elem): Split loop to
9737 complete mark_operands_used_in_match_dup on all expressions in the
9738 vector first.
9739 (adjust_operands_numbers): Inline into process_substs_on_one_elem
9740 and remove function.
9741
9742 2016-03-01 Richard Biener <rguenther@suse.de>
9743
9744 PR middle-end/70022
9745 * fold-const.c (fold_indirect_ref_1): Fix range checking for
9746 vector BIT_FIELD_REF extract.
9747
9748 2016-03-01 Richard Biener <rguenther@suse.de>
9749
9750 PR tree-optimization/69994
9751 * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
9752
9753 2016-03-01 Ilya Enkovich <enkovich.gnu@gmail.com>
9754
9755 PR tree-optimization/69956
9756 * tree-vect-stmts.c (supportable_widening_operation): Support
9757 multi-step conversion of boolean vectors.
9758 (supportable_narrowing_operation): Likewise.
9759
9760 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9761
9762 * config/s390/s390.c (s390_decompose_address): Don't accept SImode
9763 anymore.
9764
9765 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9766
9767 * config/s390/subst.md (DSI_VI): New mode iterator.
9768 ("addr_style_op_subst"): Use DSI_VI instead of DSI.
9769 * config/s390/vector.md ("vec_set<mode>"): Move expander before
9770 the insn definition.
9771 ("*vec_set<mode>"): Change predicate and add alternative to
9772 support only either register or const_int operands as element
9773 selector.
9774 ("*vec_set<mode>_plus"): New pattern to support reg + const_int
9775 operands.
9776 ("vec_extract<mode>"): New expander.
9777 ("*vec_extract<mode>"): New insn definition supporting reg and
9778 const_int element selectors.
9779 ("*vec_extract<mode>_plus"): New insn definition supporting
9780 reg+const_int element selectors.
9781 ("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
9782 following expander+insn definition.
9783 ("<vec_shifts_name><mode>3"): New expander.
9784 ("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.
9785
9786 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9787
9788 * config/s390/s390.md ("*tabort_1"): Change predicate to
9789 nonmemory_operand. Add a second alternative to cover
9790 register as well as const int operands.
9791 ("*tabort_1_plus"): New pattern definition.
9792
9793 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9794
9795 * config/s390/s390.md ("*ashrdi3_cc_31")
9796 ("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
9797 ("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
9798 Merge insn definitions into ...
9799 ("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
9800 New pattern definition.
9801 ("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
9802 ("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
9803 ("*ashr<mode>3_and"): Merge insn definitions into ...
9804 ("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
9805 New pattern definition.
9806 * config/s390/subst.md ("addr_style_op_cc_subst")
9807 ("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
9808 substitutions patterns plus attributes.
9809 Add ashiftrt to SUBST iterator.
9810
9811 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9812
9813 * config/s390/s390.md ("<shift><mode>3"): Change predicate of
9814 op2 to nonmemory_operand.
9815 ("*<shift>di3_31", "*<shift>di3_31_and"):
9816 Merge into single pattern definition ...
9817 ("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
9818 ("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
9819 pattern definition ...
9820 ("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
9821 * config/s390/subst.md: Add ashift and lshiftrt to SUBST
9822 iterator.
9823
9824 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9825
9826 * config/s390/predicates.md (const_int_6bitset_operand): New
9827 predicate.
9828 * config/s390/s390.md: Include subst.md.
9829 ("rotl<mode>3"): New expander.
9830 ("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
9831 ...
9832 ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
9833 * config/s390/subst.md: New file.
9834
9835 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9836
9837 * config/s390/s390.md ("op_type", "atype", "length" attributes):
9838 Remove RRR type. It doesn't really exist.
9839 ("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
9840 attributes.
9841 ("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
9842 ("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
9843 ("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
9844 ("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
9845 ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
9846 ("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
9847 `enabled' attribute.
9848
9849 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9850
9851 * gensupport.c (process_substs_on_one_elem): Split loop to
9852 complete mark_operands_used_in_match_dup on all expressions in the
9853 vector first.
9854 (adjust_operands_numbers): Inline into process_substs_on_one_elem
9855 and remove function.
9856
9857 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
9858
9859 PR target/69706
9860 * config/sparc/sparc.c (NWORDS_UP): Rename to...
9861 (CEIL_NWORDS): ...this. Use CEIL macro.
9862 (compute_fp_layout): Adjust to above renaming.
9863 (function_arg_union_value): Likewise.
9864 (sparc_arg_partial_bytes): Likewise.
9865 (sparc_function_arg_advance): Likewise.
9866
9867 2016-02-29 Jeff Law <law@redhat.com>
9868
9869 PR tree-optimization/70005
9870 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
9871 where an object with a boolean range is compared against a value
9872 outside [0..1].
9873
9874 PR tree-optimization/69999
9875 * gimple-ssa-split-paths.c (split_paths): When duplicating a block
9876 with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule
9877 loop cleanups.
9878
9879 2016-02-29 Richard Biener <rguenther@suse.de>
9880
9881 PR tree-optimization/69994
9882 * tree-ssa-reassoc.c (gimple_nop_conversion_p): New function.
9883 (get_unary_op): Look through nop conversions.
9884 (ops_equal_values_p): New function, look for equality diregarding
9885 nop conversions.
9886 (eliminate_plus_minus_pair): Use ops_equal_values_p
9887 (repropagate_negates): Do not use get_unary_op here.
9888
9889 2016-02-29 Martin Liska <mliska@suse.cz>
9890
9891 * system.h: Poison ENABLE_CHECKING macro.
9892
9893 2016-02-29 Martin Liska <mliska@suse.cz>
9894
9895 * hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS
9896 is presented in dump flags.
9897 * hsa-regalloc.c (linear_scan_regalloc): Likewise.
9898 (hsa_regalloc): Likewise.
9899
9900 2016-02-19 Richard Biener <rguenther@suse.de>
9901
9902 PR tree-optimization/69980
9903 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
9904 permutation of those we need to keep.
9905
9906 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
9907
9908 PR target/69706
9909 * config/sparc/sparc.c (ROUND_ADVANCE): Rename to...
9910 (NWORDS_UP): ...this
9911 (init_cumulative_args): Minor tweaks.
9912 (sparc_promote_function_mode): Likewise.
9913 (scan_record_type): Delete.
9914 (traverse_record_type): New function template.
9915 (classify_data_t): New structure type.
9916 (classify_registers): New inline function.
9917 (function_arg_slotno): In 64-bit mode, bail out early if FP slots are
9918 exhausted. Instantiate traverse_record_type on classify_registers and
9919 deal with the case of a structure passed in slot #15 with no FP field
9920 in the first word.
9921 (assign_data_t): New structure type.
9922 (compute_int_layout): New static function.
9923 (compute_fp_layout): Likewise.
9924 (count_registers): New inline function.
9925 (assign_int_registers): New static function.
9926 (assign_fp_registers): Likewise.
9927 (assign_registers): New inline function.
9928 (function_arg_record_value_1): Delete.
9929 (function_arg_record_value_2): Likewise.
9930 (function_arg_record_value_3): Likewise.
9931 (function_arg_record_value): Adjust to above changes. Instantiate
9932 traverse_record_type on count_registers to first count the number of
9933 registers to be used and then on assign_registers to assign them.
9934 (function_arg_union_value): Adjust to above renaming.
9935 (sparc_function_arg_1); Minor tweaks. Remove commented out code.
9936 (sparc_arg_partial_bytes): Adjust to above renaming. Deal with the
9937 case of a structure passed in slot #15
9938 (sparc_function_arg_advance): Likewise.
9939 (function_arg_padding): Minor tweak.
9940
9941 2016-02-29 Richard Biener <rguenther@suse.de>
9942
9943 PR tree-optimization/69720
9944 * tree-vect-loop.c (get_initial_def_for_reduction): Avoid
9945 the adjustment_def path for possibly vectorized defs.
9946 (vect_create_epilog_for_reduction): Handle vectorized initial
9947 defs properly.
9948
9949 2016-02-28 Eric Botcazou <ebotcazou@adacore.com>
9950
9951 * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
9952
9953 2016-02-27 Jeff Law <law@redhat.com>
9954
9955 Revert
9956 2016-02-26 Richard Biener <rguenther@suse.de>
9957 Jeff Law <law@redhat.com>
9958
9959 PR tree-optimization/69740
9960 * cfghooks.c (remove_edge): Request loop fixups if we delete
9961 an edge that might turn an irreducible loop into a natural
9962 loop.
9963
9964 2016-02-27 Jakub Jelinek <jakub@redhat.com>
9965
9966 PR rtl-optimization/69896
9967 * tree-vect-generic.c (get_compute_type): Avoid single element
9968 vector types.
9969
9970 2016-02-26 Evandro Menezes <e.menezes@samsung.com>
9971
9972 Rename the AArch64 tuning option and related functions to enable the
9973 Newton series for the reciprocal square root to reflect its
9974 approximative characteristic.
9975
9976 * config/aarch64/aarch64-protos.h (aarch64_emit_swrsqrt): Rename
9977 function to "aarch64_emit_approx_rsqrt".
9978 * config/aarch64/aarch64-tuning-flags.def: Rename tuning flag to
9979 AARCH64_EXTRA_TUNE_APPROX_RSQRT.
9980 * config/aarch64/aarch64.c (exynosm1_tunigs): Use new flag name.
9981 (xgene1_tunings): Likewise.
9982 (use_rsqrt_p): Likewise.
9983 (aarch64_emit_swrsqrt): Use new function name.
9984 * config/aarch64/aarch64-simd.md (aarch64_rsqrts_*): Likewise.
9985 * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): Reword the
9986 text explaining this option.
9987 * doc/invoke.texi (-mlow-precision-recip-sqrt): Likewise.
9988
9989 2016-02-26 Jakub Jelinek <jakub@redhat.com>
9990
9991 PR target/69969
9992 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
9993 complain about -mallow-movmisalign without -mvsx if
9994 TARGET_ALLOW_MOVMISALIGN was not set explicitly.
9995
9996 2016-02-26 Joel Sherrill <joel@rtems.org>
9997
9998 * config.gcc: Add x86_64-*-rtems*.
9999 * config/i386/rtems-64.h: New file.
10000
10001 2016-02-26 Joel Sherrill <joel@rtems.org>
10002
10003 * config.gcc: Add aarch64-*-rtems*.
10004 * config/aarch64/rtems.h: New file.
10005
10006 2016-02-26 Segher Boessenkool <segher@kernel.crashing.org>
10007
10008 PR target/69946
10009 * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
10010 shift amount using %h. Add comment.
10011
10012 2016-02-26 Richard Biener <rguenther@suse.de>
10013 Jeff Law <law@redhat.com>
10014
10015 PR tree-optimization/69740
10016 * cfghooks.c (remove_edge): Request loop fixups if we delete
10017 an edge that might turn an irreducible loop into a natural
10018 loop.
10019
10020 2016-02-26 Martin Jambor <mjambor@suse.cz>
10021
10022 PR middle-end/69920
10023 * tree-sra.c (sra_modify_assign): Do not remove loads of
10024 uninitialized aggregates to SSA_NAMEs.
10025
10026 2016-02-26 Richard Henderson <rth@redhat.com>
10027
10028 PR target/69709
10029 * config/s390/s390.md (risbg and risbgn splitters): Allocate new
10030 pseudo in case the target rtx matches the source of the left
10031 shift.
10032
10033 2016-02-26 Martin Jambor <mjambor@suse.cz>
10034
10035 PR hsa/69568
10036 * hsa.h (hsa_type_packed_p): Declare.
10037 * hsa.c (hsa_type_packed_p): New function.
10038 * hsa-gen.c (mem_type_for_type): Use unsigned type for packed
10039 loads.
10040 (gen_hsa_insns_for_store): Use hsa_type_packed_p.
10041 * hsa-brig.c (emit_basic_insn): Likewise.
10042
10043 2016-02-26 Martin Jambor <mjambor@suse.cz>
10044
10045 pr hsa/69674
10046 * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
10047 pointers.
10048 (gen_hsa_addr): Allow integer constants in TMR_INDEX2.
10049
10050 2016-02-26 Martin Jambor <mjambor@suse.cz>
10051
10052 * hsa.h (is_a_helper): New overload for hsa_op_immed for
10053 hsa_op_with_type operands.
10054 (hsa_unsigned_type_for_type): Declare.
10055 * hsa.c (hsa_unsigned_type_for_type): New function.
10056 * hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type.
10057 (gen_hsa_insns_for_operation_assignment): Satisfy constrains of
10058 the finalizer. Do not emit extra move.
10059
10060 2016-02-26 Martin Jambor <mjambor@suse.cz>
10061
10062 * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
10063 atomic operations in private segment.
10064
10065 2016-02-26 Martin Jambor <mjambor@suse.cz>
10066
10067 * omp-low.c (grid_find_ungridifiable_statement): Store problematic
10068 statements to wi->info. Also disallow omp simd constructs.
10069 (grid_target_follows_gridifiable_pattern): Use wi.info to dump reason
10070 for not gridifying. Dump special string for omp_for.
10071
10072 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10073
10074 PR target/69245
10075 * config/aarch64/aarch64.c (aarch64_set_current_function):
10076 Save/restore target globals when switching to
10077 target_option_default_node.
10078
10079 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10080
10081 PR target/69613
10082 * config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
10083 Return 0 if !SHIFT_COUNT_TRUNCATED.
10084
10085 2016-02-26 Jakub Jelinek <jakub@redhat.com>
10086 Eric Botcazou <ebotcazou@adacore.com>
10087
10088 PR rtl-optimization/69891
10089 * dse.c (scan_insn): If we can't figure out memset arguments
10090 or they are non-constant, call clear_rhs_from_active_local_stores.
10091
10092 2016-02-26 Martin Liska <mliska@suse.cz>
10093
10094 * doc/extend.texi: Mention clog10, clog10f an clog10l
10095 in Builtins section.
10096
10097 2016-02-26 Martin Liska <mliska@suse.cz>
10098
10099 * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
10100 CHECKING_P.
10101 (resolve_args_picking_1): Likewise.
10102 * dwarf2out.h (struct GTY): Likewise.
10103
10104 2016-02-26 Martin Liska <mliska@suse.cz>
10105
10106 * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
10107 with flag_checking.
10108 * hsa-regalloc.c (linear_scan_regalloc): Likewise.
10109
10110 2016-02-26 Markus Trippelsdorf <markus@trippelsdorf.de>
10111 Martin Liska <mliska@suse.cz>
10112
10113 * doc/install.texi: Mention --enable-valgrind-annotations.
10114
10115 2016-02-26 Richard Biener <rguenther@suse.de>
10116
10117 PR tree-optimization/69551
10118 * tree-ssa-structalias.c (get_constraint_for_ssa_var): When
10119 looking through aliases adjust DECL_PT_UID to refer to the
10120 ultimate alias target.
10121
10122 2016-02-25 Martin Liska <mliska@suse.cz>
10123
10124 PR middle-end/69919
10125 * alloc-pool.c (after_memory_report): New variable.
10126 * alloc-pool.h (base_pool_allocator ::release): Do not use
10127 the infrastructure if after_memory_report.
10128 * toplev.c (toplev::main): Mark after memory report.
10129
10130 2016-02-25 Richard Biener <rguenther@suse.de>
10131
10132 PR tree-optimization/48795
10133 * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
10134
10135 2016-02-25 Ilya Verbin <ilya.verbin@intel.com>
10136
10137 PR driver/68463
10138 * config/gnu-user.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o if
10139 offloading is enabled and -fopenacc or -fopenmp is specified.
10140 (CRTOFFLOADEND): Likewise.
10141 (GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
10142 (GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
10143 * lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
10144 (offload_objects_file_name): New static var.
10145 (tool_cleanup): Remove offload_objects_file_name file.
10146 (find_offloadbeginend): Replace with ...
10147 (find_crtoffloadtable): ... this.
10148 (run_gcc): Remove offload_argc and offload_argv.
10149 Get offload_objects_file_name from -foffload-objects=... option.
10150 Read names of object files with offload from this file, pass them to
10151 compile_images_for_offload_targets. Don't call find_offloadbeginend and
10152 don't pass offloadbegin and offloadend to the linker. Don't pass
10153 offload non-LTO files to the linker, because now they're not claimed.
10154
10155 2016-02-25 Jan Hubicka <hubicka@ucw.cz>
10156
10157 PR ipa/69630
10158 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
10159 on builtin_unreachable.
10160
10161 2016-02-25 Jakub Jelinek <jakub@redhat.com>
10162
10163 PR rtl-optimization/69896
10164 * regcprop.c: Include cfgrtl.h.
10165 (copyprop_hardreg_forward_1): If noop_p insn uses narrower
10166 than remembered mode, either delete it (if noop_move_p), or
10167 treat like copy_p but not noop_p instruction.
10168
10169 2016-02-24 Jakub Jelinek <jakub@redhat.com>
10170
10171 PR debug/69705
10172 * dwarf2out.c (gen_variable_die): Work around buggy LTO
10173 - allow NULL decl for Fortran DW_TAG_common_block variables.
10174
10175 2016-02-24 Jason Merrill <jason@redhat.com>
10176
10177 * common.opt (flifetime-dse): Add -flifetime-dse=1.
10178
10179 2016-02-24 Richard Biener <rguenther@suse.de>
10180 Jakub Jelinek <jakub@redhat.com>
10181
10182 PR middle-end/69760
10183 * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
10184 conditionally executed ops to well-defined overflow behavior.
10185
10186 2016-02-24 Jakub Jelinek <jakub@redhat.com>
10187
10188 PR middle-end/69915
10189 * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
10190 elements.
10191
10192 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10193
10194 PR rtl-optimization/69886
10195 * gcse.c (can_assign_to_reg_without_clobbers_p): Accept mode
10196 argument. Use it when checking validity of set instructions.
10197 (want_to_gcse_p): Pass mode to can_assign_to_reg_without_clobbers_p.
10198 (compute_ld_motion_mems): Update can_assign_to_reg_without_clobbers_p
10199 callsite.
10200 * rtl.h (can_assign_to_reg_without_clobbers_p): Update prototype.
10201 * store-motion.c (find_moveable_store): Update
10202 can_assign_to_reg_without_clobbers_p callsite.
10203
10204 2016-02-24 Richard Biener <rguenther@suse.de>
10205
10206 PR middle-end/68963
10207 * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
10208 bogus check.
10209 (record_nonwrapping_iv): Do not fall back to the low/high bound
10210 for non-constant IV bases if the stmt is not always executed.
10211
10212 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10213
10214 * config/arm/arm-cores.def (cortex-a32): New entry.
10215 * config/arm/arm-tables.opt: Regenerate.
10216 * config/arm/arm-tune.md: Regenerate.
10217 * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a32.
10218 * config/arm/t-aprofile: Handle mcpu=cortex-a32.
10219 * doc/invoke.texi (ARM Options): Document cortex-a32 as value
10220 for -mcpu and -mtune.
10221
10222 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10223
10224 PR target/69875
10225 * config/arm/arm.h (TARGET_HAVE_LPAE): Define.
10226 * config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value.
10227 * config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern.
10228 (atomic_loaddi_1): Delete.
10229 (atomic_loaddi): Rewrite expander using the above changes.
10230
10231 2016-02-24 Jakub Jelinek <jakub@redhat.com>
10232
10233 PR c/69918
10234 * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
10235 2 to 3.
10236
10237 2016-02-24 Jakub Jelinek <jakub@redhat.com>
10238 Richard Biener <rguenth@suse.de>
10239
10240 PR middle-end/69909
10241 * expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid
10242 set_mem_attributes if tem is SSA_NAME which got expanded
10243 as a MEM.
10244
10245 2016-02-24 Richard Biener <rguenther@suse.de>
10246
10247 PR tree-optimization/69907
10248 * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
10249 end of permutations for BB vectorization.
10250
10251 2016-02-24 Christian Bruel <christian.bruel@st.com>
10252
10253 * config/arm/arm-c.c (arm_option_override): Initialize
10254 target_option_current_node.
10255 * config/arm/arm.c (arm_pragma_target_parse): Replace
10256 build_target_option_node call by target_option_current_node.
10257 Set target_option_current_node.
10258 Fix comments.
10259
10260 2016-02-23 David Edelsohn <dje.gcc@gmail.com>
10261
10262 PR target/69810
10263 * config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
10264 define_insn_and_split to define_insn.
10265 (zero_extendqi<mode>2_dot2): Same.
10266 (extendqi<mode>2_dot): Same.
10267 (extendqi<mode>2_dot2): Same.
10268
10269 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
10270
10271 * config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores
10272 and add bypass for AES{D,E} and AESMC pairs.
10273 * config/aarch64/aarch64.c (exynosm1_tunings): Enable fusion of AES{D,E}
10274 and AESMC pairs.
10275
10276 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
10277
10278 * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
10279 series for reciprocal square root in Exynos M1.
10280
10281 2016-02-23 Martin Sebor <msebor@redhat.com>
10282
10283 PR c/69759
10284 * doc/extend.texi (Other Builtins): Document __builtin_alloca and
10285 __builtin_alloca_with_align.
10286
10287 2016-02-23 Richard Henderson <rth@redhat.com>
10288
10289 * config/i386/i386-c.c (ix86_target_macros): Remove __SEG_TLS.
10290 (ix86_register_pragmas): Remove __seg_tls.
10291 * config/i386/i386-protos.h (ADDR_SPACE_SEG_TLS): Remove.
10292 * config/i386/i386.c (ix86_print_operand_address_as): Don't handle it.
10293 (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): Remove.
10294 (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): Remove.
10295 (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): Remove.
10296 * doc/extend.texi (__seg_tls): Remove item.
10297
10298 2016-02-23 Richard Biener <rguenther@suse.de>
10299
10300 * alloc-pool.h (struct allocation_object): Make id member
10301 conditional on CHECKING_P again.
10302 (get_instance): Adjust.
10303 (base_pool_allocator): Likewise.
10304
10305 2016-02-23 Thomas Schwinge <thomas@codesourcery.com>
10306
10307 * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
10308 (parallelize_loops): In OpenACC kernels mode, set n_threads to
10309 zero.
10310 (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
10311 flag_openacc.
10312 * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
10313
10314 2016-02-23 Richard Biener <rguenther@suse.de>
10315
10316 * mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
10317 * bitmap.h (struct bitmap_usage): Likewise.
10318 (bitmap_move): Declare.
10319 * bitmap.c (register_overhead): Take size_t argument.
10320 (bitmap_move): New function.
10321 * df-problems.c (df_rd_transfer_function): Use bitmap_move
10322 to properly account overhead.
10323 * tree.c (free_node): Use tree_size.
10324
10325 2016-02-23 Jakub Jelinek <jakub@redhat.com>
10326
10327 PR c++/69902
10328 * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
10329 when inverting comparison.
10330
10331 PR c/69900
10332 * common.opt (Wunreachable-code): Add Warning flag.
10333
10334 2016-02-23 Mark Wielaard <mjw@redhat.com>
10335 Jakub Jelinek <jakub@redhat.com>
10336
10337 PR c/69911
10338 * cgraphunit.c (check_global_declaration): Check main_input_filename
10339 and DECL_SOURCE_FILE are not NULL.
10340
10341 2016-02-23 Martin Jambor <mjambor@suse.cz>
10342
10343 PR tree-optimization/69666
10344 * tree-sra.c (sra_modify_assign): Do not attempt to create
10345 default_def replacements for unscalarizable regions.
10346
10347 2016-02-20 Mark Wielaard <mjw@redhat.com>
10348
10349 PR c/28901
10350 * cgraphunit.c (check_global_declaration): Check level of
10351 warn_unused_const_variable and main_input_filename.
10352 * doc/invoke.texi (Warning Options): Add -Wunused-const-variable=.
10353 (-Wunused-variable): For C implies -Wunused-const-variable=1.
10354 (-Wunused-const-variable): Explain levels 1 and 2.
10355
10356 2016-02-22 Jakub Jelinek <jakub@redhat.com>
10357
10358 PR target/69888
10359 * config/i386/i386.c (decide_alg): Ensure we don't recurse with
10360 identical arguments. Formatting and spelling fixes.
10361
10362 PR target/69885
10363 * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
10364 be specified.
10365
10366 PR target/69894
10367 PR target/69895
10368 * config/m68k/t-opts (OPTIONS_H_EXTRA): Add m68k-microarchs.def
10369 and m68k-devices.def.
10370 * config/c6x/t-c6x (OPTIONS_H_EXTRA): Add c6x-isas.def.
10371 * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add aarch64-arches.def.
10372
10373 2016-02-22 Cesar Philippidis <cesar@codesourcery.com>
10374
10375 * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
10376 and HImode registers.
10377
10378 2016-02-22 Richard Biener <rguenther@suse.de>
10379
10380 PR tree-optimization/69882
10381 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Properly
10382 preserve permutations present because of gaps.
10383 (vect_supported_load_permutation_p): Always continue checking
10384 permutations after vect_attempt_slp_rearrange_stmts.
10385
10386 2016-02-22 Bin Cheng <bin.cheng@arm.com>
10387
10388 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
10389 min_profitable_estimate, rather than min_profitable_iters.
10390
10391 2016-02-22 Jakub Jelinek <jakub@redhat.com>
10392
10393 PR target/69885
10394 * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
10395 SImode for last match_operand.
10396
10397 2016-02-22 Martin Liska <mliska@suse.cz>
10398
10399 * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
10400 return bitsize - 1 as the return value.
10401
10402 2016-02-22 Oleg Endo <olegendo@gcc.gnu.org>
10403
10404 PR target/69806
10405 PR target/54089
10406 * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
10407 Handle negative shift counts.
10408 * config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
10409 force_reg on the shift constant.
10410 (lshrsi3): Likewise. Expand into lshrsi3_n* instead of lshrsi3_d.
10411 (lshrsi3_d): Handle negative shift counts.
10412
10413 2016-02-22 Richard Biener <rguenther@suse.de>
10414 Tom de Vries <tom@codesourcery.com>
10415
10416 * graph.c: Include dumpfile.h.
10417 (print_graph_cfg): Split into three overloads.
10418 * gdbhooks.py (class DotFn): Add and instantiate, adding command dot-fn.
10419
10420 2016-02-22 Tom de Vries <tom@codesourcery.com>
10421
10422 * gdbhooks.py (class DumpFn): Add and instantiate, adding command
10423 dump-fn.
10424
10425 2016-02-22 Richard Biener <rguenther@suse.de>
10426
10427 PR ipa/37448
10428 * ipa-inline-transform.c (inline_call): When not updating
10429 overall summaries adjust self size by the growth estimate.
10430 * ipa-inline.c (inline_to_all_callers_1): Add to the callers
10431 hash-set, do not update overall summaries here. Renamed from ...
10432 (inline_to_all_callers): ... this which is now wrapping the
10433 above and performing delayed overall summary update.
10434 (early_inline_small_functions): Delay updating of the overall
10435 summary.
10436
10437 2016-02-21 Markus Trippelsdorf <markus@trippelsdorf.de>
10438
10439 * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
10440 variable.
10441
10442 2016-02-19 Jakub Jelinek <jakub@redhat.com>
10443
10444 PR driver/69805
10445 * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use
10446 :%* in %:gt() argument.
10447 (greater_than_spec_func): Adjust for expecting only numbers,
10448 if there are more than two numbers, compare the last two.
10449
10450 2016-02-19 Jonathan Wakely <jwakely@redhat.com>
10451
10452 * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
10453 -Wnarrowing with -std.
10454
10455 2016-02-19 Jakub Jelinek <jakub@redhat.com>
10456
10457 PR c++/69851
10458 * expr.c (store_field): Don't use bit-field path if exp is
10459 COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is
10460 different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize
10461 and the assignment can be performed by bitwise copy. Formatting
10462 fix.
10463
10464 PR middle-end/69838
10465 * lra.c (lra_process_new_insns): If non-call exceptions are enabled,
10466 call copy_reg_eh_region_note_forward on before and/or after sequences
10467 and remove note from insn if it no longer can throw.
10468
10469 PR target/69820
10470 * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
10471 if TARGET_AVX512BW.
10472
10473 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10474
10475 * config/s390/vector.md: Add missing commutative operand markers
10476 to the patterns which qualify for one.
10477 * config/s390/vx-builtins.md: Likewise.
10478
10479 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10480
10481 * config/s390/vector.md (VI, VI_QHS): Add single element vector
10482 types to mode iterators.
10483 (vec_double): ... and mode attribute.
10484 * config/s390/vx-builtins.md (non_vec_int): Likewise.
10485
10486 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10487
10488 * config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
10489 Change the predicate of op2 from nonimmediate to general and let
10490 reload fix it if necessary.
10491
10492 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10493
10494 * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
10495
10496 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10497
10498 * config/s390/s390.c (s390_expand_vcond): Use the compare operand
10499 mode.
10500
10501 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10502
10503 * config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
10504 * config/s390/s390.c (s390_expand_vec_movstr): New function.
10505 * config/s390/s390.md ("movstr<P:mode>"): Call
10506 s390_expand_vec_movstr.
10507
10508 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10509
10510 * config/s390/s390.md: Add missing output modifier for operand 1
10511 to print it as address properly.
10512
10513 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10514
10515 * config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
10516 * config/s390/2964.md: New file.
10517 * config/s390/s390.c (s390_get_sched_attrmask): Use the right set
10518 of insn grouping attributes depending on the CPU level.
10519 (s390_get_unit_mask): New function.
10520 (s390_sched_score): Remove the OOO from the scheduling macros.
10521 Add loop to calculate a score for the instruction mix.
10522 (s390_sched_reorder): Likewise plus improve debug output.
10523 (s390_sched_variable_issue): Rename macros as above. Calculate
10524 the unit distances after actually scheduling an insn. Improve
10525 debug output.
10526 (s390_sched_init): Clear last_scheduled_unit_distance array.
10527 * config/s390/s390.md: Include 2964.md.
10528
10529 2016-02-18 Jakub Jelinek <jakub@redhat.com>
10530
10531 PR target/69671
10532 * config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
10533 *avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
10534 *avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
10535 *avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
10536 *avx512f_<code>v8div16qi2_mask_1): New insns.
10537
10538 2016-02-18 Michael Meissner <meissner@linux.vnet.ibm.com>
10539
10540 PR target/68404
10541 * config/rs6000/predicates.md (fusion_gpr_addis): Revert
10542 2016-02-09 change.
10543
10544 * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
10545 earlyclobber from target. Use wF constraint for fused memory
10546 address.
10547 (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
10548
10549 2016-02-18 Jakub Jelinek <jakub@redhat.com>
10550 Martin Liska <mliska@suse.cz>
10551
10552 PR sanitizer/69863
10553 * cfgexpand.c (asan_sanitize_stack_p): New function.
10554 (partition_stack_vars): Use the function.
10555 (expand_stack_vars): Likewise.
10556 (defer_stack_allocation): Likewise.
10557 (expand_used_vars): Likewise.
10558
10559 2016-02-18 Richard Biener <rguenther@suse.de>
10560
10561 PR middle-end/69553
10562 * fold-const.c (operand_equal_p): Properly compare offsets for
10563 IMAGPART_EXPR and ARRAY_REF.
10564
10565 2016-02-18 Nick Clifton <nickc@redhat.com>
10566
10567 PR target/62254
10568 PR target/69610
10569 * config/arm/arm.c (arm_option_override_internal): Disable
10570 interworking if the target does not support thumb instructions.
10571 (arm_reload_in_hi): Handle the case where a register to register
10572 move needs reloading because there is no simple pattern to handle
10573 it.
10574 (arm_reload_out_hi): Likewise.
10575
10576 2016-02-18 Richard Biener <rguenther@suse.de>
10577
10578 PR middle-end/69854
10579 * match.pd: Don't use fold_binary or fold_unary for folding
10580 constants.
10581
10582 2016-02-17 Jakub Jelinek <jakub@redhat.com>
10583
10584 PR c++/69850
10585 * gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
10586 on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
10587 * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
10588 warn on gimple_no_warning_p statements.
10589
10590 2016-02-17 Jonathan Wakely <jwakely@redhat.com>
10591
10592 * doc/extend.texi (C++ Attributes): Correct description of
10593 warn_unused type attribute.
10594
10595 2016-02-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10596
10597 * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
10598 correct instruction.
10599
10600 2016-02-17 Richard Biener <rguenther@suse.de>
10601
10602 PR rtl-optimization/69609
10603 * bb-reorder.c (struct bbro_basic_block_data): Add priority member.
10604 (find_traces_1_round): When ending a trace update cached priority
10605 of successors.
10606 (bb_to_key): Use cached priority when available.
10607 (copy_bb): Initialize cached priority.
10608 (reorder_basic_blocks_software_trace_cache): Likewise.
10609
10610 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10611
10612 PR target/69161
10613 * config/aarch64/predicates.md (aarch64_comparison_operator_mode):
10614 New predicate.
10615 (aarch64_comparison_operator): Break overly long line into two.
10616 (aarch64_comparison_operation): Likewise.
10617 * config/aarch64/aarch64.md (cstorecc4): Use
10618 aarch64_comparison_operator_mode instead of
10619 aarch64_comparison_operator.
10620 (cstore<mode>4): Likewise.
10621 (aarch64_cstore<mode>): Likewise.
10622 (*cstoresi_insn_uxtw): Likewise.
10623 (cstore<mode>_neg): Likewise.
10624 (*cstoresi_neg_uxtw): Likewise.
10625
10626 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10627
10628 PR target/69161
10629 * config/arm/predicates.md (arm_comparison_operator_mode):
10630 New predicate.
10631 * config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode
10632 instead of arm_comparison_operator.
10633 (*mov_negscc): Likewise.
10634 (*mov_notscc): Likewise.
10635 * config/arm/thumb2.md (*thumb2_mov_scc): Likewise.
10636 (*thumb2_mov_negscc): Likewise.
10637 (*thumb2_mov_negscc_strict_it): Likewise.
10638 (*thumb2_mov_notscc): Likewise.
10639 (*thumb2_mov_notscc_strict_it): Likewise.
10640
10641 2016-02-17 Wilco Dijkstra <wdijkstr@arm.com>
10642
10643 * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
10644 Add missing return.
10645
10646 2016-02-17 Eric Botcazou <ebotcazou@adacore.com>
10647
10648 * config/visium/visium.c (machine_libfunc_index): New enum.
10649 (machine_libfuncs): New structure.
10650 (visium_libfuncs): New static variable.
10651 (TARGET_INIT_LIBFUNCS): Define to...
10652 (visium_init_libfuncs): ...this. New function.
10653 (expand_block_move_4): Use the appropriate libfunc.
10654 (expand_block_move_2): Likewise.
10655 (expand_block_move_1): Likewise.
10656 (expand_block_set_4): Likewise.
10657 (expand_block_set_2): Likewise.
10658 (expand_block_set_1): Likewise.
10659 (visium_trampoline_init): Likewise.
10660
10661 2016-02-17 Nick Clifton <nickc@redhat.com>
10662
10663 * config/msp430/msp430.c (msp430_mcu_data): Sync with data from
10664 TI's devices.csv file as of March 2016.
10665
10666 2016-02-16 Kelvin Nilsen <kelvin@gcc.gnu.org>
10667
10668 PR Target/48344
10669 * opts-global.c (handle_common_deferred_options): Introduce and
10670 initialize two global variables to remember command-line options
10671 specifying a stack-limiting register.
10672 * opts.h: Add extern declarations of the two new global variables.
10673 * emit-rtl.c (init_emit_once): Initialize the stack_limit_rtx
10674 variable based on the values of the two new global variables.
10675
10676 2016-02-16 Jakub Jelinek <jakub@redhat.com>
10677
10678 PR c/69835
10679 * common.opt (Wnonnull-compare): New warning.
10680 * doc/invoke.texi (-Wnonnull): Remove text about comparison
10681 of arguments against NULL.
10682 (-Wnonnull-compare): Document.
10683 * Makefile.in (OBJS): Add gimple-ssa-nonnull-compare.o.
10684 * tree-pass.h (make_pass_warn_nonnull_compare): Declare.
10685 * passes.def (pass_warn_nonnull_compare): Add.
10686 * gimple-ssa-nonnull-compare.c: New file.
10687
10688 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
10689
10690 * config/aarch64/aarch64.c (cortexa57_tunings): Remove
10691 AARCH64_EXTRA_TUNE_RECIP_SQRT.
10692
10693 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
10694
10695 * config/aarch64/aarch64.c (use_rsqrt_p): Always use software
10696 reciprocal sqrt for -mlow-precision-recip-sqrt.
10697
10698 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
10699 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10700
10701 * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
10702 always use lane loads to construct non-constant vectors.
10703
10704 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
10705
10706 * config/aarch64/aarch64.md
10707 (arch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Fix register
10708 constraints for operand 3.
10709 (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
10710
10711 2016-02-16 Jakub Jelinek <jakub@redhat.com>
10712 Richard Biener <rguenther@suse.de>
10713
10714 PR tree-optimization/69820
10715 * tree-vect-patterns.c (type_conversion_p): Return false if
10716 *orig_type is unsigned single precision or boolean.
10717 (vect_recog_dot_prod_pattern, vect_recog_widen_mult_pattern):
10718 Formatting fix.
10719
10720 2016-02-16 Jakub Jelinek <jakub@redhat.com>
10721
10722 PR rtl-optimization/69764
10723 PR rtl-optimization/69771
10724 * optabs.c (expand_binop): Ensure for shift optabs invalid CONST_INT
10725 op1 is valid for GET_MODE_INNER (mode) and force it into a reg.
10726
10727 2016-02-16 Richard Biener <rguenther@suse.de>
10728
10729 PR tree-optimization/69776
10730 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
10731 sets from caller.
10732 (indirect_refs_may_alias_p): Likewise.
10733 (refs_may_alias_p_1): Pass alias sets as from ao_ref.
10734 * tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set
10735 according to tbaa_p.
10736 * tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag.
10737 (optimize_stmt): For redundant store discovery do not allow tbaa.
10738
10739 2016-02-16 Bernd Schmidt <bschmidt@redhat.com>
10740
10741 PR tree-optimization/69714
10742 * tree-ssa-math-opts.c (find_bswap_or_nop): Revert previous change.
10743 Return NULL if we have irrelevant high bytes on BIG_ENDIAN.
10744
10745 2016-02-16 Claudiu Zissulescu <claziss@synopsys.com>
10746
10747 * config/arc/arc-modes.def (CC_FPU, CC_FPU_UNEQ): New modes.
10748 * config/arc/arc-opts.h (FPU_SP, FPU_SF, FPU_SC, FPU_SD, FPU_DP)
10749 (FPU_DF, FPU_DC, FPU_DD, FXP_DP): Define.
10750 * config/arc/arc.c (arc_init): Check FPU options.
10751 (get_arc_condition_code): Handle new CC_FPU* modes.
10752 (arc_select_cc_mode): Likewise.
10753 (arc_conditional_register_usage): Allow 64 bit datum into even-odd
10754 register pair only. Allow access for ARCv2 accumulator.
10755 (gen_compare_reg): Whenever we have FPU support use FPU compare
10756 instructions.
10757 (arc_reorg): Don't generate brcc insns when FPU compare
10758 instructions are involved.
10759 * config/arc/arc.h (TARGET_DPFP): Add TARGET_FP_DPAX condition.
10760 (TARGET_OPTFPE): Add condition when ARC EM can use optimized
10761 floating point emulation.
10762 (ACC_REG_FIRST, ACC_REG_LAST, ACCL_REGNO, ACCH_REGNO): Define.
10763 (REVERSE_CONDITION): Add new CC_FPU* modes.
10764 (TARGET_FP_SP_BASE): Define.
10765 (TARGET_FP_DP_BASE): Likewise.
10766 (TARGET_FP_SP_FUSED): Likewise.
10767 (TARGET_FP_DP_FUSED): Likewise.
10768 (TARGET_FP_SP_CONV): Likewise.
10769 (TARGET_FP_DP_CONV): Likewise.
10770 (TARGET_FP_SP_SQRT): Likewise.
10771 (TARGET_FP_DP_SQRT): Likewise.
10772 (TARGET_FP_DP_AX): Likewise.
10773 * config/arc/arc.md (ARCV2_ACC): New constant.
10774 (type): New fpu type attribute.
10775 (SDF): Conditional iterator.
10776 (cstore<mode>, cbranch<mode>): Change expand condition.
10777 (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3): New expands,
10778 handles FPU/FPX cases as well.
10779 * config/arc/arc.opt (mfpu): New option.
10780 * config/arc/fpx.md (addsf3_fpx, subsf3_fpx, mulsf3_fpx):
10781 Renamed.
10782 (adddf3, muldf3, subdf3): Removed.
10783 * config/arc/predicates.md (proper_comparison_operator): Recognize
10784 CC_FPU* modes.
10785 * config/arc/fpu.md: New file.
10786 * doc/invoke.texi (ARC Options): Document mfpu option.
10787
10788 2016-02-16 Richard Biener <rguenther@suse.de>
10789
10790 PR rtl-optimization/69291
10791 * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
10792 noce_operand_ok check.
10793
10794 2016-02-16 Tom de Vries <tom@codesourcery.com>
10795
10796 PR lto/67709
10797 * omp-low.c (simd_clone_create): Remove call to
10798 symtab->call_cgraph_insertion_hooks.
10799
10800 2016-02-16 Jakub Jelinek <jakub@redhat.com>
10801
10802 PR tree-optimization/69802
10803 * tree-ssa-reassoc.c (update_range_test): If op is
10804 SSA_NAME_IS_DEFAULT_DEF, give up unless tem is a positive
10805 op == 1 test of precision 1 integral op, otherwise handle
10806 that case as op itself. Fix up formatting.
10807 (optimize_range_tests_to_bit_test, optimize_range_tests): Fix
10808 up formatting.
10809
10810 2016-02-16 Richard Biener <rguenther@suse.de>
10811
10812 PR tree-optimization/69586
10813 * tree-vrp.c (register_edge_assert_for_2): Handle all integral
10814 types for conversion sources.
10815
10816 2016-02-16 Richard Biener <rguenther@suse.de>
10817
10818 PR middle-end/69801
10819 * fold-const.c (operand_equal_p): For COND_EXPR zero operand
10820 mask OEP_ADDRESS_OF.
10821
10822 2016-02-16 Alan Modra <amodra@gmail.com>
10823
10824 PR target/68973
10825 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter.
10826 (p8_mtvsrd_df, p8_mtvsrd_sf): New.
10827 (p8_mtvsrd_1, p8_mtvsrd_2): Delete.
10828 (p8_mtvsrwz): New.
10829 (p8_mtvsrwz_1, p8_mtvsrwz_2): Delete.
10830 (p8_xxpermdi_<mode>): Take two DF inputs rather than one TF.
10831 (p8_fmrgow_<mode>): Likewise.
10832 (reload_vsx_from_gpr<mode>): Make clobber IF. Adjust for above
10833 changes.
10834 (reload_fpr_from_gpr<mode>): Similarly. Use "d" for op0 constraint.
10835 (reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting
10836 to use movdi_internal64. Remove op0_di.
10837 * config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode.
10838
10839 2016-02-15 Evandro Menezes <e.menezes@samsung.com>
10840
10841 Add support for the FCCMP insn types
10842
10843 * config/aarch64/aarch64.md (fccmp): Change insn type.
10844 (fccmpe): Likewise.
10845 * config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types.
10846 * config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise.
10847 * config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise.
10848 * config/arm/xgene1.md (xgene1_fcmp): Likewise.
10849 * config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation.
10850 * config/arm/types.md (fccmps): Add new insn type.
10851 (fccmpd): Likewise.
10852
10853 2016-02-15 Bernd Edlinger <bernd.edlinger@hotmail.de>
10854
10855 * alias.c (get_alias_set): Fix a typo in comment.
10856
10857 2016-02-15 Richard Biener <rguenther@suse.de>
10858
10859 PR tree-optimization/69595
10860 * match.pd: Complete range test simplification to true.
10861
10862 2016-02-15 Bernd Schmidt <bschmidt@redhat.com>
10863
10864 PR rtl-optimization/69648
10865 * lra-constraints.c (update_ebb_live_info): Don't remove sets of
10866 pic_offset_table_rtx.
10867
10868 PR rtl-optimization/69752
10869 * ira.c (update_equiv_regs): When looking for more than a single SET,
10870 also take other side effects into account.
10871
10872 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
10873
10874 * config/s390/s390.c (s390_function_profiler): Add a new sequence
10875 for z900+ CPUs in 31-bit mode.
10876
10877 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
10878
10879 * common/config/s390/s390-common.c (s390_supports_split_stack):
10880 New function.
10881 (TARGET_SUPPORTS_SPLIT_STACK): New macro.
10882 * config/s390/s390-protos.h: Add s390_expand_split_stack_prologue.
10883 * config/s390/s390.c (struct machine_function): New field
10884 split_stack_varargs_pointer.
10885 (s390_register_info): Mark r12 as clobbered if it'll be used as temp
10886 in s390_emit_prologue.
10887 (s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack
10888 vararg pointer.
10889 (morestack_ref): New global.
10890 (SPLIT_STACK_AVAILABLE): New macro.
10891 (s390_expand_split_stack_prologue): New function.
10892 (s390_live_on_entry): New function.
10893 (s390_va_start): Use split-stack vararg pointer if appropriate.
10894 (s390_asm_file_end): Emit the split-stack note sections.
10895 (TARGET_EXTRA_LIVE_ON_ENTRY): New macro.
10896 * config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec.
10897 (UNSPECV_SPLIT_STACK_CALL): New unspec.
10898 (UNSPECV_SPLIT_STACK_DATA): New unspec.
10899 (split_stack_prologue): New expand.
10900 (split_stack_space_check): New expand.
10901 (split_stack_data): New insn.
10902 (split_stack_call): New expand.
10903 (split_stack_call_*): New insn.
10904 (split_stack_cond_call): New expand.
10905 (split_stack_cond_call_*): New insn.
10906
10907 2016-02-15 Richard Biener <rguenther@suse.de>
10908
10909 PR tree-optimization/69783
10910 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
10911 Add trivially correct cases.
10912
10913 2016-02-15 Tom de Vries <tom@codesourcery.com>
10914
10915 PR lto/69655
10916 * lto-cgraph.c (input_offload_tables): Add and handle bool parameter
10917 do_force_output.
10918 * lto-streamer.h (input_offload_tables): Add and handle bool parameter.
10919
10920 2016-02-15 Richard Biener <rguenther@suse.de>
10921
10922 PR tree-optimization/69776
10923 * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
10924 * tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to
10925 indicate whether we can use TBAA to disambiguate against stores.
10926 Use alias-set zero if not.
10927 (visit_reference_op_store): Do not use TBAA when looking up
10928 redundant stores.
10929 * tree-ssa-pre.c (compute_avail): Use TBAA here.
10930 (eliminate_dom_walker::before_dom_children): But not when looking
10931 up redundant stores.
10932
10933 2016-02-14 John David Anglin <danglin@gcc.gnu.org>
10934
10935 * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.
10936
10937 2016-02-14 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
10938
10939 * config/i386/znver1.md
10940 (znver1_pop, znver1_pop_mem,
10941 znver1_load_imov_double_store,
10942 znver1_load_imov_direct_store,
10943 znver1_load_imov_direct_load,
10944 znver1_load_imov_double_load): Add new.
10945 (znver1_insn, znver1_insn_load): Add icmov type.
10946 (znver1_sseavx_fma,
10947 znver1_sseavx_fma_load,
10948 znver1_avx256_fma,
10949 znver1_avx256_fma_load): Fix pipe usage.
10950
10951 2016-02-14 Alan Modra <amodra@gmail.com>
10952
10953 PR target/68973
10954 * reloads.c (find_reloads_address_1): For pre/post-inc/dec
10955 with an invalid hard reg, reload just the reg not the entire
10956 pre/post-inc/dec address expression.
10957
10958 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
10959
10960 PR target/67260
10961 * config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with
10962 fixed R1_REG scratch reg.
10963 (sibcall_value_pcrel_fdpic): Likewise.
10964
10965 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
10966
10967 PR target/67636
10968 PR target/64345
10969 * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.
10970
10971 2016-02-12 Walter Lee <walt@tilera.com>
10972
10973 * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
10974 * config/tilegx/t-tilegx: Likewise.
10975
10976 2016-02-12 David Malcolm <dmalcolm@redhat.com>
10977
10978 PR other/69554
10979 * diagnostic-show-locus.c (struct line_span): New struct.
10980 (layout::get_first_line): Delete.
10981 (layout::get_last_line): Delete.
10982 (layout::get_num_line_spans): New member function.
10983 (layout::get_line_span): Likewise.
10984 (layout::print_heading_for_line_span_index_p): Likewise.
10985 (layout::get_expanded_location): Likewise.
10986 (layout::calculate_line_spans): Likewise.
10987 (layout::m_first_line): Delete.
10988 (layout::m_last_line): Delete.
10989 (layout::m_line_spans): New field.
10990 (layout::layout): Update comment. Replace m_first_line and
10991 m_last_line with m_line_spans, replacing their initialization
10992 with a call to calculate_line_spans.
10993 (diagnostic_show_locus): When printing source lines and
10994 annotations, rather than looping over a single span
10995 of lines, instead loop over each line_span within
10996 the layout, with an inner loop over the lines within them.
10997 Call the context's start_span callback when changing line spans.
10998 * diagnostic.c (diagnostic_initialize): Initialize start_span.
10999 (diagnostic_build_prefix): Break out the building of the location
11000 part of the string into...
11001 (diagnostic_get_location_text): ...this new function, rewriting
11002 it from nested ternary expressions to a sequence of "if"
11003 statements.
11004 (default_diagnostic_start_span_fn): New function.
11005 * diagnostic.h (diagnostic_start_span_fn): New typedef.
11006 (diagnostic_context::start_span): New field.
11007 (default_diagnostic_start_span_fn): New prototype.
11008
11009 2016-02-12 David Malcolm <dmalcolm@redhat.com>
11010
11011 PR driver/69779
11012 * gcc.c (driver::finalize): Fix cleanup of "specs".
11013
11014 2016-02-12 David Malcolm <dmalcolm@redhat.com>
11015
11016 PR driver/69265
11017 PR driver/69453
11018 * gcc.c (driver::driver): Initialize m_option_suggestions.
11019 (driver::~driver): Clean up m_option_suggestions.
11020 (suggest_option): Convert to...
11021 (driver::suggest_option): ...this, and split out into
11022 driver::build_option_suggestions and find_closest_string.
11023 (driver::build_option_suggestions): New function, from
11024 first half of suggest_option. Special-case
11025 OPT_fsanitize_ and OPT_fsanitize_recover_, making use of
11026 the sanitizer_opts array. For options of enum types, add the
11027 various enum values to the candidate strings.
11028 (driver::handle_unrecognized_options): Remove "const".
11029 * gcc.h (driver::handle_unrecognized_options): Likewise.
11030 (driver::build_option_suggestions): New decl.
11031 (driver::suggest_option): New decl.
11032 (driver::m_option_suggestions): New field.
11033 * opts-common.c (add_misspelling_candidates): New function.
11034 * opts.c (sanitizer_opts): Remove decl of struct sanitizer_opts_s
11035 and make non-static.
11036 * opts.h (sanitizer_opts): New array decl.
11037 (add_misspelling_candidates): New function decl.
11038 * spellcheck.c (find_closest_string): New function.
11039 * spellcheck.h (find_closest_string): New function decl.
11040
11041 2016-02-12 Jakub Jelinek <jakub@redhat.com>
11042
11043 PR rtl-optimization/69764
11044 PR rtl-optimization/69771
11045 * optabs.c (expand_binop_directly): For shift_optab_p, force
11046 convert_modes with VOIDmode if xop1 has VOIDmode.
11047
11048 2016-02-12 Ilya Enkovich <enkovich.gnu@gmail.com>
11049
11050 PR target/69729
11051 * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
11052 to correctly determine instrumentation thunks.
11053
11054 2016-02-12 Jakub Jelinek <jakub@redhat.com>
11055
11056 PR ipa/69241
11057 * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
11058 type by reference, force lhs on the call.
11059
11060 PR ipa/68672
11061 * ipa-split.c (split_function): Don't compute/use main_part_return_p.
11062 Compute retval and retbnd early in all cases if split_part_return_p
11063 and return_bb is not EXIT. Remove all clobber stmts and reset
11064 all debug stmts that refer to SSA_NAMEs defined in split part,
11065 except if it is retval, in that case replace the old retval with the
11066 lhs of the call to the split part.
11067
11068 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
11069
11070 revert:
11071 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
11072
11073 PR middle-end/66726
11074 * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
11075 whose result is used in PHI.
11076 (maybe_optimize_range_tests): Likewise.
11077 (final_range_test_p): Likweise.
11078
11079 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
11080
11081 PR middle-end/66726
11082 * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
11083 whose result is used in PHI.
11084 (maybe_optimize_range_tests): Likewise.
11085 (final_range_test_p): Likweise.
11086
11087 2016-02-12 Jakub Jelinek <jakub@redhat.com>
11088
11089 * cgraph.c: Spelling fixes - behaviour -> behavior and
11090 neighbour -> neighbor.
11091 * target.def: Likewise.
11092 * sel-sched.c: Likewise.
11093 * config/mips/mips.c: Likewise.
11094 * config/arc/arc.md: Likewise.
11095 * config/arm/cortex-a57.md: Likewise.
11096 * config/arm/arm.c: Likewise.
11097 * config/arm/neon.md: Likewise.
11098 * config/arm/arm-c.c: Likewise.
11099 * config/vms/vms-c.c: Likewise.
11100 * config/s390/s390.c: Likewise.
11101 * config/i386/znver1.md: Likewise.
11102 * config/i386/i386.c: Likewise.
11103 * config/ia64/hpux-unix2003.h: Likewise.
11104 * config/msp430/msp430.md: Likewise.
11105 * config/rx/rx.c: Likewise.
11106 * config/rx/rx.md: Likewise.
11107 * config/aarch64/aarch64-simd.md: Likewise.
11108 * config/aarch64/aarch64.c: Likewise.
11109 * config/nvptx/nvptx.c: Likewise.
11110 * config/bfin/bfin.c: Likewise.
11111 * config/cris/cris.opt: Likewise.
11112 * config/rs6000/rs6000.c: Likewise.
11113 * target.h: Likewise.
11114 * spellcheck.c: Likewise.
11115 * ira-build.c: Likewise.
11116 * tree-inline.c: Likewise.
11117 * builtins.c: Likewise.
11118 * lra-constraints.c: Likewise.
11119 * explow.c: Likewise.
11120 * hwint.h: Likewise.
11121 * targhooks.c: Likewise.
11122 * tree-vect-data-refs.c: Likewise.
11123 * expr.c: Likewise.
11124 * doc/tm.texi: Likewise.
11125 * doc/extend.texi: Likewise.
11126 * doc/install.texi: Likewise.
11127 * doc/md.texi: Likewise.
11128 * tree-ssa-tail-merge.c: Likewise.
11129 * sched-int.h: Likewise.
11130 * match.pd: Likewise.
11131 * sched-ebb.c: Likewise.
11132 * target.def (omit_struct_return_reg): Likewise.
11133 * gimple-ssa-isolate-paths.c: Likewise.
11134 (find_implicit_erroneous_behaviour): Renamed to...
11135 (find_implicit_erroneous_behavior): ... this.
11136 (find_explicit_erroneous_behaviour): Renamed to...
11137 (find_explicit_erroneous_behavior): ... this.
11138 (gimple_ssa_isolate_erroneous_paths): Adjust caller.
11139
11140 2016-02-11 Segher Boessenkool <segher@kernel.crashing.org>
11141
11142 PR rtl-optimization/64682
11143 PR rtl-optimization/69567
11144 PR rtl-optimization/69737
11145 * combine.c (distribute_notes) <REG_DEAD>: If the register is set
11146 in I2 as well, just lose it.
11147
11148 2016-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11149
11150 * config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
11151 New variable.
11152 (aarch64_last_printed_tune_string): Likewise.
11153 (aarch64_declare_function_name): Only output .arch assembler
11154 directive if it will be different from the previously output
11155 directive. Same for .tune comment but only if -dA is set.
11156 (aarch64_start_file): New function.
11157 (TARGET_ASM_FILE_START): Define.
11158
11159 2016-02-11 David Malcolm <dmalcolm@redhat.com>
11160
11161 PR plugins/69758
11162 * Makefile.in (PLUGIN_HEADERS): Add params.list.
11163
11164 2016-02-11 Jakub Jelinek <jakub@redhat.com>
11165
11166 PR target/65313
11167 * tree-vect-slp.c (vect_schedule_slp_instance): Avoid
11168 -Wmaybe-uninitialized warning.
11169
11170 2016-02-11 Oleg Endo <olegendo@gcc.gnu.org>
11171
11172 PR target/69713
11173 * config/sh/sh.md (casesi_worker_0): Add T_REG use.
11174
11175 2016-02-11 Richard Biener <rguenther@suse.de>
11176
11177 PR rtl-optimization/69291
11178 * ifcvt.c (noce_try_store_flag_constants): Do not allow
11179 subexpressions affected by changing the result.
11180
11181 2016-02-10 Vladimir Makarov <vmakarov@redhat.com>
11182
11183 PR target/69148
11184 * lra-constraints.c (curr_insn_transform): Find in/out operands
11185 for secondary memory moves. Update dups.
11186
11187 2016-02-10 Yuri Rumyantsev <ysrumyan@gmail.com>
11188
11189 PR tree-optimization/69652
11190 * tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1
11191 to nested loop, did source re-formatting, skip debug statements,
11192 add check on statement with volatile operand, remove dead scalar
11193 statements.
11194
11195 2016-02-10 Jakub Jelinek <jakub@redhat.com>
11196 Patrick Palka <ppalka@gcc.gnu.org>
11197
11198 PR ipa/69241
11199 PR c++/69649
11200 * gimplify.c (gimplify_modify_expr): Set lhs even for noreturn
11201 calls if the return type is TREE_ADDRESSABLE.
11202 * cgraphunit.c (cgraph_node::expand_thunk): Likewise.
11203 * ipa-split.c (split_function): Fix doubled "we" in comment.
11204 Use void return type for the split part even if
11205 !split_point->split_part_set_retval.
11206
11207 2016-02-10 Bin Cheng <bin.cheng@arm.com>
11208
11209 PR tree-optimization/68021
11210 * tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if
11211 when computing the value of biv cand by itself.
11212
11213 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
11214
11215 * config/aarch64/aarch64.c (cortexa53_tunings): Enable AES fusion.
11216 (cortexa57_tunings): Likewise.
11217 (cortexa72_tunings): Likewise.
11218 (arch_macro_fusion_pair_p): Add support for AES fusion.
11219 * config/aarch64/aarch64-fusion-pairs.def: Add AES_AESMC entry.
11220 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
11221 Allow virtual registers before reload so early scheduling works.
11222 * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Use
11223 correct latency and pipeline.
11224 (cortex_a57_crypto_complex): Likewise.
11225 (cortex_a57_crypto_xor): Likewise.
11226 (define_bypass): Add AES bypass.
11227
11228 2016-02-10 Richard Biener <rguenther@suse.de>
11229
11230 PR tree-optimization/69726
11231 * passes.def: Add DCE pass before late uninit.
11232 * match.pd: Add A ? B : (!A ? C : X) -> A ? B : C patterns to
11233 really fixup if-conversions job.
11234
11235 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
11236
11237 * config/arm/arm.c (arm_cortex_a53_tune): Enable AES fusion.
11238 (arm_cortex_a57_tune): Likewise.
11239 (aarch_macro_fusion_pair_p): Add support for AES fusion.
11240 * config/arm/arm-protos.h (fuse_ops): Add FUSE_AES_AESMC.
11241
11242 2016-02-10 Eric Botcazou <ebotcazou@adacore.com>
11243
11244 * timevar.def (TV_PHASE_DBGINFO): Delete.
11245 (TV_PHASE_CHECK_DBGINFO): Likewise.
11246 * varpool.c (varpool_node::assemble_decl): Do not change timevar.
11247
11248 2016-02-10 Richard Biener <rguenther@suse.de>
11249
11250 PR tree-optimization/69719
11251 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
11252 Adjust previous fix by ensuring that dr_a1 is left of dr_a2.
11253
11254 2016-02-09 Andrew Pinski <apinski@cavium.com>
11255
11256 PR tree-opt/69282
11257 * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
11258 get_vcond_mask_icode returns false.
11259
11260 2016-02-09 Michael Meissner <meissner@linux.vnet.ibm.com>
11261
11262 PR target/68404
11263 * config/rs6000/predicates.md (fusion_gpr_addis): Prevent fusing
11264 an ADDIS that adds a pointer to a large constant that sets the
11265 upper16 bits with a load operation.
11266
11267 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
11268
11269 PR target/68532
11270 * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
11271 order.
11272 * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
11273 endian.
11274 (vzipq_s16): Likewise.
11275 (vzipq_s32): Likewise.
11276 (vzipq_f32): Likewise.
11277 (vzipq_u8): Likewise.
11278 (vzipq_u16): Likewise.
11279 (vzipq_u32): Likewise.
11280 (vzipq_p8): Likewise.
11281 (vzipq_p16): Likewise.
11282
11283 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
11284
11285 PR target/68532
11286 * config/arm/arm.c (neon_endian_lane_map): New function.
11287 (neon_vector_pair_endian_lane_map): New function.
11288 (arm_evpc_neon_vuzp): Allow for big endian lane order.
11289 * config/arm/arm_neon.h (vuzpq_s8): Adjust shuffle patterns for big
11290 endian.
11291 (vuzpq_s16): Likewise.
11292 (vuzpq_s32): Likewise.
11293 (vuzpq_f32): Likewise.
11294 (vuzpq_u8): Likewise.
11295 (vuzpq_u16): Likewise.
11296 (vuzpq_u32): Likewise.
11297 (vuzpq_p8): Likewise.
11298 (vuzpq_p16): Likewise.
11299
11300 2016-02-11 Alexandre Oliva <aoliva@redhat.com>
11301
11302 PR target/69634
11303 * regstat.c (regstat_bb_compute_calls_crossed): Disregard
11304 debug insns.
11305
11306 2016-02-09 Uros Bizjak <ubizjak@gmail.com>
11307
11308 * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
11309 truncate const_int operand 1 to QImode.
11310
11311 2016-02-09 Eric Botcazou <ebotcazou@adacore.com>
11312
11313 * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
11314 corresponding to an abnormal edge.
11315
11316 2016-02-09 Tom de Vries <tom@codesourcery.com>
11317
11318 PR tree-optimization/69599
11319 * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
11320 function.
11321 (find_func_aliases_for_builtin_call, find_func_clobbers)
11322 (ipa_pta_execute): Handle case that foo and foo._0 are not in same lto
11323 partition.
11324
11325 2016-02-09 Richard Biener <rguenther@suse.de>
11326
11327 PR tree-optimization/69715
11328 * tree-ssa.c (execute_update_addresses_taken): Mark non-decl
11329 LHS on calls as non-rewritable.
11330
11331 2016-02-09 Tom de Vries <tom@codesourcery.com>
11332
11333 PR lto/69707
11334 * lto-wrapper.c (append_diag_options): New function.
11335 (compile_offload_image): Call append_diag_options.
11336
11337 2016-02-08 Sandra Loosemore <sandra@codesourcery.com>
11338
11339 PR other/69722
11340 * doc/extend.texi (Flag Output Operands): Correct sectioning.
11341 Minor copy-edit to fix verb tenses.
11342
11343 2016-02-08 Jakub Jelinek <jakub@redhat.com>
11344
11345 PR tree-optimization/69209
11346 * ipa-split.c (split_function): If split part is not
11347 returning retval, retval has gimple type but is not
11348 gimple value, force it into a SSA_NAME first.
11349
11350 2016-02-08 Nicklas Bo Jensen <nbjensen@gmail.com>
11351
11352 * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
11353 outdated section.
11354
11355 2016-02-08 Jason Merrill <jason@redhat.com>
11356
11357 PR c++/69631
11358 * convert.c (convert_to_integer_1): Check dofold on truncation
11359 distribution.
11360 (convert_to_pointer_maybe_fold, convert_to_real_maybe_fold)
11361 (convert_to_integer_maybe_fold, convert_to_complex_maybe_fold):
11362 Rename from *_nofold.
11363 * convert.h (convert_to_pointer_nofold, convert_to_integer_nofold)
11364 (convert_to_real_nofold, convert_to_complex_nofold): New inlines.
11365
11366 2016-02-08 Bernd Schmidt <bschmidt@redhat.com>
11367
11368 PR target/60410
11369 * tree.c (build_common_tree_nodes): Remove short_double argument.
11370 All callers changed.
11371 * tree.h (build_common_tree_nodes): Adjust declaration.
11372 * doc/invoke.texi (-fshort-double): Remove documentation.
11373 * config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
11374 MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
11375 * lto-wrapper.c (merge_and_complain, append_compiler_options)
11376 (append_linker_options): Don't handle OPT_fshort_double.
11377
11378 PR rtl-optimization/68730
11379 * lra-remat.c (insn_to_cand_activation): New static variable.
11380 (lra_remat): Allocate and free it.
11381 (create_cand): New arg activation. Initialize a field in
11382 insn_to_cand_activation if it is nonnull.
11383 (create_cands): Pass the activation insn to create_cand when making
11384 a candidate involving an output reload. Reorganize code a little.
11385 (do_remat): Keep track of active status of candidates in a separate
11386 bitmap.
11387
11388 2016-02-08 Richard Biener <rguenther@suse.de>
11389
11390 PR tree-optimization/69719
11391 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
11392 Properly use absolute of the difference of the two offsets to
11393 compare or adjust the segment length.
11394
11395 2016-02-08 Richard Biener <rguenther@suse.de>
11396 Jeff Law <law@redhat.com>
11397
11398 PR target/68273
11399 * tree-ssanames.c (make_ssa_name_fn): Always use unqualified
11400 types for anonymous SSA names.
11401
11402 2016-02-08 Richard Biener <rguenther@suse.de>
11403
11404 PR rtl-optimization/69274
11405 * ira.c (ira_setup_alts): Do not change recog_data.operand order.
11406
11407 2016-02-08 Jeff Law <law@redhat.com>
11408
11409 PR tree-optimization/65917
11410 * tree-ssa-dom.c (record_temporary_equivalences): Record both
11411 equivalences from if (x == y) style conditionals.
11412 (loop_depth_of_name): Remove.
11413 (record_equality): Remove loop depth check.
11414 * tree-ssa-scopedtables.h (const_and_copies): Refine comments.
11415 (const_and_copies::record_const_or_copy_raw): New member function.
11416 * tree-ssa-scopedtables.c
11417 (const_and_copies::record_const_or_copy_raw): New, factored out of
11418 (const_and_copies::record_const_or_copy): Call new member function.
11419
11420 2016-02-05 Jeff Law <law@redhat.com>
11421
11422 PR tree-optimization/68541
11423 * gimple-ssa-split-paths.c: Include tree-cfg.h and params.h.
11424 (count_stmts_in_block): New function.
11425 (poor_ifcvt_candidate_code): Likewise.
11426 (is_feasible_trace): Add some heuristics to determine when path
11427 splitting is profitable.
11428 (find_block_to_duplicate_for_splitting_paths): Make sure the graph
11429 is a diamond with a single exit.
11430
11431 2016-02-05 Martin Sebor <msebor@redhat.com>
11432
11433 PR c++/69662
11434 * doc/invoke.texi: Update -Wplacement-new to take an optional
11435 argument.
11436
11437 2016-02-06 Richard Henderson <rth@redhat.com>
11438
11439 PR c/69643
11440 * tree.c (tree_nop_conversion_p): Do not strip casts into or
11441 out of non-standard address spaces.
11442
11443 2016-02-05 Jakub Jelinek <jakub@redhat.com>
11444
11445 PR rtl-optimization/69691
11446 * lra-eliminations.c (move_plus_up): Don't add the addend twice.
11447
11448 2016-02-05 Pat Haugen <pthaugen@us.ibm.com>
11449
11450 * config/rs6000/crypto.md (crypto_vpermxor_<mode>): Correct insn type.
11451 * config/rs6000/rs6000.md (mov<mode>_hardfloat): Likewise.
11452 (*ieee128_mfvsrd_64bit): Likewise.
11453 (*ieee128_mfvsrd_32bit): Likewise.
11454
11455 2016-02-05 Ilya Enkovich <enkovich.gnu@gmail.com>
11456
11457 PR target/69369
11458 Revert r232560:
11459 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
11460
11461 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
11462 instrumented_version.
11463
11464 2016-01-05 Jeremy Bennett <jeremy.bennett@embecosm.com>
11465
11466 * doc/invoke.texi (Optimize Options): In table of --param options
11467 rename second occurrence of tracer-min-branch-ratio to
11468 tracer-min-branch-probability, rename
11469 tracer-min-branch-ratio-feedback to
11470 tracer-min-branch-probability-feedback and clarify description,
11471 rename sched-spec-state-edge-prob-cutoff to
11472 sched-state-edge-prob-cutoff, rename selsched-max-insns-to-rename
11473 to selsched-insns-to-rename, rename lto-minpartition to
11474 lto-min-partition, delete reorder-blocks-duplicate and
11475 reorder-blocks-duplicate-feedback.
11476
11477 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
11478
11479 * config/s390/s390.c (s390_register_info_set_ranges): Remove
11480 superfluous loops.
11481
11482 2016-02-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
11483
11484 * doc/extend.texi: S/390: Correct some typos.
11485
11486 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
11487
11488 * config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
11489
11490 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
11491
11492 PR target/69625
11493 * config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines.
11494 (s390_register_info_gprtofpr): Use new macros above.
11495 (s390_register_info_stdarg_fpr): Adjust max_fpr to better match
11496 its name.
11497 (s390_register_info_stdarg_gpr): Adjust max_gpr to better match
11498 its name. Adjust restore and save gpr ranges.
11499 (s390_register_info_set_ranges): New function.
11500 (s390_register_info): Use new macros above. Call
11501 s390_register_info_set_ranges.
11502 (s390_optimize_register_info): Likewise.
11503 (s390_hard_regno_rename_ok): Use new macros.
11504 (s390_hard_regno_scratch_ok): Likewise.
11505 (s390_emit_epilogue): Likewise.
11506 (s390_can_use_return_insn): Likewise.
11507 (s390_optimize_prologue): Likewise.
11508 * config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants.
11509
11510 2016-02-05 Jakub Jelinek <jakub@redhat.com>
11511
11512 PR bootstrap/69677
11513 * config/i386/i386.c (convert_scalars_to_vector): Readd stack
11514 alignment fixes.
11515 (ix86_option_override_internal): Disable TARGET_STV even for
11516 -m{incoming,preferred}-stack-boundary=3.
11517
11518 2016-02-03 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
11519
11520 * config.gcc: Mark deprecated rtems targets as obsolete.
11521
11522 2016-02-04 Segher Boessenkool <segher@kernel.crashing.org>
11523
11524 PR rtl-optimization/64682
11525 PR rtl-optimization/69567
11526 * combine.c (distribute_notes) <REG_DEAD>: Place the death note
11527 before I2 only if the register is both used and set in I2.
11528
11529 2016-02-04 DJ Delorie <dj@redhat.com>
11530
11531 * config/msp430/msp430.c (msp430_start_function): Add function type.
11532
11533 2016-02-04 Jakub Jelinek <jakub@redhat.com>
11534
11535 PR fortran/69368
11536 * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
11537
11538 2016-02-04 Uros Bizjak <ubizjak@gmail.com>
11539
11540 PR rtl-optimization/69577
11541 Revert:
11542 2015-10-29 Richard Henderson <rth@redhat.com>
11543
11544 PR target/68124
11545 PR rtl-opt/67609
11546 * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
11547 sse check to the exact conditions of PR 67609.
11548
11549 2016-02-04 Michael Meissner <meissner@linux.vnet.ibm.com>
11550
11551 PR target/69667
11552 * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Use 'd' constraint
11553 instead of 'ws', and 'wh' instead of 'wm' since TFmode/IFmode are
11554 not allowed into the traditional Altivec registers.
11555 (movtd_64bit_nodm): Likewise.
11556 (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
11557
11558 2016-02-04 David Malcolm <dmalcolm@redhat.com>
11559
11560 * config/aarch64/cortex-a57-fma-steering.c
11561 (aarch64_register_fma_steering): Remove "static" from arguments
11562 to register_pass.
11563
11564 2016-02-04 Wilco Dijkstra <wdijkstr@arm.com>
11565
11566 PR target/69619
11567 * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
11568 twice when complex.
11569
11570 2016-02-04 Mike Frysinger <vapier@gentoo.org>
11571
11572 * doc/invoke.texi: Delete -mno-fma4.
11573
11574 2016-02-04 Richard Sandiford <richard.sandiford@arm.com>
11575
11576 PR rtl-optimization/69577
11577 * reginfo.c (record_subregs_of_mode): Add a partial_def parameter.
11578 (find_subregs_of_mode): Update accordingly. Iterate over partial
11579 definitions.
11580
11581 2016-02-04 Alan Lawrence <alan.lawrence@arm.com>
11582
11583 * config/arm/arm-protos.h (neon_reinterpret): Remove.
11584 * config/arm/arm.c (neon_reinterpret): Remove.
11585 * config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi,
11586 vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi,
11587 vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di,
11588 vreinterpretti): Remove.
11589 * config/arm/neon.md (neon_vreinterpretv8qi<mode>,
11590 neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
11591 neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>,
11592 neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>,
11593 neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>,
11594 neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove.
11595 * config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32,
11596 vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64,
11597 vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32,
11598 vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32,
11599 vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64,
11600 vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8,
11601 vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8,
11602 vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8,
11603 vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64,
11604 vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16,
11605 vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16,
11606 vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16,
11607 vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64,
11608 vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32,
11609 vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32,
11610 vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32,
11611 vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8,
11612 vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8,
11613 vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8,
11614 vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64,
11615 vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16,
11616 vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16,
11617 vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16,
11618 vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64,
11619 vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32,
11620 vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32,
11621 vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32,
11622 vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64,
11623 vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8,
11624 vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8,
11625 vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64,
11626 vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8,
11627 vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16,
11628 vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16,
11629 vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64,
11630 vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16,
11631 vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32,
11632 vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32,
11633 vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64,
11634 vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32,
11635 vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8,
11636 vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64,
11637 vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8,
11638 vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8,
11639 vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32,
11640 vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64,
11641 vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16,
11642 vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16,
11643 vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32,
11644 vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64,
11645 vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16,
11646 vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16,
11647 vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16,
11648 vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64,
11649 vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16,
11650 vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16,
11651 vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16,
11652 vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64,
11653 vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16,
11654 vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16,
11655 vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16,
11656 vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64,
11657 vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16,
11658 vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16,
11659 vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16,
11660 vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128,
11661 vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16,
11662 vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16,
11663 vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16,
11664 vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128,
11665 vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16,
11666 vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16,
11667 vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16,
11668 vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128,
11669 vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16,
11670 vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16,
11671 vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16,
11672 vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128,
11673 vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8,
11674 vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16,
11675 vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16,
11676 vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64,
11677 vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64,
11678 vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8,
11679 vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8,
11680 vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64,
11681 vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64,
11682 vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32,
11683 vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8,
11684 vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64,
11685 vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64,
11686 vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32,
11687 vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8,
11688 vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64,
11689 vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64,
11690 vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32,
11691 vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts.
11692
11693 2016-02-04 Martin Liska <mliska@suse.cz>
11694
11695 PR sanitizer/69276
11696 * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
11697 that are gimple_store_p.
11698 (maybe_instrument_call): Likewise.
11699
11700 2016-02-04 Bin Cheng <bin.cheng@arm.com>
11701
11702 * config/aarch64/aarch64.c (aarch64_legitimize_address): Force
11703 register scaling out of memory reference and comment why.
11704
11705 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11706
11707 PR target/65932
11708 PR target/67714
11709 * cse.c (cse_insn): Pass NULL to fold_rtx when initially
11710 folding the source of a SET.
11711
11712 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11713
11714 PR target/65932
11715 PR target/67714
11716 * config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
11717 the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.
11718
11719 2016-02-04 Jim Wilson <jim.wilson@linaro.org>
11720
11721 PR target/65932
11722 PR target/67714
11723 * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
11724 HImode.
11725
11726 2016-02-04 Christian Bruel <christian.bruel@st.com>
11727
11728 * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
11729 * config/arm/arm.c (arm_set_current_function): Likewise.
11730
11731 2016-02-04 Jakub Jelinek <jakub@redhat.com>
11732 Ilya Enkovich <enkovich.gnu@gmail.com>
11733 H.J. Lu <hongjiu.lu@intel.com>
11734
11735 PR target/69454
11736 * config/i386/i386.c (convert_scalars_to_vector): Remove
11737 stack alignment fixes.
11738 (ix86_option_override_internal): Disable TARGET_STV if stack
11739 might not be aligned enough.
11740 (ix86_minimum_alignment): Assert that TARGET_STV is false.
11741
11742 2016-02-04 Victoria Stepanyan <victoria.stepanyan@amd.com>
11743
11744 * config/i386/x86-tune.def: Disable default prefetching
11745 for -march=znver1.
11746
11747 2016-02-03 Michael Meissner <meissner@linux.vnet.ibm.com>
11748 Vladimir Makarov <vmakarov@redhat.com>
11749
11750 PR target/69461
11751 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
11752 in validating fused toc addresses.
11753
11754 2016-02-03 Jakub Jelinek <jakub@redhat.com>
11755
11756 PR c/69627
11757 * diagnostic-show-locus.c (layout::get_state_at_point): Don't read
11758 range->m_caret fields if range->m_show_caret_p is false.
11759
11760 PR target/69644
11761 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
11762 Force oldval into register if it does not satisfy reg_or_short_operand
11763 predicate. Fix up formatting.
11764
11765 2016-02-03 Vladimir Makarov <vmakarov@redhat.com>
11766 Alexandre Oliva <aoliva@redhat.com>
11767
11768 PR target/69461
11769 * lra-constraints.c (simplify_operand_subreg): Check additionally
11770 address validity after potential reloading.
11771 (process_address_1): Check insns validity. In case of failure do
11772 nothing.
11773
11774 2016-02-03 Kirill Yukhin <kirill.yukhin@intel.com>
11775
11776 PR target/69118
11777 * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
11778 Fix target.
11779
11780 2016-02-02 Jakub Jelinek <jakub@redhat.com>
11781
11782 * wide-int.cc (canonize_uhwi): New function.
11783 (wi::divmod_internal): Use it.
11784
11785 2016-02-02 James Norris <jnorris@codesourcery.com
11786
11787 * gimplify.c (omp_notice_variable): Add usage check.
11788
11789 2016-02-02 Alexander Monakov <amonakov@ispras.ru>
11790
11791 * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
11792 like LE, GE, LT, GT when emitting relational operator.
11793
11794 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
11795
11796 * ira-costs.c (find_costs_and_classes): Add extra argument.
11797 * target.def (ira_change_pseudo_allocno_class): Add parameter.
11798 * targhooks.h (ira_change_pseudo_allocno_class): Likewise.
11799 * targhooks.c (ira_change_pseudo_allocno_class): Likewise.
11800 * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
11801 Add best_class parameter, and return it if not ALL_REGS.
11802 * config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
11803 Add parameter.
11804 * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
11805 Update target hook.
11806
11807 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
11808
11809 * config/aarch64/aarch64.c
11810 (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
11811 (aarch64_ira_change_pseudo_allocno_class): New function.
11812
11813 2016-02-02 Uros Bizjak <ubizjak@gmail.com>
11814
11815 PR target/67032
11816 * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
11817
11818 2016-02-02 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
11819
11820 * config/avr/avr.c (avr_option_override): Set
11821 PARAM_ALLOW_STORE_DATA_RACES to 1.
11822
11823 2016-02-02 Richard Biener <rguenther@suse.de>
11824
11825 PR tree-optimization/69595
11826 * match.pd: Add range test simplifications to true/false.
11827
11828 2016-02-02 Thomas Schwinge <thomas@codesourcery.com>
11829
11830 * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
11831 * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
11832 instead.
11833
11834 2016-02-02 Richard Biener <rguenther@suse.de>
11835
11836 PR tree-optimization/69606
11837 * tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
11838 info on the result before moving a stmt.
11839
11840 2016-02-02 Yuri Rumyantsev <ysrumyan@gmail.com>
11841
11842 PR middle-end/68542
11843 * config/i386/i386.c (ix86_expand_branch): Add support for conditional
11844 branch with vector comparison.
11845 * config/i386/sse.md (VI48_AVX): New mode iterator.
11846 (define_expand "cbranch<mode>4): Add support for conditional branch
11847 with vector comparison.
11848 * tree-vect-loop.c (optimize_mask_stores): New function.
11849 * tree-vect-stmts.c (vectorizable_mask_load_store): Initialize
11850 has_mask_store field of vect_info.
11851 * tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for
11852 vectorized loops having masked stores after vec_info destroy.
11853 * tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and
11854 correspondent macros.
11855 (optimize_mask_stores): Add prototype.
11856
11857 2016-02-02 Alan Modra <amodra@gmail.com>
11858
11859 PR target/69548
11860 * config/rs6000/predicates.md (quad_int_reg_operand): Don't
11861 allow subregs.
11862
11863 2016-02-02 Alan Modra <amodra@gmail.com>
11864
11865 PR target/68662
11866 * config/rs6000/rs6000.c (need_toc_init): New var, set it
11867 whenever toc_label_name used.
11868 (rs6000_file_start): Don't set up toc section here,
11869 (rs6000_output_function_epilogue): do so here instead,
11870 (rs6000_xcoff_file_start): and here.
11871 * config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init.
11872 (load_toc_aix_di): Likewise.
11873
11874 2016-02-01 Jakub Jelinek <jakub@redhat.com>
11875
11876 PR rtl-optimization/69592
11877 * rtlanal.c (nonzero_bits_binary_arith_p): New inline function.
11878 (cached_nonzero_bits): Use it instead of ARITHMETIC_P.
11879 (num_sign_bit_copies_binary_arith_p): New inline function.
11880 (cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P.
11881
11882 2016-02-01 Jeff Law <law@redhat.com>
11883
11884 PR tree-optimization/69580
11885 * params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param.
11886 * tree-ssa-threadbackward.c
11887 (fsm_find_control_statement_thread_paths): Do not try to walk
11888 through large PHI nodes.
11889
11890 2016-02-01 Jakub Jelinek <jakub@redhat.com>
11891
11892 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
11893 when count is incremented above limit, don't analyze further
11894 insns afterwards.
11895
11896 * omp-low.c (oacc_parse_default_dims): Avoid
11897 -Wsign-compare warning, make sure value fits into int
11898 rather than just unsigned int.
11899
11900 2016-02-01 Bin Cheng <bin.cheng@arm.com>
11901
11902 PR tree-optimization/67921
11903 * fold-const.c (split_tree): New parameters. Convert pointer
11904 type variable part to proper type before negating.
11905 (fold_binary_loc): Pass new arguments to split_tree.
11906
11907 2016-02-01 Nathan Sidwell <nathan@codesourcery.com>
11908
11909 * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New.
11910 (nvptx_goacc_validate_dims): Extend to handle global defaults.
11911 * target.def (OACC_VALIDATE_DIMS): Extend documentation.
11912 * doc/tm.texti: Rebuilt.
11913 * doc/invoke.texi (fopenacc-dim): Document.
11914 * lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case.
11915 (append_compiler_options): Likewise.
11916 * omp-low.c (oacc_default_dims, oacc_min_dims): New.
11917 (oacc_parse_default_dims): New.
11918 (oacc_validate_dims): Add USED arg. Select non-unity default when
11919 possible.
11920 (oacc_loop_fixed_partitions): Return mask of used partitions.
11921 (oacc_loop_auto_partitions): Emit dump info.
11922 (oacc_loop_partition): Return mask of used partitions.
11923 (execute_oacc_device_lower): Parse default dimension arg. Adjust
11924 loop partitioning and validation calls.
11925
11926 2016-02-01 Richard Biener <rguenther@suse.de>
11927
11928 PR middle-end/69556
11929 * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
11930
11931 2016-02-01 Richard Biener <rguenther@suse.de>
11932
11933 PR tree-optimization/69574
11934 * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
11935 of asserting return chrec_dont_know.
11936
11937 2016-02-01 Martin Liska <mliska@suse.cz>
11938
11939 * mem-stats-traits.h: Add copyright header.
11940 * mem-stats.h: Likewise.
11941
11942 2016-02-01 Richard Biener <rguenther@suse.de>
11943
11944 PR tree-optimization/69579
11945 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
11946 Do not propagate through abnormal PHI results.
11947
11948 2016-02-01 Eric Botcazou <ebotcazou@adacore.com>
11949
11950 * postreload.c (reload_cse_simplify): Remove dead code.
11951
11952 2016-02-01 Jakub Jelinek <jakub@redhat.com>
11953
11954 PR rtl-optimization/69570
11955 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only
11956 if there is more than one set, not if there is a single set.
11957
11958 2016-02-01 Richard Henderson <rth@redhat.com>
11959
11960 PR rtl-opt/69535
11961 * combine.c (make_compound_operation): When looking through a
11962 subreg, make sure to re-extend to the width of the outer mode.
11963
11964 2016-01-30 Jakub Jelinek <jakub@redhat.com>
11965
11966 PR tree-optimization/69546
11967 * wide-int.cc (wi::divmod_internal): For unsigned division
11968 where both operands fit into uhwi, if o1 is 1 and o0 has
11969 msb set, if divident_prec is larger than bits per hwi,
11970 clear another quotient word and return 2 instead of 1.
11971 Similarly for remainder with msb in HWI set, if dividend_prec
11972 is larger than bits per hwi.
11973
11974 2016-01-29 Martin Jambor <mjambor@suse.cz>
11975
11976 * hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK.
11977 Use short lowercase names.
11978 (get_memory_order): Mask with MEMMODEL_BASE_MASK. Support
11979 MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with
11980 acq_rel one. Protect warning agains segfaults if
11981 get_memory_order_name returns NULL.
11982 (gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST
11983 with release semantics. Do not warn if get_memory_order already did.
11984 (gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire
11985 semantics. Fix check for relaxed or acquire semantics. Do not warn
11986 if get_memory_order already did.
11987
11988 2016-01-29 Sebastian Pop <s.pop@samsung.com>
11989
11990 * doc/install.texi: Document that isl-0.16 is supported.
11991
11992 2016-01-29 Vladimir Makarov <vmakarov@redhat.com>
11993
11994 PR target/69299
11995 * config/i386/constraints.md (Bm): Describe as special memory
11996 constraint.
11997 * doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it.
11998 * genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
11999 * genpreds.c (struct constraint_data): Add is_special_memory.
12000 (have_special_memory_constraints, special_memory_start): New
12001 static vars.
12002 (special_memory_end): Ditto.
12003 (add_constraint): Add new arg is_special_memory. Add code to
12004 process its true value. Update have_special_memory_constraints.
12005 (process_define_constraint): Pass the new arg.
12006 (process_define_register_constraint): Ditto.
12007 (choose_enum_order): Process special memory.
12008 (write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and
12009 function insn_extra_special_memory_constraint.
12010 (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
12011 * gensupport.c (process_rtx): Process
12012 DEFINE_SPECIAL_MEMORY_CONSTRAINT.
12013 * ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY.
12014 * ira-lives.c (single_reg_class): Use
12015 insn_extra_special_memory_constraint.
12016 * ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY.
12017 * lra-constraints.c (process_alt_operands): Ditto.
12018 (curr_insn_transform): Use insn_extra_special_memory_constraint.
12019 * recog.c (asm_operand_ok, preprocess_constraints): Process
12020 CT_SPECIAL_MEMORY.
12021 * reload.c (find_reloads): Ditto.
12022 * rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New.
12023 * stmt.c (parse_input_constraint): Use
12024 insn_extra_special_memory_constraint.
12025
12026 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
12027
12028 PR target/69530
12029 * lra-splill.c (lra_final_code_change): Revert r229087 by
12030 removing all sub-registers.
12031
12032 2016-01-29 Steve Ellcey <sellcey@imgtec.com>
12033
12034 PR target/65604
12035 * config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
12036
12037 2016-01-29 Jakub Jelinek <jakub@redhat.com>
12038
12039 PR target/69551
12040 * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
12041 SSE1, copy target into the temporary reg first before recursing
12042 on it.
12043
12044 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
12045
12046 * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
12047 with vm.
12048
12049 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
12050
12051 * ginclude/stdarg.h: Test __cplusplus instead of
12052 __GXX_EXPERIMENTAL_CXX0X__.
12053
12054 2016-01-29 Richard Biener <rguenther@suse.de>
12055
12056 PR tree-optimization/69547
12057 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
12058 Do not mark clobbers necessary.
12059 (mark_all_reaching_defs_necessary_1): Likewise.
12060
12061 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
12062
12063 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
12064 declaration name with %qs and print it in both error messages.
12065 Also fix indentation.
12066
12067 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
12068
12069 PR other/69006
12070 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
12071 trailing blank line from error message.
12072
12073 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
12074
12075 PR c++/69462
12076 * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
12077 for C++-11.
12078
12079 2016-01-29 Richard Biener <rguenther@suse.de>
12080
12081 PR middle-end/69537
12082 * match.pd: Allow all integral types when simplifying a
12083 widening or sign-changing conversion.
12084
12085 2016-01-28 Sebastian Pop <s.pop@samsung.com>
12086
12087 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
12088 back to setting codegen_error to fail codegen.
12089
12090 2016-01-28 Uros Bizjak <ubizjak@gmail.com>
12091
12092 PR target/69459
12093 * config/i386/constraints.md (C): Only accept constant zero operand.
12094 (BC): New constraint.
12095 * config/i386/sse.md (*mov<mode>_internal): Use BC constraint
12096 instead of C constraint.
12097 * doc/md.texi (Machine Constraints): Update description
12098 of C constraint.
12099
12100 2016-01-28 Steve Ellcey <sellcey@imgtec.com>
12101
12102 PR target/68400
12103 * config/mips/mips.c (and_operands_ok): Add MIPS16 check.
12104
12105 2016-01-28 Jakub Jelinek <jakub@redhat.com>
12106
12107 PR middle-end/69542
12108 * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
12109 non-debug insns.
12110
12111 2016-01-28 Pat Haugen <pthaugen@us.ibm.com>
12112
12113 * config/rs6000/rs6000.c (output_cbranch): Don't statically predict
12114 branches if using guessed profile.
12115
12116 2016-01-28 H.J. Lu <hongjiu.lu@intel.com>
12117
12118 * graphite-optimize-isl.c (optimize_isl): Fix dump.
12119
12120 2016-01-28 Richard Henderson <rth@redhat.com>
12121
12122 PR target/69305
12123 * config/aarch64/aarch64-modes.def (CC_Cmode): New
12124 * config/aarch64/aarch64-protos.h: Update.
12125 * config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
12126 (aarch64_select_cc_mode): Add check for use of CC_Cmode.
12127 (aarch64_get_condition_code_1): Handle CC_Cmode.
12128 * config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
12129 (*add<mode>3_compareC_cconly_imm): New.
12130 (*add<mode>3_compareC_cconly): New.
12131 (*add<mode>3_compareC_imm): New.
12132 (add<mode>3_compareC): New.
12133 (add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
12134 to be first. Use aarch64_carry_operation.
12135 (*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
12136 (*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
12137 (*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
12138 (subti3): Use subdi3_compare1.
12139 (*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
12140 (sub<mode>3_compare1): New.
12141 (*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
12142 (*sub<mode>3_carryin): Use aarch64_borrow_operation.
12143 (*subsi3_carryin_uxtw): Likewise.
12144 (*ngc<mode>, *ngcsi_uxtw): Likewise.
12145 (*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
12146 * config/aarch64/iterators.md (DWI): New.
12147 * config/aarch64/predicates.md (aarch64_carry_operation): New.
12148 (aarch64_borrow_operation): New.
12149
12150 2016-01-28 Abderrazek Zaafrani <a.zaafrani@samsung.com>
12151
12152 * graphite-optimize-isl.c (optimize_isl): Print a different debug
12153 message when isl does not return a valid schedule.
12154
12155 2016-01-28 Sebastian Pop <s.pop@samsung.com>
12156
12157 * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
12158 Remove comments from class declarations: they are already in the code
12159 close by the defs.
12160
12161 2016-01-28 Sebastian Pop <s.pop@samsung.com>
12162
12163 * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
12164 codegen_error_p.
12165 (ternary_op_to_tree): Same.
12166 (unary_op_to_tree): Same.
12167 (nary_op_to_tree): Same.
12168 (gcc_expression_from_isl_expr_op): Same.
12169 (gcc_expression_from_isl_expression): Same.
12170 (graphite_create_new_loop): Same.
12171 (graphite_create_new_loop_guard): Same.
12172 (build_iv_mapping): Same.
12173 (graphite_create_new_guard): Same.
12174 (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same.
12175 (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same.
12176
12177 2016-01-28 Sebastian Pop <s.pop@samsung.com>
12178
12179 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
12180 instead of setting codegen_error to fail codegen.
12181
12182 2016-01-28 Jason Merrill <jason@redhat.com>
12183
12184 * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
12185
12186 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
12187
12188 * config/aarch64/aarch64.c (aarch64_if_then_else_costs):
12189 Remove CONST_INT_P check in CCMP cost calculation.
12190
12191 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
12192
12193 * config/aarch64/aarch64.c (generic_vector_cost):
12194 Set vec_permute_cost.
12195 (cortexa57_vector_cost): Likewise.
12196 (exynosm1_vector_cost): Likewise.
12197 (xgene1_vector_cost): Likewise.
12198 (aarch64_builtin_vectorization_cost): Use vec_permute_cost.
12199 * config/aarch64/aarch64-protos.h (cpu_vector_cost):
12200 Add vec_permute_cost entry.
12201
12202 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
12203
12204 * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
12205 immediate as %1.
12206 (add<mode>3_compare0): Likewise.
12207 (addsi3_compare0_uxtw): Likewise.
12208 (add<mode>3nr_compare0): Likewise.
12209 (compare_neg<mode>): Likewise.
12210 (<optab><mode>3): Likewise.
12211
12212 2016-01-28 Ilya Enkovich <enkovich.gnu@gmail.com>
12213
12214 * tree-vect-stmts.c (vectorizable_comparison): Add
12215 NULL check for vectype.
12216
12217 2016-01-28 Richard Biener <rguenther@suse.de>
12218
12219 PR tree-optimization/69466
12220 * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
12221 Account for PHIs we couldn't duplicate.
12222
12223 2016-01-28 Martin Liska <mliska@suse.cz>
12224
12225 PR pch/68758
12226 * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
12227 instead of ENABLE_VALGRIND_CHECKING.
12228
12229 2016-01-27 Richard Henderson <rth@redhat.com>
12230
12231 PR rtl-opt/69447
12232 * lra-remat.c (subreg_regs): New.
12233 (dump_candidates_and_remat_bb_data): Dump it.
12234 (operand_to_remat): Reject if operand in subreg_regs.
12235 (set_bb_regs): Collect subreg_regs.
12236 (lra_remat): Init and free subreg_regs. Compute
12237 calculate_local_reg_remat_bb_data before create_cands.
12238
12239 2016-01-27 H.J. Lu <hongjiu.lu@intel.com>
12240
12241 PR target/68986
12242 * config/i386/i386.c (ix86_update_stack_boundary): Don't
12243 change stack_alignment_needed for __tls_get_addr call.
12244
12245 2016-01-27 Segher Boessenkool <segher@kernel.crashing.org>
12246
12247 * config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
12248
12249 2016-01-27 Jeff Law <law@redhat.com>
12250
12251 PR tree-optimization/68398
12252 PR tree-optimization/69196
12253 * params.def (PARAM_FSM_SCALE_PATH_STMTS): New parameter.
12254 (PARAM_FSM_SCALE_PATH_BLOCKS): Likewise.
12255 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
12256 Only count PHIs in the last block in the path. The others will
12257 const/copy propagate away. Add heuristic to allow more irreducible
12258 subloops to be created when it is likely profitable to do so.
12259
12260 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
12261 Fix typo in comment. Use gsi_after_labels and remove the GIMPLE_LABEL
12262 check from within the loop. Use gsi_next_nondebug rather than gsi_next.
12263
12264 2016-01-27 Jakub Jelinek <jakub@redhat.com>
12265
12266 PR lto/69254
12267 * sanitizer.def: Add BEGIN_SANITIZER_BUILTINS and
12268 END_SANITIZER_BUILTINS markers using DEF_BUILTIN_STUB.
12269 * asan.c (DEF_BUILTIN_STUB): Temporarily define.
12270 * tree-streamer-in.c: Include asan.h.
12271 (streamer_get_builtin_tree): For builtins in sanitizer
12272 range call initialize_sanitizer_builtins and retry.
12273
12274 2016-01-27 Ian Lance Taylor <iant@google.com>
12275
12276 * common.opt (fkeep-gc-roots-live): New undocumented option.
12277 * tree-ssa-loop-ivopts.c (add_candidate_1): If
12278 -fkeep-gc-roots-live, skip pointers.
12279 (add_iv_candidate_for_biv): Handle add_candidate_1 returning
12280 NULL.
12281
12282 2016-01-27 Uros Bizjak <ubizjak@gmail.com>
12283
12284 PR target/69512
12285 * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
12286 (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.
12287
12288 2016-01-27 Thomas Klausner <wiz@NetBSD.org>
12289
12290 PR target/68380
12291 * configure.ac: NetBSD provides SSP in its C library.
12292 * configure: Updated.
12293
12294 2016-01-27 Richard Biener <rguenther@suse.de>
12295
12296 PR tree-optimization/69166
12297 * tree-vect-loop.c (vect_is_simple_reduction): Always check
12298 reduction code for commutativity / associativity.
12299
12300 2016-01-27 Martin Jambor <mjambor@suse.cz>
12301
12302 PR tree-optimization/69355
12303 * tree-sra.c (analyze_access_subtree): Correct hole detection when
12304 total_scalarization fails.
12305
12306 2016-01-27 David Edelsohn <dje.gcc@gmail.com>
12307
12308 * config/rs6000/driver-rs6000.c (detect_processor_aix): Add
12309 power9.
12310
12311 2016-01-27 Christian Bruel <christian.bruel@st.com>
12312
12313 PR target/69245
12314 * config/arm/arm-c.c (arm_pragma_target_parse): Add comments.
12315 Move arm_reset_previous_fndecl and set_target_option_current_node in
12316 the conditional part. Call save_restore_target_globals.
12317 * config/arm/arm.c (arm_set_current_function):
12318 Refactor to better support #pragma target and attribute mix.
12319 Call save_restore_target_globals.
12320 * config/arm/arm-protos.h (save_restore_target_globals): New function.
12321
12322 2016-01-27 Martin Liska <mliska@suse.cz>
12323
12324 * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
12325 reference for an HSA kernel and its host function.
12326
12327 2016-01-27 Jakub Jelinek <jakub@redhat.com>
12328
12329 PR tree-optimization/69399
12330 * wide-int.h (wi::lrshift): For larger precisions, only
12331 use fast path if shift is known to be < HOST_BITS_PER_WIDE_INT.
12332
12333 2016-01-27 Claudiu Zissulescu <claziss@synopsys.com>
12334
12335 * config/arc/predicates.md (proper_comparison_operator): Reject
12336 constant-constant comparison.
12337
12338 2016-01-26 Tom de Vries <tom@codesourcery.com>
12339
12340 PR tree-optimization/69110
12341 * tree-data-ref.c (initialize_data_dependence_relation): Handle
12342 DR_NUM_DIMENSIONS == 0.
12343
12344 2016-01-26 Abderrazek Zaafrani <a.zaafrani@samsung.com>
12345 Sebastian Pop <s.pop@samsung.com>
12346
12347 * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Handle
12348 isl_ast_op_cond and isl_ast_op_select.
12349 (gcc_expression_from_isl_expr_op): Same.
12350
12351 2016-01-26 Jason Merrill <jason@redhat.com>
12352
12353 PR c++/68782
12354 * tree.c (recompute_constructor_flags): Split out from
12355 build_constructor.
12356 (verify_constructor_flags): New.
12357 * tree.h: Declare them.
12358
12359 2016-01-26 Iain Buclaw <ibuclaw@gdcproject.org>
12360
12361 PR rtl-optimization/69217
12362 * var-tracking.c (tracked_record_parameter_p): Don't segfault if there
12363 are no TYPE_FIELDS set for the record type.
12364
12365 2016-01-26 Jakub Jelinek <jakub@redhat.com>
12366
12367 PR target/68662
12368 * config/rs6000/rs6000.c (rs6000_option_override_internal): Initialize
12369 toc_label_name unconditionally.
12370 (rs6000_emit_load_toc_table): Call ggc_strdup on toc_label_name for
12371 SYMBOL_REF string. Use toc_label_name instead of constructing
12372 LCTOC1.
12373 (rs6000_elf_declare_function_name): Use toc_label_name instead of
12374 constructing LCTOC1.
12375
12376 2016-01-26 Martin Sebor <msebor@redhat.com>
12377
12378 PR other/69477
12379 * doc/extend.texi (Common Type Attributes): Move text that talks about
12380 attribute packed from attribute aligned to the section discussing
12381 the former attribute for clarity.
12382
12383 2016-01-26 Richard Henderson <rth@redhat.com>
12384
12385 PR middle-end/60908
12386 * trans-mem.c (tm_region_init): Mark entry block as visited.
12387
12388 2016-01-26 David Malcolm <dmalcolm@redhat.com>
12389
12390 PR other/69006
12391 * diagnostic-show-locus.c (layout::print_source_line): Replace
12392 call to pp_newline with call to layout::print_newline.
12393 (layout::print_annotation_line): Likewise.
12394 (layout::move_to_column): Likewise.
12395 (layout::print_any_fixits): After printing any fixits, print a
12396 trailing newline, if necessary.
12397 (layout::print_newline): New method, resetting any colorization
12398 before a newline.
12399 (diagnostic_show_locus): Move the pp_newline to before the
12400 early bailout. Remove dummy block enclosing the layout instance.
12401 * diagnostic.c (default_diagnostic_finalizer): Replace invocation
12402 of pp_newline_and_flush with pp_flush.
12403 (diagnostic_append_note): Delete use of pp_newline.
12404 (diagnostic_append_note_at_rich_loc): Delete.
12405 * diagnostic.h (diagnostic_append_note_at_rich_loc): Delete.
12406 * pretty-print.h (output_buffer_append_r): Reset buff->line_length
12407 when newline characters are added to the buffer.
12408
12409 2016-01-26 Michael Matz <matz@suse.de>
12410
12411 * configure.ac (ac_cv_std_swap_in_utility): New test.
12412 * system.h (<algorithm>): Check HAVE_SWAP_IN_UTILITY as well.
12413 * configure: Regenerate.
12414 * config.in: Regenerate.
12415
12416 2016-01-26 Claudiu Zissulescu <claziss@synopsys.com>
12417
12418 * config/arc/arc.md (cstoresi4): Force operand into register.
12419 (arcset<code>): Fix predicate.
12420 (arcsetltu): Likewise.
12421 (arcsetgeu): Likewise.
12422 (arcsethi): Likewise.
12423 (arcsetls): Likewise.
12424
12425 2016-01-26 Jakub Jelinek <jakub@redhat.com>
12426
12427 PR tree-optimization/69483
12428 * gimple-fold.c (canonicalize_constructor_val): Return NULL
12429 if base has error_mark_node type.
12430
12431 2016-01-26 Christophe Lyon <christophe.lyon@linaro.org>
12432
12433 PR target/68620
12434 * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
12435 * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
12436 New helper macros.
12437 (vget_lane_f16): Handle big-endian.
12438 (vgetq_lane_f16): Likewise.
12439 (vset_lane_f16): Likewise.
12440 (vsetq_lane_f16): Likewise.
12441 * config/arm/iterators.md (VQXMOV): Add V8HF.
12442 (VDQ): Add V4HF and V8HF.
12443 (V_reg): Handle V4HF and V8HF.
12444 (Is_float_mode): Likewise.
12445 * config/arm/neon.md (movv4hf, movv8hf, neon_vdup_nv4hf,
12446 neon_vdup_nv8hf): New patterns.
12447 (vec_set<mode>_internal, vec_extract<mode>, neon_vld1_dup<mode>):
12448 Use VD_LANE iterator.
12449 (neon_vld1_dup<mode>): Use VQ2 iterator.
12450
12451 2016-01-26 Nathan Sidwell <nathan@acm.org>
12452
12453 * omp-low.h (oacc_fn_attrib_kernels_p): Declare.
12454 (set_oacc_fn_attrib): Add IS_KERNEL arg.
12455 * omp-low.c (set_oacc_fn_attrib): Add IS_KERNEL arg.
12456 (oacc_fn_attrib_kernels_p, oacc_fn_attrib_level): New.
12457 (expand_omp_target): Pass is_kernel to set_oacc_fn_attrib.
12458 (oacc_validate_dims): Add LEVEL arg, don't return level.
12459 (new_oacc_loop_routine): Use oacc_fn_attrib_level, not
12460 oacc_validate_dims.
12461 (execute_oacc_device_lower): Adjust, add more dump output.
12462 * tree-ssa-loop.c (gate_oacc_kernels): Use
12463 oacc_fn_attrib_kernels_p.
12464 * tree-parloops.c (create_parallel_loop): Adjust
12465 set_oacc_fn_attrib call.
12466
12467 2016-01-26 Jakub Jelinek <jakub@redhat.com>
12468
12469 PR lto/69254
12470 * lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
12471 (append_compiler_options): Handle -fcilkplus.
12472 (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.
12473
12474 2016-01-26 Nick Clifton <nickc@redhat.com>
12475
12476 PR target/66655
12477 * config/i386/winnt.c (i386_pe_binds_local_p): If a function has
12478 been marked as DECL_ONE_ONLY but we do not the means to make it
12479 so, then do not allow it to bind locally.
12480
12481 2016-01-26 Jakub Jelinek <jakub@redhat.com>
12482
12483 PR lto/69254
12484 * opts.h (parse_sanitizer_options): New prototype.
12485 * opts.c (sanitizer_opts): New array.
12486 (parse_sanitizer_options): New function.
12487 (common_handle_option): Use parse_sanitizer_options.
12488
12489 2016-01-26 H.J. Lu <hongjiu.lu@intel.com>
12490
12491 PR target/68986
12492 * config/i386/i386.c (ix86_compute_frame_layout): Move stack
12493 alignment adjustment to ...
12494 (ix86_update_stack_boundary): Here. Don't over-align stack for
12495 __tls_get_addr.
12496 (ix86_finalize_stack_realign_flags): Use stack_alignment_needed
12497 if __tls_get_addr is called.
12498
12499 2016-01-26 Christian Bruel <christian.bruel@st.com>
12500
12501 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.
12502
12503 2016-01-26 Eric Botcazou <ebotcazou@adacore.com>
12504
12505 * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.
12506
12507 2016-01-26 Richard Biener <rguenther@suse.de>
12508
12509 PR middle-end/69467
12510 * match.pd: Guard X * CST CMP 0 pattern with single_use.
12511
12512 2016-01-26 Richard Biener <rguenther@suse.de>
12513
12514 PR tree-optimization/69452
12515 * tree-ssa-loop-im.c (move_computations_dom_walker): Remove.
12516 (move_computations_dom_walker::before_dom_children): Rename
12517 to ...
12518 (move_computations_worker): This.
12519 (move_computations): Perform an RPO rather than a DOM walk.
12520
12521 2016-01-26 Jakub Jelinek <jakub@redhat.com>
12522
12523 PR target/69442
12524 * combine.c (combine_instructions): For REG_EQUAL note with
12525 SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST
12526 to the underlying register.
12527 * doc/rtl.texi (REG_EQUAL): Document the behavior of
12528 REG_EQUAL/REG_EQUIV notes if SET_DEST is ZERO_EXTRACT.
12529
12530 2016-01-26 Roger Ferrer Ibáñez <rofirrim@gmail.com>
12531
12532 PR target/67896
12533 * config/aarch64/aarch64-builtins.c
12534 (aarch64_init_simd_builtin_types): Do not set structural
12535 equality to __Poly{8,16,64,128}_t types.
12536
12537 2016-01-26 Richard Sandiford <richard.sandiford@arm.com>
12538
12539 PR tree-optimization/69400
12540 * wide-int.cc (wi_pack): Take the precision as argument and
12541 perform canonicalization here rather than in the callers.
12542 Use the main loop to handle all full-width HWIs. Add a
12543 zero HWI if in_len isn't a full result.
12544 (wi::divmod_internal): Update accordingly.
12545 (wi::mul_internal): Likewise. Simplify.
12546
12547 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
12548 Sebastian Pop <s.pop@samsung.com>
12549
12550 * graphite-poly.c (apply_poly_transforms): Simplify.
12551 (print_isl_set): Use more readable format: ISL_YAML_STYLE_BLOCK.
12552 (print_isl_map): Same.
12553 (print_isl_union_map): Same.
12554 (print_isl_schedule): New.
12555 (debug_isl_schedule): New.
12556 * graphite-dependences.c (scop_get_reads): Do not call
12557 isl_union_map_add_map that is undocumented isl functionality.
12558 (scop_get_must_writes): Same.
12559 (scop_get_may_writes): Same.
12560 (scop_get_original_schedule): Remove.
12561 (scop_get_dependences): Do not call isl_union_map_compute_flow that
12562 is deprecated in isl 0.15. Instead, use isl_union_access_* interface.
12563 (compute_deps): Remove.
12564 * graphite-isl-ast-to-gimple.c (print_schedule_ast): New.
12565 (debug_schedule_ast): New.
12566 (translate_isl_ast_to_gimple::scop_to_isl_ast): Call
12567 set_separate_option.
12568 (graphite_regenerate_ast_isl): Add dump.
12569 (translate_isl_ast_to_gimple::scop_to_isl_ast): Generate code
12570 from scop->transformed_schedule.
12571 (graphite_regenerate_ast_isl): Add more dump.
12572 * graphite-optimize-isl.c (optimize_isl): Set
12573 scop->transformed_schedule. Check whether schedules are equal.
12574 (apply_poly_transforms): Move here.
12575 * graphite-poly.c (apply_poly_transforms): ... from here.
12576 (free_poly_bb): Static.
12577 (free_scop): Static.
12578 (pbb_number_of_iterations_at_time): Remove.
12579 (print_isl_ast): New.
12580 (debug_isl_ast): New.
12581 (debug_scop_pbb): New.
12582 * graphite-scop-detection.c (print_edge): Move.
12583 (print_sese): Move.
12584 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
12585 (build_scop_scattering): Remove.
12586 (create_pw_aff_from_tree): Assert instead of bailing out.
12587 (add_condition_to_pbb): Remove unused code, do not fail.
12588 (add_conditions_to_domain): Same.
12589 (add_conditions_to_constraints): Remove.
12590 (build_scop_context): New.
12591 (add_iter_domain_dimension): New.
12592 (build_iteration_domains): Initialize pbb->iterators.
12593 Call add_conditions_to_domain.
12594 (nested_in): New.
12595 (loop_at): New.
12596 (index_outermost_in_loop): New.
12597 (index_pbb_in_loop): New.
12598 (outermost_pbb_in): New.
12599 (add_in_sequence): New.
12600 (add_outer_projection): New.
12601 (outer_projection_mupa): New.
12602 (add_loop_schedule): New.
12603 (build_schedule_pbb): New.
12604 (build_schedule_loop): New.
12605 (embed_in_surrounding_loops): New.
12606 (build_schedule_loop_nest): New.
12607 (build_original_schedule): New.
12608 (build_poly_scop): Call build_original_schedule.
12609 * graphite.h: Declare print_isl_schedule and debug_isl_schedule.
12610 (free_poly_dr): Remove.
12611 (struct poly_bb): Add iterators. Remove schedule, transformed, saved.
12612 (free_poly_bb): Remove.
12613 (debug_loop_vec): Remove.
12614 (print_isl_ast): Declare.
12615 (debug_isl_ast): Declare.
12616 (scop_do_interchange): Remove.
12617 (scop_do_strip_mine): Remove.
12618 (scop_do_block): Remove.
12619 (flatten_all_loops): Remove.
12620 (optimize_isl): Remove.
12621 (pbb_number_of_iterations_at_time): Remove.
12622 (debug_scop_pbb): Declare.
12623 (print_schedule_ast): Declare.
12624 (debug_schedule_ast): Declare.
12625 (struct scop): Remove schedule. Add original_schedule,
12626 transformed_schedule.
12627 (free_gimple_poly_bb): Remove.
12628 (print_generated_program): Remove.
12629 (debug_generated_program): Remove.
12630 (unify_scattering_dimensions): Remove.
12631 * sese.c (print_edge): ... here.
12632 (print_sese): ... here.
12633 (debug_edge): ... here.
12634 (debug_sese): ... here.
12635 * sese.h (print_edge): Declare.
12636 (print_sese): Declare.
12637 (dump_edge): Declare.
12638 (dump_sese): Declare.
12639
12640 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
12641 Sebastian Pop <s.pop@samsung.com>
12642
12643 * Makefile.in: Set ISLVER in site.exp.
12644
12645 2016-01-25 Jakub Jelinek <jakub@redhat.com>
12646
12647 * omp-low.c (lower_omp_target) <case USE_DEVICE_PTR>: Set
12648 DECL_VALUE_EXPR of new_var even for the non-array case. Look
12649 through DECL_VALUE_EXPR for expansion.
12650
12651 2016-01-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
12652
12653 * config/mips/mips.c (mips_compute_frame_info): Skip re-computing
12654 the frame info after reload completed.
12655
12656 2016-01-25 Jeff Law <law@redhat.com>
12657
12658 PR tree-optimization/69196
12659 PR tree-optimization/68398
12660 * tree-ssa-threadupdate.h (enum bb_dom_status): Moved here from
12661 tree-ssa-threadupdate.c.
12662 (determine_bb_domination_status): Prototype
12663 * tree-ssa-threadupdate.c (enum bb_dom_status): Remove
12664 (determine_bb_domination_status): No longer static.
12665 (valid_jump_thread_path): Remove code to detect characteristics
12666 of the jump thread path not associated with correctness.
12667 * tree-ssa-threadbackward.c (fsm_find_control_statment_thread_paths):
12668 Correct test for thread path length. Count PHIs for real operands as
12669 statements that need to be copied. Do not count ASSERT_EXPRs.
12670 Look at all the blocks in the thread path. Compute and selectively
12671 filter thread paths based on threading through the latch, threading
12672 a multiway branch or crossing a multiway branch.
12673
12674 2016-01-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12675
12676 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): Add
12677 decl with __attribute__ ((unused)) annotation.
12678
12679 2016-01-25 Ilya Enkovich <enkovich.gnu@gmail.com>
12680
12681 PR target/69421
12682 * tree-vect-stmts.c (vectorizable_condition): Check vectype
12683 of operands is compatible with a statement vectype.
12684
12685 2016-01-25 Eric Botcazou <ebotcazou@adacore.com>
12686
12687 * doc/extend.texi (scalar_storage_order type attribute): Fix typo and
12688 improve wording for mixed storage order support.
12689
12690 2016-01-25 Bilyan Borisov <bilyan.borisov@arm.com>
12691
12692 * config/aarch64/arm_neon.h (vcvt_s64_f64): New intrinsic.
12693 (vcvt_u64_f64): Likewise.
12694 (vcvta_s64_f64): Likewise.
12695 (vcvta_u64_f64): Likewise.
12696 (vcvtm_s64_f64): Likewise.
12697 (vcvtm_u64_f64): Likewise.
12698 (vcvtn_s64_f64): Likewise.
12699 (vcvtn_u64_f64): Likewise.
12700 (vcvtp_s64_f64): Likewise.
12701 (vcvtp_u64_f64): Likewise.
12702
12703 2016-01-25 Claudiu Zissulescu <claziss@synopsys.com>
12704
12705 * config/arc/arc.c (TARGET_DWARF_REGISTER_SPAN): Define.
12706 (arc_init): Check validity mll64 option.
12707 (arc_save_restore): Use double load/store instruction.
12708 (arc_expand_movmem): Likewise.
12709 (arc_split_move): Don't split if we have double load/store
12710 instructions. Returns a boolean.
12711 (arc_process_double_reg_moves): Change function to return boolean
12712 instead of a sequence of instructions.
12713 (arc_dwarf_register_span): New function.
12714 * config/arc/arc-protos.h (arc_split_move): Change prototype.
12715 * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __ARC_LL64__.
12716 * config/arc/arc.md (*movdi_insn): Emit ldd/std instructions.
12717 (*movdf_insn): Likewise.
12718 * config/arc/arc.opt (mll64): New option.
12719 * config/arc/predicates.md (even_register_operand): New predicate.
12720 * doc/invoke.texi (ARC Options): Add mll64 documentation.
12721
12722 2016-01-25 Richard Biener <rguenther@suse.de>
12723
12724 PR lto/69393
12725 * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
12726 * tree-streamer-out.c (pack_ts_base_value_fields): Stream
12727 DECL_NAMELESS.
12728 * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
12729
12730 2016-01-25 Richard Biener <rguenther@suse.de>
12731
12732 PR tree-optimization/69376
12733 * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
12734 flag.
12735 (VN_INFO_ANTI_RANGE_P): New inline.
12736 (VN_INFO_RANGE_TYPE): Likewise.
12737 * tree-ssa-sccvn.c (set_ssa_val_to): Also record and copy
12738 SSA_NAME_ANTI_RANGE_P.
12739 (free_scc_vn): Restore SSA_NAME_ANTI_RANGE_P.
12740 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
12741 Properly query VN_INFO_RANGE_TYPE.
12742
12743 2016-01-25 Nick Clifton <nickc@redhat.com>
12744
12745 PR target/66655
12746 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.
12747
12748 2016-01-23 Tom de Vries <tom@codesourcery.com>
12749
12750 PR tree-optimization/69426
12751 * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
12752 removed clobber.
12753
12754 2016-01-23 Jakub Jelinek <jakub@redhat.com>
12755
12756 * tree-ssanames.c (release_free_names_and_compact_live_names): Replace
12757 "the the" with "the" in the comments.
12758 * ipa-devirt.c (build_type_inheritance_graph,
12759 update_type_inheritance_graph): Likewise.
12760 * tree.c (build_function_type_list_1): Likewise.
12761 * cfgloopmanip.c (scale_loop_profile): Likewise.
12762 * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Likewise.
12763 * gimple-ssa-split-paths.c
12764 (find_block_to_duplicate_for_splitting_paths): Likewise.
12765 * tree-sra.c (init_subtree_with_zero, clobber_subtree): Likewise.
12766 * expr.c (convert_move): Likewise.
12767 * var-tracking.c (vt_stack_adjustments): Likewise.
12768 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
12769 * tree-vrp.c (test_for_singularity): Likewise.
12770
12771 * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
12772 directly instead of building a temporary tree.
12773
12774 PR bootstrap/69434
12775 * genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
12776 remove <algorithm> include.
12777
12778 2016-01-22 Jakub Jelinek <jakub@redhat.com>
12779
12780 PR target/69432
12781 * config/i386/i386.c: Include dojump.h.
12782 (expand_small_movmem_or_setmem,
12783 expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Spelling
12784 fixes.
12785 (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
12786 if dynamic_check != -1.
12787
12788 2016-01-21 Jeff Law <law@redhat.com>
12789
12790 PR middle-end/69347
12791 * tree-ssa-dom.c (back_propagate_equivalences): Factored out of
12792 record_temporary_equivalences. Rewritten to avoid unnecessary calls
12793 into dominated_by_p.
12794 (cprop_into_successor_phis): Avoid unnecessary tests.
12795
12796 2016-01-22 Richard Henderson <rth@redhat.com>
12797
12798 PR target/69416
12799 * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
12800 (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
12801
12802 2016-01-22 Michael Matz <matz@suse.de>
12803
12804 * system.h (string, algorithm): Include only conditionally.
12805 (new): Include always under C++.
12806 * bb-reorder.c (toplevel): Define INCLUDE_ALGORITHM.
12807 * final.c (toplevel): Ditto.
12808 * ipa-chkp.c (toplevel): Define INCLUDE_STRING.
12809 * genconditions.c (write_header): Make gencondmd.c define
12810 INCLUDE_STRING.
12811 * mem-stats.h (mem_usage::print_dash_line): Don't use std::string.
12812
12813 * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
12814 * common/config/aarch64/aarch64-common.c (toplevel): Ditto.
12815
12816 2016-01-22 Christian Bruel <christian.bruel@st.com>
12817
12818 PR target/68674
12819 * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.
12820
12821 2016-01-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12822
12823 PR target/69403
12824 * config/arm/thumb2.md (*thumb2_ior_scc_strict_it): Convert to
12825 define_insn_and_split. Ensure operands[1] and operands[0] do not
12826 get assigned the same register.
12827
12828 2016-01-22 Kugan Vivekanandarajah <kuganv@linaro.org>
12829
12830 * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.
12831
12832 2016-01-22 Christian Bruel <christian.bruel@st.com>
12833
12834 * config/arm/arm-c.c (arm_pragma_target_parse):
12835 Remove warn_builtin_macro_redefined overwrite.
12836
12837 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
12838
12839 * ipa-inline.c (can_inline_edge_p): Back out overzealous check on
12840 flag_non_call_exceptions compatibility.
12841
12842 2016-01-22 Jakub Jelinek <jakub@redhat.com>
12843
12844 PR debug/66668
12845 * dwarf2out.c (add_child_die_after): New function.
12846 (dwarf_qual_info_t): New type.
12847 (dwarf_qual_info): New variable.
12848 (qualified_die_p): New function.
12849 (modified_type_die): For -fdebug-types-section, ensure
12850 canonical order of qualifiers. Put qualified DIEs adjacent
12851 to the corresponding non-qualified type DIE and search there
12852 for existing qualified DIEs.
12853
12854 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
12855
12856 * doc/extend.texi (scalar_storage_order type attribute): Document
12857 restriction on type punning and aliasing, and remove future tense.
12858
12859 2016-01-21 Roman Zhuykov <zhroma@ispras.ru>
12860
12861 PR target/69252
12862 * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
12863 first stage.
12864
12865 2016-01-21 Jeff Law <law@redhat.com>
12866
12867 PR middle-end/69347
12868 * tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid
12869 useless call to record_temporary_equivalences.
12870 * tree-ssa-threadbackward.c (find_jump_threads_backwards): Just
12871 allocate 10 slots in the bb_path vector and let it grow as needed.
12872 (fsm_find_control_statement_thread_paths): Similarly for the next_path
12873 vector.
12874
12875 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
12876
12877 * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
12878 Detangle.
12879 * configure: Regenerate.
12880
12881 2016-01-21 Pat Haugen <pthaugen@us.ibm.com>
12882
12883 * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
12884 * config/rs6000/driver-rs6000.c (struct asm_names): Likewise.
12885
12886 2016-01-21 Bernd Schmidt <bschmidt@redhat.com>
12887
12888 PR middle-end/66178
12889 * expr.c (expand_expr_real_2) [PLUS_EXPR, MINUS_EXPR]: Don't
12890 drop EXPAND_INITIALIZER.
12891 * rtl.h (contains_symbolic_reference_p): Declare.
12892 * rtlanal.c (contains_symbolic_reference_p): New function.
12893 * simplify-rtx.c (simplify_binary_operation_1): Don't turn
12894 a subtraction into a NOT if symbolic constants are involved.
12895
12896 2016-01-21 Anton Blanchard <anton@samba.org>
12897 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12898
12899 PR target/63354
12900 * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
12901 #define.
12902 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
12903 function.
12904
12905 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
12906
12907 * config/microblaze/microblaze.c
12908 (get_branch_target): New.
12909 (insert_wic_for_ilb_runout): New.
12910 (insert_wic): New.
12911 (microblaze_machine_dependent_reorg): New.
12912 (TARGET_MACHINE_DEPENDENT_REORG): Define macro.
12913 * config/microblaze/microblaze.md
12914 (UNSPEC_IPREFETCH): Define.
12915 (iprefetch): New pattern
12916 * config/microblaze/microblaze.opt
12917 (mxl-prefetch): New flag.
12918
12919 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
12920
12921 * config/microblaze/microblaze.h
12922 (FIXED_REGISTERS): Update in macro.
12923 (CALL_USED_REGISTERS): Update in macro.
12924
12925 2016-01-21 Yuri Rumyantsev <ysrumyan@gmail.com>
12926
12927 PR rtl-optimization/68920
12928 * ifcvt.c (cond_move_process_if_block): Limit number of conditional
12929 moves.
12930
12931 2016-01-21 Vladimir Makarov <vmakarov@redhat.com>
12932
12933 PR rtl-optimization/68990
12934 * lra-coalesce.c (lra_coalesce): Invalidate value for the result
12935 pseudo instead of inheritance ones.
12936
12937 2016-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
12938 Nick Clifton <nickc@redhat.com>
12939
12940 PR target/69129
12941 PR target/69012
12942 * config/mips/mips.c (mips_compute_frame_info): Initialise
12943 args_size and hard_frame_pointer_offset fields of the frame
12944 structure before calling mips_global_pointer.
12945
12946 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
12947
12948 * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
12949 label reference.
12950 * configure: Regenerate.
12951
12952 2016-01-21 Richard Biener <rguenther@suse.de>
12953
12954 * graphite-optimize-isl.c (get_schedule_map): Fix typo.
12955
12956 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
12957
12958 * config/s390/s390.c (s390_asm_declare_function_size): Add code
12959 to actually emit the .size directive.
12960
12961 2016-01-21 Stefan Sørensen <stefan.sorensen@spectralink.com>
12962 Jakub Jelinek <jakub@redhat.com>
12963
12964 PR target/69187
12965 PR target/65624
12966 * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
12967 args array size by one to avoid buffer overflow.
12968
12969 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
12970
12971 * config/s390/s390.md (pool_section_start): Use switch_to_section
12972 to select proper read-only data section instead of hardcoding
12973 .rodata.
12974 (pool_section_end): Use switch_to_section to match the above.
12975
12976 2016-01-21 Richard Biener <rguenther@suse.de>
12977
12978 PR tree-optimization/69378
12979 * tree-ssa-sccvn.c (dominated_by_p_w_unex): New function.
12980 (set_ssa_val_to): Use it for dominance checks taking into
12981 account not executable edges.
12982
12983 2016-01-21 Jakub Jelinek <jakub@redhat.com>
12984
12985 PR c++/69355
12986 * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
12987 for bitsize instead of GET_MODE_PRECISION (mode).
12988
12989 2016-01-20 Martin Sebor <msebor@redhat.com>
12990
12991 PR c/52291
12992 * extend.texi (__sync Builtins): Clarify the semantics of
12993 __sync_fetch_and_OP built-ins on pointers.
12994 (__atomic Builtins): Same.
12995
12996 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
12997 Sebastian Pop <s.pop@samsung.com>
12998
12999 * graphite-isl-ast-to-gimple.c (enum phi_node_kind): New.
13000 (class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool.
13001 (is_valid_rename): Same.
13002 (translate_isl_ast_to_gimple::get_rename): Same.
13003 (translate_isl_ast_to_gimple::rename_all_uses): Same.
13004 (translate_isl_ast_to_gimple::rename_uses): Same.
13005 (get_new_name): Check for close_phi nodes.
13006 (copy_loop_phi_args): Use phi_node_kind.
13007 (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
13008 (translate_isl_ast_to_gimple::copy_cond_phi_args): Same.
13009
13010 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
13011 Sebastian Pop <s.pop@samsung.com>
13012
13013 Revert commit r229783.
13014 * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
13015 Remove use of parameter_rename_map.
13016 (copy_def): Remove.
13017 (copy_internal_parameters): Remove.
13018 (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
13019 * sese.c (new_sese_info): Do not initialize parameter_rename_map.
13020 (free_sese_info): Do not free parameter_rename_map.
13021 (set_rename): Do not use parameter_rename_map.
13022 (rename_uses): Update call to set_rename.
13023 (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
13024 * sese.h (parameter_rename_map_t): Remove.
13025 (struct sese_info_t): Remove field parameter_rename_map.
13026
13027 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
13028 Sebastian Pop <s.pop@samsung.com>
13029
13030 * graphite-isl-ast-to-gimple.c: Fix comment.
13031 * graphite-scop-detection.c (defined_in_loop_p): New.
13032 (canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
13033 names defined in loop.
13034
13035 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
13036 Sebastian Pop <s.pop@samsung.com>
13037
13038 * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
13039 Discard unstructured if-then-else regions.
13040
13041 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
13042 Sebastian Pop <s.pop@samsung.com>
13043
13044 * graphite-sese-to-poly.c (set_scop_parameter_dim): Remove.
13045 (cleanup_loop_iter_dom): Remove.
13046 (build_loop_iteration_domains): Remove.
13047 (build_scop_context): Remove.
13048 (build_scop_iteration_domain): Remove.
13049 (add_loop_constraints): New.
13050 (build_iteration_domains): New.
13051 (build_poly_scop): Call build_iteration_domains.
13052
13053 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
13054 Sebastian Pop <s.pop@samsung.com>
13055
13056 * graphite-scop-detection.c
13057 (scop_detection::harmful_loop_in_region): Free dom and loops.
13058 (scop_detection::loop_body_is_valid_scop): Free bbs.
13059
13060 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
13061 Sebastian Pop <s.pop@samsung.com>
13062
13063 * graphite-scop-detection.c (record_loop_in_sese): New.
13064 (gather_bbs::before_dom_children): Call record_loop_in_sese.
13065 (build_scops): Remove call to build_sese_loop_nests.
13066 * sese.c (sese_record_loop): Remove.
13067 (build_sese_loop_nests): Remove.
13068 (new_sese_info): Remove region->loops.
13069 (free_sese_info): Same.
13070 * sese.h (sese_contains_loop): Same.
13071 (build_sese_loop_nests): Remove.
13072 (sese_contains_loop): Remove.
13073
13074 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
13075 Sebastian Pop <s.pop@samsung.com>
13076
13077 * graphite-scop-detection.c (loop_is_valid_scop): Renamed
13078 loop_is_valid_in_scop.
13079 (scop_detection::harmful_stmt_in_region): Renamed
13080 harmful_loop_in_region.
13081 Call loop_is_valid_in_scop.
13082
13083 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
13084 Sebastian Pop <s.pop@samsung.com>
13085
13086 * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
13087 isl_ast_node_mark.
13088
13089 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
13090 Sebastian Pop <s.pop@samsung.com>
13091
13092 * graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION.
13093 * graphite.h (struct poly_bb): Remove field is_reduction.
13094 (PBB_IS_REDUCTION): Remove.
13095
13096 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
13097 Sebastian Pop <s.pop@samsung.com>
13098
13099 * graphite-dependences.c (constrain_domain): Add call to isl_*_coalesce.
13100 (add_pdr_constraints): Same.
13101 (scop_get_reads): Same.
13102 (scop_get_must_writes): Same.
13103 (scop_get_may_writes): Same.
13104 (scop_get_original_schedule): Same.
13105 (extend_schedule): Same.
13106 (apply_schedule_on_deps): Same.
13107 (carries_deps): Same.
13108 (compute_deps): Same.
13109 (scop_get_dependences): Same.
13110 * graphite-isl-ast-to-gimple.c
13111 (translate_isl_ast_to_gimple::generate_isl_schedule): Same.
13112 * graphite-optimize-isl.c (get_schedule_for_band): Same.
13113 (get_schedule_for_band_list): Same.
13114 (get_schedule_map): Same.
13115 (apply_schedule_map_to_scop): Same.
13116 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
13117 (build_loop_iteration_domains): Same.
13118 (add_condition_to_pbb): Same.
13119 (add_param_constraints): Same.
13120 (pdr_add_memory_accesses): Same.
13121 (pdr_add_data_dimensions): Same.
13122
13123 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
13124
13125 * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
13126 requirements.
13127
13128 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
13129
13130 * common.opt (feliminate-dwarf2-dups): Replace references to
13131 "DWARF 2" with just "DWARF".
13132 * config/ia64/ia64.opt (mdwarf2-asm): Likewise.
13133 * doc/extend.texi: Likewise.
13134 * doc/cpp.texi: Likewise.
13135 * doc/invoke.texi: Likewise.
13136 (Option Summary): Add -gdwarf to list of Debugging Options.
13137 (Debugging Options): Document -gdwarf.
13138 * doc/contrib.texi: Spell "DWARF" like that.
13139
13140 2016-01-21 Jakub Jelinek <jakub@redhat.com>
13141
13142 * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
13143 warning. Fix up formatting.
13144
13145 PR middle-end/67653
13146 * gimplify.c (gimplify_asm_expr): Warn if it is too late to
13147 attempt to mark memory input operand addressable and
13148 call prepare_gimple_addressable in that case. Don't adjust
13149 input_location for diagnostics, use error_at instead.
13150
13151 2016-01-20 Peter Bergner <bergner@vnet.ibm.com>
13152
13153 * config/rs6000/ppc-auxv.h: New file.
13154 * config/rs6000/rs6000-builtin.def (cpu_init): Add new builtin.
13155 (cpu_is): Likewise.
13156 (cpu_supports): Likewise.
13157 * config/rs6000/rs6000.c: include "ppc-auxv.h".
13158 (cpu_is_info): New variable.
13159 (cpu_supports_info): Likewise.
13160 (tcb_verification_symbol): Likewise.
13161 (cpu_builtin_p): Likewise.
13162 (cpu_expand_builtin): New function.
13163 (rs6000_expand_ternop_builtin): Add support for CPU builtin functions.
13164 (rs6000_init_builtins): Likewise.
13165 (rs6000_elf_file_end): Emit HWCAP in TCB verification symbol.
13166 * config/rs6000/rs6000.h (TLS_REGNUM): New define.
13167 * configure.ac (gcc_cv_libc_provides_hwcap_in_tcb): New test.
13168 * configure: Regenerate.
13169 * config.in: Likewise.
13170 * doc/extend.texi (PowerPC Built-in Functions): Document
13171 __builtin_cpu_init, __builtin_cpu_is and __builtin_cpu_supports.
13172
13173 2016-01-20 David Edelsohn <dje.gcc@gmail.com>
13174
13175 PR target/68609
13176 * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
13177 domain check.
13178 * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
13179 for V4SFmode.
13180
13181 2016-01-20 Richard Henderson <rth@redhat.com>
13182
13183 PR bootstrap/69343
13184 PR bootstrap/69339
13185 PR tree-opt/68964
13186 Revert:
13187 * tree.c (tm_define_builtin): New.
13188 (find_tm_vector_type): New.
13189 (build_tm_vector_builtins): New.
13190 (build_common_builtin_nodes): Call it.
13191
13192 2016-01-20 Christophe Lyon <christophe.lyon@linaro.org>
13193
13194 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
13195 (arm_fp_ok): Likewise.
13196 (arm_fp): Likewise.
13197 (arm_crypto): Likewise.
13198
13199 2016-01-20 Ilya Enkovich <enkovich.gnu@gmail.com>
13200 Richard Biener <rguenther@suse.de>
13201
13202 PR tree-optimization/69328
13203 * tree-vect-stmts.c (vect_is_simple_cond): Check compared
13204 vectors have same number of elements.
13205 (vectorizable_condition): Fix masked version recognition.
13206
13207 2016-01-20 Richard Biener <rguenther@suse.de>
13208
13209 PR tree-optimization/69345
13210 * tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function.
13211 (VN_INFO_PTR_INFO): Likewise.
13212 * tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to
13213 info when it is equal between non-dominating SSA names.
13214 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
13215 Make sure to look at original SSA infos.
13216
13217 2016-01-20 Jeff Law <law@redhat.com>
13218
13219 PR target/25114
13220 * config/m68k/predicates.md (pow2_m1_operand): New predicate
13221 extracted from ...
13222 (reg_or_pow2_m1_operand): Call pow2_m1_operand.
13223 (pc_or_label_operand): New predicate.
13224 * config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU
13225 tests for small integers that are 2^n - 1.
13226
13227 2016-01-20 Jonathan Wakely <jwakely@redhat.com>
13228
13229 * doc/invoke.texi (Options Summary): Add '.' after @xref.
13230
13231 2016-01-19 Jeff Law <law@redhat.com>
13232
13233 PR middle-end/69347
13234 * tree-ssa-threadbackwards.c
13235 (fsm_find_control_statement_thread_paths): Do not try to lookup
13236 FSM paths for SSA_NAMEs appearing in abnormal PHIs.
13237
13238 2016-01-20 Kugan Vivekanandarajah <kuganv@linaro.org>
13239
13240 * doc/lto.texi: Remove text that says only Gold has linker plugin
13241 support.
13242
13243 2016-01-19 Eric Botcazou <ebotcazou@adacore.com>
13244
13245 * dwarf2out.c (need_endianity_attribute_p): New inline predicate.
13246 (base_type_die): Add REVERSE parameter and attach DW_AT_endianity to
13247 the DIE accordingly.
13248 (modified_type_die): Add REVERSE parameter and pass it recursively,
13249 as well as to base_type_die. Adjust presence check accordingly.
13250 (base_type_for_mode): Adjust call to modified_type_die.
13251 (add_type_attribute): Add REVERSE parameter and pass it to
13252 modified_type_die.
13253 (generic_parameter_die): Adjust call to add_type_attribute.
13254 (add_scalar_info): Likewise.
13255 (add_subscript_info): Likewise.
13256 (gen_array_type_die): Likewise.
13257 (gen_descr_array_type_die): Likewise.
13258 (gen_entry_point_die): Likewise.
13259 (gen_enumeration_type_die): Likewise.
13260 (gen_formal_parameter_die): Likewise.
13261 (gen_subprogram_die): Likewise.
13262 (gen_variable_die ): Likewise.
13263 (gen_const_die): Likewise.
13264 (gen_field_die): Likewise.
13265 (gen_pointer_type_die): Likewise.
13266 (gen_reference_type_die): Likewise.
13267 (gen_ptr_to_mbr_type_die): Likewise.
13268 (gen_inheritance_die): Likewise.
13269 (gen_subroutine_type_die): Likewise.
13270 (gen_typedef_die): Likewise.
13271 (force_type_die): Adjust call to modified_type_die.
13272
13273 2016-01-19 Sandra Loosemore <sandra@codesourcery.com>
13274
13275 * doc/standards.texi: Copy-editing for grammar, markup, and sentence
13276 flow throughout the file. Fix broken link to Objective-C 2.0
13277 documentation.
13278 * doc/invoke.texi: More copy-editing; fix numerous typos and spelling
13279 errors.
13280
13281 2016-01-19 Wilco Dijkstra <wdijkstr@arm.com>
13282
13283 * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.
13284
13285 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
13286
13287 PR ipa/66223
13288 * ipa-devirt.c (is_cxa_pure_virtual_p): New function.
13289 (maybe_record_node): Record cxa_pure_virtual as the only possible
13290 target if there are not ohter candidates.
13291 (possible_polymorphic_call_target_p): Accept cxa_pure_virtual.
13292
13293 2016-01-19 Richard Biener <rguenther@suse.de>
13294
13295 * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
13296 (get_memory_order): Likewise.
13297
13298 2016-01-19 Kirill Yukhin <kirill.yukhin@intel.com>
13299
13300 * tree-vect-stmts.c (vectorizable_store): Check
13301 rhs vectype.
13302
13303 2016-01-19 David Malcolm <dmalcolm@redhat.com>
13304
13305 PR jit/68446
13306 * gcc.c (driver::decode_argv): Add call to
13307 init_opts_obstack before init_options_struct.
13308 * opts.c (init_opts_obstack): Remove idempotency.
13309 (init_options_struct): Replace call to init_opts_obstack
13310 with a gcc_assert to verify that it has already been called.
13311 * toplev.c (toplev::main): Add call to init_opts_obstack before
13312 calls to init_options_struct.
13313 (toplev::finalize): Move cleanup of opts_obstack next to
13314 cleanup of save_decoded_options, clearing the latter, and
13315 save_decoded_options_count.
13316
13317 2016-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13318
13319 PR target/69135
13320 * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
13321 attribute to unconditional. Remove %? from output template.
13322
13323 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
13324 Jiong Wang <jiong.wang@arm.com>
13325
13326 * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
13327 generated from different expand order.
13328
13329 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
13330
13331 * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
13332 Add support for CCMP costing.
13333
13334 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
13335
13336 * ccmp.c (ccmp_candidate_p): Remove integer-only restriction.
13337 * config/aarch64/aarch64.md (fccmp<mode>): New pattern.
13338 (fccmpe<mode>): Likewise.
13339 (fcmp): Rename to fcmp and globalize pattern.
13340 (fcmpe): Likewise.
13341 * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
13342 (aarch64_gen_ccmp_next): Add FP support.
13343
13344 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
13345
13346 * target.def (gen_ccmp_first): Update documentation.
13347 (gen_ccmp_next): Likewise.
13348 * doc/tm.texi (gen_ccmp_first): Update documentation.
13349 (gen_ccmp_next): Likewise.
13350 * ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of
13351 expand_ccmp_expr_1. Improve comments.
13352 * config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp.
13353 (ccmp_ior<mode>): Remove pattern.
13354 (cmp<mode>): Remove expand.
13355 (cmp): Globalize pattern.
13356 (cstorecc4): Use cc_register.
13357 (mov<mode>cc): Remove ccmp_cc_register check.
13358 * config/aarch64/aarch64.c (aarch64_get_condition_code_1):
13359 Simplify after removal of CC_DNE/* modes.
13360 (aarch64_ccmp_mode_to_code): Remove.
13361 (aarch64_print_operand): Remove 'K' case. Merge 'm' and 'M' cases.
13362 In 'k' case use integer as condition.
13363 (aarch64_nzcv_codes): Remove inverted cases.
13364 (aarch64_code_to_ccmode): Remove.
13365 (aarch64_gen_ccmp_first): Use cmp pattern directly. Return the correct
13366 comparison with CC register to be used in folowing CCMP/branch/CSEL.
13367 (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP
13368 pattern. Return the comparison with CC register. Invert conditions
13369 when bitcode is OR.
13370 * config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes.
13371 * config/aarch64/predicates.md (ccmp_cc_register): Remove.
13372
13373 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
13374
13375 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
13376 instrumented_version.
13377
13378 2016-01-19 Richard Biener <rguenther@suse.de>
13379
13380 PR tree-optimization/69336
13381 * tree-ssa-scopedtables.c (avail_expr_hash): Handle all
13382 handled components with get_ref_base_and_extent.
13383 (equal_mem_array_ref_p): Adjust.
13384
13385 2016-01-19 Jakub Jelinek <jakub@redhat.com>
13386
13387 PR debug/65779
13388 * shrink-wrap.c: Include valtrack.h.
13389 (move_insn_for_shrink_wrap): Add DEBUG argument. If
13390 MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs
13391 in between insn and where it will be moved to. Call
13392 dead_debug_insert_temp.
13393 (prepare_shrink_wrap): Adjust caller. Call dead_debug_local_init
13394 first and dead_debug_local_finish at the end.
13395 For uses and defs bitmap, handle all regs in between REGNO and
13396 END_REGNO, not just the first one.
13397
13398 2016-01-19 Richard Biener <rguenther@suse.de>
13399
13400 PR tree-optimization/69352
13401 * tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1.
13402 (equal_mem_array_ref_p): Constrain size and max size properly.
13403 Compare the reverse flag.
13404
13405 2016-01-19 Bernd Schmidt <bschmidt@redhat.com>
13406
13407 * ira.c (ira): Update regstat data if we deleted insns.
13408
13409 2016-01-19 Jakub Jelinek <jakub@redhat.com>
13410
13411 PR rtl-optimization/68955
13412 PR rtl-optimization/64557
13413 * dse.c (record_store, check_mem_read_rtx): Don't call get_addr
13414 here. Fix up formatting.
13415 * alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.
13416
13417 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
13418
13419 PR lto/69133
13420 * cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple
13421 assume that the node has body.
13422 * cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p
13423 check.
13424
13425 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
13426
13427 * lto-streamer-out.c (lto_output): Do not stream instrumentation
13428 thunks.
13429
13430 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
13431
13432 * symtab.c (symtab_node::asm_name): Do not call printable name directly.
13433 (symtab_node::name): Report name as unnamed if DECL_NAME is not set.
13434
13435 2016-01-19 Martin Jambor <mjambor@suse.cz>
13436 Martin Liska <mliska@suse.cz>
13437 Michael Matz <matz@suse.de>
13438
13439 * Makefile.in (OBJS): Add new source files.
13440 (GTFILES): Add hsa.c.
13441 * common.opt (disable_hsa): New variable.
13442 (-Whsa): New warning.
13443 * config.in (ENABLE_HSA): New.
13444 * configure.ac: Treat hsa differently from other accelerators.
13445 (OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
13446 $enable_offloading.
13447 (ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
13448 * doc/install.texi (Configuration): Document --with-hsa-runtime,
13449 --with-hsa-runtime-include, --with-hsa-runtime-lib and
13450 --with-hsa-kmt-lib.
13451 * doc/invoke.texi (-Whsa): Document.
13452 (hsa-gen-debug-stores): Likewise.
13453 * lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
13454 to invoke offload compiler for hsa acclerator.
13455 * opts.c (common_handle_option): Determine whether HSA offloading
13456 should be performed.
13457 * params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
13458 * builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
13459 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
13460 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
13461 * gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
13462 * gimple-pretty-print.c (dump_gimple_omp_for): Also handle
13463 GF_OMP_FOR_KIND_GRID_LOOP.
13464 (dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
13465 (pp_gimple_stmt_1): Likewise.
13466 * gimple-walk.c (walk_gimple_stmt): Likewise.
13467 * gimple.c (gimple_build_omp_grid_body): New function.
13468 (gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
13469 * gimple.def (GIMPLE_OMP_GRID_BODY): New.
13470 * gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
13471 GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
13472 GF_OMP_TEAMS_GRID_PHONY.
13473 (gimple_statement_omp_single_layout): Updated comments.
13474 (gimple_build_omp_grid_body): New function.
13475 (gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
13476 (gimple_omp_for_grid_phony): New function.
13477 (gimple_omp_for_set_grid_phony): Likewise.
13478 (gimple_omp_parallel_grid_phony): Likewise.
13479 (gimple_omp_parallel_set_grid_phony): Likewise.
13480 (gimple_omp_teams_grid_phony): Likewise.
13481 (gimple_omp_teams_set_grid_phony): Likewise.
13482 (gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
13483 * omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
13484 (BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
13485 (BUILT_IN_GOMP_TARGET): Updated type.
13486 * omp-low.c: Include symbol-summary.h, hsa.h and params.h.
13487 (adjust_for_condition): New function.
13488 (get_omp_for_step_from_incr): Likewise.
13489 (extract_omp_for_data): Moved parts to adjust_for_condition and
13490 get_omp_for_step_from_incr.
13491 (build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
13492 (fixup_child_record_type): Bail out if receiver_decl is NULL.
13493 (scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
13494 (scan_omp_parallel): Do not create child functions for phony
13495 constructs.
13496 (check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
13497 (scan_omp_1_op): Checking assert we are not remapping to
13498 ERROR_MARK. Also also handle GIMPLE_OMP_GRID_BODY.
13499 (parallel_needs_hsa_kernel_p): New function.
13500 (expand_parallel_call): Register apprpriate parallel child
13501 functions as HSA kernels.
13502 (grid_launch_attributes_trees): New type.
13503 (grid_attr_trees): New variable.
13504 (grid_create_kernel_launch_attr_types): New function.
13505 (grid_insert_store_range_dim): Likewise.
13506 (grid_get_kernel_launch_attributes): Likewise.
13507 (get_target_argument_identifier_1): Likewise.
13508 (get_target_argument_identifier): Likewise.
13509 (get_target_argument_value): Likewise.
13510 (push_target_argument_according_to_value): Likewise.
13511 (get_target_arguments): Likewise.
13512 (expand_omp_target): Call get_target_arguments instead of looking
13513 up for teams and thread limit.
13514 (grid_expand_omp_for_loop): New function.
13515 (grid_arg_decl_map): New type.
13516 (grid_remap_kernel_arg_accesses): New function.
13517 (grid_expand_target_kernel_body): New function.
13518 (expand_omp): Call it.
13519 (lower_omp_for): Do not emit phony constructs.
13520 (lower_omp_taskreg): Do not emit phony constructs but create for them
13521 a temporary variable receiver_decl.
13522 (lower_omp_taskreg): Do not emit phony constructs.
13523 (lower_omp_teams): Likewise.
13524 (lower_omp_grid_body): New function.
13525 (lower_omp_1): Call it.
13526 (grid_reg_assignment_to_local_var_p): New function.
13527 (grid_seq_only_contains_local_assignments): Likewise.
13528 (grid_find_single_omp_among_assignments_1): Likewise.
13529 (grid_find_single_omp_among_assignments): Likewise.
13530 (grid_find_ungridifiable_statement): Likewise.
13531 (grid_target_follows_gridifiable_pattern): Likewise.
13532 (grid_remap_prebody_decls): Likewise.
13533 (grid_copy_leading_local_assignments): Likewise.
13534 (grid_process_kernel_body_copy): Likewise.
13535 (grid_attempt_target_gridification): Likewise.
13536 (grid_gridify_all_targets_stmt): Likewise.
13537 (grid_gridify_all_targets): Likewise.
13538 (execute_lower_omp): Call grid_gridify_all_targets.
13539 (make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
13540 * tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
13541 (tree_omp_clause): Added union field dimension.
13542 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
13543 * tree.c (omp_clause_num_ops): Added number of arguments of
13544 OMP_CLAUSE__GRIDDIM_.
13545 (omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
13546 (walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
13547 * tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
13548 (OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
13549 (OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
13550 (OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
13551 * passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
13552 * tree-pass.h (make_pass_gen_hsail): Declare.
13553 (make_pass_ipa_hsa): Likewise.
13554 * ipa-hsa.c: New file.
13555 * lto-section-in.c (lto_section_name): Add hsa section name.
13556 * lto-streamer.h (lto_section_type): Add hsa section.
13557 * timevar.def (TV_IPA_HSA): New.
13558 * hsa-brig-format.h: New file.
13559 * hsa-brig.c: New file.
13560 * hsa-dump.c: Likewise.
13561 * hsa-gen.c: Likewise.
13562 * hsa.c: Likewise.
13563 * hsa.h: Likewise.
13564 * toplev.c (compile_file): Call hsa_output_brig.
13565 * hsa-regalloc.c: New file.
13566
13567 2016-01-18 Jeff Law <law@redhat.com>
13568
13569 PR tree-optimization/69320
13570 * tree-ssa-dom.c (record_edge_info): For comparisons against a boolean
13571 ranged object, do nothing if the RHS constant is not [0..1].
13572 (optimize_stmt): Comparing a boolean ranged object against a
13573 constant outside [0..1] results in a compile-time constant.
13574
13575 * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
13576 test.
13577
13578 2016-01-18 Sandra Loosemore <sandra@codesourcery.com>
13579
13580 * doc/invoke.texi (Invoking GCC): Add new section to menu.
13581 (Option Summary): Update to reflect new section and moved options.
13582 (C++ Dialect Options): Move -fstats to new section.
13583 (Debugging Options): Move all dump, statistics, and other GCC
13584 developer options to new section. Rewrite section introduction
13585 and re-order remaining options to put the more basic ones first.
13586 (Optimization Options): Move -fira-verbose and -flto-report* to
13587 new section.
13588 (Developer Options): New section incorporating moved options.
13589 * doc/cppopts.texi (-dM): Update cross-reference.
13590
13591 2016-01-18 Richard Henderson <rth@redhat.com>
13592
13593 PR target/69176
13594 * config/aarch64/aarch64.md (add<GPI>3): Move long immediate
13595 operands to pseudo only if CSE is expected. Split long immediate
13596 operands only after reload, and for the stack pointer.
13597 (*add<GPI>3_pluslong): Remove.
13598 (*addsi3_aarch64, *adddi3_aarch64): Merge into...
13599 (*add<GPI>3_aarch64): ... here. Add r/rk/Upl alternative.
13600 (*addsi3_aarch64_uxtw): Add r/rk/Upl alternative.
13601 (*add<GPI>3 peepholes): New.
13602 (*add<GPI>3 splitters): New.
13603 * config/aarch64/constraints.md (Upl): New.
13604 * config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New.
13605
13606 2016-01-18 Richard Biener <rguenther@suse.de>
13607
13608 PR tree-optimization/69297
13609 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
13610 stmt at most once.
13611 (vect_bb_vectorization_profitable_p): Clear visited flag again.
13612
13613 2016-01-18 Yuri Rumyantsev <ysrumyan@gmail.com>
13614
13615 PR middle-end/68542
13616 * fold-const.c (fold_binary_op_with_conditional_arg): Bail out for case
13617 of mixind vector and scalar types.
13618 (fold_relational_const): Add handling of vector
13619 comparison with boolean result.
13620 * tree-cfg.c (verify_gimple_comparison): Add argument CODE, allow
13621 comparison of vector operands with boolean result for EQ/NE only.
13622 (verify_gimple_assign_binary): Adjust call for verify_gimple_comparison.
13623 (verify_gimple_cond): Likewise.
13624 * tree-vrp.c (extract_code_and_val_from_cond_with_ops): Modify check on
13625 valid type of VAL.
13626
13627 2016-01-18 Joseph Myers <joseph@codesourcery.com>
13628
13629 * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
13630 !TARGET_OCTEON.
13631
13632 2016-01-18 Richard Biener <rguenther@suse.de>
13633
13634 PR middle-end/69308
13635 * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.
13636
13637 2016-01-18 Tom de Vries <tom@codesourcery.com>
13638
13639 * passes.def: Add pass_parallelize_loops to pass_oacc_kernels.
13640
13641 2016-01-18 Tom de Vries <tom@codesourcery.com>
13642
13643 * omp-low.c (set_oacc_fn_attrib): Make extern.
13644 * omp-low.h (set_oacc_fn_attrib): Declare.
13645 * tree-parloops.c (struct reduction_info): Add reduc_addr field.
13646 (create_call_for_reduction_1): Handle case that reduc_addr is non-NULL.
13647 (create_parallel_loop, gen_parallel_loop, try_create_reduction_list):
13648 Add and handle function parameter oacc_kernels_p.
13649 (find_reduc_addr, get_omp_data_i_param): New function.
13650 (ref_conflicts_with_region, oacc_entry_exit_ok_1)
13651 (oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function.
13652 (parallelize_loops): Add and handle function parameter oacc_kernels_p.
13653 Calculate dominance info. Skip loops that are not in a kernels region
13654 in oacc_kernels_p mode. Skip inner loops of parallelized loops.
13655 (pass_parallelize_loops::execute): Call parallelize_loops with
13656 oacc_kernels_p argument.
13657 (pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param):
13658 New member function.
13659 (pass_parallelize_loops::bool oacc_kernels_p): New member var.
13660 * passes.def: Add argument to pass_parallelize_loops instantation.
13661
13662 2016-01-18 Tom de Vries <tom@codesourcery.com>
13663
13664 * tree-parloops.c (pass_parallelize_loops::execute): Allow
13665 pass_parallelize_loops to be run outside the loop pipeline.
13666
13667 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
13668
13669 * tree-scalar-evolution.c (follow_copies_to_constant): New.
13670 (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
13671
13672 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
13673
13674 PR target/63679
13675 * tree-ssa-scopedtables.c (avail_expr_hash): Hash MEM_REF and ARRAY_REF
13676 using get_ref_base_and_extent.
13677 (equal_mem_array_ref_p): New.
13678 (hashable_expr_equal_p): Add call to previous.
13679
13680 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
13681
13682 PR target/63679
13683 * tree-sra.c (disqualified_constants, constant_decl_p): New.
13684 (sra_initialize): Allocate disqualified_constants.
13685 (sra_deinitialize): Free disqualified_constants.
13686 (disqualify_candidate): Update disqualified_constants when appropriate.
13687 (create_access): Scan for constant-pool entries as we go along.
13688 (scalarizable_type_p): Add check against type_contains_placeholder_p.
13689 (maybe_add_sra_candidate): Allow constant-pool entries.
13690 (load_assign_lhs_subreplacements): Bind debug for constant pool vars.
13691 (initialize_constant_pool_replacements): New.
13692 (sra_modify_assign): Avoid mangling assignments created by previous,
13693 and don't generate writes into constant pool.
13694 (sra_modify_function_body): Call initialize_constant_pool_replacements.
13695
13696 2016-01-18 Ilya Enkovich <enkovich.gnu@gmail.com>
13697
13698 * config/i386/i386.c (scalar_to_vector_candidate_p): Support
13699 andnot instruction.
13700 (scalar_chain::convert_op): Likewise.
13701 * config/i386/i386.md (*andndi3_doubleword): New.
13702
13703 2016-01-18 Richard Biener <rguenther@suse.de>
13704
13705 PR tree-optimization/69170
13706 * tree-vect-slp.c (vect_build_slp_tree): Verify we are not
13707 building a vector from scalar results of a pattern stmt.
13708
13709 2016-01-18 Jakub Jelinek <jakub@redhat.com>
13710
13711 * haifa-sched.c (autopref_multipass_init): Work around
13712 -Wmaybe-uninitialized warning.
13713
13714 2016-01-18 Thomas Preud'homme <thomas.preudhomme@arm.com>
13715
13716 * config/arm/arm.c (thumb1_reorg): Check that the comparison is
13717 against the constant 0.
13718
13719 2016-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13720
13721 PR tree-optimization/68799
13722 * gimple-ssa-strength-reduction.c (create_phi_basis): Directly
13723 look up phi candidates in the statement-candidate map.
13724 (phi_add_costs): Likewise.
13725 (record_phi_increments): Likewise.
13726 (phi_incr_cost): Likewise.
13727 (ncd_with_phi): Likewise.
13728 (all_phi_incrs_profitable): Likewise.
13729
13730 2016-01-17 Jakub Jelinek <jakub@redhat.com>
13731
13732 * omp-low.c (mark_loops_in_oacc_kernels_region): Work around
13733 -Wmaybe-uninitialized warning.
13734
13735 2016-01-16 Sandra Loosemore <sandra@codesourcery.com>
13736
13737 * doc/invoke.texi (Invoking GCC): Add new section to menu.
13738 (Option Summary): Update to reflect new section and moved options.
13739 (C++ Dialect Options): Move -fvtable-verify and related options.
13740 (Debugging Options): Move Sanitizer, Pointer Bounds Checker,
13741 and profiling-related options.
13742 (Optimization Options): Move profile generation options and
13743 -fstack-protector and related options.
13744 (Instrumentation Options): New section incorporating moved options.
13745 (Code Generation Options): Move -finstrument-functions and
13746 related options, -fstack-check, -fstack-limit*, and -fbounds-check.
13747
13748 2016-01-16 Tom de Vries <tom@codesourcery.com>
13749
13750 * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.
13751
13752 2016-01-16 Tom de Vries <tom@codesourcery.com>
13753
13754 * omp-low.c (expand_omp_atomic_fetch_op): Release defs of update stmt.
13755
13756 2016-01-16 Richard Sandiford <richard.sandiford@arm.com>
13757
13758 * hash-table.h (hash_table::empty): Turn into an inline wrapper
13759 that checks whether the table is already empty. Rename the
13760 original implementation to...
13761 (hash_table::empty_slot): ...this new private function.
13762
13763 2016-01-15 David Malcolm <dmalcolm@redhat.com>
13764
13765 PR diagnostic/68899
13766 * diagnostic-show-locus.c (layout::print_source_line): Move x
13767 offset of line until after call to
13768 get_line_width_without_trailing_whitespace.
13769
13770 2016-01-15 Jeff Law <law@redhat.com>
13771
13772 PR tree-optimization/69270
13773 * tree-ssanames.c (ssa_name_has_boolean_range): Moved here from
13774 tree-ssa-dom.c. Improve test for [0..1] ranve from VRP.
13775 * tree-ssa-dom.c (ssa_name_has_boolean_range): Remove.
13776 * tree-ssanames.h (ssa_name_has_boolean_range): Prototype.
13777 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
13778 ssa_name_has_boolean_range and constant_boolean_node.
13779
13780 2016-01-15 Vladimir Makarov <vmakarov@redhat.com>
13781
13782 PR rtl-optimization/69030
13783 * lra-spills.c (remove_pseudos): Check nrefs and make the function
13784 returning bool.
13785 (spill_pseudos): Delete debug insn for dead pseudo.
13786 (lra_spill): Initiate spill_hard_reg and slots memory separately.
13787
13788 2016-01-15 Jiong Wang <jiong.wang@arm.com>
13789
13790 * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
13791 New.
13792 (TYPES_UNOPUS): Likewise.
13793 * config/aarch64/aarch64-simd-builtins.def (lbtruncuv2sf): Correct
13794 builtin type, from UNOP to UNOPUS.
13795 (lbtruncuv4sf): Likewise.
13796 (lbtruncuv2df): Likewise.
13797 (lrounduv2sf): Likewise.
13798 (lrounduv4sf): Likewise.
13799 (lrounduv2df): Likewise.
13800 (lroundusf): Likewise.
13801 (lroundusf): Likewise.
13802 (lceiluv2sf): Likewise.
13803 (lceiluv4sf): Likewise.
13804 (lceiluv2df): Likewise.
13805 (lceilusf): Likewise.
13806 (lceiludf): Likewise.
13807 (lflooruv2sf): Likewise.
13808 (lflooruv4sf): Likewise.
13809 (lflooruv2df): Likewise.
13810 (lfloorusf): Likewise.
13811 (lfloorudf): Likewise.
13812 (lfrintnuv2sf): Likewise.
13813 (lfrintnuv4sf): Likewise.
13814 (lfrintnuv2df): Likewise.
13815 (lfrintnusf): Likewise.
13816 (lfrintnudf): Likewise.
13817 * config/aarch64/arm_neon.h (vcvt_u32_f32): Remove unncessary type
13818 conversion.
13819 (vcvtq_u32_f32): Likewise.
13820 (vcvtq_u64_f64): Likewise.
13821 (vcvta_u32_f32): Likewise.
13822 (vcvtaq_u32_f32): Likewise.
13823 (vcvtaq_u64_f64): Likewise.
13824 (vcvtm_u32_f32): Likewise.
13825 (vcvtmq_u32_f32): Likewise.
13826 (vcvtmq_u64_f64): Likewise.
13827 (vcvtn_u32_f32): Likwise.
13828 (vcvtnq_u32_f32): Likewise.
13829 (vcvtnq_u64_f64): Likewise.
13830 (vcvtp_u32_f32): Likewise.
13831 (vcvtpq_u32_f32): Likewise.
13832 (vcvtpq_u64_f64): Likewise.
13833 (vcvtmd_u64_f64): Likewise.
13834 (vcvtms_u32_f32): Likewise.
13835 (vcvtad_u64_f64): Likewise.
13836 (vcvtas_u32_f32): Likewise.
13837 (vcvtnd_u64_f64): Likewise.
13838 (vcvtns_u32_f32): Likewise.
13839 (vcvtpd_u64_f64): Likewise.
13840 (vcvtps_u32_f32): Likewise.
13841
13842 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13843
13844 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
13845 CSEL of zero_extended registers.
13846
13847 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13848
13849 * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
13850 Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
13851
13852 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13853
13854 * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
13855 false when argument string is not found in the attributes table
13856 at all.
13857
13858 2016-01-15 David Edelsohn <dje.gcc@gmail.com>
13859
13860 PR target/68609
13861 * config/rs6000/rs6000.c (rs6000_emit_msub): Delete.
13862 (rs6000_emit_swsqrt): Convert to Goldschmidt's Algorithm
13863 * config/rs6000/rs6000.md (sqrt<mode>2): Limit swsqrt to high
13864 precision estimate.
13865
13866 2016-01-15 Richard Biener <rguenther@suse.de>
13867
13868 PR tree-optimization/66856
13869 * tree-vect-loop.c (vect_transform_loop): Free SLP instances here.
13870 * tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count.
13871 (vect_create_new_slp_node): Increment stmt reference count.
13872 (vect_get_and_check_slp_defs): Make sure stmts are nor already in
13873 an SLP tree before swapping operands.
13874 (vect_build_slp_tree): Likewise.
13875 (destroy_bb_vec_info): Free stmt info after SLP instances.
13876 * tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count.
13877 * tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field.
13878 (STMT_VINFO_NUM_SLP_USES): New macro.
13879
13880 2016-01-15 Richard Biener <rguenther@suse.de>
13881
13882 PR debug/69137
13883 * dwarf2out.c (add_linkage_name_raw): New function split out from ...
13884 (add_linkage_name): ... here.
13885 (gen_typedef_die): Use add_linkage_name_raw instead of
13886 add_linkage_attr to delay DECL_ASSEMBLER_NAME computation
13887 if necessary.
13888
13889 2016-01-15 Cesar Philippidis <cesar@codesourcery.com>
13890
13891 * gimplify.c (oacc_default_clause): Decode reference and pointer
13892 types for both kernels and parallel regions.
13893
13894 2016-01-15 Richard Sandiford <richard.sandiford@arm.com>
13895
13896 PR middle-end/69246
13897 * calls.c (emit_call_1): Force n_popped to zero for sibcalls.
13898
13899 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
13900
13901 * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
13902 (convert_scalars_to_vector): Likewise.
13903
13904 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
13905
13906 * doc/extend.texi (Type Traits): Fix grammar.
13907
13908 2016-01-15 Martin Jambor <mjambor@suse.cz>
13909
13910 * tree-inline.c (remap_decl): Use existing dclarations if
13911 remapping a type and prevent_decl_creation_for_types.
13912 (replace_locals_stmt): Do an initial remapping of non-VLA typed
13913 decls first. Do real remapping with
13914 prevent_decl_creation_for_types set.
13915 * tree-inline.h (copy_body_data): New field
13916 prevent_decl_creation_for_types, moved remap_var_for_cilk to avoid
13917 padding.
13918
13919 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
13920
13921 * config/s390/s390.opt (mmvcle): More verbose help text.
13922
13923 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
13924
13925 * config/s390/s390.opt: Add period to -mzvector option text.
13926
13927 2016-01-15 Richard Biener <rguenther@suse.de>
13928
13929 PR tree-optimization/68961
13930 * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
13931 of invariants in stores again.
13932
13933 2016-01-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
13934
13935 * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.
13936
13937 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
13938
13939 * config/i386/i386.c (ix86_expand_branch): Don't split
13940 DI mode xor instruction to SI mode.
13941
13942 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
13943
13944 PR ipa/68148
13945 * ipa-icf.c (sem_function::merge): Virtual functions may become
13946 reachable even if they address is not taken and there are no
13947 idrect calls.
13948
13949 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
13950
13951 * lto-streamer-out.c (subtract_estimated_size): New function.
13952 (get_symbol_initial_value): Use it.
13953
13954 2016-01-15 Christian Bruel <christian.bruel@st.com>
13955
13956 PR target/65837
13957 * config/arm/arm-builtins.c (ARM_BUILTIN_CRYPTO_BASE): New enum tag.
13958 (arm_init_neon_builtins_internal): Rename arm_init_neon_builtins,
13959 (arm_init_crypto_builtins_internal): Rename arm_init_crypto_builtins.
13960 use add_builtin_function_ext_scope instead of add_builtin_function.
13961 (neon_set_p, neon_crypto_set_p): Remove.
13962 (arm_init_builtins): Always call arm_init_neon_builtins and
13963 arm_init_crypto_builtins.
13964 (arm_expand_builtin): Check that builtins are allowed for the arch.
13965 * config/arm/arm-protos.h (arm_init_neon_builtins): Remove prototype.
13966 * config/arm/arm.c (arm_valid_target_attribute_tree): Remove
13967 arm_init_neon_builtins call.
13968
13969 2016-01-15 Richard Biener <rguenther@suse.de>
13970
13971 PR tree-optimization/69117
13972 * tree-ssa-sccvn.h (struct vn_ssa_aux): Add info member.
13973 * tree-ssa-sccvn.c (set_ssa_val_to): Save and adjust SSA name info
13974 of the leader conservatively.
13975 (free_scc_vn): Restore original SSA name infos.
13976
13977 2016-01-14 Jeff Law <law@redhat.com>
13978
13979 PR tree-optimization/69270
13980 * tree-ssa-dom.c (ssa_name_has_boolean_range): If the type has a
13981 single bit of precision, verify it's also unsigned.
13982 (record_edge_info): Use constant_boolean_node rather than fold_convert
13983 to convert boolean_true/boolean_false to the right type.
13984
13985 2016-01-14 Richard Henderson <rth@redhat.com>
13986
13987 PR rtl-opt/69014
13988 * loop-doloop.c (record_reg_sets): New.
13989 (doloop_optimize): Reject the transform if the sequence
13990 clobbers registers live at the end of the loop block.
13991 (doloop_optimize_loops): Enable df_live if needed.
13992
13993 2016-01-14 Michael Meissner <meissner@linux.vnet.ibm.com>
13994
13995 * config/rs6000/rs6000-builtin.def: Revert 2016-01-13 change.
13996 * config/rs6000/rs6000.c: Likewise.
13997 * config/rs6000/rs6000.h: Likewise.
13998 * config/rs6000/rs6000.md: Likewise.
13999 * doc/extend.texi: Likewsie.
14000
14001 2016-01-14 Jeff Law <law@redhat.com>
14002
14003 * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
14004 typo.
14005
14006 2016-01-14 Richard Henderson <rth@redhat.com>
14007
14008 PR c/69272
14009 PR tree-opt/68964
14010 * trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size.
14011 * tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p
14012 instead of builtin_decl_declared_p to test for declaration.
14013
14014 2016-01-14 Nicklas Bo Jensen <nbjensen@gmail.com>
14015
14016 * doc/loop.texi (Loop Analysis and Representation): Document
14017 loop_depth function.
14018
14019 2016-01-14 Tom de Vries <tom@codesourcery.com>
14020
14021 PR tree-optimization/68773
14022 * omp-low.c (expand_omp_target): Don't set force_output.
14023 * varpool.c (varpool_node::get_create): Same.
14024 * lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and
14025 offload_funcs with force_output.
14026
14027 2016-01-14 Jakub Jelinek <jakub@redhat.com>
14028
14029 PR debug/69244
14030 * lra-eliminations.c (move_plus_up): Don't change anything if either
14031 the outer or inner subreg mode is not MODE_INT.
14032 * dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is
14033 integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards.
14034
14035 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
14036
14037 * doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m},
14038 reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m},
14039 reduc_uplus_@var{m}): Remove.
14040 * expr.c (expand_expr_real_2): Remove expansion path for
14041 reduc_[us](min|max|plus) optabs.
14042 * optabs-tree.c (scalar_reduc_to_vector): Remove.
14043 * optabs-tree.h (scalar_reduc_to_vector): Remove.
14044 * optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab,
14045 reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove.
14046 * tree-vect-loop.c (vectorizable_reduction): Remove test for
14047 reduc_[us](min|max|plus) optabs.
14048
14049 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
14050
14051 * config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove.
14052 (reduc_plus_scal_v2sf): New.
14053 (reduc_smax_v2sf): Rename to...
14054 (reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract.
14055 (reduc_smin_v2sf): Rename to...
14056 (reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract.
14057
14058 2016-01-14 Jan Hubicka <hubicka@ucw.cz>
14059
14060 * alias.c (compare_base_symbol_refs): New function.
14061 (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
14062 it.
14063
14064 2016-01-14 Jakub Jelinek <jakub@redhat.com>
14065
14066 PR middle-end/68146
14067 PR tree-optimization/69155
14068 * tree-complex.c: Include cfganal.h.
14069 (phis_to_revisit): New variable.
14070 (extract_component): Add phiarg_p argument. Assert that returned
14071 SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true.
14072 (update_phi_components): Partly rewrite to use loop over real/imag
14073 components instead of code duplication. If extract_component returns
14074 SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or
14075 create_tmp_reg into the PHI node instead, and mention the phi triplet
14076 in phis_to_revisit.
14077 (tree_lower_complex): Walk bbs in rpo order. Adjust phis recorded
14078 in phis_to_revisit at the end.
14079
14080 2016-01-14 Richard Biener <rguenther@suse.de>
14081
14082 PR tree-optimization/68060
14083 * tree-vect-loop.c (vect_is_simple_reduction): Check the
14084 outer loop reduction is only used in the inner loop before
14085 detecting a double reduction.
14086
14087 2016-01-14 Jakub Jelinek <jakub@redhat.com>
14088
14089 PR target/68269
14090 * combine.c (expand_field_assignment): Punt if compute_mode is
14091 unsupported scalar mode.
14092
14093 2016-01-14 Richard Biener <rguenther@suse.de>
14094
14095 PR tree-optimization/66856
14096 * tree-vect-slp.c (vect_build_slp_tree): Refactor to build
14097 SLP node only if it built successfully.
14098 (vect_analyze_slp_instance): Adjust.
14099
14100 2016-01-14 Jeff Law <law@redhat.com>
14101
14102 PR tree-optimization/69270
14103 * tree-ssa-dom.c (ssa_name_has_boolean_range): New function.
14104 (record_edge_info): Use it. Convert boolean_{true,false}_node
14105 to the type of op0.
14106
14107 2016-01-13 Jan Hubicka <hubicka@ucw.cz>
14108
14109 PR ipa/66487
14110 * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
14111 use block_ultimate_origin
14112 (noncall-stmt_may_be_vtbl_ptr_store): Likewise.
14113
14114 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
14115
14116 * doc/invoke.texi (Submodel Options): Rename section to
14117 "Machine-Dependent Options" to better reflect its content.
14118 Rewrite introductory text to remove archaic CPU names.
14119 Update references.
14120
14121 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
14122
14123 * doc/invoke.texi (Code Gen Options): Move section up in file,
14124 before target-specific options. Update menu and option summary
14125 to reflect the new section ordering.
14126
14127 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
14128
14129 * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
14130 (C++ Dialect Options): Add cross-reference to -std option.
14131 * doc/standards.texi (C++ Language): Document C++14 support.
14132
14133 2016-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
14134
14135 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
14136 for pack/unpack functions for __ibm128.
14137 (PACK_IF): Likewise.
14138 (UNPACK_IF): Likewise.
14139
14140 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
14141 support for __ibm128 pack/unpack functions.
14142 (rs6000_invalid_builtin): Likewise.
14143 (rs6000_init_builtins): Likewise.
14144 (rs6000_opt_masks): Likewise.
14145
14146 * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
14147 (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
14148 functions
14149 (RS6000_BTM_COMMON): Likewise.
14150
14151 * config/rs6000/rs6000.md (f128_vsx): New mode attribute.
14152 (unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
14153 disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
14154 128-bit floating point. Add support for the double values to be
14155 in Altivec registers for TF/IF packing and unpacking, but restrict
14156 TD packing sub-fields to be FPR registers. Don't allow overlapped
14157 register support for packing. Allow pack inputs to be memory
14158 locations. Don't build generator functions for unpack<mode>_dm
14159 and unpack<mode>_nodm.
14160 (unpack<mode>_dm): Likewise.
14161 (unpack<mode>_nodm): Likewise.
14162 (pack<mode>): Likewise.
14163
14164 * config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
14165 built-in functions to pack/unpack explicit __ibm128 values.
14166 (__builtin_unpack_ibm128): Likewise.
14167
14168 * doc/extend.texi (PowerPC Built-in Functions): Document
14169 __builtin_pack_ibm128 and __builtin_unpack_ibm128.
14170
14171 2016-01-13 Bernd Schmidt <bschmidt@redhat.com>
14172
14173 PR c/66208
14174 * c-common.c (check_function_nonnull): Remove unnecessary declaration.
14175 Add new arg loc and pass it down as context.
14176 (check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
14177 to the location to use for the warning.
14178 (check_function_arguments): New arg loc. All callers changed. Pass
14179 it to check_function_nonnull.
14180 * c-common.h (check_function_arguments): Adjust declaration.
14181
14182 2016-01-13 Jakub Jelinek <jakub@redhat.com>
14183
14184 PR tree-optimization/69156
14185 * gimple.c (validate_type): Removed.
14186 (gimple_builtin_call_types_compatible_p): Use
14187 useless_type_conversion_p instead of validate_type.
14188 * value-prof.c (gimple_stringop_fixed_value): Fold
14189 icall_size to correct type.
14190
14191 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
14192
14193 * doc/extend.texi (__atomic Builtins): Clarify compare_exchange
14194 effects.
14195
14196 2016-01-13 Richard Henderson <rth@redhat.com>
14197
14198 PR tree-opt/68964
14199 * target.def (builtin_tm_load, builtin_tm_store): Remove.
14200 * config/i386/i386.c (ix86_builtin_tm_load): Remove.
14201 (ix86_builtin_tm_store): Remove.
14202 (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
14203 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
14204 * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
14205 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
14206 * doc/tm.texi: Rebuild.
14207
14208 * gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New.
14209 (BUILT_IN_TM_MEMCPY_RTWN): New.
14210 * trans-mem.c (tm_log_emit_stmt): Rearrange code for better
14211 fallback from vector to integer helpers.
14212 (build_tm_load): Handle vector types directly, instead of
14213 via target hook.
14214 (build_tm_store): Likewise.
14215 (expand_assign_tm): Prepare for register types not handled by
14216 the above. Copy them to memory and use memcpy.
14217 * tree.c (tm_define_builtin): New.
14218 (find_tm_vector_type): New.
14219 (build_tm_vector_builtins): New.
14220 (build_common_builtin_nodes): Call it.
14221
14222 2016-01-13 Uros Bizjak <ubizjak@gmail.com>
14223
14224 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
14225 TARGET_SSE_MATH without TARGET_SSE2. Rewrite.
14226
14227 2016-01-13 Tom de Vries <tom@codesourcery.com>
14228
14229 PR tree-optimization/69169
14230 * tree-ssa-structalias.c (create_variable_info_for_1): Add and handle
14231 handled_struct_type param.
14232 (create_variable_info_for, intra_create_variable_infos): Call
14233 create_variable_info_for_1 with extra arg.
14234
14235 2016-01-13 Yvan Roux <yvan.roux@linaro.org>
14236
14237 * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
14238 and "armv8.1-a+crc" entries.
14239
14240 2016-01-13 Alexander Fomin <alexander.fomin@intel.com>
14241
14242 PR target/69228
14243 * config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
14244 Change first operand predicate from register_or_constm1_operand
14245 to register_operand.
14246 (define_expand "avx512pf_gatherpf<mode>df"): Likewise.
14247 (define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
14248 (define_expand "avx512pf_scatterpf<mode>df"): Likewise.
14249 (define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
14250 (define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
14251 (define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
14252 (define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
14253 * config/i386/i386.c (ix86_expand_builtin): Remove first operand
14254 comparison with constm1_rtx from vec_prefetch_gen part.
14255
14256 2016-01-13 Richard Biener <rguenther@suse.de>
14257
14258 PR tree-optimization/69013
14259 * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
14260 Exchange assert for a test.
14261
14262 2016-01-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
14263
14264 PR target/69247
14265 * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.
14266
14267 2016-01-13 Richard Biener <rguenther@suse.de>
14268
14269 PR tree-optimization/69242
14270 * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
14271 assert with a check.
14272
14273 2016-01-13 Richard Biener <rguenther@suse.de>
14274
14275 PR tree-optimization/69186
14276 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
14277 Properly guard vect_update_misalignment_for_peel call.
14278
14279 2016-01-12 Jeff Law <law@redhat.com>
14280
14281 PR tree-optimization/pr67755
14282 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
14283 "need_profile_correction".
14284 (thread_block_1): Initialize new field to false by default. If we
14285 have multiple thread paths through a common joiner to different
14286 final targets, then set new field to true.
14287 (compute_path_counts): Only do count adjustment when it's really
14288 needed.
14289
14290 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
14291
14292 * doc/invoke.texi (Spec Files): Move section down in file, past
14293 all command-line option descriptions.
14294
14295 2016-01-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
14296
14297 PR middle-end/54809
14298 * doc/gty.texi: Remove documentation of mark_hook.
14299 * gengtype.c (struct write_types_data): Remove code to support
14300 mark_hook attribute.
14301 (walk_type): Likewise.
14302 (write_func_for_structure): Likewise.
14303
14304 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
14305
14306 * doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to
14307 Directory Options, and -specs= to Overall Options.
14308 (Overall Options): Adjust similarly. Reorder to group related
14309 options together. Make -specs= cross-reference the spec file details.
14310 (Directory Options): Adjust similarly.
14311
14312 2016-01-12 Jeff Law <law@redhat.com>
14313
14314 * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
14315
14316 2016-01-12 Olivier Hainque <hainque@adacore.com>
14317
14318 * gcc.c (spec_undefvar_allowed): New global.
14319 (process_command): Set to true when running for --version or --help,
14320 alone or together.
14321 (getenv_spec_function): When the variable is not defined, use the
14322 variable name as the variable value if we're allowed not to issue
14323 a fatal error.
14324
14325 2016-01-12 Bin Cheng <bin.cheng@arm.com>
14326
14327 PR tree-optimization/68911
14328 * tree-vrp.c (adjust_range_with_scev): Check overflow in range
14329 information computed for expression "init + nit * step".
14330
14331 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
14332
14333 * doc/invoke.texi (Invoking GCC): Copy-edit. Incorporate information
14334 about name of GCC executable. Remove deleted node from menu.
14335 (Directory Options) <-B>: Remove cross-reference to deleted node.
14336 (Target Options): Delete section.
14337
14338 2016-01-12 Christian Bruel <christian.bruel@st.com>
14339
14340 PR target/69180
14341 * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
14342 for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.
14343
14344 2016-01-12 Jakub Jelinek <jakub@redhat.com>
14345
14346 PR target/69198
14347 * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
14348 aligned_mem is properly set for AVX512-VL floating point masked
14349 stores.
14350
14351 PR target/69175
14352 * ifcvt.c (cond_exec_process_if_block): When removing the last
14353 insn from then_bb, remove also any possible barriers that follow it.
14354
14355 2016-01-12 H.J. Lu <hongjiu.lu@intel.com>
14356
14357 PR target/68456
14358 PR target/69226
14359 * config/i386/iamcu.h (SIZE_TYPE): New macro.
14360 (PTRDIFF_TYPE): Likewise.
14361 (WCHAR_TYPE): Likewise.
14362 (WCHAR_TYPE_SIZE): Likewise.
14363 (STDINT_LONG32): Likewise.
14364
14365 2016-01-12 Richard Biener <rguenther@suse.de>
14366
14367 PR tree-optimization/69053
14368 * tree-vect-loop.c (get_initial_def_for_reduction): Properly
14369 convert initial value for cond reductions.
14370
14371 2016-01-12 Richard Biener <rguenther@suse.de>
14372
14373 PR tree-optimization/69007
14374 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
14375 widen_sum after dot_prod and sad.
14376
14377 2016-01-12 Richard Biener <rguenther@suse.de>
14378
14379 PR tree-optimization/69168
14380 * tree-vect-loop.c (vect_analyze_loop_2): Reset both main and
14381 pattern stmt SLP type.
14382 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may
14383 end up unused so cope with that case.
14384
14385 2016-01-12 Richard Biener <rguenther@suse.de>
14386
14387 PR tree-optimization/69157
14388 * tree-vect-stmts.c (vectorizable_mask_load_store): Check
14389 stmts def type only during analyze phase.
14390 (vectorizable_call): Likewise.
14391 (vectorizable_simd_clone_call): Likewise.
14392 (vectorizable_conversion): Likewise.
14393 (vectorizable_assignment): Likewise.
14394 (vectorizable_shift): Likewise.
14395 (vectorizable_operation): Likewise.
14396 (vectorizable_store): Likewise.
14397 (vectorizable_load): Likewise.
14398
14399 2016-01-12 Richard Biener <rguenther@suse.de>
14400
14401 PR tree-optimization/69174
14402 * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
14403 space.
14404 (vectorizable_load): Properly compute the number of loads needed
14405 for permuted strided SLP loads and do not spuriously assign
14406 to SLP_TREE_VEC_STMTS.
14407
14408 2016-01-12 Andris Pavenis <andris.pavenis@iki.fi>
14409
14410 * config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2
14411 (TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive
14412 (MD_EXEC_PREFIX): Remove.
14413 (MD_STARTFILE_PREFIX) Removee.
14414 (FILE_NAME_ABSOLUTE_P): Remove.
14415 (CPP_SPEC): Do not read macros from sys/version.h.
14416 (LINK_COMMAND_SPEC): Remove.
14417 (LOCAL_INCLUDE_DIR): Remove.
14418 (TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section
14419 (TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix.
14420 (POST_LINK_SPEC): Define to invoke stubify after linker
14421 (LIBSTDCXX): Remove define
14422 (DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map.
14423 (DEFAULT_PCC_STRUCT_RETURN): Define to 1.
14424 (SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210.
14425 (SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message.
14426 (SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info.
14427 (IX86_MAYBE_NO_LIBGCC_TFMODE): Remove.
14428 (i386_djgpp_asm_named_section): Add propotype of new procedure
14429
14430 * config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define.
14431 (MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h).
14432 (STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX
14433 in config/i386/djgpp.h).
14434 (STANDARD_STARTFILE_PREFIX_2): Define identical to
14435 STANDARD_STARTFILE_PREFIX_1.
14436 (LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h).
14437 (GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal
14438 installation errors.
14439 (MAX_OFILE_ALIGNMENT): Define to 128.
14440 (HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h.
14441
14442 * config/i386/djgpp.c: New file. Add implementation of
14443 i386_djgpp_asm_named_section.
14444
14445 * config/i386/djgpp.opt: Remove obsolete option -mbnu210.
14446
14447 * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
14448 Add rule for building djgpp.o.
14449
14450 2016-01-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14451
14452 * config/rs6000/rs6000.c (v2df_reduction_p): New function.
14453 (rtx_is_swappable_p): Reductions are swappable.
14454 (insn_is_swappable_p): V2DF reductions are swappable.
14455
14456 2016-01-11 John David Anglin <danglin@gcc.gnu.org>
14457
14458 * config/pa/pa.c (pa_emit_move_sequence): Handle floating point
14459 reloads for other unsupported memory operands.
14460
14461 2016-01-12 Kugan Vivekanandarajah <kuganv@linaro.org>
14462 Jim Wilson <jim.wilson@linaro.org>
14463
14464 PR target/69194
14465 * config/arm/arm-builtins.c (arm_expand_neon_args): Call
14466 copy_to_mode_reg instead of force_reg.
14467
14468 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
14469
14470 PR target/69225
14471 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
14472 TARGET_80387 is true.
14473
14474 2016-01-11 Jakub Jelinek <jakub@redhat.com>
14475
14476 PR target/69071
14477 * lra-eliminations.c (move_plus_up): Only move plus up
14478 if subreg of the constant can be simplified into constant
14479 and use the simplified subreg of the constant instead of
14480 the original constant.
14481
14482 * fold-const.c (fold_convertible_p): Don't return true
14483 for conversion of VECTOR_TYPE to same sized integral type.
14484 (fold_convert_loc): Fix up formatting. Fold conversion of
14485 VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR
14486 instead of NOP_EXPR.
14487
14488 PR tree-optimization/69214
14489 * tree-vrp.c (simplify_cond_using_ranges): Don't propagate
14490 innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
14491 Formatting fix.
14492
14493 PR tree-optimization/69207
14494 * tree-vect-slp.c (vect_get_constant_vectors): For
14495 VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
14496 fold_convertible_p to vector_type's element type, and always
14497 use VCE for non-VECTOR_BOOLEAN_TYPE_P.
14498
14499 2016-01-11 Richard Biener <rguenther@suse.de>
14500
14501 PR tree-optimization/69173
14502 * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only
14503 fixup the cycle if all stmts are in a pattern.
14504
14505 2016-01-11 Uros Bizjak <ubizjak@gmail.com>
14506
14507 PR middle-end/68999
14508 * alias.c (base_alias_check): Move check for addresses with
14509 alignment ANDs before the call for compare_base_decls.
14510 (memrefs_conflict_p): Return -1 for different decls
14511 that went through alignment adjustments.
14512
14513 2016-01-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14514
14515 PR rtl-optimization/68796
14516 * config/aarch64/aarch64.md (*and<mode>_compare0): New pattern.
14517 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle HImode
14518 and QImode comparisons against zero with CC_NZmode.
14519 * config/aarch64/iterators.md (short_mask): New mode_attr.
14520
14521 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
14522
14523 * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
14524 (<avx512>_store<mode>_mask): Likewise.
14525
14526 2016-01-11 Bernd Schmidt <bschmidt@redhat.com>
14527 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14528
14529 PR rtl-optimization/68841
14530 * ifcvt.c (struct noce_if_info): Add orig_x field.
14531 (bbs_ok_for_cmove_arith): Add to_rename parameter.
14532 Don't record conflicts on to_rename if it's present.
14533 Allow memory destinations in sets.
14534 (noce_try_cmove_arith): Call bbs_ok_for_cmove_arith even on simple
14535 blocks, passing orig_x to the checks.
14536 (noce_process_if_block): Set if_info->orig_x appropriately.
14537
14538 2016-01-11 Tom de Vries <tom@codesourcery.com>
14539
14540 PR tree-optimization/69069
14541 * tree-parloops.c (create_parallel_loop): Add missing phi args.
14542
14543 2016-01-11 Yuri Rumyantsev <ysrumyan@gmail.com>
14544
14545 PR rtl-optimization/68920
14546 * config/i386/i386.c (ix86_option_override_internal): Restrict number
14547 of conditional moves for RTL if-conversion to 1 for
14548 TARGET_ONE_IF_CONV_INSN.
14549 * config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros.
14550 * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros.
14551 * params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new
14552 parameter to restirct number of conditional moves for
14553 RTL if-conversion.
14554 * doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
14555 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
14556 conditionl moves.
14557
14558 2016-01-11 Alexandre Oliva <aoliva@redhat.com>
14559
14560 PR bootstrap/69123
14561 * var-tracking.c (drop_overlapping_mem_locs): Operate on all
14562 onepart vars. Fix typo in comment. Fix reversed condition in
14563 unshare test.
14564 (dataflow_set_remove_mem_locs): Operate on all onepart vars.
14565
14566 PR bootstrap/69123
14567 * var-tracking.c (dump_onepart_variable_differences): New.
14568 (dataflow_set_different): If a detailed dump is requested,
14569 delay early returns and dump differences between onepart
14570 variables present before and after, and added variables.
14571
14572 2016-01-11 Ilya Enkovich <enkovich.gnu@gmail.com>
14573
14574 PR target/69010
14575 * expr.c (expand_expr_real_1): For boolean vector constants
14576 with a scalar mode use const_scalar_mask_from_tree.
14577 (const_scalar_mask_from_tree): New.
14578 * optabs.c (expand_vec_cond_mask_expr): Use mask mode
14579 assigned to a mask type to handle constants.
14580
14581 2016-01-11 Martin Jambor <mjambor@suse.cz>
14582
14583 PR ipa/69044
14584 * ipa-cp.c (estimate_local_effects): Do not clone for removal of
14585 useless parameters if we cannot change function signature.
14586
14587 2016-01-11 Martin Jambor <mjambor@suse.cz>
14588
14589 PR ipa/66616
14590 * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
14591 flag.
14592
14593 2016-01-11 Tom de Vries <tom@codesourcery.com>
14594
14595 PR tree-optimization/69109
14596 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
14597 latch with phi.
14598
14599 2016-01-11 Tom de Vries <tom@codesourcery.com>
14600
14601 PR tree-optimization/69108
14602 * tree-parloops.c (gather_scalar_reductions): Handle case that outer phi
14603 res is not used in a phi.
14604
14605 2016-01-11 Yury Gribov <y.gribov@samsung.com>
14606
14607 PR 67425
14608 * common.opt (frandom-seed): Fix parameter name.
14609 * doc/invoke.texi (frandom-seed): Ditto and describe parameter.
14610
14611 2016-01-11 Tom de Vries <tom@codesourcery.com>
14612
14613 PR tree-optimization/69058
14614 * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
14615 not supported.
14616
14617 2016-01-11 Andrew Burgess <andrew.burgess@embecosm.com>
14618
14619 * config/arc/arc.opt (mdiv-rem): Add period to the end.
14620 (mcode-density): Likewise.
14621
14622 2016-01-10 Tom de Vries <tom@codesourcery.com>
14623
14624 PR tree-optimization/69062
14625 * tree-parloops.c (loop_has_phi_with_address_arg): New function.
14626 (parallelize_loops): Don't paralelize loop that has phi with address
14627 arg.
14628
14629 2016-01-10 Tom de Vries <tom@codesourcery.com>
14630
14631 PR tree-optimization/69039
14632 * tree-parloops.c (try_create_reduction_list): Only allow single exit
14633 phi for reduction.
14634
14635 2016-01-09 John David Anglin <danglin@gcc.gnu.org>
14636
14637 PR middle-end/68743
14638 * match.pd: Require target has function_c99_misc before doing
14639 truncl(extend(x)) and trunc(extend(x)) -> extend(truncf(x)), etc.
14640
14641 2016-01-09 Gerald Pfeifer <gerald@pfeifer.com>
14642
14643 * configure.ac (isl_options_set_schedule_serialize_sccs): Also
14644 use GMPINC.
14645 * configure: Regenerate.
14646
14647 2016-01-09 Jakub Jelinek <jakub@redhat.com>
14648
14649 PR middle-end/50865
14650 PR tree-optimization/69097
14651 * fold-const.h (expr_not_equal_to): New prototype.
14652 * fold-const.c: Include stringpool.h and tree-ssanames.h.
14653 (expr_not_equal_to): New function.
14654 * match.pd (X % -Y is the same as X % Y): Don't optimize
14655 unless X is known not to be equal to minimum or Y is known
14656 not to be equal to -1.
14657 * tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument.
14658 fold TRUNC_MOD_EXPR if the second argument is not a power of two.
14659 (simplify_stmt_using_ranges): Adjust caller.
14660 (vrp_finalize): Call set_value_range on SSA_NAMEs before calling
14661 substitute_and_fold.
14662
14663 2016-01-09 Jan Hubicka <hubicka@ucw.cz>
14664
14665 * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
14666 w/o DECL_NAME.
14667
14668 2016-01-08 Jakub Jelinek <jakub@redhat.com>
14669
14670 PR tree-optimization/69167
14671 * gimple-fold.c (replace_stmt_with_simplification): Also punt if
14672 new SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs appear in operands of
14673 ops[0] comparison.
14674 * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
14675
14676 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
14677 Richard Biener <rguenther@suse.de>
14678
14679 PR tree-optimization/68707
14680 * tree-vect-slp.c (vect_analyze_slp_instance): Cancel permuted SLP
14681 instances that can be handled via vect_load_lanes.
14682
14683 2016-01-08 Uros Bizjak <ubizjak@gmail.com>
14684
14685 * symtab.c (symtab_node::equal_address_to): Return -1 instead of 2
14686 if we can't determine address equivalence.
14687 * alias.c (compare_base_decl): Update for changed return value of
14688 symtab_node::equal_address_to.
14689
14690 2016-01-08 Jason Merrill <jason@redhat.com>
14691
14692 PR c++/68983
14693 PR c++/67557
14694 * function.c (assign_temp): Guard against TREE_ADDRESSABLE types here.
14695 * expr.c (store_field): Not here.
14696 * tree-cfgcleanup.c (fixup_noreturn_call): Don't clear LHS of a
14697 call with TREE_ADDRESSABLE type.
14698 * tree-cfg.c (verify_gimple_call): Adjust.
14699
14700 2016-01-08 Olivier Hainque <hainque@adacore.com>
14701
14702 * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
14703 libc_internal.
14704
14705 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
14706
14707 * gcc.target/rs6000/paired.md (reduc_smax_v2sf): Rename to...
14708 (reduc_smax_scal_v2sf): ...here, make result SFmode, extract element.
14709 (reduc_smin_v2sf): Rename to...
14710 (reduc_smin_scal_v2sf): ...here, make result SFmode, extract element.
14711 (reduc_splus_v2sf): Rename to...
14712 (reduc_plus_scal_v2sf): ...here, make result SFmode, extract element.
14713
14714 2016-01-08 Jakub Jelinek <jakub@redhat.com>
14715
14716 PR tree-optimization/69162
14717 * gimplify.c (gimplify_va_arg_expr): Encode original type of
14718 valist argument in another argument.
14719 (gimplify_modify_expr): Adjust for the above change. Cleanup.
14720 * tree-stdarg.c (expand_ifn_va_arg_1): Use new 3rd argument
14721 to determine the va_list type, build a MEM_REF instead of
14722 build_fold_indirect_ref.
14723
14724 PR tree-optimization/69172
14725 * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
14726 gimple_build.
14727
14728 2016-01-08 Thomas Preud'homme <thomas.preudhomme@arm.com>
14729
14730 PR tree-optimization/67781
14731 * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
14732 and cmpnop in two steps: first the ones not accessed in original
14733 gimple expression in a endian independent way and then the ones not
14734 accessed in the final result in an endian-specific way.
14735
14736 2016-01-08 Jakub Jelinek <jakub@redhat.com>
14737
14738 PR tree-optimization/69083
14739 * tree-vect-slp.c (vect_get_constant_vectors): For
14740 VECTOR_BOOLEAN_TYPE_P assert op is fold_convertible_p to vector_type's
14741 element type. If op is fold_convertible_p to vector_type's element
14742 type, use NOP_EXPR instead of VCE.
14743
14744 2016-01-08 Segher Boessenkool <segher@kernel.crashing.org>
14745
14746 PR rtl-optimization/67778
14747 PR rtl-optimization/68634
14748 PR rtl-optimization/68909
14749 * shrink-wrap.c (try_shrink_wrapping): Add comment. Don't pop
14750 block from the stack until done with it. Remove a superfluous
14751 bitmap set. Remove a superfluous bitmap test.
14752
14753 2016-01-07 Martin Sebor <msebor@redhat.com>
14754
14755 PR c/68966
14756 * doc/extend.texi (__atomic Builtins, __sync Builtins): Document
14757 constraint on the type of arguments.
14758
14759 2016-01-07 Andreas Tobler <andreast@gcc.gnu.org>
14760
14761 * config/arm/freebsd.h: Rename SUBTARGET_OVERRIDE_OPTIONS to
14762 SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. Adjust to check
14763 unaligned_access on the gcc_options set.
14764 * config/arm/arm.c (arm_option_override_internal): Use
14765 SUBTARGET_OVERRIDE_INTERNAL_OPTIONS.
14766
14767 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
14768
14769 PR target/69140
14770 * config/i386/i386.c (ix86_frame_pointer_required): Enable
14771 frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
14772
14773 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
14774
14775 Revert
14776 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
14777
14778 PR target/69140
14779 * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
14780 depending on frame_pointer_needed before remaining integer and SSE
14781 registers are saved.
14782
14783 2016-01-07 Sandra Loosemore <sandra@codesourcery.com>
14784
14785 PR 1078
14786 * doc/extend.texi (Nvidia PDX Function Attributes): New section.
14787
14788 2016-01-07 H.J. Lu <hongjiu.lu@intel.com>
14789
14790 PR target/69171
14791 * config/i386/sse.md (<sse>_sqrt<mode>2<mask_name><round_name>):
14792 Use the "xBm" constraint.
14793 (float<sseintvecmodelower><mode>2<mask_name><round_name):
14794 Likewise.
14795 (sse_cvtsi2ss<round_name>): Use round_nimm_scalar_predicate.
14796 (sse_cvtsi2ssq<round_name>): Likewise.
14797 (sse_cvtss2si<round_name>): Likewise.
14798 (sse_cvtss2siq<round_name>): Likewise.
14799 (sse2_cvtsi2sdq<round_name>): Likewise.
14800 (sse2_cvtsd2si<round_name>): Likewise.
14801 (sse2_cvtsd2siq<round_name>): Likewise.
14802 * config/i386/subst.md (round_nimm_scalar_predicate): New
14803 predicate.
14804
14805 2015-12-15 Bernd Schmidt <bschmidt@redhat.com>
14806
14807 PR middle-end/67639
14808 * varasm.c (make_decl_rtl): Mark invalid register vars as
14809 DECL_EXTERNAL.
14810
14811 PR rtl-optimization/66206
14812 * bt-load.c (find_btr_use): Change first arg to be a pointer to an rtx.
14813 All callers changed.
14814
14815 2016-01-07 Jakub Jelinek <jakub@redhat.com>
14816
14817 PR tree-optimization/69141
14818 * tree-ssa-pre.c: Include langhooks.h.
14819 (eliminate_dom_walker::before_dom_children): Use
14820 lang_hooks.decl_printable_name instead of
14821 cgraph_node::get ()->name ().
14822
14823 PR middle-end/68960
14824 * gimple-expr.c (copy_var_decl): If var has DECL_USER_ALIGN set, copy
14825 it and DECL_ALIGN too.
14826
14827 2016-01-06 Robert Suchanek <robert.suchanek@imgtec.com>
14828
14829 * config/mips/mips-ftypes.def: Sort to lexicographical order.
14830
14831 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
14832
14833 PR target/69140
14834 * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
14835 depending on frame_pointer_needed before remaining integer and SSE
14836 registers are saved.
14837
14838 2015-01-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14839
14840 * config/rs6000/vsx.md (*p9_vecload_<mode>): Replace VSX_M
14841 mode iterator with VSX_M2.
14842 (*p9_vecstore_<mode>): Likewise.
14843 (*vsx_le_permute_<mode>): Restrict to !TARGET_P9_VECTOR.
14844 (*vsx_le_perm_load_<mode> for VSX_LE_128): Likewise.
14845 (*vsx_le_perm_store_<mode> for VSX_LE_128): Likewise.
14846 (define_split for VSX_LE128 stores): Likewise.
14847 (define_peephole2 for TImode LE swaps): Likewise.
14848 (define_split for VSX_LE128 post-reload stores): Likewise.
14849
14850 2016-01-06 Marek Polacek <polacek@redhat.com>
14851
14852 PR sanitizer/69099
14853 * convert.c (convert_to_integer_1): Adjust call to
14854 ubsan_instrument_float_cast. Use NULL_TREE instead of NULL.
14855 * ubsan.c (ubsan_instrument_float_cast): Drop the ARG parameter. Use
14856 EXPR instead of ARG.
14857 * ubsan.h (ubsan_instrument_float_cast): Adjust declaration.
14858
14859 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
14860
14861 PR 1078
14862 * doc/extend.texi (RL78 Variable Attributes): New section.
14863
14864 2016-01-05 Marek Polacek <polacek@redhat.com>
14865
14866 PR c/69104
14867 * builtins.c (get_memmodel): Use expansion point location rather than
14868 the input location. Call warning_at rather than warning.
14869 (expand_builtin_atomic_compare_exchange): Likewise.
14870 (expand_builtin_atomic_load): Likewise.
14871 (expand_builtin_atomic_store): Likewise.
14872 (expand_builtin_atomic_clear): Likewise.
14873
14874 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
14875
14876 PR target/68991
14877 * config/i386/i386.c (ix86_expand_vector_logical_operator):
14878 Replace nonimmediate_operand with vector_operand.
14879 * config/i386/predicates.md (vector_operand): New predicate.
14880 (general_vector_operand): Replace nonimmediate_operand with
14881 vector_operand.
14882 * config/i386/sse.md: Replace nonimmediate_operand with
14883 vector_operand and m constraint with Bm constraint on SSE
14884 patterns with 16-byte memory operand.
14885 * config/i386/subst.md (round_nimm_predicate): Replace
14886 nonimmediate_operand with vector_operand.
14887 (round_saeonly_nimm_predicate): Likewise.
14888 (round_saeonly_nimm_scalar_predicate): New.
14889
14890 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
14891
14892 PR target/68991
14893 * config/i386/constraints.md (Bm): New constraint.
14894 * config/i386/predicates.md (vector_memory_operand): New
14895 predicate.
14896 * config/i386/sse.md: Replace xm with xBm in plusminus and
14897 any_logic patterns.
14898
14899 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
14900
14901 PR 1078
14902 * doc/extend.texi (V850 Function Attributes): New section.
14903 (V850 Variable Attributes): New section.
14904
14905 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
14906
14907 PR 1078
14908 * doc/extend.texi (MicroBlaze Function Attributes): Document
14909 interrupt_handler and fast_interrupt attributes.
14910
14911 2016-01-05 Sergei Trofimovich <siarheit@google.com>
14912
14913 PR other/60465
14914 * config/ia64/ia64.c (ia64_expand_load_address): Use gprel64
14915 for local symbolic operands.
14916 * config/ia64/predicates.md (local_symbolic_operand64): New
14917 predicate.
14918
14919 2016-01-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14920
14921 PR rtl-optimization/68651
14922 * combine.c (combine_simplify_rtx): Canonicalize x + x into
14923 x << 1.
14924
14925 2016-01-05 Nathan Sidwell <nathan@acm.org>
14926
14927 * alias.c (compare_base_decls): Use symtab_node::get.
14928
14929 2016-01-05 Nick Clifton <nickc@redhat.com>
14930
14931 PR target/68770
14932 * ira-costs.c (copy_cost): Initialise the t_icode field of the
14933 secondary_reload_info structure.
14934
14935 PR target/66655
14936 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
14937 decls if weak support is available.
14938
14939 2016-01-04 Martin Sebor <msebor@redhat.com>
14940
14941 * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.
14942
14943 2016-01-04 Michael Meissner <meissner@linux.vnet.ibm.com>
14944
14945 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
14946 OPTION_MASK_P9_DFORM.
14947
14948 * config/rs6000/constraints.md (wo constraint): New constraint for
14949 ISA 3.0 (power9).
14950
14951 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
14952 for wo constraint.
14953 (rs6000_init_hard_regno_mode_ok): Likewise.
14954
14955 * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
14956 wo constraint.
14957
14958 * config/rs6000/altivec.md (altivec_vperm_<mode>): Clean up vperm
14959 expanders not to have constraints. Add support for ISA 3.0 xxperm
14960 instruction. Add support for fusing xxlor with xxperm.
14961 (altivec_vperm_<mode>_internal): Likewise.
14962 (altivec_vperm_v8hiv16qi): Likewise.
14963 (altivec_vperm_<mode>v16q): Likewise.
14964 (altivec_vperm_<mode>_uns): Likewise.
14965 (vperm_v8hiv4si): Likewise.
14966 (vperm_v16qiv8hi): Likewise.
14967
14968 * doc/md.texi (RS/6000 constraints): Document wo constraint.
14969
14970 2016-01-04 Jakub Jelinek <jakub@redhat.com>
14971
14972 Update copyright years.
14973
14974 * gcc.c (process_command): Update copyright notice dates.
14975 * gcov-dump.c (print_version): Ditto.
14976 * gcov.c (print_version): Ditto.
14977 * gcov-tool.c (print_version): Ditto.
14978 * gengtype.c (create_file): Ditto.
14979 * doc/cpp.texi: Bump @copying's copyright year.
14980 * doc/cppinternals.texi: Ditto.
14981 * doc/gcc.texi: Ditto.
14982 * doc/gccint.texi: Ditto.
14983 * doc/gcov.texi: Ditto.
14984 * doc/install.texi: Ditto.
14985 * doc/invoke.texi: Ditto.
14986
14987 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
14988
14989 * config/arm/arm.c (aapcs_vfp_allocate_return_reg): Treat all integer
14990 modes larger than TImode as TImode if NEON is not enabled.
14991
14992 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
14993
14994 PR target/69100
14995 * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
14996 mode for %f0-%f31 only if TARGET_FPU.
14997
14998 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
14999
15000 PR target/69072
15001 * config/sparc/sparc.c (scan_record_type): Take into account subfields
15002 to compute the PACKED_P predicate.
15003 (function_arg_record_value): Minor tweaks.
15004
15005 2016-01-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
15006
15007 * doc/install.texi (--with-multilib-list): Describe the meaning of the
15008 option for arm*-*-* targets.
15009
15010 2016-01-03 Sandra Loosemore <sandra@codesourcery.com>
15011
15012 * doc/extend.texi (Common Function Attributes): Move docs for
15013 MSP430-specific attributes to....
15014 (MSP430 Function Attributes): ...here. Delete the redundant
15015 entries and copy-edit the remaining text.
15016 (MSP430 Variable Attributes): Use uniform format for index
15017 entries and add a cross-reference to the corresponding function
15018 attribute docs.
15019
15020 2016-01-03 Vladimír Čunát <vcunat@gmail.com>
15021
15022 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix
15023 -finite-math typo.
15024 (x86 Options): Likewise.
15025
15026 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
15027
15028 PR 1078
15029
15030 * extend.texi (Common Function Attributes) <no_stack_limit>: New.
15031 * invoke.texi (Code Gen Options) <-fno-stack-limit>: Add pointer
15032 to corresponding attribute.
15033
15034 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
15035
15036 * doc/extend.texi (Common Function Attributes) <noplt>: Move
15037 to correct alphabetization of table. Copy-edit and correct
15038 markup.
15039 <stack_protect>: Likewise.
15040 <target_clones>: Likewise.
15041 <simd>: Likewise.
15042 * doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>:
15043 Correct punctuation.
15044 (Code Gen Options) <-fno-plt>: Copy-edit.
15045
15046 2016-01-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
15047
15048 PR target/68917
15049 * config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of
15050 SI values. Explicitly convert SI to DI and vice-versa.
15051
15052 2016-01-01 Jakub Jelinek <jakub@redhat.com>
15053
15054 PR tree-optimization/69070
15055 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Only test
15056 REAL_VALUE_ISSIGNALING_NAN on arg0 if arg0 is a REAL_CST.
15057
15058 PR sanitizer/69055
15059 * ubsan.c (ubsan_instrument_float_cast): Call
15060 initialize_sanitizer_builtins.
15061
15062 PR target/69015
15063 * ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).
15064 \f
15065 Copyright (C) 2016 Free Software Foundation, Inc.
15066
15067 Copying and distribution of this file, with or without modification,
15068 are permitted in any medium without royalty provided the copyright
15069 notice and this notice are preserved.